MCS-51单片机接口技术3(液晶1602)

合集下载

单片机1602液晶显示原理

单片机1602液晶显示原理

单片机1602液晶显示原理
首先,从硬件连接方面来看,单片机与1602液晶显示器之间的连接通常需要16个引脚。

这些引脚包括数据总线(D0-D7)、控制引脚(RS、RW、E)以及电源和地线。

数据总线用于传输要显示的数据,而控制引脚用于控制液晶显示器的工作状态。

单片机通过这些引脚与液晶显示器进行通信,从而实现对显示内容的控制。

其次,从工作原理方面来看,单片机控制1602液晶显示器的基本原理是利用单片机的IO口向液晶显示器发送指令和数据。

当单片机需要在液晶显示器上显示内容时,首先需要向液晶显示器发送控制指令,如清屏、定位光标等,然后再发送要显示的数据。

液晶显示器接收到指令和数据后,根据单片机发送的信号来控制液晶显示器的内部驱动电路,从而在屏幕上显示相应的内容。

总的来说,单片机1602液晶显示原理涉及到单片机与液晶显示器之间的硬件连接和通信协议。

通过单片机向液晶显示器发送指令和数据,实现对液晶显示器显示内容的控制。

这样的设计使得单片机能够方便地控制液晶显示器,实现各种复杂的显示效果。

基于MCS-51单片机的液晶显示设计

基于MCS-51单片机的液晶显示设计

基于MCS-51单片机的液晶显示设计随着科技的不断发展,电子产品的智能化和小型化需求越来越迫切,因此单片机成为了不可或缺的主要元器件之一。

在众多单片机中,MCS-51单片机由于性能稳定默默无闻地成为了不少工程师的首选。

液晶显示器则是我们日常生活中不可或缺的显示元件之一。

MCS-51单片机设计时可以采用液晶显示来呈现一些基本的信息,如时间、日期、温度、湿度等。

首先需要选择一个适合的液晶模块,本设计选择了1602带背光的液晶模块,其具有亮度高、阅读方便、光学效果好的特点。

当选购好液晶模块之后,需要连接到MCS-51单片机上。

最基本的设计连接如下:- 1602的VSS接地。

- 1602的VDD接+5V电源。

- 1602的VO接一个0-5V变移电位器的中间点,并将其中一端连VSS,另一端接VDD即可。

- 1602的RS与单片机的P1.0相连。

- 1602的RW接地,表示写。

- 1602的E与单片机的P1.1相连。

- 1602的D0-D3不接。

然后就可以开始编写程序。

