|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
04-12-2011, 09:28 AM | #6 |
Đệ tử 2 túi
Tham gia ngày: Nov 2010
Bài gửi: 26
: |
cám ơn bạn nhưng cũng thế ah, không hiện được chữ,hiện 2 dòng màu đen thui,y như chỉ có mỗi nguồn thôi,bí wa lên tìm thầy thầy đưa cho code làm hiển thị chữ,mô phỏng thì bình thường nhưng khi ráp thực tế LCD này từ 20x4 bây giờ chỉ con lại 10x2,nghĩa chữ cách chữ 1 ký tự (A B C) TDM biết chỉ giùm với
#include <16f877a.h> #include <DEF_16F877A.h> #DEVICE *=16 ADC=10 #fuses NOWDT,NOPROTECT,NOLVP,HS,NOPUT,NODEBUG, NOBROWNOUT,NOCPD, NOWRT #use delay(clock=12000000) #define RS RD4 #define RW RD5 #define E RD6 #define lcd portb //int SEC,MIN,HOUR,DAY,WEEK,MONTH,YEAR,TEST; //int SECI,MINI,HOURI,DAYI,WEEKI,MONTHI,YEARI,TESTI,SECT EMP,CONTROL; const unsigned char TEMP[]="TEMPERATURE "; INT I; void COMMON_LCD(VOID) { RW=0; E=0; E=1; DELAY_MS(1); RW=1; RS=0; E=0; DELAY_MS(1); E=1; DELAY_MS(10); } void COMMAND_WRITE(VOID) //WRITE DATA TO CONTROL LCD { RS=0; COMMON_LCD(); } void DATAWRITE(VOID) //WRITE DATA TO LCD TO DISPLAY { RS=1; COMMON_LCD(); } VOID SETUP_LCD (VOID) { E=1; RS=0; RW=0; LCD=(0x38); //SETUP LCD DISPLAY TWO LINES COMMAND_WRITE(); DELAY_MS(50); LCD=(0x38); //SETUP LCD DISPLAY TWO LINES COMMAND_WRITE(); DELAY_MS(1); LCD=(0x38); COMMAND_WRITE(); LCD=(0x0C); //SETUP DISPLAY CONTROL COMMAND_WRITE(); LCD=(0x01); //CLEAR DISPLAY COMMAND_WRITE(); LCD=(0x06); COMMAND_WRITE(); } //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX void main() { SET_TRIS_B(0x00); //SETUP PORT B IS OUTPUT SET_TRIS_D(0x00); SETUP_LCD (); LCD=(0x80); //SETUT ADDRESS FOR FIRST LINE COMMAND_WRITE(); DELAY_MS(50); WHILE(I<=11)// TO DISPLAY A TEXT "TEMPERATURE" { LCD=TEMP[I]; DATAWRITE(); DELAY_MS(100); I++; } } |
|
|