用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

可视化编程串行控制中文字库液晶显示模块VLCM320240

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 22:15:36
320240RS232通信口的BUSY端相连,而将单片机TXD端与模块RX端相连,为保证波特率的准确性,应将AT89C52的晶振选取为11.0592MHz。此外,在编制相应的显示控制软件时,还应注意以下几点:

●串行口模式应设为模式1(1个起始位,8个数据位,1个停止位);

●波特率设应当为19200(TH1=TL1=0FDH,SMOD=1);

●在发送命令之前应检测模块为闲态(BUSY=1)否则所发的命令可能失效;

●串口发送的必须是完整命令的ASCII码(汉字为其机内码,ASCII字符为其ASCII码),如命令“BMP0B000C0D”,实际由串口发送的内容是“424D503042303030433044”,顺序为:

“B→M→P→0→B→0→0→0→C→0→D”;

●在每条命令的首末还要加上命令结束码“回车键"的ASCII码“0DH”,以表明该命令的结束。

●若单片机AT89C52的串口已被占为它用,那么用一根口线来摸拟生成一个通讯协议为(19200,N,8,1)的软串口发送命令即可。

下面给出与上述电路配套的显示控制子程序:

; 位定义

BUSY BIT P3 ; 定义忙信号线

; 数据字节定义

X V EQU 30H; 定义参数x

XH V EQU 31H; 定义参数xH

Y V EQU 32H; 定义参数y

NUBER EQU 33H; 定义参数n

WIDTH EQU 34H; 定义参数w

HIGHT EQU 35H; 定义参数h

ASC XH EQU 36H; 定义参数x高四位

ASC XL EQU 37H; 定义参数x低四位

ASC XHH EQU 38H; 定义参数xH高四位

ASC XHL EQU 39H; 定义参数xH低四位

ASC YH EQU 3AH; 定义参数y高四位

ASC YL EQU 3BH; 定义参数y低四位

ASC NH EQU 3CH; 定义参数n高四位

ASC NL EQU 3DH; 定义参数n低四位

ASC WH EQU 3EH; 定义参数w高四位

ASC WL EQU 3FH; 定义参数w低四位

ASC HH EQU 40H; 定义参数h高四位

ASC HL EQU 41H; 定义参数h低四位

;初始化子程序

INIT SIO:MOV SCON,#50H;串行口方式1

MOV TMOD,#21H

MOV TH1,#0FDH;波特率=19200

MOV TL1#0FDH

ORL PCON#80H;SMOD=1

SETB TR1 ; 启动T1

RET

;设置汉字或ASCII字符显示首地址命令

ORDER HZA:MOV A X V

MOV R0 #REG ASC XH

LCALL H ASC ;将参数x转换为

两个字节的ASCII码

MOV AXH V

MOV R0 #REG ASC XHH

LCALL H ASC ; 将参数xH转换为

两个字节的ASCII码

MOV AY V

MOV R0 #REG ASC YH

LCALL H ASC ;将参数y转换为

两个字节的ASCII码

LCALL BUSY CK

MOV A #“H” ;发送命令码HZA

的ASCII码

LCALL SEND BYTE

MOV A#“Z”

LCALL SEND BYTE

MOV A #“A”

LCALL SEND BYTE

MOV R0 #REG ASC XHH

LCALL SEND CS;发参数H的ASCII码

MOV R0 #REG ASC XH

LCALL SEND CS;发参数x的ASCII码

MOV R0 #REG ASC YH

LCALL SEND CS;发参数y的ASCII码

LJMP ORDER END

;显示汉字串子程序

ORDER HZ LCALL BUSY CK;检测模块闲状态

MOV A #“H”

LCALL SEND BYTE

MOV A#“Z”

LCALL SEND BYTE

MOV A #“D”

LCALL SEND BYTE

NEXT HZ: CLR A; 取汉字的高八位内码

MOVC A,@A+DPTR

INC DPTR;调整内码指针

LCALL SEND BYTE

CLR A; 取汉字的低八位内码

MOVC A,@A+DPTR

INC DPTR;调整内码指针

LCALL SEND BYTE

DJNZ R7,NEXT HZ

MOV A,#0DH;命令结束

LCALL SEND BYTE

RET

;显示ASCII字符串子程序

ORDER ASCII:

LCALL BUSY CK

MOV A,#“H”;

LCALL SEND BYTE

MOV A,#“Z”

LCALL SEND BYTE

MOV A#“D”

LCALL SEND BYTE

NEXT ASCII CLR A 取ASCII码

MOVC A@A+DPTR

INC DPTR

LCALL SEND BYTE

DJNZ R7NEXT ASCII

MOV A#0DH

LCALL SEND BYTE

RET

;清屏子程序

ORDER CLR:LCALL BUSY CK

MOV A,#“C”

LCALL SEND BYTE

MOV A#“L”

LCALL SEND BYTE

MOV A #“R”

LCALL S

上一页  [1] [2] [3]  下一页

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:36,781.25000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号