LCD1602介绍和各报错经验总结

LCD ( Liquid Crystal Display 的简称)液晶显示器。能够同时显示16x2,32个字符,是一种专门用来显示字母、数字、符号等的点阵型液晶模块。

LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。该显示屏的优点是耗电量低、体积小、辐射低。

作为嵌入式中非常非常常用的显示硬件,对于它的各种稀奇古怪的报错却是鲜有系统性的总结,本文lz目的就在于总结比较常见并给出笔者实践过的部分解决方法的思路,如有别的好的解决方法,欢迎各位在评论区补充。(笔者因为遇到了非常多的报错,也挺不容易的,希望大家多多支持笔者的博客笔记,一起学习)

-----------------------------------------------------------------------------------------------

首先介绍一下LCD1602的一些基本信息和使用方式。

首先介绍LCD的发光原理:背光灯发出白色光,经过偏光片对光线进行初步帅选,经过玻璃板到达液晶控制电路,光线穿过液晶间隙,外界施加到液晶的电压,会改变光线的偏转角度,光线在经过玻璃板,穿过偏光片,最终投射到红绿蓝三基色偏光片上,展示出不同的颜色,最终形成一个显示单位,称为像素点。

液晶本身不发光,需要背光灯提供光源,光线经过一系列处理才到输出,输出的光线强度要比光源的强度低很多,能量利用率较低,(比CRT显示器节能),液晶显示的处理方式,会导致显示方向较窄,对应它的视角较小,从侧面看屏幕会看不清他的显示内容,色彩转换,液晶分子转动也需要消耗一定的时间,导致屏幕的响应速度低。

接下来介绍LCD的相关引脚:

1.VSS:接地线;

2.VDD:接电源正极,一般接5V;

3:V

1602汉字显示,如有需要可以下载 #include #define uchar unsigned char #define uint unsigned int sbit lcdrs=P1^0; sbit lcden=P1^2; sbit lcdwr=P1^1; uchar CGCODE[]={0x08,0x0F,0x12,0x0F,0x0A,0x1F,0x02,0x02,//"年"代码 0x00 0x0F,0x09,0x0F,0x09,0x0F,0x09,0x13,0x00,//"月"代码 0x01 0x0F,0x09,0x09,0x0F,0x09,0x09,0x0F,0x00,//"日"代码 0x02 0x07,0x04,0x07,0x04,0x07,0x00,0x04,0x07,//"星"左上半部分代码 0x03 0x1F,0x01,0x1F,0x01,0x1F,0x08,0x08,0x1F,//"星"右上半部分代码 0x04 0x08,0x17,0x00,0x1F,0x00,0x00,0x00,0x00,//"星"左下半部分代码 0x05 0x08,0x1F,0x08,0x1F,0x00,0x00,0x00,0x00//"星"右下半部分代码 0x06 }; uchar tab[]={'0','8',0x00,'0','3',0x01,'0','9',0x02};//显示"08年03月09日" void delay(uint t) { uint x,y; for(x=0;x<t;x++) for(y=0;y<110;y++); } void write_com(uchar com)//向1602写指令 { lcdrs=0; P2=com; delay(5); lcden=1; delay(5); lcden=0; } void write_date(uchar dat)//向1602写数据 { lcdrs=1; P2=dat; delay(5); lcden=1; delay(5); lcden=0; } void init()//程序初始化 { lcdwr=0; lcden=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); } void main()//主函数 { int i; init(); lcdrs=0; lcdwr=0; write_com(0x40);//将自定义字符写入CGRAM for(i=0;i<56;i++)//循环56次写入 { write_date(CGCODE[i]); } write_com(0x80);//写入初始地址 for(i=0;i<9;i++) { write_date(tab[i]); } write_com(0x80+9);//用09H0AH显示"星"上部分 write_date(0x03); write_date(0x04); write_com(0x80+0x40+9);//用49H4AH显示"星"上部分 write_date(0x05); write_date(0x06); while(1); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值