一、LCD12864简介
- LCD12864液晶显示,也就是屏幕上总共有128*64 ,个点,每个点就只有两种状态亮和不亮
- 我这里使用的就是带字库的,直接可以显示中文,不需要自己去编码,发送数据使用8位并行模式。
- 我这里不介绍怎么显示图片,不介绍指令,知识快速入门得到显示结果
二、引脚介绍
1.一共有20个引脚,重要的只有那么几个
- 3~VO就是调节对比度的,相当于调节每个点显示出来的深浅,虽然只有亮与不亮两种选择,但亮的模式下相当于可以调节每个点到底多亮
- 4~RS,为1的时候表示发送的发送的数据,为0表示发送命令
- 5~RW,就是控制我们是往LCD12864读数据(1)还是写数据(0),我们要控制LCD,当然是往里面写数据(0)
- 6~E,使能信号
- 17~RST复位脚
- 接下来的DB0~DB7就是用来传输我们的数据,一个字节八个位刚好
2.官方的引脚图
三、时序图
LCD12864和LCD1602的简直一模一样
四、初始化LCD的代码
1.两个最重要的函数
/**ruby
值得注意的是:
(1).这两个函数(向LCD写入命令和向LCD写入数据)能够写好正常
整个LCD的初始化代码基本上就写好一大半了,因为后面所有的函数都是不断调用这两个函数
(2).这两个函数可以根据自己的需求合并成一个,两个函数就一个地方不一样CD12864_RS = 0/1
(3).这是根据上面时序图写出来的,和LCD1602的代码也简直一模一样
只需要稍微改变一下,延时函数我也没显示出来,根据自己开发平台来自己写
*/
//向12864中写入数据
void LCD12864_Write_Data(unsigned char dat)
{
LCD12864_E = 0;
LCD12864_WR = 0;//选择写模式
LCD12864_RS = 1;//选择数据模式
//延时
delay_10us(1);
//将数据准备
LCD12864_Data = dat;
delay_10us(1);
LCD12864_E = 1;//表示开始写入数据,上升沿写入数据
delay_10us(20); //延时等待数据全部发送完成
}
//向12864中写入命令
void LCD12864_Write_Com(unsigned char com)
{
//首先我们设置片选信号
LCD12864_E = 0;//片选信号一般设置为0表示片选
LCD12864_WR = 0;//选择写模式
LCD12864_RS = 0;//选择命令模式
//延时
delay_10us(1);
//将数据准备
LCD12864_Data = com;
delay_10us(1);
LCD12864_E = 1;//表示开始写入数据,上升沿写入数据
delay_10us(20);
}