📄 1302yybsz.asm
字号:
ORG 0000H
AJMP MA
ORG 0013H
AJMP DT
ORG 0030H
BTT DATA 50H
BYT DATA 51H
COM DATA 52H
RCV DATA 30H
XMT DATA 38H
IO BIT P1.5
DCLK BIT P1.6
RST BIT P1.4
K1 BIT P1.0 ;定义按键K1
K2 BIT P1.1 ;定义按键K2
K3 BIT P1.2
K4 BIT P1.3
;/////////////////////////////////////////////////
MA:LCALL DYS
MOV P2,#0FFH
MOV P0,#0FFH
MOV P1,#0FFH ;端口初始化
CLR A
MOV R0,#20H
DD:MOV @R0,A
INC R0
CJNE R0,#5FH,DD
LCALL DYS
MOV COM,#8Eh
MOV BYT,#1
MOV R0,#XMT
MOV XMT,#00h
LCALL XIE
LCALL DYS
MOV COM,#0BEh ;命令字节为BEh
MOV BYT,#8 ;多字节写入模式此模块为8 个
MOV R0,#Xmt; 数据地址覆给R0
MOV Xmt,#26h; 秒单元内容为59h
MOV XMT+1,#30h; 分单元内容为59h
MOV XMT+2,#19h; 时单元内容为13h
MOV XMT+3,#31h; 日期单元内容为21h
MOV XMT+4,#05h ;月单元内容为06h
MOV XMT+5,#03h; 星期单元内容为03h
MOV XMT+6,#08 ;年单元内容为00h
MOV XMT+7,#2 ;写保护单元内容为00h
LCALL XIE ; 调用写入数据子程序
SETB EA
SETB EX1
CLR IT1
CLR F0
HH:MOV P0,#0FFH
MOV P2,#0FFH
WZX:JB F0,JP
SK3:JB K3,HH ;检测按键K3
ACALL YS ;调用20ms延时消抖动
JB K3,HH ;如果K3为高电平,则是抖动
K3DD:JNB K3,K3DD ;等待K3按键释放
LCALL SX
LCALL BM
CPL F0
MOV COM,#80h ;命令字节为BEh
MOV BYT,#1 ;多字节写入模式此模块为8 个
MOV R0,#XMT; 数据地址覆给R0
MOV XMT,#80H
LCALL XIE ; 调用写入数据子程序
JB F0,JP
MOV COM,#80h ;命令字节为BEh
MOV BYT,#1 ;多字节写入模式此模块为8 个
MOV R0,#XMT; 数据地址覆给R0
MOV XMT,#00H
LCALL XIE ; 调用写入数据子程序
JNB F0,SK3
JP: LCALL XIANX
JB K1,SK2 ;检测按键K1
ACALL YY ;调用20ms延时消抖动
JB K1,SK2 ;如果K1为高电平,则是抖动
K1DD: JNB K1,K1DD ;等待K1按键释放
INC 43H
MOV A,43H
CJNE A,#10,VB2
MOV 43H,#00H
INC 42H
VB1:MOV A,42H
CJNE A,#06,VB2
MOV 42H,#00H
VB2:MOV A,42H
RL A
RL A
RL A
RL A
ADD A,43H
MOV 31H,A
MOV COM,#82h ;命令字节为BEh
MOV BYT,#1 ;多字节写入模式此模块为8 个
MOV R0,#XMT; 数据地址覆给R0
MOV XMT,31H
LCALL XIE ; 调用写入数据子程序
AJMP JP
SK2: JB K2,SK3 ;检测按键K2
ACALL YY ;调用20ms延时消抖动
JB K2,SK3 ;如果K2为高电平,则是抖动
K2DD: JNB K2,K2DD ;等待K2按键释放
INC 45H
MOV A,45H
CJNE A,#10,VB3
MOV 45H,#00H
INC 44H
VB3:MOV A,44H
CJNE A,#03,VB4
MOV 44H,#00H
VB4:MOV A,44H
RL A
RL A
RL A
RL A
ADD A,45H
CJNE A,#36,TTV
CLR A
TTV:MOV 32H,A
MOV COM,#84h ;命令字节为BEh
MOV BYT,#1 ;多字节写入模式此模块为8 个
MOV R0,#XMT; 数据地址覆给R0
MOV XMT,32H
LCALL XIE ; 调用写入数据子程序
AJMP JP
SUAN:MOV A,34H
CJNE A,#5,SS1
MOV A,33H
CJNE A,#49,RET_B ;在编码中31在16进制中10进制49
SETB 20H.1 ;20H.1 SHENRI
RET
SS1:CJNE A,#8,RET_B
MOV A,33H
CJNE A,#5,SS2
SETB 20H.2 ;20H.2 ZHOUNINA
RET
SS2:CJNE A,#7,RET_B
SETB 20H.3 ;20H.3 QIXI
RET_B:RET
;////////////////////////////////////////
DT:LCALL SX
LCALL BM
LCALL SUAN
JB 20H.1,SHEN
JB 20H.2,ZHOU
JB 20H.3,QIXI
LCALL MAIN
MOV 3DH,#00H
MOV 3EH,#00H
MOV 3FH,#00H
RETI
SHEN:JB 20H.4,V1
JB 20H.5,V22
LCALL SXXXX
CJNE A,#0EH,RET_A
SETB 20H.4
V1:LCALL DDF
INC 21H
MOV A,21H
CJNE A,#1BH,RET_A
SETB 20H.5
CLR 20H.4
V22:LCALL DDFF
INC 21H
MOV A,21H
CJNE A,#2AH,RET_A
MOV 21H,#00H
MOV 20H,#00H
RET_A:RETI
ZHOU:JB 20H.4,V2
LCALL SXXXX
CJNE A,#0EH,RET_A
SETB 20H.4
V2:MOV DPTR,#NIAN
LCALL XSDF
MOV DPTR,#WOKAO
LCALL XSDF
MOV DPTR,#SAN
LCALL XSDF
MOV DPTR,#SHI
LCALL XSDF
MOV DPTR,#XIANG
LCALL XSDF
INC 21H
MOV A,21H
CJNE A,#1CH,RET_V
MOV 21H,#00H
MOV 20H,#00H
RET_V:RETI
QIXI:JB 20H.4,V3
LCALL SXXXX
CJNE A,#0EH,RET_A
SETB 20H.4
V3:MOV DPTR,#LEE
LCALL XSDF
MOV DPTR,#KUAI
LCALL XSDF
MOV DPTR,#XI
LCALL XSDF
MOV DPTR,#QI
LCALL XSDF
INC 21H
MOV A,21H
CJNE A,#1CH,RET_C
MOV 21H,#00H
MOV 20H,#00H
RET_C:RETI
SXXXX:LCALL SX
LCALL BM
LCALL MAIN
INC 21H
MOV A,21H
RET
;/////////////////////////////////
DDF:MOV R2,#00H
MOV R3,#00H
WGQ_A:MOV A,R2
MOV DPTR,#HB
MOVC A,@A+DPTR
MOV 22H,A
INC R2
WGQ_B:MOV A,R3
MOV DPTR,#HB1
MOVC A,@A+DPTR
MOV 24H,A
INC R3
LCALL XIAN
CJNE R3,#56,WGQ_A
RET
DDFF:MOV R2,#00H
MOV R3,#00H
WGQ_A1:MOV A,R2
MOV DPTR,#TA
MOVC A,@A+DPTR
MOV 22H,A
INC R2
MOV A,R3
MOV DPTR,#TA1
MOVC A,@A+DPTR
MOV 24H,A
INC R3
LCALL XIAN
CJNE R3,#56,WGQ_A1
RET
MAIN:MOV R0,#40H
MOV R1,#46H
MOV R7,#06H
WA:MOV 3FH,@R0
MOV 3EH,@R1
LCALL SZ
INC R0
INC R1
INC 23H
MOV A,23H
CJNE A,#02H,WO
LCALL MAOH
WO:CJNE A,#04H,WOR
LCALL MAOH
WOR:DJNZ R7,WA
MOV 23H,#00H
RET
SZ:MOV A,3FH
MOV DPTR,#CB
MOVC A,@A+DPTR
MOV R3,A
MOV A,3EH
MOV DPTR,#CB
MOVC A,@A+DPTR
MOV R2,A
MOV R4,#05H
ETA:MOV A,R3
MOV DPTR,#SZQ
MOVC A,@A+DPTR
MOV 22H,A
INC R3
MOV A,R2
MOV DPTR,#SZQ
MOVC A,@A+DPTR
MOV 24H,A
INC R2
LCALL XIAN
DJNZ R4,ETA
LCALL K
RET
BM:MOV R0,#40H
MOV R1,#41H
MOV 3DH,30H
MOV A,30H
LCALL BXB
MOV 3DH,31H
MOV A,31H
LCALL BXB
MOV 3DH,32H
MOV A,32H
LCALL BXB
MOV 3DH,33H
MOV A,33H
LCALL BXB
MOV 3DH,34H
MOV A,34H
LCALL BXB
MOV 35H,36H
MOV 3DH,35H
MOV A,35H
LCALL BXB
RET
BXB:MOV B,#16
DIV AB
MOV @R1,A
MOV @R0,B
LCALL LF1
RET
XIANX:MOV P0,31H
MOV P2,32H
RET
XIAN:MOV P0,24H
MOV P2,22H
LCALL YS
RET
K:MOV P0,#0FFH
MOV P2,#0FFH
LCALL YS
RET
YS:MOV R6,#10H
NX:MOV R5,#18H
DJNZ R5,$
DJNZ R6,NX
RET
DYS:MOV R6,#0FFH
NX1:MOV R5,#0FFH
DJNZ R5,$
DJNZ R6,NX1
RET
YY:MOV R6,#0E0H
NX2:MOV R5,#18H
DJNZ R5,$
DJNZ R6,NX2
RET
SX:MOV COM,#0BFh ;命令字节为BFh
MOV BYT,#8 ;多字节读出模式此模块为8 个
MOV R1,#RCV ;数据地址覆给R1
ACALL DU; 调用读出数据子程序
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -