数字时钟中断程序汇编程序及原理(3)
发布时间:2021-06-10
发布时间:2021-06-10
AT89S51 单片机实验及实践教程开 始
计数单元清零 TH0,TL0 装入初值 开中断, 并允许 T0 中断 秒按键识别成功否? SECOND 加 1 SECOND=60 吗? SECOND=0 显示数据处理 分按键识别成功否? MINITE 加 1 MINITE=60 吗? MINITE=0 显示数据处理 时按键识别成功否? HOUR 加 1 HOUR=24 吗? HOUR=0 显示数据处理
- 107 -
AT89S51 单片机实验及实践教程T0 中断入口
通过查表方式显示数据
数码位选加 1
位选数值=8 吗?
位选数值=0
秒计数加 1
秒计数=500 吗?
秒计数=0
SECOND 加 1
SECOND=60 吗? SECOND=0, MINITE 加 1 并 MINITE=60 吗? MINITE=0,并 HOUR 加 1 HOUR=24 吗? HOUR=0 显示数据处理 中断返回
- 108 -
6. 汇编源程序
SECOND EQU 30H
MINITE EQU 31H
HOUR EQU 32H
HOURK BIT P0.0
MINITEK BIT P0.1
SECONDK BIT P0.2
DISPBUF EQU 40H
DISPBIT EQU 48H
T2SCNTA EQU 49H
T2SCNTB EQU 4AH
TEMP EQU 4BH
ORG 00H
LJMP START
ORG 0BH
LJMP INT_T0
START: MOV SECOND,#00H
MOV MINITE,#00H
MOV HOUR,#12
MOV DISPBIT,#00H
MOV T2SCNTA,#00H
MOV T2SCNTB,#00H
MOV TEMP,#0FEH
LCALL DISP
MOV TMOD,#01H
MOV TH0,#(65536-2000) / 256
MOV TL0,#(65536-2000) MOD 256
SETB TR0
SETB ET0
SETB EA
WT: JB SECONDK,NK1
LCALL DELY10MS
JB SECONDK,NK1
INC SECOND
MOV A,SECOND
CJNE A,#60,NS60
MOV SECOND,#00H
NS60: LCALL DISP
JNB SECONDK,$
NK1: JB MINITEK,NK2
LCALL DELY10MS
JB MINITEK,NK2
INC MINITE
MOV A,MINITE
CJNE A,#60,NM60
MOV MINITE,#00H
NM60: LCALL DISP
JNB MINITEK,$
NK2: JB HOURK,NK3
LCALL DELY10MS
JB HOURK,NK3
INC HOUR
上一篇:北京市师大附中2011-2012学年高二物理上学期期中
下一篇:第7章 存储器系统