图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] ... 下一页 >>