毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

常用液晶显示模块驱动程序设计 第6页

更新时间:2009-6-13:  来源:毕业论文
常用液晶显示模块驱动程序设计 第6页
5.3.1字符型液晶显示器LM1602的示原理
LM1602的内部驱动器为HD44780。HD44780内置了192个常用字符,存于字符产生器CGROM(Character Generator ROM)中,另外还有几个允许用户自定义的字符产生RAM,称为CGRAM(Character Generator RAM)。下图说明了CGROM和CGRAM与字符的对应关系
字符码0x00~0x0F为用户自定义的字符图形RAM(对于5X8点阵的字符,可以存放8组,5X10点阵的字符,存放4组),0x20~0x7F为标准的ASCII码,0xA0~0xFF为日文字符和希腊文字符,其余字符码(0x10~0x1F及0x80~0x9F)没有定义。(由于本指导中未用到自定义特殊字符的功能CGROM的字符号,"地址"指DDRAM的地址)
除了CGROM和CGRAM外,LCD内部还有一个DDRAM(Display Data RAM),用于存放待显示内容,LCD控制器的指令系统规定,在送待显示字符代码的指令之前,先要送DDRAM的地址(即待显示的字符显示位置)。16×2的字符型LCD的DDRAM地址与显示位置的对应关系如下:
 图5.4  DRAM与显示位置对应图          
总而言之,希望在LCD的某一特定位置显示某一特定字符,一般要遵循"先指定地址,后写入内容"的原则;但如果希望在LCD上显示一串连续的字符(如单词等),并不需要每次写字符码之前都指定一次地址,这是因为液晶控制模块中有一个计数器叫地址计数器AC(Address Counter)。地址计数器的作用是负责记录写入DDRAM数据的地址,或从DDRAM读出数据的地址。该计数器的作用不仅仅是"写入"和"读出"地址,它还能根据用户的设定自动进行修改。比如,如果规定地址计数器在"写入DDRAM内容"这一操作完成后自动加1,那么在第1行第1列定写入一个字符后,如果不对字符显示位置(DDRAM地址)重新设置,再写入一个字符,则这个新的字符会出现在第1行第2列。
5.3.2 符型液晶显示器LM1602接口方案及比较    
1.1直接控制方式
                    
图5.5直接(总线)控制方式
1.2间接控制方式  
 

图5.6接接线(模拟口线)控制方式
比较以上两种接口方案可以看到,与直接控制方式相比,间接控制方式使用的辅助器件更少,接线也更简洁,可靠性也相应较高,成本也相对较低,唯一的缺点就是要用较多的软件来弥补硬件上的不足,编程相对复杂。总体上比较,间接控制方式更为方便实用。

 

5.4 字符型液晶显示器LM1602应用程序
  5.4.1程序设计流程图
根据上述方案论证,本例接口采用间接控制方式,相应的程序流程图如下:(a)          (b)               (c)
(d)                                          (e)
图5.7 LM1602功能子程序流程图
5.4.2功能程序模块详解
1.初始化子程序
INITIAL:MOV A,#00111000B;  设置8位,2行,5*7点阵
 LCALL WRITE_COM;       调用写指令子程序
 MOV A,#00001110B ;     显示器开,允许光标闪烁
 LCALL WRITE_COM ;  调用写指令子程序
 MOV A,#00000110B ;  文字不动,光标自动右移
 LCALL WRITE_COM ;  调用写指令子程序
 RET
2写命令子程序
WRITE_COM:
 CLR RS ;   RS=0,选择指令寄存器
 CLR R_W;   RW=0,选择写模式
 CLR E;   E=0,禁止读/写LCM 
    LCALL CHECK_BUSY;  调用判断忙碌子程序          
SETB E;   E=1 ,允许读/写LCM                                      
 RET;    子程序返回
3写数据子程序
WRITE_DATA:
SETB RS ;   RS=1,选择数据 寄存器
 CLR R_W;   RW=0,选择写模式
 CLR E;       E=0,禁止读/写LCM 
    LCALL CHECK_BUSY;  调用判断忙碌子程序          
SETB E;   E=1 ,允许读/写LCM                                      
 RET;    子程序返回

4查忙子程序
CHECK_BUSY:  
MOV LCD,#0FFH;     此时不接受外来指令
 SETB R_W;          RW=1, 选择写模式
 CLR RS;      RS=0,选择指令寄存器
 CLR E;      E=0,禁止读/写LCM
NOP ;              延时1us
 SETB E;           E=1,允许读/写LCM
 JB LCD.7,CHECK_BUSY;若忙碌则循环等待
 RET;                 子程序返回
主程序参见附录B.2

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

常用液晶显示模块驱动程序设计 第6页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。