1、 盐城工学院课程设计说明书(2013)课 程 设 计 说 明 书用 LED 数码管设计的可调式电子钟专业学生姓名班级学号指导教师完成日期 2013 年 6 月 28 日盐城工学院课程设计说明书(2013)0用 LED 数码管设计的可调式电子钟摘要:数字电子时钟电路设计系统,以 AT89C51单 片 机 为 控 制 核 心 , 由 键 盘 显 示 、 定 时 闹铃、LED 共阴极数码管和 LED 灯显示等功能模块组成。基于题目基本要求,本系统对时间显示和定时报警进行了重点设计。本系统大部分功能由软件来实现,吸收了硬件软件化的思想,大部分功能通过软件来实现,使电路简单明了,系 统 稳 定 性 大
2、大 提高 。 本系统不仅成功的实现了要求的基本功能,而且有一定的创新功能。关键字:单 片 机 ; AT89C51; 数 字 钟Abstract:This digial electronic clock circuit design system ,based on c hip microcomputer AT89C51,is composed by the following functional modules : keyboard displaying , timing alarmg. common cathode LED digital tube, LED lights display,
3、and so on. According to the basic requirements of the subject ,the system stresses on the realization of Time display and regularly report o the police.The design achieved the required basic technical indexes. Furthermore , adopting the iedao fhardware-to-software, most of those functions are realiz
4、ed by softwares, which makes the electrocircuit more concise and the system more stable. Key words:chip microcomputer;AT89C51:d igital electronic clock盐城工学院课程设计说明书(2013)1目 录1 概述 .31.1 课题研究的目的和意义 .32 课题方案论证 32.1 系统总体设计要求 .32.2 系统模块结构论证 .43 系统硬件设计 43.1 总体设计 .43.2 最小单片机系统 .53.3 按键电路 .63.4 显示电路 .74 软件设计
5、 .84.1 主程序 84.2 显示子程序 84.3 定时器/计数器 T0 中断服务程序 .85 软硬件联调及调试结果 .105.1 调试步骤 .105.2 实际出现的问题及解决方法 .105.3 实物图正面,实物图背面和实物运行图 .11结束语 12参考文献 13附录 13附录 1 原理图 13附录 2 PCB 图 .14附录 3 proteus 仿真图 .15附录 4 C 语言程序清单 16附录 5 元器件清单 19盐城工学院课程设计说明书(2013)21 概述1.1 课题研究的目的和意义此次设计是单片机内部的定时/计数器来实现电子时钟的方法以及借助键盘直接控制整时的调整,本设计根据 AT
6、89C52 单片机系统扩展的基本原理和方法,由单片机 AT89S52 芯片,LED 数码管和键盘为核心,辅以必要的电路,构成了一个单片机电子时钟。一块单片机芯片就是一台计算机,由于单片机以其集成度高、体积小、可靠性高、控制功能强、低电压、低功耗等特点使它应用于智能仪器仪表、机电一体化、实时程控、人类生活中。除此之外还广泛应用办公自动化领域、商业营销领域、汽车及通信系统、计算机外部设备等各领域中,并且单片机已成为计算机发展和应用的一个重要方面。由此可见掌握单片机的使用方法和利用单片机解决实际问题具有重要的意义。而此次的设计刚好用到单片机相关的知识可以说这是这次设计的重要意义和目的所在。再者,此设
7、计的 LED 电子时钟主要是显时间的,是时钟用途。在此设计的基础上人们还可根据不同的需求和不同的设计水平做出不同的设计项目。也可以加上日期,温度的显示和闹钟的功能。如果设计水平还更高的话还可以设计 LED 电子显示屏。因此说,LED 电子时钟设计是最简单和基础的。而且电子时钟很实用,准确性也很好,也容易调节,若有毁坏更换元器件也简单,制作原理和过程也很易懂易做,成本也不高。在此设计间也包含了很多的知识,跟我所学专业又对口,所以,做这个 LED 电子时钟是个很用很好很值得做的设计。2 课题方案论证2.1 系统总体设计要求本次设计中的 LED 数码管电子时钟电路采用 24 小时制记时方式。本次设计
8、采用 AT89C52 单片机的扩展芯片和 2 个 74LS04 做驱动,由八块 LED 数码管构成的显示系统,与传统的基于 8/16 位普通单片机的 LED 显示系统相比较,本系统在不显著地增加系统成本的情况下,可支持更多的 LED 数码管稳定显示。设计采用AT89C52 单片机,配备 11.0592MHz 晶振,复位电路为上电复位。采用软件译码动态显示,考虑直接用单片机 I/O 口作为位选时可能驱动功率不够,可采用三极管作驱动共阳极数码管显示。8 位 8 段 LED 数码管作正常、调时显示,时间按时分秒排列,时钟误差:24 小时误差 35 秒,并且在按键的作用下可以进行调时,调分,复位功能。
9、本电路采用直流 5V 电源供电。同时为了限流保护电路也用了若干个阻值不等的电阻。在本文一开始做了一些概述主要说明此设计的目的和意义,并会对这类设计项目发展情况做个简介。这是对这次设计很重要的一个认识是前提和设计者必须明确和了解的。然后本文对此设计做了一些简要分析,这对理清设计思想很重要。然后还对设计中用到的元器件进行比较全面的介绍。只有真正了解了元器件的特性和功能才能让这些元器件在设计中起到作用。电子整个设计第一步是电路原理图,它直接关系盐城工学院课程设计说明书(2013)3着后续的工作。接着当原理图完成好后就要为后面的刻板做准备了,这就是 PCB 印制电路板的制作。它影响了整个设计的布局是能
10、不能成功的条件。紧接着就是程序了,如果只有硬件电路而没有程序,那么这个设计将一文不值,也就是说是一堆破铜烂铁。所以这部分也是非常重要的。最后结合整个设计总结了一些心得体会为这次的设计画上完满的句号。也为以后更好的设计提供经验。2.2 系统模块结构论证按照系统设计功能的要求,确定系统由 4 个模块组成:主控制器、扫描驱动、调节电路和显示电路。数码管电子钟电路结构框图如图 2-2 所示。调节电路AT89C52主控制器显示电路扫描驱动图 2-2 电路结构图3 系统硬件设计3.1 总体设计电子钟的原理框图如图 3-1 所示。它由以下几个部件组成:单片机 AT89C52、电源、时分秒显示部件。时分秒显示
11、采用动态扫描,以降低对单片机端口数的要求,同时也降低系统的功耗。时分显示模块以及显示驱动都通过 AT89C52 的 I/O 口控制。电源部分:整流稳压来得到+5V 电压,维持系统的正常工作。电子钟系统原理框图如图 3-1 所示:AT89C52显示驱动显示时间电源图 3-1 电子钟系统原理框图盐城工学院课程设计说明书(2013)43.2 最小单片机系统51单片机最小系统复位电路的极性电容 C1的大小直接影响单片机的复位时间,一般采用1030uF,51单片机最小系统容值越大需要的复位时间越短。51单片机最小系统晶振 Y1也可以采用6 M H Z 或者11.0592MHz,在正常工作的情况下可以采用
12、更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。51单片机最小系统起振电容 C2、C3一般采用1533pF,并且电容离晶振越近越好,晶振离单片机越近越好4.P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。设置为定时器模式时,加1计数器是对内部机器周期计数(1个 机 器 周 期 等于 12个振荡周期,即计数频率为晶振频率的1/12) 。计数值 N 乘 以 机 器 周 期 Tcy 就 是 定时 时 间 t。设置为计数器模式时,外部事件计数脉冲由 T0或 引脚入到计数器。在每个机器周期的 S5P2期间采样 T0、T1引 脚 电 平 。 当
13、 某 周 期 采 样 到 一 高 电 平 输 入 , 而 下 一周 期 又 采 样 到 一 低 电平时,则计数器加1,更新的计数值在下一个机器周期的 S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个 机 器 周 期 , 因 此 要 求 被 采 样的 电 平 至 少 要 维 持 一 个 机 器 周 12MHz 时 , 最 高 计 数 频 率 不 超 过 1/2MHz, 即 计 数 脉 冲 的 周期 要 大 于 2 ms最小系统如图3-2所示:P 1 . 01P 1 . 123P 1 . 24P 1 . 3V C CP 0 . 0P 0 . 1P 0 . 24 03 93 83 7P
14、1 . 45P 1 . 567P 1 . 68P 1 . 7P 0 . 3P 0 . 4P 0 . 5P 0 . 63 63 53 43 3R S T9P 3 . 01 01 1P 3 . 11 2P 3 . 2P 0 . 7E AA L EP S E N3 23 13 02 9P 3 . 31 3P 3 . 41 41 5P 3 . 51 6P 3 . 6P 2 . 7P 2 . 6P 2 . 5P 2 . 42 82 72 62 5P 3 . 71 7X T A L 21 81 9X T A L 12 0G N DP 2 . 3P 2 . 2P 2 . 1P 2 . 02 42 32 22
15、 1V C C1 0 u F1 0 k复位3 0 p3 0 p1 1 . 0 5 9 2M H Z加减盐城工学院课程设计说明书(2013)5图 3-2 最小系统3.3 按键电路按键电路使用的是 AT89C52 单片机的 P1 和 P3 管脚,可调试电子中的按键总共为四个,够哦那个能分别为确定,设置,加,减。通过按键电路,我们可以随意调整电子钟的时间,使单片机发挥它的作用。按键电路图如图 3-3 所示:P 1 . 01P 1 . 123P 1 . 24P 1 . 3V C CP 0 . 0P 0 . 1P 0 . 24 03 93 83 7P 1 . 45P 1 . 567P 1 . 68P 1
16、 . 7P 0 . 3P 0 . 4P 0 . 5P 0 . 63 63 53 43 3R S T9P 3 . 01 01 1P 3 . 11 2P 3 . 2P 0 . 7E AA L EP S E N3 23 13 02 9P 3 . 31 3P 3 . 41 41 5P 3 . 51 6P 3 . 6P 2 . 7P 2 . 6P 2 . 5P 2 . 42 82 72 62 5P 3 . 71 7X T A L 21 81 9X T A L 12 0G N DP 2 . 3P 2 . 2P 2 . 1P 2 . 02 42 32 22 1设置确定加减图 3-3:按键电路图盐城工学院课程
17、设计说明书(2013)63.4 显示电路可调试电子钟的显示电路采用 8 位数码管,显示出时间的时,分,秒。使用的是AT89C52 单片机的 P0 和 P2 管脚,显示电路中还将用到一块 74LS245。显示电路图如图 3-4 所示:P 1 . 01P 1 . 123P 1 . 24P 1 . 3V C CP 0 . 0P 0 . 1P 0 . 24 03 93 83 7P 1 . 45P 1 . 567P 1 . 68P 1 . 7P 0 . 3P 0 . 4P 0 . 5P 0 . 63 63 53 43 3R S T9P 3 . 01 01 1P 3 . 11 2P 3 . 2P 0 .
18、7E AA L EP S E N3 23 13 02 9P 3 . 31 3P 3 . 41 41 5P 3 . 51 6P 3 . 6P 2 . 7P 2 . 6P 2 . 5P 2 . 42 82 72 62 5P 3 . 71 7X T A L 21 81 9X T A L 12 0G N DP 2 . 3P 2 . 2P 2 . 1P 2 . 02 42 32 22 11234567891 01 11 21 31 41 51 6abcdefgd p2345678911 91 11 21 31 41 51 61 71 812345678A 7A 6A 5A 4A 3A 2A 1A 0C
19、EA BB 0B 1B 2B 3B 4B 5B 6B 7ABCDEFGD P12345678R N 15 5 0图 3-4 显示电路盐城工学院课程设计说明书(2013)74 软件设计4.1 主程序主程序执行流程如图 4-1 所示,主程序先对显示单元和定时器/ 计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有键按下,则转入相应的功能程序。开始显示单元清零T 0 , T 1 设为 1 6 位计数模式允许 T 0 中断调用显示子程序进入功能程序是否按键是图 4-1 主程序流程图4.2 显示子程序本系统共用 8 个数码管,从右到左依次显示秒个位、秒十位、横线、分个位、分十位、横线、时个位和
20、时十位。采用软件译码动态显示。由于采用 8 段共阳 LED数码管动态扫描实现数据显示,所以显示用十进制 BCD 码数据的对应段码存放在ROM 中。显示时,先取内存地址中的数据,然后查得对应的显示用段码从 P0 口输出,P1口将对应的数码管选中供电,就能显示该地址单元的数据值。4.3 定时器/计数器 T0 中断服务程序定时器/计数器 T0 用于时间计时。选择方式 1,重复定时,定时时间设为50ms,定时时间到则中断,在中断服务程序中用一个计数器对 50ms 计数,计 20 次盐城工学院课程设计说明书(2013)8则对秒单元加 1,秒单元加到 60 则对分单元加 1,同时秒单元清 0;分单元加到
21、60则对时单元加 1,同时分单元清 0;时单元加到 24 则对时单元清 0,标志一天时间计满。在对各单元计数的同时,把它们的值放到存储单元的指定位置。定时器/计数器 T0 中断服务程序流程图如图 4-3 所示。开始重置初始 , 启动下一个 5 0 m s5 0 m s 计数器加 15 0 m s 计数器 = 2 0 ?秒单元加 1 , 5 0 m s 计数器清零 , 秒写入秒个位和秒十位秒单元 = 6 0 ?分单元加 1 , 秒单元清零 ,分写入分个位和分十位分单元 = 6 0 ?时单元加 1 , 分单元清零 ,时写入时各位和时十位时单元 = 2 4 ?时单元清零中断返回图 4-3 中断服务程
22、序盐城工学院课程设计说明书(2013)95 软硬件联调及调试结果5.1 调试步骤(1)在 KEIL 软件中编写程序,完成后,单击 “项目”下的“编译” ,产生“.hex”文件。(2)打开 proteus 软件,画上硬件电路图,保存。(3)双击 AT89C52 芯片,在 program file 中加入“.hex”文件,按确定。(4)调试运行。5.2 实际出现的问题及解决方法在 proteus 仿真软件调试成功后,实际却出现了一些问题,市场上没有买到排阻,所以用 8 个 10K 的电阻代替。由于数码管无法直接点亮,需要驱动,所以用了非门74LS04 作为驱动,可是代码不能再用共阳极的了,所以把代
23、码改成共阴的,实际电路板上就能成功运行了。仿真图如图 5-2 所示图 5-2proteus 仿真图盐城工学院课程设计说明书(2013)105.3 实物图正面,实物图背面和实物运行图图 5-3-1 实物图正面图 5-3-2 实物图反面盐城工学院课程设计说明书(2013)11图 5-3-3 实物运行图结束语由于电路设计合理,功能电路基本能实现设计要求。从硬件焊接反方面来说,觉得比较棘手的就是在焊数码管时,和整体器件的布局。布局不好会影响后面工序的焊接,在这点上我自己觉得做的很不错,布线焊接模块功能区分明确。在编程中遇到的最大困难就是延时的计算和数码管的显示程序段,在整体程序来看,我采用程序的结构化
24、,使程序明朗,各功能程序段都以子程序的方式调用,所以在主程序中是相当的简单明朗的。在硬件和软件的结合过程中也遇到比较大的问题,就是一开始数码管不是显示 8,就是乱码之类的,进过调试,现在没有出现这样的现象了。这也是我的一大攻关吧。但是,对于程序我还是很不好以后在这方面要多多加强。在整个设计过程中我学会了很多,不仅巩固了我的专业知识,提升了我的学习能力和知识能力,也使我学习到很多书上没有的,更加强了我的动手能力。从这次的设计中我确实受益匪浅,我想也不枉陆老师对我的一路辅导与帮助。我相信,以后有机会一定会做更多这样的设计。大学三年,一晃就过去了,我很想靠自己的专业做个东西给自己留念。再也就想考验一
25、下自己三年的学习成果,不负老师三年来的教诲和付出的心血。在做设计的同时使自己再学习、再提高。是展示自己学习成果的时机,是对自己的一种肯定。盐城工学院课程设计说明书(2013)12参考文献1 实验指导书(陆广平编) 实验 122 李光飞,楼然苗 . 单片机课程设计指导书 R. 北京:北京航空航天大学出版社, 20073 李广弟. 单片机基础 M. 北京:北京航空航天大学出版社,1994附录附录 1 原理图P 1 . 01P 1 . 123P 1 . 24P 1 . 3V C CP 0 . 0P 0 . 1P 0 . 24 03 93 83 7P 1 . 45P 1 . 567P 1 . 68P
26、1 . 7P 0 . 3P 0 . 4P 0 . 5P 0 . 63 63 53 43 3R S T9P 3 . 01 01 1P 3 . 11 2P 3 . 2P 0 . 7E AA L EP S E N3 23 13 02 9P 3 . 31 3P 3 . 41 41 5P 3 . 51 6P 3 . 6P 2 . 7P 2 . 6P 2 . 5P 2 . 42 82 72 62 5P 3 . 71 7X T A L 21 81 9X T A L 12 0G N DP 2 . 3P 2 . 2P 2 . 1P 2 . 02 42 32 22 1V C C1 0 u F1 0 k复位3 0
27、p3 0 p1 1 . 0 5 9 2M H Z123456盐 城 工 学 院专业电气工程班级姓名B 电气 1 0 1图号A 4共 1 张 第 1 张课题名称比例图名系统原理图设计审核日期学号1 : 1莫斌华2 0 1 3 . 6 . 1 67891 01 11 21 31 41 51 6abcdefgd p2345678911 91 11 21 31 41 51 61 71 812345678A 7A 6A 5A 4A 3A 2A 1A 0C EA B设置确定加减B 0B 1B 2B 3B 4B 5B 6B 7ABCDEFGD P123456781 0 1 0 6 0 1 1 0 3L E
28、D 设计的可调式电子钟R N 15 5 0附录-1 原理图盐城工学院课程设计说明书(2013)13附录 2 PCB 图盐城工学院课程设计说明书(2013)14附录 3 proteus 仿真图附录-3 proteus 仿真图盐城工学院课程设计说明书(2013)15附录 4 C 语言程序清单#include#define uchar unsigned char#define uint unsigned intuchar temp1,temp2,temp3,aa,miaoshi,miaoge,fenshi,fenge,shishi,shige;uchar code table=0x03,0x9f,0
29、x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0xfd;void display(uchar shishi,uchar shige,uchar fenshi,uchar fenge,uchar miaoshi,uchar miaoge);sbit S1=P10;sbit S2=P11;sbit S3=P12;void delay(uint z);void init();void main()init();while(1)if(S1=0)temp3+;while(S1=0);if(S2=0)temp2+;while(S2=0);if(S3=0)temp1+;whi
30、le(S3=0);盐城工学院课程设计说明书(2013)16if(aa=20)aa=0;temp1+;if(temp1=60)temp1=0;temp2+;if(temp2=60)temp2=0;temp3+;if(temp3=24)temp3=0;miaoshi=temp1/10;miaoge=temp1%10;fenshi=temp2/10;fenge=temp2%10;shishi=temp3/10;shige=temp3%10;display(shishi,shige,fenshi,fenge,miaoshi,miaoge);void delay(uint z)uchar x,y;for
31、(x=z;x0;x-)for(y=110;y0;y-); void display(uchar shishi,uchar shige,uchar fenshi,uchar fenge,uchar miaoshi,uchar miaoge)盐城工学院课程设计说明书(2013)17P2=0xbf;P0=tablemiaoshi;delay(5);P2=0x7f;P0=tablemiaoge;delay(5);P2=0xf7;P0=tablefenshi;delay(5);P2=0xef;P0=tablefenge;delay(5);P2=0xfe;P0=tableshishi;delay(5);P
32、2=0xfd;P0=tableshige;delay(5);P2=0xdf;P0=0xfd;delay(5);P2=0xfb;P0=0xfd;delay(5);void init()temp1=21;temp2=24;temp3=21;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;void timer0()interrupt 1盐城工学院课程设计说明书(2013)18TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa+;附录 5 元器件清单元件名称 型号 数量52 单片机 STC89C52 1 个非门驱动电路 HD74LS04 2 个瓷片电容 30pf 2 个电解电容 10uf 1 个4 位共阳集数码管CAI5461BH 2 个晶振 11.0592MHz 1 个按键 4 个单片机插座 40 引脚 1 个10k 8 个电阻1k 1导线 若干万能板 1 个发光二极管 1 个