📄 电子时钟日历led程序.asm
字号:
;---------------------------
wr_1302:
mov b,#8
wr_1302_0:
rrc a
mov io,c
setb sclk
sjmp $+2
clr sclk
djnz b,wr_1302_0
ret
;---------------------------
rd_1302:
mov b,#8
rd_1302_0:
setb sclk
setb io
mov c,io
clr sclk
rrc a
djnz b,rd_1302_0
ret
;---------------------------
key0: jb Key0Pin,$+8
mov Key0Data,#0
sjmp $+21h ;无键按下,跳
mov a,Key0Data
cjne a,#0c0h,$+3
jnc $+0dh
add a,#40h
mov Key0Data,a
cjne a,#0c0h,$+14
acall _Key0Do ;第一次
sjmp $+0fh
anl a,#3fh
djnz acc,$+7 ;第二次1.3s
acall _Key0Do
mov a,#10 ;连键,200ms
orl a,#0c0h
mov Key0Data,a
ret
;----------------------------------------
key1: jb Key1Pin,$+8
mov Key1Data,#0
sjmp $+21h ;无键按下,跳
mov a,Key1Data
cjne a,#0c0h,$+3
jnc $+0dh
add a,#40h
mov Key1Data,a
cjne a,#0c0h,$+14
acall _Key1Do ;第一次
sjmp $+0fh
anl a,#3fh
djnz acc,$+7 ;第二次1.3s
acall _Key1Do
mov a,#10 ;连键,200ms
orl a,#0c0h
mov Key1Data,a
ret
;----------------------------------------
key2: jb Key2Pin,$+8
mov Key2Data,#0
sjmp $+21h ;无键按下,跳
mov a,Key2Data
cjne a,#0c0h,$+3
jnc $+0dh
add a,#40h
mov Key2Data,a
cjne a,#0c0h,$+14
acall _Key2Do ;第一次
sjmp $+0fh
anl a,#3fh
djnz acc,$+7 ;第二次1.3s
acall _Key2Do
mov a,#10 ;连键,200ms
orl a,#0c0h
mov Key2Data,a
ret
;----------------------------------------
key3: jb Key3Pin,$+8
mov Key3Data,#0
sjmp $+21h ;无键按下,跳
mov a,Key3Data
cjne a,#0c0h,$+3
jnc $+0dh
add a,#40h
mov Key3Data,a
cjne a,#0c0h,$+14
acall _Key3Do ;第一次
sjmp $+0fh
anl a,#3fh
djnz acc,$+7 ;第二次1.3s
acall _Key3Do
mov a,#10 ;连键,200ms
orl a,#0c0h
mov Key3Data,a
ret
;----------------------------------计算
inc_vale:mov a,seldata
cjne a,#5,inc_vale_1
inc year0
mov a,year0
cjne a,#10,inc_vale_0a
mov year0,#0
inc year1
mov a,year1
cjne a,#10,inc_vale_0a
mov year1,#0
inc_vale_0a:
mov a,year1
swap a
orl a,year0
mov b,#8ch
acall wr_cmd
ajmp inc_vale_end
inc_vale_1:
cjne a,#4,inc_vale_2
mov a,month1
jnz inc_vale_1b
inc month0
mov a,month0
cjne a,#10,inc_vale_1a
mov month0,#0
mov month1,#1
ajmp inc_vale_1a
inc_vale_1b:
inc month0
mov a,month0
cjne a,#3,inc_vale_1a
mov month0,#1
mov month1,#0
inc_vale_1a:
mov a,month1
swap a
orl a,month0
mov b,#88h
acall wr_cmd
ajmp inc_vale_end
inc_vale_2:
cjne a,#3,inc_vale_3
mov a,date1
cjne a,#3,inc_vale_2b
inc date0
mov a,date0
cjne a,#2,inc_vale_2a
mov date0,#1
mov date1,#0
sjmp inc_vale_2a
inc_vale_2b:
inc date0
mov a,date0
cjne a,#10,inc_vale_2a
mov date0,#0
inc date1
inc_vale_2a:
mov a,date1
swap a
orl a,date0
mov b,#86h
acall wr_cmd
ajmp inc_vale_end
inc_vale_3:
cjne a,#2,inc_vale_4
mov a,hour1
cjne a,#2,inc_vale_3b
inc hour0
mov a,hour0
cjne a,#4,inc_vale_3a
mov hour0,#0
mov hour1,#0
ajmp inc_vale_3a
inc_vale_3b:
inc hour0
mov a,hour0
cjne a,#10,inc_vale_3a
mov hour0,#0
inc hour1
inc_vale_3a:
mov a,hour1
swap a
orl a,hour0
mov b,#84h
acall wr_cmd
ajmp inc_vale_end
inc_vale_4:
cjne a,#1,inc_vale_5
inc minute0
mov a,minute0
cjne a,#10,inc_vale_4a
mov minute0,#0
inc minute1
mov a,minute1
cjne a,#6,inc_vale_4a
mov minute1,#0
inc_vale_4a:
mov a,minute1
swap a
orl a,minute0
mov b,#82h
acall wr_cmd
ajmp inc_vale_end
inc_vale_5:
inc second0
mov a,second0
cjne a,#10,inc_vale_5a
mov second0,#0
inc second1
mov a,second1
cjne a,#6,inc_vale_5a
mov second1,#0
inc_vale_5a:
mov a,second1
swap a
orl a,second0
mov b,#80h
acall wr_cmd
inc_vale_end:
ret
;--------------------------------------------
dec_vale:mov a,seldata
cjne a,#5,dec_vale_1
dec year0
mov a,year0
cjne a,#0ffh,dec_vale_0
mov year0,#9
dec year1
mov a,year1
cjne a,#0ffh,dec_vale_0
mov year1,#9
dec_vale_0:
ajmp inc_vale_0a
dec_vale_1:
cjne a,#4,dec_vale_2
dec month0
mov a,month0
jnz dec_vale_1a
mov a,month1
jnz dec_vale_1b
mov month0,#2
mov month1,#1
ajmp inc_vale_1a
dec_vale_1b:
dec month1
mov month0,#9
dec_vale_1a:
ajmp inc_vale_1a
dec_vale_2:
cjne a,#3,dec_vale_3
mov a,date1
jnz dec_vale_2b
dec date0
mov a,date0
cjne a,#0,dec_vale_2a
mov date0,#1
mov date1,#3
sjmp dec_vale_2a
dec_vale_2b:
dec date0
mov a,date0
cjne a,#0ffh,dec_vale_2a
mov date0,#9
dec date1
dec_vale_2a:
ajmp inc_vale_2a
dec_vale_3:
cjne a,#2,dec_vale_4
dec hour0
mov a,hour0
cjne a,#0ffh,dec_vale_3a
mov hour0,#9
dec hour1
mov a,hour1
cjne a,#0ffh,dec_vale_3a
mov hour0,#3
mov hour1,#2
dec_vale_3a:
ajmp inc_vale_3a
dec_vale_4:
cjne a,#1,dec_vale_5
dec minute0
mov a,minute0
cjne a,#0ffh,dec_vlae_4a
mov minute0,#9
dec minute1
mov a,minute1
cjne a,#0ffh,dec_vlae_4a
mov minute1,#5
dec_vlae_4a:
ajmp inc_vale_4a
dec_vale_5:
inc second0
mov a,second0
cjne a,#0ffh,dec_vlae_5a
mov second0,#9
dec second1
mov a,second1
cjne a,#0ffh,dec_vlae_5a
mov second1,#5
dec_vlae_5a:
ajmp inc_vale_5a
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -