常说的有LCD液晶和LED液晶

通常是背光源不同,LCD液晶的液晶面板是LCD的,背光源是荧光灯做的,LED液晶的面板也是LCD做的,背光源是LED灯做的。

看到的这个暗黄色的就是液晶面板,如果没有背光,显示效果就是这样

有背光是下面这种

背光面板就是一个发光源,它的发光把液晶面板上所显示的内容照亮。

LCD的发光体就是这个荧光管。通过背光板扩散均匀,照亮整个液晶面板。

而LED液晶的背光源就是LED灯组成的,由多个LED灯组成的背光源去照亮整个面板。LED显示器基本上已成为主流的了,如液晶电视,手机电脑等。

LCD的动态对比度等各种参数没有LED的做的好。

1602:横着可以显示16个字符(方格),竖着可以显示两行。

显示原理,每个方格里面有很多小格子(横着5个,竖着7个),通过编程让某些显示,某些不显示,来显示我们需要的内容。

1604液晶:横16个字符,竖4行

2004液晶:横20个字符,竖4行

这都不能显示汉字,因为点数不够。当然可以显示很简单的。

12232液晶:122*32个点组成的液晶,横着可以显示122个,竖着32个点

12864液晶:横128,竖64个点

学会了1602,这些基本都是没有什么差别的

这个也是12864,很少见了,实际只有1个硬币那么大。

这种是许多初学者都愿意学的彩屏的液晶。作为51单片机不建议使用,尤其是stc89c52,晶振11.0592MHz,如果要显示这么一张图片可能要接近一分钟的时间,因为图片信息量很大,分辨率也高,每一个像素格子又要由我们确定显示三原色的哪几种。

像增强型51单片机,如stc15,晶振主频是1t的,比我们传统的快12倍,显示这种图片仍然要几秒钟。

像这种液晶一般在嵌入式的32位用。


开始学习,这次不看ppt,直接看中文使用手册。

液晶内部有一个芯片,出来单片机发给它的数据,让液晶面板显示,芯片有一个工作电压要求4.5~5.5V。

一共16个脚

VL:液晶显示偏压信号,对比度调节端。

8个脚传输数据,叫做并行传输。

背光板里面有发光管,也是需要电源的。

外形尺寸就是在我们要设计产品时我们要确定1602的外形尺寸。显示液晶通常是漏在外壳外面的。

还有一个作用是在我们画PCB板是要用到。接上去后不能和旁边的区间冲突

例如第一个读状态,我们根据时序输入完后,然后1602就把1个字节数据发给数据接口,发回的是状态字,返回液晶现在的一个状态,单片机根据状态判断接下来要怎么操作。

我们看状态字,sta0-6返回当前地址指针的数值。

每个方格都有一个对应的地址。

sta7为读写操作使能,读这个液晶忙不忙,如果返回0,就不忙,如果是1,表示液晶正在处理数据,无法接受单片机发给他的数据。

RAM缓冲区意思是我们一共可以送80个字节的数据放在RAM显示区里,但实际能显示的只有00~0F,40~4F,这32个字节,其它的显示不了, 但也是存在RAM里。

但液晶提供了这么一种指令,例如左移显示或者右移显示,例如就把10的内容移到显示区域里显示。

设置了显示模式后,必须开显示,也就是D=1,才能显示。

这里不检测忙不忙,只是延时,然后不管忙不忙都开始写东西,等下我们可以不用这些延时,直接检测忙不忙,不忙才写程序忙就不写。

总线型就是串行,我们不看,我们用的并行的。

这里我们背光源的负极直接接地,没接10欧姆电阻。可以不接。

实际背光调节端我们可以接1.5K电阻接地,就已经很清晰了。设置电位器目的可能是不同厂家的1602,它的电路组成参数可能不一样。

液晶背面有画好的焊盘,没有焊接,厂家预留,为了以后升级或扩展功能用的。

其实这里根据我们使用的这个硬件,根本不用考虑这个时序参数,因为我们硬件处理一次,即一个机器周期的时间1.085us,如果要是使用32位的那些快的单片机就需要考虑了。

我们可以完全按照这个时序,但等下我们稍微精简了下。


每次读写前都先对液晶检测忙不忙,如果不忙才可以操作。

 1 #include <reg52.h>2 3 #define uchar unsigned char4 #define uint  unsigned int5 6 sbit RS=P3^5;7 sbit RW=P3^6;8 sbit EN=P3^4;9
10 //判断液晶忙不忙,如果忙则等待
11 void Read_Busy()
12 {
13     uchar busy;
14     P0=0xff;//1602都是从P0给我们输出数据的,所以为了接收数据的正确性,先把P0全部拉高。
15     RS=0;
16     RW=1;
17     do
18     {
19         EN=1;
20         busy=P0;
21         EN=0;//不使用的时候把使能端释放,为了接下来读写数据,因为都需要高脉冲。
22     }while(busy&0x80);//只判断最高位,如果为1,则忙,就继续判断,直到不忙
23 }
24 //写LCD1602命令,写一个字节
25 void Write_Cmd(uchar cmd)
26 {
27     Read_Busy();//判断忙不忙
28     RS=0;
29     RW=0;
30     P0=cmd;
31     EN=1;
32     EN=0;
33 }
34 //写一个字节数据
35 void Write_Dat(uchar dat)
36 {
37     Read_Busy();
38     RS=1;
39     RW=0;
40     P0=dat;
41     EN=1;
42     EN=0;
43 }
44 void main()
45 {
46     Write_Cmd(0x38);//显示模式16*2
47     Write_Cmd(0x0c);//开显示D=1
48     Write_Cmd(0x06);//地址指针自动加一
49     Write_Cmd(0x01);//清屏
50     Write_Cmd(0x80);//设置数据地址指针
51     Write_Dat(0x48);//0x48:H,显示是以16进制asc码显示,1+'0':1
52     while(1);
53 }

