Belajar mikrokontrol ATMega atau jenis mikrokontroler lain pada dasarnya cukup mudah. Kita hanya memerlukan sebuah program compiler berbasis bahasa C, Basic maupun Assembly serta sebuah aplikasi simulasi, tentu saja harus dibarengi keinginan untuk mempelajarinya 🙂
LED adalah salah satu komponen output dasar pada elektronika yang sering digunakan pada project belajar pertama dalam mata kuliah pemrograman mikrokontroler atau mikroprosesor. Program running led adalah program dimana led akan menyala bergantian dari salah satu port ke port selanjutnya.
Berikut adalah listing program running LED pada codevision AVR menggunakan ATmega 16 dan disimulasikan menggunakan software simulasi ISIS proteus.
Untuk membuat nyala running terlihat oleh mata, kita menggunakan pustaka delay pada codevision untuk membuat delay selama 50 mili detik.
#include <mega16.h> #include <delay.h> int geser=1; //program diambil dari https://anotherorion.com //running led void main(void) { PORTA=0x00; DDRA=0xFF; delay_ms(50); PORTA=0x01; delay_ms(50); while (1) { if(geser<0) { geser=0x01; } delay_ms(50); PORTA=geser; geser<<=1; //melakukan shift register }; }
Nah, mudah bukan? selamat mencoba
Butuh contoh aplikasi codevision dan proteus schematicnya bisa didownload disini, setelah mempelajari modul ini kita bisa beranjak mempelajari modul memprogram inner running led
Sipp mas nice info,
1 pertanyaan lagi : Kalau semisal porta=0xff kan artinya semua port a ngasih sinyal 1 dan porta=0x00 semua port a ngasih sinyal 0, kalau PORTA=0x01 itu maksudnya apa ya?
Trims
Sipp mas nice info,
1 pertanyaan lagi : Kalau semisal porta=0xff kan artinya semua port a ngasih sinyal 1 dan porta=0x00 semua port a ngasih sinyal 0, kalau PORTA=0x01 itu maksudnya apa ya?
Trims
melakukan shift register mas, perintah geser<<=1 menggeser nyala led dari PORTA.0 sampai PORTA.7
Pak.. bagaimana kalau sy ingin menggeser nyala lamounya setelah dr port 1-7 kemudian menggeser dg kebalikanya?
bikin satu lagi conditional ifnya mas, klo tidak bisa juga pake while, dimulai dari 0x80 dan digeser dengan perintah geser>>=1;
Int geser ini menggantikan fungsi apa ya? Kalau cuma int geser yang di masukkan yang timbul warning, "expression with posibly no effect" di bagian badan program
terima kasih banyak atas tutorialnya
cara masukin code ke atmega 16 g mana