本设计采用Keil C编译器编写,程序如下:```#include<reg52.h>#define LCD_data P0 // 数据口定义sbit rs = P1^0; //RS接口sbit rw = P1^1; //RW接口sbit en = P1^2; //EN接口void init(); // 初始化函数void write_command(unsigned char command); // 向液晶显示屏写指令函数void write_char(unsigned char dat); // 向液晶显示屏写数据函数void delay_5us(); // 等待函数void delay_do(unsigned char i); // 延时函数/** 初始化函数 **/void init(){write_command(0x38); // 在两行八列的模式下显示。

51单片机实现电子时钟功能-1602液晶显示

51单片机实现电子时钟功能-1602液晶显示

第一章设计要求及系统组成一、基本操作时序:读状态:输入:RS=L,RW=H,E=H 输出:D0~D7=状态字写指令:输入:RS=L,RW=L,D0~D7=指令码,E=高脉冲输出:无读数据:输入:RS=H,RW=H,E= 高脉冲输出:D0~D7数据写数据:输入:RS=H,RW=L。

D0~D7=数据,E=高脉冲输出:无二、、、状态字说明:STA7 D7\ STA6 D6\ STA5 D5 \ STA4 D4 \STA3 D3 \ STA2 D2\\ STA1 D1STA0-6:当前数据地址指针的数值STA7:读写操作使能 1表示禁止,0表示允许对控制器每次进行读写操作之前,都必须进行读写检测,确保STA7为0;但是我们可以进行延时进行实现。

RAM地址映射: LCD 16字*2行00 01 02 03 04 05 06 07 08 08 09 0A 0B 0C 0D 0E 0F (27)40 41 42 4F 50 (67)指令说明:1.初始化设置 1.显示模式设置指令码:00111000(0x38)功能:设置16*2显示,5*7点阵,8位数据接口必须开显示 2.显示开、关及光标设置指令码:00001DCB,功能:D=1 开显示;D=0 关显示;C=1显示光标;B=1 光标闪烁;B=0 光标不显示 000001NS:功能:N=1当读或写一个字符后地址指针加1,且光标加1;N=0相应的减1;S=1当写一个字符,整屏显示左移(N=1)或右移(N=0),以得到光标不移动而屏幕移动的效果。

S=0 当写一个字符,正屏显示不移动。

数据控制:控制器内部设有一个数据地址指针,用户可通过它们来访问内部的全部80字节RAM4.2.1 数据指针设置:指令码:80H+地址码(0-27H,第二行开始:40H-67H) 4..2.2 读数据,写数据其它设置:01H:显示清屏:1.数据指令清零 2 所有显示清零 02H:显示回车:1.数据清零如何进行连接:实际操作中,液晶接到,第一管脚是D,第二管脚是VCC,15和16是背光,D0-D7是数据口,接到单片机的P0口,P0口接了两个锁存器,液晶,D/A,具有高阻状态的都可以随便接,没有影响,,第六管脚是LCDEN相当于 E,使能信号,它接P3^4,R/W接地,表示低电平,因为我们只进行写操作,RS接2实验板上的P3^5;只需这两端口便足以控制液晶,2和3是偏压信号,一端接地,接口信号说明:编号:1 VSS(符号表示)电源地(引脚说明)2VDD 电源正极3VL液晶显示偏压信号4RS数据/命令选择端(H/L)5R/W 读写选择端(H/L)6E使能信号7D0 Data 1/0 8D1 Data 1/0 9 D2 Data 1/0 10 D3 Data 1/0 11D4 Data 1/0 12D5 Data 1/0 13D6 Data 1/0 14D7 Data 1/0 15BLK背光源正极16 BLK背光源负极实际操作:::先写光标程序;写两个子程序,一个写数据,一个写指令:先进性两个宏定义,再位申明LCDEN与RS;为了电量充足。

LCD1602与MCS-51单片机的接口

LCD1602与MCS-51单片机的接口

LCD1602与MCS-51单片机的接口液晶显示器(LCD)具有工作电压低、微功耗、显示信息量大和接口方便等优点,现在已被广泛应用于计算机和数字式仪表等领域,成为测量结果显示和人机对话的重要工具。

液晶显示器按其功能可分为三类:笔段式液晶显示器、字符点阵式液晶显示器和图形点阵式液晶显示器。

前两种可显示数字、字符和符号等,而图形点阵式液晶显示器还可以显示汉字和任意图形,达到图文并茂的效果,其应用越来越广泛。

本节将以RT-1602C液晶显示模块为例,介绍液晶显示器的结构和功能,讨论其与MCS-51单片机的硬件接口电路及软件编程方法。

7.1.1 LCD1602概述LCD1602是2 16字符型液晶显示模块,可以显示两行,每行16个字符,采用5×7点阵显示,工作电压4.5~5.5V,工作电流2.0mA(5.0V),其控制器采用HD44780液晶芯片(市面上字符液晶显示器的控制器绝大多数都是基于HD44780液晶芯片,它们的控制原理是完全相同的)。

LCD1602可采用标准的14引脚接口或16引脚接口,多出来的2条引脚是背光源正极BLA(15脚)和背光源负极BLK(16脚),其外观形状如图7.1所示。

(a) 正面(b) 背面图7.1 RT-1602C的外观(a)图是LCD1602的正面,(b)图LCD1602的背面。

标准的16引脚接口如下:第1脚:V SS,电源地。

第2脚:V DD,+5V电源。

第3脚:V EE,液晶显示对比度调整输入端。

接正电源时对比度最弱,接地时对比度最高。

使用时通常通过一个10K的电位器来调整对比度。

第4脚:RS,数据/命令选择端,高电平时选择数据寄存器,低电平时选择指令寄存器。

第5脚:R/W,读/写选择端,高电平时进行读操作,低电平时进行写操作。

当RS和R/W共同为低电平时,可以写入指令或者显示地址;当RS为低电平、R/W为高电平时,可以读忙信号;当RS为高电平、R/W为低电平时,可以写入数据。

51单片机的1602计算器

51单片机的1602计算器

51单片机的1602计算器一、51 单片机和 1602 液晶显示屏简介51 单片机是指英特尔公司生产的 8051 系列单片机,它具有丰富的资源,包括 I/O 端口、定时器、中断等。

通过编程,可以让 51 单片机完成各种复杂的任务。

1602 液晶显示屏是一种字符型液晶显示模块,它能够显示两行,每行 16 个字符。

1602 液晶显示屏的控制方式相对简单,通过发送特定的指令和数据,就可以实现字符的显示。

二、硬件设计要实现 51 单片机的 1602 计算器,首先需要进行硬件设计。

硬件部分主要包括 51 单片机最小系统、1602 液晶显示屏、按键等。

51 单片机最小系统通常包括单片机芯片、晶振电路和复位电路。

晶振电路为单片机提供时钟信号,复位电路则保证单片机能够正常启动。

1602 液晶显示屏与51 单片机的连接需要用到一些数据线和控制线。

数据线用于传输要显示的数据,控制线用于控制显示屏的工作状态。

按键用于输入数字和运算符,常见的按键有数字键 0 9 、运算符+、、、/以及等于号=等。

三、软件编程软件编程是实现 51 单片机 1602 计算器的关键。

在编程过程中,需要实现以下几个主要功能:1、初始化 1602 液晶显示屏在程序开始时,需要对 1602 液晶显示屏进行初始化,设置显示模式、光标显示等。

2、按键扫描通过不断扫描按键状态,获取用户输入的数字和运算符。

3、数据处理根据用户输入的数字和运算符,进行相应的计算,并将结果存储起来。

4、显示结果将计算结果显示在 1602 液晶显示屏上。

```cinclude <reg52h> //包含 51 单片机的头文件//定义 1602 液晶显示屏的控制引脚sbit RS = P2^0;sbit RW = P2^1;sbit EN = P2^2;//定义 1602 液晶显示屏的数据引脚sbit D0 = P0^0;sbit D1 = P0^1;sbit D2 = P0^2;sbit D3 = P0^3;sbit D4 = P0^4;sbit D5 = P0^5;sbit D6 = P0^6;sbit D7 = P0^7;//定义按键引脚sbit key0 = P1^0;sbit key1 = P1^1;sbit key2 = P1^2;sbit key3 = P1^3;sbit key4 = P1^4;sbit key5 = P1^5;sbit key6 = P1^6;sbit key7 = P1^7;sbit key8 = P3^0;sbit key9 = P3^1;sbit key_add = P3^2;sbit key_sub = P3^3;sbit key_mul = P3^4;sbit key_div = P3^5;sbit key_eq = P3^6;//定义变量unsigned char num1, num2, op, result;unsigned char flag = 0; //标志位,用于判断输入状态//写指令函数void write_command(unsigned char command){RS = 0;RW = 0;EN = 0;P0 = command;EN = 1;EN = 0;}//写数据函数void write_data(unsigned char data){RS = 1;RW = 0;EN = 0;P0 = data;EN = 1;EN = 0;}//初始化 1602 液晶显示屏函数void init_1602(){write_command(0x38);// 8 位数据,2 行显示,5x7 点阵write_command(0x0c);//显示开,光标关,闪烁关write_command(0x06);//字符右移,地址指针加 1 write_command(0x01);//清屏}//按键扫描函数void key_scan(){if (key0 == 0){delay_ms(10);//消抖if (key0 == 0){if (flag == 0){num1 = num1 10 + 0;write_data('0');}else{num2 = num2 10 + 0;write_data('0');}}while (!key0);//等待按键松开}//其他按键扫描类似}//计算函数void calculate(){switch (op){case '+':result = num1 + num2;break;case '':result = num1 num2;break;case '':result = num1 num2;break;case '/':if (num2!= 0)result = num1 / num2;elsewrite_data('E');//除数为 0 ,显示错误break;}}//主函数void main(){init_1602();while (1){key_scan();if (key_add == 0 || key_sub == 0 || key_mul == 0 ||key_div == 0){delay_ms(10);//消抖if (key_add == 0){op ='+';flag = 1;write_data('+');}//其他运算符处理类似}if (key_eq == 0){delay_ms(10);//消抖if (key_eq == 0){calculate();write_data(result);num1 = 0;num2 = 0;flag = 0;}}}}```上述代码只是一个简单的示例,实际应用中还需要进行更多的优化和完善,比如处理输入错误、添加更多的功能等。

