📄 ——串行接口中文图形点阵液晶显示模块的应用.htm
字号:
style="TEXT-INDENT: 30px">OCM4X8C具有串/并多种接口方式,方便了模块与各种单片机、微处理器的连接。</P>
<P style="TEXT-INDENT: 30px">(1)4/8位并行接口方式</P>
<P
style="TEXT-INDENT: 30px">当模块的PSB脚接高电平时,模块即进入并行接口模式。在并行模式下可由功能设定指令的“DL”位来选择8位或4接口方式,主控制系统将配合“RS”、“RW”、“E”DB0~DB7来完成指令/数据的传送,其操作时序与其它并行接口液晶显示模块相同。</P>
<P style="TEXT-INDENT: 30px">(2)2/3线串行接口方式</P>
<P
style="TEXT-INDENT: 30px">当模块的PSB脚接低电平时,模块即进入串行接口模式。串行模式使用串行数据线SID与串行时钟线SCLK来传送数据,即构成2线串行模式。</P>
<P
style="TEXT-INDENT: 30px">OCM4X8C还允许同时接入多个液晶显示模块以完成多路信息显示功能。此时,要利用片选端“CS”构成3线串行接口方式,当“CS”接高电位时,模块可正常接收并显示数据,否则模块显示将被禁止。通常情况下,当系统仅使用一个液晶显示模块时,“CS”可连接固定的高电平。</P>
<P style="TEXT-INDENT: 30px">模块2线串行工作操作时序如图2所示。</P>
<P
style="TEXT-INDENT: 30px">由图2可以看出,单片机与液晶模块之间传送1字节的数据共需24个时钟脉冲。首先,单片机要给出数据传输起始位,这里是以5个连续的“1”作数据起始位,如模块接收到连续的5个“1”,则内部传输被重置并且串行传输将被同步。紧接着,“RW”位用于选择数据的传输方向(读或写),“RS”位用于选择内部数据寄存器或指令寄存器,最后的第8位固定为“0”。在接收到起始位及“RW”和“RW”的第1个字节后,下一个字节的数据或指令将被分为2个字节来串行传送或接收。数据或指令的高4位,被放在第2个字节串行数据的高4位,其低4位则置为“0”;数据或指令的低4位被放在第3个字节的高4位,其低4位也置为“0”,如此完成一个字节指令或数据的传送。需要注意的是,当有多个数据或指令要传送时,必须要等到一个指令完成执行完毕后再传送下一个指令或数据,否则,会造成指令或数据的丢失。这是因为液晶模块内部没有发送/接收缓冲区。<B><BR><BR><A
href="http://www.21ic.com/info/images/dpj/200308/14c.gif">图3
AT89C2051与OCM4X8C的2线串行接口电路</A><BR><BR>6 OCM4X8C应用实例</B></P>
<P
style="TEXT-INDENT: 30px">使用OCM4X8C的2线串行接口方式可大大简化液晶显示模块与单片机之间的接口设计;同时,也使液晶显示模块显示汉字变得极为容易,从而改变过去单片机系统人机界面不够友好的弊端。AT89C2051单片机与OCM4X8C的接口电路如图3所示。下面给出相应显示程序。</P>
<P style="TEXT-INDENT: 30px">;位定义</P>
<P style="TEXT-INDENT: 30px">SID BIT P1.0 ;串行数据线</P>
<P style="TEXT-INDENT: 30px">SCLK BIT P1.1 ;串行时钟线</P>
<P style="TEXT-INDENT: 30px">;内存数据定义</P>
<P style="TEXT-INDENT: 30px">START EQU 30H ;起始字节</P>
<P style="TEXT-INDENT: 30px">COM EQU 31H ;命令/数据</P>
<P style="TEXT-INDENT: 30px">HDATA EQU 32H ;命令/数据字节高位</P>
<P style="TEXT-INDENT: 30px">LDATA EQU 33H ;命令/数据字节低位</P>
<P style="TEXT-INDENT: 30px">ASC EQU 34H ;ASCII数据单元</P>
<P style="TEXT-INDENT: 30px">初始化子程序:</P>
<P style="TEXT-INDENT: 30px">INILCM:LCALL DL40MS ;延时等待内部复位</P>
<P style="TEXT-INDENT: 30px">MOV COM,#30H ;使用8位控制界面</P>
<P style="TEXT-INDENT: 30px">LCALL WRITE</P>
<P style="TEXT-INDENT: 30px">MOV COM,#30H ;使用基本指令集</P>
<P style="TEXT-INDENT: 30px">LCALL WRITE</P>
<P style="TEXT-INDENT: 30px">MOV COM,#0CH</P>
<P style="TEXT-INDENT: 30px">LCALL WRITE ;整体显示ON</P>
<P style="TEXT-INDENT: 30px">MOV DL1MS</P>
<P style="TEXT-INDENT: 30px">MOV COM,#01H ;清屏</P>
<P style="TEXT-INDENT: 30px">LCALL WRITE</P>
<P style="TEXT-INDENT: 30px">LCALL DL40MS</P>
<P style="TEXT-INDENT: 30px">MOV COM,#06H ;显示右移</P>
<P style="TEXT-INDENT: 30px">LCALL WRITE</P>
<P style="TEXT-INDENT: 30px">LCALL DL1MS</P>
<P style="TEXT-INDENT: 30px">RET</P>
<P style="TEXT-INDENT: 30px">模块写入子程序:</P>
<P style="TEXT-INDENT: 30px">WRITE:MOV A,COM ;送待发数据命令A</P>
<P style="TEXT-INDENT: 30px">MOV A,#0F0H ;屏蔽低4位</P>
<P style="TEXT-INDENT: 30px">MOV HDATA,A ;将高4位送HDATA单元</P>
<P style="TEXT-INDENT: 30px">MOV A,COM ;取低4位</P>
<P style="TEXT-INDENT: 30px">SWAP A ;高低4位互换</P>
<P style="TEXT-INDENT: 30px">MOV A,#0F0H</P>
<P style="TEXT-INDENT: 30px">MOV LDATA,A ;将低4位送LDATA单元</P>
<P style="TEXT-INDENT: 30px">MOV A,START ;取起始字节</P>
<P style="TEXT-INDENT: 30px">LCALL SENDBYTE ;发送</P>
<P style="TEXT-INDENT: 30px">LCALL DL1MS ;延时1ms</P>
<P style="TEXT-INDENT: 30px">MOV A,HDATA</P>
<P style="TEXT-INDENT: 30px">LCALL SENDBYTE</P>
<P style="TEXT-INDENT: 30px">LCALL DL1MS</P>
<P style="TEXT-INDENT: 30px">MOV A,LDATA</P>
<P style="TEXT-INDENT: 30px">LCALL SENDBYTE</P>
<P style="TEXT-INDENT: 30px">LCALL DL1MS</P>
<P style="TEXT-INDENT: 30px">RET</P>
<P style="TEXT-INDENT: 30px">显示汉字子程序:</P>
<P style="TEXT-INDENT: 30px">HZDISP:</P>
<P style="TEXT-INDENT: 30px">MOV START,#0F08H 写入命令</P>
<P style="TEXT-INDENT: 30px">MOV COM,#80H 设定显示位置</P>
<P style="TEXT-INDENT: 30px">LCALL WRITE</P>
<P style="TEXT-INDENT: 30px">MOV DPTR,#TABLE 指向文字型代码表</P>
<P style="TEXT-INDENT: 30px">MOV A,#00H 取汉字代码低位</P>
<P style="TEXT-INDENT: 30px">LOOP2:MOVC A,A+@DPTR</P>
<P style="TEXT-INDENT: 30px">CJNE A,#0,DISP ;遇“0”结束显示</P>
<P style="TEXT-INDENT: 30px">RET 写完一行则结束</P>
<P style="TEXT-INDENT: 30px">DISP:MOV START,#0FAH ;写数据</P>
<P style="TEXT-INDENT: 30px">MOV COM,A</P>
<P style="TEXT-INDENT: 30px">LCALL WRITE ;写入显示模块</P>
<P style="TEXT-INDENT: 30px">INC DPTR ;取汉字代码高位</P>
<P style="TEXT-INDENT: 30px">AJMP LOOP2 ;未显示完则继续</P>
<P style="TEXT-INDENT: 30px">TABLE:DB“中文图形点阵”,0;汉字代码表</P>
<P style="TEXT-INDENT: 30px">DB“液晶显示模块”,0;</P>
<P style="TEXT-INDENT: 30px">串行字节数据发送子程序:</P>
<P style="TEXT-INDENT: 30px">SENDBYTE:MOV R7,#08H ;发送8位</P>
<P style="TEXT-INDENT: 30px">LOOP1:RLC A</P>
<P style="TEXT-INDENT: 30px">MOV SID,C ;数据送数据线</P>
<P style="TEXT-INDENT: 30px">CLR SCLK ;产生同步时钟</P>
<P style="TEXT-INDENT: 30px">SETB SCLK</P>
<P style="TEXT-INDENT: 30px">DJNZ R7,LOOP1 ;未发送完8位继续</P>
<P style="TEXT-INDENT: 30px">RET</P>
<P style="TEXT-INDENT: 0px"><B>结语</B></P>
<P
style="TEXT-INDENT: 30px">由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
</P>
<P></P></DIV></TD></TR>
<TR>
<TD align=middle height=15>
<TABLE cellSpacing=0 cellPadding=0 align=center border=0>
<TBODY>
<TR>
<TD>
<DIV></DIV></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD align=right height=2>
<TABLE cellSpacing=0 cellPadding=0 width="80%" border=0>
<TBODY>
<TR>
<TD width=75>【<A href="javascript:doPrint();">打印本稿</A>】</TD>
<TD width=8></TD>
<TD width=75>
<P>【<A
href="http://www.21ic.com/new_info/news/review.asp?title=串行接口中文图形点阵液晶显示模块的应用target="
_blank?>发表评论</A>】</P></TD>
<TD width=10></TD>
<TD width=79>【<A
href="http://www.21ic.com/new_info/news/sendmail.asp?num=串行接口中文图形点阵液晶显示模块的应用">推荐</A>】</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD align=right height=2></TD></TR>
<TR>
<TD align=right height=2><A href="javascript:window.close();"><IMG
height=20 src="——串行接口中文图形点阵液晶显示模块的应用.files/close_c.gif" width=77
border=0 name=Image161></A><FONT
color=#ffffff>----</FONT></TD></TR></TBODY></TABLE><BR><BR>
<TABLE cellSpacing=0 cellPadding=0 width=520 align=center border=0>
<TBODY>
<TR>
<TD vAlign=bottom align=middle width=114 bgColor=#999a76
height=1><IMG height=1 src="——串行接口中文图形点阵液晶显示模块的应用.files/blank.gif"
width=1></TD>
<TD width=466 height=1></TD></TR>
<TR>
<TD align=middle width=114 bgColor=#ece8db height=19>相关新闻</TD>
<TD width=466 height=19></TD></TR>
<TR bgColor=#999a76>
<TD colSpan=2 height=1><IMG height=1
src="——串行接口中文图形点阵液晶显示模块的应用.files/blank.gif" width=1></TD></TR>
<TR>
<TD colSpan=2 height=1></TD></TR></TBODY></TABLE>
<TABLE borderColor=#000000 cellSpacing=0 cellPadding=0 width=520
align=center border=0>
<TBODY>
<TR>
<TD vAlign=top>
<TABLE class=RelatedTable width="100%" border=0>
<TBODY>
<TR class=RelatedTr>
<TD class=RelatedTd>
<SCRIPT language=javascript
src="——串行接口中文图形点阵液晶显示模块的应用.files/about.htm"></SCRIPT>
</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR></TD>
<TD vAlign=top align=middle width=150 bgColor=#ece8db height=2>
<TABLE cellSpacing=0 cellPadding=1 width="100%" border=0>
<TBODY>
<TR>
<TD bgColor=#000000>
<TABLE cellSpacing=0 cellPadding=2 width=150 bgColor=#ece8db
border=0>
<TBODY>
<TR>
<TD>
<META content="Microsoft FrontPage 5.0" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId>
<P><A href="http://www.21ic.com/custom/tek/tek.htm"><IMG
src="——串行接口中文图形点阵液晶显示模块的应用.files/tek.gif"
border=0></A></P></TD></TR>
<TR>
<TD
height=5></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=766 align=center border=0>
<TBODY>
<TR>
<TD vAlign=top colSpan=6></TD></TR>
<TR>
<TD vAlign=top colSpan=6 height=10></TD></TR>
<TR>
<TD vAlign=top bgColor=#999999 colSpan=6 height=2></TD></TR>
<TR>
<TD class=stxt vAlign=center align=middle colSpan=6
height=6></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=766 align=center border=0>
<TBODY>
<TR>
<TD class=s width=973 height=12></TD></TR>
<TR>
<TD class=s width=973 height=20>
<DIV align=center><FONT face="Arial, Helvetica, sans-serif"><!--start copyright-->
<DIV align=center><FONT color=black>
<TABLE cellSpacing=0 cellPadding=0 width=600 align=center border=0>
<TBODY>
<TR>
<TD align=middle width="100%" colSpan=2><BR>Better View:800*600 Best
View:1024x768 为了本系统能够更好的为您服务,请使用IE4.0或以上版本浏览器
<BR><BR>版权所有(C)21IC中国电子网 电话:010-82357510, 82357511 传真: 010-82357512
</TD></TR></TBODY></TABLE><!--start copyright--></FONT></DIV></FONT></DIV></TD></TR></TBODY></TABLE><BR></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -