版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 本科学年论文 第 23 页 基于单片机电子时钟设计分析 目 录第一章 引言.2 1.1 数字电子钟的背景.2 1.2 数字电子钟的意义.2第二章 设计方案.2 2.1 数字时钟方案.2 2.2 数码管显示方案.3第三章 系统设计.3 3.1总体设计.3 3.2单片机外围控制电路.3 3.2.1单片机的选择.3 3.2.2控制电路.5 3.2.3电源部分.6 3.2.4复位电路.6 3.2.5程序下载接口.7 3.2.6位选部分.7第四章 软件设计.9 4.1程序流程图.94.2源程序.11第五章 使用调试.18结论.18参考文献.18内容摘要现代社会人们对时间的观念越来越强,时间不准确会给人
2、们带来很大的麻烦,所以数码管为显示器时钟比指针式的显示器表现出了很大的优势。数码管显示的时间简单明了而且读数快、时间准确显示到秒。所以数字电子钟的精度、稳定度远远超过老式机械钟。而机械式的依赖于晶体震荡器,可能会导致误差。在这次设计中,我采用了led数码管显示时、分、秒,以24小时计时方式,根据数码管动态显示原理来进行显示,以at89s51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由4.5v直流电源供电,通过数码管能够准确显示时间,调整时间,并在数码管上显示相应的时间。 关键词 单片机,at89s51,电子时钟 第一章 引 言 1.1 数字电子钟的背景 20世纪末,电子技术获得了
3、飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,而单片机模块中最常见的就是数字电子钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,本设计由单片机at89s51芯片和led数码管为核心,辅以必要的电路,构成了一个单片机电子时钟1.2数字电子钟的意义 数字钟是采用数字电路实现对时、分、秒数字显示的计时装置,广泛用于个人家庭、车站、码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地
4、扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。 第二章 设 计 方 案 2.1 数字时钟方案 本方案完全用软件实现数字时钟。原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。该
5、方案具有硬件电路简单的特点。但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。 基于硬件电路的考虑,本设计采用完全用软件实现数字时钟。2.2 数码管显示方案 方案一:静态显示。所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。该方式每一位都需要一个8 位输出口控制。静态显示时较小的电流能获得较高的亮度,且字符不闪烁。但当所显示的位数较多时,静态显示所需的i/o口太多,造成了资源的浪费。 方案二:动态显示。所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次
6、。利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。调整参数可以实现较高稳定度的显示。动态显示节省了i/o口,降低了能耗。 从节省i/o口和降低能耗出发,本设计采用方案二。 第三章 系 统 设 计 3.1 总体设计 利用单片机(at89s51)制作简易电子时钟,由六个led数码管分别显示小时十位、小时个位、分钟十位、分钟个位、秒钟十位、秒钟个位。6个pnp管(9012)分别控制六个数码管的亮灭,其中一个按键(s1)用于系统复位,另一个按键(s2)用于时间调整。3.2 单片机外围控制电路 3.2.1 单片
7、机的选择 单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和i/o接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。 单片机经过1、2、3、3代的发展,正朝着多功能、高性能、低电压、低功耗、低价格、大存储容量、强i/o功能及较好的结构兼容性方向发展。其发展趋势不外乎以下几个方面: 1、多功能 单片机中尽可能地把所需要的存储器和i/o口都集成在一块芯片上,使得单片机可以实现更多的功能。比如a/d、pwm、pca(可编程计数器阵列)、wdt(监视定时器-看家狗)、高速i/o口及计数器的捕获/比较逻辑等。 有的单片机针对某一个应用
8、领域,集成了相关的控制设备,以减少应用系统的芯片数量。例如,有的芯片以51内核为核心,集成了usb控制器、smart card接口、mp3解码器、can或者i*i*c总线控制器等,led、lcd或vfd显示驱动器也开始集成在8位单片机中。 2、高效率和高性能 为了提高执行速度和执行效率,单片机开始使用risc、流水线和dsp的设计技术,使单片机的性能有了明显的提高,表现为:单片机的时钟频率得到提高;同样频率的单片机运行效率也有了很大的提升;由于集成度的提高,单片机的寻址能力、片内rom(flash)和ram的容量都突破了以往的数量和限制。 由于系统资源和系统复杂程度的增加,开始使用高级语言(如
9、c语言)来开发单片机的程序。使用高级语言可以降低开发 难度,缩短开发周期,增强软件的可读性和可移植性,便于改进和扩充功能。 3、低电压和低功耗 单片机的嵌入式应用决定了低电压和低功耗的特性十分重要。由于cmos等工艺的大量采用,很多单片机可以在更低的电压下工作(1.2v或0.9v),功耗已经降低到ua级。这些特性使得单片机系统可以在更小电源的支持下工作更长的时间。 4.价格 价格是一个很重要的因素,如果成本过高就不能普及不能大规模的生产。那样就有很多人不能用上。目前,我国生产很多型号的单片机,在此,我们采用型号为at89c51的单片机。因为:at89c51的时钟频率可以为零,即具备可用软件设置
10、的睡眠省电功能,系统的唤醒方式有ram、定时/计数器、串行口和外中断口,系统唤醒后即进入继续工作状态。省电模式中,片内ram将被冻结,时钟停止振荡,所有功能停止工作,直至系统被硬件复位方可继续运行。 3.2.2 控制电路 图3-2控制电路at89s51是美国atmel公司生产的低功耗,高性能cmos 8位单片机,片内含4k bytes的可系统编程的flash只读程序存储器,器件采用atmel公司的高密度,非易失性存储技术生产,兼容标准8051指令系统及引脚。at89s51提供以下标准功能:4k字节flash闪速存储器,128字节内部ram,32i/o口线,看门狗(wdt),两个数据指针,两个1
11、6位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。 如图3-2所示,at89s51有40引脚,双列直插(dip)封装,所用引脚功能如下: 1. vcc 运行时加4.5v2. gnd 接地 3. xtal1 振荡器反相放大器及内部时钟发生器的输入端 4. xtal2 振荡器反相放大器的输出端 5. rst 复位输入,高电平有效,在晶振工作时,在rst引脚上作用2个机器周期以上的高电平,将使单片机复位。wdt溢出将使该引脚输出高电平,设置sft auxr的disrto位(地址8eh)可打开或关闭该功能。disrto位缺省为reset输出高电平打开状态。 6. e
12、a/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,当开关按下时,相应引脚
13、为低电平0,断开时引脚为高电平1。3.2.3 电源部分 图3-3电源电路 如图3-3所示,从外部引入4.5v的直流电,为单片机、复位电路提供电源。3.2.4 复位电路 图3-4复位电路如图3-4所示,复位电路主要由型号为1n4148的二极管,型号为10uf/16v的电解电容,型号为104的瓷片电容,10k的电阻以及按键s1构成,s1接芯片的相应引脚rst,当开关按下时引脚rst为高电平1,断开时引脚为低电平0。3.2.5 程序下载接口图3-5程序下载接口模块 如图3-5所示,由at89s isp构成的两排十针下载口,板图上有一个小方框,为1号引角;下载线的凸口为正方向,凸口的右侧边的第一个插孔
14、为1号引角。3.2.6 位选部分 图3-6位选电路 图3-6为位选电路,三极管的集电极接数码管的公共端,当p2口对应的引脚输出高电平时三极管导通,对应的数码管显示数据。这样,在同一时刻,6位led中只有选通的那1位显示出字符,而其他5位则是熄灭的。同样,在下一时刻,只让下一位的位选线处于选通状态,而其他个位的位选线处于关闭状态,在段码线上输出将要显示字符的段码,则同一时刻,只有选通位显示出相应的字符,而其他各位则是熄灭的。如此循环下去,就可以使各位显示出将要显示的字符。虽然这些字符是在不同时刻出现的,而在同一时刻,只有一位显示,其他各位熄灭,但由于led的余辉和人眼的视觉暂留作用,只要每位显示
15、间隔足够短,则可以造成多位同时亮的假象,达到同时显示的效果。 第四章软 件 设 计4.1程序流程图4.2源程序表4-1 p1口对应段码及数值:显示数字p1.7p1.6p1.5p1.4p1.3p1.2p1.1p1.016进制代码dpgfedcba0001111113fh10000011006h2010110115bh3010011114fh40110011066h5011011016dh6011111017dh70000011107h8011111117fh9011011116fh; ; 中断入口程序; ;org 0000h;程序执行开始地址ljmp start;跳到标号start执行org 0
16、003h;外中断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 ;
17、 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
18、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 ;重装
19、初值(高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) a
20、call 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 72
21、h,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 ;
22、重装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
23、,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寄存器
24、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
25、;关闭定时器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秒加
26、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 ;有键按下,调显示子程
27、序延时削抖 jb p3.7,close ;是干扰返回close等待 waith: jnb p3.7,waith ;等待键释放 ljmp start1 ;返回主程序(led数据显示亮) sethh: clr 00h ;分闪烁标志清除(进入调小时状态) sethh1: jnb p3.7,set5 ;等待键释放 setb 01h ;小时调整标志置1 set6: jb p3.7,set7 ;等待按键按下 lcall dl05s ;有键按下延时0.5秒 jnb p3.7,setout ;按下时间大于0.5秒退出时间调整 mov r0,#79h ;按下时间小于0.5秒加1小时操作 lcall add1 ;
28、调加1子程序 mov a,r3 ; clr c ; cjne a,#24h,houu ;计时单元数据与24比较 houu: jc set6 ;小于24转set6循环 lcall clr0 ;大于或等于24时清0操作 ajmp set6 ;跳转到set6循环 setout: jnb p3.7,setout1 ;调时退出程序。等待键释放 lcall display ;延时削抖 jnb p3.7,setout ;是抖动,返回setout再等待 clr 01h ;清调小时标志 clr 00h ;清调分标志 clr 02h ;清闪烁标志 clr tr1 ;关闭定时器t1 clr et1 ;关定时器t1中
29、断 setb tr0 ;开启定时器t0 setb et0 ;开定时器t0中断(计时开始) ljmp start1 ;跳回主程序 set1: lcall display ;键释放等待时调用显示程序(调分) ajmp set2 ;防止键按下时无时钟显示 set3: lcall display ;等待调分按键时时钟显示用 ajmp set4 set5: lcall display ;键释放等待时调用显示程序(调小时) ajmp sethh1 ;防止键按下时无时钟显示 set7: lcall display ;等待调小时按键时时钟显示用 ajmp set6 setout1: lcall display
30、 ;退出时钟调整时键释放等待 ajmp setout ;防止键按下时无时钟显示; 显示程序 ; 显示数据在70h-75h单元内,用六位led共阳数码管显示,p0口输出段码数据,p3口作; 扫描控制,每个led数码管亮1ms时间再逐位循环。 display: mov r1,#70h ;指向显示数据首址 mov r5,#0feh ;扫描控制字初值 play: mov a,r5 ;扫描字放入a mov p2,a ;从p2口输出 mov a,r1 ;取显示数据到a mov dptr,#tab ;取段码表地址 movc a,a+dptr ;查显示数据对应段码 mov p1,a ;段码放入p0口 lcal
31、l dl1ms ;显示1ms inc r1 ;指向下一地址 mov a,r5 ;扫描控制字放入a jnb acc.5,endout ;acc.5=0时一次显示结束 rl a ;a中数据循环左移 mov r5,a ;放回r5内 ajmp play ;跳回play循环 endout: setb p2.5 ;一次显示结束,p2口复位 mov p1,#0ffh ;p0口复位 ret ;子程序返回 tab: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;1ms延时程序,led显示程序用 dl1ms: mov r6,#14h dl1: mov r7,#19h dl2
32、: djnz r7,dl2 djnz r6,dl1 ret;20ms延时程序,采用调用显示子程序以改善led的显示闪烁现象 ds20ms: acall display acall display acall display ret;延时程序,用作按键时间的长短判断 dl1s: lcall dl05s lcall dl05s ret dl05s: mov r3,#20h ;8毫秒*32=0.196秒 dl05s1: lcall display djnz r3,dl05s1 ret end ;程序结束第五章 使 用 调 试 1.显示xx:xx:xx时间 2.时间可调:调整键(s2)按下时间小于1秒(t0.5s)分钟位闪亮,此时按下s2键(t0.5s)时钟位闪亮,此时按下s2键(t0.5s),返回到正常显示状态。 3.下载线和电源线插接说明:1.下载线插接说明:两排十针下载口,板图上都有一个小方框,为1号引角;下载线的凸口为正方向,凸口的右
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 违规行为自律保证书
- 2024年七年级数学下册 第10章 一元一次不等式和一元一次不等式组10.1不等式说课稿(新版)冀教版
- 2024秋八年级数学上册 第4章 实数4.2 立方根说课稿(新版)苏科版
- 江西省万载县株潭中学高中语文 1.1 天下有道丘不与易也教案 新人教版选修《先秦诸子选读》
- 2024-2025学年高中历史 第一单元 古代中国经济的基本结构与特点 第1课 发达的古代农业新课教案1 新人教版必修2
- 2024-2025学年新教材高中地理 第2单元 乡村与城镇 第2节 地域文化与城乡景观教案 鲁教版必修2
- 高考地理一轮复习第十三章区域与区域发展课件
- 2024企业主要负责人应知应会重点内容
- 9.3《声声慢》-高一语文上学期同步备课拓展(统编版必修上册)
- 苏教版 燕子课件
- SY-T 5374.2-2023 固井作业规程 第2部分-特殊固井
- ISO 55000-2024 资产管理 术语、综述和原则(中文版-雷泽佳翻译-2024)
- 2024秋二年级道德与法治上册 第10课 我们不乱扔教案 新人教版
- 学习违纪违法案件查处通报心得体会3篇
- 监理见证取样工作计划
- 天津2024年天津职业技术师范大学附属高级技术学校招聘笔试历年典型考题及考点附答案解析
- 大学生职业规划书奶茶店
- 全册教学设计(教学设计)-五年级上册劳动苏教版
- 2024-2029年中国绵绵冰机行业市场现状分析及竞争格局与投资发展研究报告
- 奥鹏-中国医科大学2024年7月《新药研讨与开发(本科)》(答案)作业考核试题
- 《中药种植技术》课件-第八章 药用植物病虫害及其防治
评论
0/150
提交评论