基于51单片机的1602LCD显示

基于51单片机的1602LCD显示

标签:单片机LCD基于51单片机的1602LCD显示基于51单片机的1602LCD显示LCD(liquid crystal display)为液晶显示器,它一般不会单独使用,而是将LCD面板、驱动与控制电路组合成LCD模块(1iquid crystal display moulde,简称为LCM)来使用。

LCM是一种很省电的显示设备,常被应用在数字或微处理器控制的系统,做为简易的人机接口,但人们一般还是习惯称之为LCD显示器。

1 硬件设计采用51单片机控制1602LCD显示器的电路如下所示。

在桌面上双击图标,打开ISIS 7 Professional窗口(本人使用的是v7.4 SP3中文版)。

单击菜单命令“文件”→“新建设计”,选择DEFAULT 模板,保存文件名为“LCD.DSN”。

在器件选择按钮中单击“P”按钮,或执行菜单命令“库”→“拾取元件/符号”,添加如下表所示的元件。

51单片机AT89C51 一片晶体CRYSTAL 12MHz 一只瓷片电容CAP 22pF 二只电解电容CAP-ELEC 10uF 一只电阻RES 10K 一只排阻RESPAC-8 10K 一只1602液晶显示器LM016L 一只若用Proteus软件进行仿真,则上图中的晶振和复位电路以及U1的31脚,都可以不画,它们都是默认的。

