二十四小时制电子时钟:利用 51 系列单片机设计一个 24 小时制电子时钟,
电子时钟的时、分、秒数值分别通过 P0、P1、P2 端口输出(以压缩 BCD 码的形
式)。P3.0 为低电平时开始计时,为高电平时停止计时。
File name:
realwork2.2.asm
Description:24 小时制电子时钟,电子时钟的时、分、秒数值分别通过 P0、
P1、P2 端口以压缩 BCD 码的形式输出。P3.0 为低电平时开始计时,为高电平时
停止计时。
Date:2018.10.12
Designed by:XXX
Sourse used: R0:分循环计数;R1:时循环计数
R2:3CH;
R3:3CH;
R4:18H
R5:18H;
R6:3DH;
R7:0AAH
ORG 0000H
LJMP 2000H
ORG 2000H
MOV P0,#00H
;输出端口初始化
MOV P1,#00H
MOV P2,#00H
MOV R0,#00H
;分循环计数
MOV R1,#00H
;时循环计数
MOV R2,#3CH
;1 秒定时循环 60 次
MOV R3,#3CH
;1 分定时循环 60 次
MOV R4,#18H
;1 小时定时循环 24 次
CLR A
CLR C
MOV P3.0,C
CASE: JB P3.0,STOP
;P3.0 端口控制计时和暂停,高电平即暂停
AAA:
MOV R5,#18H
;1 秒定时的三个参数
BBB:
MOV R6,#3DH
CCC:
MOV R7,#0AAH
DELAY:NOP
NOP
;获得 1 秒的定时
DJNZ R7,DELAY
DJNZ R6,CCC
DJNZ R5,BBB
INC A
DA A
;秒数累计加 1
MOV P0,A
;通过 P0 口输出秒数
DJNZ R2,CASE
;循环记“秒”直到记满 60s 停止
MOV R2,#3BH
;秒循环计数复位
CLR A
INC R0
MOV A,R0
DA A
MOV R0,A
MOV P1,R0
;记“分”的循环次数
;通过 P1 口输出“分”数
DJNZ R3,CASE
;循环记“分”直到记满 60min 停止
MOV R3,#3BH
;分循环计数复位
MOV R0,#00H
CLR A
INC R1
MOV A,R1
DA A
MOV R1,A
MOV P2,R1
CLR A
;记“时”的循环次数
;通过 P2 口输出“时”数
DJNZ R4,CASE
;循环记“时”直到记满 24h 停止
MOV R4,18H
MOV R1,#00H
MOV P0,#00H
MOV P1,#00H
MOV P2,#00H
;各种参数复位
SJMP CASE
;记满 24h,回到最开始的状态
STOP: JB P3.0,STOP
SJMP CASE
END