Wellcome My Blogger Sapto Nugroho, E-mail : cv.sapto@gmail.com, Handphone : 08117877822

Traffic Lights Controller dengan mikrokontroler PIC 16F877

Sebagai pelengkap tipe mikrokontroler, kali ini saya tampilkan mikrokontroler besutan microchip, PIC 16F877. Biasanya kan setiap aplikasi mikrokontroler saya buat dengan tipe AVR ATmega, atau Arduino. Ya sekedar supaya tidak mboseni, begitu orang jawa bilang, hehe…
Kurang terkenal sih, khususnya dikalangan temen – temen mahasiswa, wa bil khusus di Jogja. Kalo Tanya ke mbah gugel, tentu dia akan menemukan banyak tentang mikrokontroler ini.
Secara feature cukup lengkap, berani diadu dengan mikrokontroler AVR ATmega. Ada ADC-nya juga, sama – sama mampu sampai resolusi 10 bit. Lalu apa yang akan kita lakukan dengan mikrokontroler PIC ini ? Ya sebagai awalan belajar, kita buat aplikasi yang sederhana saja : mengontrol led yang disusun seperti traffic light atau lampu merah, kalau di jogja namanya ‘bangjo’ (abang ijo, abang = merah, ijo = hijau, trus lampu kuning kemana ? hehe…).
Proteus kita pakai untuk simulasinya. Pertama ambil komponen mikrokontroler PIC16F877. Trus tambahkan empat TRAFFIC LIGHTS, koneksikan masing – masing lampu ke PORTB (RB0 – RB7) dank e PORTD (RD0 – RD3).



Kita ingin membuat lampu nyala – mati seperti di perempatan (prapatan). Pertama lampu hijau 1 nyala, lampu merah 2, merah 3 dan merah 4 juga nyala. Yang lain padam. Misalnya diberi delay 3 detik. kemudian gentian yang nyala kuning 1, merah 2, merah 3 dan merah 4. Demikian bergantian sampai terakhir yang nyala : merah 1, merah 2, merah 3 dan kuning 4.
Programnya dibuat dengan bahasa basic :
program TrafficLight
main:
  TRISB = 0×00
  TRISD = 0×00
  While TRUE
    ‘step 1
    PORTB = 0x4C
    PORTD = 0×2
    Delay_ms(3000)
    ‘step 2
    PORTB = 0x4A
    PORTD = 0×2
    Delay_ms(2000)
    ‘step 3
    PORTB = 0×61
    PORTD = 0×2
    Delay_ms(3000)
    ‘step 4
    PORTB = 0×51
    PORTD = 0×2
    Delay_ms(2000)
    ‘step 5
    PORTB = 0×9
    PORTD = 0×3
    Delay_ms(3000)
    ‘step 6
    PORTB = 0×89
    PORTD = 0×2
    Delay_ms(2000)
    ‘step 7
    PORTB = 0×49
    PORTD = 0×8
    Delay_ms(3000)
    ‘step 8
    PORTB = 0×49
    PORTD = 0×4
    Delay_ms(2000)
  wend              
end.
Setelah di-build atau di-compile, isikan ke memori mikrokontroler PIC16F877, kemudian klik run, hasilnya pertama kali akan tampak berikut :



Gampang bukan ? Hampir – hampir mirip pakai BASCOM-AVR.