在ISIS原理图编辑窗口中放置元件,再单击工具箱中元件终端图标,在对象选择器中单击POWER和GROUND放置电源和地。

放置好元件后,布好线。

左键双击各元件,设置相应元件参数,完成电路图的设计。

2 软件设计用1602LCD显示两行字符的流程图如下所示。

用1602LCD显示“Welcom to China”和“Hi!Good morning!”的详细C51程序如下。

//用LCD循环显示"Welcome to China"和"Hi!Good morning!"#include<reg51.h> //包含单片机的头文件#include<intrins.h> //包含_nop_()函数定义的头文件sbit RS="P2"^0; //寄存器选择位,将RS位定义为P2.0引脚sbit RW="P2"^1; //读写选择位,将RW位定义为P2.1引脚sbit E="P2"^2; //使能信号位,将E位定义为P2.2引脚sbit BF="P0"^7; //忙碌标志位,,将BF位定义为P0.7引脚unsigned char code string[ ]={"Welcome to China"};unsigned char code string1[ ]={"Hi!Good morning!"};/*************************************************函数功能:延时1ms(3j+2)*i=(3×33+2)×10=1010(微秒),可以认为是1毫秒*************************************************/void delay1ms(){unsigned char i,j;for(i=0;i<10;i++)for(j=0;j<33;j++);}/*****************************函数功能:延时若干毫秒入口参数:n******************************/void delay(unsigned char n){unsigned char i;for(i=0;i<n;i++)delay1ms();}/*******************************************函数功能:判断液晶模块的忙碌状态返回值:result。

51单片机驱动1602液晶(4线串行)

51单片机驱动1602液晶(4线串行)

