View Single Post
Old 16-03-2009, 10:39 AM   #2
mtuankct
Đệ tử 6 túi
 
Tham gia ngày: Apr 2006
Bài gửi: 125
:
Bạn chưa hiểu chỗ nào? Theo mình trong chương trình này có 2 chương trình con, cái thứ nhất
Code:
void LCD_CMD(unsigned char CMD)
{
// LCDdelayms(1);
unsigned char TempData;
LCD_RS = 0; //Dat che do xuat lenh
TempData = LCD_DATA & 0xFFF0; //Lay trang thai hien thoi cua LCD_DATA
LCD_DATA = TempData | (CMD>>4); //Xuat 4 bit cao
LCD_EN = 1; ShortDelay(); LCD_EN = 0; //Xung Enable
TempData = LCD_DATA & 0xFFF0; //Lay trang thai hien thoi cua LCD_DATA
LCD_DATA = TempData| (CMD & 0x0F); //Xuat 4 bit thap
LCD_EN = 1; ShortDelay(); LCD_EN = 0; //Xung Enable
}
dùng để gửi một lệnh lên LCD, mã lệnh được truyền vào bằng tham số CMD, LCD hoạt động ở chế độ 4 bit
Dòng LCD_RS = 0; là đặt chế độ xuất lệnh
Dòng TempData = LCD_DATA & 0xFFF0; là đọc trạng thái của LCD và đồng thời xóa 4 bít thấp của trạng thái đọc về bằng phép &
Dòng LCD_DATA = TempData | (CMD>>4); là xuất 4 bít cao của lệnh bằng cách sử dụng lệnh OR bit và lệnh dịch bít để thu được 4 bít cao vào vị trí của 4 bít thấp trong TempData đã xóa ở lệnh trước
Hàm ShortDelay(); là để tạo thời gian trễ đảm bảo đủ thời gian đáp ứng của LCD
các lệnh và hàm còn lại cũng tuơng tự thế thôi
mtuankct vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn