📄 lcd_f2.asm
字号:
clr sq1_f
clr es
mov frist,#0
call led_blk
menu22:
call clock
call f1_count
call led_blk
call led_s4
call led
call key_bord1
call key_del
call key_s3
mov a,led_power
jnz menu22
call clr_kd
clr set_f
;mov set_data,#0
mov ch_no_temp,#0
mov frist,#0
setb es
ret
f1_count:
jbc test_ok,f1_co10
ret
;***********************
f1_co10:
call count_hz
mov a,led_power
cjne a,#3,f1_co2
f1_co3:
mov r1,#fd1_temp
mov r0,#y3
call fmov ;f1 to y3
sjmp f1_co4
f1_co2:
cjne a,#5,f1_co4
mov r1,#fd1_temp
mov r0,#y4
call fmov ;f2 to y4
f1_co4:
call f_khz
ret
;**********************************
proc key_s3
key_s3:
mov a,key_data
jnz ky_s1
ret
ky_s1:
cjne a,#01,kys2 ;ka
call clr_kd
clr sq1_f
mov sec_bak,sec
inc led_power
mov a,led_power
cjne a,#6,ky1_1
;***************
;mov led_power,#01
call count_k_b
mov led_power,#01
ky1_1:
ret
kys2:
cjne a,#02,kys3 ;kb
jmp kbs_jmp
kys3:
cjne a,#03,kys4 ;kc
mov a,led_power
cjne a,#01,kys30
inc ch_no_temp
mov a,ch_no_temp
mov b,ch_no
inc b
cjne a,b ,kys32
mov ch_no_temp,#0
kys32:
ret
kys30:
jmp kcs_jmp
kys4:
cjne a,#04,kys5 ;kd
mov led_power,#0
call clr_kd
kys5:
ret
end
;**********************************************
proc led_s4
led_s4:
mov a,led_power
cjne a,#1,le_s01
;************** 2002.1.20************
mov a,ch_no
jnz le012_1
inc led_power
ret
;*************************************
le012_1:
mov led1,#0ch
mov led2,#r_led
mov led3,#black
mov led4,#black
jb fl_250ms,le012
mov led4,ch_no_temp
inc led4
le012:
ret
le_s01:
cjne a,#2,le_s1
mov led1,ch_no_temp
inc led1
mov led2,#yo_led
mov led3,#1
mov a,#black
mov led4,a
mov r1,#y1
mov led_ch,#0
call flash_y1
sjmp le_s5
le_s1:
cjne a,#03,le_s2
mov led1,ch_no_temp
inc led1
mov led2,#0fh
mov led3,#1
mov a,#black
mov led4,a
mov r1,#fd1_temp
mov led_ch,#0
call flash_y1
sjmp le_s5
le_s2:
cjne a,#04,le_s3
mov led1,ch_no_temp
inc led1
mov led2,#yo_led
mov led3,#2
mov a,#black
mov led4,a
mov r1,#y2
mov led_ch,#0
call flash_y1
sjmp le_s5
le_s3:
cjne a,#05,le_s5
mov led1,ch_no_temp
inc led1
mov led2,#0fh
mov led3,#2
mov a,#black
mov led4,a
mov r1,#fd1_temp
;*******************
mov led_ch,#0
call flash_y1
le_s5:
mov led_ch,ch_no_temp
ret
end
;*************************************
count_k_b:
;******************** couny k b
mov r1,#y4
mov r0,#fd1_temp ;fd1_temp=y4
call fmov
mov r1,#y3
call fsub ;f2-f1=fd1_temp
mov r0,#y2
mov r1,#y1
call fsub ;y2-y1=y2
mov r1,#fd1_temp
call fdiv ;y2=k
;***********
;***********
;********************* k to k1
mov r0,#k1
call jj_ar
mov r1,#y2
call fmov
;********* wr ee ***********
mov r0,#k1_ee
call jj_ar
mov dpl,a
mov dph,#0
mov r2,#3
mov r0,#k1
call jj_ar
call clr_wk
;***********************
mov r0,#y2
mov r1,#y3 ;y3=f1
call fmul ;k*f1
mov r1,#y2
mov r0,#y1
call fsub ;y-k*f=b
;***********
mov r0,#b1
call jj_ar
mov r1,#y1
call fmov
mov r0,#b1_ee
call jj_ar
mov dpl,a
mov dph,#0
mov r2,#3
mov r0,#b1
call jj_ar
call clr_wk
call clr_y1
ret
jj_ar:
mov a,ch_no_temp
mov b,#03
mul ab
add a,r0
mov r0,a ;r0 to k1
ret
;********************************
f_khz:
mov r0,#fd1_temp
call fmov ;f1,f2 to fd1_temp
;***********
;***********
mov fd2_temp,#04h
mov fd2_temp+1,#10h
mov fd2_temp+2,#00h
mov r0,#fd2_temp
call btof
mov r0,#fd1_temp
mov r1,#fd2_temp
call fdiv
mov r1,#fd1_temp ;f1/1000 to led
ret
;****************** 0 asc 48 ,9 asc 57 ******
send_pc:
jb rs_485_f ,se_end
jb set1_f ,se_end
clr es
clr f0
mov r0,#led1
mov r1,#pc1
mov r6,#21
se_c1:
mov @r1,#32
inc r1
djnz r6 ,se_c1
;*********************************
mov r1,#pc21
mov a,ch_no
inc a
mov r6,a
add a,#48 ;ch_no 1-4
mov @r1,a
;&&&&&&&&&&&&&&&&&&&&&&&&&
mov r1,#pc1
se000:
mov r7,#4
se00:
mov a,@r0
cjne a,#black,se1
mov @r1,#32
sjmp se3_2
se1:
cjne a,#ff_led,se2
mov @r1,#45
sjmp se3_2
se2:
cjne a,#20h,se3
se31:
clr c
subb a,#20h
add a ,#48
mov @r1,a
inc r1
mov @r1,#46;dot to led
setb f0
sjmp se3_2
se3:
jnc se31
add a ,#48
mov @r1,a
se3_2:
inc r1
inc r0
djnz r7,se00
jbc f0,se09
mov @r1,#46
inc r1
se09:
djnz r6,se000
setb es
se_end:
ret
;************************************
clock:
mov a,t_250ms
cjne a,#0ffh,clk1
sjmp clk2
clk1:
jnz clock_end
clk2:
mov t_250ms ,#04d
inc sec
mov a,sec
cjne a,#60d,clock_end;!!!!!!!!!!!!!!!!!!!!!!
mov sec,#00h
clock_end:
ret
;************************************
led_ch_clock:
call led_blk
;**********************************************
led_year:
ret
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
da_out:
mov r1,#y1
mov a,da_no
mov b,#03
mul ab
add a,r1
mov r1,a
;************************
mov r0,#fd2_temp
call fmov
mov r1,#fs1
mov a,da_no
mov b,#03
mul ab
add a,r1
mov r1,a
;***************************
call fdiv ;fd2_temp= da%
mov fd1_temp,#04h
mov fd1_temp+1,#40h
mov fd1_temp+2,#da_l ;*******2001.10.16
mov r0,#fd1_temp
call btof
mov r1,#fd2_temp
call fmul ;fd1_temp= data
call fint
call ftod
clr cs_da
mov r7,#08
clr a
jnb f0,da_12
mov a,fd1_temp;(h)<=
da_12:
call da_bit1
mov r7,#08
mov a,fd1_temp;(l)<=
jnb f0,da_13
mov a,fd1_temp+1;(l)<=
da_13:
call da_bit1
setb cs_da
setb ck_da
ret
da_bit1:
setb ck_da
rlc a
mov si_da,c
clr ck_da
djnz r7,da_bit1
ret
led_asc:
db 11111100B;0
db 01100000B;1
db 11011010B;2
db 11110010B;3
db 01100110B;4
db 10110110B;5
db 10111110B;6
db 11100000B;7
db 11111110B;8
db 11110110B;9
DB 11101110B;a=>A
DB 00111110B;B=>B
DB 10011100B;C=>C
DB 01111010B;D=>D
DB 10011110B;E=>E
DB 10001110B;F=>F
DB 01101110B;H=>10H
DB 00011100B;L=>11H
DB 11101100B;N=>12H
db 00101010b;n=>13h
db 11111100b;O=>14h
dB 00111010B;o=>15H
DB 11001110B;P=>16H
DB 11100110B;Q=>17H
DB 00001010B;r=>18H
DB 10110110B;S=>19H
DB 01111100B;U=>1AH
DB 00111000B;u=>1BH
DB 00000000B;BLACK=>1CH
DB 11111111B;8.=>1DH
db 00000010b;-=>1Eh
db 00011110b;t=>1Fh
db 11111101B;0.=>20h
db 01100001B;1.
db 11011011B;2.
db 11110011B;3.
db 01100111B;4.
db 10110111B;5.
db 10111111B;6.
db 11100001B;7.
db 11111111B;8.
db 11110111B;9.=>29h
db 00011010b;cc=>2ah
db 00000001b;cc=>2bh
db 01110110b;y0=>2ch
db 'li jie 2001 9 20'
asc_1:
;abcd efgh=>abch fged
;mov b,#0
mov c,acc.7;a
mov b.7,c
mov c,acc.6;b
mov b.6,c
mov c,acc.5;c
mov b.5,c
mov c,acc.4;d
mov b.0,c
mov c,acc.3;e
mov b.1,c
mov c,acc.2;f
mov b.3,c
mov c,acc.1;g
mov b.2,c
mov c,acc.0;h
mov b.4,c
mov a,b
ret
;*******************************************
;led=> / abcdefgh
;abcdefgh=>
;degfhcba;****fu hao out
proc led
LED:
call fh_to_led9
;mov led9,#00001100b
;mov led10,#00100000b
;********************************2002.1.19
mov r0,#lcd_buf
mov r1,#led1
mov R7,#12
mov dptr,#led_asc
led_next:
mov a,@r1
cjne r1,#led9,lku12
lku13:
sjmp lku14
lku12:
jnc lku13
movc a,@a+dptr
;******************************** p4,p8 to led
mov b,a
cjne r1,#led4,lku45
;trxd to p4
mov c,rs_led
cpl c
mov acc.0,c
sjmp lku14
lku451:
mov a,b
clr acc.0
sjmp lku14
lku45:
cjne r1,#led8,lku14
mov c,ee_f
;cpl c
mov acc.0,c
sjmp lku14
lku453:
mov a,b
clr acc.0
lku14:
call asc_1
lki12:
mov @r0,a
inc r0
inc r1
djnz R7 ,led_next
led_np:
call seg_bin
call bin_lcd
led_end1:
ret
end
seg_bin:
setb llc_f
mov r0,#lcd_buf
mov r1,#p0_buf
mov r6,#12
stodpg1:
mov b,r1
mov r7,#8
mov a,@r0
mov r2,a
stodpg2:
mov a,r2
rrc a
mov r2,a
push psw
mov a,@r1
rrc a
mov @r1,a
inc r1
pop psw
cpl c
mov a,@r1
rrc a
mov @r1,a
inc r1
cjne r7,#5,stodpg3
mov r1,b
stodpg3:
djnz r7,stodpg2
inc r0
mov r1,b
cjne r6,#9,stodpg4
mov r1,#p2_buf ;!!!!!!!!!
stodpg4:
cjne r6,#5,stodpg5
mov r1,#p3_buf ;!!!!!!!!!
stodpg5:
djnz r6,stodpg1
clr llc_f
ret
lcd_ee24:
;*************** change led9,led10 (low)
; mov a,led10 ;led10=abcdefgh=>0,0,0,ppm,kn,%rh,t,0
mov a,led9 ;led9=C,m,MPa,^,v,v,^,%
anl a,#0fh
rl a
mov led10,a ;fh2 to led10
;******************************
mov b,led9
mov a,h_l_out;*1_ch to led
mov c,acc.0;1l
mov b.2,c
mov c,acc.1;1h
mov b.1,c
;**************************2ch to led9
mov a,h_l_out;*********
mov c,acc.2;2l
mov b.3,c
mov c,acc.3;2h
mov b.4,c
;************ % to led9.0
mov a,led9
mov c,acc.4
mov b.0,c
;**************************** b= led9 +2^,2v,1^,1v
mov a,fh1_bak ;jb fh=1,0
dec a
jnz jk_12
clr b.2 ;1l
clr b.1 ;1h
mov led1,#black
mov led2,#black
mov led3,#black
mov led4,#black
jk_12:
mov a,fh2_bak
dec a
jnz jk_13
clr b.3 ;2l
clr b.4 ;2h
mov led5,#black
mov led6,#black
mov led7,#black
mov led8,#black
jk_13:
mov led9,b
ret
;***********************************
p0_lcd_out:
push dph
push dpl
push 00h
push 07h
push 06h
push 05h
push 04h
push 03h
push 02h
push 01h
mov p0,#0aah
;mov p0,#01010101b
mov a,m_count
add a,#p0_buf_bak ;m_wei
mov r0,a
mov a,@r0
mov r6,a
mov a,m_count
add a,#p2_buf_bak;r_wei
mov r0,a
mov a,@r0
mov r5,a
;**************************************
mov a,m_count ;f_wei
add a,#p3_buf_bak
mov r0,a
mov a,@r0
;**************************************
mov c,beep_out
mov acc.5,c ;beep out at 595.5
mov c, lamp_out
cpl c
mov acc.6,c ;lamp out at 595.6
mov c,ee_f
cpl c
mov acc.4,c ;ee out at 595.4
mov r4,a
call lcd_595
;************************************
clr rck_m
clr rck_r
clr rck_f
setb rck_m
setb rck_r
setb rck_f
;**************** com_out
mov a,m_count
mov dptr,#lcd_tab
movc a,@a+dptr
mov p0,a
;*******************************
xc2:
mov w_adj_1,#xu-10
inc m_count
mov a,m_count
cjne a,#8,t0_int
mov m_count,#0
;call bin_lcd
;call led
t0_int:
;call bin_lcd
pop 01h
pop 02h
pop 03h
pop 04h
pop 05h
pop 06h
pop 07h
pop 00h
pop dpl
pop dph
ret
lcd_tab:
db 10101000b
db 10101011b
db 10100010b
db 10101110b
db 10001010b
db 10111010b
db 00010101b
db 11101010b
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
lcd_595:
mov r0,#04h
mov r3,#03
lcd_n1:
mov r7,#8d
mov a,@r0
lcd01:
rlc a
mov si_lcd,c
clr sck_lcd
nop
setb sck_lcd
djnz r7,lcd01
inc r0
djnz r3,lcd_n1
ret
bin_lcd:
jb llc_f,bin_lcd_end
mov r0,#p0_buf
mov r1,#p0_buf_bak
mov r7,#24d
bin_lcd1:
mov a,@r0
mov @r1,a
inc r0
inc r1
djnz r7,bin_lcd1
;mov w_adj_1,#xu+138
ret
bin_lcd_end:
;mov w_adj_1,#xu
ret
;*******************************
proc set_fh12
set_fh12:
;***********************************
clr menu1_over
mov set_data,#0
call led_blk
call led_fh12
pass1:
call led_fh12
call key_bord1
call key_del
call key_jmp12
call clock
call y1_count
jnb menu1_over,pass1
mov set_data,#0
call clr_kd
mov fh1_bak,fh1
mov fh2_bak,fh2
ret
end
;*************************************
key_jmp12:
mov a,key_data
jnz kp12
ret
kp12:
cjne a,#02,kp22;kb
mov kc_data,#0
inc set_data
mov a,set_data
cjne a,#02,kp22_1
mov set_data,#0
kp22_1:
ret
kp22:
cjne a,#01,kp32;ka
ret
kp32:
cjne a,#03,kp422;kc
mov r0,#fh1
mov a,set_data
add a,r0
mov r0,a
inc @r0
mov a,@r0
cjne a,#6,kp32_1 ;midf 2002.3.17
mov @r0,#0
kp32_1:
ret
kp422:
cjne a,#04,kp5221;kd
mov dptr,#fh1_ee
mov r2,#2
mov r0,#fh1
call clr_wk
setb menu1_over
kp5221:
ret
led_fh12:
;call led_blk
mov led1,#05h
mov led2,#n_led
mov led3,fh1
mov led4,fh2
jb fl_250ms,led_fh12_end
mov r0,#led3
mov a,set_data
add a,r0
mov r0,a
mov @r0,#black
led_fh12_end:
call led
ret
fh_to_led9:
;0,p4,1,2,3 led9_h
;0=no ,p4=led4+20h
;0,p8,1,2,3 led9_l
;0=no ,p8=led8+20h
;abcdef_6 led10
;***************************************
mov a,fh1
jnz fhto1
fhto1_1:
mov a,led9
anl a,#0fh
mov led9,a
sjmp fhto2
fhto1:
cjne a,#01,fhto13
sjmp fhto1_1
fhto13:
mov dptr,#fh_asc
dec a
dec a
movc a,@a+dptr
mov b,a
mov a,led9
anl a,#0fh
orl a,b
mov led9,a
;***********************************
fhto2:
mov a,fh2
jnz fhto122
fhto2_1:
mov a,led9
anl a,#0f0h
mov led9,a
sjmp fhto222
fhto122:
cjne a,#01,fhto132
sjmp fhto2_1
fhto132:
mov dptr,#fh_asc
dec a
dec a
movc a,@a+dptr
swap a ;;;;;;h=>l
mov b,a
mov a,led9
anl a,#0f0h
orl a,b
mov led9,a
fhto222:
;****************** auto led ee_f trs h,l********
jmp lcd_ee24
fh_asc:
db 10000000b
db 01000000b
db 00100000b
db 00010000b
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -