📄 ningh320.asm
字号:
mov a,ystah
cjne a,yendh,rate2
ret
;************************************k=-1--0即d_x>=d_y时
rate3: mov a,ystal
cjne a,yendl,rate30
mov a,ystah
cjne a,yendh,rate30
sjmp rate31
rate30: mov a,errh
jb acc.7,rate32
mov a,ystal
add a,#1
mov ystal,a
mov a,ystah
addc a,#0
mov ystah,a
rate31: mov a,xstal
subb a,#1
mov xstal,a
mov a,xstah
subb a,#0
mov xstah,a
mov a,errl
add a,d_yl
mov errl,a
mov a,errh
addc a,d_yh
mov errh,a
clr c
mov a,errl
subb a,d_xl
mov errl,a
mov a,errh
subb a,d_xh
mov errh,a
sjmp rate33
rate32: mov a,xstal
clr c
subb a,#1
mov xstal,a
mov a,xstah
subb a,#0
mov xstah,a
mov a,errl
add a,d_yl
mov errl,a
mov a,errh
addc a,d_yh
mov errh,a
rate33: call dotw
mov a,xstal
cjne a,xendl,rate30
mov a,xstah
cjne a,xendh,rate30
ret
;*************************************k<-1即d_x>d_y
rate4: mov a,errh
jb acc.7,rate41
mov a,ystal
add a,#1
mov ystal,a
mov a,ystah
addc a,#0
mov ystah,a
clr c
mov a,errl
subb a,d_xl
mov errl,a
mov a,errh
subb a,d_xh
mov errh,a
sjmp rate42
rate41: clr c
mov a,xstal
subb a,#1
mov xstal,a
mov a,xstah
subb a,#0
mov xstah,a
mov a,ystal
add a,#1
mov ystal,a
mov a,ystah
addc a,#0
mov ystah,a
mov a,errl
add a,d_yl
mov errl,a
mov a,errh
addc a,d_yh
mov errh,a
clr c
mov a,errl
subb a,d_xl
mov errl,a
mov a,errh
subb a,d_xh
mov errh,a
rate42: call dotw
mov a,ystal
cjne a,yendl,rate4
mov a,ystah
cjne a,yendh,rate4
ret
circle: mov a,#234
subb a,ciryl
mov ciryl,a
clr a
clr flag_cir
mov arcx1,a
mov arcy2,a
mov a,rad
mov arcy1,a
mov arcx2,a
cir1: call amp
call squ
mov a,arcx1
cjne a,arcx2,cir3
cir2: call amp
ret
cir3: xch a,arcx2
mov arcx1,a
mov a,arcy1
xch a,arcy2
mov arcy1,a
cpl flag_cir
call amp
mov a,arcx1
xch a,arcy1
mov arcx1,a
call squ
mov a,arcx1
xch a,arcy1
mov arcx1,a
cpl flag_cir
cjne a,arcx2,cir4
sjmp cir2
cir4: xch a,arcx2
mov arcx1,a
mov a,arcy1
xch a,arcy2
mov arcy1,a
sjmp cir1
;***********************************方差计算程序
;***********************************@=(a+1)^2+b^2-r^2-b a=arcx1 b=arcy1
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
;******************************圆弧扩展子程序
;***************输入:坐标值x=arcx1,y=arcy1,圆心坐标值(cirx,ciry)
;***************x为x1和x2之一,y为y1和y2之一
amp: mov a,cirxl
add a,arcx1
mov xstal,a
mov a,cirxh
addc a,#0
mov xstah,a
mov a,ciryl
add a,arcy1
mov ystal,a
mov a,ciryh
addc a,#0
mov ystah,a
jb flag_cir,amp1
jb radw_6,amp2
sjmp amp3
amp1: jb radw_7,amp2
sjmp amp3
amp2: call dotw
amp3: mov a,cirxl
clr c
subb a,arcx1
mov xstal,a
mov a,cirxh
subb a,#0
mov xstah,a
jb flag_cir,amp4
jb radw_5,amp5
sjmp amp6
amp4: jb radw_4,amp5
sjmp amp6
amp5: call dotw
amp6: mov a,ciryl
clr c
subb a,arcy1
mov ystal,a
mov a,ciryh
subb a,#0
mov ystah,a
jb flag_cir,amp7
jb radw_2,amp8
sjmp amp9
amp7: jb radw_3,amp8
sjmp amp9
amp8: call dotw
amp9: mov a,cirxl
add a,arcx1
mov xstal,a
mov a,cirxh
addc a,#0
mov xstah,a
jb flag_cir,ampa
jb radw_1,ampb
sjmp ampc
ampa: jb radw_0,ampb
sjmp ampc
ampb: call dotw
ampc: ret
;*********************************************************************************
dotw: mov dptr,#addr_wrow
mov a,ystal
movx @dptr,a
mov dptr,#addr_wcol
mov a,xstah
movx @dptr,a
mov a,xstal
movx @dptr,a
;入口y坐标地址r4=ystal,颜色r3=color的bit2--bit0
;显示RAM高字节地址
mov dptr,#addr_wda
mov a,color
movx @dptr,a
ret
;********************************************************************
photo1: mov color,#blue ;清成蓝屏
call clr_lcd
mov r5,#10
photo100: call delay_100ms ;延时1秒钟
djnz r5,photo100
mov color,#yellow
mov xstah,#0 ;画黄框
mov xstal,#5
mov ystah,#0
mov ystal,#228
mov xendh,#1
mov xendl,#0dah
mov yendh,#0
mov yendl,#228
call line
mov xstah,#1
mov xstal,#0dah
mov ystah,#0
mov ystal,#228
mov xendh,#1
mov xendl,#0dah
mov yendh,#0
mov yendl,#5
call line
mov xstah,#0
mov xstal,#5
mov ystah,#0
mov ystal,#5
mov xendh,#1
mov xendl,#0dah
mov yendh,#0
mov yendl,#5
call line
mov xstah,#0
mov xstal,#5
mov ystah,#0
mov ystal,#5
mov xendh,#0
mov xendl,#5
mov yendh,#0
mov yendl,#228
call line
mov r5,#7
photo101: call delay_100ms ;延时0.7秒钟
djnz r5,photo101
mov xstah,#0 ;画黄框
mov xstal,#6
mov ystah,#0
mov ystal,#227
mov xendh,#1
mov xendl,#0d9h
mov yendh,#0
mov yendl,#227
call line
mov xstah,#1
mov xstal,#0d9h
mov ystah,#0
mov ystal,#227
mov xendh,#1
mov xendl,#0d9h
mov yendh,#0
mov yendl,#6
call line
mov xstah,#0
mov xstal,#6
mov ystah,#0
mov ystal,#6
mov xendh,#1
mov xendl,#0d9h
mov yendh,#0
mov yendl,#6
call line
mov xstah,#0
mov xstal,#6
mov ystah,#0
mov ystal,#6
mov xendh,#0
mov xendl,#6
mov yendh,#0
mov yendl,#227
call line
mov r5,#7
photo102: call delay_100ms ;延时0.7秒钟
djnz r5,photo102
mov xstah,#0 ;画黄框
mov xstal,#7
mov ystah,#0
mov ystal,#226
mov xendh,#1
mov xendl,#0d8h
mov yendh,#0
mov yendl,#226
call line
mov xstah,#1
mov xstal,#0d8h
mov ystah,#0
mov ystal,#226
mov xendh,#1
mov xendl,#0d8h
mov yendh,#0
mov yendl,#7
call line
mov xstah,#0
mov xstal,#7
mov ystah,#0
mov ystal,#7
mov xendh,#1
mov xendl,#0d8h
mov yendh,#0
mov yendl,#7
call line
mov xstah,#0
mov xstal,#7
mov ystah,#0
mov ystal,#7
mov xendh,#0
mov xendl,#7
mov yendh,#0
mov yendl,#226
call line
mov r5,#7
photo103: call delay_100ms ;延时0.7秒钟
djnz r5,photo103
mov xstah,#0 ;画黄框
mov xstal,#8
mov ystah,#0
mov ystal,#225
mov xendh,#1
mov xendl,#0d7h
mov yendh,#0
mov yendl,#225
call line
mov xstah,#1
mov xstal,#0d7h
mov ystah,#0
mov ystal,#225
mov xendh,#1
mov xendl,#0d7h
mov yendh,#0
mov yendl,#8
call line
mov xstah,#0
mov xstal,#8
mov ystah,#0
mov ystal,#8
mov xendh,#1
mov xendl,#0d7h
mov yendh,#0
mov yendl,#8
call line
mov xstah,#0
mov xstal,#8
mov ystah,#0
mov ystal,#8
mov xendh,#0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -