优秀毕业论文(设计):基于AT89S51单片机的电子时钟设计.doc_第1页
优秀毕业论文(设计):基于AT89S51单片机的电子时钟设计.doc_第2页
优秀毕业论文(设计):基于AT89S51单片机的电子时钟设计.doc_第3页
优秀毕业论文(设计):基于AT89S51单片机的电子时钟设计.doc_第4页
优秀毕业论文(设计):基于AT89S51单片机的电子时钟设计.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于 AT89S51 单片机的电子时钟设计 摘 要 随着电子技术的迅猛发展,单片机以极高的性能价格比受到人们的重视和 关注。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可 靠性高、灵活性好、开发较为容易,被广泛地应用在电力电子、工业自动化控 制、自动检测、智能仪器仪表、家用电器等各个方面,其中,钟表的数字化给 人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸 如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭路 灯、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这 些,都是以钟表数字化为基础的。因此,研究数字钟的原理及扩大其应用,有 着非常现实的意义。本课题运用所学的单片机原理及应用、数字电子技术等知 识以 AT89S51 单片机为核心,配备 LED 显示模块、报时模块等功能模块设计 一款简易的数码时钟。它由 4.5V 直流电源供电,采用 24 小时制方式,通过数 码管能够准确显示时间,调整时间,从而到达学习、设计、开发软、硬件的能 力,这对提高单片机应用及相关电子电路知识综合应用能力有重要意义。 关键词:数码时钟,AT89S51,控制部分,LED 目 录 1 前言 1 2 方案论证与比较 .1 2.1 数字时钟方案 .1 2.2 数码管显示方案 .2 3 系统设计 2 3.1 总体设计 .2 3.1.1 系统说明 2 3.1.2 系统框图 2 3.2 模块设计 .3 3.2.1 电源部分 3 3.2.2 复位电路 3 3.2.3 程序下载接口 4 3.2.4 位选部分 4 3.2.5 数码管的连接电路 5 3.2.6 控制部分 6 3.3 电路原理图及 PCB 图8 3.4 元件清单 .9 4 软件设计 .9 4.1 程序流程图 .9 4.2 源程序 .11 5 功能介绍与调试要点 .20 总 结 .21 致 谢 .22 参考文献 .23 1 前言 时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科 学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎 样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们 不断设计出新型时钟。现今,高精度的计时工具大多数都使用了石英晶体振荡 器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定 性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代 替机械式传动,用 LED 显示器代替显示器代替指针显示进而显示时间,减小了 计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对, 片选的灵活性好。 时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基 础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常 工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定 了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常 有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实 现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯 片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯 片有:DS1302,DS12887,X1203 等都可以满足高精度的要求。 本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计 由单片机 AT89S51 芯片和 LED 数码管为核心,辅以必要的电路,构成了一个 单片机电子时钟。 2 方案论证与比较 2.1 数字时钟方案 数字时钟4是本设计的最主要的部分。根据需要,可利用两种方案实现。 方案一:本方案采用 Dallas 公司的专用时钟芯片 DS12887A。该芯片内部 采用石英晶体振荡器,其芯片精度不大于 10ms/年,且具有完备的时钟闹钟功 能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。为保证时 钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电 池。当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。而 且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随 时提供正确的时间。 方案二:本方案完全用软件实现数字时钟。原理1为:在单片机内部存储 器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现 1 秒定时中断,每产生一次中断,存储器内相应的秒值加 1;若秒值达到 60,则 将其清零,并将相应的分字节值加 1;若分值达到 60,则清零分字节,并将时 字节值加 1;若时值达到 24,则将十字节清零。该方案具有硬件电路简单的特 点。但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。 而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。 基于硬件电路的考虑,本设计采用方案二完成数字时钟的功能。 2.2 数码管显示方案 方案一:静态显示。所谓静态显示,就是当显示器显示某一字符时,相应 的发光二极管恒定的导通或截止。该方式每一位都需要一个 8 位输出口控制。 静态显示时较小的电流能获得较高的亮度,且字符不闪烁。但当所显示的位数 较多时,静态显示所需的 I/O 口太多,造成了资源的浪费。 方案二:动态显示。所谓动态显示8就是一位一位的轮流点亮各个位,对 于显示器的每一位来说,每隔一段时间点亮一次。利用人的视觉暂留功能可以 看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。显示器的亮度既 与导通电流有关,也于点亮时间与间隔时间的比例有关。调整参数可以实现较 高稳定度的显示。动态显示节省了 I/O 口,降低了能耗。 从节省 I/O 口和降低能耗出发,本设计采用方案二。 3 系统设计 3.1 总体设计 3.1.1 系统说明 利用单片机(AT89S51)制作简易电子时钟,由六个 LED 数码管分别显示 小时十位、小时个位、分钟十位、分钟个位、秒钟十位、秒钟个位。6 个 PNP 管(9012)分别控制六个数码管的亮灭,一个按键用于时间调整。 3.1.2 系统框图 本设计系统框图如图 1 示。 图 1 系统框图 3.2 模块设计 3.2.1 电源部分 如图 2 所示,从外部引入 4.5V 的直流电流,为单片机、复位电路提供电源。 图 2 电源电路 3.2.2 复位电路 如图 3 所示,复位电路2主要由型号为 1N4148 的二极管,型号为 10UF/16V 的电解电容,型号为 104 的瓷片电容,10K 的电阻以及按键 S1 构成, S1 接芯片的相应引脚 RST,当开关按下时引脚 RST 为高电平 1,断开时引脚为 低电平 0。 图 3 复位电路 3.2.3 程序下载接口 如图 4 所示,由 AT89S ISP 构成的两排十针下载口,板图上有一个小方框, 为 1 号引角;下载线的凸口为正方向,凸口的右侧边的第一个插孔为 1 号引角。 图 4 AT89S ISP 3.2.4 位选部分 如图 5 所示,三极管的集电极接数码管的公共端6,当 P2 口对应的引脚 输出高电平时三极管导通,对应的数码管显示数据。这样,在同一时刻,6 位 LED 中只有选通的那 1 位显示出字符,而其他 5 位则是熄灭的。同样,在下一 时刻,只让下一位的位选线处于选通状态,而其他个位的位选线处于关闭状态, 在段码线上输出将要显示字符的段码,则同一时刻,只有选通位显示出相应的 字符,而其他各位则是熄灭的。如此循环下去,就可以使各位显示出将要显示 的字符。虽然这些字符是在不同时刻出现的,而在同一时刻,只有一位显示, 其他各位熄灭,但由于 LED 的余辉和人眼的视觉暂留作用,只要每位显示间隔 足够短,则可以造成多位同时亮的假象,达到同时显示的效果。 图 5 位选电路 3.2.5 数码管的连接电路 图 6 为数码管的引脚图3,每位的段码线(a,b,c,d,e,f,g,dp)分别与 1 个 8 位的锁存器输出相连,由 AT89S51 控制组合 09 十个数据,如令其显示 1 则 b,c 引脚(即 2,3 引脚)送高电平,此时数码管显示 1。由于各位的段码线并 联,8 位 I/O 口输出段码对各个显示位来说都是相同的。 图 6 数码管的引脚 3.2.6 控制部分 AT89S51 是美国 ATMEL 公司生产的低功耗,高性能 CMOS 8 位单片机7, 片内含 4K bytes 的可系统编程的 Flash 只读程序存储器,器件采用 ATMEL 公 司的高密度,非易失性存储技术生产,兼容标准 8051 指令系统及引脚。 AT89S51 提供以下标准功能:4K 字节 Flash 闪速存储器,128 字节内部 RAM,32I/O 口线,看门狗(WDT),两个数据指针,两个 16 位定时/计数器, 一个 5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。 如图 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)无自锁开关 (S2P3.7)开关接相应引脚 P3.7,当开关按下时, 相应引脚为低电平 0,断开时引脚为高电平 1。 图 7 控制电路 AT89S51 功能特性: 1、兼容 MCS-51 指令系统。 2、32 个可编程 I/O 口。 3、2 个 16 位可编程定时/计数器。 4、全双工 UART 串行中断口线。 5、6 个中断源。 6、中断唤醒省电模式。 7、看门狗(WDT)电路。 8、4k 可反复擦写(1000 次)ISP Flash ROM。 9、4.0-5.5V 工作电压范围。 10、全静态工作模式:时钟频率 0-33MHz。 11、128x8bit 内部 RAM。 12、低功耗空闲和掉电模式。 13、3 级程序加密锁。 14、掉电标识和快速编程特性。 3.3 电路原理图及 PCB 图 图 8 原理图 图 9 PCB 图 3.4 元件清单 电子时钟元件清单如表 2 所示: 表 2 元件清单 4 软件设计 4.1 程序流程图 主程序流程图如图 10 所示。 图 10 主程序流程图 元件名称元件名称规格型号规格型号单位单位数量数量 瓷片电容 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 三极管 9012 个 6 二极管 1N4148 只 1 按键无自锁只 2 单排插针 条 1 双排插针 条 1 电池盒 个 1 电路板 9.55*5.664CM21 中断处理流程图如图 11 所示。 图 11 中断处理流程图 时钟调整流程图如图 12 所示。 图 12 时钟调整流程图 4.2 源程序 P1 口对应段码及数值如表 3 所示: 表 3 P1 口对应段码及数值 P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0显示数 字 dpgfedcba 16 进 制代码 0001111113FH 10000011006H 2010110115BH 3010011114FH 40110011066H 5011011016DH 6011111017DH 70000011107H 8011111117FH 9011011116FH 电子钟源程序总体设计如下: 中断入口程序: 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 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 循环 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 口复位 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 ;程序结束 5 功能介绍与调试要点 本设计能够很准确的走时,并能够通过硬件对时钟进行时间调整。 (1)功能介绍: 显示 XX:XX:XX 时间。 时间可调:调整键(S2)按下时间小于 1 秒(t0.5s)分钟位闪亮,此时按下 S2 键(t0.5s)时钟位闪亮,此时按下 S2 键(t0.5s),返回到正常显示状态。 下载线和电源线插接说明:1.下载线插接说明:两排十针下载口,板图 上都有一个小方框,为 1 号引角;下载线的凸口为正方向,凸口的右侧边的第 一个插孔为 1 号引角,这一点一定要切记,不然的话程序下载不进去。2.电源 线插接说明:电池盒的红线为正,黑线为负。板子所留出来的电源插口用 VCC(表示电源正)和 GND(表示电源负)标明。 (2)调试要点:首先确保各器件的完好性,其次检测各芯片的电源线和地 线是否接触良好,然后焊接器件,接好电源用万用表检测各电源端、地端的状 态是否正常。检查无误后插上 AT89S51 并烧写一简易的程序,观察电路是否能 协同工作。最后烧写工作程序,根据显示现

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论