📄 lcd_f2.asm
字号:
;***************
;lcd_program 2002.4.13
;***************
send_no equ 08h
dot_bit equ send_no
t_20ms equ dot_bit+1
T_1S EQU t_20ms+1H
LED_power EQU t_1s+1h
key_data equ led_power+1h
ch_no_temp equ key_data+1h
tp_100ms equ ch_no_temp+1
beep equ tp_100ms+1h
test_no equ beep+1h
t_30ms equ test_no+1h
beep1 equ t_30ms+1h
N1 equ beep1+1h
n2 equ N1+1h
hl_out equ n2+1
fd2_temp equ hl_out+1h
fd1_temp equ fd2_temp+3h
led_ch equ fd1_temp+3
sec_bak equ led_ch+1
h_l_out equ sec_bak+1
fs_out equ h_l_out+1
;*********************************************************
set_data equ 24h
t_250ms equ set_data+1
addres_bak equ t_250ms+1
sec equ addres_bak+1
m_count equ sec+1
;*************************************
LED1 EQU m_count+1h
LED2 EQU led1+1h
LED3 EQU led2+1h
LED4 EQU led3+1h
led5 equ led4+1
led6 equ led5+1
led7 equ led6+1
led8 equ led7+1
led9 equ led8+1
led10 equ led9+1
fh1_bak equ led10+1
fh2_bak equ fh1_bak+1
kb_data equ fh2_bak+1;***********
kc_data equ kb_data+1
led0_bak equ kc_data+1
led1_bak equ led0_bak+1
led2_bak equ led1_bak+1
led3_bak equ led2_bak+1
led4_bak equ led3_bak+1
fs1_no equ led4_bak+1
fs2_no equ fs1_no+2h
;*************** send to rs_485******************************
rs_no equ 21d
y1 equ fs2_no+2
y2 equ y1+3h
y3 equ y2+3h
y4 equ y3+3h
;*********************************************
dt1_dat equ y4+3
dt2_dat equ dt1_dat+1
dt3_dat equ dt2_dat+1
dt4_dat equ dt3_dat+1
w_adj_1 equ dt3_dat
frist equ w_adj_1+1
fd1_dat equ frist+1
fd2_dat equ fd1_dat+1
fd3_dat equ fd2_dat+1
fd4_dat equ fd3_dat+1
;**************************************************2002.4.1
fh1 equ fd3_dat
fh2 equ fh1+1
;**************************************************2002.4.1
ch_no equ fh2+1
bps equ ch_no+1h
addres equ bps+1h
dp_dat equ addres+1h;dp=1 500ms,dp=0 250ms
da_no equ dp_dat+1h;in menu2
del_t equ da_no+1
;*******************************************
fo1 equ del_t+1
fo2 equ fo1+3h
;****************************************
k1 equ fo2+3h
k2 equ k1+3h
;***************************************
b1 equ k2+3h
b2 equ b1+3h
;***************************************
c1 equ b2+3h
c2 equ c1+3h
;************************************
l1 equ c2+3h
l2 equ l1+3h
;*************************************
h1 equ l2+3h
h2 equ h1+3h
;*************************************
fs1 equ h2+3h
fs2 equ fs1+3h
menu_no equ 56d
;**************************************
pc1 equ fs2+3
pc21 equ pc1+20;;10
lcd_buf equ pc21+1
p0_buf equ lcd_buf+12
p2_buf equ p0_buf+8
p3_buf equ p2_buf+8
p0_buf_bak equ p3_buf+8
p2_buf_bak equ p0_buf_bak+8
p3_buf_bak equ p2_buf_bak+8
sp_data equ p3_buf_bak+8
;**************************************
;eeprom_adress:
ch_ee_no equ 14d
dt1_dat_ee equ 00h
dt2_dat_ee equ dt1_dat_ee+1
dt3_dat_ee equ dt2_dat_ee+1
dt4_dat_ee equ dt3_dat_ee+1
;************************* 2002.4.1 ********************
w_adj_1_ee equ dt3_dat_ee
frist_ee equ w_adj_1_ee+1
;************************* 2002.4.1 ********************
fd1_dat_ee equ frist_ee+1
fd2_dat_ee equ fd1_dat_ee+1
fd3_dat_ee equ fd2_dat_ee+1
fd4_dat_ee equ fd3_dat_ee+1
;********************************************************
fh1_ee equ fd3_dat_ee
fh2_ee equ fh1_ee+1
;********************************************************
ch_no_ee equ fh2_ee+1
;*********************************************
bps_ee equ ch_no_ee+1h
addres_ee equ bps_ee+1h
dp_dat_ee equ addres_ee+1h
en_dat_ee equ dp_dat_ee+1h
del_t_ee equ en_dat_ee+1h
;*****************************************
fo1_ee equ del_t_ee+1
fo2_ee equ fo1_ee+3h
;****************************************
k1_ee equ fo2_ee+3h
k2_ee equ k1_ee+3h
;***************************************
b1_ee equ k2_ee+3h
b2_ee equ b1_ee+3h
;***************************************
c1_ee equ b2_ee+3h
c2_ee equ c1_ee+3h
;************************************
l1_ee equ c2_ee+3h
l2_ee equ l1_ee+3h
;*************************************
h1_ee equ l2_ee+3h
h2_ee equ h1_ee+3h
;*************************************
fs1_ee equ h2_ee+3h
fs2_ee equ fs1_ee+3h
;***************************************
;LED_ERR: 10 10 10 10 B
; 4 3 2 1 _WAY
; HL HL HL HL ;H=>OVER;L=>LOW
; 11=>NO WORK
fff_f bit 00h
FL_500MS BIT Fff_f+1H
FL_250MS BIT Fff_f+2H
dot_f BIT Fff_f+3H
set_f bit dot_f+1h
set1_f bit set_f+1
;*****************************
ha_over bit set1_f+1h
ha_over1 bit ha_over+1h
pc_f bit ha_over1+1h
key_you_f bit pc_f+1h
ha_f bit key_you_f+1h
menu1_over bit ha_f+1h
ha_fl bit menu1_over+1h
TEST_F BIT ha_fl+1H
key_over bit test_f+1h
rs_485_f bit key_over+1h
set_clk_f bit rs_485_f+1h
sq1_f bit set_clk_f+1h
sq_f bit sq1_f+1h
kd_over bit sq_f+1
ee_f bit kd_over+1
test_ok bit ee_f+1
card_f bit test_ok+1
turn_f bit card_f+1
llc_f bit turn_f+1
;*************************************************
lamp_out bit llc_f+1
ee24_out bit lamp_out+1
beep_out bit ee24_out+1
ch_max equ 01d
cmp_no equ 01d
da_l equ 00h
;**************************************************
back_x equ 30d
lcd_t equ 0ffh
pass_1 equ 09h
pass_2 equ 08h
pass_3 equ 07h
sn_pass1 equ 01h
sn_pass2 equ 02h ;sn_password=123
sn_pass3 equ 03h
;********************************************************
bright_x equ 0ffh
del_t_x equ 0b0h
pass_no equ 04d;
frist_no equ 69d
xu equ 50
card_power bit p2.1
card_test_f bit p2.0
;key_f bit p2.7
;***********************************
rs_led bit p2.7
;*********************************2001.6.4
l1_out bit p2.0
h1_out bit p2.1
l2_out bit p1.1
h2_out bit p1.2
;*******************************************2002.3.20
rs_en bit p3.2
;***********************************
ch_a bit p1.3
;ch_b bit p1.7
sda bit p3.6 ;sda
scl bit p3.7 ;scl
si_lcd bit p2.2
sck_lcd bit p2.4
si_da bit p3.5
ck_da bit p3.4
cs_da bit p3.3
rck_f bit p2.6
rck_m bit p2.5
rck_r bit p2.3
;******************************************************************
T_H_100ms EQU 0f8H ;f755H=>2.5MS
T_L_100ms EQU 1eH ;11.0592mhz
TIMER_no EQU 100D ;230400uS=250ms
key_da equ 0f0h ;#11110000b
max equ 39d
max1 equ 34d
;******************************************************************
;************* eeprom ********************
slar equ 0a1h
slaw equ 0a0h
;****************************************
black equ 1Ch
l_led equ 11h
o_led equ 15h
u_led equ 1Bh
r_led equ 18h
QQ_led equ 1dh
p_led equ 16h
a_led equ 0ah
UU_led equ 1ah
s_led equ 19h
e_led equ 0eh
tt_led equ 1fh
ff_led equ 1eh
c_led equ 0ch
h_led equ 10h
b_led equ 0bh
d_led equ 0dh
f_led equ 0fh
nn_led equ 12h
n_led equ 13h
yo_led equ 2ch
;************************************************************************
oRG 0000H; ;
AJMP start
ORG 0003H; ;
reti;ljmp int0
ORG 000BH ;
LJMP T0 ;
ORG 0013H
reti ;
ORG 001BH ;
reti ;
ORG 0023H ;
jmp rs_485;RETI
ORG 002bH ;
clr tf2
setb test_f ;2001.5.24
reti
;**************************************
start:
mov p0,#0aah
mov a,#0e8h
str1:
MOV b,#0ffh ;
MOV R0,#01H ;
cR: INC R0 ;
MOV @R0,#00d ;
djnz b,cr
dec a
jnz str1
;******************************2002.5.5
setb beep_out
;*****************************
mov sp,#sp_data
call read_ee
call int_ctrl
mov a,frist
cjne a,#frist_no,int_go_1
sjmp go_2
int_go_1:
call read_int
call wr_int
go_2:
call bps_int
call jb_ch_max;2002.3.20
call de_10s
;sjmp go_2
mov frist,#0
;jmp set_clock
;jmp set_al4
;call pass_set
;call set_menu2
;call timer_20ms
;call set_fh12
;***************************************************
; MINI_Pragram
;***********************************************
STAR_BI:
call clock
call led_jmp
call send_pc
call led
call key_bord1
call key_del
call set_menu
mov set_data,#0
call back
call key_jmp
call y1_count
call card_wr
;call pass_set
;call set_menu2
;call timer_20ms
SJMP STAR_BI
;********************************
;bps=0:0.3k
;bps=1:0.6k
;bps=2:1.2k
;bps=3:2.4k
;bps=4:4.8k
;bps=5:9.6k
;bps=6:19.2k
bps_int:
;********************************************
mov a,pcon
anl a,#01111111b
mov pcon,a
mov dptr,#bps_asc
mov a,bps
cjne a,#06h,bb_1
mov a,pcon
orl a,#10000000b
mov pcon,a
mov a,#0fdh ;***********************
sjmp bb_2
bb_1: movc a,@a+dptr
bb_2:
mov th1,a
mov tl1,a
setb tr1
ret
jb_ch_max:
;***************** jb ch_no >ch_max *********
mov a,ch_no
cjne a,#ch_max,cch1
sjmp cch2
cch1:
jc cch2
mov ch_no,#ch_max
call wr_int
cch2:
ret
bps_asc:
db 0a0h,0d0h,0e8h,0f4h,0fah,0fdh
db 'li jie by 2001.10.27'
;************** INT_CTRL
int_ctrl:
MOV T_1S,#TIMER_no
mov t_250ms ,#4
mov m_count ,#0
mov w_adj_1,#xu
;******************
clr rs_en
setb ren
;mov tp_100ms,#tp_ms
mov addres_bak,addres
setb et2
setb et0
MOV TMOD,#00100001B;**********2001.5.24
mov t2con ,#00000011b;20001.5.24
MOV TH2 ,#00h;T_H_10ms
MOV TL2 ,#00h;T_L_10ms
mov rcap2l,#0
mov rcap2h,#0
MOV SCON,#11110000b ;mode 3 2001.6.7
call add_w
setb pt0
setb pt2
clr ps
setb ea
setb tr2
setb tr0
ret
;*********************************************
timer_20ms:
mov r2,#del_t_x
time0:
mov b,#020h
djnz b,$
call clock
djnz r2,time0
RET
include"d:\lcd\lcd_ovl.asm"
;********************************* 2001.5.16
de_10s:
mov beep,sec
mov dptr,#del_asc
mov a,del_t
movc a,@a+dptr
mov r7,a ;read del_t 5s,10s,20s,30s
del_1:
push 07h
call clock
call led_blk
mov led1,#p_led
jb fl_250ms,del_22
mov led2,#r_led
mov led3,#0eh
mov led4,#p_led
;mov led5,#5h;p_led
;mov led6,#6h;r_led
;mov led7,#7h;0eh
;mov led8,#9h;p_led
call led
del_22:
pop 07h
mov a,beep
add a,r7
call sec_ct
cjne a,b,d_ha5
sjmp del_2
d_ha5:
jc del_1
del_2:
setb es
ret
;******************************************
add_w:
clr tr0
mov a,#T_L_100ms
add a, w_adj_1 ;*******have 5 order
mov tl0 ,a
mov a,#T_H_100ms
;*************************
addc a,#00h;
;*************************
mov th0,a
;***********************************************
; MOV T_1S,#TIMER_no
ret
;*************************************************
;
t0:
clr tr0
push a
push psw
push b
call p0_lcd_out
call add_w
;sjmp t0_end1
djnz t_1s ,t0_end1
dec t_250ms
cpl fl_250ms
mov a,t_250ms
mov b,#02
div ab
mov a,b
jnz t0_n1
cpl fl_500ms
t0_n1:
mov b,dp_dat
inc b ;b=1 250ms b=2 500ms
mov a,t_250ms
div ab
mov a,b
jnz turn_ch1
call turn_ch
setb tr2
sjmp t0_end2
turn_ch1:
;nop
;nop
call nop1
t0_end2:
MOV T_1S,#TIMER_no
t0_end1:
setb tr0
pop b
pop psw
pop a
reti
turn_ch:
clr tr2
;cpl turn_f
;jb turn_f,tu11
mov N1,th2
mov n2,tl2
;***********************2001.9.22
setb test_ok
;***********************
mov test_no,ch_no_temp
;******************************
jnb set_f ,turn_1
mul ab
nop
sjmp tu1
turn_1:
mov a,ch_no_temp
inc a
mov b,ch_no
inc b
cjne a,b, tu1_2
tu1_3:
clr a
sjmp tu1_4
tu1_2:
jnc tu1_3
tu1_4:
mov ch_no_temp,a
tu1:
mov a,ch_no_temp
mov c,acc.0
;setb c
mov ch_a,c
;mov c,acc.1
;mov ch_b,c
clr p1.0
mov b,#050
djnz b,$
setb p1.0
tur12:
clr a
mov th2,a
mov tl2,a
ret
nop1:
mov b,#043h
djnz b,$
ret
;*********************************black led
led_blk:
mov r7,#10
mov r0,#led1
mov a,#black
bl_1:
mov @r0,a
inc r0
djnz r7,bl_1
ret
;***********led_jmp
led_jmp:
call led_blk
call y1_led
call flash_way
mov a,led_power
jnz led_jmp1
ret
led_jmp1:
;**************1,2,3,4,5,6
;**************ch,bps,addres,dp,en,del_t
cjne a,#6,le11
le12:
call led_menu1
jnb set1_f,le121
jb fl_250ms ,le121
mov a,led_power
cjne a,#02,le12_2
mov led2,#black
le12_2:
mov a,#black
mov led3,a
mov led4,a
le121:
ret
le11:
jc le12
cjne a ,#10d,le22
le23:
mov r1,#dt1_dat
mov b,#10d
call cout_dt
jbc sq_f,conw31
call conw3
mov led2,#0dh
mov led3,#tt_led
jnb set1_f,le23_1
jb fl_250ms,le23_1
mov led4,#black
le23_1:
ret
blk_14:
mov a,#black
mov led1,a
mov led2,a
mov led3,a
mov led4,a
ret
conw31:
jmp blk_14
le22:
jc le23
cjne a ,#14d,le33
le34:
mov led_power,#19
ret
;*************************************
mov r1,#fd1_dat
mov b,#14d
call cout_dt
jbc sq_f,conw3_1
call conw3
mov led2,#0fh ;led'fd'
mov led3,#0dh
jnb set1_f,le23_2
jb fl_250ms,le23_2
mov led4,#black
le23_2:
ret
conw3_1:
jmp blk_14
le33:
jc le34
cjne a ,#18d,le43
le44:
mov led_power,#19
sjmp le444
le43:
jc le44
le444:
cjne a ,#22d,le53
nop
le54:
mov led2,#0fh
mov led3,#o_led
mov b,#22d
mov r1,#fo1
jmp led_flhc
le53:
jc le54
cjne a ,#26d,le63
le64:
mov b,#26d
mov led2,#0fh
mov led3,#5h
mov r1,#fs1
jmp led_flhc
le63:
jc le64
cjne a ,#30d,le73
le74:
mov b,#30d
mov led3,#black
mov led2,#l_led
mov r1,#l1
jmp led_flhc
le73:
jc le74
cjne a ,#34d,le83
le84:
mov b,#34d
mov r1,#h1
mov led3,#black
mov led2,#h_led
jmp led_flhc
le83:
jc le84
cjne a ,#38d,le93
le94:
mov b,#38d
mov r1,#c1
mov led3,#black
mov led2,#c_led
jmp led_flhc
le93:
jc le94
ret
led_menu1:
mov r0,#ch_no
mov a,led_power
dec a
add a,r0
mov r0,a ;count ram_addres for ch,bps
;************addres,dp,en,del_t
mov a,led_power
cjne a,#1,lee1
mov led1,#c_led
mov led2,#h_led
mov led3,#black
mov led4,@r0
inc led4 ;ch_no(0-1)
ret
lee1:
cjne a,#2,lee2
mov led1,#0bh
mov dptr,#bps1_asc
mov a,bps
cjne a,#06,lee1_11
mov led2,#1h
mov led3,#29h
mov led4,#2h
ret
lee1_11:
movc a,@a+dptr
call bcd_8
add a,#20h
mov led3,a
mov led4,b
mov led2,#black
ret
bps1_asc:
db 3d,6d,12d,24d,48d,96d
;********************************************************
lee2:
cjne a,#3,lee3
mov led1,#0dh
mov led2,#r_led
mov led3,#black
mov a,@r0 ;addres(0-64)
call bcd_8
mov led4,b
jz lee22
mov led3,a
lee22:
ret
lee3:
cjne a,#4,lee4
mov led1,#0dh
mov led2,#p_led
mov led3,#black
mov led4,#h_led
mov a,@r0 ;dp(0-1)l:slow h:high
jz lee3_end
mov led4,#l_led
lee3_end:
ret
lee4:
cjne a,#5,lee5
mov led1,#0dh;2001.10.16 change da out
mov led2,#0ah;
mov led3,#black
mov led4,@r0 ;en(0-1)
inc led4
ret
lee5:
cjne a,#6,lee6
mov dptr,#del_asc
mov led1,#tt_led
mov led2,#black
mov led3,#black
mov a,@r0 ;del_t(0-3)
movc a,@a+dptr
call bcd_8
mov led4,b
jz lee52
mov led3,a
lee52:
ret
del_asc:
db 1,10d,20d,30d
lee6:
ret
;************led "ch"
cout_dt:
;clr c
mov a,led_power
add a,#03
subb a,b
mov led_ch,a ;2001.10.18
cjne a,ch_no,conw1
conw21:
;clr c
sjmp conw2
conw1:
jc conw21
;************
;mov a,b
;add a,#04
setb sq_f
inc b
mov led_power,b
ret
;*************
conw2:
add a,r1
mov r1,a ;count dt
ret
conw3:
mov a,@r1
mov led4,a
mov led1,led_ch
inc led1
ret
;**********************************************
;;keY_jmp mov sec_bak,sec
proc led_flhc
led_flhc:
call cout_dt
jbc sq_f,led_fl12
call conw3
mov a,#black
mov led4,a
jmp flash_y1
led_fl12:
jmp blk_14
end
proc flash_y1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -