📄 lcd_f2.asm
字号:
mov l2_out,c
mov c,acc.3
mov h2_out,c
ret
err_asc:
db 11111100b;1 ch
db 11110000b;2 ch
db 11000000b;3 ch
db 00000000b;4 ch
;****************************************
err_do:
mov r7,ch_no
inc r7
mov r4,#00d
cop_4:
mov a,r7
dec a
rl a
add a,r0
mov r1,a
mov a,@r1
swap a
mov b,a
mov r6,#02d
cop_3:
anl a,#0fh
cjne a,#cmp_no ,cop_1
sjmp cop_31
cop_1: jc cop_2
cop_31:
setb c
sjmp cop_12
cop_2:
clr c
cop_12:
mov a,r4
rlc a
mov r4,a
mov a,b
swap a
djnz r6,cop_3
djnz r7,cop_4
ret
;*************************************
;y1=k1*f1+b1
cu_y1:
mov a,test_no
mov b,#03
mul ab
add a,r1
mov r1,a
ret
y1_count:
jb set1_f,y1_c12
call jj_ha_f ;*****2001.5.27
call jj_ha
y1_c12:
jbc test_ok ,y1_c1
ret
y1_c1:
call count_hz
mov r1,#k1
call cu_y1
;******************************
;mov r0,#fd1_temp ;fhz into fd1_temp
call fmul ;k1*f1
mov r1,#b1
call cu_y1
call fadd ;k1*f1+b1
;call ftob
;*****************************************
;jb c1-y1=>y1
;*******************************************2001.6.1
mov r1,#c1 ;jb c1=0
call cu_y1
inc r1
mov a,@r1
inc r1
orl a,@r1
jz not_subb
;***********************************************
mov r1,#c1 ;jb c1=0
call cu_y1
mov r0,#fd1_temp
call fsub ;y1=y1-c1 y1=-1
mov a,@r0
cpl acc.7
mov @r0,a
;****************************************!!!!!!!!!!!
not_subb:
mov r1,#y1
call cu_y1
mov a,r1
mov r0,a ;r0=> y1
mov r1,#fd1_temp
call fmov ;[f1_temp]=>[yn]
call f_fo_fs
call f_l_h
jmp da_out
count_hz:
mov fd2_temp,#01h
mov fd2_temp+1,#40h
mov fd2_temp+2,#00h ;x_l=4,2 f=n*x_l
mov r0,#fd2_temp
call btof
mov a,dp_dat ;250ms ,500ms
jz cou1
mov fd2_temp,#01h
mov fd2_temp+1,#20h
mov fd2_temp+2,#00h ;x_l=4,2 f=n*x_l
mov r0,#fd2_temp
call btof
cou1:
jnb test_f ,cou2
setb c
mov a,n1
rrc a
mov n1,a
mov a,n2
rrc a
mov n2,a
cou2:
mov fd1_temp,n1
mov fd1_temp+1,n2
mov fd1_temp+2,#0
;*************** 2002.4.1
mov n1,#0
mov n2,#0
;************************
clr 1fh
mov a,#16d
mov r0,#fd1_temp ;n1=h,n2=l
call dtof
mov r1,#fd2_temp
call fmul ;r0=fd1_temp =hz
jbc test_f,cou3
ret
cou3:
mov fd2_temp,#01h
mov fd2_temp+1,#20h
mov fd2_temp+2,#00h ;x_l=4,2 f=n*x_l
mov r0,#fd2_temp
call btof
mov r0,#fd1_temp
mov r1,#fd2_temp
jmp fmul
;************************************
fd_ram:
push 01h
mov r1,#led1_bak ;2001.10.18
call din_dot
call d_f_data
pop 01h
jb menu1_over ,fd_ram_end
mov @r1,fd1_temp
inc r1
mov @r1,fd1_temp+1
inc r1
mov @r1,fd1_temp+2
ret
fd_ram_end:
mov @r1,#41h
inc r1
mov @r1,#0
inc r1
mov @r1,#0
ret
;**************************
ff_mov:
call led_y
jnb kd_over ,ff_d5
call led_cl0
ff_d5:
ret
;************************************
proc key_jmp
key_jmp:
mov a,key_data
mov key_data,#00h
jz key_d
cjne a,#01,key_a
clr sq1_f ;2001.10.18
;************;ka
call clr_kd
;******************
mov sec_bak,sec
inc led_power
mov a,#36d ;const
add a,ch_no
mov b,a
mov a,led_power
cjne a,b,key_a0
key_a1:
mov led_power,#01h
ret
key_a0:
jnc key_a1
ret
key_a:
cjne a,#02,key_b
jmp kb_jmp ;kb
key_b:
cjne a,#03,key_c
jmp kc_jmp ;kc
key_c:
cjne a,#04,key_d
mov a,led_power
jz key_d
jnb set1_f,key_c1
mov addres_bak,addres
call bps_int
;*************************
mov led_power,frist
mov frist,#frist_no;2001.10.26
call wr_int
key_c1:
clr a
mov led_power,a
mov frist,a
clr set1_f
setb es
jmp clr_kd
key_d:
ret
end
clr_kd:
mov kb_data,#01d
mov kc_data,#01d
clr kd_over
jmp clr_led0_bak
;****************************************
proc kc_jmp
kc_jmp:
jb set1_f,kcc1
kcc0:
ret
;**************************************
kcc1:
;**************************************
mov sec_bak,sec
mov a,led_power
cjne a,#6,kc2
kc2_12:
mov r0,#ch_no
sjmp fid
kc2:
jc kc2_12
;**************************************
cjne a,#10,kc21
kc21_1:
mov r1,#dt1_dat
mov b,#10d
call cout_dt
inc @r1
mov a,@r1
cjne a,#4,kc21_2
mov @r1,#0
kc21_2:
ret
kc21:
jc kc21_1
;**************************************
cjne a,#14,kc3
kc22_1:
mov r1,#fd1_dat
mov b,#14d
call cout_dt
inc @r1
mov a,@r1
cjne a,#03,kc21_4
mov @r1,#05
kc21_4:
mov a,@r1
cjne a,#6,kc21_3
mov @r1,#1
kc21_3:
ret
;********************* al1_al4 **************
kc3:
jc kc22_1
cjne a,#18,kc4
ret
kc4:
jc kc21_3
;***************************** fs,fo
jmp kc_up
end
;**********************************
fid:
;push a
dec a
mov b,a
add a,r0
mov r0,a ;point to addres
mov a,b
mov dptr,#fd_asc
movc a,@a+dptr
mov b,a
;pop a
;*********************
;cjne a,#01,fi1
;mov a,@r0
;inc a
;anl a,#ch_max
;sjmp kc22
;clr a
;********************************************
fi1:
mov a,@r0
inc a
inc b
cjne a,b,kc22
clr a
kc22:
mov @r0,a
ret
fd_asc:
db ch_max,06h,64d,1d,ch_max,3d; 2002.1.31
; ch_no,bps,addres,dp_dat,da_no,del_t
;********************************************
;flash 1_way_l "lo ovr"
FLASH_WAY:
mov r7,#04h
mov r6,#00h
mov a,fs_out
fl_w1:
push a
anl a ,#00000011b
;*****************************************
cjne a,#01,fl_w2
way_k1_3: ;led_"low"
call jj_led_ad
;mov @r0,#black
;inc r0
mov @r0,#l_led;"L"
INC R0
mov @r0,#o_led ;"0"
inc r0
mov @r0,#black
jb fl_250ms ,fl_w3
call fl_blk
sjmp fl_w3
fl_w2:
cjne a,#02,fl_w3
call jj_led_ad ;led "over"
mov @r0,#o_led;led=>O
inc r0
mov @r0,#u_led;"u"
INC R0
mov @r0,#r_led ;"r"
jb fl_250ms ,fl_w3
call fl_blk
fl_w3:
pop a
rr a
rr a
inc r6
djnz r7,fl_w1
ret
;*******************************************
fl_blk:
mov a,#black ;led=>black
mov @r0,a
dec r0
mov @r0,a
dec r0
mov @r0,a
dec r0
mov @r0,a ;led1=>black
ret
jj_led_ad:
mov r0,#led1
mov a,r6
mov b,#04d
mul ab
add a,r0
mov r0,a
mov a,r6
;inc a
mov a,#black
mov @r0,a
inc r0
ret
;###############################################
set_menu:
mov a,set_data
jnz set_m1
ret
set_m1:
cjne a,#01,set_m2
mov set_data,#0
ret
;jmp set_clock
set_m2:
cjne a,#02,set_m3
cpl lamp_out
mov set_data,#0
ret
;jmp set_fh12
set_m3:
cjne a,#03,set_m4
mov led_power,#01
mov sec_bak,sec
setb set1_f
call led_jmp
;call jj_sf
clr es
mov set_data,#0
ret
set_m4:
cjne a,#04,set_m5
jmp pass_set
set_m5:
ret
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
;*****************************
kcs_jmp:
call jj_z
jz kcs_10
ret ;??????????
kcs_10:
jmp kc_up
jj_z:
mov a,LED_power;(1, 2 ,3, 4 ,5)
mov b,#02 ;a/b =0 =>2,4
div ab
mov a,b
ret
proc kbs_jmp
kbs_jmp:
call jj_z
jz kbs_10
ret ;??????????
kbs_10:
jmp kb_ctrl
end
;**************************************
proc kbbs_jmp
kbbs_jmp:
mov a,led_power
cjne a,#2,kbb2
mov r1,#y1
jmp fd_ram
kbb2:
cjne a,#3,kbb4
ret
kbb4:
cjne a,#4,kbb7
mov r1,#y2
jmp fd_ram
kbb7:
ret
end
clr_ff:
mov a,#ff_led
mov led1_bak,#p_led
mov led2_bak,a
mov led3_bak,a
mov led4_bak,a
ret
;**************************************
proc pass_set
pass_set:
clr a
mov fh1_bak,a
mov fh2_bak,a ;2002.3.20
mov kc_data,a
clr menu1_over
mov set_data,#0
call clr_ff
call clr_led2
mov sec_bak,#pass_no
call led_blk
pass1:
call clock
call led_blk
call clr_led2
call key_jmpp
call y1_count
jb menu1_over,pass1_end
jbc card_f ,pass2_end
mov a,sec_bak
jnz pass1
mov set_data,#0
ret
end
pass1_end:
call beep_del
call set_menu2
mov set_data,#0
ret
;**********************************
beep_del:
mov r7,#02
clr beep_out
beep1_1:
push 07h
call timer_20ms
call timer_20ms
call timer_20ms
pop 07h
djnz r7,beep1_1
setb beep_out
ret
;***********************************
pass2_end:
;******turn off card power *****
;setb card_power
call beep_del
;jnb card_test_f,$ ;*******card used
jmp set_fh12 ;2002.1.31
;jmp beep_del
;*************************************
key_jmpp:
mov a,key_data
jnz kp1
ret
kp1:
cjne a,#01,kp2;ka
call clr_ff
ret
kp2:
cjne a,#02,kp3;kb
mov kc_data,#0
inc set_data
mov a,set_data
cjne a,#03,kp2_1
mov set_data,#0
kp2_1:
ret
kp3:
cjne a,#03,kp4;kc
inc kc_data
mov a,kc_data
cjne a,#10,kp3_1
mov kc_data,#0
kp3_1:
mov r0,#led2_bak
jmp jj_led2_bak
kp4:
cjne a,#04,kp5;kd
mov a,led2_bak
xrl a,#pass_1
jz kp41
sjmp sec_1
kp41:
mov a,led3_bak
xrl a,#pass_2
jz kp42
sjmp sec_1
kp42:
mov a,led4_bak
xrl a,#pass_3
jz kp43
sec_1:
;****************** take off card ************2001.9.28
mov a,led2_bak
xrl a,#sn_pass1
jz kp51
sjmp sec_2
kp51:
mov a,led3_bak
xrl a,#sn_pass2
jz kp52
sjmp sec_2
kp52:
mov a,led4_bak
xrl a,#sn_pass3
jz kp53
sec_2:
dec sec_bak
jmp clr_led2
kp53:
setb card_f
ret
kp43:
setb menu1_over
kp5:
ret
clr_led2:
call led_pass
call led
call key_bord1
call key_del
ret
;**********************************
jj_led2_bak:
mov a,set_data
add a,r0
mov r0,a
mov @r0,kc_data
ret
led_pass:
mov led1,led1_bak
mov led2,led2_bak
mov led3,led3_bak
mov led4,led4_bak
jb fl_250ms,led_pass1
mov r0,#led2
call jj_led2_bak
mov @r0,#black
led_pass1:
ret
jj_card:
jb card_test_f,jj_card_end
call timer_20ms
call timer_20ms
jb card_test_f,jj_card_end
call beep_del
clr card_power
ret
jj_card_end:
setb card_power
ret
card_wr:
jnb card_power,card_wr_1
ret
card_wr_1:
;********* write data to card ******
;
ret
;******************************************
rs_485:
push a
push b
push psw
push 00h
jbc ri ,rec_s1
clr ren
clr ti
jnb rs_485_f,rs4_1
mov r0,#y1
jnb pc_f,rs11_1
mov r0,#pc1
rs11_1:
call sbuf_out
mov a,send_no
cjne a,#rs_no,rs_485_end ;****2001.5.29
clr rs_485_f
sjmp rs_485_end
rs4_1:
clr ti
clr rs_485_f
clr rs_en
setb rs_led ;*******2001.6.4
setb ren
mov send_no,#00d
clr pc_f
sjmp rs_485_end
rec_s1:
;*************************2001.6.7
clr tb8
clr rb8
mov a,sbuf
mov b,addres_bak
cjne a,b,rs_4
setb tb8
;********************
mov r0,#pc1
setb pc_f
sjmp rs_41
rs_4:
xch a,b
setb acc.7
xch a,b ;send asc addres =addres+128
cjne a,b,rs_485_end
mov r0,#y1
clr pc_f
rs_41:
clr rs_led
clr ti
setb rs_en
mov send_no,#00h
call sbuf_out
clr ren
setb rs_485_f
rs_485_end:
pop 00h
pop psw
pop b
pop a
reti
;************************************
sbuf_out:
mov b,#05d
djnz b,$
mov a,send_no
add a,r0
mov r0,a
mov a,@r0
mov sbuf,a
inc send_no
ret
;*********************************
back:
mov a,led_power
jz bk_3
mov a,sec_bak
add a,#back_x
call sec_ct
cjne a,b,bk_3
mov key_data,#04d
bk_3:
ret
;***************************************
key_del:
mov a,key_data
jnz kl_12
mov a,frist
jnz kl_13
ret
kl_13:
mov key_data,frist
mov frist,#0
clr key_over
jmp beep_del
kl_12:
jnb key_over,kl11
mov a,t_30ms
add a,#03
call sec_ct
cjne a,b,key_del_end
clr key_over
jmp set_key
kl11:
mov t_30ms,sec
setb key_over
key_del_end:
call sf_a
cjne a,#key_da,sfg_12
clr key_over
jmp beep_del
sfg_12:
mov frist,key_data
mov key_data,#0
ret
;******************************************
key_bord1:
call re_k
mov a,key_data
jz key_bord1_end
key_bord1_end:
;setb key_f
ret
sec_ct:
mov b,#60d
div ab
mov a,sec
ret
set_key:
mov a,key_data
cjne a,#01h,set_cc1
mov set_data,#01d
ret
set_cc1:
cjne a,#02h,set_cc2
mov set_data,#02d
ret
set_cc2:
cjne a,#03h,set_cc3
mov set_data,#03d
ret
set_cc3:
cjne a,#04h,sf_beep
mov set_data,#04d
ret
;******************************
re_k:
mov key_data,#00h
mov a,p1
anl a ,#key_da;11110000b
cjne a,#key_da,you_key
re_k_end:
ret
you_key:
call timer_20ms
call timer_20ms
call timer_20ms
mov a,p1
anl a ,#key_da
cjne a,#key_da,you_key1
ret
you_key1:
jb acc.7,key_kb
mov key_data,#01h
key_kb:
jb acc.6,key_kb1
mov key_data,#02h
key_kb1:
jb acc.5,key_kb2
mov key_data,#03h
key_kb2:
jb acc.4,sf_key0
mov key_data,#04h
sf_key0:
ret
sf_key:
call sf_a
cjne a,#key_da,sf_key
jmp beep_del
sf_a:
mov a,p1
;setb key_f
anl a ,#key_da
ret
;************************************
sf_beep:
jmp beep_del
jj_sf:
mov a,p1
anl a ,#key_da
cjne a,#key_da,jj_sf
mov key_data,#0
mov frist,#0
ret
;^&&^&^&^&^&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
clr_y1:
mov r0,#y1
mov r7,#12
set_clr2:
mov @r0,#0
inc r0
djnz r7,set_clr2
ret
set_menu2:
mov led_power,#01
call clr_kd
;mov ka_data,#01
setb set_f
clr a
mov key_data,a
mov ch_no_temp,a
call clr_y1
mov sec_bak,sec
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -