1602液晶显示
液晶有1,2端為電源。15、16為背光源。為防止直接加5V電壓燒壞背光燈,在15腳串接一個(gè)10歐的電阻用于限流。
液晶3端為液晶對(duì)照度調(diào)節(jié)端。通過(guò)一個(gè)10k歐電位器接地來(lái)調(diào)節(jié)液晶顯示的對(duì)照度。
液晶的4端為液晶控制器寫(xiě)數(shù)據(jù)/讀數(shù)據(jù)選擇端,接P3.5口
液晶5端為讀/寫(xiě)選擇端。由于我們不從液晶讀取不論什么數(shù)據(jù),僅僅向其寫(xiě)入命令和數(shù)據(jù),因此此端始終選擇為寫(xiě)狀態(tài)。即始終接地。
液晶 6端為使能信號(hào),是操作時(shí)必需的信號(hào),接單片機(jī)的P3.4口。
寫(xiě) 操作時(shí)序
(1)通過(guò)RS確定是寫(xiě)數(shù)據(jù)還是寫(xiě)命令。寫(xiě)命令包含使液晶的光標(biāo)顯示/不顯示、光標(biāo)閃爍/不閃爍、需/不須要移屏、在液晶的什么位置顯示,等等
(2)讀/寫(xiě)控制端的設(shè)置為寫(xiě)模式。即低電平
(3)將數(shù)據(jù)或命令送達(dá)數(shù)據(jù)線上
(4)給E一個(gè)高脈沖將數(shù)據(jù)送入液晶控制器,完畢寫(xiě)操作
一下是我寫(xiě)的一個(gè)程序
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="GOOD GOOD STUDY!";
uchar code table1[]="DAY DAY UP ^_^!";
sbit lcden=P3^4;
sbit rs=P3^5;
sbit dula=P2^6;
sbit wela=P2^7;
uchar num;
void delay(unsigned char i)
{
unsigned char j,k;
for(j=i;j>0;j--)
for(k=90;k>0;k--);
}
void write_com(uchar com)
{
rs=0;//選擇寫(xiě)指令
P0=com; //將要寫(xiě)的命令送到數(shù)據(jù)總線上
delay(5);
lcden=1; ?//使能端給一高脈沖。由于初始化函數(shù)中已將lcd置為0
delay(5);
lcden=0; ?//完畢高脈沖
}
void write_data(uchar date)
{
rs=1; //寫(xiě)數(shù)據(jù)
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()
{
dula=0;
wela=0;
lcden=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
void main()
{
init();
write_com(0x80);
for(num=0;num<16;num++)
{
write_data(table[num]);
delay(5);
}
write_com(0x80+0x40);
for(num=0;num<15;num++)
{
write_data(table1[num]);
delay(5);
}
while(1);
}
通過(guò) 這個(gè)能夠?qū)懸恍┖?jiǎn)單的時(shí)序了
看懂 時(shí)序圖
轉(zhuǎn)載于:https://www.cnblogs.com/yangykaifa/p/7096319.html
總結(jié)
- 上一篇: 第六次课程作业
- 下一篇: 【原创】tarjan算法初步(强连通子图