51单片机驱动1602液晶(4线串行) 2015-06-26 12:04:01 来源:51hei关键字:51单片机1602液晶4线串行/*单片机I/O 口使单片机资源的重要组成部分,也是用来扩展外围设备的必选资源,尽可能以更少的I/O口实现更多的功能是单片机工程师追求的目标,现在的一些串行器件也为这一目标的实现添加了更多的可能性,比如I2C总线,MAXIM力推的1-WIRE等等,都可以以很少的I/O口实现更多的功能,当然这是以降低一定的速度为代价的。

废话少说,进入正题。

显示器件多见的是LED数码管,LCD液晶屏等。

一般的数码管成本低廉,在显示内容要求不多的时候适用;LCD液晶屏以更多的显示空间得到了许多人的爱好,不过成本上要高的多(市场价在20元左右),本文以LCD1602为例说明如何驱动液晶屏。

LCD1602外接的控制接口有RS,R/W,E;数据接口为DB7--DB0。

总共有11跟线与单片机的I/O口连接,若使用标准的51单片机,至少占用了一个端口再加上另一个端口的部分I/O口。

这再很多应用场合是不大可取的。

所以很有必要减少连接数。

从其数据手册上介绍的4线连接方式可以达到只使用7个I/O口即可满足要求,其中为3个控制口RS,R/W,E和数据口的DB7--DB4;写入数据或指令的顺序是先写高半个字节,再写低半个字节。

其中P0口的高四位接到LCD1602的DB7-DB4,P3.0-P3.1分别接RS,R/W,E;下面给出驱动源程序*/#include <reg52.h>#include "intrins.h"#define uint unsigned int#define uchar unsigned char#define TRUE 1#define FALSE 0#define nop _nop_()#define PtData P0 //定义连接口线,#define PtContr P3sbit RS="PtContr"^0;sbit RW="PtContr"^1;sbit E="PtContr"^2;void InitialLcd();void WriteLcdInstr(uchar);void WriteLcdData(uchar);void CheckLcdBusy();uchar HexToDdram(uchar);void Delay(unsigned int);main(){Delay(1000);InitialLcd();WriteLcdInstr(0x80); WriteLcdData('e');WriteLcdData('l');WriteLcdData('k');WriteLcdData('e');WriteLcdData('l');WriteLcdData('i');WriteLcdData('k');WriteLcdData('e');WriteLcdInstr(0xc0); WriteLcdData('L');WriteLcdData('C');WriteLcdData('D');WriteLcdData('1');WriteLcdData('6');WriteLcdData('0');WriteLcdData('2');while(1){WriteLcdInstr(0x0f);Delay(30000);WriteLcdInstr(0x08);Delay(40000);}}//----------------LCD1602函数---------------------////---初始化void InitialLcd(){Delay(600);//延时应大于15ms,不同的晶振使需要修改,本程序再6M下调试通过RS=0;RW=0;nop;E=0;nop;E=1;nop;PtData=0x20;//nop;E=0;Delay(200);//延时应大于4.1msE=1;nop;PtData=0x20;//nop;E=0;Delay(5);//延时应大于100usE=1;nop;PtData=0x20;//nop;E=0;//设置4位操作;WriteLcdInstr(0x01);//清屏WriteLcdInstr(0x28);//设置4位操作,1行显示,5x8WriteLcdInstr(0x02);//光标归位WriteLcdInstr(0x06);//AC自动加1,画面不动WriteLcdInstr(0x0f);//0x0f:光标闪烁开;}//---写指令void WriteLcdInstr(uchar Temp){CheckLcdBusy();RS=0;RW=0;E=0;nop;PtData=Temp;nop;E=0;nop;E=1;nop;PtData=(Temp<<4);nop;E=0;nop;}//---写数据void WriteLcdData(uchar Temp) {CheckLcdBusy();RS=1;RW=0;E=0;nop;E=1;nop;PtData=Temp;nop;E=0;nop;E=1;nop;PtData=(Temp<<4);nop;E=0;nop;}//---查忙void CheckLcdBusy(){uchar Temp,t;PtData=0xff;RW=1;RS=0;nop;E=0;nop;do{nop;E=1;nop;Temp=PtData;nop;nop;nop;E=0;nop;nop;t=PtData;nop;nop;nop;E=0;nop;nop;Temp&=0x80;}while(Temp==0x80);}//---delayvoid Delay(unsigned int N) {unsigned int i;for(i=0;i<N;i++){i=i;}}。

菜鸟学习51单片机之1602液晶

菜鸟学习51单片机之1602液晶

菜鸟学习51单片机----1602液晶其中的硬件连接我就不讲了,现在主要看我么要操作的几个引脚:RS(命令数据选择引脚,高电平是数据,低电平是命令),RW(读写控制引脚,高电平是读,低电平是写),E(使能端,高电平使能,低电平关使能)。

DB0---DB7是8位数据脚。

在提供的仿真图中,RS,RW,E 分别接到单片机的P3.0P3.1P3.2引脚,数据脚DB0--DB7接在P1的8个脚上。

硬件介绍完了,那开始讲解如何去操作它,怎么去控制1602液晶。

先看两个时序图,根据时序图来写出两个函数。

写数据和写命令函数:{uint16i,j;for(i=0;i<xms;i++)for(j=0;j<110;j++);}基本的函数完成后就开始对液晶进行初始化。

但是怎么去初始化呢,现在就要对照着1602的指令来分析。

现在对上面的一个个分析:上面的各项中RS和RW列的都是0表示是写命令所以在初始化中,就是通过写命令对液晶进行基本的设定。

1.清显示:根据表格中的信息,清显示的指令就是0x012.光标返回在初始化中不用3.输入模式I/D位如果是0则表示写入数据后光标左移,如果是1则是写入数据后光标右移。

S如果是0则表示写入数据后屏幕显示不移动,如果是1则表示写入数据后屏幕整体右移一个字。

一般设为0x064.控制显示器开/关、光标显示/关闭以及光标是否闪烁。

参数设定的情况如下:位名设置D0=显示功能关1=显示功能开C0=无光标1=有光标B0=光标不闪烁1=光标闪烁,一般设为,0x0c5.使光标移位或使整个显示屏幕移位。

