毕业设计(论文)单片机电子时钟程序.doc
文本预览下载声明
单片机电子时钟参考程序
;60H--67H:显示缓冲区
;T0用于产生秒信号,定时器溢出20次为1秒,溢出次数存放单元:53H
;5DH单元存放功能键按键次数,(0--2)(K1键)
;5CH单元存放时间或日期修改位置的按键次数(K2键)
;40H--45H单元存放秒、分、时、日、月、年
;5EH单元存放按键键码
ORG 0000h
LJMP START
ORG 000BH
LJMP ITT0
ORG 0013H
LJMP KEY
ORG 001BH
LJMP T1TIM
ORG 0030H
START: MOV SP,#30H ;设置堆栈首地址
MOV DPTR,#0E001H ;8279命令口地址
MOV A,#0DCH ;清显示RAM
MOVX @DPTR,A
LCALL DELAY100MS
MOV A,#34H ;设置8279分频系数
MOVX @DPTR,A
MOV A,#10H ;设置按键及显示方式
MOVX @DPTR,A
MOV A,#90H ;允许写显示RAM
MOVX @DPTR,A
MOV A,#40H
MOVX @DPTR,A
LCALL CHECK1 ;调自检程序
LCALL ORANGE ;调初始化程序,有时间的初值、按键计数器的初值
;年月日的初值,显示时间的初值
LCALL DISP ;调显示子程序
MOV TMOD,#11H ;设置T0定时器工作方式及初值
MOV TH0,#3CH
MOV TL0,#0B0H
SETB ET0 ;开T0、T1、8279按键中断,启动定时器T0
SETB TR0
SETB EX1
SETB T1
SETB ET1
SETB EA
LOOP: LCALL ABC
SJMP LOOP
;
ABC: MOV A,5DH
CJNE A,#0,ABC1 ;如果K1键标志为非0,则可以修改日期和时间
SETB TR0 ;如果K1键标志为0,则不能修改日期和时间
SETB ET0 ;开启定时器T0
LCALL FLASH ;正常显示时间
LJMP ABC4
ABC1: CJNE A,#1,ABC2 ;若K1键标志为1,允许修改时间
MOV A,5CH
CJNE A,#0,ABC11 ;若K2键标志为0,则小时位闪动,且允许修改
MOV 60H,#0FFH ;修改“小时”位并闪动
MOV 61H,#0FFH
LCALL DISP
LCALL M1S
MOV A,42H
LCALL BCD8
MOV 60H,3DH
MOV 61H,3EH
LCALL DISP
LJMP ABC3
ABC11: CJNE A,#1,ABC12 ;若K2键标志为1,则月闪动,且允许修改
MOV 63H,#0FFH ;修改“分”位并闪动
MOV 64H,#0FFH
LCALL DISP
LCALL M1S
MOV A,41H
LCALL BCD8
MOV 63H,3DH
MOV 64H,3EH
LCALL DISP
LJMP ABC3
ABC12: MOV 66H,#0FFH ;若K2键标志为2,则秒闪动,且允许修改
MOV 67H,#
显示全部