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