1.液晶1602

硬件原理及连线

图1.1 开发板连线图
图1.2 开发板实物图
图1.3 液晶1602
表格3.7.1.1 引脚功能介绍

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

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

2. 1602液晶的显示地址

LCD1602总共有32个单元,每个都可以显示一个字符或是字母:

表格1.2 液晶地址

3. 1602液晶的操作

读状态 输入:RS=L, R/W=H, E=H 输出: D0~D7=状态字。

读数据 输入:RS=H, R/W=H, E=H 输出:无。

写指令 输入:RS=L, R/W=L, D0~D7=指令码,E=高脉冲,输出:D0~D7=数据。

写数据 输入:RS=H, R/W=L, D0~D7=数据,E=高脉冲,输出:无。

图1.4 写操作时序图
表格1.3 液晶指令
表格1.4液晶常用指令

1602 液晶模块内部的字符发生存储器(CGROM)已经存储了 160 个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是 01000001B(41H) ,显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码, 试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'A'。以下是1602的16进制ASCII码表:

表格1.5 ASCII码表

读的时候,先读上面那列,再读左边那行,如:感叹号!的 ASCII为 0x21,字母 B 的ASCII为 0x42(前面加0x表示十六进制)。

4. 1602液晶静态显示:

主函数中首先初始化 1602 液晶,然后再次清屏,进入主循环,主循环中第一行中通过写字符方式写入“ok” ,然后在第二行写字符串“I love 51 mcu”。

图1.5 程序效果图

5. 1602液晶动态显示:

初始化液晶, 主循环中第一行固定显示 “hello!” , 第二行逐字显示 “I love 51 mcu”

图1.7 程序效果图
图1.6 程序效果图
图1.9 程序效果图

2 LCM12864液晶

硬件原理及连线

2.1 开发板连线图
图2.2 开发板实物图
表格2.1 引脚功能说明

逻辑工作电压(VDD):4.5~5.5V

电源地(GND):0V

工作温度(Ta):-10℃ ~60℃(常温) / -20℃~70℃(宽温)

12864液晶的操作

接口时序:

模块有并行和串行两种连接方法(时序如下):

1 、并行(8位)连接时序图

图2.3 MPU写资料到模块
图2.4 MPU从模块读出资料

2、串行连接时序图

图2.5串行连接时序图

串行数据传送共分三个字节完成:

第一字节:串口控制—格式 11111ABC

A为数据传送方向控制:H表示数据从LCD到MCU,L表示数据从MCU到LCD

B为数据类型选择:H表示数据是显示数据,L表示数据是控制指令

C固定为0

第二字节:(并行)8位数据的高4位—格式 DDDD0000

第三字节:(并行)8位数据的低4位—格式 0000DDDD

串行接口时序参数:(测试条件:T=25℃ VDD=4.5V)

3、用户指令集

指令表1:(RE=0:基本指令集)

具体指令介绍:

1、清除显示

功能:清除显示屏幕,把DDRAM位址计数器调整为“00H”

2、位址归位

功能:把DDRAM位址计数器调整为“00H”,游标回原点,该功能不影响显示DDRAM

3、位址归位

功能:把DDRAM位址计数器调整为“00H”,游标回原点,该功能不影响显示DDRAM功能:执行该命令后,所设置的行将显示在屏幕的第一行。显示起始行是由Z地址计数器控制的,该命令自动将A0-A5位地址送入Z地址计数器,起始地址可以是0-63范围内任意一行。Z地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完一行后自动加一。

4、显示状态 开/关

功能: D=1;整体显示ON C=1;游标ON B=1;游标位置ON

5、游标或显示移位控制

功能:设定游标的移动与显示的移位控制位:这个指令并不改变DDRAM的内容

6、功能设定

功能:DL=1(必须设为1) RE=1;扩充指令集动作 RE=0:基本指令集动作

7、设定CGRAM位址

功能:设定CGRAM位址到位址计数器(AC)

8、设定DDRAM位址

功能:设定DDRAM位址到位址计数器(AC)

9、读取忙碌状态(BF)和位址

功能:读取忙碌状态(BF)可以确认内部动作是否完成,同时可以读出位址计数器(AC)的值

10、写资料到RAM

功能:写入资料到内部的RAM(DDRAM/CGRAM/TRAM/GDRAM)

11、读出RAM的值

功能:从内部RAM读取资料(DDRAM/CGRAM/TRAM/GDRAM)

12、 待命模式(12H)

功能:进入待命模式,执行其他命令都可终止待命模式

13、卷动位址或IRAM位址选择(13H)

功能:SR=1;允许输入卷动位址 SR=0;允许输入IRAM位址

14、反白选择(14H)

功能:选择4行中的任一行作反白显示,并可决定反白的与否

15、睡眠模式(015H)

功能:SL=1;脱离睡眠模式 SL=0;进入睡眠模式

16、扩充功能设定(016H)

功能:RE=1;扩充指令集动作 RE=0;基本指令集动作 G=1;绘图显示ON G=0;绘图显示OFF

17、设定IRAM位址或卷动位址(017H)

功能:SR=1;AC5~AC0为垂直卷动位址 SR=0;AC3~AC0写ICONRAM位址

18、设定绘图RAM位址(018H)

功能:设定GDRAM位址到位址计数器(AC)

12864液晶的基础显示操作

/*------------------------------------------------主程序
------------------------------------------------*/
void main()
{unsigned char i; CGRAM();     //写入自定义字符 while(1){ Init_ST7920();   //初始化//延时30x200ms   for(i=0;i<30;i++)DelayMs(200);LCD_PutString(0,1,"  专注成就专业  ");LCD_PutString(0,2,"  专业成就事业  ");LCD_PutString(0,3,"敬业专业诚信为本");LCD_PutString(0,4,"我们会一直努力! ");    DisplayCGRAM(0,1); //写入自定义图片笑脸DisplayCGRAM(0,2);//延时30x200ms   for(i=0;i<30;i++)DelayMs(200);ClrScreen();          //清屏SetGraphicMode();     //设置成绘图模式LCD_PutGraphic(pic1); //调入一幅图画//延时20x200msfor(i=0;i<20;i++)DelayMs(200);ClrScreen();}
}

主函数开始写入自定义字符,循环中第一部分初始化液晶到字符模式,写入对应的 4 行字符,并写入自定义笑脸符号。延时一段时间后显示第二屏字符。最后一部分调用图片数据,显示图片,然后再从第一部分反复循环显示。

图2.6 程序效果图

源码下载链接

mcutree/MCU-self-study​github.com

后续还将教你制作智能寻迹避障小车等项目,先关注,后面慢慢教你学单片机!

