#include <reg51.h>
sbit RS=P3^0;
sbit EN=P3^1;
sbit A=P1^0;
void dela_ms (int so_ms )
{
int i,j;
for(i=0;i<=so_ms;i++)
{
for(j=0;j<=300;j++);
}
}
//Ham viet lenh
void viet_lenh(unsigned char lenh)
{
RS=0;//Viet lenh
P2=lenh;
EN=0;EN=1;
dela_ms(10);
}
//Ham viet data
void viet_data(unsigned char dataCD)
{
RS=1;//Viet data
P2=dataCD;
EN=0;EN=1;
dela_ms(10);
}
//ham viet chuoi
void viet_chuoi(char *chuoi)
{
while(*chuoi)
{
viet_data(*chuoi);
//++chuoi;
chuoi=chuoi+1;
}
}
//ham viet so
void viet_so(int so)
{
unsigned char tram, chuc, dv;
tram=so/100;
chuc=(so%100)/10;
dv=(so%100)%10;
viet_data(tram+48);
viet_data(chuc+48);
viet_data(dv+48);
}
void vt_ctr(unsigned char x, unsigned char y){
unsigned char address;
if(!y)address=(0x80+x);
else address=(0xc0+x);
dela_ms(100);
viet_lenh(address);
dela_ms(50);
}
//Ham vi tri con tro
//void vt_ctr(unsigned char x,unsigned char y)
//{
// unsigned char i;
// switch (y)
// {
// case 1:
// {
// viet_lenh(0x80);
// break;
// }
// case 2:
// {
// viet_lenh(0xc0);
// break;
// }
// }
// for(i=1;i<=x;i++)
// {
// viet_lenh(0x20);
// dela_ms(10);
// }
//}
void main()
{
viet_lenh(0x03);
viet_lenh(0x38);//8bit 2 dong
viet_lenh(0x06);
viet_lenh(0x0e);//
viet_lenh(0x01);//xoa man hinh
viet_lenh(0x80);// tro ve o dau tien
viet_chuoi("LCD DBOT");
// viet_lenh(0xc0);//xuong dong ve dau dong
if(A==1)
{
vt_ctr(1,0);
viet_lenh(0x01);
viet_so(123);
}
while(1);
}