这里1+'0',不能把'0'写成字符串,如:"0",这样会显示g,是一个错误的

如果N=0(地址指针自动减1),这里试了没用,因为清屏后指针效果消除了,所以要放在清屏后面


学习指针

51单片机学习笔记(清翔版)(25)——LCD1602和指针相关推荐

  1. 单片机c语言北航,【下载资料】《51单片机学习笔记》北航版

    原标题:[下载资料]<51单片机学习笔记>北航版 如果手机下载有问题,请移步至电脑端,链接:https://forum.mianbaoban.cn/t/topic/36906 内容简介 本 ...

  2. AutoLeaders控制组——51单片机学习笔记(DS18B20温度传感器、LCD1602、直流电机+PWM)

    本篇内容是观看B站江科大自化协UP主的教学视频所做的笔记,对其中内容有所引用,并结合自己的单片机板块进行了更改调整. 以下笔记内容以一个视频为一个片段(内容较多,可能不适合速食,望见谅) 一些内容涉及 ...

  3. 51单片机学习笔记-1简介及点灯

    51单片机学习笔记 文章目录 51单片机学习笔记 1. 51单片机简介 1.1 安装软件 1.2 单片机简介 2. LED灯 2.1点亮一个LED 2.1.1原理分析 2.1.2 创建工程 2.2LE ...

  4. [51单片机学习笔记TWO]----蜂鸣器

    蜂鸣器音乐播放实验 首先应该了解一下蜂鸣器音乐播放的原理,在这里我只讲一下电磁式蜂鸣器驱动原理(还有一种是压电式蜂鸣器): 电磁式蜂鸣器驱动原理: 蜂鸣器发声原理是电流通过电磁线圈,使电磁圈产生磁场来 ...

  5. AutoLeaders控制组—51单片机学习笔记

    文章目录 AutoLeaders控制组-51单片机学习笔记 1.1单片机及开发板介绍 单片机介绍 单片机应用领域 STC89C52单片机 内部结构 开发板介绍 2.1点亮一个Led 新建工程 编程 认 ...

  6. 51单片机学习笔记2 仿真器的使用及STC89Cxx简介

    51单片机学习笔记2 仿真器的使用及STC89Cxx简介) 一.连接步骤 1. 硬件连接 2. 安装软件驱动 3. 检查是否安装成功 二.仿真步骤 1. 打开一个51工程 2. 选择仿真设备 3. S ...

  7. 51单片机学习笔记5 流水灯实现及蜂鸣器控制

    51单片机学习笔记5 流水灯实现及蜂鸣器控制 一.流水灯 1. 硬件电路 2. 代码实现 (1) 点亮一个LED的基本操作 (2) 使用算术左移实现流水灯 (3) 使用库文件左移函数 二.蜂鸣器 1. ...

  8. 51单片机学习笔记1 简介及开发环境

    51单片机学习笔记1 简介及开发环境 一.51单片机 1. STC89C52单片机简介 2. 命名规则 3. 封装 (1)PDIP (2)LQFP (3)PLCC (4)PQFP 二.STC8051结 ...

  9. 51单片机学习笔记(郭天祥版)(3)——引脚讲解、数码管静态显示、中断系统(外部中断,定时器中断)...

    学习引脚的功能 9引脚 复位管脚,当给2个机器周期(24个时钟振荡周期)的高电平时会复位,单片机正常工作时会给0.5v的低电平 VPD备用电源的输入端,当主电源VCC发生故障降低到某一规定的低电平时, ...

最新文章

  1. java连连看(GUI)
  2. 微信支付分申请接入流程
  3. vue实现进度条隐藏_Vue 中使用 NProgress 实现进度条
  4. 文件系统及软链接和硬链接
  5. Bezier(贝塞尔)曲线的轨迹规划在自动驾驶中的应用(二)
  6. 【入门】Spring-Boot项目配置Mysql数据库
  7. 推荐系统评估:你的推荐系统足够好吗?
  8. php服务器session共享,PHP实现多WEB服务器共享SESSION的方法(2)
  9. cboard 图表类型及其配置项扩展
  10. Ubuntu系统的下载与安装(超详细)
  11. 解决deepin+win7双系统打不上KB4474419补丁问题
  12. 中国程序员在德国:海外版抖音火爆,IT 人才稀缺!| 畅言
  13. 详细的苹果快捷键,赶快保存吧!
  14. 最全面的Fiddler界面讲解#工作原理#菜单栏#工具栏#底部状态栏#底部自带命令行控制台#session栏#request栏和response栏
  15. 路由交换接口类型详解——通俗易懂版
  16. 3.2【微信小程序全栈开发课程】登录功能(一)--实现登录功能
  17. 主数据管理(MDM)与元数据管理
  18. 轻松创建天龙八部的场景
  19. DZ插件制作简易入门教程(自学手记)第一篇
  20. H5页面卡顿加载慢原因分析

热门文章

  1. JS调用本地摄像头拍照(兼容各大浏览器及IE8+)
  2. 程序员健康指南--努力健康起来吧
  3. Excel if else or and 怎么使用(陕西省身份证号码区域划分)
  4. IPv6下的DAD检测
  5. UVA1335-Beijin Guards(二分)
  6. DDD | 领域驱动设计 Vs 敏捷 Vs 面向对象
  7. Linux 编译找不到头文件
  8. Git详细使用说明++
  9. 苹果保修期_苹果手机怎么查看保修期 查询有效保修状态日期方法
  10. JVM堆内存(heap)