单片机多大的ram才可以带动tft lcd_【单片机自学】7.液晶实验相关推荐

  1. c51单片机有几个终端语言,吃过大亏,才知道要从51单片机入手

    原标题:吃过大亏,才知道要从51单片机入手 在这里,我就不说什么是单片机了,而是说说怎样学单片机,就我个人而言先学51,因为这个单片机在中国市场上发展了几十年了,现在工程中用的比较多的也是MCS-51 ...

  2. 单片机c语言访问片外存储器,教你给51单片机扩展片外RAM

    原标题:教你给51单片机扩展片外RAM 上一文中扩展了单片机的程序存储器,4KB存储空间提升到64KB.其实,4K的代码空间还凑合,但是51自带的256B数据存储空间使用起来还真紧张,其中留给用户的连 ...

  3. 嵌入式--深入理解单片机(一)单片机程序是如何运行起来的以及单片机的ROM和RAM

    目录 一.两种处理器的结构体系 1.哈佛结构体系(Harvard architecture) 2.冯·诺依曼结构体系 3.两种结构的总结 哈佛结构的优势 冯·诺依曼结构的优势 当前很多芯片都是混合结构 ...

  4. 51单片机12864大液晶屏proteus仿真

    51单片机竞赛设计实例程序44例(Proteus仿真资料),可以做参赛设计的参考,可以用来做毕业设计,也可以做项目参考,平时的练习项目,带源码,可以说费了很多时间才集齐的,希望对你们有帮助,闯客网技术 ...

  5. 单片机给大文件做 CRC32 校验

    对文件进行CRC校验,有时候文件比较大,单片机RAM比较小,一次不能把文件全部读到缓冲区里,因此需要分批读取,分批做CRC校验,下面就实现了单片机对大文件进行CRC32校验的功能. tatic uns ...

  6. php 统计页面跳失率,究竟网店各页面的跳失率大小为多少才算正常水平?

    原标题:究竟网店各页面的跳失率大小为多少才算正常水平? 跳失率=页面的跳失人数/页面的访问人数,一个页面好坏与否可以从跳失率的大小作出大致的判断.因此要随时关注网店不同页面的跳失率大小,以便及时发现不 ...

  7. 最新研究报告:大数据 大而恒久才是美

    德勤中国科技.传媒.电信卓越研究中心发布最新研究报告<大数据,大而恒久才是美>.大数据是当前最受瞩目的技术之一,越来越多的企业管理者意识到,大数据将是未来发展的趋势,大数据的广泛应用将改变 ...

  8. 中国推进大数据综合试验区建设 带动经济提质增效

    (原标题:中国推进大数据综合试验区建设 带动经济提质增效) 据经济之声<天下财经>报道,在贵州省成为首个国家级大数据综合试验区后,上个月,京津冀.珠三角.上海市等七个区域获批成为第二批国家 ...

  9. 博主招募令 | 技术大舞台 有才你就来!【微信小程序联盟】

    急急如律令! 『微信小程序联盟官方论坛』 公开招募博主活动开始啦! 技术大舞台~ 有才你就来! 建设论坛,分享技术,小程序联盟官方论坛这个开发者们互动交流的技术大本营,离不开每一位会员的支持和付出,如 ...

最新文章

  1. 六个最佳的软件工程实践(基于构件的体系结构、可视化建模)
  2. 依图科技CEO朱珑:“智能密度”对AI发展意味着什么?
  3. XFS:大数据环境下Linux文件系统的未来
  4. Xamarin的播放音频和视频的媒体管理插件
  5. java中怎么制作单选框_java代码swing编程 制作一个单选按钮的Frame
  6. Spring Bean的一生
  7. 开发人员转售前工程师_工程师和营销人员可以从中学到什么
  8. shell export 命令
  9. SAP License:PO中“最终发票”的应用与理解
  10. CentOS6.7安装Python3.4
  11. 聊聊编码那些事——Unicode,gb2312,cp936,GBK,GB18030
  12. 北京致芯科技STM32F107VC 芯片解密 代烧录
  13. 工行登录企业网银时,如遇“请确认您已插入工商银行U盾证书,或更换端口后再次尝试登录”提示的解决办法
  14. 国内云建设普遍缺失的一环:云管理平台
  15. 最近自己安装CDH5.X版本时发现,CM包和parcels包无法下载了。
  16. 用手机远程控制扫描仪
  17. html传递只能用this,Html中使用JS $(this).attr('action'); 无法获值
  18. Oracle session active 和 inactive 状态 说明
  19. 若依Activiti工作流入门
  20. 《东周列国志》第四十一回 连谷城子玉自杀 践土坛晋侯主盟

热门文章

  1. 灵魂拷问:到底要不要写单元测试,如何正确进行单元测试?
  2. MySQL不香吗,为啥京东放弃它拥抱Elasticsearch?
  3. 连Spring源码都没看过,你怎么敢在简历上写“精通”?
  4. ​【月报】Java知音的三月汇总
  5. 设计模式学习之单例模式
  6. Java一句话获取系统目前年份
  7. 浅入深出Vue:环境搭建
  8. P1217 [USACO1.5]回文质数 Prime Palindromes(技巧+暴力枚举+线性筛)
  9. js 解析url中search时存在中文乱码问题解决方案
  10. Redis学习-string数据类型