参数设定的情况如下:S/C R/L设定情况00光标左移1格,且AC值减101光标右移1格,且AC值加110显示器上字符全部左移一格,但光标不动11显示器上字符全部右移一格,但光标不动(这个初始化不涉及光标和移位,所以不设定这个)6.位名设置DL0=数据总线为4位1=数据总线为8位N0=0=显示1行11=1=显示2行2F0=5×7点阵/每字符1=5×10点阵/每字符一般设为0x38根据上面的分析可以定义如下几个宏定义:#define Clear0x01#define Show0x0c#define InputMode0x06#define Function0x38初始化函数如下:/*************初始化*********************/void Lcd1602Init(){Lcd1602Disable();Lcd1602WriteCommand(Function);Lcd1602WriteCommand(Show);Lcd1602WriteCommand(InputMode);Lcd1602WriteCommand(Clear);}液晶的地址:两行分别是写入显示地址一定要第七位是高电平,所以不能直接写上面的地址,而是用上面的地址加上0x80才是对应位置的显示地址。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DDRAM的地址
功能:设置当前显示缓冲区DDRAM的地址,对DDRAM访问时, 要先设定DDRAM的地址,地址范畴0~127。
第九章 MCS-51单片机的其他接口
9.读忙标志及地址计数器AC命令 格式:
RS R/W D7 D6 D5 D4 D3 D2 D1 D0
0
1
BF
AC的值
功能:读忙标志及地址计数器AC。 当BF=1时则表示忙,这时不能接收命令和数据;BF=0时表示不忙。 低7位为读出的AC的地址,值为0~127。 10.写DDRAM或CGRAM命令 格式:
第九章 MCS-51单片机的其他接口
MOV A,#11000101B;写入显示缓冲区起始地址为第2行第6列。 ACALL WC51R MOV A,“B” ;第2行第6列显示字母“B”。 ACALL WC51DDR MOV A,“Y” ;第2行第7列显示字母“Y”。 ACALL WC51DDR MOV A,“E” ;第2行第8列显示字母“E”。 ACALL WC51DDR LOOP:AJMP LOOP ;初始化子程序 INIT:MOV A,#00000001H;清屏 ACALL WC51R MOV A,#00111000B;使用8位数据,显示两行,使用5*7的字型。 LCALL WC51R MOV A,#00001110B;显示器开,光标开,字符不闪烁。 LCALL WC51R MOV A,#00000110B;字符不动,光标自动右移一格。 LCALL WC51R RET
功能:清除屏幕,将显示缓冲区DDRAM的内容全部写入空 格(ASCII20H)。 光标复位,回到显示器的左上角。 地址计数器AC清零。 2.光标复位命令 格式:
RS 0 R/W 0 D7 0 D6 0 D5 0 D4 0 D3 0 D2 0 D1 1 D0 0
功能:光标复位,回到显示器的左上角。(地址00H位置)
1
1
读出的数据
功能:从DDRAM或CGRAM当前位置中读出数据。当DDRAM或 CGRAM读出数据时,先须设定DDRAM或CGRAM的地址。
四.LCD显示器的初始化
LCD使用之前须对它进行初始化,初始化可通过复位完成, 也可在复位后完成,初始化过程如下: 1.清屏; 2.功能设置; 3.开/关显示设置; 4.输入方式设置。
第九章 MCS-51单片机的其他接口
第九章 MCS-51单片机的其他接口
9.1 LCD与MCS-51接口
在日常生活中,人们对液晶显示器并不陌生。液晶显 示模块已作为很多电子产品的通用器件,如在计算器、万 用表、电子表及很多家用电子产品中都可以看到,显示的 主要是数字、专用符号和图形。以下几个优点: 1.显示质量高 2.数字式接口 3.体积小、重量轻 4.功耗低 5.辐射小
RS 1 R/W 0 D7 D6 D5 D4 D3 D2 D1 D0
写入的数据
功能:向DDRAM或CGRAM当前位置中写入数据。对DDRAM或 CGRAM写入数据之前须设定DDRAM或CGRAM的地址。
第九章 MCS-51单片机的其他接口
11.读DDRAM或CGRAM命令 格式:
RS R/W D7 D6 D5 D4 D3 D2 D1 D0
第九章 MCS-51单片机的其他接口
当 ① RS和R/W同为低电平时,可以写入指令或者显示 地址; ② RS为低电平、R/W为高电平时,可以读忙信号; ③ RS为高电平、:E,为使能端,当E端由高电平跳变成低电平时, 液晶模块执行命令。 第7~14脚:D0~D7,为8位双向数据线。 第15脚:BLA,背光源正极 第16脚:BLK,背光源负极
RS R/W D7 D6 D5 D4 D3 D2 D1 D0
0
0
0
0
1
DL
N
F
*
*
功能:设置数据位数,当DL=1时数据位为8位,DL=0时数据 位为4位。 设置显示行数,当N=1时双行显示,N=0时单行显示。 设置字形大小,当F=1时5×10点阵,F=0时为5×7点阵。
第九章 MCS-51单片机的其他接口
第九章 MCS-51单片机的其他接口
HD44780集成电路的特点: 1、可选择5×7或5×10点字符。 2、HD44780不仅作为控制器而且还具有驱动40×16点 阵液晶像素的能力,并且HD44780的驱动能力可通过外接 驱动器扩展360列驱动。 HD44780可控制的字符高达每行80个字,也就是 580=400点,HD44780内藏有16路行驱动器和40路列驱 动器,所以HD44780本身就具驱动有16×40点阵LCD的 能力(即单行16个字符或两行8个字符)。 如果在外部加一HD44100外扩展多40路/列驱动,则 可驱动16×2LCD。
第九章 MCS-51单片机的其他接口
第九章 MCS-51单片机的其他接口
4、HD44780具有8位数据和4位数据传输两种方式,可 与4/8位CPU相连。
5、HD44780具有简单而功能较强的指令集,可实现字 符移动,闪烁等显示功能。
第九章 MCS-51单片机的其他接口
三.指令格式与指令功能 LCD控制器HD44780内有多个寄存器,通过RS和 R/W引脚共同决定选择哪一个寄存器,选择情况如表
5.光标移位置命令 格式:
RS 0 R/W 0 D7 0 D6 0 D5 0 D4 1 D3 D2 D1 * D0 * S/C R/L
功能:移动光标或整个显示字幕移位。 当S/C=1时,整个显示字幕移位;当S/C=0时,只光标移位。 当R/L=1时,光标右移;R/L=0时,光标左移。 6.功能设置命令 格式:
7.设置字库CGRAM地址命令 格式:
RS 0 R/W 0 D7 0 D6 1 D5 D4 D3 D2 D1 D0
CGRAM的地址
功能:设置用户自定义CGRAM的地址,对用户自定义CGRAM访问 时,要先设定CGRAM的地址,地址范畴0~63。 8.显示缓冲区DDRAM地址设置命令 格式:
RS 0 R/W 0 D7 1 D6 D5 D4 D3 D2 D1 D0
图中,RT-1602C 的数据线与8051的P1口相连,RS与8051的 P2.0相连,R/ W与8051的P2.1相连,E端与8051的P2.7相连。编程 在LCD显示器的第一行、第一列开始显示“GOOD”,第二行、第6 列开始显示“BYE”。
第九章 MCS-51单片机的其他接口
汇编语言程序:
RS RW E ORG AJMP ORG BIT P2.0 BIT P2.1 BIT P2.7 00H START 50H
LCD 16 字×2 行
00 40
01 41
02 42
03 43
04 44
05 45
06 46
07 47
08 48
09 49
0A 4A
0B 4B
0C 4C
0D 4D
0E 4E
0F 4F
10 50
…… ……
27 67
第九章 MCS-51单片机的其他接口
HD44780内藏的字符发生存储器(ROM)已经存储了 160个不同的点阵字符图形,如图所示: 这些字符有:阿拉伯数字、英文字母的大小写、常用 的符号、和日文假名等,每一个字符都有一个固定的代码。 比如:数字“1”的代码是00110001B(31H),又如大写 的英文字母“A”的代码是01000001B(41H),可以看出 英文字母的代码与ASCII编码相同。要显示“1”时,我们 只需将ASCII码31H存入DDRAM指定位置,显示模块将在 相应的位置把数字“1”的点阵字符图形显示出来,我们就 能看到数字“1”了。
第九章 MCS-51单片机的其他接口
液晶显示器简称LCD显示器:是利用液晶经 过处理后能改变光线的传输方向的特性,实现显示 信息的。 液晶显示器按其功能可分为三类: 字段式 字符点阵式 图形点阵式
第九章 MCS-51单片机的其他接口
9.1.1 字符型点阵式LCD液晶显示器
字符型点阵式LCD显示器,需相应的LCD控制器、 驱动器来对LCD显示器进行扫描、驱动,以及一定空 间的RAM和ROM来存储写入的命令和显示字符的点阵。 现在已将LCD控制器、驱动器、RAM、ROM和LCD显 示器用PCB连接到一起,称为液晶显示模块LCM(LCD Module)。
RS 0 0 1 1 R/W 0 1 0 1 寄存器及操作 指令寄存器写入 忙标志和地址计数器读出 数据寄存器写入 数据寄存器读出
总共有11条指令,它们的格式和功能如下:
第九章 MCS-51单片机的其他接口
1.清屏命令 格式:
RS 0 R/W 0 D7 0 D6 0 D5 0 D4 0 D3 0 D2 0 D1 0 D0 1
第九章 MCS-51单片机的其他接口
第九章 MCS-51单片机的其他接口
控制器采用HD44780,驱动器采用HD44100。 HD44780是集控制器、驱动器于一体,专用于字符显 示控制驱动集成电路。HD44780是字符型液晶显示控制器 的代表电路。 HD44100是作扩展显示字符位用的。(例如:16字 符×1行模块就可不用HD44100,16字符×2行模块就要用 一片HD44100)。
第九章 MCS-51单片机的其他接口
9.1.2 LCD显示器与单片机的接口与应用 下图是LCD显示器与8051单片机的接口图。
P1.0 P1.7 P2.7 P2.1 P2.0 …… 8051 P=10K +5V +5V OV R=10欧姆 1/2W DB0 DB7 E R/W RS RT-1602 VL BLK BLA …… ……
第九章 MCS-51单片机的其他接口
二.字符型液晶显示模块RT-1602C的内部结构
RT- 1602C的内部结构可以分成三部分:一为LCD 控制器,二为LCD驱动器,三为LCD显示装置,如下图 所示。
VSS VDD VL RS R/W E DB0~DB7
相关文档
最新文档