完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
(一)什么是LCD1602
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。 1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。 市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。 LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。不同厂家生产的LCD1602芯片可能有所不同,但使用方法都是一样的。 注意:LCD1602仅能显示字母、符号或数字,无法显示汉字。 (二)字符型液晶显示原理 点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成。显示屏上64×16个显示单元与显示RAM区的1024字节相对应,每一字节的内容与显示屏上相应位置的亮暗对应。例如显示屏第一行的亮暗由RAM区的000H~00FH的16字节的内容决定,当(000H)=FFH时,屏幕左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,屏幕右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H…,(00EH)=00H,(00FH)=00H时,在屏幕的顶部显示一条由8条亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。 字符型液晶显示模块是一种专门用于显示字母、数字和符号等的点阵式LCD,常用16×1,16×2,20×2和40×2等的模块。一般的LCD1602字符型液晶显示器的内部控制器大部分为HD44780,能够显示英文字母、阿拉伯数字、日文片假名和一般性符号。 (三)LCD1602引脚表 引脚功能介绍: ·引脚1:VSS为地电源。 ·引脚2:VDD接5V正电源。 ·引脚3:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”现象,使用时可以通过一个10kQ的电位器调整其对比度。 ·引脚4:RS为寄存器选择脚,高电平时选择数据寄存器、低电平时选择指令寄存器。 ·引脚5:R/W为读/写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或显示地址;当RS为低电平,R/W为高电平时,可以读忙信号;当RS为高电平,R/W为低电平时,可以写入数据。 ·引脚6:E端为使能端,当E端由高电平跳变为低电平时,液晶模块执行命令。 ·引脚714:D0D7为8位双向数据线。 ·引脚15:背光源正极。 ·引脚16:背光源负极。 (四)控制器接口时序图 1:读操作时序图 2:写操作时序图 首先要对寄存器的选择和读、写操作选择进行配置。RS是寄存器选择,RS = 1对数据进行操作;RS = 0对指令进行操作。 接着对读写操作选择进行配置,RW = 0 写操作。 打开使能端,输入使能信号 E = 1。 数据总线,对DB0~DB7赋值,进行数据的传输 【注】如果先打开使能,再进行其他配置的话,有可能传输的数据不是自己想要的。 (五)1602的原理图 此部分是谱中科技单片机的1602原理图(大多数老师教学51单片机都是这块板子,如需要原理图请直接找我就好) (六)1602的配置代码部分解读 1:端口的定义 #define LCD1602_PORT P0 //对数据传输口进行定义***it LCD1602_RS = P2^6; //命令端口***it LCD1602_RW = P2^5; //读写端口***it LCD1602_EN = P2^7; //使能端口 特别注意:端口一定别写错了!!!写错了无法显示。 2:写指令 void LCD1602_write_com(unsigned char com){ LCD1602_RS = 0;//写入命令 LCD1602_PORT = com; LCD1602_delay_ms(1); LCD1602_EN = 1;//使能端口高电平 LCD1602_delay_ms(1); LCD1602_EN = 0;} 3:写数据 void LCD1602_write_data(unsigned char dat){ LCD1602_RS = 1; LCD1602_PORT = dat; LCD1602_delay_ms(1); LCD1602_EN = 1; LCD1602_delay_ms(1); LCD1602_EN = 0;} 4:初始化 void Init_LCD1602(){ LCD1602_EN = 0; LCD1602_RW = 0; //设置为写状态 LCD1602_write_com(0x38);//显示模式设定 LCD1602_write_com(0x0c);//开关显示,光标有无设置、光标闪烁设置 LCD1602_write_com(0x06);//写一个字符后指针加一 LCD1602_write_com(0x01);//清屏指令 LCD1602_write_com(0x80);//设置数据指针起点} (七)LCD1602代码 1:lcd1602.c #include “LCD1602.h”//****************************************************//MS延时函数(12M晶振下测试)//****************************************************void LCD1602_delay_ms(unsigned int n){ unsigned int i,j; for(i=0;i《n;i++) for(j=0;j《110;j++);}//****************************************************//写指令//****************************************************void LCD1602_write_com(unsigned char com){ LCD1602_RS = 0; LCD1602_PORT = com; LCD1602_delay_ms(1); LCD1602_EN = 1; LCD1602_delay_ms(1); LCD1602_EN = 0;}//****************************************************//写数据//****************************************************void LCD1602_write_data(unsigned char dat){ LCD1602_RS = 1; LCD1602_PORT = dat; LCD1602_delay_ms(1); LCD1602_EN = 1; LCD1602_delay_ms(1); LCD1602_EN = 0;}//****************************************************//连续写字符//****************************************************void LCD1602_write_word(unsigned char *s){ while(*s》0) { LCD1602_write_data(*s); s++; }}void Init_LCD1602(){ LCD1602_EN = 0; LCD1602_RW = 0; LCD1602_write_com(0x38); LCD1602_write_com(0x0c); LCD1602_write_com(0x06); LCD1602_write_com(0x01); LCD1602_write_com(0x80);} 2:LCD1602.h #ifndef __LCD1602_H__#define __LCD1602_H__#include 《reg52.h》//LCD1602 IO设置#define LCD1602_PORT P0***it LCD1602_RS = P2^6;***it LCD1602_RW = P2^5;***it LCD1602_EN = P2^7;//函数或者变量申明extern void LCD1602_delay_ms(unsigned int n);extern void LCD1602_write_com(unsigned char com);extern void LCD1602_write_data(unsigned char dat);extern void LCD1602_write_word(unsigned char *s);extern void Init_LCD1602();#endif 如有错误的地方,还请前辈们指出来!感激不尽! |
|
|
|
只有小组成员才能发言,加入小组>>
2545 浏览 0 评论
1143浏览 2评论
743浏览 1评论
496浏览 0评论
261浏览 0评论
420浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 20:06 , Processed in 1.345653 second(s), Total 81, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号