资源预览内容
第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
第9页 / 共21页
第10页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1 单片机单片机课程实验课程实验报告报告 时针及点阵显示器设计 组长:张悦 小组成员:段晗晗 赵亮 李萌 侯晨 指导老师:赵嘉蔚 2 目录 一、关于单片机3 二、设计任务5 三、设计方案思路6 四、设计方案及思路6 五、软件及硬件流程7 六、源程序10 七、实现功能19 八、运行结果19 九、总结20 十、成员分工21 3 时针及点阵显示器设计 一、关于单片机一、关于单片机 1)概念: 单 片 微 型 计 算 机 简 称 单 片 机 , 是 典 型 的 嵌 入 式 微 控 制 器(Microcontroller Unit) ,常用英文字母的缩写 MCU 表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有 CPU 的专用处理器发展而来。最早的设计理念是通过将大量外围设备和 CPU 集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL 的 Z80 是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。 早期的单片机都是 8 位或 4 位的。其中最成功的是 INTEL 的 8031,因为简单可靠而性能不错获得了很大的好评。此后在 8031 上发展出了MCS51 系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了 16 位单片机,但因为性价比不理想并未得到很广泛的应用。90 年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着 INTEL i960 系列特别是后来的 ARM 系列的广泛应用,32 位单片机迅速取代 16 位单片机的高端地位,并且进入主流市场。而传统的 8 位单片机的性能也得到了飞速提高,处理能力比起80 年代提高了数百倍。目前,高端的 32 位单片机主频已经超过 300MHz,性能直追 90 年代中期的专用处理器,而普通的型号出厂价格跌落至 1 美元,最高端1的型号也只有 10 美元。当代单片机系统已经不再只在裸机 4 环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的 Windows 和 Linux 操作系统。 2)工作过程: 单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令) ,这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件存储器中。存储器由许多存储单元(最小的存储单位)组成,就像大楼房有许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。 程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器 PC(包 5 含在 CPU 中) ,在开始执行程序时,给 PC 赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC 在中的内容就会自动增加,增加量由本条指令长度决定,可能是 1、2 或 3,以指向下一条指令的起始地址,保证指令顺序执行。 3)MCS-51 单片机系统简介: MCS51 是指由美国 INTEL 公司(对了,就是大名鼎鼎的 INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如 8031,8051,8751,8032,8052,8752 等,其中 8051 是最早最典型的产品,该系列其它单片机都是在 8051 的基础上进行功能的增、减、改变而来的,所以人们习惯于用 8051 来称呼 MCS51 系列单片机,而 8031 是前些年在我国最流行的单片机,所以很多场合会看到 8031 的名称。 二、二、设计任务设计任务 1) 以 MCS-51 系列单片机为核心器件,组成一个点阵式电子时钟系统。 2) 系统显示器由三块 8x8 LED 点阵显示器组成,可以依次显示时间值的小时、分钟和秒。 3) 能够随时切换显示模式。 4) 能够随时对当前的时间进行调整。 三、三、设计设计方案方案思路思路 6 1)定时器/计数器 T0 定时 20ms 中断一次,中断 50 次为 1s,用 R2工作寄存器记录 T0 中断的次数。 2)秒、分、时寄存器分别设置在 8051 的内部 RAM30H-32H 单元。 3)按键 KEY1 为工作模式键。用于时钟显示或调时、调分、调秒的功能切换选择。 R3 寄存器记录 KEY1 按键的次数: R3=0, 显示时钟; R3=1,调秒;R3=2,调分;R3=3,调时。 4)按键 KEY2 为增 1 键,对选定的被调项当前值增 1。 5) 按键 KEY3 为减 1 键,对选定的被调项当前值减 1。 6)按键 KEY4 为直接调 0 键。 7)按键 KEY5 为直接调 30 键。 8) 按键的接入方式: K1 键:通过 P1.0 引脚接入,查询工作方式 K2 键:通过 P1.1 引脚接入,查询工作方式 K3 键:通过 P1.2 引脚接入,查询工作方式 K4 键:通过 P1.3 引脚接入,查询工作方式 K5 键:通过 P1.4 引脚接入,查询工作方式 四、四、设计方案设计方案及思路及思路 电路图 7 思路: 1、先设计完成一个 8x8LED 点阵显示器的显示(e g.完成秒的显示) a.应用线选法 直接与 89C51 P 口连接 通过扩展 I/O 口连接 b.应用译码法 2、应用 74ls139 来实现三个 8x8LED 点阵显示器的显示 3、添加按键程序及硬件电路,实现调整的功能 五、五、软件软件及硬件及硬件流程流程: 1、硬件流程图: 8 2.软件: 软件的设计方案: 进行应用软件设计时,我们采用模块化程序,其优点是: 1)每个模块的程序结构简单,任务明确,易于编写、调试和修改。 2)程序可读性好,对程序的修改可局部进行,其他部分可以保持不变,便于功能扩充和版本升级。 3)对于使用频繁的子程序可以建立子程序库,便于多个模块调用 4)便于分工合作,多个程序员同时进行程序的编写和调试工作,加快软件研制进度。 设计框图: 9 流程图: 10 六、六、源程序源程序 KEY1 BIT P1.0 KEY2 BIT P1.1 KEY3 BIT P1.2 KEY4 BIT P1.3 KEY5 BIT P1.4 SECOND DATA 30H MINUTE DATA 31H HOUR DATA 32H ;把 HOUR 定义在 32h 单元 ORG 0000H AJMP MAIN ;调用主程序 ORG 000BH AJMP T0INT ;调用定时程序 MAIN: MOV SP,#60H MOV DPTR,#0100H MOV A,#00000011B MOVX DPTR,A MOV DPTR,#4100H MOV A,#00000011B MOVX DPTR,A MOV DPTR,#8100H MOV A,#00000011B MOVX DPTR,A MOV A,P1 MOV TMOD,#01H ;定时器 T0 方式设置 MOV TH0,#0B1H ;定时器装入处置 20ms MOV TL0,#0E0H SETB ET0 ;T0 中断允许 SETB EA ;总中断允许 MOV R2,#50 ;T0 中断 50 次为 1s SETB TR0 ;启动定时器 T0 MOV SECOND,#25H ;初始化秒:00 MOV MINUTE,#58H MOV HOUR,#23H MOV B,#00 DNN: MOV A,SECOND ;把秒的内容送给累加器 ANL A,#0F0H ;取十位数 11 SWAP A MOV 79H,A ;将十位数放入显示缓存区首地址 79h MOV A,SECOND ;把时的内容送给累加器 ANL A,#0FH ;取个位数 MOV 7AH,A ;将个位数放入显示缓存区 MOV A,MINUTE ;把 FEN 的内容送给累加器 ANL A,#0F0H ;取十位数 SWAP A MOV 7BH,A ;将十位数放入显示缓存区首地址 79h MOV A,MINUTE ;把时的内容送给累加器 ANL A,#0FH ;取个位数 MOV 7CH,A ;将个位数放入显示缓存区 MOV A,HOUR ;把 FEN 的内容送给累加器 ANL A,#0F0H ;取十位数 SWAP MOV 7DH,A ;将十位数放入显示缓存区首地址 79h MOV A,HOUR ;把时的内容送给累加器 ANL A,#0FH ;取个位数 MOV 7EH,A ;将个位数放入显示缓存区 DN: ACALL KEY ACALL DISPLAY ;调用显示一遍子程序 AJMP DN ;反复显示,直到 1s 中时间达到,然后 去执行中断子程序 (在执行指令过程中 定时器就在一直计时) DISPLAY:MOV R0,#79H ;将显示缓冲区地址给 R0 MOV R4,#0FEH ;列扫描字初值 ACALL DIS4 ;先扫描显示十位数字 INC R0 ;R0 增一,指向个位 ACALL DIS4 INC R0 ACALL DIS5 INC R0 ACALL DIS5 INC R0 AC
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号