单片机型号89C51,晶振频率11.0592,液晶是1602,接口是九针232接口。
做串口实验,用串口助手比如发送1234567890123456789,应1602字符液晶一行最多可以显示16个字符,后面的789不能自动显示的第二行,造成789不能显示,请各位高手帮帮忙,让1602液晶第一行显示够16个字符后自动转到第二行继续显示。。。。。谢谢 !!!!!!!!
RS EQU P3.7
RW EQU P3.6
E EQU P3.4
ORG 0000H
;上电后程序从这里运行
AJMP MAIN
ORG 0023H
AJMP URAT
ORG 0100H
MAIN:
MOV TMOD, #20H
MOV SCON,#50H
MOV TL1, #0FDH ;波特率9600
MOV TH1,#0FDH
SETB TR1
SETB ES
SETB EA
;串口初始化
MOV P2,#01H ;清除屏幕
ACALL ENABLE
MOV P2,#38H ;8位点阵
ACALL ENABLE
MOV P2,#0FH ;开显示
ACALL ENABLE
MOV P2,#80H ;显示位置,第一行第一个位置
ACALL ENABLE
SJMP $
;待机
ENABLE: ;送命令
CLR RS
CLR RW
CLR E
ACALL DELAY
SETB E
RET
write2: ;送单个字符
mov p2,a
setb rs
clr rw
clr e
nop
nop
setb e
ret
delay: ;延时子程序
mov r7,#30
d1:mov r6,#255
d2:djnz r6,d2
djnz r7,d1
ret
URAT: ;串口中断程序
CLR EA
MOV A SBUF
ACALL write2
SETB EA
RETI
end
|