液晶12864

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

驱动头文件:LCD12864.rar

我们看到,打开这个头文件,我们可以看到有需要修改的引脚定义。假设我们这里将STD和SCLK分别接到了P1.6和P1.7上面,我们就按照上面的连接方法就可以了。如果你使用的是告诉CPU,你可以修改下面的delay()函数,使CPU输出的控制信号速率降低一些。

好了,修改好了,让我们开始我们的编程吧:

#include

#include "LCD12864.H"

void main()

{

LC DInit();

LC DInit();

LC DChar(0x80,'Z');

LC DNum(0x90,722);

LC DString(0x88,"");

LC DString(0x98,"因为简单所以领先");

for(;;){}

}

液晶屏幕1602是电子上常用的液晶显示器。这种显示器的优点是带有英文字符字库;价格低廉;接口方便。这种液晶显示器如此广泛的使用,我们很有必要来学习使用。你也看到了上面的图片,LCD1602的引脚常规情况下有15个插针引脚。从左往右分别是GND(液晶)VCC(液晶)VO(对比度调整端)RS RW EN D0 D1 D2 D3 D4 D5 D6 D7 VCC(背

液晶1602的使用非常的方便,数据线8条,控制线3条,其实总共需要11根IO口线(8线制使用使这样的,4线制可以节省IO口,这里先不讨论)。液晶显示模块的VCC和GND(第一和第二个引脚)是需要接的,但是背光的VCC和GND可以不连接。

液晶1602的使用需要注意的一点就是VO这个端口。这个VO端口接高电平时候,液晶的对比度最小;接低电平时,液晶的对比度最高(会出现“鬼影”)。最好采用一个电位器,可以调节

这个端口的电压。

正如上图这样,一个电位器,方便调节LCD的对比度。

还有一点,如果你想增加整个系统的稳定性,你应该在这11条IO口线上加一个上拉电阻。

当然,你如果不这样做,这个液晶模块往往也可以工作。

现在,我们将VO端口连接正确,安装正确电源,然后将11根IO口线接到单片机的任何一个接口上(只要你自己知道你接到了哪个端口上就好)。硬件电路就这样连接完毕了。接下来就

是程序了:

我们查看LCD1602的技术手册,可以看到LCD1602的数据传输方式属于并行传输,时序极其简单。我们编写驱动程序也极其的简单。在这里,我将1602的驱动已经编写好了,大家可以

直接拿来使用。现在,我们就来验证一下吧~~

【点击这里下载…张彦欣单片机‟提供的LCD1602驱动程序文件…LCD1602.H‟】LCD1602.rar

接下来,我们就开始使用这个头文件吧。首先,我们预览一下这个头文件里面的函数:void LCD1602_delay(); //这是个内部函数,供其他函数调用。可以设置计数值,来分频CPU。void LCDInit(void);//这个函数是用来初始化LCD屏幕的。这个函数会清空当前的屏幕。void m sgbox(unsigned char MODE,unsigned char DATA);//这个函数是内部函数,用于

和液晶通信。

void LCDChar(unsigned char ADD,unsigned char CH);//输出一个字符CH到特定地址

ADD。

void LCDString(unsigned int Address,char *Str);//从地址Address开始,输出一个字符

串。

void LCDNum(unsigned char Adress,unsigned int Num);//从地址Address开始输出一

个数字。

看起来是不是很简单,是的,就是这么简单。我们下面绝一个例子:

我们的硬件链接是这样的: LCD_RS P2.0 LCD_RW P2.1 LCD_EN P2.2 LCD_D0 ~ LCD_D7 P3

我们首先打开我们的头文件,我们可以看到如下的信息:

我们看到了,一下的语句:

sbit LCD_RS = P0^0; //LCD1602 RS 引脚定义。 sbit LCD_RW = P0^1; //LCD1602 RW 引脚定义。 sbit LCD_E = P0^2; //LCD1602 EN 引脚定义。

#define LCD_Data P2 //LCD1602 数据端定义。8位端口,也可以每位定义。

这里,我们就是定义了硬件连接,这也是我们需要修改的地方。在本例子中,我们硬件连接有变化,我们需要修改这里的代码(其他的一概不需要改动)。我们对应着我们的硬件连接,将

这里的代码改成:

sbit LCD_RS = P2^0; //LCD1602 RS 引脚定义。 sbit LCD_RW = P2^1; //LCD1602 RW 引脚定义。 sbit LCD_E = P2^2; //LCD1602 EN 引脚定义。

#define LCD_Data P3 //LCD1602 数据端定义。8位端口,也可以每位定义。

OKay,所有的修改已经完成。接下来,我们就调用头文件的函数就可以了。接下来,打开

KEIL,建立一个工程,然后写下下面的程序:

#include

#include "LCD1602.H" //将我们的驱动文件包含到工程中。事先需要将此文件拷贝到工程

目录下。

void main()

{

LCDInit(); //初始化LCD1602.

LCDChar(0x80,'A'); //往地址0x80处写入一个字符A。

LCDNum(0x84,12345);//从地址0x84开始显示数字12345。

LCDString(0xC0,“www.zyxm ”);//从地址0xC0开始显示字符串

“www.zyxm ”

}

我们看到了,整个过程只要调动我们的头文件中的函数即可。下面我们来看看这个程序运行的结

果:

相关文档
最新文档