一、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);}

2.初始化函数

/**注意:(1).这些指令具体代表什么暂时不用管,如果你想快速看到你的LCD效果你有时间再去研究,这些指令基本就是一些约束校准的工作*///对LCD12864进行初始化void LCD12864_Init(){//首先对LCD进行复位LCD12864_REST = 0;delay_ms(30);LCD12864_REST = 1;delay_ms(20);/* 开始初始化的步骤 */LCD12864_Write_Com(0x30);LCD12864_Write_Com(0x08);LCD12864_Write_Com(0x01);LCD12864_Write_Com(0x06);LCD12864_Write_Com(0x0c);}

3.基本刷屏函数

        /*  1.总共分为上下两个屏幕,其中第0->31行和第32->63行的行地址相同(上 0->31)第一个屏幕的首地址(0x80,0x80) -> ... -> (0x80,0x87)....(0xa0,0x80) -> ... -> (0xa0,0x87)(下 32->63)第二个屏幕的首地址(0x80,0x88) -> ... -> (0x80,0x90)...(0xa0,0x88) -> ... -> (0xa0,0x90)2.每个地址就是控制 一行16个小点,发送两次数据分别控制前8点和后8个点,例写入的01010101 01010101来控制屏幕的点 , 1显示 0不显示3.先写入行地址,后写入列地址,连续写列地址会自动增加*///进行清屏操作 LCD12864_Clear_Screen(0xFF)全亮//LCD12864_Clear_Screen(0xFF)全灭void LCD12864_Clear_Screen(unsigned char value){unsigned char i,j;LCD12864_Write_Com(0x34);LCD12864_Write_Com(0x36);for(i=0;i<64;i++){if(i<32){LCD12864_Write_Com(0x80+i);LCD12864_Write_Com(0x80);}else {LCD12864_Write_Com(0x80+(i-32));LCD12864_Write_Com(0x88);}for(j=0;j<16;j++)LCD12864_Write_Data(value);}}

4.显示中英文字符函数

//显示非中文字符 和 中文字符都差不多,因为自带汉字库,只是注意写汉字的时候要连续写!
// 注意这里的坐标变了,一定要注意!!!/*  实际坐标:0x80 -> 0x870x90 -> 0x970x88 -> 0x8f0x98 -> 0x9f//这个坐标我们自己规定的,再换算成上面的实际坐标就可以了指出坐标(1,1) -> (1,8)(4,1) -> (4,8)再指出需要显示的字符*/unsigned char addresses[] = {0x80,0x90,0x88,0x98};void LCD12864_Display_Char(unsigned char x,unsigned char y,unsigned char dat){LCD12864_Write_Com(0x30);LCD12864_Write_Com(0x06);//写入地址LCD12864_Write_Com(addresses[x-1]+(y-1));//写入数据LCD12864_Write_Data(dat);}//显示汉字void LCD12864_Display_Chars(unsigned char x,unsigned char y,unsigned char *dat){LCD12864_Write_Com(0x30);LCD12864_Write_Com(0x06);//写入地址LCD12864_Write_Com(addresses[x-1]+(y-1));//写入数据while(*dat != '\0'){LCD12864_Write_Data(*dat);dat++;}}

5.主函数调用一下

