📄 电子时钟.asm
字号:
SDA BIT P1.0 ;I2C总线定义
SCL BIT P1.1
KEY BIT P1.2
ACK BIT 10H ;应答标志位
ZLG7290 EQU 70H ;ZLG7290的器件地址
MTD EQU 40H ;发送数据缓冲器
MRD EQU 49H ;发送数据缓冲器
SLA DATA 50H ;器件的从地址
SUBA DATA 51H ;器件的子地址
NUMBYTE DATA 52H ;读/写的字节数变量
SEC DATA 55H
MIN DATA 56H
HOUR DATA 57H
TIM DATA 58H
LED BIT P1.7
;-----------------------------------------------
ORG 0000H
LJMP MAIN
ORG 000BH
AJMP IINT0
ORG 0030H
MAIN: MOV SP,#70H
MOV TMOD,#61H
MOV IE,#82H
MOV TL0,#LOW(-50000)
MOV TH0,#HIGH(-50000)
SETB TR0
MOV TIM,#20
MOV SEC,#20
MOV MIN,#58
MOV HOUR,#23
WAIT: JB KEY,DISP
LCALL SCANKEY ;调用按键读取程序
LCALL KEYPROC
DISP: MOV A,SEC
MOV B,#10
DIV AB
MOV R0,#1
MOV R1,A
LCALL DISPLAY
MOV R0,#0
MOV R1,B
LCALL DISPLAY
MOV A,MIN
MOV B,#10
DIV AB
MOV R0,#4
MOV R1,A
LCALL DISPLAY
MOV R0,#3
MOV R1,B
LCALL DISPLAY
MOV A,HOUR
MOV B,#10
DIV AB
MOV R0,#7
MOV R1,A
LCALL DISPLAY
MOV R0,#6
MOV R1,B
LCALL DISPLAY
SJMP WAIT
;-----------------------------------------------
KEYPROC:MOV A,MRD
KEY1: CJNE A,#8,KEY2
INC SEC
RETI
KEY2: CJNE A,#16,KEY3
DEC SEC
RET
KEY3: CJNE A,#4,KEY4
INC MIN
RET
KEY4: CJNE A,#12,KEY5
DEC MIN
RET
KEY5: CJNE A,#1,KEY6
INC HOUR
RET
KEY6: CJNE A,#9,KEY7
DEC HOUR
KEY7: RET
;-----------------------------------------------
IINT0: PUSH ACC
PUSH PSW
MOV TL0,#LOW(-50000)
MOV TH0,#HIGH(-50000)
DJNZ TIM,EXIT
MOV TIM,#20
CPL LED
INC SEC
MOV A,SEC
CJNE A,#60,EXIT
MOV SEC,#0
INC MIN
MOV A,MIN
CJNE A,#60,EXIT
MOV MIN,#0
INC HOUR
MOV A,HOUR
CJNE A,#24,EXIT
MOV HOUR,#0
EXIT: POP PSW
POP ACC
RETI
;-----------------------------------------------
$INCLUDE(VI2C_ASM.INC) ;包含VIIC软件包
$INCLUDE(ZLG7290.INC) ;包含7290软件包
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -