PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > dsPIC - Bộ điều khiển tín hiệu số 16-bit

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

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
Prev Previous Post   Next Post Next
Old 29-01-2013, 12:45 PM   #1
nupakachi
Đệ tử 1 túi
 
Tham gia ngày: Jan 2013
Bài gửi: 21
:
giúp code LCD

các anh ơi giúp em đoạn code lcd này vơi. Em biên dich chạy ngon lành nhưng khi nạp vào mạch mô phỏng thì không chạy.
em cảm ơn!
#include"p24fj128ga010.h"
#define delay 250
_CONFIG1(JTAGEN_OFF & GCP_OFF & GWRP_OFF & BKBUG_OFF & COE_OFF & FWDTEN_OFF)
_CONFIG2(FCKSM_CSDCMD & OSCIOFNC_ON & POSCMOD_HS & FNOSC_PRIPLL)
/*************************************/
#define lcd_en LATBbits.RB13
#define lcd_rs LATBbits.RB14
#define lcd_rw LATBbits.RB15
#define lcd_db7 LATBbits.RB3
#define lcd_db6 LATBbits.RB2
#define lcd_db5 LATBbits.RB1
#define lcd_db4 LATBbits.RB0
#define lcd_tris TRISB
/************************************/
void T1_init();
void delay_ms(unsigned int time);
void lcd_config();
void lcd_write(unsigned char lenh);
void lcd_b(unsigned char data);
void lcd_putchar( char ch);
void lcd_putstring( char *st);
void lcd_port();
unsigned char flag=0,i=0;
void T1_init()
{
TMR1=0;
PR1=delay;
T1CON=0x8000;
_T1IF=0;
_T1IE=1;
}
void delay_ms(unsigned int time)
{
PR1=time*delay;
T1CONbits.TON=1;
flag=0;
while(flag==1);
T1CONbits.TON=0;
TMR1=0;
}
void lcd_b(unsigned char data)
{
_LATB14=1;
_LATB15=0;
//xuat 4 bit cao
_LATB3=(data>>7)&1;
_LATB2=(data>>6)&1;
_LATB1=(data>>5)&1;
_LATB0=(data>>4)&1;
//xuat 4 bit thap
_LATB3=(data>>3)&1;
_LATB2=(data>>2)&1;
_LATB1=(data>>1)&1;
_LATB0=(data)&1;
_LATB13=1;
for(i=0;i<2;i++)
_LATB13=0;
}
void lcd_write(unsigned char lenh )
{
_LATB14=0;
lcd_b(lenh);
delay_ms(10);
_LATB13=1;
for(i=0;i<2;i++)
_LATB13=0;
}
void lcd_putchar(char ch)
{
_LATB14=1;
_LATB15=0;
lcd_b(ch);
_LATB13=1;
for(i=0;i<2;i++)
_LATB13=0;
}
void lcd_putstring(char *st)
{
while(*st)
{
lcd_putchar(*st);
st++;
};
}
void lcd_config()
{
lcd_write(0x28);
delay_ms(1);
lcd_write(0x06);
delay_ms(1);
lcd_write(0x0C);
delay_ms(1);
lcd_write(0x01);
delay_ms(1);
lcd_write(0x02);
delay_ms(1);
lcd_write(0x08);
delay_ms(1);
lcd_write(0x0E);
delay_ms(1);
lcd_write(0x0F);
delay_ms(1);
lcd_write(0x80);
delay_ms(1);
lcd_write(0xC0);
delay_ms(1);
}
void lcd_port()
{
LATB=0;
lcd_tris=0X1FF0;
}
void _ISR_T1Interrupt(void)
{
_T1IF=0;
flag=1;
}
int main()
{
lcd_port();
delay_ms(10);
lcd_config();
delay_ms(50);
T1_init();
lcd_putstring("chu khanh");
delay_ms(10);
lcd_putstring("dt5-k55");
while(1);
}
Hình Kèm Theo
File Type: png lcd.png (240.0 KB, 4 lần tải)
nupakachi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 06:36 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam