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
a. Module ATMEGA 128
b. LCD 16x2
c. Keypad 3x4
c. Keypad 3x4
d. Jumper
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
1.4 Rangkaian [kembali]
- Hardware
- Rangkaian simulasi
Prinsip kerja :
Rangkaian ini menggunakan ATMega128 sebagai otak dari rangkaian dan keypad sebagai inputan, LCD sebagai outputannya dan kristal sebagai clock, dimana keypad terhubung ke PORT D dan LCD terhubung ke PORT A. Ketika keypad 8 ditekan, maka akan muncul pada LCD "kelompok 14" yang bergerak dari kiri ke kanan. Namun ketika keypad yang lainnya ditekan maka tidak akan muncul apapun pada LCD karena yg diaktifkan dikeypad hanya PIND.1 dan PIND.6 dimana letak dari keypad 8.
#include <alcd.h> // library untuk LCD
#include <delay.h> // library untuk delay
char kolom; // deklarasi kolom dengan tipe data char
void main(void) // fungsi utama
{
PORTA=0x00; // PORT A aktif rendah
DDRA=0xFF; // PORT A sebagai output
PORTD=0xFF; // PORT D aktif tinggi
DDRD=0x0F; // PORT D sebagai input dan output
lcd_init(16); // LCD yang dipakai 16*2
while(1) // membuka struktur pengulangan while
{
PORTD=0b111101; // mengaktifkan angka yang ditekan pada keypad di PORTD
if(PIND.6==0) // jika menekan tombol keypad yang terhubung ke PIND.6 aktif low
{
for (kolom=0; kolom<=16; kolom++) //untuk teks berjalan dari kolom ke nol sampai kolom ke 16
{
lcd_clear(); // membersihkan / reset LCD
lcd_gotoxy(kolom,0); // posisi tulisan pada LCD
lcd_putsf("kelompok 14"); // menampilkan tulisan "kelompok 14" pada LCD
delay_ms(10); // delay selama 10ms
}
}
}
} // akhir program
Rangkaian ini menggunakan ATMega128 sebagai otak dari rangkaian dan keypad sebagai inputan, LCD sebagai outputannya dan kristal sebagai clock, dimana keypad terhubung ke PORT D dan LCD terhubung ke PORT A. Ketika keypad 8 ditekan, maka akan muncul pada LCD "kelompok 14" yang bergerak dari kiri ke kanan. Namun ketika keypad yang lainnya ditekan maka tidak akan muncul apapun pada LCD karena yg diaktifkan dikeypad hanya PIND.1 dan PIND.6 dimana letak dari keypad 8.
1.5 Flowchart [kembali]
1.6 Listing Program [kembali]
#include <alcd.h> // library untuk LCD
#include <delay.h> // library untuk delay
char kolom; // deklarasi kolom dengan tipe data char
void main(void) // fungsi utama
{
PORTA=0x00; // PORT A aktif rendah
DDRA=0xFF; // PORT A sebagai output
PORTD=0xFF; // PORT D aktif tinggi
DDRD=0x0F; // PORT D sebagai input dan output
lcd_init(16); // LCD yang dipakai 16*2
while(1) // membuka struktur pengulangan while
{
PORTD=0b111101; // mengaktifkan angka yang ditekan pada keypad di PORTD
if(PIND.6==0) // jika menekan tombol keypad yang terhubung ke PIND.6 aktif low
{
for (kolom=0; kolom<=16; kolom++) //untuk teks berjalan dari kolom ke nol sampai kolom ke 16
{
lcd_clear(); // membersihkan / reset LCD
lcd_gotoxy(kolom,0); // posisi tulisan pada LCD
lcd_putsf("kelompok 14"); // menampilkan tulisan "kelompok 14" pada LCD
delay_ms(10); // delay selama 10ms
}
}
}
} // akhir program
File HTML (Download)
Video Rangkaian (Download)
No comments:
Post a Comment