Vous êtes sur la page 1sur 4

Code :

//**************giao tiep ban phim voi LCD********************


//RS,RW,E PORTE
//LCD PORTB
//KEYPAD PORT D
//************************************************************

#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[]={'E','n','t','e','r',' ','N','u','m','b','e','r' ,'#'};
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('A');//GHI A
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('B');//GHI b
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('C');//GHI c
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='D';//GHI d
DU_LIEU();
DELAY_MS(150);
}}}

Vous aimerez peut-être aussi