资源描述:
《片机实验报告(2)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、广东水利电力职业技术学院系别:电力工程系班别:姓名:学号:指导老师:2009年12月25日13广东水利电力职业技术学院目录一、实习目的..............................................3二、实习内容..............................................3三、基本要求..............................................3四、强化要求..............................................3五、实习器材..........
2、....................................3六、设计方案..............................................4七、设计的程序..........................................6八、实习小结..............................................1313广东水利电力职业技术学院一、实习目的通过实习,使学生进一步弄懂所学到的课本知识,巩固和深化对单片机的结构、指令系统、中断系统、键盘/显示系统、接口技术、系统扩展、定时/控制、程序设计、应
3、用开发、等基本理论知识的理解,提高单片机应用于技术的实践操作技能,掌握单片机应用系统设计、研制的方法,培养利用单片机进行科技革新、开发和创新的基本能力,为毕业后从事与单片机相关的工作打下一定的基础。二、实习内容利用软件MAVE2007在V51-S型实验板上设计键盘扫描+流水灯显示。三、基本要求要求所设计的键盘扫描+流水灯显示具有如下功能:1、流水灯不停地工作。2、按键从K0到KF显示对应的数字,同时流水灯速度越来越慢,并且交替显示学号。四、强化要求在以上效果不变的同时加入按键控制流水灯方向的功能五、实习器材V51-S型实验板13广东水利电力职业技术学院六、设计方案1、分析
4、该程序可分为四个模块,分别是流水灯模块、显示模块、矩阵扫描显示模块、中断模块分别画出各模块的程序框图,如下所示:流水灯模块:显示模块:程序框图矩阵扫描模块:13广东水利电力职业技术学院中断模块:程序分析13广东水利电力职业技术学院2、方案以流水灯模块为主程序,其他模块为子程序。本实习提供了一个4×4小键盘,向P2口的低四位逐个输出高电平,如果有键按下,则相应输出高,如果没有键按下,则输出为低,通过输出的列码和读取的行码来判断按下什么键,在有键按下后要有一定的延时,防止抖动.七、程序设计;将4个7段数码显示器显示的内容放在4个显存中,4个显存空间定义如下LED0EQU30H
5、LED1EQU31HLED2EQU32HLED3EQU33HDEL17EQU34HAKBIT30HDELEQU35HORG0000HLJMPMAINORG0023H;;;;中断程序入口LJMPXQORG0040HMAIN:MOVSP,#60HSTART:MOVP0,#00H;使显示器不显示MOVP1,#00HMOVP3,#00HMOVLED0,#0;初始界面'-''-''-''0'MOVLED1,#16MOVLED2,#16MOVLED3,#16MOVDEL17,#1;流水灯切换速度(值越大,速度越慢)MOVDEL,#10;显示管切换速度(值越大,速度越慢)MOVTMOD
6、,#01H;设T0为工作方式1MOVTH0,#00HMOVTL0,#00H;22.1184M晶振?SETBEASETBET0SETBTR0CLRAKMOVA,#01H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;主程序13广东水利电力职业技术学院XM:MOVP1,ARLA;流水灯方向由上至下PUSHAMOVR1,DEL17;用DEL17来控制流水灯速度D31:MOVR2,#10D21:MOVR3,#100D11:LCALLSKLOOPDJNZR3,D11DJNZR2,D21DJNZR1,D31POPALJMPXM;;;;;;;;;;;
7、;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;扫描键盘子程序SKLOOP:MOVP0,#00HMOVP2,#11110111B;P2.3口输出低电平,扫描K0,K1,K2,K3LCALLDISLED3SK0:JBP2.4,SK1;P2.4为高电平扫描K0LCALLDELAY;延时去除抖动LCALLOPRK0;P2.4为低电平执行K0对应子程序RETSK1:JBP2.5,SK2LCALLDELAY;延时去除抖动LCALLOPRK1RETSK2:JBP2.6,SK3LCALLDELAY;延时去除抖动LCALLOPR