📄 12864.asm
字号:
lcall lcd_we_z
sjmp w_hzg
w_hzf: lcall lcd_we_y
w_hzg: inc w_code
inc column
mov a,column
cjne a,#40h,w_hzh
w_hzh: jc w_hzi
mov column,#0
mov a,a_page
anl a,#040h
jnz w_hzi
mov a,a_page
setb acc.6
mov a_page,a
mov com,column
orl com,#040h
lcall lcd_we_zl
w_hzi: djnz count,w_hze
mov a,a_page
jnb acc.7,w_hend
mov c,acc.5
mov acc.6,c
anl a,#07fh
mov a_page,a
mov count,#16
anl a,#07h
mov com,a
inc com
orl com,#0b8h
lcall lcd_we_zl
mov column,b
sjmp w_hzc
w_hend: mov c,acc.4
mov acc.7,c
mov a_page,a
pop b
pop dpl
pop dph
ret
;画圆子程序
w_cir: clr a
clr radf.1 ;清除绘图标志
mov arcx1,a
mov arcy2,a
mov a,rad
mov arcy1,a
mov arcx2,a
cir1: acall amp
acall squ
mov a,arcx1
cjne a,arcx2,cir3
cir2: acall amp
ret
cir3: xch a,arcx2
mov arcx1,a
mov a,arcy1
xch a,arcy2
mov arcy1,a
cpl radf.1
acall amp
mov a,arcx1
xch a,arcy1
mov arcx1,a
acall squ
mov a,arcx1
xch a,arcy1
mov arcx1,a
cpl radf.1
cjne a,arcx2,cir4
ajmp cir2
cir4: xch a,arcx2
mov arcx1,a
mov a,arcy1
xch a,arcy2
mov arcy1,a
ajmp cir1
squ: mov a,arcx1
inc a
mov b,a
mul ab
mov errl,a
mov errh,b
mov a,arcy1
mov b,a
mul ab
add a,errl
mov errl,a
mov a,b
addc a,errh
mov errh,a
mov a,rad
mov b,a
mul ab
clr c
xch a,errl
subb a,errl
mov errl,a
mov a,b
xch a,errh
subb a,errh
mov errh,a
jc squ1
mov a,errl
subb a,arcy1
mov errl,a
mov a,errh
subb a,#0
mov errh,a
jc squ1
dec arcy1
squ1: inc arcx1
ret
amp: mov a,cirxl
add a,arcx1
mov xstal,a
mov a,ciryl
add a,arcy1
mov ystal,a
jb radf.1,amp1
jb radw.0,amp2
ajmp amp3
amp1: jb radw.1,amp2
ajmp amp3
amp2: mov column,xstal
mov line,ystal
orl line,#080h
acall w_dot
amp3: mov a,cirxl
clr c
subb a,arcx1
mov xstal,a
jb radf.1,amp4
jb radw.2,amp5
ajmp amp6
amp4: jb radw.3,amp5
ajmp amp6
amp5: mov column,xstal
mov line,ystal
orl line,#080h
acall w_dot
amp6: mov a,ciryl
clr c
subb a,arcy1
mov ystal,a
jb radf.1,amp7
jb radw.4,amp8
ajmp amp9
amp7: jb radw.5,amp8
ajmp amp9
amp8: mov column,xstal
mov line,ystal
orl line,#080h
acall w_dot
amp9: mov a,cirxl
add a,arcx1
mov xstal,a
jb radf.1,ampa
jb radw.6,ampb
ajmp ampc
ampa: jb radw.7,ampb
sjmp ampc
ampb: mov column,xstal
mov line,ystal
orl line,#080h
acall w_dot
ampc: ret
;占用xstal,ystal,xendl,yendl,errl,d_xl,d_yl,column,line,a,c,com,dat
;占用11字节堆栈
;画直线子程序
W_Line: mov errl,#0
mov a,yendl
clr c
subb a,ystal
mov d_yl,a
jnc w_line1
w_line0: mov a,yendl
xch a,ystal
mov yendl,a
mov a,xendl
xch a,xstal
mov xendl,a
sjmp W_line
W_line1: mov Column,xstal
mov line,ystal
orl line,#080h
acall w_dot ;调用绘点子程序
mov a,xendl
clr c
subb a,xstal
mov d_xl,a
jc W_line3
mov a,d_yl
cjne a,d_xl,W_line2
ajmp rate1
W_line2: jnc W_line21
ajmp rate1
W_line21: ajmp rate2
W_line3: mov a,xstal
clr c
subb a,xendl
mov d_xl,a
cjne a,d_yl,W_line4
W_line4: jc W_line5
ajmp rate3
W_line5: ajmp rate4
rate1: mov a,ystal
cjne a,yendl,rate10
sjmp rate11
rate10: mov a,errl ;增加的
jb acc.7,rate12
mov a,ystal
add a,#1
mov ystal,a
rate11: mov a,xstal
add a,#1
mov xstal,a
mov a,errl
add a,d_yl
mov errl,a
clr c
mov a,errl
subb a,d_xl
mov errl,a
sjmp rate13
rate12: mov a,xstal
add a,#1
mov xstal,a
mov a,errl
add a,d_yl
mov errl,a
rate13: mov Column,xstal
mov line,ystal
orl line,#080h
acall W_dot ;调用绘点子程序
mov a,xstal
cjne a,xendl,rate10
ret
rate2: mov a,errl ; 增加的
jb acc.7,rate21
mov a,ystal
add a,#1
mov ystal,a
clr c
mov a,errl
subb a,d_xl
mov errl,a
sjmp rate22
rate21: mov a,ystal
add a,#1
mov ystal,a
mov a,xstal
add a,#1
mov xstal,a
mov a,errl
add a,d_yl
mov errl,a
clr c
mov a,errl
subb a,d_xl
mov errl,a
rate22: mov Column,xstal
mov line,ystal
orl line,#080h
acall w_dot ;调用绘点子程序
mov a,ystal
cjne a,yendl,rate2
ret
rate3: mov a,ystal
cjne a,yendl,rate30
sjmp rate31
rate30: mov a,errl ;增加的
jb acc.7,rate32
mov a,ystal
add a,#1
mov ystal,a
rate31: mov a,xstal
clr c
subb a,#1
mov xstal,a
mov a,errl
add a,d_yl
mov errl,a
clr c
mov a,errl
subb a,d_xl
mov errl,a
sjmp rate33
rate32: mov a,xstal
clr c
subb a,#1
mov xstal,a
mov a,errl
add a,d_yl
mov errl,a
rate33: mov Column,xstal
mov line,ystal
orl line,#080h
acall W_dot ;调用绘点子程序
mov a,xstal
cjne a,xendl,rate30
ret
rate4: mov a,errl ;增加的
jb acc.7,rate41
mov a,ystal
add a,#1
mov ystal,a
clr c
mov a,errl
subb a,d_xl
mov errl,a
ajmp rate42
rate41: clr c
mov a,xstal
subb a,#1
mov xstal,a
mov a,ystal
add a,#1
mov ystal,a
mov a,errl
add a,d_yl
mov errl,a
clr c
mov a,errl
subb a,d_xl
mov errl,a
rate42: mov Column,xstal
mov line,ystal
orl line,#080h
acall W_dot ;调用绘点子程序
mov a,ystal
cjne a,yendl,rate4
ret
;画点子程序
W_dot: push b
mov a,line ;读行地址
anl a,#07fh ;屏蔽点标志
mov b,#08h ;计算页地址
div ab
orl a,#0b8h
mov com,a
lcall lcd_we_zl
inc b
setb c
clr a ;设置点位置
W_dot1: rlc a
djnz b,W_dot1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -