PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

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

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
Prev Previous Post   Next Post Next
Old 28-09-2009, 09:11 AM   #1
nguyen nam hung
Đệ tử 2 túi
 
Tham gia ngày: Jun 2008
Bài gửi: 26
:
Giúp jao tiep lcd 4 bit

mình đang viết chương trình đễ giao tiếp với lcd bằng 4 bit. nhung viết mải mà không chay. có ai jup minh với. code c:

#include<p18f4520.h>
#include<stdio.h>
#include<stdlib.h>
#include<delays.h>
#include<string.h>
#include<ADC.h>
#include<pwm.h>
#include<math.h>
#include <timers.h>

#pragma config WDT=OFF
#pragma config PWRT=OFF
#pragma config LVP=OFF
#pragma config PBADEN=OFF
#pragma config OSC=HS

//===============================
#define TOC_DO_DAT PORTAbits.RA0
#define TOC_DO_DO PORTAbits.RA1
#define MENU PORTEbits.RE0
#define UP PORTEbits.RE1
#define DOWN PORTEbits.RE2
#define EXIT PORTCbits.RC2
#define ENCODER_COUNT PORTCbits.RC0
#define PWM_PIC PORTCbits.RC1
#define SPEAKER PORTCbits.RC3
#define rs PORTBbits.RB0
#define wr PORTBbits.RB1
#define en PORTBbits.RB2
#define ON_OFF_LCD PORTBbits.RB3

#define data_lcd_7 PORTBbits.RB4
#define data_lcd_6 PORTBbits.RB5
#define data_lcd_5 PORTBbits.RB6
#define data_lcd_4 PORTBbits.RB7

//===============================
//dinh nghia cac chuoi
char chuoi1[16] = {"KIT THUC HANH! "};
char chuoi2[16] = {" PID SO VA VXL "};
char chuoi3[17] = {"DESIGNED BY HUNG"};
char chuoi4[16] = {" VERSION 1.0 "};
char chuoi5[16] = {" REBOOT.... "}; //HIEN THI QUA TRINH CAP NHAT LAI CAC THONG SO MAT DINH
char chuoi6[17] = {"CHE DO HOAT DONG"};
char chuoi7[7] = {"MENUAL"};
char chuoi8[5] = {"AUTO"};
char chuoi9[16] = {"NHAP BIEN PID "}; //CHI HIEN DONG NAY KHI DA CHON CHE DO AUTO
char chuoi10[4] = {"KP:"};
char chuoi11[4] = {"KI:"};
char chuoi12[4] = {"KD:"};
char chuoi13[9] = {"ENCODER:"};
char chuoi14[4] = {"X/V"};
char chuoi15[17] = {"GIA TRI MAT DINH"};
char chuoi16[4] = {"V/S"};
char chuoi17[4] = {"V0:"};
char chuoi18[4] = {"V1:"};
//=================================
int i;
int data;
//=================================
void khoi_dong_lcd(void);

void lay_key(void);
void sound(void);
void dieu_xung_2(int n);
void dieu_xung(int n);
void delay(void);
void delay_1s(void);
void delay_ms(unsigned int x_timer);
void beep(void);
void beep_ngan(void);
void beep_dai(void);
void dem_xung_hien_thi(void);

void ham_xuat_4_bit_cao( unsigned int data );
void ham_xuat_4_bit_thap( unsigned int data );
void ham_gui_lenhDK( unsigned int data );
void ham_gui_data( unsigned int data );

void wait_lcd (void);
//==================================
void main(void)
{
OpenPWM1(0xff);
SetDCPWM1(0);

ADCON1=0x09;//dung 5 chan adc dau tien
TRISA=0xFF;
TRISB=0x08;//00001000
TRISC=0x85;
TRISD=0;
TRISE=0XFF;
wr=0;
en=0;
sound();

Delay10KTCYx(25);
khoi_dong_lcd();
ham_gui_lenhDK(0x01);

ham_gui_lenhDK(0x80);
for(i=0;i<strlen(chuoi1);i++){
ham_gui_data(chuoi1[i]);
}
ham_gui_lenhDK(0xC0);
for(i=0;i<strlen(chuoi2);i++){
ham_gui_data(chuoi2[i]);
}
// sound();
// sound();


while(1)
{
ham_gui_lenhDK(0xC0);
for(i=0;i<strlen(chuoi3);i++){
ham_gui_data(chuoi3[i]);
sound();
}

}
}
//=======================================
void sound(void)
{
SPEAKER=1;
//delay_ms(1000);
delay_1s();
SPEAKER=0;
//delay_ms(1000);
delay_1s();
}
void delay_1s(void)
{
Delay10KTCYx(5);
}
void delay_ms(unsigned int x_timer)
{
int x_t;
for (x_t=0;x_t<x_timer;x_t++);
{
Delay10KTCYx(255);
}
}

//========================================
void delay(void)
{
int k;
for(k=0;k<2000;k++);
}
//========================================
void khoi_dong_lcd(void)
{
delay() ;
rs= 0;
wr = 0;
en= 0 ;
ham_xuat_4_bit_cao(0x28);
en= 1;
delay() ;
en= 0 ;

ham_gui_lenhDK(0x28);
ham_gui_lenhDK(0x0C);
ham_gui_lenhDK(0x06);
ham_gui_lenhDK(0x01);
ham_gui_lenhDK(0x02);
}

//==========dien dang dientuvietnam===========================
void ham_xuat_4_bit_thap( unsigned int data )
{
data_lcd_4 = (data & 0x01 );
data_lcd_5 = (data & 0x02 );
data_lcd_6 = (data & 0x04 );
data_lcd_7 = (data & 0x08 );
}

void ham_xuat_4_bit_cao( unsigned int data )
{
data_lcd_4 = (data & 0x10 );
data_lcd_5 = (data & 0x20 );
data_lcd_6 = (data & 0x40 );
data_lcd_7 = (data & 0x80 );
}

void ham_gui_lenhDK( unsigned int data )
{
wait_lcd ();
rs= 0;
wr = 0;

ham_xuat_4_bit_cao(data); // gui 4 bit cao
en= 1;
delay() ;
en= 0 ;


ham_xuat_4_bit_thap(data); // gui 4 bit thap
en= 1;
delay() ;
en = 0 ;

}

void ham_gui_data( unsigned int data )
{
wait_lcd ();
rs = 1 ;
wr = 0 ;

ham_xuat_4_bit_cao(data); // gui 4 bit cao
en= 1;
delay() ;
en= 0 ; // tao xung tren chan E

ham_xuat_4_bit_thap(data); //gui 4 bit thap
en= 1;
delay() ;
en= 0 ; // tao xung tren chan E
}

void wait_lcd (void)
{
short busy;

TRISB=0xF8;//11111000:CAU HINH DOC CHAN DATA
rs=0;
wr=1;
while(1)
{
en=1;
delay();
if (data_lcd_7==1){
if(busy==0) busy=1;

}else if(data_lcd_7==0){
if(busy==1) busy=0;
}

en=0;
delay();
en=1;
delay();
en=0;
sound();
if (busy==0){
goto no_busy;

}
}
no_busy:
wr=0;
TRISB=0x08;//00001000

}
//==========dien dang dientuvietnam===========================

phần jao tiếp lcd mình tham khao nhieu trang nhung no van khong chay. ai jup minh xem minh viet sai o dau khong
Hình Kèm Theo
File Type: png Untitled.png (89.9 KB, 96 lần tải)
nguyen nam hung 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à 04:19 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