主题:大家帮忙看看下面的程序!
我的目的是想让它显示出来“中国”两个字:我编译过之后把它烧录在芯片上,但是就是不显示字,大家帮忙看看吧,急!
ORG 0000H
On_dis:mov p1,#00h
setb p1.0
setb p1.1;选择左半屏
nop; 注:重复5次
;
mov a,#3fh
mov r0,#10h
acall rdbusy
movx @r0,a;开显示
;
mov a,#0c0h
mov r0,#10h
acall rdbusy
movx @r0,a;起始扫描行为第0行
;
acall wat_rst;等待复位完成
;
mov a,#0b8h
mov r0,#10h
acall rdbusy
movx @r0,a;页地址X=0
;
mov a,#40h
mov r0,#10h
acall rdbusy
movx @r0,a;列地址Y=0
;
mov dptr,#china
acall sed_dt
mov dptr,#china+32
acall sed_dt
;
mov a,#0b9h
mov r0,#10h
acall rdbusy
movx @r0,a;起页地址X=1
;
mov a,#40h
mov r0,#10h
acall rdbusy
movx @r0,a;列地址Y=0
;
mov dptr,#china+16
acall sed_dt
sjmp $
;
sed_dt: mov r1,#16
sed: clr a
movc a,@a+dptr
mov r0,#12h
acall rdbusy
movx @r0,a
inc dptr
djnz r1,sed
ret
;
rdbusy: push acc
push 00h
mov r0,#11h
rdbs1: movx a,@r0
rlc a
jc rdbs1
pop 00h
pop acc
ret
;
wat_rst: push acc
mov r0,#11h
wat: movx a,@r0
rlc a;注:执行4次
jc wat
pop acc
ret
;汉字点阵:中国
CHINA:db 00h,0f8h,08h,08h,08h,08h,0ffh,08h,08h,08h,08h,08h,0fch,08h,00h
db 00h,03h,01h,01h,01h,01h,01h,0ffh,01h,01h,01h,01h,01h,03h,00h,00h
;
end
ORG 0000H
On_dis:mov p1,#00h
setb p1.0
setb p1.1;选择左半屏
nop; 注:重复5次
;
mov a,#3fh
mov r0,#10h
acall rdbusy
movx @r0,a;开显示
;
mov a,#0c0h
mov r0,#10h
acall rdbusy
movx @r0,a;起始扫描行为第0行
;
acall wat_rst;等待复位完成
;
mov a,#0b8h
mov r0,#10h
acall rdbusy
movx @r0,a;页地址X=0
;
mov a,#40h
mov r0,#10h
acall rdbusy
movx @r0,a;列地址Y=0
;
mov dptr,#china
acall sed_dt
mov dptr,#china+32
acall sed_dt
;
mov a,#0b9h
mov r0,#10h
acall rdbusy
movx @r0,a;起页地址X=1
;
mov a,#40h
mov r0,#10h
acall rdbusy
movx @r0,a;列地址Y=0
;
mov dptr,#china+16
acall sed_dt
sjmp $
;
sed_dt: mov r1,#16
sed: clr a
movc a,@a+dptr
mov r0,#12h
acall rdbusy
movx @r0,a
inc dptr
djnz r1,sed
ret
;
rdbusy: push acc
push 00h
mov r0,#11h
rdbs1: movx a,@r0
rlc a
jc rdbs1
pop 00h
pop acc
ret
;
wat_rst: push acc
mov r0,#11h
wat: movx a,@r0
rlc a;注:执行4次
jc wat
pop acc
ret
;汉字点阵:中国
CHINA:db 00h,0f8h,08h,08h,08h,08h,0ffh,08h,08h,08h,08h,08h,0fch,08h,00h
db 00h,03h,01h,01h,01h,01h,01h,0ffh,01h,01h,01h,01h,01h,03h,00h,00h
;
end