📄 ——串行接口中文图形点阵液晶显示模块的应用.htm
字号:
<TD align=middle width="6%" height=13>AC5</TD>
<TD align=middle width="6%" height=13>AC4</TD>
<TD align=middle width="6%" height=13>AC3</TD>
<TD align=middle width="6%" height=13>AC2</TD>
<TD align=middle width="6%" height=13>AC1</TD>
<TD align=middle width="7%" height=13>AC0</TD>
<TD align=left width="24%"
height=13>设定DDRAM地址到地址<BR>计数器(AC)</TD>
<TD align=middle width="10%" height=13>72</TD></TR>
<TR class=main>
<TD align=middle width="10%" height=12>读取标志(BF)和地址</TD>
<TD align=middle width="4%" height=12>0</TD>
<TD align=middle width="5%" height=12>1</TD>
<TD align=middle width="5%" height=12>BF</TD>
<TD align=middle width="5%" height=12>AC6</TD>
<TD align=middle width="6%" height=12>AC5</TD>
<TD align=middle width="6%" height=12>AC4</TD>
<TD align=middle width="6%" height=12>AC3</TD>
<TD align=middle width="6%" height=12>AC2</TD>
<TD align=middle width="6%" height=12>AC1</TD>
<TD align=middle width="7%" height=12>AC0</TD>
<TD align=left width="24%"
height=12>读取忙标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值</TD>
<TD align=middle width="10%" height=12>0</TD></TR>
<TR class=main>
<TD align=middle width="10%" height=12>写资料到RAM</TD>
<TD align=middle width="4%" height=12>1</TD>
<TD align=middle width="5%" height=12>0</TD>
<TD align=middle width="5%" height=12>D7</TD>
<TD align=middle width="5%" height=12>D6</TD>
<TD align=middle width="6%" height=12>D5</TD>
<TD align=middle width="6%" height=12>D4</TD>
<TD align=middle width="6%" height=12>D3</TD>
<TD align=middle width="6%" height=12>D2</TD>
<TD align=middle width="6%" height=12>D1</TD>
<TD align=middle width="7%" height=12>D0</TD>
<TD align=left width="24%"
height=12>写入资料到内部的RAM(DDRAM/CGRAM/IRAM/GDRAM)</TD>
<TD align=middle width="10%" height=12>72</TD></TR>
<TR class=main>
<TD align=middle width="10%" height=12>读出RAM的值</TD>
<TD align=middle width="4%" height=12>1</TD>
<TD align=middle width="5%" height=12>1</TD>
<TD align=middle width="5%" height=12>D7</TD>
<TD align=middle width="5%" height=12>D6</TD>
<TD align=middle width="6%" height=12>D5</TD>
<TD align=middle width="6%" height=12>D4</TD>
<TD align=middle width="6%" height=12>D3</TD>
<TD align=middle width="6%" height=12>D2</TD>
<TD align=middle width="6%" height=12>D1</TD>
<TD align=middle width="7%" height=12>D0</TD>
<TD align=left width="24%"
height=12>从内部RAM读取资料(DDRAM/CGRAM/IRAM/GDRAM)</TD>
<TD align=middle width="10%" height=12>72</TD></TR></TBODY></TABLE>
<P style="TEXT-INDENT: 0px"><B>表3 OCM4X8C 扩充指令集</B></P>
<TABLE borderColorDark=#ffffff width="100%" borderColorLight=#000000
border=1>
<TBODY>
<TR class=main>
<TD align=middle width="10%" rowSpan=2>指 令</TD>
<TD align=middle width="48%" colSpan=10>指 令 码</TD>
<TD width="29%" rowSpan=2>
<P align=center>说 明</P></TD>
<TD width="13%" rowSpan=2>执行时间/μs(540kHz)</TD></TR>
<TR class=main>
<TD align=middle width="4%">RS</TD>
<TD align=middle width="4%">RW</TD>
<TD align=middle width="5%">DB7</TD>
<TD align=middle width="5%">DB6</TD>
<TD align=middle width="5%">DB5</TD>
<TD align=middle width="5%">DB4</TD>
<TD align=middle width="5%">DB3</TD>
<TD align=middle width="5%">DB2</TD>
<TD align=middle width="5%">DB1</TD>
<TD align=middle width="5%">DB0</TD></TR>
<TR class=main>
<TD align=middle width="10%">待命模式</TD>
<TD align=middle width="4%">0</TD>
<TD align=middle width="4%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">1</TD>
<TD width="29%">将DDRAM填满“20H”,并设定DDRAM的地址计数器(AC)到“00H”;</TD>
<TD align=middle width="13%">72</TD></TR>
<TR class=main>
<TD align=middle width="10%">卷动地址或IRAM地址选择</TD>
<TD align=middle width="4%">0</TD>
<TD align=middle width="4%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">1</TD>
<TD align=middle width="5%">SR</TD>
<TD width="29%">SR=1:允许输入垂直卷动地址;<BR>SR=0:允许输入IRAM地址</TD>
<TD align=middle width="13%">72</TD></TR>
<TR class=main>
<TD align=middle width="10%">反白选择</TD>
<TD align=middle width="4%">0</TD>
<TD align=middle width="4%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">1</TD>
<TD align=middle width="5%">R1</TD>
<TD align=middle width="5%">R0</TD>
<TD width="29%">选择4行中的任一行作反白显示,并可决定反白与否</TD>
<TD align=middle width="13%">72</TD></TR>
<TR class=main>
<TD align=middle width="10%">睡眠模式</TD>
<TD align=middle width="4%">0</TD>
<TD align=middle width="4%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">1</TD>
<TD align=middle width="5%">SL</TD>
<TD align=middle width="5%">X</TD>
<TD align=middle width="5%">X</TD>
<TD width="29%">SL=1:脱离睡眠模式;<BR>SL=0:进科睡眠模式</TD>
<TD align=middle width="13%">72</TD></TR>
<TR class=main>
<TD align=middle width="10%">扩充功能设定</TD>
<TD align=middle width="4%">0</TD>
<TD align=middle width="4%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">1</TD>
<TD align=middle width="5%">1</TD>
<TD align=middle width="5%">X</TD>
<TD align=middle width="5%">1<BR>RE</TD>
<TD align=middle width="5%">G</TD>
<TD align=middle width="5%">0</TD>
<TD
width="29%">RE=1:扩充指令集动作;RE=0基本指令集动作;G=1:绘图显示ON;G=0:绘图显示OFF</TD>
<TD align=middle width="13%">72</TD></TR>
<TR class=main>
<TD align=middle width="10%">设定IRAM地址或卷动地址</TD>
<TD align=middle width="4%">0</TD>
<TD align=middle width="4%">0</TD>
<TD align=middle width="5%">0</TD>
<TD align=middle width="5%">1</TD>
<TD align=middle width="5%">AC5</TD>
<TD align=middle width="5%">AC4</TD>
<TD align=middle width="5%">AC3</TD>
<TD align=middle width="5%">AC2</TD>
<TD align=middle width="5%">AC1</TD>
<TD align=middle width="5%">AC0</TD>
<TD
width="29%">SR=1:AC5AC0为垂直卷动地址<BR>SR=0:AC3AC0为ICONIRAM地址</TD>
<TD align=middle width="13%">72</TD></TR>
<TR class=main>
<TD align=middle width="10%">设定绘图RAM地址</TD>
<TD align=middle width="4%">0</TD>
<TD align=middle width="4%">0</TD>
<TD align=middle width="5%">1</TD>
<TD align=middle width="5%">AC6</TD>
<TD align=middle width="5%">AC5</TD>
<TD align=middle width="5%">AC4</TD>
<TD align=middle width="5%">AC3</TD>
<TD align=middle width="5%">AC2</TD>
<TD align=middle width="5%">AC1</TD>
<TD align=middle width="5%">AC0</TD>
<TD width="29%">设定CGRAM地址到地址计数器(AC)</TD>
<TD align=middle width="13%">72</TD></TR></TBODY></TABLE>
<P style="TEXT-INDENT: 0px"><B>3 字符显示</B></P>
<P
style="TEXT-INDENT: 30px">OCM4X8C按照每个中文字符16×16点阵将显示屏分类4行8列,共32个区。每个区可显示1个中文字符或2个16×8点阵全高ASCII码字符,即每屏最多可实现32个中文字符或64个ASCII码字符的显示。OCM4X8C内部提供128×2字节的字符显示RAM缓冲区(DDRAM)。字符显示是通过将字符显示编码写入该字符显示RAM实现的。根据写入内容的不同,可分别在液晶屏上显示CGROM(中文字库)、HCGROM(ASCII码字库)及CGRAM(自定义字形)的内容。三种不同字符/字型的选择编码范围为:0000~0006H显示自定义字型,02H~7FH显示半宽ASCII码字符,A1A0H~F7FFH显示8192种GB2312中文字库字形。字符显示RAM在液晶模块中的地址80H~9FH。字符显示的RAM的地址与32个字符显示区域有着一一对应的关系,其对应关系如图1所示。</P>
<P style="TEXT-INDENT: 0px"><B>4 应用说明</B></P>
<P style="TEXT-INDENT: 30px">用OCM4X8C显示模块时应注意以下几点:</P>
<P
style="TEXT-INDENT: 30px">①欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入中文字符编码。</P>
<P
style="TEXT-INDENT: 30px">②显示ASCII字符过程与显示中文字符过程相同。不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加1指向下一个字符位置,否则,显示的字符中将会有一个空ASCII字符位置。</P>
<P style="TEXT-INDENT: 30px">③当字符编码为2字节时,应先写入高位字节,再写入低位字节。</P>
<P
style="TEXT-INDENT: 30px">④模块在接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取BF标志时BF需为“0”,方可接受新的指令。如果在送出一个指令前不检查BF标志,则在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前一个指令确定执行完成。指令执行的时间请参考指令表中的指令执行时间说明。</P>
<P
style="TEXT-INDENT: 30px">⑤“RE”为基本指令集与扩充指令集的选择控制位。当变更“RE”后,以后的指令集将维持在最后的状态,除非再次变更“RE”位,否则使用相同指令集时,无需每次均重设“RE”位。<B><BR><BR><A
href="http://www.21ic.com/info/images/dpj/200308/14b.gif">图2
OCM4X8C的2线串行工作模式操作时序</A><BR><BR>5 接口方式与时序</B></P>
<P
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -