郁闷,他怎么就是不出a呢?救火呀...一天一夜了,还出不来
程序试网上找的,改动了一下,现在@@bbddffhhjjlln...
rs equ p3.7
rw equ p3.6
e equ p3.5
org 0000h
ajmp display
org 0030h
display:
;command
;**************************************
;1 clear display
; db7 db6 db5 db4 db3 db2 db1 db0
; 0 0 0 0 0 0 0 1
;**************************************
;2 home
; db7 db6 db5 db4 db3 db2 db1 db0
; 0 0 0 0 0 0 1 *
;bd0=0 to home
;**************************************
;3 data in mode
; db7 db6 db5 db4 db3 db2 db1 db0
; 0 0 0 0 0 1 i/d s
;i/d=0 ac auto dev 1 after write
;s=1 display move after write
;**************************************
;4 display sw
; db7 db6 db5 db4 db3 db2 db1 db0
; 0 0 0 0 1 d c b
;display sw d=1 on d=0 off
;light mark c=1 on c=0 off
;flashlight b=1 on b=0 off
;**************************************
;5 light mark move
; db7 db6 db5 db4 db3 db2 db1 db0
; 0 0 0 1 s/c r/l * *
;运行时间(250khz):40us;
; s/c=1:画面平移一个字符?;
;s/c=0:光标平移一个字符位;
;r/l=1:右移;r/l=0:左移
;**************************************
;6 function
;db7 db6 db5 db4 db3 db2 db1 db0
; 0 0 1 dl n f * *
;run time(250khz):40us;
;功能:工作方式设置(初始化指令)。
;其中:dl=1,8位数据接口;dl=0,四位数据接口;
;n=1 16x2;n=0 16x1
;f=1 5*10 f=0 5*7
;**************************************
;7 cgram地址设置
; db7 db6 db5 db4 db3 db2 db1 db0
; 0 1 a5 a4 a3 a2 a1 a0
;运行时间(250khz):40us;
; 功能:设置cgram地址。a5~a0=0~3fh。
; *************************************
;8 ddram地址设置
; db7 db6 db5 db4 db3 db2 db1 db0
; 1 a6 a5 a4 a3 a2 a1 a0
;运行时间(250khz):40us;
;功能:设置ddram地址。
; n=0,一行显示a6~a0=0~4fh;
; n=1,两行显示,首行a6~a0=00h~2fh,
; 次行a6~a0=40h~67h。
; **************************************
;9 read bf and ac
; db7 db6 db5 db4 db3 db2 db1 db0
; bf ac6 ac5 ac4 ac3 ac2 ac1 ac0
;读忙bf值和地址计数器ac值。
;其中:bf=1:忙;bf=0:准备好。
;此时,ac值意义为最近一次地址设置(cgram或ddram)
;rs=0
;****************************************
;10 write data
; db7 db6 db5 db4 db3 db2 db1 db0
; * * * * * * * *
;运行时间(250khz):40us;
;功能:根据最近设置的地址性质,数据写入ddram或cgram内。
;rs=1
;****************************************
;11 read data
;rs r/w db7 db6 db5 db4 db3 db2 db1 db0
;1 1
;****************************************
mov 30h,#01h
mov 33h,#0fh;
mov 32h,#06h;
mov 35h,#38h;功能设置
mov 40h,#80h ;起始地址
mov 50h,#041h ;第一个字符
mov p1,30h ;送指令
acall enable1;
mov p1,33h ;
acall enable1 ;
mov p1,34h ;
acall enable1 ;
mov p1,35h ;
acall enable1 ;
mov p1,40h
acall enable1
enable: ;送数
mov a,50h
mov r0,#0fh
s_disp:
setb rs
clr rw
clr e
mov p1,a
acall delay
setb e
nop
inc a
djnz r0,s_disp
mov p1,#0c0h
acall enable1
mov r0,#0fh
mov a,#20h
loop:
setb rs
clr rw
clr e
mov p1,a
acall delay
setb e
nop
inc a
djnz r0,loop
ajmp $
enable1: ;送指令
clr rs
clr rw
clr e
acall delay
setb e
ret
delay: ;忙闲检查
mov p1,#0ffh
clr rs
setb rw
clr e
nop
nop
setb e
jb p1.7,delay
ret
end