8 Tombol Quiz dengan ATmega16

Eh dah suwe ternyata gak bikin cerita mikerokontorelerrr, setaon yak ? Terakhir tahun rongewu patbelas, sekarang rongewu limolas, hehe…
99 proyek arduinoOk nda, ini ada aplikasi mikrokontroler, buat acara seperti kuis atau tebak – tepat. Kalo jama dulu, jamannya pak presiden Soeharto ada acara di TVRI namanya klopencapir, sebagai tanda kalau satu kelompok mau menjawab memukul kentongan. Nah kalau anda masih ingat, selamat ya, berarti anda wis tuweek tenann…. haha…

Aplikasi Mikrokontroler

Kita pakai mikrokontroler AVR ATmega16 dengan tampilan 7 segment common anoda, ditambah sedikit buzzer (1 saja) dan 8 tombol push on.

Rangkaian 8 Tombol Quiz dengan ATmega16

Program kita sajikan dalam 2 bahasa. Yang cintrong ama Bascom-AVR silakan :

$regfile = “m161def.dat”
$crystal = 1000000
Buz Alias Portd.4
Config Portc = Output
Config Porta = Input
Ddrd.4 = 1
Portc = 0
Porta = &HFF
Do
If Pina = &B11111110 Then
   Buz = 1
   Portc = &HF9
   Bitwait Pina.0 , Set
Elseif Pina = &B11111101 Then
   Buz = 1
   Portc = &HA4
   Bitwait Pina.1 , Set
Elseif Pina = &B11111011 Then
   Buz = 1
   Portc = &HB0
   Bitwait Pina.2 , Set
Elseif Pina = &B11110111 Then
   Buz = 1
   Portc = &H99
   Bitwait Pina.3 , Set
Elseif Pina = &B11101111 Then
   Buz = 1
   Portc = &H92
   Bitwait Pina.4 , Set
Elseif Pina = &B11011111 Then
   Buz = 1
   Portc = &H82
   Bitwait Pina.5 , Set
Elseif Pina = &B10111111 Then
   Buz = 1
   Portc = &HF8
   Bitwait Pina.6 , Set
Elseif Pina = &B01111111 Then
   Buz = 1
   Portc = &H80
   Bitwait Pina.7 , Set
Else
   Buz = 0
   Portc = &HFF
End If
Loop
End

Yang kepincut sama CodeVisionAVR monggo :

#include
#include
#define buz PORTD.4
// Declare your global variables her
void main(void)
{
 DDRC=0xFF;
 DDRA=0x00;
 DDRD.4 = 1;
 PORTC = 0x00;
 PORTA = 0xFF;

while (1)
      {
   if (PINA == 0B11111110){
        buz = 1;
        PORTC = 0xF9;
        while(!PINA.0);
        }
   else if (PINA == 0B11111101){
        buz = 1;
        PORTC = 0xA4;
        while(!PINA.1);
        }
   else if (PINA== 0B11111011){
        buz = 1;
        PORTC = 0xB0;
        while(!PINA.2);
        }
   else if (PINA== 0B11110111){
        buz = 1;
        PORTC = 0x99;
        while(!PINA.3);
        }
   else if (PINA== 0B11101111){
        buz = 1;
        PORTC = 0x92;
        while(!PINA.4);
        }
   else if (PINA== 0B11011111){
        buz = 1;
        PORTC = 0x82;
        while(!PINA.5);
        }
   else if (PINA== 0B10111111){
        buz = 1;
        PORTC = 0xF8;
        while(!PINA.6);
        }
   else if (PINA== 0B01111111){
        buz = 1;
        PORTC = 0x80;
        while(!PINA.7);
        }
   else{
        buz = 0;
        PORTC = 0xFF;
        }
      }
}

Jangan lupa untuk CVAVR bikin project dengan ATmega16 dan crystal 1 Mhz ya…

Banner MM AVR

This entry was posted in Mikrokontroler AVR and tagged , , , . Bookmark the permalink.

2 Responses to 8 Tombol Quiz dengan ATmega16

  1. Ridwan says:

    yang bagian select keypad nya belum ngerti om , fungsinya buat apa? dan kalo di ganti pake push button jadinya kayak gimana ? syukron

Leave a Reply