为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

单片机电子时钟设计

2017-09-02 25页 doc 202KB 17阅读

用户头像

is_676837

暂无简介

举报
单片机电子时钟设计单片机电子时钟设计 摘 要 单片机自20世纪70年代问世以来~以其极高的性能价格比~受到人们的重视和关注~应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点~在我国~单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面~而51单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习、应用~以AT89S51芯片为核心~辅以必要的电路~设计了一个简易的电子时钟~它由4.5V直流电源供...
单片机电子时钟设计
单片机电子时钟设计 摘 要 单片机自20世纪70年代问世以来~以其极高的性能价格比~受到人们的重视和关注~应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点~在我国~单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪、家用电器、电力电子、机电一体化设备等各个方面~而51单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习、应用~以AT89S51芯片为核心~辅以必要的电路~设计了一个简易的电子时钟~它由4.5V直流电源供电~通过数码管能够准确显示时间~调整时间~从而到达学习、设计、开发软、硬件的能力。 关键词:单片机 AT89S51 电子时钟 数码管 第一章 前言 时钟~自从它发明的那天起~就成为人类的朋友~但随着时间的推移~科学技术的不断发展~人们对时间计量的精度要求越来越高~应用越来越广。怎样让时钟更好的为人民服务~怎样让我们的老朋友焕发青春呢,这就要求人们不断设计出新型时钟。 现今~高精度的计时工具大多数都使用了石英晶体振荡器~由于电子钟~石英表~石英钟都采用了石英技术~因此走时精度高~稳定性好~使用方便~不需要经常调校~数字式电子钟用集成电路计时时~译码代替机械式传动~用LED显示器代替显示器代替指针显示进而显示时间~减小了计时误差~这种表具有时~分~秒显示时间的功能~还可以进行时和分的校对~片选的灵活性好。 时钟电路在计算机系统中起着非常重要的作用~是保证系统正常工作的基础。在一个单片机应用系统中~时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号~主要由晶振和外围电路组成~晶振频率的大小决定了单片机系统工作的快慢,二是指系统的标准定时时钟~即定时时间~它通常有两种实现:一是用软件实现~即用单片机内部的可编程定时/计数器来实现~但误差很大~主要用在对时间精度要求不高的场合,二是用专门的时钟芯片实现~在对时间精度要求很高的情况下~通常采用这种方法~典型的时钟芯片有:DS1302~DS12887~X1203等都可以满足高精度的要求。 本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法~本设计由单片机AT89S51芯片和LED数码管为核心~辅以必要的电路~构成了一个单片机电子时钟。 1 第二章 论证与比较 2.1数字时钟方案 数字时钟是本设计的最主要的部分。根据需要~可利用两种方案实现。 方案一:本方案采用Dallas公司的专用时钟芯片DS12887A。该芯片内部采用石英晶体振荡器~其芯片精度不大于10ms/年~且具有完备的时钟闹钟功能~因此~可直接对其以用于显示或设臵~使得软件编程相对简单。为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作~芯片内部包含锂电池。当电网电压不足或突然掉电时~系统自动转换到内部锂电池供电系统。而且即使系统不上电~程序不执行时~锂电池也能保证芯片的正常运行~以备随时提供正确的时间。 方案二:本方案完全用软件实现数字时钟。原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断~每产生一次中断~存储器内相应的秒值加1,若秒值达到60~则将其清零~并将相应的分字节值加1,若分值达到60~则清零分字节~并将时字节值加1,若时值达到24~则将十字节清零。该方案具有硬件电路简单的特点。但由于每次执行程序时~定时器都要重新赋初值~所以该时钟精度不高。而且~由于是软件实现~当单片机不上电~程序不执行时~时钟将不工作。 基于硬件电路的考虑~本设计采用方案二完成数字时钟的功能。 2.2数码管显示方案 方案一:静态显示。所谓静态显示~就是当显示器显示某一字符时~相应的发光二极管恒定的导通或截止。该方式每一位都需要一个8 位输出口控制。静态显示时较小的电流能获得较高的亮度~且字符不闪烁。但当所显示的位数较多时~静态显示所需的I/O口太多~造成了资源的浪费。 方案二:动态显示。所谓动态显示就是一位一位的轮流点亮各个位~对于显示器的每一位来 2 说~每隔一段时间点亮一次。利用人的视觉暂留功能可以看到整个显示~但必须保证扫描速度足够快~字符才不闪烁。显示器的亮度既与导通电流有关~也于点亮时间与间隔时间的比例有关。调整参数可以实现较高稳定度的显示。动态显示节省了I/O口~降低了能耗。 从节省I/O口和降低能耗出发~本设计采用方案二。 3 第三章 系统设计 3.1总体设计 3.1.1系统说明 利用单片机,AT89S51,制作简易电子时钟~由六个LED数码管分别显示小时十位、小时个 位、分钟十位、分钟个位、秒钟十位、秒钟个位。6个PNP管,9012,分别控制六个数码管的亮 灭~一个按键用于时间调整。 3.1.2系统框图 电源部分 按键S2 复位电路 直流电源4.5V 控制部分 单片机(AT89S51) 显示部分 位选部分 6个PNP三极管(9012) 6个七段共阴极数码管 显示秒,分钟及小时位 图3-1 4 3.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。 5 3.2.3程序下载接口 图3-4 如图3-4所示~由AT89S ISP构成的两排十针下载口~板图上有一个小方框~为1号引角,下载线的凸口为正方向~凸口的右侧边的第一个插孔为1号引角。 3.2.4位选部分 图3-5 图3-5为位选电路~三极管的集电极接数码管的公共端~当P2口对应的引脚输出高电平时三极管导通~对应的数码管显示数据。这样~在同一时刻~6位LED中只有选通的那1位显示出字符~而其他5位则是熄灭的。同样~在下一时刻~只让下一位的位选线处于选通状态~而其他个位的位选线处于关闭状态~在段码线上输出将要显示字符的段码~则同一时刻~只有选通位显示出相应的字符~而其他各位则是熄灭的。如此循环下去~就可以使各位显示出将要显示的字符。虽然这些字符是在不同时刻出现的~而在同一时刻~只有一位显示~其他各位熄灭~但由于LED的余辉和人眼的视觉暂留作用~只要每位显示间隔足够短~则可以造成多位同时亮的假象~达到同时显示的效果。 6 3.2.5数码管的连接电路 图3-6 图3-6为数码管的引脚图~每位的段码线,a,b,c,d,e,f,g,dp,分别与1个8位的锁存器输出相连~由AT89S51控制组合0,9十个数据~如令其显示1则b,c引脚,即2~3引脚,送高电平~此时数码管显示1。由于各位的段码线并联~8位I/O口输出段码对各个显示位来说都是相同的。 3.2.6控制部分 图3-7 7 AT89S51是美国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.5V 2. 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.0——P2.5口控制数码管的位选~使六个数码 管轮流显示数据~等于1时位选三极管导通~等于0 时位选三极管截止。 8. 无自锁开关——,S2,P3.7,开关接相应引脚P3.7~当开关按下时~相应引脚为低电平0~ 断开时引脚为高电平1。 8 第四章 原理图与PCB图 图4-1 图4-2 9 第五章 软件设计 5.1程序图 T0中断 主程序开始 现场保护 重装定时器初值 满20次否, 设定定时器常数, 开中断 秒值加1 满60秒否, 到1秒, 秒缓冲单元清零 分值加1 显示时间 满60分否, 分缓冲单元清零 时值加1 满24小时否, 时缓冲单元清零 恢复现场 结束 10 时钟调整程序 关闭显S2是否按键S2时间t>1 示,省电按下 状态 分钟闪烁,调时状态 时钟闪烁, 调时状态 按键S2时间 t<0.5 按键S2时分值加1 间t<0.5 分值=60, 时值加1 分值清零 时值=24, 时值清零 返回显示 11 5.2源程序 表5-1 P1口对应段码及数值: 显示数P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 16进制字 代码 dp g f e d c b a 0 0 0 1 1 1 1 1 1 3FH 1 0 0 0 0 0 1 1 0 06H 2 0 1 0 1 1 0 1 1 5BH 3 0 1 0 0 1 1 1 1 4FH 4 0 1 1 0 0 1 1 0 66H 5 0 1 1 0 1 1 0 1 6DH 6 0 1 1 1 1 1 0 1 7DH 7 0 0 0 0 0 1 1 1 07H 8 0 1 1 1 1 1 1 1 7FH 9 0 1 0 1 1 1 1 6FH 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; 中断入口程序;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 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 ;串行中断程序返回 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; 主 程 序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 12 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秒定时用初值,50MS×20, 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 ; 13 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 ;中断退出 14 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 ;子程序返回 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; 时钟调整程序;; 15 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;当调时按键按下时进入此程序 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 SET6: JB P3.7,SET7 ;等待按键按下 LCALL DL05S ;有键按下延时0.5秒 JNB P3.7,SETOUT ;按下时间大于0.5秒退出时间调整 MOV R0,#79H ;按下时间小于0.5秒加1小时操作 LCALL ADD1 ;调加1子程序 MOV A,R3 ; CLR C ; CJNE A,#24H,HOUU ;计时单元数据与24比较 HOUU: JC SET6 ;小于24转SET6循环 LCALL CLR0 ;大于或等于24时清0操作 AJMP SET6 ;跳转到SET6循环 16 SETOUT: JNB P3.7,SETOUT1 ;调时退出程序。等待键释放 LCALL DISPLAY ;延时削抖 JNB P3.7,SETOUT ;是抖动~返回SETOUT再等待 CLR 01H ;清调小时标志 CLR 00H ;清调分标志 CLR 02H ;清闪烁标志 CLR TR1 ;关闭定时器T1 CLR ET1 ;关定时器T1中断 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 ;退出时钟调整时键释放等待 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口 LCALL 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口复位 17 RET ;子程序返回 TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;1MS延时程序~LED显示程序用 DL1MS: MOV R6,#14H DL1: MOV R7,#19H DL2: 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 ;程序结束 18 第六章 总结 6.1物品清单与元件特性 表6-1 物品清单: 元件名称 型号 单位 数量 瓷片电容 104 只 1 瓷片电容 30P 只 2 电解电容 47UF/16V 只 1 电解电容 10UF/16V 只 2 电阻 10k 只 1 电阻 4.7k 只 6 芯片 AT89S51 片 1 芯片座 DIP40 只 1 无源晶振 12M 只 1 7段数码管 0.5寸/共阴 只 6 三极管 个 6 9012 二极管 1N4148 只 1 按键 无自锁 只 2 单排插针 条 1 双排插针 条 1 电池盒 个 1 电路板 9.55*5.664 CM2 1 表6-2 AT89S51功能特性: ? 兼容MCS-51指令系统 ? 4k可反复擦写(>1000次,ISP Flash ROM ? 32个可编程I/O口 ? 4.0-5.5V工作电压范围 ? 2个16位可编程定时/计数器 ? 全静态工作模式:时钟频率0-33MHz 19 ? 全双工UART串行中断口线 ? 128x8bit内部RAM ? 6个中断源 ? 低功耗空闲和掉电模式 ? 中断唤醒省电模式 ? 3级程序加密锁 ? 看门狗,WDT,电路 ? 掉电标识和快速编程特性 6.2设计总结 本设计能够很准确的走时~并能够通过硬件对时钟进行时间调整。 , 功能介绍: 1. 显示XX:XX:XX时间 2. 时间可调:调整键,S2,按下时间小于1秒,t<1s,~关闭显示,省电,。调整键,S2, 按下,t>0.5s,分钟位闪亮~此时按下S2键,t<0.5s,该个位数值加1~当加到9时~再 按下S2键则该个位显示0~分钟十位加1。继续按下调整键,S2,,t>0.5s,时钟位闪亮~ 此时按下S2键,t<0.5s,该个位数值加1~当加到9时再按下加S2键则该个位显示0~ 时钟十位加1。继续按下调整键,S2,,t>0.5s,~返回到正常显示状态。 3. 下载线和电源线插接说明:1.下载线插接说明:两排十针下载口~板图上都有一个小方 框~为1号引角,下载线的凸口为正方向~凸口的右侧边的第一个插孔为1号引角~这 一点一定要切记~不然的话程序下载不进去。2.电源线插接说明:电池盒的红线为正~ 黑线为负。板子所留出来的电源插口用VCC,表示电源正,和GND,表示电源负,标明。 , 调试要点:首先确保各器件的完好性~其次检测各芯片的电源线和地线是否接触良好~然后焊接器件~接好电源用万用表检测各电源端、地端的状态是否正常。检查无误后插上AT89S51并烧写一简易的程序~观察电路是否能协同工作。最后烧写工作程序~根据显示现象调试程序直至成功。上电运行时~数码管开始显示00:00:00~时钟开始走时。 , 制作心得:在这次课程设计的调试过程中~我遇到很多问题~如:由于跳转指令出错~导致整个程序在运行时进入死循环~修改时没有根据流程盲目查找原因浪费许多时间~又由于考虑不周~时钟显示29:89。该电路缺少整点报时及闹钟功能~由于能力和时间问题只能到此为止~很是遗憾~但在查找资料的过程中学到了许多~同时在协作过程中增进同学间的友谊。 20 21 22
/
本文档为【单片机电子时钟设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索