📄 lcd_f2.asm
字号:
flash_y1:
jb fl_250ms,led_d2
mov led1,a
mov led2,a
mov led3,a
led_d2:
jb sq1_f,led_d22
mov a,sec_bak
add a,#2
call sec_ct
cjne a,b,led_d1
led_d22:
;mov r1,#fo1
mov a,led_ch
mov b,#03
mul ab
add a,r1
subb a,led_ch
mov r1,a
jnb set_f,led_de1
mov led_ch,ch_no_temp
led_de1:
mov r3,led_ch
inc r3 ;r3=>ch_no
setb sq1_f
call ff_mov
;jnb set1_f,led_d1
;jb fl_250ms,led_d1
;call blk_14
led_d1:
ret
end
;&*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
led_y:
mov r0,#fd2_temp
call fmov
push 03h ;r3=ch_no
call ftob
pop 03h
yy_led:
mov r1,#led1
dec r1
mov r7,#02
inled:
inc r1
inc r0 ;to y1 (h)
mov a,@r0
anl a,#0f0h ;h1=>led1
swap a
mov @r1,a
mov a,@r0
anl a,#0fh ;h2=>led2
inc r1
mov @r1,a
djnz r7,inled
;**********************jb sgn 2001.9.14
mov a,fd2_temp+1
orl a,fd2_temp+2
jnz zq1
zer_data:
mov led1,#20h
mov led2,#0h
mov led3,#0h
mov led4,#0h
jmp yy_dot
zq1:
mov a,fd2_temp
jb acc.7,zq2
call z_data
jmp yy_dot
zq2:
call f_data
jmp yy_dot
;*************************************
z_data:
mov r0,#fd2_temp
mov a,@r0
jnz zz1
;0.1
mov a,#01d
call ddot
ret
zz1:
cjne a,#04d,zz2
mov a,led4
add a,#20h
mov led4,a
ret
zz3:
mov r1,#led1
add a,r1
dec a ;-1 rrl bit
mov r1,a
mov a,@r1
add a,#20h ;dot bit
mov @r1,a ;2001.4.19
ret
zz2:
jc zz3
cjne a,#10d,zz4
zz5:
;***********************************
led999:
mov led1,#9
mov led2,#9
mov led3,#9
mov led4,#29h
ret
zz4:
jc zz5
cjne a,#7fh,zz6
mov a,#02d
call ddot
ret
zz6:
cjne a,#7eh,zz8
mov a,#03d
call ddot
ret
zz8:
jmp zer_data
;******************************************
ddot:
mov r5,a
ddot1:
mov led4,led3
mov led3,led2
mov led2,led1
mov led1,#00h ;??????????2001.9.20
djnz r5,ddot1
mov led1,#20h
ret
;**********************************
f_data:
mov r0,#fd2_temp
mov a,@r0
clr acc.7
mov @r0,a
call z_data
mov a,led4
cjne a,#20h,fsd1
fds2:
mov led3,a
sjmp fsd3
fsd1:
jnc fds2
fsd3:
mov led4,led3
mov led3,led2
mov led2,led1
mov led1,#ff_led ;"1"=>led1
ret
;***************************************
yy_dot:
;jb set1_f,fd_cu_end
mov r5,#00d
mov r1,#led4
mov r6,#04d
dds4:
mov a,@r1
cjne a,#20h,dds1
dds2: sjmp dds3
dds1: jnc dds2
inc r5
dec r1
djnz r6,dds4
dds3:
mov r1,#dt1_dat
mov a,r3 ;r3=ch_no+1
dec a ;2001.9.27
add a,r1
mov r1,a
clr c
mov a,r5
subb a,@r1
jz yy_dot_end
mov r4,a ;r4=1,2,3
jc yy_dot_end
;***************0.5=>1
;mov a,r4
;clr c
;mov a,#led4
;inc a
;subb a,r4
;mov r0,a ;r0=> 0.5
;mov b,a ;r0=>b
;mov a,@r0
les11:
mov led4,led3 ;led3=>led4
mov led3,#black
mov led3,led2 ;led2
mov led2,#black
mov led2,led1
mov led1,#black
djnz r4,les11
yy_dot_end :
mov a,led4
cjne a,#20h,f_d2
f_d1:
clr c
subb a,#20h
mov led4,a
sjmp f_d3
f_d2:
jnc f_d1
;*****************************
;fd count
f_d3:
mov a,r3 ;r3=ch+no
dec a
mov r0,#fd1_dat
add a,r0
mov r0,a
mov a,@r0
;****************************
mov b,led4 ;a-k+[2*k/d]*d;k=mod(a/d)
xch a,b
div ab
mov a,led4
clr c
subb a,b
mov led4,a
fd_cu_end:
ret
;*****************************************ch_no to led
y1_led:
mov r3,ch_no
inc r3
y1_led1:
mov r1,#y1
mov a,r3
dec a
mov b,#03
mul ab
add a,r1
mov r1,a
;************************
call led_y
mov r0,#led1
mov a,r3
dec a
mov b,#4
mul ab
add a,r0
mov r0,a
mov @r0,led1
inc r0
mov @r0,led2
inc r0
mov @r0,led3
inc r0
mov @r0,led4
djnz r3 ,y1_led1
ret
;********************************************
;********************************
clr_led0_bak:
clr fff_f
clr a
mov led0_bak,#ff_led
mov led1_bak,a
mov led2_bak,a
mov led3_bak,a
mov led4_bak,a
ret
;******************************
;jbc menu1_over ,mnb
led_cl0:
mov a,kb_data
cjne a,#01,ll24
ret
din_dot:
;****************** add dot to led_bak ****************
mov a,led_ch; led_power =>led_ch 2001.10.18
mov r0,#dt1_dat
add a,r0
mov r0,a
mov a,#03
clr c
subb a,@r0
add a,r1
mov r1,a
mov a,@r1
add a,#20h
mov @r1,a
ret
;*****************************************
ll24:
mov led4,led4_bak
mov led3,led3_bak
mov led2,led2_bak
mov led1,led1_bak
mov r1,#led1
call din_dot
;************************jb fff_f
mov a,kb_data
cjne a,#02,ll23
mov led4,led0_bak
mov led3,#l_led
mov led2,#o_led
mov led1,#p_led
jb fl_250ms,led_cl_end
mov led4,#black
ret
ll23:
;************************flash
mov r0,#led1
dec r0
mov a,kb_data
dec a
dec a
;dec a ;2001.10.18
add a,r0
mov r0,a
jb fl_250ms ,led_cl_end
mov @r0,#black
led_cl_end:
ret
;************************************
jj_zer:
clr menu1_over
mov r7,#04d
mov r0,#led1_bak
jj_z1:
mov a,@r0
jnz jj_zer_end
inc r0
djnz r7,jj_z1
setb menu1_over
jj_zer_end:
ret
kill_0:
mov a,led1_bak
jnz new1
mov led1_bak,led2_bak
mov led2_bak,led3_bak
mov led3_bak,led4_bak
mov led4_bak,#00h
sjmp kill_0
new1:
ret
norml:
mov a,led1_bak
swap a
orl a,led2_bak
mov fd1_temp+1,a
;****************
mov a,led3_bak
swap a
orl a,led4_bak
mov fd1_temp+2,a
;**************************
mov a,led0_bak
cjne a,#black,ja1q
clr c
sjmp ja2q
ja1q:
setb c
ja2q: mov a,dot_bit
mov acc.7,c
mov fd1_temp,a
mov r0,#fd1_temp
jmp btof
;******************************
proc d_f_data
d_f_data:
call jj_zer
jnb menu1_over ,dc1
ret
;************add dot to led4_bak
dc1:
mov r7,#04
mov r0,#led1_bak
dot10:
mov a,@r0
cjne a,#20h,dot1
sjmp dot2
dot1:
jnc dot2
inc r0
djnz r7,dot10
;************************* add dot led4_bak
add a,#20h
mov led4_bak,a
dot2:
call kill_0
;********** jb led1_bak=20h *******
mov a,led1_bak
cjne a,#20h,dot_1
sjmp dot_0
dot_1:
mov dot_bit,#00
mov r7,#04d
mov r0,#led1_bak
dot_12:
inc dot_bit
mov a,@r0
cjne a,#20h,ghh0
sjmp dot_11 ;!!1 ;lxl<1
ghh0:
jnc dot_11
inc r0
djnz r7,dot_12
dec r0
dot_11:
clr c
subb a,#20h ;led_n_bak -20h
mov @r0,a ;clr dot
;********************* norml led1_mak led4_bak ********
jmp norml
;******************* over *******************
dot_0:
mov r7,#03d
mov r0,#led2_bak
mov dot_bit,#80h
dfo1:
mov a,@r0
jnz dfo2
inc r0
dec dot_bit
djnz r7,dfo1
mov fd1_temp,#41h
mov fd1_temp+1,#0h
mov fd1_temp+2,#0h
ret ;all 0.000
dfo2:
mov a,dot_bit
cjne a,#80h,dfo3
mov dot_bit,#00
dfo3:
mov led1_bak,#0
call kill_0
jmp norml
end
;***********************************
; kb (1-5)
proc kb_ctrl
kb_ctrl:
setb kd_over
mov a,kb_data
;dec a
dec a
jnz ka_s1
clr dot_f
ka_s1:
mov a,kc_data
mov b,#02d
div ab
mov a,b
jnz ka_d1 ;0=>dot data
setb dot_f
ka_d1:
inc kb_data
mov a,kb_data
cjne a,#07d,cc_q1
mov kb_data,#01h
jb set_f,ka_d11
call kbb_jmp
sjmp ka_d12
ka_d11:
call kbbs_jmp
ka_d12:
call clr_led0_bak
cc_q1:
mov kc_data,#01h
ret
end
;kc up 1
kc_up:
jnb kd_over ,kb_d5
mov a,kb_data
dec a
dec a
jnz kb_d1
cpl fff_f
mov led0_bak,#black
jb fff_f ,kb_d5
mov led0_bak,#ff_led
sjmp kb_d5
kb_d1:
inc kc_data
mov a,kc_data
cjne a,#11d,kb_d4
mov kc_data,#01d
kb_d4:
call dat_al
kb_d5:
ret
;***************************************************
dat_al:
mov r0,#led1_bak
mov a,kb_data ;(kb_data:1--6)
dec a
dec a
add a,R0
dec a
mov r0,a
;mov a,@r0
;cjne a,#20h,daf11
;sjmp daf12
daf11:
;jc daf13
daf12:
;mov a,kc_data
;add a,#20h
;sjmp daf14
daf13:
mov a,kc_data
daf14:
dec a
mov @r0,a
ret
;********************************
proc kb_jmp
kb_jmp:
jb set1_f,kb0_1
;clr sq1_f ;2001.10.18
;************;ka
;call clr_kd
;******************
ret
kb0_1:
mov sec_bak,sec
mov a,led_power
;************** add 'dr' dec 1 ************
cjne a,#03,kb30_1
dec addres
mov a,addres
cjne a,#0ffh,kb30_2
mov addres,#64
kb30_2:
ret
kb30_1:
cjne a,#18,kb1 ;************!!!!!!!!!!!!!
kb12:
jmp kb_ctrl
kb1:
jnc kb12
ret
end
cu_r1:
mov a,led_ch
mov b,#03
mul ab
add a,r1
mov r1,a
ret
proc kbb_jmp
kbb_jmp:
mov a,LED_power
jnz kbb1
ret
kbb1:
cjne a,#022,kbb2
kbb1_1:
mov b,#22
call cout_dt
mov r1,#fo1
call cu_r1
jmp fd_ram
kbb2:
jc kbb1_1
cjne a,#26,kbb4
kbb2_1:
mov b,#26
call cout_dt
mov r1,#fs1
call cu_r1
jmp fd_ram
kbb4:
jc kbb2_1
cjne a,#30,kbb7
kbb4_1:
mov b,#30
call cout_dt
mov r1,#l1
call cu_r1
jmp fd_ram
kbb7:
jc kbb4_1
cjne a,#34,kbb8
kbb7_1:
mov b,#34
call cout_dt
mov r1,#h1
call cu_r1
jmp fd_ram
kbb8:
jc kbb7_1
cjne a,#38,kbb9
kbb8_1:
mov b,#38
call cout_dt
mov r1,#c1
call cu_r1
jmp fd_ram
kbb9:
jc kbb8_1
ret
end
;************************************
proc jj_ha_f
jj_ha_f:
mov a,ch_no
inc a
rl a
mov r7,a
mov a,h_l_out
jj_ha1:
rrc a
jc jj_ha2
djnz r7,jj_ha1
clr ha_over
jb ha_fl,jj_ha4
sjmp jj_ha3
jj_ha2:
jb ha_fl,jj_ha4
jb ha_over ,jj_ha3
mov beep,sec
clr beep_out
setb ha_fl
sjmp jj_ha3
jj_ha4:
mov a,beep
add a,#03d
call sec_ct
cjne a,b,jj_ha5
jj_ha6:
setb beep_out
setb ha_over
clr ha_fl
sjmp jj_ha3
jj_ha5:
jnc jj_ha6
mov c,fl_250ms
mov beep_out,c
jj_ha3:
ret
end
proc jj_ha
jj_ha:
mov a,ch_no
inc a
rl a
mov r7,a
mov a,fs_out
jj_ha1:
rrc a
jc jj_ha2
djnz r7,jj_ha1
clr ha_over1
jb ha_f ,jj_ha4
sjmp jj_ha3
jj_ha2:
jb ha_f,jj_ha4
jb ha_over1 ,jj_ha3
mov beep1,sec
clr beep_out
setb ha_f
sjmp jj_ha3
jj_ha4:
mov a,beep1
add a,#03d
call sec_ct
cjne a,b,jj_ha5
jj_ha6:
setb beep_out
setb ha_over1
clr ha_f
sjmp jj_ha3
jj_ha5:
jnc jj_ha6
jj_ha3:
ret
end
;**************************************
f_fo_fs:
mov r0,#fs1_no
call f_fa1
mov r1,#fo1
call f_fa2
mov a,r3
mov r4,a
mov r1,#fs1
call f_fa21
mov r0,#fs1_no
call f_fa3
led_err_out:
mov r0,#fs1_no
call err_do
mov a,ch_no
mov dptr,#err_asc
movc a,@a+dptr
orl a,r4
mov fs_out,a
ret
fg_ad1:
mov a,test_no;;;;;;ch_no_temp
rl a
add a,r0
mov r0,a
ret
y1_add1:
mov a,r0
mov r1,a
call cu_y1
mov a,r1
mov r0,a
ret
;********************************
f_fa1:
call fg_ad1
mov a,@r0
mov b,a
anl a,#00001111b
mov r3,a ;fo=>r3
mov a,b
swap a
anl a,#00001111b
mov r2,a ;fs=>r2
mov r0,#y1
jmp y1_add1
;************************************
fg_ad:
mov a,test_no;;;;;;ch_no_temp
mov b,#03d
mul ab
add a,r1
mov r1,a
;***************************
mov a,test_no;;;;;;;ch_no_temp
jmp fcmp
;*************************************
proc f_fa2
f_fa2:
call fg_ad
jc up_1
mov r3,#00h
sjmp up_2
up_1:
inc r3
mov a,r3
lcall nu_5
mov r3,a
up_2:
ret
end
proc f_fa21
f_fa21:
call fg_ad
jnc up_1
mov r2,#00h
sjmp up_2
up_1:
inc r2
mov a,r2
call nu_5
mov r2,a
up_2:
ret
end
nu_5:
mov b,#cmp_no
inc b
cjne a,b,nuc1
sjmp nuc2
nuc1:
jc nu_51
nuc2:
mov a,#cmp_no
nu_51: ret
f_fa3:
mov a,r2
swap a
anl a,#0f0h
orl a,r4
mov b,a
call fg_ad1
mov @r0,b
ret
;*************************************
f_l_h:
;mov r0,#f1_temp
;mov @r0,#04h
;inc r0
;mov @r0,#30h
;inc r0
;mov @r0,#00h
;mov r0,#f1_temp
;lcall btof
;mov ch_no_temp ,#00d
;mov r7,#05d
;*************************************
mov r0,#fs1_no
inc r0
call f_fa1
mov r1,#l1
call f_fa2
mov a,r3
mov r4,a
mov r1,#h1
call f_fa21
mov r0,#fs1_no
inc r0
call f_fa3
p0_out:
mov r0,#fs1_no
inc r0 ;h,l=>byt
call err_do
mov a,ch_no
mov dptr,#err_asc
movc a,@a+dptr
orl a,r4
;mov fs_out,a
cpl a
mov b,a
mov dptr,#err_asc
mov a,ch_no
movc a,@a+dptr
orl a,b
;*************************************
cpl a ;out_wei=1
;mov led24,a
mov h_l_out,a
cpl a
mov c,acc.0
mov l1_out,c
mov c,acc.1
mov h1_out,c
mov c,acc.2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -