Senin, 12 Agustus 2013

MEMBUAT PROGRAM KEYPAD DENGAN CODEVISIONAVR

#include <mega8535.h>
#include <delay.h>

// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>

// Declare your global variables here
          unsigned char key;
         
unsigned char keypad()
{
PORTA=0b11111100;
if(PINA.5==0)   return ('1');
if(PINA.6==0)   return ('2');
if(PINA.7==0)   return ('3');

PORTA=0b11111010;
if(PINA.5==0)   return ('4');
if(PINA.6==0)   return ('5');
if(PINA.7==0)   return ('6');     

PORTA=0b11110110;
if(PINA.5==0)   return ('7');
if(PINA.6==0)   return ('8');
if(PINA.7==0)   return ('9');  

PORTA=0b11101110;
if(PINA.5==0)   return ('*');
if(PINA.6==0)   return ('0');
if(PINA.7==0)   return ('#');
}
void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=T State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTA=0xFE;
DDRA=0x1F;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// LCD module initialization
lcd_init(16);

while (1)
      {
      // Place your code here
           key=keypad();
           if(key=='1');
           {   
           lcd_clear();
           lcd_gotoxy(0,0);
           lcd_putsf("keypad=1");
           }
            if(key=='2');
           {
           lcd_clear();
           lcd_gotoxy(0,0);
           lcd_putsf("keypad=2");
           }
            if(key=='3');
           {    
           lcd_clear();
           lcd_gotoxy(0,0);
           lcd_putsf("keypad=3");
           }
            if(key=='4');
           {         
           lcd_clear();
           lcd_gotoxy(0,0);
           lcd_putsf("keypad=4");
           }
            if(key=='5');
           {         
           lcd_clear();
           lcd_gotoxy(0,0);
           lcd_putsf("keypad=5");
           }
            if(key=='6');
           {         
           lcd_clear();
           lcd_gotoxy(0,0);
           lcd_putsf("keypad=6");
           }
            if(key=='7');
           {         
           lcd_clear();
           lcd_gotoxy(0,0);
           lcd_putsf("keypad=7");
           }
            if(key=='8');
           {         
           lcd_clear();
           lcd_gotoxy(0,0);
           lcd_putsf("keypad=8");
           }
            if(key=='9');
           {         
           lcd_clear();
           lcd_gotoxy(0,0);
           lcd_putsf("keypad=9");
           }
            if(key=='*');
           {         
           lcd_clear();
           lcd_gotoxy(0,0);
           lcd_putsf("keypad=*");
           }
            if(key=='#');
           {         
           lcd_clear();
           lcd_gotoxy(0,0);
           lcd_putsf("keypad=#");
           }
            if(key=='0');
           {         
           lcd_clear();
           lcd_gotoxy(0,0);
           lcd_putsf("keypad=0");
           }
          
          
          
      };
}

2 komentar:

  1. assalamualaikum. misi ya om.. om ada contoh program buat tampilkan grafik pada lcd grafik gak om?? klo ada mohon bantuanya ya om.. trimakasih sblumnya.

    BalasHapus
  2. salam, kalau utk scanning keypad 5x5 bisa.

    BalasHapus

CARA DOWNLOAD DI BLOG INI

1. Klik link download, anda akan diarahkan menuju adf.ly. tunggu 5 detik pilih SKIP AD
Silabus dan RPP SMA Kurikulum 2013
2. Klik Download yang berwarna biru.
Silabus dan RPP SMA Kurikulum 2013
3. Isi Verification Code. setelah terisi sesuai dengan yang diminta klik Download yang berwarna biru di bawah kotak verification code.
Silabus dan RPP SMA Kurikulum 2013
Semoga bermanfaat dan terimakasih atas kunjungannya....