|
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 |
27-05-2013, 01:38 AM | #1 |
Đệ tử 3 túi
Tham gia ngày: Apr 2008
Bài gửi: 50
: |
Giúp em lỗi đoạn code hiển thị lên lcd 16x2
Em viết đoạn code này, k biết bị sai chỗ nào mà lcd k hiển thị lên chuỗi kí tự như mong muốn. Ace xem giúp.
#include <p30F6014.h> #define RS LATBbits.LATB4 #define RW LATBbits.LATB5 #define E LATBbits.LATB6 #define FCY 10000UL #include <libpic30.h> _FOSC(HS & CSW_FSCM_OFF); _FWDT (WDT_OFF); _FBORPOR (PBOR_OFF); _FGS (GWRP_OFF); int i,x,nghin, chuc,tram,donvi; void LCD_intall(),write_lc(); void LCD_Command(),LCD_Data(); const int ki_tu[]={'C','h','u','0','n','g',' ','t','r','i','n','h',' ','m','a','u'}; void write_h2(); void main(){ TRISD = 0x00; TRISB = 0x00; LCD_intall(); write_lc(); while(1); } void LCD_intall(){ LATD = 0x01; LCD_Command(); LATD = 0x0E; LCD_Command(); LATD = 0x06; LCD_Command(); LATD = 0x80; LCD_Command(); LATD = 0x38;// LCD hien thi 2 hang 5x8, giao tiep 8 bits LCD_Command(); } void LCD_Command()// Gui lenh len lcd { RS = 0; RW = 0; E = 1; __delay_us(50); E = 0; } void LCD_Data()// Ghi du lieu len lcd { RS=1; RW=0; E=1; __delay_us(50); E=0; } void write_lc() { for(i=0;i<16;i++) { LATD = ki_tu[i]; LCD_Data(); __delay_ms(50); } } void write_h2() { LATD = nghin+0x30; LCD_Data(); __delay_us(40); LATD = tram+0x30; LCD_Data(); __delay_us(40); LATD = chuc+0x30; LCD_Data(); __delay_us(40); LATD = donvi+0x30; LCD_Data(); __delay_us(40); } |
|
|