lcd1602液晶屏在很懂工業產品上都有應用,LCD1602能夠能夠同時顯示32個字符,價格便宜,編程簡單而且穩定可靠。lcd1602液晶屏是一種圖形點陣顯示器,顯示原理簡單易懂,都是液晶屏內部的液晶材料變化而顯示不同的字符,因為液晶是具有流動特性的物質,所以只需外加很微小的力量即可使液晶分子運動,以最常見普遍的向列型液晶為例,液晶分子可輕易的借著電場作用使得液晶分子轉向,由于液晶的光軸與其分子軸相當一致,故可借此產生光學效果,而當加于液晶的電場移除消失時,液晶將借著其本身的彈性及黏性,液晶分子將十分迅速的回撤消來未加電場前的狀態。
lcd1602液晶屏就是通過電壓來改變填充在兩塊平行板之間的液晶材料內部分子的排列狀況,以達到遮光和透光的目的來顯示深淺不一,錯落有致的圖象,而且只要在兩塊平板間再加上三元色的濾光層,就可實現顯示彩色圖象。
lcd1602中文資料---LCD1602液晶屏特點
a. 顯示質量高
由于1602LCD每一個點在收到信號后就一直保持那種色彩和亮度,恒定發光,畫質高且不會閃爍。
b. 數字式接口
1602液晶屏都是數字式的,和單片機系統的接口更加簡單可靠,操作更加方便。
c. 體積小、重量輕
1602液晶模塊通過顯示屏上的電極控制液晶分子狀態來達到顯示的目的,在重量上比相同顯示面積的傳統顯示屏要輕得多。
d. 功耗低
相對而言,1602液晶顯示屏的功耗主要消耗在其內部的電極和驅動IC上,因而耗電量比其它顯示屏要少得多。
液晶顯示模塊LCD1602的內部結構可以分成三部分:一為LCD控制器,二為LCD驅動器,三為LCD顯示裝備。
lcd1602中文資料---lcd1602接線圖
在了解LCD1602接線圖之前,我們先看看LCD1602的引腳定義圖。
1腳:VSS為接地;
2腳:VDD接5V電源VCC;
3腳:VO為液晶顯示器對比度調整;VO是液晶顯示的偏壓信號,可接10K的3296精密電位器。或同樣阻值的RM065/RM063藍白可調電阻。
4腳:RS為寄存器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器;
5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和RW共同為低電平時可以寫入指令或者顯示地址,當RS為低電平RW為高電平時可以讀忙信號,當RS為高電平RW為低電平時可以寫入數據;
6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執行命令;
7~14腳:D0~D7為8位雙向數據線;
15腳:背光電源正極;
16腳:背光電源負極。
LCD1602液晶顯示模塊可以和單片機AT89C51直接接口接線:
?
也可以按照下圖顯示的電路圖接線即可,需要說明的是在這個電路圖中,LCD的第三腳VEE沒有接,這個腳是控制屏幕對比度的。可以將電位器的兩端分別接VCC和GND,中間端接LCD的第三腳。
lcd1602中文資料---1602LCD主要技術參數
? ? ? ?顯示容量:16×2個字符 ;芯片工作電壓:4.5—5.5V ;工作電流:2.0mA(5.0V) ;模塊最佳工作電壓:5.0V ;字符尺寸:2.95×4.35(W×H)mm。
LCD1602的基本操作分為四種:
1. 讀狀態:輸入RS=0,RW=1,E=高脈沖。輸出:D0—D7為狀態字。
2. 讀數據:輸入RS=1,RW=1,E=高脈沖。輸出:D0—D7為數據。
3. 寫命令:輸入RS=0,RW=0,E=高脈沖。輸出:無。
4. 寫數據:輸入RS=1,RW=0,E=高脈沖。輸出:無。
時序時間參數表:
lcd1602中文資料----lcd1602與單片機連接圖
LCD1602如何接單片機了?給大家分享一個LCD1602接單片機原理PCB圖如下:
代碼如下:
#include《reg52.h》 //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
#include《intrins.h》
sbit RS = P2^4; //定義端口
sbit RW = P2^5;
sbit EN = P2^6;
#define RS_CLR RS=0
#define RS_SET RS=1
#define RW_CLR RW=0
#define RW_SET RW=1
#define EN_CLR EN=0
#define EN_SET EN=1
#define DataPort P0
/*------------------------------------------------
uS延時函數,含有輸入參數 unsigned char t,無返回值
unsigned char 是定義無符號字符變量,其值的范圍是
0~255 這里使用晶振12M,精確延時請使用匯編,大致延時
長度如下 T=tx2+5 uS
------------------------------------------------*/
void DelayUs2x(unsigned char t)
{
while(--t);
}
/*------------------------------------------------
mS延時函數,含有輸入參數 unsigned char t,無返回值
unsigned char 是定義無符號字符變量,其值的范圍是
0~255 這里使用晶振12M,精確延時請使用匯編
------------------------------------------------*/
void DelayMs(unsigned char t)
{
while(t--)
{
//大致延時1mS
DelayUs2x(245);
DelayUs2x(245);
}
}
/*------------------------------------------------
判忙函數
------------------------------------------------*/
bit LCD_Check_Busy(void)
{
DataPort= 0xFF;
RS_CLR;
RW_SET;
EN_CLR;
_nop_();
EN_SET;
return (bit)(DataPort & 0x80);
}
/*------------------------------------------------
寫入命令函數
------------------------------------------------*/
void LCD_Write_Com(unsigned char com)
{
// while(LCD_Check_Busy()); //忙則等待
DelayMs(5);
RS_CLR;
RW_CLR;
EN_SET;
DataPort= com;
_nop_();
EN_CLR;
}
/*------------------------------------------------
寫入數據函數
------------------------------------------------*/
void LCD_Write_Data(unsigned char Data)
{
//while(LCD_Check_Busy()); //忙則等待
DelayMs(5);
RS_SET;
RW_CLR;
EN_SET;
DataPort= Data;
_nop_();
EN_CLR;
}
/*------------------------------------------------
清屏函數
------------------------------------------------*/
void LCD_Clear(void)
{
LCD_Write_Com(0x01);
DelayMs(5);
}
/*------------------------------------------------
寫入字符串函數
------------------------------------------------*/
void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s)
{
if (y == 0)
{
LCD_Write_Com(0x80 + x); //表示第一行
}
else
{
LCD_Write_Com(0xC0 + x); //表示第二行
}
while (*s)
{
LCD_Write_Data( *s);
s ++;
}
}
/*------------------------------------------------
寫入字符函數
------------------------------------------------*/
void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data)
{
if (y == 0)
{
LCD_Write_Com(0x80 + x);
}
else
{
LCD_Write_Com(0xC0 + x);
}
LCD_Write_Data( Data);
}
/*------------------------------------------------
初始化函數
------------------------------------------------*/
void LCD_Init(void)
{
LCD_Write_Com(0x38); /*顯示模式設置*/
DelayMs(5);
LCD_Write_Com(0x38);
DelayMs(5);
LCD_Write_Com(0x38);
DelayMs(5);
LCD_Write_Com(0x38);
LCD_Write_Com(0x08); /*顯示關閉*/
LCD_Write_Com(0x01); /*顯示清屏*/
LCD_Write_Com(0x06); /*顯示光標移動設置*/
DelayMs(5);
LCD_Write_Com(0x0C); /*顯示開及光標設置*/
}
/*------------------------------------------------
主函數[上面已經把顯示功能封裝好了,今后再寫其他顯示就直接調用]
------------------------------------------------*/
void main(void)
{
LCD_Init();
LCD_Clear();//清屏
while (1)
{
LCD_Write_Char(7,0,‘o’);
LCD_Write_Char(8,0,‘k’);
LCD_Write_String(1,1,“www.doflye.net”);
while(1);
}
}
評論