Rancang
Bangun Traffic Light Berbasis Mikrokontroller Atmega 8535
#include <mega8535.h>
#include <delay.h>
void utara ();
void selatan ();
void timur ();
void barat ();
void main(void)
{
DDRA=0x07;
PORTA=0x00;
DDRB=0x07;
PORTB=0x00;
DDRC=0x07;
PORTC=0x00;
#include <delay.h>
void utara ();
void selatan ();
void timur ();
void barat ();
void main(void)
{
DDRA=0x07;
PORTA=0x00;
DDRB=0x07;
PORTB=0x00;
DDRC=0x07;
PORTC=0x00;
DDRD=0x07;
PORTD=0x00;
while (1)
{
utara();
delay_ms(100);
barat();
delay_ms(100);
selatan();
delay_ms(100);
timur();
delay_ms(100);
};
}
void utara (void)
{
PORTA=0b00000001;
delay_ms(100);
PORTA=0b00000011;
delay_ms(500);
PORTA=0b00000100;
delay_ms(800);
PORTA=0b00000001;
delay_ms(100);
}
void selatan (void)
{
PORTC=0b00000001;
delay_ms(100);
PORTC=0b00000011;
delay_ms(500);
PORTC=0b00000100;
delay_ms(800);
PORTC=0b00000001;
delay_ms(100);
}
void barat (void)
{
PORTB=0b00000001;
delay_ms(100);
PORTB=0b00000011;
delay_ms(500);
PORTB=0b00000100;
delay_ms(800);
PORTB=0b00000001;
delay_ms(100);
}
void timur (void)
{
PORTD=0b00000001;
delay_ms(100);
PORTD=0b00000011;
delay_ms(500);
PORTD=0b00000100;
delay_ms(800);
PORTD=0b00000001;
delay_ms(100);
}
PORTD=0x00;
while (1)
{
utara();
delay_ms(100);
barat();
delay_ms(100);
selatan();
delay_ms(100);
timur();
delay_ms(100);
};
}
void utara (void)
{
PORTA=0b00000001;
delay_ms(100);
PORTA=0b00000011;
delay_ms(500);
PORTA=0b00000100;
delay_ms(800);
PORTA=0b00000001;
delay_ms(100);
}
void selatan (void)
{
PORTC=0b00000001;
delay_ms(100);
PORTC=0b00000011;
delay_ms(500);
PORTC=0b00000100;
delay_ms(800);
PORTC=0b00000001;
delay_ms(100);
}
void barat (void)
{
PORTB=0b00000001;
delay_ms(100);
PORTB=0b00000011;
delay_ms(500);
PORTB=0b00000100;
delay_ms(800);
PORTB=0b00000001;
delay_ms(100);
}
void timur (void)
{
PORTD=0b00000001;
delay_ms(100);
PORTD=0b00000011;
delay_ms(500);
PORTD=0b00000100;
delay_ms(800);
PORTD=0b00000001;
delay_ms(100);
}
Penjelasan
:
- · Pada awal terdapat #include <mega8535.h> yang merupakan library dari mikrokontroller yang sedang digunakan yaitu atmega 8535
- · selanjutnya terdapat #include <delay.h> merupakan library fungsi delay
- · Pada barisan berikutnya terdapat void yang digunakan untuk mendeklarasikan variable.
- · Selanjutnya inisialisasi port A yang digunakan sebagai output dan untuk DDRA berfungsi sebagai inputan.
- · Selanjutnya inisialisasi port B yang digunakan sebagai output dan untuk DDRB berfungsi sebagai inputan
- · Selanjutnya inisialisasi port C yang digunakan sebagai output dan untuk DDRC berfungsi sebagai inputan
- · Selanjutnya inisialisasi port D yang digunakan sebagai output dan untuk DDRD berfungsi sebagai inputan
- · Pada baris setelah inisialisasi port A sampai dengan D terdapat while yang digunakan untuk membuat perulangan pada suatu program.
- · Kemudian pada baris berikutnya untuk setiap variable yang telah di deklarasikan yaitu variable dari utara sampai timur maka di berikan delay/penundaan sebesar 100 milliseconds atau 0,1 detik untuk setiap variablenya.
- · Pada void utara dengan port a sebagai output maka untuk lampu biner 0x01, 1 pada biner tersebut melambangkan lampu pada bagian utara yang menyala begitupun seterusnya untuk 0x03 dan 0x04 dengan delay yang berbeda beda pada setiap keluaan port a ketika sudah mencapai biner 0x04 maka program akan mengulang lagi mulai dari keluaran 0x01.
- · Pada void selatan dengan port c sebagai output maka untuk lampu biner 0x01, 1 pada biner tersebut melambangkan lampu pada bagian selatan yang menyala begitupun seterusnya untuk 0x03 dan 0x04 dengan delay yang berbeda beda pada setiap keluaan port c ketika sudah mencapai biner 0x04 maka program akan mengulang lagi mulai dari keluaran 0x01.
- · Pada void barat dengan port b sebagai output maka untuk lampu biner 0x01, 1 pada biner tersebut melambangkan lampu pada bagian barat yang menyala begitupun seterusnya untuk 0x03 dan 0x04 dengan delay yang berbeda beda pada setiap keluaan port b ketika sudah mencapai biner 0x04 maka program akan mengulang lagi mulai dari keluaran 0x01.
- · Pada void timur dengan port d sebagai output maka untuk lampu biner 0x01, 1 pada biner tersebut melambangkan lampu pada bagian timur yang menyala begitupun seterusnya untuk 0x03 dan 0x04 dengan delay yang berbeda beda pada setiap keluaran port d ketika sudah mencapai biner 0x04 maka program akan mengulang lagi mulai dari keluaran 0x01.
- · Tanda { digunakan sebagai penanda awal dari suatu program.
- · Tanda } digunakan sebagai penanda akhir dari suatu program.
Referensi : http://budi-aog.blogspot.co.id/2013/06/membuat-traffic-light-dengan-aplikasi.html
Tidak ada komentar:
Posting Komentar