|
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 |
19-11-2012, 03:14 PM | #1 |
Nhập môn đệ tử
Tham gia ngày: Aug 2012
Bài gửi: 3
: |
Không hiển thị được LCD
code LCD của mình như sau,dspic33fj32mc204
//chương trình thực hiện xuất VuVietPhuc Bkhn ra lcd.lcd 16*2,giao tiếp 8 bit.portb từ bo-b7 nối d0-d7 của lcd.rs,rw,en lần lượt nối với portA0,A1,A2 #include <p33FJ32MC204.h> #include <delay.h> #include <stdlib.h> #include <string.h> #include <stdio.h> #define RS LATAbits.LATA0 #define RW LATAbits.LATA1 #define EN LATAbits.LATA2 #define D7 LATBbits.LATB7 void lcd_cmd(unsigned char cmd) { TRISB=0; TRISA=0; LATB=cmd;//Dua lenh len RS=0;//lenh nen RS=0 RW=0;//write EN=1;//EN tu 1 xuong 0 de nhan du lieu lenh tu cong EN=0; LCD_busy(); } void LCD_busy() { TRISB=0; TRISA=0; D7 = 1; //Make D7th bit of LCD as i/p EN = 1; //Make port pin as o/p RS = 0; //Selected command register RW = 1; //We are reading while(D7){ //read busy flag again and again till it becomes 0 EN = 0; //Enable H->L EN = 1; } } void initLCD()//khoi dong LCD { lcd_cmd(0x38);//Function set .giao tiep 8 bit, 2 dòng voi font 5x8 lcd_cmd(0x0E);//xác lap cách hien thi cho LCD. hien thi cursor nhung không hien thi blinking lcd_cmd(0x01);//xoa hien thi lcd_cmd(0x06);//Entry mode set .xac lap các hien thi lien tiep cho LCD=>hien thi tang và không shift } void xoaLCD() { lcd_cmd(0x01); } void lcd_data(unsigned char data) { TRISB=0; TRISA=0; LATB=data; RS=1;//data nen RS=1 RW=0;//write EN=1; EN=0; LCD_busy(); } void write_string(char *msg) { while(*msg) { lcd_data(*msg); msg++; } } void LCD_gotoxy(unsigned int y,unsigned x)//dieu khien vi tri con tro { int ad=64*(y-1)+x-1+0x80; lcd_cmd(ad); } int main() { TRISB=0; TRISA=0; initLCD(); LCD_gotoxy(1,1);//de con tro o dau write_string("VuVietPhuc"); LCD_gotoxy(2,1); write_string("Bkhn"); return 0; } thay đổi nội dung bởi: vietphuc91, 19-11-2012 lúc 03:21 PM. |
|
|