các pác nào biết về LCD chỉ giúp em thiết kế thêm cho đoạn code này có thế chạy đc chữ với. em mô phỏng = proteus thì đc rùi nhưng mới chỉ hiển thị đc thôi chứ chưa chạy dòng chữ qua lại đc . code viết trên 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);
} } }
#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);
} } }
Comment