|
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 |
16-05-2013, 05:40 PM | #1 |
Nhập môn đệ tử
Tham gia ngày: May 2013
Bài gửi: 4
: |
các bác coi giúp bài test lcd 16x2 chên pic 18f4520 không chạy
anh em xem giúp mạch mô phỏng mình để bên rừi
#include <p18f4520.h> #include <stdio.h> #include <delays.h> #define rs LATEbits.LATE0 #define rw LATEbits.LATE1 #define en LATEbits.LATE1 #define LCD_DATA LATD char mang[40];//khai báo mảng kí tự void khoitao(void);//gọi hàm khởi tạo LCD void lenh(char l);//gọi hàm ghi lệnh void dulieu(char d); void chuoi(char *s); void delay(unsigned int t) { while(t--); } void io_init(void) { TRISA=0B11111111; TRISB=0B11111111; TRISC=0B11111111; TRISD=0B00001111; TRISE=0B000; } void khoitao(void) { lenh(0x02); lenh(0x28);//khởi tạo LCD 4 bít 2 dòng ma trận 5x7 lenh(0x0c);//bật hiển thị tắt con trỏ lenh(0x06);//dịch con trỏ sang phải lenh(0x01);//xóa màn hình } void lenh(char l) { rs=0;//cho phép ghi lệnh en=1;//enable lcd LCD_DATA=((LCD_DATA&0x0f)|(l&0xf0));//xóa 4 bít cao và cộng với 4 bít cao của data cần truyền en=0;//disable lcd en=1; LCD_DATA=((LCD_DATA&0x0f)|((l<<4)&0xf0));//xóa 4 bít cao và cộng với 4 bít thấp của dữ liệu en=0; delay(1000); } void dulieu(char d) { rs=1; en=1; LCD_DATA=((LCD_DATA&0x0f)|(d&0xf0)); //xóa 4 bít cao và cộng với 4 bít cao của data cần truyền en=0; en=1; LCD_DATA=((LCD_DATA&0x0f)|((d<<4)&0xf0)); //xóa 4 bít cao và cộng với 4 bít thấp của dữ liệu en=0; delay(1000); } void chuoi(char *s) { while(*s) { dulieu(*s); s++; } } void main() { io_init(); khoitao(); while(1) { lenh(0x80);//cho hiển thị bắt đầu từ kí tự đầu tiên dòng 1 sprintf(&mang[0],"xin chao");//chèn chuỗi vào màng chuoi(&mang[0]);//hiển thị từng kí tự của chuỗi } } |
|
|