2015~2016学年第一学期《单片机原理及应用》课程设计报告题目:基于单片机LED点阵显示电子时钟设计班级:13级电子信息姓名:指导教师:电气工程学院2015年11月《单片机原理及应用》任务书摘要LED显示屏作为信息传播的一种重要手段,已经成为城市信息现代化建设的标志,LED显示屏随着社会经济的不断进步,以及LED制造技术的完善,人们对LED显示屏的认识将会越来越深入,其应用领域将会越来越广;LED显示屏经多年的开发、研制、生产,其技术目前已经成熟。
现在各种广告牌不再是白底黑字了,也不再是单一的非电产品,而是用上了丰富多彩的LED电子产品,为城市增添了一道靓丽的风景。
本次课程设计是基于AT89C52单片机的LED点阵电子显示器的设计,采用的并行方式的显示方案来实现。
该电子时钟由AT89C51,74LS373数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时。
用keil软件生成.hex文件,用Proteus的ISIS软件实现了单片机LED 点阵电子时钟系统的设计与仿真。
关键词:单片机;LED点阵;电子显示器目录《单片机原理及应用》 (I)课程设计报告 (I)《单片机原理及应用》任务书 (II)摘要 (III)第1章方案选择与论证 (1)1.1 设计任务与要求 (1)1.2 总体设计方案 (1)1.2.1 硬件部分的设计 (1)1.2.2 软件部分设计 (2)第2章硬件电路的设计 (3)2.1 晶振电路设计 (3)2.2 复位电路设计 (3)2.3 时分调节电路设计 (4)2.4 驱动电路设计 (4)2.5 总原理图 (5)第3章系统软件设计 (6)3.1 软件流程图 (6)3.2 主要软件程序内容 (7)3.2.1 定时器工作程序 (7)3.2.2 数字显示程序 (7)第4章系统调试与仿真 (11)4.1开发过程 (11)4.2 电路仿真 (14)总结 (19)参考文献 (20)附录 (21)答辩记录及评分表 (27)第1章方案选择与论证1.1 设计任务与要求(1)采用LED灯进行显示(2)可以根据按键来对时间进行调整(3)初始时间为12:00.1.2 总体设计方案1.2.1硬件部分的设计这次硬件电路部分用PROTEUS软件,该软件主要用来进行元器件的绘制和原理图的绘制,PROTEUS软件对绘制好的原理图进行仿真和调试。
根据课程设计任务书的要求,经过思考和筛选,选择并行方式显示,I/O口通过锁存芯片来扩展,以此来控制LED点阵40个列线,双缓冲寄存器由5片锁存器74LS373来组成,可以驱动LED点阵8组列线,并用3/8译码器74LS138对LED点阵的8行进行扫描。
在送每一行的数据到LED点阵时,先把数据分别送到5个74LS373,然后再把数据一起输出到LED点阵列中,送出去的时间数据由AT89C51来控制。
电子钟由显示电路、行驱动电路、列驱动电路、中央控制器AT89C52、按键电路和复位电路组成。
图1.2.1 系统框图a) 显示模块的选择显示模块采用8*8的点阵LED数码管,这种模块由64个发光LED芯片以8*8的形式构成一个正方形模块,然后用两列12针引脚将内部电路接口引出,供驱动电路使用。
这种结构是市面上最通用,也是现在应用最为广泛采用的形式。
b) 时钟信号的选择秒信号由单片机提供,使用程序由时、分、秒计数。
采用这种方案的优点在于,它可以有效减少电路的复杂程度,减少多余芯片的使用,节约成本。
并可以减少时间误差,以达到设计要求。
c) 总体设计方案根据以上方案所述本次毕业设计采取的总体方案如下:用锁存芯片来扩展I/O口,控制LED点阵40个列线;5片锁存器74LS373组成双缓冲寄存器,驱动LED点阵8组列线;采用8*8的点阵LED数码管组成显示模块,显示出运行调试结果;主控系统由AT89C51组成,通过它的串行输出动态扫描来实现时和分的显示。
1.2.2 软件部分设计将需要实现的功能用Keil 软件写好程序,并对写入单片机的代码进行编译和调试。
第2章硬件电路的设计2.1 晶振电路设计晶振电路部分由两个值为30uf的电容C1、C2和一个6MHz的晶振X1串联组成。
由它产生的振荡信号可以保证精度高而且稳定并且频率稳定在6MHz,次方波信号提供给单片机作为一个时钟信号,当定时器需要定时的时候使用。
图2-1 晶振电路部分2.2 复位电路设计复位电路由一个数值为10uf的电容和一个按键串联组成,电路中的复位设定为上电与按键均有效的模式,当电路上电时,RST引脚获得一个高电频,随着C3电容不断的在运行过程中充电,所以导致RST引脚的高电频不断地下降。
因为RST引脚上的高电频只能维持两个机器周期的时间,所以单片机就可以通过这个复位电路进行复位操作。
在电路运行期间,当按下按键开关的瞬间,RST 上的电频立即变为高电频,以此来实现电路复位图2-2 复位电路部分2.3 时分调节电路设计由AT89C51的P3.2端口接入按键S1,P3.3端口接入按键S2,再将二者并联,分别接入74LS138的E2和E3端口,以此来实现按键调节时分的设计。
当电路运行时,LED显示器初始值为12:00。
每按一次S1按键,分针数字就会加1,当分针数字满60再次按下按键S1,就会回归为0;每按下按键S2时,时针数字就会依次加1,当时针为12时再次按下按键S2,时针为就会显示为0。
图2-3 时分电路部分2.4 驱动电路设计驱动部分采用5个74LS373并行的方式,该芯片是常用的三态门8D锁存器。
只有当同时满足以下两个条件时,D端的数据才会被锁存到锁存器的输出端,即有正脉冲输入到门控端G,有效的高电频输出控制OE。
其它情况下,当G为低电频,输出Q保持不变;当OE为低电频,输出Q为高阻态。
图2-4 驱动电路部分2.5 总原理图图2-5 总原理图第3章系统软件设计3.1 软件流程图设计中,计时采用定时器T0中断完成,其余状态循环调用显示子程序,当端口开关按下时,转入相应功能程序。
当计时中断开始时,LED显示器开始接受信号,接受到一个信号时秒数增加1,当秒数累计加到60时,则分数为主动进1,分数位累计加到60时,时数位主动增加1。
秒针、分针、时针只要有一位未接受到信号,那么系统就会自动结束。
其程序执行流程见下图3.2 主要软件程序内容3.2.1定时器工作程序MOV SP,#60HMOV TMOD,#01HMOV TL0,#0e0HMOV TH0,#0b1HMOV IE,#87HMOV 30H,#01H ;//时十位MOV 31H,#02H ;//时个位MOV 32H,#0AH ;//光标点位MOV 33H,#00H ;//分十位MOV 34H,#00H ;//分个位MOV 35H,#00H ;//秒十位MOV 36H,#00H ;//秒个位SETB IT0//IT0变成1(IT0为外部中断0,1为下降沿触发,是按键功能)SETB IT1//同理SETB PT0SETB TR0//TR0为定时器开关,开定时器03.2.2数字显示程序LOOP00: MOV A,3BHMOV DPTR,#TABEMOVC A,@A+DPTRMOV P2,R4MOV P0,AMOV P1,#0FEHINC 3BHINC R4LCALL DELAYDJNZ R5,LOOP00MOV A,31H ;显示要显档的数字MOV B,#08HMUL ABMOV 3BH,AMOV R4,#00HMOV R5,#08HLOOP11: MOV A,3BHMOV DPTR,#TABEMOVC A,@A+DPTRMOV P2,R4MOV P0,AMOV P1,#0FDHINC 3BHINC R4LCALL DELAYDJNZ R5,LOOP11MOV A,32H ;显示要显档的数字MOV B,#08HMUL ABMOV 3BH,AMOV R4,#00HMOV R5,#08HLOOP22: MOV A,3BHMOV DPTR,#TABEMOVC A,@A+DPTRMOV P2,R4MOV P0,AMOV P1,#0FBHINC R4LCALL DELAYDJNZ R5,LOOP22MOV A,33H ;显示要显档的数字MOV B,#08HMUL ABMOV 3BH,AMOV R4,#00HMOV R5,#08HLOOP33: MOV A,3BHMOV DPTR,#TABE,MOVC A,@A+DPTRMOV P2,R4MOV P0,AMOV P1,#0F7HINC 3BHINC R4LCALL DELAYDJNZ R5,LOOP33MOV A,34H ;显示要显档的数字MOV B,#08HMUL ABMOV 3BH,AMOV R4,#00HMOV R5,#08HLOOP44: MOV A,3BHMOV DPTR,#TABEMOVC A,@A+DPTRMOV P2,R4MOV P1,#0EFHINC 3BHINC R4 LCALL DELAY DJNZ R5,LOOP44 POP PSWPOP ACCRET第4章系统调试与仿真Keil是德国Keil Software公司出品的单片机集成开发软件,该软件支持51单片机的所有变种(目前共有400多种型号)。
Keil提供了包括C编译器、宏汇编、连接器、库管理及一个功能强大的仿真调试在内的完整开发方案,并通过一个集成开发环境(μVision2)将这些部分组合在一起。
Keil单片机集成开发软件可以运行在Windows98/NT/2000及XP等操作系统下。
4.1 开发过程a)建立项目图4-1(a-1)建立新项目图4-1(a-2)保存新项目图4-1(a-3)选择CPUb)新建文件,将文件保存并改成abc.c文件,再将程序输入到文件中并进行编译。
图4-1(b-1)创建程序文件图4-1(b-2)保存程序文件c)生成hex文件并进行编译图4-1(c)生成hex文件4.2下载、调试a)打开Proteus,双击单片机并将hex文件加进去,点击“OK”即可。
图4-2(a)b)按下仿真键,即出现如下图初始仿真结果。
初始时间显示为12:00,所有元器件未报错,结果正确。
图4-2(b)初始仿真结果图c)电路仿真过程中,按下按键S1时LED显示器的分钟显示将以步进为1进行进位变化。
当按下按键S2时LED显示器的时钟显示也以步进为1进行进位变化,调试结果如下图所示:LED分别显示为12:03和13:02,说明元器件连接正确,程序编写没有出现错误。
图4-2(c)分钟部分仿真结果图图4-2(c)时钟部分仿真结果图总结经过一个星期的奋战我们的课程设计终于完成了。
在没有做课程设计以前觉得课程设计只是对这本学期来所学知识的单纯总结,但是通过这次做课程设计发现自己的看法有点太片面。