#include <REGX52.H> sbit RS = P1^0; // sbit RW = P1^1; // dinh nghia cac chan mode sbit EN = P1^2; // void delay(unsigned int n) { unsigned int i,j; for(i=1;i<=n;i++) { for(j=1;j<=125;j++) // ham delay {} } } void delay30ms() { TMOD=0x01; TH1=35535/256; TL1=35535%256; TR1=1; // ham tre 30ms dung trong chuong trinh main while(!TF1); TR1=TF1=0; } // ham kiem tra ban. thuc ra ham kiem tra ban cung k can thiet vi LCD se thuc hien lenh rat nhanh vi vay ta chi can cho 1 delay nao do void busy() { delay(50);// chung nay la du? } // ham setup void caidat(unsigned char caidatLCD) { busy(); //kiemtra xem LCD co ban k P2=caidatLCD; RS=0; // RW=0; // che do ghi lenh EN=1; delay(50); EN=0; delay(50); // bat dau truyen du lieu } // ham ghi 1 ki tu void ghikitu(unsigned char kitu) { busy(); RS=1; // thanh ghi du lieu RW=0; // ghi du lieu P2=kitu; EN=1; // bat dau truyen delay(50); EN=0; delay(50); } void ghichuoi(char*s) { while(*s) { ghikitu(*s); s++; // day la ham ghi 1 chuoi }
} // ham trangthai void trangthai() { caidat(0x38); // ma trix 2 dong caidat(0xc0); caidat(0x06); // cac thong 0x38 0xc0 ... cac ban co the xem tap lenh cua lcd trong data sheet caidat(0x0e); caidat(0x01);
} // ham main void main() { delay30ms(); trangthai(); caidat(0x01); // xoa man hinh hien thi caidat(0x80); // dua con tro ve dau dong hien thi ghichuoi(" Rikikudo"); caidat(0xc0); // dua con tro xuong dong so 2 ghichuoi(" tdh2k5"); while(1);// cho chuong trinh dung lai tai day f7 nao/ quen chua chinh thong so thach anh @@
Copy đường link dưới đây gửi đến nick yahoo bạn bè!
[H30]LCD16x2 và lập trình
Trang 1 trong tổng số 1 trang
* Viết tiếng Việt có dấu, là tôn trọng người đọc. * Chia sẻ bài sưu tầm có ghi rỏ nguồn, là tôn trọng người viết. * Thực hiện những điều trên, là tôn trọng chính mình.
-Nếu chèn smilies có vấn đề thì bấm A/a trên phải khung viết bài YÊU CẦU VIẾT TIẾNG VIỆT CÓ DẤU