📄 12864.asm
字号:
rl a
add a,#wave_buf+1
mov r0,a
mov a,@r0
cjne a,#0ffh,w_dba
sjmp w_dbend
w_dba: mov xstal,a
inc r0
mov a,@r0
cjne a,#0ffh,w_dbb
sjmp w_dbend
w_dbb: mov ystal,a
clr c
mov a,#03fh
subb a,ystal
mov ystal,a
inc r0
mov a,@r0
cjne a,#0ffh,w_dbc
sjmp w_dbend
w_dbc: mov xendl,a
inc r0
mov a,@r0
cjne a,#0ffh,w_dbd
sjmp w_dbend
w_dbd: mov yendl,a
mov a,#03fh
clr c
subb a,yendl
mov yendl,a
acall w_line
inc b
sjmp w_db
w_dbend: ret
w_wave_a: inc r0
mov a,@r0
mov count,a ;启始点暂存
anl b,#07fh ;x增量
inc r0
w_wave_b: mov a,@r0
cjne a,#0ffh,w_wave_c
sjmp w_waveend
w_wave_c: mov ystal,a
clr c
mov a,#03fh
subb a,ystal
mov ystal,a
mov xstal,count
inc r0
mov a,@r0
cjne a,#0ffh,w_wave_d
sjmp w_waveend
w_wave_d: mov yendl,a
mov a,#03fh
clr c
subb a,yendl
mov yendl,a
mov a,count
add a,b
mov count,a
mov xendl,a
acall w_line
sjmp w_wave_b
w_waveend: ret
;占用dptr,a,b,c,a_page,w_code,column,count,r0
;11字节堆栈
;字符串写入子程序(从数据存贮器来)
w_hz_c: mov a,@r0
mov a_page,a
inc r0
mov a,@r0
mov column,a
inc r0
mov b,r0
w_hz_cb: mov a,@r0
cjne a,#0feh,w_hz_cx
mov a,a_page
cpl acc.3
mov a_page,a
sjmp w_hz_cy
w_hz_cx: cjne a,#0fdh,w_hz_ce
mov a,a_page
cpl acc.3
cpl acc.7
mov a_page,a
w_hz_cy: inc b
mov r0,b
mov a,@r0
cjne a,#1,w_hz_cf
mov a,a_page
clr c
subb a,#1
mov a_page,a
sjmp w_hz_cg
w_hz_cf: cjne a,#2,w_hz_cg
mov a,a_page ;借用为暂存器
mov count,a
add a,#1
mov a_page,a
w_hz_cg: inc b
mov r0,b
mov a,@r0
w_hz_ce: cjne a,#0ffh,w_hz_ca
ret
w_hz_ca: mov w_code,a
mov a,a_page
jb acc.3,w_hz_cd
acall w_asii
inc b
mov r0,b
sjmp w_hz_cb
w_hz_cd: acall w_hz
inc b
mov r0,b
sjmp w_hz_cb
;占用dptr,a,b,c,a_page,w_code,column,count
;11字节堆栈
;字符串写入子程序(从程序存贮器来,固定的)
w_asii_c: mov dptr,#c_tab
mov b,#2
mul ab
add a,dpl
mov dpl,a
mov a,b
addc a,dph
mov dph,a
clr a
movc a,@a+dptr
mov b,a
mov a,#1
movc a,@a+dptr
mov dpl,a
mov dph,b
clr a
movc a,@a+dptr
inc dptr
anl a,#0f8h
orl a,a_page
mov a_page,a
clr a
movc a,@a+dptr
inc dptr
mov column,a
mov b,#0
mov a,b
w_asii_cb: movc a,@a+dptr
cjne a,#0feh,w_asii_cx
mov a,a_page
cpl acc.3
mov a_page,a
sjmp w_asii_cy
w_asii_cx: cjne a,#0fdh,w_asii_ce
mov a,a_page
cpl acc.3
cpl acc.7
mov a_page,a
w_asii_cy: inc b
mov a,b
movc a,@a+dptr
cjne a,#1,w_asii_cf
mov a,a_page
clr c
subb a,#1
mov a_page,a
sjmp w_asii_cg
w_asii_cf: cjne a,#2,w_asii_cg
mov a,a_page ;借用为暂存器
mov count,a
add a,#1
mov a_page,a
w_asii_cg: inc b
mov a,b
movc a,@a+dptr
w_asii_ce: cjne a,#0ffh,w_asii_ca
ret
w_asii_ca: mov w_code,a
mov a,a_page
jb acc.3,w_asii_cd
acall w_asii
inc b
mov a,b
sjmp w_asii_cb
w_asii_cd: acall w_hz
inc b
mov a,b
sjmp w_asii_cb
;占用a,b,count,a_page,w_code,c,column,dptr
;9字节堆栈
;字符写入子程序(没有问题)
w_ASII: push dph
push dpl
push b
mov a,a_page ;页地址
mov c,acc.7
mov acc.4,c
mov a_page,a
jb acc.7,w_asiia
mov dptr,#asii8_tab
mov b,#6
mov count,#6 ;计数器
sjmp w_asiib
w_asiia: mov dptr,#asii16_tab
mov b,#16
mov count,#8
w_asiib: mov a,w_code ;取字符代码
clr c
subb a,#32
mul ab
add a,dpl
mov dpl,a
mov a,b
addc a,dph
mov dph,a
mov w_code,#0
mov a,a_page
anl a,#07h
orl a,#0b8h
mov com,a
lcall lcd_we_zl
mov b,column
w_asiip: mov a,column
clr c
subb a,#040h
jc w_asiic
mov column,a
mov a,a_page
setb acc.6
mov a_page,a
w_asiic: mov a,a_page
mov c,acc.6
mov acc.5,c
mov a_page,a
mov com,column
orl com,#040h
mov a,a_page
anl a,#040h
jnz w_asiid
lcall lcd_we_zl
sjmp w_asiie
w_asiid: lcall lcd_we_zl
w_asiie: mov a,w_code
movc a,@a+dptr
mov dat,a
mov a,a_page
anl a,#040h
jnz w_asiif
lcall lcd_we_z
sjmp w_asiig
w_asiif: lcall lcd_we_y
w_asiig: inc w_code
inc column
mov a,column
cjne a,#40h,w_asiih
w_asiih: jc w_asiii
mov column,#0
mov a,a_page
anl a,#040h
jnz w_asiii
mov a,a_page
setb acc.6
mov a_page,a
mov com,column
orl com,#040h
lcall lcd_we_zl
w_asiii: djnz count,w_asiie
mov a,a_page
jnb acc.7,w_end
mov c,acc.5
mov acc.6,c
anl a,#07fh
mov a_page,a
mov count,#8
anl a,#07h
mov com,a
inc com
orl com,#0b8h
lcall lcd_we_zl
mov column,b
sjmp w_asiic
w_end: mov c,acc.4
mov acc.7,c
mov a_page,a
pop b
pop dpl
pop dph
ret
;占用a,b,c,column,a_page,W_code,count,dptr
;9字节堆栈
;汉字写入子程序
w_hz: push dph
push dpl
push b
mov a,a_page ;页地址
mov c,acc.7
mov acc.4,c
mov a_page,a
mov dptr,#hz_tab
mov b,#32
mov count,#16
mov a,w_code ;取汉字代码
mul ab
add a,dpl
mov dpl,a
mov a,b
addc a,dph
mov dph,a
mov w_code,#0
mov a,a_page
anl a,#07h
orl a,#0b8h
mov com,a
lcall lcd_we_zl
mov b,column
w_hzp: mov a,column
clr c
subb a,#040h
jc w_hzc
mov column,a
mov a,a_page
setb acc.6
mov a_page,a
w_hzc: mov a,a_page
mov c,acc.6
mov acc.5,c
mov a_page,a
mov com,column
orl com,#040h
mov a,a_page
anl a,#040h
jnz w_hzd
lcall lcd_we_zl
sjmp w_hze
w_hzd: lcall lcd_we_zl
w_hze: mov a,w_code
movc a,@a+dptr
mov dat,a
mov a,a_page
anl a,#040h
jnz w_hzf
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -