液晶字符显示

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

液晶字符显示

————————————————————————————————作者:————————————————————————————————日期:

1.基本简介

LCD1602工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)

1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。

1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。

目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。2.管脚功能

1602采用标准的16脚接口,其中:

第1脚:VSS为电源地

第2脚:VCC接5V电源正极

第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。

第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。

第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。

第7~14脚:D0~D7为8位双向数据端。

第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。

⑶特性

3.3V或5V工作电压,对比度可调

内含复位电路

提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能

有80字节显示数据存储器DDRAM

内建有192个5X7点阵的字型的字符发生器CGROM 8个可由用户自定义的5X7的字符发生器CGRAM

3特性应用

+3.3V电压,对比度可调

内含复位电路

提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能

有80字节显示数据存储器DDRAM

内建有192个5X7点阵的字型的字符发生器CGROM

8个可由用户自定义的5X7的字符发生器CGRA。

微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。4操作控制

6基本程序编写

#include //包含头文件

#define uint unsigned int //预定义一下

#define uchar unsigned char

sbit rs=P3^5; //1602的数据/指令选择控制线sbit rw=P3^6; //1602的读写控制线

sbit en=P3^7; //1602的使能控制线/*P2口接1602的D0~D7,注意不要接错了顺序,我以前可在这上面吃过亏~*/

uchar code table[]="LCD1602 check ok"; //要显示的内容1放入数组tablel

uchar code table1[]="study up"; //要显示的内容2放入数组table1

void delay(uint n) //延时函数{ uint x,y; for(x=n;x>0;x--) for(y=110;y>0;y--); }

void lcd_wcom(uchar com) //1602写命令函数

{ rs=0; //选择指令寄存器

rw=0; //选择写

P2=com; //把命令字送入P2

delay(5); //延时一小会儿,让1602准备接收数据

en=1; //使能线电平变化,命令送入1602的8位数据口

en=0; }

void lcd_wdat(uchar dat) //1602写数据函数

{ rs=1; //选择数据寄存器

rw=0; //选择写

P2=dat; //把要显示的数据送入P2

delay(5); //延时一小会儿,让1602准备接收数据

en=1; //使能线电平变化,数据送入1602的8位数据口

en=0; }

void lcd_init() //1602初始化函数

{ lcd_wcom(0x38); //8位数据,双列,5*7字形

lcd_wcom(0x0c); //开启显示屏,关光标,光标不闪烁

lcd_wcom(0x06); //显示地址递增,即写一个数据后,显示位置右移一位lcd_wcom(0x01); //清屏

}

void main() //主函数

{ uchar n,m=0;

lcd_init(); //液晶初始化

lcd_wcom(0x80); //显示地址设为80H(即00H,)上排第一位for(m=0;m<16;m++) //将table[]中的数据依次写入1602显示

{

lcd_wdat(table[m]);

delay(200); }

lcd_wcom(0x80+0x44); //重新设定显示地址为0xc4,即下排第5位

for(n=0;n<8;n++) //将table1[]中的数据依次写入1602显示{ lcd_wdat(table1[n]); delay(200); }

while(1); //动态停机}

相关文档
最新文档