![]() |
|
Tài trợ cho PIC Vietnam |
dsPIC - Bộ điều khiển tín hiệu số 16-bit Theo dự kiến của Microchip, vào khoảng năm 2011 dsPIC sẽ có doanh số lớn hơn PIC |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
Đệ tử 2 túi
Tham gia ngày: Nov 2008
Bài gửi: 42
: |
Anh nam ơi, có một đoạn code thế này, em đọc nhưng chưa hiểu hết được, anh có thể giải thích cho em kỹ hơn không ?
// Function: LCD_CMD // Description: Send command to LCD // Input: Command code // Output: None // //************************************************** *************************// 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 } //************************* End of LCD_CMD *********************************// //************************************************** *************************// // // Function: LCD_DATA // Description: Send data to LCD // Input: Command code // Output: None // //************************************************** *************************// void LCD_DAT(unsigned char DATA) { unsigned char TempData; // LCDdelayms(1); LCD_RS = 1; //Dat che do xuat du lieu TempData = LCD_DATA & 0xFFF0; //Lay trang thai hien thoi cua LCD_DATA LCD_DATA = TempData | (DATA >> 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 | (DATA & 0x0F); //Xuat 4 bit thap LCD_EN = 1; ShortDelay(); LCD_EN = 0; //Xung Enable } Cám ơn anh nhiều ! |
![]() |
![]() |
![]() |
#2 |
Đệ 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 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 |
![]() |
![]() |
![]() |
Tags |
alphanumeric lcd, input read |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
Học CCS thông qua Tutorial PICVIETNAM | FFGmember | Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) | 105 | 08-09-2017 04:12 PM |
dsPIC Tutorial 2-Các kỹ thuật cơ bản | namqn | dsPIC - Bộ điều khiển tín hiệu số 16-bit | 33 | 17-10-2013 11:09 PM |
dsPIC Tutorial 5-Module ADC và MCPWM | namqn | dsPIC - Bộ điều khiển tín hiệu số 16-bit | 83 | 12-09-2013 10:33 PM |
dsPIC Tutorial 1-Tạo và biên dịch một project (ASM30) | namqn | dsPIC - Bộ điều khiển tín hiệu số 16-bit | 16 | 22-08-2012 12:35 AM |
dsPIC Tutorial 4-Module UART và I2C | namqn | dsPIC - Bộ điều khiển tín hiệu số 16-bit | 76 | 09-05-2012 10:55 AM |