(完整版)LCD1602学习总结
LCD1602应用总结

要做的几件事:
1,初始化。
如有自定义的字模,先将字模写入字符发生器ram,即cgram中,存放在哪里有cgram地址设置命令决定。
2,写入指令,确定显示的第一位地址、ddram的地址。
这是对指令寄存器操作,决定在哪里开始显示。
通过ddram地址设置命令实现。
3,写入数据,往显示数据ram即ddram寄存器送ascll码。
确定要显示什么。
这是对数据寄存器操作,决定显示什么字形。
写入的数据是asccl码,由字符发生器产生字模。
如果要显示的是自定义的字形,输出的就不是ascll码了,而是字模在cgram中的地址值。
4,不断送出数据的过程及显示的过程,由淸屏指令刷新显示
5,过程中多出要判断是否忙,d7位高电平则表示忙
Lcd显示只需要说明开始显示的地址,然后不断的送出要显示的数据的ascll码,显示屏自动往后依次显示内容。
即相当于只送依次位选(当然之前要设定光标走向),然后不断送字形即可。
51单片机LCD1602温度检测设计实习报告

51单片机LCD1602温度检测设计实习报告这次实习报告的完整电子文档已经上传到共享资料网站里了,如果你觉得这个实习报告适合里的哇,你可以在最后一段里找下载地址。
一、引言温度传感器在工业控制和日常生活中是很重要的,温度传感器的应用会越来越广泛。
而且向着精确、低功耗、多功能开展。
基于单片机设计的温度传感器精确度较高,因为在程序的执行过程中,任何指令都不影响温度传感器的正常检测,即便程序很长也不会影响中断的时间。
从而,使温度传感器的精度仅仅取决于单片机的产生机器周期电路和定时器硬件电路的精确度。
另外,程序较为简洁,具有可靠性和较好的可读性。
如果我们想将它应用于实时控制之中,只要对上述程序和硬件电路稍加修改,便可以得到实时控制的实用系统,从而应用到实际工作与生产中去。
(qq网名大全)二、课题设计1、根本原理单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,单片机+晶振电路+复位电路,便组成了一个最小系统.但是一般在设计中总是喜欢把按键输入、显示输出等加到上述电路中,成为小系统。
DS18B20温度传感器采用美国DALLAS公司生产的DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
只需要一条口线通信多点能力,简化了分布式温度传感应用无需外部元件可用数据总线供电,电压范围为3.0V至5.5V无需备用电源测量温度范围为-55°C至+125℃。
华氏相当于是-67°F到257华氏度-10°C至+85°C范围内精度为±0.5°C。
LCD1602是工业字符型液晶,能够同时显示16x02即32个字符。
(16列2行)其根本单元是发光二极管。
LED数码管是一类显示屏。
通过对其不同的管脚输入相对的电流,会使其发亮。
从而显示出数字数码管能够显示时间、日期、温度、等所有可用数字表示的参数。
LCD1602知识总结

LCD1602写操作时序:LCD1602读操作时序:1602采用标准的16脚接口,其中: 第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15~16脚:空脚1602液晶模块内部的控制器共有11条控制指令:它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置指令2:光标复位,光标返回到地址00H指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效指令4:显示开关控制。
D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标指令6:功能设置命令DL:高电平时为8位总线,低电平时为4位总线N:低电平时为单行显示,高电平时双行显示F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符指令7:字符发生器RAM地址设置DB5DB4DB3 为字符号,也就是你将来要显示该字符时要用到的字符地址。
(000~111)(能定义八个字符)DB2DB1DB0为行号。
(完整版)LCD1602学习总结

LCD1602液晶屏知识点总结LCD1602的引脚包括数据指令寄存器RS,读写控制寄存器R/W,使能端E,三态数据总线DB0~DB7,电源引脚VDD,VSS,背光正负极A、K,背光调节引脚V0。
1602可以显示2行每行16个共32个5*8或者5*11个字符,这就是1602名字的由来。
1602内部有CGROM、CGRAM、DDRAM。
CGROM是字符发生器ROM,是固化在内部的,共192个字符,包括160个5*7点阵字符,32个5*10点阵字符。
(为什么上面是5*8和5*11,这里不是,因为内部CGROM中的字符没有完全占满可以用的字模)其中部分与ASCII完全一样,所以对于大小写英文字母和数字及部分符号,在编程时可以直接双引号括起来用。
CGRAM是64字节用户可自定义的存储区,可自定义8个5*8或者4个5*11的字符。
DDRAM是控制显示的RAM,想显示什么,就把显示内容的地址放进DDRAM,不过还要设置好显示方式。
DDRAM共80字节,第一行和第二行各40字节。
这40个字节在一次显示时当然不会全部显示,因为屏幕只能显示16个,但在滚动显示时就可以全部显示出来。
LCD1602设定某种地址,接下去读取数据就放在改类地址中,比如设定了CGRAM的地址,那么接下去读取的数据就放在CGRAM中。
R=1时,是数据寄存器,RS=0时,是指令寄存器。
R/W=1时,是读操作,R/W=0时,是写操作。
读操作时,使能端E要保持1,写操作时,下降沿使能。
当RS=0,R/W=0时,是写入命令:1、01H:清除DDRAM的所有单元,光标被移动到屏幕左上角。
<1> 清除液晶显示器,即将DDRAM的内容全部填入"空白"的ASCII码20H;<2> 光标归位,即将光标撤回液晶显示屏的左上方;<3> 将地址计数器(AC)的值设为0。
2、02H或这03H:DDRAM所有单元的内容不变,光标移至左上角。
1602使用的总结

总结这次对于1602显示屏的学习分为三个阶段:查阅资料,电路图的设计,程序的编写,程序的调试。
查阅资料:首先讲述一下我查阅收集资料的途径——网上查找和翻看书籍。
对于一个元器件的学习我们首先要明白它的一些工作原理,以及需要遵守的规则。
这样才能更好地进行程序的编写,在后续的调试中也将会更有针对性的调试,这样节约了时间。
一、电路图的设计:在电路图的设计中利用到了上一次对51单片机学习的内容,其中包含了降压部分、晶振部分、复位部分。
在这里体会到了之前陈老师布置任务是总要的,具有承前启后的作用,这次得到一个证明。
这次的学习中,我们充分利用到了我们手上的元器件。
对于本次1602显示屏的学习我主要是利用同学的开发板以及其自带的1602显示屏进行的学习。
二、程序的编写:分为拼音学号的编写以及汉字的编写。
以下我便分别阐述程序编写。
1、拼音学号的编写——主函数编写,头文件接口设置,延时函数的编写,显示管忙状态的检测,写指令,读数据,写数据,清屏。
1602显示屏资料很齐全,各个部分程序基本上固定,我参照了各个模块进行了编写。
2、汉字的编写——在这里值得一提的是,1602显示屏一般不用于显示汉字,因此编写困难的。
在利用16*16的字模对应于1602的显示规律(对应于本次程序)如下:字模产生的16个数据,前8位奇数部分对应于汉字的左上部分,前八位偶数对应于右上部分;后8位奇数部分对应于汉字的左下部分,后8位偶数对应于右下部分(在字模中前三列以及第八,九,十也进行汉字的不设计)。
第二字的显示同第一个字。
三、程序的调试:开始写好程序后,进行结果的检测时并没有达到预期的效果。
1、其中出现的一个问题就是程序无法进入到显示屏中,经过排查原来是因为显示屏“RS”,“RW”,“EP”这三个总要的接口接在单片机的同一端口上所以使得数据没有进入到显示屏中。
2、在设置连续向左滚动的过程时中间有部分乱码现象。
通过查看资料,在写程序的时候忽略了其左右滚动的周期,出现乱码的原因是设置的滚动周期太短而无法正常显示,当设置为“0x40”来进行循环时,其正常显示,得到了想要的结果——第一行显示“zhanghan ”,第二行显示“20111184022”,并且屏幕内容在短暂停留后继续向左移动进行循环。
LCD1602指令总结

LCD1602指令总结A B C D E10101011110011011111 1.显示模式设置写指令0x38,设置16*2显示,5*7点阵,8位数据接口2.显示开关以及光标设置指令(两条指令)1)、一个字节中8位,其中高5位是固定的,0b00001,低3位用DCB从高到底表示,D = 1表示开显示,D = 0表示关显示;C = 1表示显示光标,C = 0表示不显示光标;B = 1表示光标闪烁,B = 0表示光标不闪烁;2)、高6位是固定的0b000001;低两位用NS表示,其中N = 1表示读或者写一个字符后,指针自动加1,光标自动加1,N = 0表示读或者写一个字符后,指针自动减1,光标自动减1;S = 1表示写一个字符后,整屏显示左移(N = 1)或右移(N = 0),S = 0表示写一个字符后,整屏显示不移动。
指令 1)备注0x0C打开屏幕显示,不显示光标(闪烁与否无关紧要)0x0D打开屏幕显示,不显示光标(闪烁与否无关紧要)0x0E打开屏幕显示,显示光标,光标不闪烁0x0F打开屏幕显示,显示光标,光标闪烁指令 2)备注0x04指针光标自动减1,整屏不移动0x05指针光标自动减1,整屏右移0x06指针光标自动加1,整屏不移动0x07指针光标自动加1,整屏左移3.清屏指令写入0x01表示显示清屏,且是数据指针清零,显示清零;写入0x02表示仅数据指针清零,显示不清零;4.RAM地址设置指令(一般通过自定义函数调用完成)该指令码的最高位为1,低7位为RAM的地址。
第一排起止地址:0x00 - 0x0F;第二排起止地址:0x40 - 0x4F;N S101000x04 201010x05 301100x06 401110x07。
1 LCD1602显示总结
1 LCD1602显示总结使用LCD 1602显示内容时首先要初始化LCD1602的显示模式,然后实现对LCD 1602稳定读/写的函数,包括读状态和写内容,对LCD 1602写内容又包括写指令和写数据。
1.1 LCD1602的初始化可编写专门的初始化函数来实现,函数内容可包含如下:(1)程序运行时,等待约15ms的时间让LCD VDD电压达4.5V。
(2)用编写的LCD写指令函数设置LCD的显示模式,如设置LCD1602用16 x 2显示、5x7点库、使用8位数据端口。
对应送往LCD 1602 8个端口的数据为0x38。
(3)设置LCD开显示模式,是否显示光标,光标是否闪烁。
都设置时8个数据端口的数据为0x0f。
(4)设置LCD读写字符后地址指针、光标位置是否往后增1,屏幕移动与否。
地址指针、光标在读写字符后增1,屏幕不移动时8个端口的数据为0x06。
(5)清屏。
清屏指令为0x01.可在LCD写指令模式设置下写入清屏指令。
清屏指令主要是为了下一次的显示不受上一次显示的干扰。
1.2 LCD1602写指令/数据可专门编写函数来实现。
函数内容可包含如下:(1)检测LCD忙信号:LCD的D7位是否为1,如果此位为1则表示LCD处于忙碌状态,需要等到D7状态位为0时方可进入写指令操作。
(2)设置LCD的RS端口为0来表示对LCD进行指令操作,RW端口为0表示往LCD内写东西。
二者构成往LCD内写指令。
延时等待(时间不长,需参考手册中的时间)保证RS,RW 两端口彻底的到达低电平。
(3)将指令置于LCD的D0-D7位,延时等待保证D0-D7电平得到彻底变化。
(4)将LCD的EN使能位置为1,延时等待其位彻底变高后将EN置为1,使得EN端口得到一个负脉冲。
(5)EN端负脉冲产生LCD就开始将D0-D7上面的指令往LCD里面写入,此时延时等待一段时间(如5ms,合适的时间可以不断的调试得来)当要对LCD写数据时,步骤跟写指令时一样,只是需要在以上步骤中将RS设置为高电平,表示对LCD进行数据操作。
LCD1602的简单使用原理——跟大家分享我学习1602的总结与体会
LCD1602的简单使用原理——跟大家分享我学习1602的总结与体会我的总结主要分为这几部分:①LCD1602的硬件特性及引脚功能②LCD1602的时序特性③LCD1602的使用原理(包括带字库和不带字库的简要使用方法,控制显示指令)④基于FPGA的LCD1602使用案例Part 1. LCD1602的硬件特性及引脚功能LCD1602顾名思义是一种02*16,即为两行十六列的液晶显示屏,液晶两行,每行可以显示16个字符,但是CGRAM及CGROM里面一共有160个字符,包括阿拉伯数字,英文字母大小写,常用符号及日文。
每个字符对应于一个ASCII码值,在液晶显示屏上显示对应的字符时候,只需要将对应的ASCII码写到DDRAM中就好,详细的步骤会在下面细说。
液晶板上排列着5*8的字符点阵,8行,每行5个点位,高电平1就是该点显示,低电平0就是该点不显示。
一、引脚功能:RS,R/W,E控制数据端口DB0~DB7,数据的命令的读写由控制端口控制,并通过数据端口传输。
端口其他特性这里不再赘述,详细见1602液晶手册。
O(∩_∩)O二、硬件特性:①CGRAM 和CGROMCGRAM:character generator ram CGROM:character generator romCGRAM的地址空间:CGRAM的地址是0x40~0x7F, 64个地址空间,每个地址双字节,一共128字节,一个字符是8个字节,所以一共能显示8个自定义字符(每个双字节地址只有一个字节是被自定义字符数据写入的,另外个字节无效,因为CGARM的字符代码的规定,详细原因见下面)字符对应的区位码如下图所示:CGRAM: 字符产生ram,用来存放用户自定义的字符,如上图的两条(1)~(8),区位码为0x00~0x0F.0x00~0x07对应于(1)~(8);0x08~0x0F对应于下一条(1)~(8),虽然看起来有16个地址,但是其实只要8个地址可用,CGRAM的“字符码”规定0~2为地址,3位无效,4~7位全为0,因此CGRAM的字符码等效为0000X111,X为无效位,最后三位的地址只要八个,所以实际能用的只有8个。
数码管和LCD1602学习笔记
1数码管显示数码管的显示有四种方法先介绍一下段驱动和位驱动都都使用74HC573锁存器的方式:数码管共阴极,直接由单片机的P0口驱动/OE LE D /Q0 1 1 1 在允许输入输出时,输入和输出是一样的。
0 1 0 00 0 任意输出上一个状态值,即已经所存的值。
#include <reg51.h>sbit dula=P2^6; //段选信号的锁存器控制sbit wela=P2^7; //位选信号的锁存器控制void main(){dula=0; //置0的时候无理论573输入什么值,输出端都只输出上一个值而与当前输入的值无关,只有置1的一瞬间才会将此刻输入端的值原样输出。
即11脚就像是一个开关,为0关闭输出内容为之前锁存的内容,为1开,输出值就是此刻的输入值。
wela=0;P0=0x4f; //数字“3”的代码dula=1; //段置1将P0口的值输入到锁存器中,dula=0; //锁存数字“3”的代码,LE=0(图中的C)无论输入什么值,输出的结果都是上一个状态值。
P0=0x00; //选中所有的数码管,要想选哪中一位数码管只需要将对应的位选线置0.wela=1;wela=0; //锁存输入的00while(1);}上面的示例是将一个字符显示在一个或者几个数码管上,但是实际的应用却需要在多个数码管上显示出多个字符。
这就需要动态扫描以实现静态显示的效果。
我们已经可以通过程序让任意一位数码管显示任意一种字符,这样我们可以以时间为轴,循环显示每个数码管需要的数值,当循环显示的时间比较小时,眼睛就不能分辨出闪烁,而是看到一个静态的数值显示,2、LCD1602显示可以显示2*16个字符,每个字符是5*7的点阵3脚是背光选择用于调节背光亮度LCD1602功能介绍:提供各种控制命令:清屏、字符闪烁、光标闪烁、显示移位80字节显示数据存储器DDRAM192个5*7点阵的字节字符发生器CGROM8个可由用户自定义的字符发生器CGRAM读状态值的目的就是要判断1602是否在工作STA7-=1时不能对其读写。
AVR单片机学习笔记–LCD1602模块
AVR 单片机学习笔记–LCD1602模块学完51单片机再来学AVR,感觉很容易上手,LCD1602在学51的时候学过,所以可以直接修改相关的IO口操作即可。
现在顺便也复习一下。
1602可以显示两行字符,每行可以显示16个字符,可惜的是不能显示中文,在我调试的时候它帮我不少的忙。
一、主要技术参数:显示容量:16X2个字符(两行,每行16个字符)模块工作电源:4.5~5.5V模块工作电流:2.0mA (5.0V)模块最佳工作电源:5.0V字符尺寸:2.95X4.35(WXH)mm二、IO引脚功能LCD1602A模块引脚功能编号符号引脚说明编号符号引脚说明1VSS电源地(模块供电)9D2Data I/O2VDD电源正极(模块供电) 10D3Data I/OVL接在滑动电阻可以调节对比度 11D4Data I/O4RS数据/命令选择端 (H/L)12D5Data I/O5R/W读/写选择端 (H/L)13D6Data I/O6E使能信号(通知芯片读取数据) 14Data I/O7D0Data I/O15BLA模块背光灯正极8D1Data I/O16BLK模块背光灯负极三、基本操作时序:读状态:输入:RS=L、RW=H、E=H模块输出:状态字=D0~D7写指令:输入:RS=L、RW=L、D0~D7=指令码、E=H 模块输出:无读数据:输入:RS=H、RW=H、E=H模块输出:数据=D0~D7写数据:输入:RS=H、RW=L、D0~D7=数据、E=H 模块输出:无状态字说明(因为单片机的速度可能快过1602,所以需要判断当1602是否在忙,或者延时。
)STA7STA6STA5STA4STA3STA2STA1STA0D7D6D5D4D3D2D1D0STA0-6:当前数据地址指针的数值STA7主要用来检查1602模块的是否可以写入或读出操作 1:禁止 0:允许四、指令说明(这指令是用来设置1602显示的方式)显示模式设置指令码功能111设置16X2显示,5X7点阵,8位数据接口显示开/关及光标设置指令码功能1DCBD=1 开显示D=0 关显示C=1 显示光标C=0 不显示光标B=1 光标闪烁B=0 光标不闪烁1NSN=1 当读或写一个字符后地址指针加1,且光标加1(即从左往右显示)N=0 当读或写一个字符后地址指针减1,且光标减1(即从右往左显示)S=1 当写一个字符,中国男排显示左移(N=1)五、时序图写操作(写指令、写数据)时序图时序参数写指令时序,RS拉低表示写指令,R/W拉低表示写操作,给DB0-DB7赋值指令数据并保持>;40ns时间,将E 拉高表示数据已经准备好保持>;150ns让1602读取,将E 拉低,并延时>;10ns一次写操作完毕。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LCD1602液晶屏知识点总结
LCD1602的引脚包括数据指令寄存器RS,读写控制寄存器R/W,使能端E,三态数据总线DBO〜DB7,电源引脚VDD, VSS,背光正负极A、K,背光调节引脚V0。
1602可以显示2行每行16个共32个5*8或者5*11个字符,这就是1602名字的由来。
1602内部有CGROM、CGRAM、DDRAM。
CGROM是字符发生器ROM,是固化在内部的,共192个字符,包括160个5*7点阵字符,32个5*10点阵字符。
(为什么上面是5*8和5*11,这里不是,因为内部CGROM中的字符没有完全占满可以用的字模)其中部分与ASCII完全一样,所以对于大小写英文字母和数字及部分符号,在
编程时可以直接双引号括起来用。
CGRAM是64字节用户可自定义的存储区,可自定义8个5*8或者4个5*11的字符。
DDRAM是控制显示的RAM,想显示什么,就把显示内容的地址放进DDRAM,不过还要设置好显示方式。
DDRAM共80字节,第一行和第二行各40字节。
这40个字节在一次显示时当然不会全部显示,因为屏幕只能显示16个,但在滚动显示时就可以全部显示出来。
LCD1602设定某种地址,接下去读取数据就放在改类
地址中,比如设定了CGRAM的地址,那么接下去读取的数据就放在CGRAM中。
由于写数据时最高位必须为1所以实际地址是:
R=1时,是数据寄存器,RS=0时,是指令寄存器。
R/W=1时,是读操作,R/W=0时,是写操作。
读操作时,使能端E要保持1,写操作时,下降沿使能。
当RS=0,R/W=0 时,是写入命令:
1、01H :清除DDRAM的所有单元,光标被移动到屏幕左上角
<1>清除液晶显示器,即将DDRAM的内容全部填入"空白"的ASCII码20H;
<2>光标归位,即将光标撤回液晶显示屏的左上方;
<3>将地址计数器(AC)的值设为0
2、02H或这03H : DDRAM 所有单元的内容不变,光标移至左上角0
<1>把光标撤回到显示器的左上方;
<2>把地址计数器(AC)的值设置为0;
<3>保持DDRAM的内容不变
3、输入方式设置(EnterModeSet ),这些指令规定了两个方面:一是写入一个DDRAM单元后,地址指针
如何改变(加一还是减一);二是屏幕上的内容是否滚动。
04H :写入DDRAM后,地址指针减一,比如第一个字符写入8FH,则下一个字符会写入8EH;屏幕上的内
容不滚动。
05H:写入DDRAM后,地址指针减一,同上一种情况;每一个字符写入以后,屏幕上的内容向右滚动一个字符位。
06H :写入DDRAM后,地址指针加一,比如第一个字符写入80H,则下一个字符会写入81H ;屏幕上的
内容也是不滚动。
这应该是最常用的一种显示方式
07H :写入DDRAM后,地址指针加一,同上一种情况;每一个字符写入以后,屏幕上的内容向左滚动一个字符位。
功能:设定每次定入1位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。
参数设定的情况如下所示:
I/D 0= 写入新数据后光标左移1= 写入新数据后光标右移
S 0= 写入新数据后显示屏不移动1= 写入新数据后显示屏整体右移1个字4、屏幕
开关、光标开关、闪烁开关。
4、显示开关控制指令:08H、09H、0AH、0BH :关闭显示屏,实质上是不把DDRAM中的内容对应显示在屏幕上,对DDRAM的操作还是在进行的,执行这条指令,接着对DDRAM进行写入,
屏幕上没有任何内容,但是接着执行下面的某条指令,就能看到刚才屏幕关闭期间,对了。
DDRAM操作的效果
OCH :打开显示屏,不显示光标,光标所在位置的字符不闪烁。
ODH :打开显示屏,不显示光标,光标所在位置的字符闪烁。
0EH :打开显示屏,显示光标,光标所在位置的字符不闪烁。
0FH:打开显示屏,显示光标,光标所在位置的字符闪烁。
关于光标的位置:光标所在的位置指示了下一个被写入的字符所处的位置,加入在写入下一个字符前没有通过指令设置DDRAM的地址,那么这个字符就应该显示在光标指定的地方。
功能:控制显示器开/关、光标显示/关闭以及光标是否闪烁。
参数设定的情况如下:
位名设置
D0=显示功能关 1 =显示功能开
C0=无光标 1 =有光标
B0=不闪烁 1 =闪烁
5、设置光标移动(本质就是AC的增加还是减少)、整体画面是否滚动。
10H :每输入一次该指令,AC就减一,对应了光标向左移动一格。
整体的画面不滚动。
14H :每输入一次该指令,AC就加一,对应了光标向右移动一格。
整体的画面不滚动。
18H :每输入一次该指令,整体的画面就向左滚动一个字符位。
1CH :每输入一次该指令,整体的画面就向右滚动一个字符位。
画面在滚动的时候,每行的首尾是连在一起
的,也就是每行的第一个字符,若左移25次,就会显示在该行的最后一格。
在画面滚动的过程中,AC的值
也是变化的。
功能:使光标移位或使整个显示屏幕移位。
参数设定的情况如下:
S/C R/L 设定情况
0 0 光标左移1格,且AC值减1
光标右移1格,且AC值加1
显示器上字符全部左移一格,但光标不动
1 1 显示器上字符全部右移一格,但光标不动
6、显示模式设定指令,设定了显示几行,显示什么样的点阵字符,数据总线占用几位
20H : 4位总线,单行显示,显示 5 X7的点阵字符
24H : 4位总线,单行显示,显示 5 X10的点阵字符
28H: 4位总线,双行显示,显示 5 X7的点阵字符
2CH : 4位总线,双行显示,显示 5 X10的点阵字符
30H : 8位总线,单行显示,显示 5 X7的点阵字符
34H : 8位总线,单行显示,显示 5 X10的点阵字符
38H : 8位总线,双行显示,显示 5 X7的点阵字符。
这是最常用的一种模式
3CH : 8位总线,双行显示,显示 5 X10的点阵字符
数据总线位数、显示的行数及字型。
参数设定的情况如下:
位名设置
DL0=数据总线为4位 1 =数据总线为8位
N0=显示1行 1 =显示2行
F0=5X7点阵/每字符1=5X10点阵/每字符
可以用于显示自定义字符
N=1,两行显示,第一行A6〜AO=OOH〜27H,第二行A6〜A0=40H〜67H(这里很奇怪,查到的资料写的是:第- 行
A6~A0=00H~2FH,第二行一样,这样就超过了80字节,我觉得应该是有误的),当然以上地址都是要加80H的。
不设置DDRAM直接写出内部字符的地址,也可以显示字符,写入内部字符的二进制代码。
9、读取忙信号或者AC地址指令
功能:
<1>读取忙碌信号BF 的内容,BF=1表示液晶显示器忙,暂时无法接收单片机送来的数据或指令 当BF=O 时,液晶显示器可以接收单片机送来的数据或指令 ;
<2>读取地址计数器(AC )的内容。
10、数据写入DDRAM 或者CGRAM 指令一览
功能:读取 DDRAM 或CGRAM 中的内容。
基本操作时序: 读状态 输
入:
RS=L ,RW=H ,E=H
输出:DB0 - -DB7=状态字
写指令 输入: RS=L , RW=L ,E=下降沿脉冲, DB0 - -DB7=指令码
输出:无
读数据 输入:
RS=H ,RW=H ,E=H
输出:DB0 - -DB7=数据
写数据 输入:
RS=H ,RW=L ,E=下降沿脉冲,
DB0 -
丿DB7=数据 输出:无
关于自定义字符:
自定义字是放在内部 CGRAM 中,查看内部字符表可以看到,从地址 00000000〜00000111 共八个字节,使 用时先写入CGRAM 设置指令,然后往里面放入字模,要显示时,设置 DDRAM 地址,将0x00〜0x08的地址放
入就OK 。