Mikrokontroller AT MEGA 128

[menuju akhir]


Modul I
Mikrokontroller AT MEGA 128 

1 Tujuan kembali
a. Mempelajari aplikasi output pada mikrokontroller ATMEGA 128 
b. Mempelajari aplikasi input pada mikrokontroller ATMEGA 128 
c. Mempelajari aplikasi I/O pada mikrokontroller ATMEGA 128 
2 Alat dan bahan kembali
a. Module AT MEGA 128 
b. Seven Segment
c. Jumper
3 Dasar Teori kembali
Mikrokontroller ATMEGA 128 merupakan mikrokontroller keluarga AVR yang mempunyai kapasitas flash memori 128KB. AVR (Alf and Vegard’s Risc Processor) merupakan seri mikrokontroler CMOS 8-bit buatan ATEMEL inc, berdasarkan arsitektur RISC (Reduced Instruction Set Computer). Secara umum, AVR dapat terbagi menjadi 4 kelas, yaitu keluarga ATtiny, keluarga AT90Sxx, keluarga AT-Mega, dan AT86RFxx. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, bisa dikatakan hampir sama. Semua jenis AVR dilengkapi dengan flash memori sebagai memori program. Kapasitas dari flash memori ini berbeda antara chip yang satu dengan chip yang lain. Tergantung dari jenis IC yang digunakan. Untuk flash memori yang paling kecil adalah 1 kbytes (ATtiny11, ATtiny12, dan ATtiny15) dan paling besar adalah 128 kbytes (AT-Mega128). Berikut ini adalah spesifikasi Mikrokontroler AVR ATMega-128 dan konfigurasi pin ATMEGA 128. 

1. Saluran I/O sebanyak 56 buah, yaitu Port A, Port B, Port C, Port D, Port E, Port F dan Port G.
2. ADC 10 bit sebanyak 8 saluran.
3. 2 buah Timer/Counter 8 bit dan 2 buah Timer/Counter 16 bit.
4. Dua buah PWM 8 bit.
5. Watchdog Timer dengan osilator internal.
6. Internal SRAM sebesar 4 kbyte.
7. Memori flash sebesar 128 kBytes.
8. Interupsi Eksternal.
9. Port antarmuka SPI.
10. EEPROM sebesar 4 kbyte.
11. Real time counter.
12. 2 buah Port USART untuk komunikasi serial.
13. Enam kanal PWM.
14. Tegangan operasi sekitar 4,5 V sampai dengan 5,5V


Konfigurasi pin ATMEGA-128

4. Rangkaian Simulasi kembali




5. Hardware kembali

6. Prinsip kerja kembali
Pada percobaan ini, terdapat beberapa komponen yaitu switch, sevensegment, dan atmega128. Pada percobaan diatas kita menghubungkan switch ke PORT A sebagai input dari rangkaian.  Selanjutnya output dari rangkaian ini adalah Seven Segmen. Seven segmen yang kita gunakan terdapat dua buah yaitu satu sebagai satuan yang dihubungkan ke PORT E dan satu lagi sebagai  puluhan yang dihubungkan ke PORT D. Pada rangkaian ini jika ditekan switch 4 maka akan muncul angka 13 pada seven segmen, lalu jika ditekan switch 4 maka akan muncul angka 19 pada seven segment.

7. Flowchart kembali



8. Listing Program kembali
#include <mega128.h>          // mendeklarasikan library atmega
#include <delay.h>            // mendeklarasikan delay

void main(void)               //membuka fungsi utama
{
PORTE=0X00;                   //deklarasikan port E nilai awalnya 0
DDRE=0XFF;                    //deklarasikan port E sebagai output
PORTA=0X00;                   //deklarasikan port A nilai awalnya 0
DDRA=0X00;                    //deklarasikan port A sebagai input
PORTD=0X00;                   //deklarasikan port D nilai awalnya 0
DDRD=0XFF;                    //deklarasikan port D sebagai output

while(1)                      //membuka struktur pengulangan while
{
if (PINA.3 == 1)              //pengecekan nilai port A pin 3 bernilai 1
{
PORTE=0X4F;                   //menampilkan angka 3 pada port E
PORTD=0X06;                   //menampilkan angka 1 pada port D
delay_ms(3);                  //program dihentikan selama 3 milisekon dan kemudian program dilanjutkan dan kembali ke while
}

else if (PINA.4 == 1)         //pengecekan nilai port A pin 4 bernilai 1
{
PORTE=0X6F;                   //menampilkan angka 9 pada port E
PORTD=0X06;                   //menampilkan angka 1 pada port D
delay_ms(3);                  //program dihentikan selama 3 milisekon dan kemudian program dilanjutkan dan kembali ke while
}

else                          //apabila kedua kondisi if salah maka dijalankan statemen else
{
PORTD=0X00;                   //menampilkan angka 0 pada port D
PORTE=0X00;                   //menampilkan angka 0 pada port E
delay_ms(3);
}
};

}

2 komentar: