图6.8 直接访问方式接口电路
2.间接控制方式
图6.9 间接控制方式接口电路
比较以上两种接口方案可以看到,与直接控制方式相比,间接控制方式使用的辅助器件更少,接线也更简洁,可靠性也相应较高,成本也相对较低,唯一的缺点就是要用较多的软件来弥补硬件上的不足,编程相对复杂。总体上比较,间接控制方式更为方便实用。
6.4图形式液晶显示器LGM12864应用程序设计
6.4.1 程序设计流程图
(a) (b) (c)
图6.12 图形式液晶显示程序设计流程图
6.4.2功能程序模块详解
1. 判LCM 忙子函数
void lcd_busy(void)
{RS=0;
RW=1;
P2=0xff;
while(1){
EN=1;
if(P2<0x80)break;
EN=0;
}
EN=0;
}
2. 写指令到LCM 子函数
void wcode(uchar c,uchar csl,uchar csr)
{
CS1=csl;
CS2=csr;
lcd_busy();
RS=0;
RW=0;
P2=c;
EN=0;
delay(10);
EN=1;
delay(10);
EN=0;
}
/*-------------写数据子程序---------------------------*/
void wdata(uchar c,uchar csl,uchar csr)
{
CS1=csl;
CS2=csr;
lcd_busy();
3.写数据到LCM 子函数
void wdata(uchar c,uchar csl,uchar csr)
{
CS1=csl;
CS2=csr;
lcd_busy();
RS=1;
RW=0;
P2=c;
EN=0;
delay(10);
EN=1;
delay(10);
EN=0;
}
4. 设定起始行子函数
void set_startline(uchar i)
{
i=0xc0+i;
wcode(i,1,1);
}
5. 定位x 方向(起始页)、y(起始列)方向的子函数
void set_xy(uchar x,uchar y)
{
x=x+0x40;
y=y+0xb8;
wcode(x,1,1);
wcode(y,1,1);
}
6. 屏幕开启、关闭子函数
void dison_off(uchar on)
{
on=on+0x3e;
wcode(on,1,1);
}
7.复位子函数
void reset() //函数名为reset 的复位子函数。
{ // reset 函数开始。
RST_0; //复位端置低电平。
Delay_nms(10); //延时一会。
RST_1; //复位端置高电平。
Delay_nms(10); //延时一会。
} // reset 函数结束。
8. 根据x、y 地址定位,将数据写入LCM 左半屏或右半屏的子函数
void reset()
{
RST=0;
delay(10);
RST=1;
delay(10);
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>