- 1、本文档共110页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Proteus实例教程课件-第9章剖析
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 先设CGRAM的偏置地址,再设汉字首代码值,则根据T6963C的规定算出CGRAM的首地址。T6963C的指令22H专门用来设置CGRAM的偏置地址。这是一个双字节参数指令,D1写入的是低5位有效的偏置地址,D2无意义,固定为00H。设D1=03H,汉字首代码设为80H,则D1应为16位地址的高5位,80H为接下来的8位,后面3位为0,可得CGRAM的地址为1C00H,如图9-15所示。 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 03H 80H 000B 图9-15 CGRAM的首地址设置 设置CGRAM的地址后,以自动写方式,顺序把程序中存放的汉字字模数据写入以1C00H开始的CGRAM中。 接下来要设计一个汉字写入子程序,把CGRAM区的汉字代码依次写入文本显示区,即可显示在液晶屏上。以汉字“液”为例来说明汉字字形与字模数据字节及代码之间的对应关系。 如图9-16所示,一个汉字在液晶屏上占据16×16点阵,即占据4个字符位。每行16个点需2个字节来描绘汉字字形,共需32个字节。不同的取模软件或取模方式,这32个字节的排放顺序是不一样的。图9-16中对“液”字采取横向取模,先取左上部8字节,再取左下部8字节,然后是右上部8字节和右下部8字节。字节数据中为1的位对应的显示屏上的点被点亮。 图9-16 汉字字形与字模之间的对应关系 在文本方式显示子程序中,显示RAM的地址指针先指向汉字的左上部分汉字代码80H(前面设CGRAM偏置地址时设定的)。只需把80H作为显示数据写入对应的文本显示区,则“液”字左上部分即可显示。接下来显示RAM地址指针自动加1,指向“液”字右上部分,把对应的汉字代码的82H写入显示RAM。修改显示RAM地址(DPTR+20H)换行,此时应先取“液”字的左下部分代码81H,再取右下部分代码83H。至此一个汉字显示完毕,中间只修改了一次RAM地址。 文本方式显示汉字子程序的流程图如图9-17所示。在子程序中先要指定文本显示区的首地址TH和每行字符宽度TA,然后按表9-4计算出显示汉字左上半部分的字符对应的显示地址,依次把对应的四个汉字代码写入。 文本方式显示汉字的优点是只需把设定的汉字的四个代码分别写入显示RAM中即可,但是必须事先建立CGRAM区并顺序写入32个字节的字模数据。而图形方式显示汉字就不必建立CGRAM,但是每个字模数据都必须一一写入显示RAM,一共写入显示数据32次。 图9-17 文本方式显示汉字子程序流程图 图形液晶显示器的CGRAM区的建立和字符液晶显示器LM016L的用户自定义字符写入过程很相似。字符液晶显示器的用户自定义字符写入是向CGRAM指定的地址中写入8个字节的数据构成一个8×8点阵字符,显示时,把系统分配的字符代码(00~07)写入到显示RAM中。而图形液晶显示器的文本方式显示汉字,只不过是在显示RAM中先开辟一个CGRAM区域,指定偏置地址,再指定第一个写入的汉字代码,即确定了CGRAM在显示RAM中的起始地址。然后顺序把32个字节的汉字字模数据写入CGRAM,相当于在CGRAM中自定义了一个16×16点阵字符。当需要显示该汉字时,只需要把该汉字的四个代码按显示结构写入到指定的显示RAM中去即可。 下面分别给出建立CGRAM子程序及文本方式显示汉字的子程序。 1. 建立CGRAM子程序 程序清单如下: 查看程序 其中COUNT为8×8点阵字模字符的字模个数,一个汉字字模需要4个8×8点阵字符字模组合,所以此程序中,共两个汉字,COUNT可设为8。 向CGRAM区写入字模数据时,第一个DB块中的前8个字节的字模数据写入00011 1000000 000~111中,第二个DB块的字模数据写入00011 1000001 000~111中,依次类推。
文档评论(0)