单片机外设LCD1602液晶屏的介绍
LCD(Liquid CrystalDisplay):液晶显示器的缩写,一种被动式的显示器,即液晶本身并不发光,而是经液晶经过处理后能改变光线通过方向的特性,而达到白底黑字或黑底白字显示的目的。
液晶显示器具有功耗低、抗干扰能力强等优点,广泛用在仪器仪表和控制系统中。
LCD的分类:
按排列形状分:字段型、点阵字符型和点阵图形。
字段型:广泛用于电子表、数字仪表、计算器中。
点阵字符型: 显示字母、数字、符号。它是由5×7或5×4点阵组成,广泛应用在单片机应用系统中。
点阵图形型:笔记本电脑和彩色电视等设备中。
1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块 它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有也有间隔 起到了字符间距和行间距的作用
1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶
接口电路示例
第1脚:VSS为地电源。
第2脚:VDD接5V正电源。
第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,
对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共
同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读
忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15脚:背光源正极。
第16脚:背光源负极。
LCD1602的写操作时序:
LCD1602代码模板
#define DataPort P0
sbit RS = P2^4; //定义端口
sbit RW = P2^5;
sbit EN = P2^6;
void LCD_Write_Com(uchar dat) //写命令函数
{
DelayMs(5);
RS = 0;
RW = 0;
DataPort= dat;
EN = 0;
_nop_();
_nop_();
EN= 1;
}
void LCDWRITEDAT(uchar dat) //写数据函数
{
DelayMs(5);
RS = 1;
RW = 0;
DataPort= dat;
EN = 0;
_nop_();
_nop_();
EN= 1;
}
void LCDwritestring(uchar x,uchar y,uchar*s) //写字符串s函数
{
if(y == 0)
{
LCD_Write_Com(0x80 + x);
}
else
{
LCD_Write_Com(0xc0 + x);
}
while(*s)
{
LCDWRITEDAT(*s);
s++;
}
}
void LCDINIT() /初始化函数
{
DelayMs(15);
LCD_Write_Com(0x38); /*显示模式设置*/
DelayMs(5);
LCD_Write_Com(0x38); /*显示模式设置*/
DelayMs(5);
LCD_Write_Com(0x38); /*显示模式设置*/
DelayMs(5);
LCD_Write_Com(0x08); //关显示
DelayMs(5);
LCD_Write_Com(0x01); /*显示清屏*/
DelayMs(5);
LCD_Write_Com(0x06); //指针自加
DelayMs(5);
LCD_Write_Com(0x0c); /*显示光标移动设置*/
DelayMs(5);
}
int main()
{
LCDINIT();
LCD_Write_Com(0x88); //在第一行第8个位置
LCDWRITEDAT(‘a’); //显示字符a;
LCDwritestring(0,1,”Hello World!”); //在第二行第0个位置起显示“Hello World!”字符串
扩展:LCD1602扩展功能
uchar tflag[8] = {0x01,0x06,0x09,0x08,0x08,0x09,0x06,0x00}; //℃
void LCD_FILLCGRAM(void) //在自定义第一个字符填充℃符号
//{
// int i = 0;
// LCD_Write_Com(0x40);
// for(i=0;i<8;i++)
// {
// LCDWRITEDAT(tflag[i]);
// }
//}
voidLCD_Show_CGRAM(uchar x,uchar y,uchar dat) //在第y行的第x位置显示位置为//dat的字符
//{
// if(y == 0)
// {
// LCD_Write_Com(0x80 + x);
// }
// else
// {
// LCD_Write_Com(0xc0 + x);
// }
// LCDWRITEDAT(dat);
//}
LCD_Show_CGRAM(3,1,0); //0代表填充域的第一个字符,是“℃”符号。
单片机外设LCD1602液晶屏的介绍相关推荐
- 【C51单片机学习笔记----DS18B20温度传感器LCD1602液晶屏直流电机调速与呼吸灯AD模数转换红外外部中断】
文章目录 一.DS18B20温度传感器 1.DS18B20温度传感器连接原理图 2.DS18B20温度传感器单总线通信时序 3.DS18B20温度传感器代码模块 二.LCD1602液晶屏 1.LCD1 ...
- 51单片机进阶案例(1)——基于MATLAB GUI的单片机串口与PC的通信实现实时时钟和双向可调时钟功能(利用DS1302时钟芯片和LCD1602液晶屏)
目录 一.案例描述 二.实现功能 三.51单片机部分实现 3.1 实时时钟的实现 3.2 串口通信的实现 3.2.1 接收数据 3.2.2 发送数据 四.MATLAB部分实现 4.1 GUI界面 4. ...
- LCD1602液晶屏使用(51单片机七夕特别版)
LCD1602液晶屏使用(51单片机七夕特别版) LCD1602简介 实现过程 操作时序 指令码 如何改变文本的样式 代码 效果图 今天是七夕节,周围的朋友啊小姐妹(伪)啊都跟对象出去玩了 囧rz,而 ...
- 通过 I2C 驱动 LCD1602 液晶屏(51单片机)
通过 I2C 驱动 LCD1602 液晶屏(51单片机) 硬件实物 原理图 3.程序 #include <reg51.h> #include <intrins.h>#defin ...
- Proteus仿真-LCD1602液晶屏使用方法(驱动一)
一.硬件链接 在元件库中搜索LM016即可找到LCD1602液晶屏. 按下图方式链接单片机和屏幕. 二.软件驱动代码 //屏幕相关引脚接口定义 #define D P0 sbit E=P2^6; sb ...
- 【花雕动手做】有趣好玩的音乐可视化系列项目(31)--LCD1602液晶屏
偶然心血来潮,想要做一个音乐可视化的系列专题.这个专题的难度有点高,涉及面也比较广泛,相关的FFT和FHT等算法也相当复杂,不过还是打算从最简单的开始,实际动手做做试验,耐心尝试一下各种方案,逐步积累 ...
- 【雕爷学编程】Arduino动手做(85)---LCD1602液晶屏模块
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为 ...
- 51单片机12864大液晶屏proteus仿真
51单片机竞赛设计实例程序44例(Proteus仿真资料),可以做参赛设计的参考,可以用来做毕业设计,也可以做项目参考,平时的练习项目,带源码,可以说费了很多时间才集齐的,希望对你们有帮助,闯客网技术 ...
- proteus仿真里面的LCD1602液晶屏初始化
仿真里面的1602液晶屏跟实际几乎一样,所以使用者很多.不过,仿真里面对于初始化的要求不同. 1.实物中的初始化,一般用 enable(0x01);enable(0x38);enable(0x0c); ...
- 单片机 STM32 HAL 液晶屏 LCD16032
笔记: 1.采用串行输出 2.器件 [16 NC(PSB)]引脚需要接地, H:并口通信 L:串口通信 3.LCD_CS_Pin LCD_CS_GPIO_Port //片选控制,0,无效 1有效 LC ...
最新文章
- hadoop之 Zookeeper 分布式应用程序协调服务
- Stream流终结操作方法
- NOI数学:Burmside引理与Polya原理
- 特斯拉又有新游戏可以玩了 网友:行车打游戏,亲人两行泪
- idhttp.post方式 调用datasnap rest 远程方法(转咏南兄)
- 用matlab解拉格朗日,用MATLAB实现拉格朗日插值
- hough变换检测圆周_一种利用Hough变换的圆形目标检测方法与流程
- dbv oracle驱动,Oracle的DBV工具
- 输入汉语星期几输出英文c语言程序,C根据英文星期获取对应汉字或数字的星期函数(1)...
- python爬虫获取下一页_Python爬虫怎么获取下一页的URL和网页内容?
- Calibre发邮件至Kindle
- OpenSUSE安装配置TeXLive2015.iso、前端软件Kile、Lyx、TeXstudio及TeX的更新管理界面的使用
- webuploader上传图片插件案例
- strcpy()的使用注意事项
- python笔记图片_python-opencv笔记 图像的读取和简单几何图形绘制
- 机器学习如何驱动业务实践?你想知道的都在这!
- 【C++】C++实战项目机房预约管理系统
- 一名大学毕业生的反思_反思我大学毕业时的软件工程师的第一年
- 给UILable中的文字添加删除线样式
- 【计算机基础】计算机网络
热门文章
- 2019年高考数学解题技巧如何分配时间最合理
- 43.Django04
- 极小化极大;292Nim 游戏;bitset容器;464我能赢吗;486预测赢家
- UltraVNC远程控制其他电脑
- 没有装php可以用phpmyadmin,phpMyAdmin 安装及问题总结
- 猿创征文|智能合约开发效率工具
- SqlServer配置身份验证登录教程
- echarts 饼图移动端_使用Echarts实现饼图
- UNDERSTANDING STRAIGHT-THROUGH ESTIMATOR IN TRAINING ACTIVATION QUANTIZED NEURAL NETS
- 修改build.prop文件,可更改新浪微博尾巴显示