1、I20152016 学年 第一学期单片机原理及应用课 程 设 计 报 告题 目: 基于单片机 LED 点阵显示电子时钟设计 班 级: 13 级电子信息 姓 名: 指导教师: 电气工程学院2015 年 11 月II单片机原理及应用任务书课题名称 基于单片机 LED 点阵显示电子时钟设计指导教师 xx执行时间 20152016 学年第一学期 第 13 周学生姓名 学号 承担任务 评分论文撰写及调试仿真硬件电路绘制及程序编写Keil 与 ISIS.的联调仿真实验结果的验证系统方案设计查询文献与答辩硬件模块电路分析主要程序分析设计要求1、设计一个 LED 点阵显示电子时钟电路2、时钟显示的初始时间为
2、12:00。3、时钟和分钟可以通过相应的按键以步进值为 1 进行变化。III摘 要LED 显示屏作为信息传播的一种重要手段,已经成为城市信息现代化建设的标志,LED 显示屏随着社会经济的不断进步,以及 LED 制造技术的完善,人们对 LED 显示屏的认识将会越来越深入,其应用领域将会越来越广;LED 显示屏经多年的开发、研制、生产,其技术目前已经成熟。现在各种广告牌不再是白底黑字了,也不再是单一的非电产品,而是用上了丰富多彩的 LED 电子产品,为城市增添了一道靓丽的风景。本次课程设计是基于 AT89C52 单片机的 LED 点阵电子显示器的设计,采用的并行方式的显示方案来实现。该电子时钟由
3、AT89C51,74LS373 数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时。用 keil 软件生成.hex 文件,用 Proteus 的 ISIS 软件实现了单片机 LED 点阵电子时钟系统的设计与仿真。 关键词:单片机;LED 点阵;电子显示器IV目 录单片机原理及应用 I课 程 设 计 报 告 I单片机原理及应用任务书 .II摘 要 III第 1 章 方案选择与论证 11.1 设计任务与要求 .11.2 总体设计方案 .11.2.1 硬件部分的设计 11.2.2 软件部分设计 2第 2 章 硬件电路的设计 32.1 晶振电路设计 .32.2
4、 复位电路设计 .32.3 时分调节电路设计 .42.4 驱动电路设计 .42.5 总原理图 .5第 3 章 系统软件设计 63.1 软件流程图 .63.2 主要软件程序内容 .73.2.1 定时器工作程序 73.2.2 数字显示程序 7第 4 章 系统调试与仿真 114.1 开发过程 114.2 电路仿真 .14总 结 19参 考 文 献 20附 录 21答辩记录及评分表 271第 1 章 方案选择与论证1.1 设计任务与要求(1)采用 LED 灯进行显示(2)可以根据按键来对时间进行调整(3)初始时间为 12:00.1.2 总体设计方案1.2.1 硬件部分的设计这次硬件电路部分用 PROT
5、EUS 软件,该软件主要用来进行元器件的绘制和原理图的绘制,PROTEUS 软件对绘制好的原理图进行仿真和调试。根据课程设计任务书的要求,经过思考和筛选,选择并行方式显示,I/O 口通过锁存芯片来扩展,以此来控制 LED 点阵 40 个列线,双缓冲寄存器由 5 片锁存器74LS373 来组成,可以驱动 LED 点阵 8 组列线,并用 3/8 译码器 74LS138 对LED 点阵的 8 行进行扫描。在送每一行的数据到 LED 点阵时,先把数据分别送到 5 个 74LS373,然后再把数据一起输出到 LED 点阵列中,送出去的时间数据由 AT89C51 来控制。电子钟由显示电路、行驱动电路、列驱
6、动电路、中央控制器 AT89C52、按键电路和复位电路组成。 图 1.2.1 系统框图电 源 电 路复位电路按键电路AT89C52控制器列驱动电路行驱动电路显示电路2a) 显示模块的选择 显示模块采用 8*8 的点阵 LED 数码管,这种模块由 64 个发光 LED 芯片以8*8 的形式构成一个正方形模块,然后用两列 12 针引脚将内部电路接口引出,供驱动电路使用。这种结构是市面上最通用,也是现在应用最为广泛采用的形式。 b) 时钟信号的选择 秒信号由单片机提供,使用程序由时、分、秒计数。采用这种方案的优点在于,它可以有效减少电路的复杂程度,减少多余芯片的使用,节约成本。并可以减少时间误差,以
7、达到设计要求。c) 总体设计方案 根据以上方案所述本次毕业设计采取的总体方案如下:用锁存芯片来扩展I/O 口,控制 LED 点阵 40 个列线;5 片锁存器 74LS373 组成双缓冲寄存器,驱动 LED 点阵 8 组列线;采用 8*8 的点阵 LED 数码管组成显示模块,显示出运行调试结果;主控系统由 AT89C51 组成,通过它的串行输出动态扫描来实现时和分的显示。1.2.2 软件部分设计将需要实现的功能用 Keil 软件写好程序,并对写入单片机的代码进行编译和调试。3第 2 章 硬件电路的设计2.1 晶振电路设计晶振电路部分由两个值为 30uf 的电容 C1、C2 和一个 6MHz 的晶
8、振 X1 串联组成。由它产生的振荡信号可以保证精度高而且稳定并且频率稳定在6MHz,次方波信号提供给单片机作为一个时钟信号,当定时器需要定时的时候使用。图 2-1 晶振电路部分2.2 复位电路设计复位电路由一个数值为 10uf 的电容和一个按键串联组成,电路中的复位设定为上电与按键均有效的模式,当电路上电时,RST 引脚获得一个高电频,随着 C3 电容不断的在运行过程中充电,所以导致 RST 引脚的高电频不断地下降。因为 RST 引脚上的高电频只能维持两个机器周期的时间,所以单片机就可以通过这个复位电路进行复位操作。在电路运行期间,当按下按键开关的瞬间,RST 上的电频立即变为高电频,以此来实
9、现电路复位图 2-2 复位电路部分42.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 并行的方式,该芯片是常用的
10、三态门 8D 锁存器。只有当同时满足以下两个条件时,D 端的数据才会被锁存到锁存器的输出端,即有正脉冲输入到门控端 G,有效的高电频输出控制 OE。其它情况下,当G 为低电频,输出 Q 保持不变;当 OE 为低电频,输出 Q 为高阻态。图 2-4 驱动电路部分52.5 总原理图图 2-5 总原理图6第 3 章 系统软件设计3.1 软件流程图设计中,计时采用定时器 T0 中断完成,其余状态循环调用显示子程序,当端口开关按下时,转入相应功能程序。 当计时中断开始时,LED 显示器开始接受信号,接受到一个信号时秒数增加 1,当秒数累计加到 60 时,则分数为主动进 1,分数位累计加到 60 时,时数
11、位主动增加 1。秒针、分针、时针只要有一位未接受到信号,那么系统就会自动结束。其程序执行流程见下图NYNYNY图 3-1 程序执行流程图计时终端开始1s 到?秒加 11min?到分加 11h 到?时加 1结束73.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 ;/秒十
12、位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+DPTR MOV P2,R4MOV P0,AMOV P1,#0FEH INC 3BHINC R48LCALL DELAYDJNZ R5,LOOP00MOV A,31H ;显示要显档的数字MOV B,#08HMUL ABMOV 3BH,AMOV R4,#00HMOV R5,#08
13、HLOOP11: MOV A,3BHMOV DPTR,#TABEMOVC A,A+DPTRMOV P2,R4MOV P0,AMOV P1,#0FDHINC 3BHINC R4LCALL DELAY DJNZ 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,#0FBH9INC 3BHINC R4LCALL DELAYDJNZ R5,LOOP22MOV A,33H
14、 ;显示要显档的数字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,R410MOV P0,AMO
15、V P1,#0EFHINC 3BHINC R4LCALL DELAYDJNZ R5,LOOP44POP PSWPOP ACCRET11第 4 章 系统调试与仿真Keil 是德国 Keil Software 公司出品的单片机集成开发软件,该软件支持 51单片机的所有变种(目前共有 400 多种型号)。Keil 提供了包括 C 编译器、宏汇编、连接器、库管理及一个功能强大的仿真调试在内的完整开发方案,并通过一个集成开发环境(Vision2)将这些部分组合在一起。Keil 单片机集成开发软件可以运行在 Windows98/NT/2000 及 XP 等操作系统下。4.1 开发过程a)建立项目图 4-1
16、(a-1) 建立新项目12图 4-1(a-2) 保存新项目图 4-1(a-3 ) 选择 CPU13b)新建文件,将文件保存并改成 abc.c 文件,再将程序输入到文件中并进行编译。图 4-1(b-1) 创建程序文件图 4-1(b-2) 保存程序文件14c)生成 hex 文件并进行编译图 4-1(c) 生成 hex 文件4.2 下载、调试a)打开 Proteus,双击单片机并将 hex 文件加进去,点击 “OK”即可。15图 4-2(a)b)按下仿真键,即出现如下图初始仿真结果。初始时间显示为 12:00,所有元器件未报错,结果正确。16图 4-2(b) 初始仿真结果图c)电路仿真过程中,按下按
17、键 S1 时 LED 显示器的分钟显示将以步进为 1进行进位变化。当按下按键 S2 时 LED 显示器的时钟显示也以步进为 1 进行进位变化,调试结果如下图所示:LED 分别显示为 12:03 和 13:02,说明元器件连接正确,程序编写没有出现错误。17图 4-2(c) 分钟部分仿真结果图18图 4-2(c) 时钟部分仿真结果图19总 结 经过一个星期的奋战我们的课程设计终于完成了。在没有做课程设计以前觉得课程设计只是对这本学期来所学知识的单纯总结,但是通过这次做课程设计发现自己的看法有点太片面。在课程设计中我们设计了基于 AT89C52 单片机的 LED 点阵电子钟,采用的并行方式的显示方
18、案来实现。该电子时钟由 AT89C52,74LS373 数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时。单片机具有体积小,成本低,抗干扰能力强,面向控制,可以实现分机各分布式控制等优点。电子显示器就是利用单片机的上述优点,采用目前市场上性能价格比较高的 AT89C52 单片机设计而成的最小系统。它在实际生活中具有广泛的应用。 电子钟由显示电路,行驱动电路,列驱动电路,中央控制器,按键电路和复位电路组成。 在这次课设中,LED 点阵作为电子时钟的显示屏,最大的优点在于其显示内容的多样性,为用户提供了灵活的人机交互界面。同时由于在这里采用带晶振的单片机
19、,使得电子时钟不仅走准确,而且可以利用单片机的高度灵活性,为电子时钟扩充许多显来诸如定时自动报警、按时自动打铃、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启动等。 课程设计前前后后一共进行了一个星期,这一周的时间里,从电路的绘制到调试仿真,再到到论文的完成,遇到了许多的挫折和失败。在遇到困难时我不断寻找出路解决难题,在老师和同学的帮助下最终完成了这篇课程设计。我深深地认识到在书本上学知识是完全不够的,只有将理论与实际相结合,将知识运用到现实中,才能发挥最大力量。 在今后的工作中将面临更大的挑战,通过这次的毕设我懂得了只要将知识转化为力量,一切难题都可以迎刃而解。
20、20参 考 文 献1 皮大能,党楠,齐家敏.单片机原理及应用.西北工业大学出版社,2015.12 周景润.PROTEUS 入门实用教程M北京.机械工业出版社,20073 楼然苗,李光飞.51 系列单片机设计实例M北京:北京航空航天大学出版社,20034 徐爱钧,彭秀华. 单片机高级语言汇编与 Vision2 应用实践M北京:电子工业出版社,2008. 21附 录ORG =0000HLJMP MAINORG 0003H LJMP PINT0 ORG 000BHLJMP INTT0ORG 0013HLJMP PINT1ORG 0030HMAIN: MOV SP,#60HMOV TMOD,#01HM
21、OV 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 IT0SETB IT1SETB PT0SETB TR0LOOP0: LCALL DISPLJMP LOOP0INTT0: MOV TL0,#0e0HMOV TH0,#0b1HPUSH ACCPUSH PSWINC 36HMOV A,36HCJNE A,#25,PLLMOV 32
22、H,#0BHPLL: CJNE A,#50,ENDD ;1SMOV 32H,#0AH22MOV 36H,#00HINC 35HMOV A,35HCJNE A,#60,ENDd ;分个位MOV 35H,#00HINC 34HMOV A,34HCJNE A,#0AH,ENDd ;分个位MOV 34H,#00HINC 33HMOV A,33HCJNE A,#06H,ENDd ;分十位MOV 33H,#00HINC 31HMOV A,30HCJNE A,#02H,END1MOV A,31HCJNE A,#04H,END1 ;时个位MOV 31H,#00HMOV 30H,#00HEND1: MOV A,
23、31HCJNE A,#0AH,ENDd ;时个位MOV 31H,#00HINC 30HENDd: POP PSWPOP ACCRETIDISP: PUSH ACCPUSH PSWMOV A,30H ;显示要显示的数字MOV B,#08HMUL ABMOV 3BH,AMOV R4,#00HMOV R5,#08HLOOP00: MOV A,3BHMOV DPTR,#TABEMOVC A,A+DPTRMOV P2,R4MOV P0,A23MOV P1,#0FEHINC 3BHINC R4LCALL DELAYDJNZ R5,LOOP00MOV A,31H ;显示要显档的数字MOV B,#08HMUL
24、 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 3BHINC R4LCA
25、LL DELAYDJNZ R5,LOOP22MOV A,33H ;显示要显档的数字MOV B,#08HMUL AB24MOV 3BH,AMOV R4,#00HMOV R5,#08HLOOP33: MOV A,3BHMOV DPTR,#TABEMOVC 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,#TABEMO
26、VC A,A+DPTRMOV P2,R4MOV P0,AMOV P1,#0EFHINC 3BHINC R4LCALL DELAYDJNZ R5,LOOP44POP PSWPOP ACCRETDELAY: MOV 37H,#50DEL: MOV 38H,#4DJNZ 38H,$DJNZ 37H,DELRETTABE: ;0DB 00H,18H,24H,24H,24H,24H,18H,00H25;1DB 00H,10H,30H,10H,10H,10H,38H,00H;2DB 00H,18H,24H,04H,18H,20H,3CH,00H;3DB 00H,18H,24H,18H,04H,24H,18
27、H,00H;4DB 00H,08H,18H,28H,7CH,08H,08H,00H;5DB 00H,1CH,10H,18H,04H,24H,18H,00H;6DB 00H,18H,24H,38H,24H,24H,18H,00H;7DB 00H,3CH,28H,08H,10H,10H,10H,00H;8DB 00H,18H,24H,18H,24H,24H,18H,00H;9DB 00H,18H,24H,24H,1CH,24H,18H,00H;:DB 00H,00H,18H,18H,00H,18H,18H,00H;DB 00H,00H,00H,00H,00H,00H,00H,00HRETPINT0
28、: MOV 4AH,#20DJNZ 4AH,$JB P3.2, END_DD MOV 36H,#00HINC 34HMOV A,34HCJNE A,#0AH,END_DD ;分个位MOV 34H,#00HINC 33HMOV A,33HCJNE A,#06H,END_DD ;分十位MOV 33H,#00HEND_DD: RETIPINT1: MOV 4AH,#20DJNZ 4AH,$JB P3.3,END_DINC 31HMOV A,30H26CJNE A,#02H,END_1MOV A,31HCJNE A,#04H,END_1 ;时个位MOV 31H,#00HMOV 30H,#00HEND_1: MOV A,31HCJNE A,#0AH,END_d ;时个位MOV 31H,#00HINC 30HEND_D: RETI END