Membuat traffic light dengan Codevision AVR (3)

Pada posting sebelumnya, kita telah belajar membuat 1 buah traffic light dengan 1 buah seven segment sebagai countdown timer, nah sekarang kita belajar membuat untuk 2 buah traffic light, dan masing2 traffic light memiliki 2 buah seven segment, dimana tiap2 segment menandakan warna hijau dan merah. Apa bedanya?

jelas beda, terutama jumlah seven segmentnya hehehe.

Oke, mengingat ATMega hanya berkaki 32, sementara kebutuhan untuk 4 seven segment juga 32 kaki (belum termasuk menghitung common-nya) maka habislah riwayat kita untuk membuat traffic light dengan 2 countdown timer, jadi gak jadi tutorial dong? hehehe ya enggak lah, harus jadi!

Karena kekurangan kaki maka kita bisa menyiasatinya dengan memparalelkan input2 seven segment, misalnya PORTA digunakan untuk input seven segment bangjo pertama, dan PORTC digunakan untuk input seven segment bangjo kedua, PORTB dan PORTD bisa kita pakai untuk kendali masing2 seven segment dan lampu traffic lightnya.

Kira2 gambarnya begini, tapi klo pengen variasi sendiri juga silahkan, bebas sik penting kan dadi, klo emang pengen beda tinggal mainkan saja hehehe

lampu lalu lintas traffic light codevision AVR 2

oh yo programe lali rung ditulis

BACA JUGA:   Bermain dengan codevision AVR (2) gerbang logika dasar AND dan OR

#include <mega16.h>

#include <delay.h>

 

unsigned char bil[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

int kanan, kiri, tengen, kiwo

void main (void)

{

DDRC=0xff;

DDRD=0xff;

DDRB=0xff;

DDRA=0xff;

 

{

 

while(1)

{

int mulai;

for(kanan=9;kanan>-1;kanan–)

{

tengen–;

for(mulai=0;mulai<10;mulai++)

{

PORTD=0x02;

PORTB=0x01;

PORTC=bil[kanan];

delay_ms(10);

if(tengen<0)

{

PORTA=0xff;}

else{

PORTA=bil[tengen];

}delay_ms(10);                 }

}

PORTA=0xff;

PORTB=0x04;

delay_ms(100);

if(tengen<0)

{

tengen=9;

}

for(kiri=9;kiri>-1;kiri–)

{

kiwo–;

for(mulai=0;mulai<10;mulai++){

PORTD=0x01;

PORTB=0x02;

PORTA=bil[kiri];

delay_ms(10);

if(kiwo<0)

{

PORTC=0xff;

}

else{

PORTC=bil[kiwo];}

delay_ms(10);

}

if (kiwo<0)

{

kiwo=9;

}

}

PORTD=0x04;

delay_ms(100);

}

}

}

Oke begitu, klo kurang jelas monggo ditanyakan yang penting nggak boleh mbalang sendal wis. Besok kita lanjut dengan counter buat 4 traffic light dengan countdown timer masing2

12 Comments

Add a Comment

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

(Note, links and most HTML attributes are not allowed in comments)

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.