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液晶屏的介绍相关推荐

  1. 【C51单片机学习笔记----DS18B20温度传感器LCD1602液晶屏直流电机调速与呼吸灯AD模数转换红外外部中断】

    文章目录 一.DS18B20温度传感器 1.DS18B20温度传感器连接原理图 2.DS18B20温度传感器单总线通信时序 3.DS18B20温度传感器代码模块 二.LCD1602液晶屏 1.LCD1 ...

  2. 51单片机进阶案例(1)——基于MATLAB GUI的单片机串口与PC的通信实现实时时钟和双向可调时钟功能(利用DS1302时钟芯片和LCD1602液晶屏)

    目录 一.案例描述 二.实现功能 三.51单片机部分实现 3.1 实时时钟的实现 3.2 串口通信的实现 3.2.1 接收数据 3.2.2 发送数据 四.MATLAB部分实现 4.1 GUI界面 4. ...

  3. LCD1602液晶屏使用(51单片机七夕特别版)

    LCD1602液晶屏使用(51单片机七夕特别版) LCD1602简介 实现过程 操作时序 指令码 如何改变文本的样式 代码 效果图 今天是七夕节,周围的朋友啊小姐妹(伪)啊都跟对象出去玩了 囧rz,而 ...

  4. 通过 I2C 驱动 LCD1602 液晶屏(51单片机)

    通过 I2C 驱动 LCD1602 液晶屏(51单片机) 硬件实物 原理图 3.程序 #include <reg51.h> #include <intrins.h>#defin ...

  5. Proteus仿真-LCD1602液晶屏使用方法(驱动一)

    一.硬件链接 在元件库中搜索LM016即可找到LCD1602液晶屏. 按下图方式链接单片机和屏幕. 二.软件驱动代码 //屏幕相关引脚接口定义 #define D P0 sbit E=P2^6; sb ...

  6. 【花雕动手做】有趣好玩的音乐可视化系列项目(31)--LCD1602液晶屏

    偶然心血来潮,想要做一个音乐可视化的系列专题.这个专题的难度有点高,涉及面也比较广泛,相关的FFT和FHT等算法也相当复杂,不过还是打算从最简单的开始,实际动手做做试验,耐心尝试一下各种方案,逐步积累 ...

  7. 【雕爷学编程】Arduino动手做(85)---LCD1602液晶屏模块

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为 ...

  8. 51单片机12864大液晶屏proteus仿真

    51单片机竞赛设计实例程序44例(Proteus仿真资料),可以做参赛设计的参考,可以用来做毕业设计,也可以做项目参考,平时的练习项目,带源码,可以说费了很多时间才集齐的,希望对你们有帮助,闯客网技术 ...

  9. proteus仿真里面的LCD1602液晶屏初始化

    仿真里面的1602液晶屏跟实际几乎一样,所以使用者很多.不过,仿真里面对于初始化的要求不同. 1.实物中的初始化,一般用 enable(0x01);enable(0x38);enable(0x0c); ...

  10. 单片机 STM32 HAL 液晶屏 LCD16032

    笔记: 1.采用串行输出 2.器件 [16 NC(PSB)]引脚需要接地, H:并口通信 L:串口通信 3.LCD_CS_Pin LCD_CS_GPIO_Port //片选控制,0,无效 1有效 LC ...

最新文章

  1. hadoop之 Zookeeper 分布式应用程序协调服务
  2. Stream流终结操作方法
  3. NOI数学:Burmside引理与Polya原理
  4. 特斯拉又有新游戏可以玩了 网友:行车打游戏,亲人两行泪
  5. idhttp.post方式 调用datasnap rest 远程方法(转咏南兄)
  6. 用matlab解拉格朗日,用MATLAB实现拉格朗日插值
  7. hough变换检测圆周_一种利用Hough变换的圆形目标检测方法与流程
  8. dbv oracle驱动,Oracle的DBV工具
  9. 输入汉语星期几输出英文c语言程序,C根据英文星期获取对应汉字或数字的星期函数(1)...
  10. python爬虫获取下一页_Python爬虫怎么获取下一页的URL和网页内容?
  11. Calibre发邮件至Kindle
  12. OpenSUSE安装配置TeXLive2015.iso、前端软件Kile、Lyx、TeXstudio及TeX的更新管理界面的使用
  13. webuploader上传图片插件案例
  14. strcpy()的使用注意事项
  15. python笔记图片_python-opencv笔记 图像的读取和简单几何图形绘制
  16. 机器学习如何驱动业务实践?你想知道的都在这!
  17. 【C++】C++实战项目机房预约管理系统
  18. 一名大学毕业生的反思_反思我大学毕业时的软件工程师的第一年
  19. 给UILable中的文字添加删除线样式
  20. 【计算机基础】计算机网络

热门文章

  1. 2019年高考数学解题技巧如何分配时间最合理
  2. 43.Django04
  3. 极小化极大;292Nim 游戏;bitset容器;464我能赢吗;486预测赢家
  4. UltraVNC远程控制其他电脑
  5. 没有装php可以用phpmyadmin,phpMyAdmin 安装及问题总结
  6. 猿创征文|智能合约开发效率工具
  7. SqlServer配置身份验证登录教程
  8. echarts 饼图移动端_使用Echarts实现饼图
  9. UNDERSTANDING STRAIGHT-THROUGH ESTIMATOR IN TRAINING ACTIVATION QUANTIZED NEURAL NETS
  10. 修改build.prop文件,可更改新浪微博尾巴显示