51单片机学习笔记(清翔版)(25)——LCD1602和指针
常说的有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和指针相关推荐
- 单片机c语言北航,【下载资料】《51单片机学习笔记》北航版
原标题:[下载资料]<51单片机学习笔记>北航版 如果手机下载有问题,请移步至电脑端,链接:https://forum.mianbaoban.cn/t/topic/36906 内容简介 本 ...
- AutoLeaders控制组——51单片机学习笔记(DS18B20温度传感器、LCD1602、直流电机+PWM)
本篇内容是观看B站江科大自化协UP主的教学视频所做的笔记,对其中内容有所引用,并结合自己的单片机板块进行了更改调整. 以下笔记内容以一个视频为一个片段(内容较多,可能不适合速食,望见谅) 一些内容涉及 ...
- 51单片机学习笔记-1简介及点灯
51单片机学习笔记 文章目录 51单片机学习笔记 1. 51单片机简介 1.1 安装软件 1.2 单片机简介 2. LED灯 2.1点亮一个LED 2.1.1原理分析 2.1.2 创建工程 2.2LE ...
- [51单片机学习笔记TWO]----蜂鸣器
蜂鸣器音乐播放实验 首先应该了解一下蜂鸣器音乐播放的原理,在这里我只讲一下电磁式蜂鸣器驱动原理(还有一种是压电式蜂鸣器): 电磁式蜂鸣器驱动原理: 蜂鸣器发声原理是电流通过电磁线圈,使电磁圈产生磁场来 ...
- AutoLeaders控制组—51单片机学习笔记
文章目录 AutoLeaders控制组-51单片机学习笔记 1.1单片机及开发板介绍 单片机介绍 单片机应用领域 STC89C52单片机 内部结构 开发板介绍 2.1点亮一个Led 新建工程 编程 认 ...
- 51单片机学习笔记2 仿真器的使用及STC89Cxx简介
51单片机学习笔记2 仿真器的使用及STC89Cxx简介) 一.连接步骤 1. 硬件连接 2. 安装软件驱动 3. 检查是否安装成功 二.仿真步骤 1. 打开一个51工程 2. 选择仿真设备 3. S ...
- 51单片机学习笔记5 流水灯实现及蜂鸣器控制
51单片机学习笔记5 流水灯实现及蜂鸣器控制 一.流水灯 1. 硬件电路 2. 代码实现 (1) 点亮一个LED的基本操作 (2) 使用算术左移实现流水灯 (3) 使用库文件左移函数 二.蜂鸣器 1. ...
- 51单片机学习笔记1 简介及开发环境
51单片机学习笔记1 简介及开发环境 一.51单片机 1. STC89C52单片机简介 2. 命名规则 3. 封装 (1)PDIP (2)LQFP (3)PLCC (4)PQFP 二.STC8051结 ...
- 51单片机学习笔记(郭天祥版)(3)——引脚讲解、数码管静态显示、中断系统(外部中断,定时器中断)...
学习引脚的功能 9引脚 复位管脚,当给2个机器周期(24个时钟振荡周期)的高电平时会复位,单片机正常工作时会给0.5v的低电平 VPD备用电源的输入端,当主电源VCC发生故障降低到某一规定的低电平时, ...
最新文章
- java连连看(GUI)
- 微信支付分申请接入流程
- vue实现进度条隐藏_Vue 中使用 NProgress 实现进度条
- 文件系统及软链接和硬链接
- Bezier(贝塞尔)曲线的轨迹规划在自动驾驶中的应用(二)
- 【入门】Spring-Boot项目配置Mysql数据库
- 推荐系统评估:你的推荐系统足够好吗?
- php服务器session共享,PHP实现多WEB服务器共享SESSION的方法(2)
- cboard 图表类型及其配置项扩展
- Ubuntu系统的下载与安装(超详细)
- 解决deepin+win7双系统打不上KB4474419补丁问题
- 中国程序员在德国:海外版抖音火爆,IT 人才稀缺!| 畅言
- 详细的苹果快捷键,赶快保存吧!
- 最全面的Fiddler界面讲解#工作原理#菜单栏#工具栏#底部状态栏#底部自带命令行控制台#session栏#request栏和response栏
- 路由交换接口类型详解——通俗易懂版
- 3.2【微信小程序全栈开发课程】登录功能(一)--实现登录功能
- 主数据管理(MDM)与元数据管理
- 轻松创建天龙八部的场景
- DZ插件制作简易入门教程(自学手记)第一篇
- H5页面卡顿加载慢原因分析