Driver cho LCD CCS có sẵn thư viện mà bạn. chỉ cần khai báo
#include <lcd.c>//đường dẫn đến driver của thư viện
hoặc
#include "lcd.c" // đường dẫn đến driver nằm cùng thư mục project
sau #use delay là đc
còn định nghĩa cho các chân thì bạn thêm đoạn này vào đoạn đầu của driver lcd.c
Code:
#define LCD_ENABLE_ PIN PIN_B3 ////
#define LCD_RS_PIN PIN_B1 ////
#define LCD_RW_PIN PIN_B2 ////
#define LCD_DATA0 PIN_B4 ////
#define LCD_DATA1 PIN_B5 ////
#define LCD_DATA2 PIN_B6 ////
#define LCD_DATA3 PIN_B7 ////
(đã test trên cả proteus và mạch thật với 16F877A)
Nếu bạn nào chưa có (hoặc có nhưng phiên bản khác thì có thể tham khảo) file đính kèm
http://www.mediafire.com/?iqzzwmiurtm
(sao diễn đàn ko up đc file nhỉ?!)
Ý tưởng ADC của bạn khá hay nhưng phải làm mạch ngoài và vref khá chính xác
Tui có thể nói lại ý tưởng của bạn như sau:
Chia đôi mức điện áp với Vref bằng mức điện áp chia đôi này giả sử Vref=2.5V
Vậy từ 0-2.5V bạn đưa vào AN0. Từ 2.5 đến 5V bạn đưa vào AN1 (có thể dùng điôt ổn áp hoặc mạch giới hạn để mức điện áp vào từ 2.5-5V đưa vào AN1 cũng là 0 -2.5v)
trong phần mềm... bạn đọc giá trị của AN0 và AN1 rồi cộng dồn... sẽ đc 11bit ngay.
Mạch ngoài cũng khá phức tạp đây
