来源:电子技术网 作者:佚名 本文介绍了数字钟汇编及C语言程序的系统设计:系统具有时间显示功能,系统以AT89C51为核心,主要进行基于AT89S51低功耗MCU的字符型数字钟及其系统的研究,操作简单,该数字钟能长期、连续,可靠、稳定的工作,可以同时显示小时、分钟和秒,设有三个按键A,B和C:A键调小时,每按下一次小时快速加1、B键调分.每按下一次分钟快速加l,C键复位。 同时还具有体积小、功耗低等特点,便于携带,使用方便,设计包括硬件系统的设计和软件设计,使用了89C51自有脚管去驱动数码管,软件使用单片机汇编语言编程。该汇编程序通过:Keil C51进行编译,生成烧录HEX文件,Keil C51是一个功能强大的开发平台,有功能齐全的软件模拟调试及硬件调试环境。 1 汇编语言数字时钟设计程序 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 定时器T0、T1溢出周期为50MS,T0为秒计数用,T1为调整时闪烁用, ; P3.5为调整按钮,P0口 为字符输出口,P2口为位选端,采用共阳显示管。 ; 时间调整方法:按P3.5未超过1s进入省电模式,数码管不亮,内部时钟计时 ; 按P3.5超过1s进入调整模式,要调整的时间会闪动,此时,按下P3.5超过0.5S, ; 进入下位调整,按下P3.5未超过0.5S,当前位加一 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; 中断入口程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 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 ; 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.5,SETMM1 ;P3.5口为0时转时间调整程序 SJMP START1 ;P3.5口为1时跳回START1 SETMM1: LJMP SETMM ;转到时间调整程序SETMM |