void main(){unsigned char *datas ="LCD液晶显示";//液晶初始化LCD12864_Init();LCD12864_Clear_Screen(0x00); //清屏while(1){LCD12864_Display_Char(1,2,'A');LCD12864_Display_Chars(2,1,datas);}}

一、LCD12864(带字库的)使用教程:相关推荐

  1. 51单片机学习:LCD12864液晶显示实验(带字库)

    实验名称:LCD12864液晶显示实验(带字库) 接线说明:     实验现象:下载程序后,LCD12864上显示汉字字符信息 注意事项:                               ...

  2. 点阵LCD12864的显示原理(不带字库)

    点阵LCD12864的显示原理(不带字库) 在数字电路中,所有的数据都是以0和1保存的,对LCD控制器进行不同的数据操作,可以得到不同的结果.对于显示英文操作,由于英文字母种类很少,只需要8位(一字节 ...

  3. 运行caffe自带的mnist实例教程

    运行caffe自带的mnist实例教程 1.先进入caffe文件目录,(指令:cd ./caffe),再用data/mnist下的get_mnist.sh下載MNIST数据集,代码如下: cd ./c ...

  4. matlab imf1,NGPM_v1.4y GA多目标优化的程序 带约束 里面有教程 matlab 272万源代码下载- www.pudn.com...

    文件名称: NGPM_v1.4y下载  收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 390 KB 上传时间: 2015-03-31 下载次数: 24 提 供 者 ...

  5. 最新云豹二开直/播短视频完整系统源码+带开发文档/教程

    正文: 最新云豹二开直/播短视频完整系统源码+带开发文档/教程,好友给我分享的,属于云豹二开,功能非常的强大,且有非常完整的开发文档和教程. 但是说实话这类程序不属于好部署的那一种,比较吃一定的技术, ...

  6. 3dmax:3dmax三维VR渲染设置之高级灯光渲染(标准灯光分类及简介—目标聚光灯、泛光灯、台灯+射灯+壁灯+筒灯+电视灯+平行光,灯带+天光灯)图文教程之详细攻略

    3dmax:3dmax三维VR渲染设置之高级灯光渲染(标准灯光分类及简介-目标聚光灯.泛光灯.台灯+射灯+壁灯+筒灯+电视灯+平行光,灯带+天光灯)图文教程之详细攻略 目录 3dmax三维VR渲染设置 ...

  7. 【收藏】Proteus仿真LCD12864液晶显示极详细的教程

    Proteus仿真LCD12864液晶显示极详细的教程 http://www.51hei.com/bbs/dpj-91394-1.html    [ 点击打开链接] (出处: 单片机论坛)

  8. 全新云豹二开直播短视频系统完整源码+带文档/搭建教程

    正文: 最新云豹二开直/播短视频完整系统源码+带开发文档/教程,好友给我分享的,属于云豹二开,功能非常的强大,且有非常完整的开发文档和教程. 但是说实话这类程序不属于好部署的那一种,比较吃一定的技术, ...

  9. 怎么使用计算机计算,win10 自带计算器怎么输入_win10自带计算器的使用教程

    计算器想必大家都非常熟悉吧,升级到win10系统之后,计算器功能变得很强大,有三种模式,分别为标准.科学.程序员,不同模式可以满足不同用户们的需求,许多用户可能还不熟悉win10 自带计算器怎么输入, ...

最新文章

  1. java_ant详解(转载)
  2. JavaScript实现切换数字的符号switchSign算法(附完整源码)
  3. weui开发文档_58小程序云 | 一站式跨平台小程序开发解决方案
  4. 翻译【mysqladmin --help】
  5. DispatcherHelper
  6. 库存管理系统开发过程
  7. 第七篇:VUE 使用 Echarts 画时钟钟表
  8. 内存超频对游戏提升大吗 玩游戏有必要超频吗
  9. html按钮动态效果,8款超酷而实用的CSS3按钮动画
  10. sklearn-线性回归
  11. 《黑客帝国 THE MATRIX》——当你生活在代码的虚拟世界中
  12. 用大白菜装centos7_u盘安装centos 卡住大白菜怎么用u盘装win7系统
  13. 特定领域知识图谱知识融合方案(实体对齐)论文合集
  14. java8 Exception全集
  15. 理解ViT(结合代码)
  16. opensips 配置文件
  17. vscode向下复制快捷键更改
  18. 360浏览器不能打开ftp服务器上的文件,解决IE、360、谷歌浏览器等无法访问FTP中文文件路径...
  19. 东莞地铁1号线大朗西站二期基坑围护结构顺利封闭
  20. 【Linux】ln -sf软连接

热门文章

  1. 苹果7无线网怎么连接电脑连接服务器,iPhone7怎么连接Wifi无线网络?苹果iPhone7 wifi和网络流量自动切换吗?...
  2. IRQL深入解析(3)--与IRQ比较
  3. 鸿蒙系统支持名单,12月支持鸿蒙系统的机型名单!想尝鲜的可以注意了!
  4. 收藏 | 42 款 Chrome 插件神器,你必须知道!
  5. mc服务器怎么修改浮空字,如何制作悬浮字?我的世界教程 | 我的世界 | MC世界侠...
  6. 广告主选择在今日头条推广的优势有哪些?头条搜索广告怎么做?
  7. 笔记本电脑加一个机械硬盘后的配置工作
  8. openlayers在线地图:高德地图、天地图、谷歌、geoq(智图)
  9. verilog中pullup和pulldown的用法
  10. h5跳转微信公众号文章,小程序,任意站跳转链接制作方法?