Bảng mã lệnh của LCD:

Một phần của tài liệu Lập trình cho họ vi điều khiển 8051 (Trang 31 - 34)

Mã (HEX) Lệnh đến thanh ghi của LCD

01 Xoá màn hình hiển thị

02 Trở về đầu dòng

04 Giảm con trỏ(dịch con trỏ sang trái )

06 Tăng con trỏ(dịch con trỏ sang phải)

05 Dịch hiển thị sang phải

07 Dịch hiển thị sang trái

08 Tắt con trỏ, tắt hiển thị

0a Tắt hiển thị, bật con trỏ

0c Bật hiển thi, tắt con trỏ

0e Bật hiển thị, nhấp nháy con trỏ

0f Tắt con trỏ, nhấp nháy con trỏ

10 Dịch vị trí con trỏ sang trái

14 Dịch vị trí con trỏ sang phải

18 Dịch toàn bộ hiển thị sang trái

1c Dịch toàn bộ hiển thị sang phải

80 Ép con trỏ về đầu dòng thứ nhất

0c0 Ép con trỏ về đầu dòng thứ 2

38 Hai dòng và ma tận 5x7.

3. Phần luyện tập:

Hãy viết chương trình hiển thị trên LCD:

Dòng 1 chữ “VIETNAM” bằng cách hiển thị tưng kí tự

Dòng 2 chữ "VI DIEU KHIEN" bằng cách hiển thị cả chữ. Với sơ đồ mạch cho dướí đây. mạch cho dướí đây.

Chương trình:

/*=========bo tien xu li===============*/ #include<AT89x51.h> #include<AT89x51.h>

#include<string.h>

/*===========khai bao bien toan cuc============*/ sfr LCDdata = 0xA0; // cong P2, 8 bit du lieu. sfr LCDdata = 0xA0; // cong P2, 8 bit du lieu.

sbit BF = 0xA7; // co ban, bit DB7. sbit RS = P3^0; // chon thanh ghi sbit RS = P3^0; // chon thanh ghi sbit RW = P3^1; // doc/ghi

sbit EN = P3^2; //cho phep chot du lieu

/*===========cac chuong trinh con cua LCD==========*/ /*---kiem tra su san sang cua LCD---*/ /*---kiem tra su san sang cua LCD---*/ void wait(void)

{

RS=0; //chon thanh ghi lenh RW=1; //đoc tu LCD RW=1; //đoc tu LCD

while(BF) //kiem tra co ban

{

EN=0; //dua xung cao xuong thap đe chot. EN=1; //dua chan cho phep len cao EN=1; //dua chan cho phep len cao

}

}

/*---thiet lap lenh cho LCD---*/ void LCDcontrol(unsigned char x) void LCDcontrol(unsigned char x)

{

RS=0;//chon thanh ghi lenh RW=0;//ghi len LCD. RW=0;//ghi len LCD. LCDdata=x ;// gia tri x

EN=1;//cho phep muc cao EN=0;//xung cao xuong thap EN=0;//xung cao xuong thap wait();//đoi LCD san sang. }

/*---Khoi tao LCD---*/ void LCDinit(void) void LCDinit(void)

{

LCDcontrol(0x38);//2 dong va ma tran 5x7 LCDcontrol(0x0e);//bat man hinh, bat con tro LCDcontrol(0x0e);//bat man hinh, bat con tro LCDcontrol(0x01);//xoa man hinh

}

/*---thiet lap du lieu cho LCD---*/ void LCDwrite(unsigned char c) void LCDwrite(unsigned char c)

{

RS=1;//ghi du lieu

RW=0;//ghi du lieu len LCD LCDdata=c;//gia tri C LCDdata=c;//gia tri C

EN=1;//cho phep muc cao EN=0;//xung cao xuong thap EN=0;//xung cao xuong thap wait();//cho

}

{

unsigned char data lens,count; lens=strlen(s); lens=strlen(s);

for(count=0;count<lens;count++){ LCDwrite(*(s+count)); LCDwrite(*(s+count)); }

}

/*=====================chuong trinh tre================*/ void delay(long time) void delay(long time)

{ while(time--); while(time--); } /*========================ham chinh==================*/ void main(void) {

LCDinit(); // khoi tao LCD

LCDcontrol(0x82);// dua con tro den vi tri thu 4 dong 1 LCDwrite(„V‟); LCDwrite(„V‟); LCDwrite(„I‟); LCDwrite(„E‟); LCDwrite(„T‟); LCDwrite(„ ‟); LCDwrite(„N‟); LCDwrite(„A‟); LCDwrite(„M‟); LCDcontrol(0xC0);

LCDwrites("VI DIEU KHIEN"); while(1); //vong lap vo han while(1); //vong lap vo han }

Một phần của tài liệu Lập trình cho họ vi điều khiển 8051 (Trang 31 - 34)

Tải bản đầy đủ (PDF)

(72 trang)