Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 6

Cho cc bn hm nay mnh chuyn sang bi iu khin LCD 16X 2 nha !

Trng c v phc tp
nhng qut LCD c khi dn hn matrix rt nhiu . Chng ta mi tm hiu LCD 8 bit , xut 4 bit
sau.

LCD 16x2

Chng ta i tm hiu mt cht v LCD 162 :


y l loi gm 16 k t x2 dng ,mi k t c to ra t mt ma trn im sng kch c 57
hoc 510
S chn:

Chn 15 v chn 16: ghi l A v K. N l anot v katot ca mt con led dng sng LCD trong
bng ti, chng ta c th k ni , nu s dng ni chn 15 vi tr 220 or 330 m ln VCC , chn 16
ni t.
mch hot ng chng ta mc theo s sau y:

Trn l s theo v d ca mnh , cc bn c th mc bt k u ty ng dng ca bn..Thng


chn d liu dng Port 0 hoc Port 2 VK , thit k mch in nn IC di gm LCD cho nh gn
.
* Nguyn l hot ng
-Cc chn 1,2,3 l cc chn VSS , VDD, VEE trong VSS chn ni t , VEE chn chn
tng phn chn ny dc chn qua 1 bin tr 5K mt u ni VCC , mt u ni mt . Chn VDD
ni dng ngun .
- Chn chn thanh ghi RS (Register Select): C hai thanh ghi trong LCD, chn RS(Register Select)
c dng chn thanh ghi, nh sau:
Nu RS = 0 ch ghi lnh nh xa mn hnh , bt tt con tr
Nu RS =1 ch ghi d liu nh hin th k t , ch s ln mn hnh .
-Chn c/ ghi (R/W): u vo c/ ghi cho php ngi dng ghi thng tin ln LCD khi R/W = 0
hoc c thng tin LCD khi
R/W = 1.
-Chn cho php E (Enable): Chn cho php E c s dng bi LCD cht d liu ca n. Khi
d liu c n chn d liu th cn c 1 xung t mc cao xung mc thp chn ny LCD
cht d liu , xung ny phi c rng ti thiu 450ns.
Chn D0 D7: y l 8 chn d liu 8 bt, c dng gi thng tin ln LCD hoc c ni dung
ca cc thanh ghi trong
LCD. hin th cc ch ci v cc con s chng ta gi cc m ASCII ca cc ch ci v cc con
s tng ng n cc chn ny khi bt RS =1;
* Bng m lnh trong LCD 162 :

iu khin LCD qua cc bc sau :


-Chnh tng phn LCD cho thch hp , nhiu trng hp k ch LCD tng phn qu thp
k nhn thy g => i li cho mch hng.
-Khi to LCD set s dng , bt tt con tr
- Gn gi tr thch hp cho cc chn iu khin RS, RW ,E vi cc ch
- Xut d liu vo POrt data- Kim tra LCD c bn k tin hnh xut tip.
-Quay li bc 1.
Chng ta i vo v d c th . y mnh s xut ch http://machdientu.net ln 2 dng ca LCD

Code :
#include "REGX52.H"
#include "stdio.H"
//------------Khoi tao bien va cac gia tri gan-------------//
sbit RS_LCD = P2^5;
sbit RW_LCD = P2^6;
sbit E_LCD = P2^7;
//---------------Sau day la cac chuong trinh con------------//
//--------------Ham tre khoang thoi gian rat ngan phuc vu viec kiem tr co
ban---------------//
void delay_short()
{
unsigned int i;
for(i=0;i<3;i++);
}//--------------****------------------//
//------------Ham tre 2---------------//
void delay(unsigned int time) // Thoi gian time ms
{
TMOD = 0x01; // Timer 0 che do 1
while (time--)
{
TH0 = -1000/256;
TL0 = -1000%256;
TR0 = 1;
while (!TF0);
TR0 = 0;
TF0 = 0;
}
}
//-----------------******----------------//
//--------------Ham kiem tra co ban (busy_flag)--------------??
void kt_ban()

{
unsigned char x;
P0 = 0xff;
RS_LCD = 0;
RW_LCD = 1;
do
{
E_LCD = 1;
delay(50);
E_LCD = 0;
x=P0;
x=x&0x80;
}
while(x!=0x80);
}//-----------*******--------------------//
//---------------Ham ghi lenh giao tiep voi LCD---------------//
void ghi_lenh(unsigned char lenh)
{
kt_ban();
delay(50);
P0 = lenh;
RS_LCD = 0; // Chon thanh ghi lenh
RW_LCD = 0; // Chon che do ghi du lieu tu 8051 vao LCD
E_LCD = 1;
delay_short();
E_LCD = 0;
}//------------*******-----------------//
//-----------Ham ghi ky tu ra LCD------------//
void ghi_kytu(unsigned char kytu)
{
kt_ban();
delay(50);
P0 = kytu;
RS_LCD = 1; // Chon che do doc du lieu tu 8051
RW_LCD = 0;
E_LCD =1;
delay_short();
E_LCD = 0;
}//------------*******-----------------//
//-----------Ham ghi nhanh ky tu ra LCD------------//
void ghi_nhanh ( unsigned char kytu)
{
delay_short();
P0 = kytu;
RS_LCD = 1;
RW_LCD = 0;
E_LCD = 1;
delay_short();
E_LCD = 0;
}//--------------***********-------------//
//-----------Ham ghi chuoi ky tu ra LCD------------//
void ghi_chuoi(char *str)
{
while(*str)
{
delay(50);
ghi_kytu(*str);
str++;

}
}//-----------********------------//
//-----------Ham ghi nhanh chuoi ky tu ra LCD------------//
void ghi_nhanh_chuoi(char *str)
{
while(*str){
ghi_nhanh(*str);
str++;
}
}
//-----------************------------//
//-----------Ham ghi so nguyen ra LCD------------//
void ghi_so_nguyen(unsigned char so)
{
unsigned char a,b,c;
a=so/100; // Lay phan tram
b=(so-100*a)/10; // Lay phan chuc
c=(so-100*a-10*b); // Lay phan don vi
ghi_nhanh(a+48); // Doi ra hang tram, ma ascii
ghi_nhanh(b+48); // Doi ra hang chuc, ma ascii
ghi_nhanh(c+48); // Doi ra hang don vi, ma ascii
}
//-----------***********------------//
//-----------Ham khoi tao LCD------------//
void setting_LCD()
{
ghi_lenh(0x38);
ghi_lenh(0x01); // Xoa man hinh
ghi_lenh(0x0f); // Co dich hien thi
}
//-----------**********------------//
/*********************************/
/* CON DAY LA CHUONG TRINH CHINH */
/* ----------??????--------------*/
/*********************************/
void main()
{
setting_LCD();
ghi_lenh(0x01);
ghi_lenh(0x0c);
ghi_chuoi("http://");
ghi_lenh(0xc0);
ghi_lenh(0x0c);
ghi_chuoi("machdientu.net");
delay(300);
while(1);

You might also like