ret ;
;///////////////////////////// ;hex转bcd码 hex_bcd:
mov a,hex ;将十六进制数送给A add a,#00h ; da a ret
;对A进行十进制调整
;///////////////////////////// ;1302读数据子程序
r1302: mov r0,#second ;将秒寄存器送到R0
mov r1,#81h
;将首读地址送到R1
mov r7,#7 ;R7送7
clr ce
;复位脚清零
r_loop:
clr clk nop setb
;时钟串行口清零
ce ;准备写数据
mov b,r1 ;将r1送到B
;调用写字节子程序 ;调用读字节子程序
lcall wbit lcall rbit
mov @r0,a ;将a中的数据送到R0所指的地址 inc r0 inc r1 inc r1 setb clr ce djnz ret
r7,r_loop ;判断是否读完 clk
; ;加一
;/////////////////////////////
11
;读字节子程序 rbit: mov r4,#08h
;送8
rloop: mov c,dio ;读IO数据
rrc a setb nop clr clk djnz ret
r4,rloop ;判断是否读完
;带进位右移A
;下降沿有效
clk
;///////////////////////////// ;显示子程序 display:
mov lcd,#80h lcall xzl mov a,#'2' lcall xsj mov lcd,#81h lcall xzl mov a,#'0' lcall xsj mov lcd,#84h lcall xzl mov a,#2dh lcall xsj mov lcd,#87h lcall xzl mov a,#2dh lcall xsj mov lcd,#8bh
12
lcall xzl mov a,#'W' lcall xsj
/////////////////////////////////////////////////////////////
mov lcd,#8ch lcall xzl mov a,#3ah lcall xsj
mov lcd,#0c2h lcall xzl mov
a,#3ah
lcall xsj
mov lcall
lcd,#0c5h xzl
mov a,#3ah
lcall
xsj
;以上显示冒号
;////////////以下显示动态//////////////////
mov bcd,year
;将年送给bcd
;调用bcd码转十进制子程序
;将显示位置送到lcd ;调用写指令子程序 ;建表
lcall bcd_dec
MOVC
mov lcall mov
lcd,#82h xzl
dptr,#tab
;查表
A,@A+DPTR lcall
xsj ;调用写数据子程序
mov lcd,#83h
;将显示位置送到lcd ;调用写指令子程序 ;建表 ;将b送给A
lcall xzl
mov dptr,#tab mov a,b
MOVC A,@A+DPTR ;查表
13
lcall xsj ;调用写数据子程序
mov bcd,month
lcall bcd_dec mov lcd,#85h lcall xzl mov dptr,#tab
MOVC
A,@A+DPTR
lcall xsj mov lcd,#86h lcall xzl mov dptr,#tab mov a,b
MOVC
A,@A+DPTR
lcall xsj
mov
bcd,day
lcall bcd_dec mov lcd,#88h
lcall
xzl
mov dptr,#tab
MOVC
A,@A+DPTR
lcall xsj mov lcd,#89h lcall xzl mov dptr,#tab mov a,b
MOVC
A,@A+DPTR
lcall xsj
mov bcd,week
lcall bcd_dec
14
mov lcd,#8dh
lcall xzl mov dptr,#tab
mov a,b MOVC
A,@A+DPTR
xsj
lcall
;/////////////////////////////
mov
bcd,hour
bcd_dec lcd,#0c0h xzl dptr,#tab
MOVC
lcall mov lcall mov A,@A+DPTR lcall
xsj
mov lcd,#0c1h lcall xzl
MOVC
mov
dptr,#tab
mov a,b A,@A+DPTR
lcall xsj ;以上显示时
mov bcd,minute lcall bcd_dec mov lcd,#0c3h lcall xzl mov dptr,#tab
MOVC
A,@A+DPTR lcall
xsj
mov lcd,#0c4h lcall xzl
15