Ðăng Nhập

View Full Version : Pic và LCD


phamchihieu
19-09-2010, 04:32 PM
alo chào các pác. em dang làm 1 đề tài về LDC , mô phỏng bằng proteus, mạch hiển thị trên màn hinh LCD đc rùi nhưng chữ ko chạy qua lại trên LCD đc . pác nào rành về cái này giúp em với. đây là Code viết băng Pic C compiler:
#INCLUDE<16F877A.h>
#FUSES XT,NOWDT,NOPROTECT,NOLVP
#USE DELAY(CLOCK=4000000)
#BYTE PORTB=0X06
#BYTE PORTC=0X07
#BYTE PORTD=0X08
#define lcd portB

CONST UNSIGNED CHAR
DIG[]={'T','u','y',' ','C','h','o','n',' ','s','o','#'};
INT8 A=0;
void lenh(void)
{
OUTPUT_LOW(PIN_c0);
OUTPUT_LOW(PIN_c1);
OUTPUT_HIGH(PIN_c2);
OUTPUT_LOW(PIN_c2);
DELAY_MS(5);
}
VOID DU_LIEU(VOID)
{
OUTPUT_HIGH(PIN_c0);
OUTPUT_LOW(PIN_c1);
OUTPUT_HIGH(PIN_c2);
OUTPUT_LOW(PIN_c2);
DELAY_MS(5);
}
VOID MAIN(VOID)
{
OUTPUT_B(0X38);
LENH();
OUTPUT_B(0X0E);
LENH();
OUTPUT_B(0X80);
LENH();

WHILE(DIG[A]!='#')
{
PORTB=DIG[A];
DU_LIEU();
DELAY_MS(100);
A++;
}
OUTPUT_B(0XC0);
LENH();
DELAY_MS(100);
OUTPUT_D(0B11111111);

WHILE(true)
{
//*****************************************
OUTPUT_D(0B11111110);
DELAY_MS(10);
IF(INPUT(PIN_D4)==0)//CHO KHI D4 XUONG 0
{
OUTPUT_B(0X37);//GHI7
DU_LIEU();
DELAY_MS(150);
}
IF(INPUT(PIN_D5)==0)//CHO KHI D5 XUONG 0
{
OUTPUT_B(0X38);//GHI 8
DU_LIEU();
DELAY_MS(150);
}
IF(INPUT(PIN_D6)==0)//CHO KHI D6 XUONG 0
{
OUTPUT_B(0X39);//GHI 9
DU_LIEU();
DELAY_MS(150);
}
IF(INPUT(pin_D7)==0)//CHO KHI D7 XUONG 0
{
OUTPUT_B('H');//GHI h
DU_LIEU();
DELAY_MS(150);
}
//************************************************
OUTPUT_D(0B11111101);
DELAY_MS(10);
IF(INPUT(pin_D4)==0)//CHO KHI D4 XUONG 0
{
OUTPUT_B(0X34);//GHI 4
DU_LIEU();
DELAY_MS(150);
}
if(input(pin_d5)==0)//cho khi d5 xuong 0
{
OUTPUT_B(0X35);//GHI 5
DU_LIEU();
DELAY_MS(150);
}
if(input(pin_d6)==0)//cho khi d6 xuong 0
{
OUTPUT_B(0X36);//GHI 6
DU_LIEU();
DELAY_MS(150);
}
if(input(pin_d7)==0)//cho khi d7 xuong 0
{
OUTPUT_B('I');//GHI i
DU_LIEU();
DELAY_MS(150);
}
//******************************************
OUTPUT_D(0B11111011);
DELAY_MS(10);
IF(INPUT(PIN_D4)==0)//CHO KHI D4 XUONG 0
{
OUTPUT_B(0X31);//GHI 1
DU_LIEU();
DELAY_MS(150);
}
if(input(pin_d5)==0)//cho khi d5 xuong 0
{
OUTPUT_B(0X32);//GHI 2
DU_LIEU();
DELAY_MS(150);
}
if(input(pin_d6)==0)//cho khi d6 xuong 0
{
OUTPUT_B(0X33);//GHI 3
DU_LIEU();
DELAY_MS(150);
}
if(input(pin_d7)==0)//cho khi d7 xuong 0
{
OUTPUT_B('E');//GHI e
DU_LIEU();
DELAY_MS(150);
}
//************************************************** *
OUTPUT_D(0B11110111);
DELAY_MS(10);
IF(INPUT(PIN_D4)==0)//CHO KHI D4 XUONG 0
{
OUTPUT_B('*');//GHI *
DU_LIEU();
DELAY_MS(150);
}
if(input(pin_d5)==0)//cho khi d5 xuong 0
{
OUTPUT_B(0X30);//GHI 0
DU_LIEU();
DELAY_MS(150);
}
if(input(pin_d6)==0)//cho khi d6 xuong 0
{
OUTPUT_B(0X01);//clear
DU_LIEU();
DELAY_MS(150);
}
if(input(pin_d7)==0)//cho khi d7 xuong 0
{
portB='U';//GHI u
DU_LIEU();
DELAY_MS(150);
} } }

MrAnhKieu
22-10-2010, 01:26 PM
ở đây mình có 1 cái code chạy qua một lần bạn xem thử đi.
http://www.mediafire.com/?8r1m29aeo6af9
thik thì liên lạc, mình cũng đang làm về cái lcd với pic. hí