已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(论文)基于单片机的电子时钟设计学生姓名: 学 号: 所在系部: 专业班级: 指导老师: 日 期: based on single-chip electronic clock design by may 2012 学位论文原创性声明本人郑重声明:所呈交的学位论文是本人在导师的指导下独立进行研究所取得 研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。 二一二年五月二十八日 学位论文版权使用授权书 本学位论文作者完全了解学员有关保管和使用学位论文的规定,同意学院保留并向有关学位论文管理部门或机构送交论文的复印和电子版,允许论文被查阅和借阅。本人授权省级优秀学士学位轮本评选机构将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印或缩印扫描等复制手段保存和汇入本学位论文。 二一二年五月二十八日 摘 要20 世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社 会的各个领域, 有力地推动了社会生产力的发展和社会信息化程度的提高, 同时也使现代 电子产品性能进一步提高,产品更新换代的节奏也越来越快. 现代生活的人们越来越重视起了时间观念, 可以说是时间和金钱划上了等号. 对于那 些对时间把握非常严格和准确的人或事来说, 时间的不准确会带来非常大的麻烦, 所以以 数码管为显示器的时钟比指针式的时钟表现出了很大的优势. 数码管显示的时间简单明了 而且读数快,时间准确显示到秒.而机械式的依赖于晶体震荡器,可能会导致误差. 数字钟是采用数字电路实现对时分秒数字显示的计时装置.数字钟的精度,稳定度远远超过老式机械钟.在这次设计中,我们采用 led 数码管显示时,分,秒, 以 24 小时计时方式,根据数码管动态显示原理来进行显示,用 12mhz 的晶振产生振荡脉 冲,定时器计数.在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调 整.数字钟是其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大 消费的喜爱,因此得到了广泛的使用. 关键字:数字电子钟 单片机 abstractat the end of the 20th century, electronic technology has experienced rapid growth, the modern electronic products, almost permeated the various sectors of society, and promoted the development of social productive forces and the social informatization level, but also improve the modern electronic products to further improve the performance, product update rhythm also more and more quickly. modern life of people pay more and more attention to the concept of time, money and time on the hospital. for those in time and accurately grasp the very strict about or inaccurate, time will bring great trouble, so as to displays clock digital tube than the pointer clock showed a lot of advantages. digital pipe display time is simple and accurate readings, time to seconds. and mechanical dependent on crystal oscillators, may cause errors. a digital clock is used in digital circuit , points and second digital display timer. a digital clock accuracy and stability than old mechanical clock. in this design, we adopt led digital display tube, minutes and seconds, when in 24 hours time, according to the principle of dynamic display of digital tube to show, with the crystals 12mhz produce oscillation pulses, timer count. in this design, the circuit has its time, still can realize the function of the time. a digital clock is its small, inexpensive, high precision, easy to use and when, the function is much, facilitate integration by vast consumption, so it has been widely used.key words: digital electric clock microcontroller. 目 录摘 要iabstractii第一章引言7第二章方案论证与比较82.1数字时钟方案82.2数码管显示方案8第三章系统设计93.1总体设计93.1.1系统说明93.1.2系统框图93.2模块设计103.2.1电源部分103.2.2复位电路103.2.3程序下载接口113.2.4位选部分113.2.5数码管的连接电路123.2.6控制部分13第四章原理图与pcb图15第五章软件设计165.1程序流程图175.2源程序19第六章总结256.1物品清单与元件特性256.2设计总结26参考文献28致 谢30第一章 引 言1.1 电子时钟的研究背景及国内外发展现状时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用led显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:ds1302,ds12887,x1203等都可以满足高精度的要求。本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机at89s51芯片和led数码管为核心,辅以必要的电路,构成了一个单片机电子时钟。第二章 方案论证与比较2.1数字时钟方案数字时钟是本设计的最主要的部分。根据需要,可利用两种方案实现。方案一:本方案采用dallas公司的专用时钟芯片ds12887a。该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。方案二:本方案完全用软件实现数字时钟。原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。该方案具有硬件电路简单的特点。但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。基于硬件电路的考虑,本设计采用方案二完成数字时钟的功能。2.2数码管显示方案方案一:静态显示。所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。该方式每一位都需要一个8 位输出口控制。静态显示时较小的电流能获得较高的亮度,且字符不闪烁。但当所显示的位数较多时,静态显示所需的i/o口太多,造成了资源的浪费。方案二:动态显示。所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。调整参数可以实现较高稳定度的显示。动态显示节省了i/o口,降低了能耗。从节省i/o口和降低能耗出发,本设计采用方案二。 第三章 系统设计3.1总体设计3.1.1系统说明利用单片机(at89s51)制作简易电子时钟,由六个led数码管分别显示小时十位、小时个位、分钟十位、分钟个位、秒钟十位、秒钟个位。6个pnp管(9012)分别控制六个数码管的亮灭,一个按键用于时间调整。3.1.2系统框图显示部分控制部分单片机(at89s51)按键s2复位电路电源部分直流电源4.5v6个七段共阴极数码管2.1数字时钟方案数字时钟是本设计的最主要的部分。根据需要,可利用两种方案实现。方案一:本方案采用dallas公司的专用时钟芯片ds12887a。该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。方案二:本方案完全用软件实现数字时钟。原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。该方案具有硬件电路简单的特点。但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。基于硬件电路的考虑,本设计采用方案二完成数字时钟的功能。2.2数码管显示方案方案一:静态显示。所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。该方式每一位都需要一个8 位输出口控制。静态显示时较小的电流能获得较高的亮度,且字符不闪烁。但当所显示的位数较多时,静态显示所需的i/o口太多,造成了资源的浪费。方案二:动态显示。所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。调整参数可以实现较高稳定度的显示。动态显示节省了i/o口,降低了能耗。从节省i/o口和降低能耗出发,本设计采用方案二。显示秒,分钟及小时位位选部分6个pnp三极管(9012)图3-13.2模块设计3.2.1电源部分 图3-2如图3-2所示,从外部引入4.5v的直流电,为单片机、复位电路提供电源。3.2.2复位电路图3-3如图3-3所示,复位电路主要由型号为1n4148的二极管,型号为10uf/16v的电解电容,型号为104的瓷片电容,10k的电阻以及按键s1构成,s1接芯片的相应引脚rst,当开关按下时引脚rst为高电平1,断开时引脚为低电平0。3.2.3程序下载接口图3-4如图3-4所示,由at89s isp构成的两排十针下载口,板图上有一个小方框,为1号引角;下载线的凸口为正方向,凸口的右侧边的第一个插孔为1号引角。3.2.4位选部分图3-5图3-5为位选电路,三极管的集电极接数码管的公共端,当p2口对应的引脚输出高电平时三极管导通,对应的数码管显示数据。这样,在同一时刻,6位led中只有选通的那1位显示出字符,而其他5位则是熄灭的。同样,在下一时刻,只让下一位的位选线处于选通状态,而其他个位的位选线处于关闭状态,在段码线上输出将要显示字符的段码,则同一时刻,只有选通位显示出相应的字符,而其他各位则是熄灭的。如此循环下去,就可以使各位显示出将要显示的字符。虽然这些字符是在不同时刻出现的,而在同一时刻,只有一位显示,其他各位熄灭,但由于led的余辉和人眼的视觉暂留作用,只要每位显示间隔足够短,则可以造成多位同时亮的假象,达到同时显示的效果。3.2.5数码管的连接电路图3-6图3-6为数码管的引脚图,每位的段码线(a,b,c,d,e,f,g,dp)分别与1个8位的锁存器输出相连,由at89s51控制组合09十个数据,如令其显示1则b,c引脚(即2,3引脚)送高电平,此时数码管显示1。由于各位的段码线并联,8位i/o口输出段码对各个显示位来说都是相同的。3.2.6控制部分图3-7at89s51是美国atmel公司生产的低功耗,高性能cmos 8位单片机,片内含4k bytes的可系统编程的flash只读程序存储器,器件采用atmel公司的高密度,非易失性存储技术生产,兼容标准8051指令系统及引脚。at89s51提供以下标准功能:4k字节flash闪速存储器,128字节内部ram,32i/o口线,看门狗(wdt),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。如图3-7所示,at89s51有40引脚,双列直插(dip)封装,所用引脚功能如下:1. vcc 运行时加4.5v2. gnd 接地3. xtal1 振荡器反相放大器及内部时钟发生器的输入端4. xtal2 振荡器反相放大器的输出端5. rst 复位输入,高电平有效,在晶振工作时,在rst引脚上作用2个机器周期以上的高电平,将使单片机复位。wdt溢出将使该引脚输出高电平,设置sft auxr的disrto位(地址8eh)可打开或关闭该功能。disrto位缺省为reset输出高电平打开状态。6. ea/vpp 片外程序存储器访问允许信号。欲使cpu仅访问外部程序存储器(地址为0000h-ffffh),ea端必须保持低电平(接地),如果ea端为高电平(接vcc端),cpu则执行内部程序存储器中的指令。7. p1口,p2口p1,p2是一组带内部上拉电阻的8位双向i/o口。运行时通过p1口控制驱动电路的工作,将数据送到数码管,显示相应的段码,为了达到减少功耗或满足端口对最大电流的限制,应加上一限流电阻。p2.0p2.5口控制数码管的位选,使六个数码管轮流显示数据,等于1时位选三极管导通,等于0 时位选三极管截止。8. 无自锁开关(s2p3.7)开关接相应引脚p3.7,当开关按下时,相应引脚为低电平0,断开时引脚为高电平1。 第四章 原理图与pcb图图4-1第五章 软件设计5.1程序流程图主程序开始设定定时器常数,开中断显示时间到1秒?t0中断现场保护重装定时器初值满20次否?满24小时否?满60秒否?满60分否?恢复现场时值加1时缓冲单元清零秒值加1分缓冲单元清零秒缓冲单元清零分值加1结束时钟调整程序关闭显示,省电状态分钟闪烁,调时状态分值加1按键s2时间t1时值=24?按键s2时间t0.5按键s2时间t0.5时钟闪烁,调时状态分值=60?分值清零时值加1时值清零返回显示s2是否按下5.2源程序表5-1 p1口对应段码及数值:显示数字p1.7p1.6p1.5p1.4p1.3p1.2p1.1p1.016进制代码dpgfedcba0001111113fh10000011006h2010110115bh3010011114fh40110011066h5011011016dh6011111017dh70000011107h8011111117fh9011011116fh; ; 中断入口程序; ;org 0000h;程序执行开始地址ljmp start;跳到标号start执行org 0003h;外中断0中断程序入口reti;外中断0中断返回org 000bh;定时器t0中断程序入口ljmp intt0;跳至intto执行org 0013h;外中断1中断程序入口reti ;外中断1中断返回org 001bh;定时器t1中断程序入口ljmp intt1;跳至intt1执行org 0023h;串行中断程序入口地址reti;串行中断程序返回; 主 程 序 ; start: mov r0,#70h ;清70h-7ah共11个内存单元 mov r7,#0bh ;clr p3.7; cleardisp: mov r0,#00h ; inc r0 ; djnz r7,cleardisp ; mov 20h,#00h ;清20h(标志用) mov 7ah,#0ah ;放入熄灭符数据 mov tmod,#11h ;设t0、t1为16位定时器 mov tl0,#0b0h ;50ms定时初值(t0计时用) mov th0,#3ch ;50ms定时初值 mov tl1,#0b0h ;50ms定时初值(t1闪烁定时用) mov th1,#3ch ;50ms定时初值 setb ea ;总中断开放 setb et0 ;允许t0中断 setb tr0 ;开启t0定时器 mov r4,#14h ;1秒定时用初值(50ms20) start1: lcall display ;调用显示子程序 jnb p3.7,setmm1 ;p3.7口为0时转时间调整程序 sjmp start1 ;p3.7口为1时跳回start1 setmm1: ljmp setmm ;转到时间调整程序setmm; 1秒计时程序;t0中断服务程序 intt0: push acc ;累加器入栈保护 push psw ;状态字入栈保护 clr et0 ;关t0中断允许 clr tr0 ;关闭定时器t0 mov a,#0b7h ;中断响应时间同步修正 add a,tl0 ;低8位初值修正 mov tl0,a ;重装初值(低8位修正值) mov a,#3ch ;高8位初值修正 addc a,th0 ; mov th0,a ;重装初值(高8位修正值) setb tr0 ;开启定时器t0 djnz r4, outt0 ;20次中断未到中断退出 addss: mov r4,#14h ;20次中断到(1秒)重赋初值 mov r0,#71h ;指向秒计时单元(71h-72h) acall add1 ;调用加1程序(加1秒操作) mov a,r3 ;秒数据放入a(r3为2位十进制数组合) clr c ;清进位标志 cjne a,#60h,addmm ; addmm: jc outt0 ;小于60秒时中断退出 acall clr0 ;大于或等于60秒时对秒计时单元清0 mov r0,#77h ;指向分计时单元(76h-77h) acall add1 ;分计时单元加1分钟 mov a,r3 ;分数据放入a clr c ;清进位标志 cjne a,#60h,addhh ; addhh: jc outt0 ;小于60分时中断退出 acall clr0 ;大于或等于60分时分计时单元清0 mov r0,#79h ;指向小时计时单(78h-79h) acall add1 ;小时计时单元加1小时 mov a,r3 ;时数据放入a clr c ;清进位标志 cjne a,#24h,hour ; hour: jc outt0 ;小于24小时中断退出 acall clr0 ;大于或等于24小时小时计时单元清0 outt0: mov 72h,76h ;中断退出时将分、时计时单元数据移 mov 73h,77h ;入对应显示单元 mov 74h,78h ; mov 75h,79h ; pop psw ;恢复状态字(出栈) pop acc ;恢复累加器 setb et0 ;开放t0中断 reti ;中断返回; 闪动调时 程 序 ;t1中断服务程序,用作时间调整时调整单元闪烁指示intt1: push acc ;中断现场保护 push psw ; mov tl1, #0b0h ;装定时器t1定时初值 mov th1, #3ch ; djnz r2,intt1out ;0.3秒未到退出中断(50ms中断6次) mov r2,#06h ;重装0.3秒定时用初值 cpl 02h ;0.3秒定时到对闪烁标志取反 jb 02h,flash1 ;02h位为1时显示单元熄灭 mov 72h,76h ;02h位为0时正常显示 mov 73h,77h ; mov 74h,78h ; mov 75h,79h ;intt1out: pop psw ;恢复现场 pop acc ; reti ;中断退出flash1: jb 01h,flash2 ;01h位为1时,转小时熄灭控制 mov 72h,7ah ;01h位为0时,熄灭符数据放入分 mov 73h,7ah ;显示单元(72h-73h),将不显示分数据 mov 74h,78h ; mov 75h,79h ; ajmp intt1out ;转中断退出flash2: mov 72h,76h ;01h位为1时,熄灭符数据放入小时 mov 73h,77h ;显示单元(74h-75h),小时数据将不显示 mov 74h,7ah ; mov 75h,7ah ; ajmp intt1out ;转中断退出; 加1子 程 序 ; add1: mov a,r0 ;取当前计时单元数据到a dec r0 ;指向前一地址 swap a ;a中数据高四位与低四位交换 orl a,r0 ;前一地址中数据放入a中低四位 add a,#01h ;a加1操作 da a ;十进制调整 mov r3,a ;移入r3寄存器 anl a,#0fh ;高四位变0 mov r0,a ;放回前一地址单元 mov a,r3 ;取回r3中暂存数据 inc r0 ;指向当前地址单元 swap a ;a中数据高四位与低四位交换 anl a,#0fh ;高四位变0 mov r0,a ;数据放入当削地址单元中 ret ;子程序返回 ; 清零程序 ;对计时单元复零用 clr0: clr a ;清累加器 mov r0,a ;清当前地址单元 dec r0 ;指向前一地址 mov r0,a ;前一地址单元清0 ret ;子程序返回; 时钟调整程序;当调时按键按下时进入此程序 setmm: clr et0 ;关定时器t0中断 clr tr0 ;关闭定时器t0 lcall dl1s ;调用1秒延时程序 jb p3.7,closedis ;键按下时间小于1秒,关闭显示(省电) mov r2,#06h ;进入调时状态,赋闪烁定时初值 setb et1 ;允许t1中断 setb tr1 ;开启定时器t1 set2: jnb p3.7,set1 ;p3.7口为0(键未释放),等待 setb 00h ;键释放,分调整闪烁标志置1 set4: jb p3.7,set3 ;等待键按下 lcall dl05s ;有键按下,延时0.5秒 jnb p3.7,sethh ;按下时间大于0.5秒转调小时状态 mov r0,#77h ;按下时间小于0.5秒加1分钟操作 lcall add1 ;调用加1子程序 mov a,r3 ;取调整单元数据 clr c ;清进位标志 cjne a,#60h,hhh ;调整单元数据与60比较 hhh: jc set4 ;调整单元数据小于60转set4循环 lcall clr0 ;调整单元数据大于或等于60时清0 clr c ;清进位标志 ajmp set4 ;跳转到set4循环 closedis: setb et0 ;省电(led不显示)状态。开t0中断 setb tr0 ;开启t0定时器(开时钟) close: jb p3.7,close ;无按键按下,等待。 lcall display ;有键按下,调显示子程序延时削抖 jb p3.7,close ;是干扰返回close等待 waith: jnb p3.7,waith ;等待键释放 ljmp start1 ;返回主程序(led数据显示亮) sethh: clr 00h ;分闪烁标志清除(进入调小时状态) sethh1: jnb p3.7,set5 ;等待键释放 setb 01h ;小
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024至2030年中国塑胶化工产品行业投资前景及策略咨询研究报告
- 2024至2030年中国95%烟嘧磺隆原药行业投资前景及策略咨询研究报告
- 2024年中国葱末市场调查研究报告
- 2024年中国绿茶泡腾饮片市场调查研究报告
- 2024年中国犁刀传动箱盖市场调查研究报告
- 2024年中国2-茚醇市场调查研究报告
- 黑龙江省安全员-A证考试题库及答案
- 福建省安全员C证考试(专职安全员)题库及答案
- 重庆市建筑安全员-C证(专职安全员)考试题库
- 乐器批发商的供应链风险管理考核试卷
- 中国青少年篮球训练教学大纲-姚维
- 长方体的表面积说课市公开课一等奖省赛课微课金奖课件
- 中医药与中华传统文化智慧树知到期末考试答案2024年
- 产品质量保证函模板
- 模板支撑脚手架集中线荷载、施工总荷载计算表(修正)
- GB/T 43700-2024滑雪场所的运行和管理规范
- 新媒体部门岗位配置人员架构图
- 球磨机岗位作业指导书
- 眼科护理滴眼药水论文
- 市级社保基金运行分析报告
- 2024年辽宁省水资源管理集团招聘笔试参考题库附带答案详解
评论
0/150
提交评论