串行口通信问题
请问有没有高手用过北京金创业科技开发中心的KY系列智能液晶显示终端呢?
如果有用过,请问高手这里的波特率怎么设置呀!
这里有一个问题,请高手提示一下:
用WAVE编译程序后,向终端发送,(如:我发送ABC这个三个字母)
第一次只清屏,不显示ABC 第二次就显示
我用单步执行程序就可以运行结果。
程序如下:
ZD_DATA EQU P3.1 ;向液晶终端输出串行数据,本例中波特率为9600Hz
ZD_BUSY EQU P3.0 ;接收液晶终端发来的"忙"(BUSY)信号,可以连接于任意一位输入引脚上.
BTL9600 EQU 250 ;=FaH;18.432MHz: 9600Hz(SMOD=1)
ORG 0000H
MAIN0: LJMP MAIN1
ORG 0100H
MAIN1: MOV SP,#60h
LCALL CSH
;--------------------
MOV A, #1BH
LCALL FSA
MOV A, #51H
LCALL FSA
mov a, #00h
lcall fsa
;----------清屏幕,背景颜色为黑色.
mov a, #1bh
lcall fsa
mov a, #31h
lcall fsa
;----------送字符集1
mov a, #41h
lcall fsa
mov a, #42h
lcall fsa
mov a, #43h
lcall fsa
;-----------送A, B, C
sjmp $
;===== 串口初始化 =========================================================
CSH: MOV TH1,#BTL9600 ;9600Hz
CKSZ2: MOV PCON,#80H ;SMOD=1
MOV TMOD,#20H ;定时器1为方式2:可再装入8位计数器
MOV TCON,#40H ;定时器1开始运行(TR1=1)
MOV SCON,#0D0H ;串口通道工作方式3,发送11位
RET
;====== 输出A中的数据 ============================================
;说明:输出A中的数据。
FSA:
JB ZD_BUSY,FSA ;如果终端"忙",则等待
MOV SBUF,A ;发送一字节
FS2: JNB TI,FS2 ;等待本字节发送完毕
CLR TI
RET