Em dùng code này để test lcd mà không được, các bác xem hộ em có sai chỗ nào k.bác nào có code test càng đơn giản càng tốt thì cho em mượn e test ạ hihi. em đang muốn làm 1 số bài tập liên quan đến lcd lên cần test xem n có chạy k ạ
#include <REGX51.H>
#include <stdio.h>
#include <string.h>
sbit rs=P3^0;
sbit rw=P3^1;
sbit e =P3^2;
void delayms(int n)
{ int i;
for(i=0;i<n;i++)
{
TMOD=0x21; //ghi tu dieu khien vao thanh ghi tmode
TH0=0xfc; //chon timer0 che do 1
TL0=0x18;
TR0=1;
while(TF0==0)
{}
TF0=0;
}
}
void LCD_write(unsigned char x) // gui du lieu len man hinh
{
rs=1; // chon thanh ghi du lieu
rw=0; // chon che do ghi du lieu
P0= x; // dua ra tren cong P0 gia tri du lieu
e=1; // dua chan cho phep tu cao xuong thap de chot du lieu
e=0;
delayms(1);
}
void LCD_cmd(unsigned char x) // gui lenh len man hinh
{
rs=0; // chon thanh ghi lenh
rw=0; // chon che do ghi du lieu
P0= x; // dua ra tren cong P0 gia tri du lieu
e=1; // dua chan cho phep tu cao xuong thap de chot du lieu
e=0;
delayms(1); // cho cho den khi lenh gui da hoan tat
}
void LCD_init() // khoi tao man hinh LCD
{ LCD_cmd(0x01); // xoa man hinh
LCD_cmd(0x38); // hai hang ma tran 5x7
LCD_cmd(0x0c); // bat man hinh tat con tro
LCD_cmd(0x06); // dich con tro sang phai mot don vi
LCD_cmd(0x80); // dat con tro ve dau dong thu nhat
}
void text1()
{
unsigned char m;
char text[16]="chua co du lieu!";
LCD_cmd(0x01); // xoa man hinh
LCD_cmd(0x80);
for(m=0;m<strlen(text);m++)
{
LCD_write(text[m]);
}
}
void text2()
{
unsigned char m;
char text[16]="dientuvietnam";
LCD_cmd(0x01); // xoa man hinh
LCD_cmd(0x80);
for(m=0;m<strlen(text);m++)
{
LCD_write(text[m]);
}
}
void text3()
{
unsigned char m;
char text[16]=" chuc vui ! ";
LCD_cmd(0x01); // xoa man hinh
LCD_cmd(0x80);
for(m=0;m<strlen(text);m++)
{
LCD_write(text[m]);
}
}
main()
{ LCD_init();
for(
{
text1();delayms(2000);
text2();delayms(2000);
text3();delayms(2000);
}
}
#include <REGX51.H>
#include <stdio.h>
#include <string.h>
sbit rs=P3^0;
sbit rw=P3^1;
sbit e =P3^2;
void delayms(int n)
{ int i;
for(i=0;i<n;i++)
{
TMOD=0x21; //ghi tu dieu khien vao thanh ghi tmode
TH0=0xfc; //chon timer0 che do 1
TL0=0x18;
TR0=1;
while(TF0==0)
{}
TF0=0;
}
}
void LCD_write(unsigned char x) // gui du lieu len man hinh
{
rs=1; // chon thanh ghi du lieu
rw=0; // chon che do ghi du lieu
P0= x; // dua ra tren cong P0 gia tri du lieu
e=1; // dua chan cho phep tu cao xuong thap de chot du lieu
e=0;
delayms(1);
}
void LCD_cmd(unsigned char x) // gui lenh len man hinh
{
rs=0; // chon thanh ghi lenh
rw=0; // chon che do ghi du lieu
P0= x; // dua ra tren cong P0 gia tri du lieu
e=1; // dua chan cho phep tu cao xuong thap de chot du lieu
e=0;
delayms(1); // cho cho den khi lenh gui da hoan tat
}
void LCD_init() // khoi tao man hinh LCD
{ LCD_cmd(0x01); // xoa man hinh
LCD_cmd(0x38); // hai hang ma tran 5x7
LCD_cmd(0x0c); // bat man hinh tat con tro
LCD_cmd(0x06); // dich con tro sang phai mot don vi
LCD_cmd(0x80); // dat con tro ve dau dong thu nhat
}
void text1()
{
unsigned char m;
char text[16]="chua co du lieu!";
LCD_cmd(0x01); // xoa man hinh
LCD_cmd(0x80);
for(m=0;m<strlen(text);m++)
{
LCD_write(text[m]);
}
}
void text2()
{
unsigned char m;
char text[16]="dientuvietnam";
LCD_cmd(0x01); // xoa man hinh
LCD_cmd(0x80);
for(m=0;m<strlen(text);m++)
{
LCD_write(text[m]);
}
}
void text3()
{
unsigned char m;
char text[16]=" chuc vui ! ";
LCD_cmd(0x01); // xoa man hinh
LCD_cmd(0x80);
for(m=0;m<strlen(text);m++)
{
LCD_write(text[m]);
}
}
main()
{ LCD_init();
for(
{
text1();delayms(2000);
text2();delayms(2000);
text3();delayms(2000);
}
}
Comment