可视化编程串行控制中文字库液晶显示模块VLCM320240
取为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)的软串口发送命令即可。
下面给出与上述电路配套的显示控制子程序:
;位定义
BUSYBITP3;定义忙信号线
;数据字节定义
XVEQU30H;定义参数x
XHVEQU31H;定义参数xH
YVEQU32H;定义参数y
NUBEREQU33H;定义参数n
WIDTHEQU34H;定义参数w
HIGHTEQU35H;定义参数h
ASCXHEQU36H;定义参数x高四位
ASCXLEQU37H;定义参数x低四位
ASCXHHEQU38H;定义参数xH高四位
ASCXHLEQU39H;定义参数xH低四位
ASCYHEQU3AH;定义参数y高四位
ASCYLEQU3BH;定义参数y低四位
ASCNHEQU3CH;定义参数n高四位
ASCNLEQU3DH;定义参数n低四位
ASCWHEQU3EH;定义参数w高四位
ASCWLEQU3FH;定义参数w低四位
ASCHHEQU40H;定义参数h高四位
ASCHLEQU41H;定义参数h低四位
;初始化子程序
INITSIO:MOVSCON,#50H;串行口方式1
MOVTMOD,#21H
MOVTH1,#0FDH;波特率=19200?
MOVTL1?#0FDH
ORLPCON?#80H;SMOD=1
SETBTR1;启动T1
RET
;设置汉字或ASCII字符显示首地址命令
ORDERHZA:MOVA?XV
MOVR0?#REGASCXH
LCALLHASC;将参数x转换为
两个字节的ASCII码
MOVA?XHV
MOVR0?#REGASCXHH
LCALLHASC;将参数xH转换为
两个字节的ASCII码
MOVA?YV
MOVR0?#REGASCYH
LCALLHASC;将参数y转换为
两个字节的ASCII码
LCALLBUSYCK
MOVA?#“H”;发送命令码HZA
的ASCII码
LCALLSENDBYTE
MOVA?#“Z”
LCALLSENDBYTE
MOVA?#“A”
LCALLSENDBYTE
MOVR0?#REGASCXHH
LCALLSENDCS;发参数H的ASCII码
MOVR0?#REGASCXH
LCALLSENDCS;发参数x的ASCII码
MOVR0?#REGASCYH
LCALLSENDCS;发参数y的ASCII码
LJMPORDEREND
;显示汉字串子程序
ORDERHZ?LCALLBUSYCK;检测模块闲状态
MOVA?#“H”
LCALLSENDBYTE
MOVA?#“Z”
LCALLSENDBYTE
MOVA?#“D”
LCALLSENDBYTE
NEXTHZ:CLRA;取汉字的高八位内码
MOVCA,@A+DPTR
INCDPTR;调整内码指针
LCALLSENDBYTE
CLRA;取汉字的低八位内码
MOVCA,@A+DPTR
INCDPTR;调整内码指针
LCALLSENDBYTE
《可视化编程串行控制中文字库液晶显示模块VLCM320240(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/177714.html
●串行口模式应设为模式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)的软串口发送命令即可。
下面给出与上述电路配套的显示控制子程序:
;位定义
BUSYBITP3;定义忙信号线
;数据字节定义
XVEQU30H;定义参数x
XHVEQU31H;定义参数xH
YVEQU32H;定义参数y
NUBEREQU33H;定义参数n
WIDTHEQU34H;定义参数w
HIGHTEQU35H;定义参数h
ASCXHEQU36H;定义参数x高四位
ASCXLEQU37H;定义参数x低四位
ASCXHHEQU38H;定义参数xH高四位
ASCXHLEQU39H;定义参数xH低四位
ASCYHEQU3AH;定义参数y高四位
ASCYLEQU3BH;定义参数y低四位
ASCNHEQU3CH;定义参数n高四位
ASCNLEQU3DH;定义参数n低四位
ASCWHEQU3EH;定义参数w高四位
ASCWLEQU3FH;定义参数w低四位
ASCHHEQU40H;定义参数h高四位
ASCHLEQU41H;定义参数h低四位
;初始化子程序
INITSIO:MOVSCON,#50H;串行口方式1
MOVTMOD,#21H
MOVTH1,#0FDH;波特率=19200?
MOVTL1?#0FDH
ORLPCON?#80H;SMOD=1
SETBTR1;启动T1
RET
;设置汉字或ASCII字符显示首地址命令
ORDERHZA:MOVA?XV
MOVR0?#REGASCXH
LCALLHASC;将参数x转换为
两个字节的ASCII码
MOVA?XHV
MOVR0?#REGASCXHH
LCALLHASC;将参数xH转换为
两个字节的ASCII码
MOVA?YV
MOVR0?#REGASCYH
LCALLHASC;将参数y转换为
两个字节的ASCII码
LCALLBUSYCK
MOVA?#“H”;发送命令码HZA
的ASCII码
LCALLSENDBYTE
MOVA?#“Z”
LCALLSENDBYTE
MOVA?#“A”
LCALLSENDBYTE
MOVR0?#REGASCXHH
LCALLSENDCS;发参数H的ASCII码
MOVR0?#REGASCXH
LCALLSENDCS;发参数x的ASCII码
MOVR0?#REGASCYH
LCALLSENDCS;发参数y的ASCII码
LJMPORDEREND
;显示汉字串子程序
ORDERHZ?LCALLBUSYCK;检测模块闲状态
MOVA?#“H”
LCALLSENDBYTE
MOVA?#“Z”
LCALLSENDBYTE
MOVA?#“D”
LCALLSENDBYTE
NEXTHZ:CLRA;取汉字的高八位内码
MOVCA,@A+DPTR
INCDPTR;调整内码指针
LCALLSENDBYTE
CLRA;取汉字的低八位内码
MOVCA,@A+DPTR
INCDPTR;调整内码指针
LCALLSENDBYTE
《可视化编程串行控制中文字库液晶显示模块VLCM320240(第2页)》