AT89C2051 单片机时钟设计程序
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; AT89C2051 时钟程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; 定时器 T0、T1 溢出周期为 50MS,T0 为秒计数用, T1 为调整时闪烁用,
; P3.7 为调整按钮,P1 口 为字符输出口,采用共阳显示管。
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 中断入口程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
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 中断
评论1