IMPLEMENTASI TRAFFIC LIGHT PERTIGAAN BERBASIS SENSOR INFRARED
IMPLEMENTASI TRAFFIC LIGHT PERTIGAAN
BERBASIS SENSOR INFRARED
Dosen Pengampu:
Dr. Samuel Beta Kuntardjo, Ing.Tech., M.T.
Disusun Oleh:
1. Davy Wahyu Saputra (RE-2C/04/4.34.24.2.05)
2. Hafiza Putri Rahayu (RE-2C/09/4.34.24.2.10)
3. Muhammad Iqbal Alfareza (RE-2C/16/4.34.24.2.17)
4. Reyhan Pangaji (RE-2C/21/4.34.24.2.23)
PROGRAM STUDI TEKNOLOGI REKAYASA ELEKTRONIKA
JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI SEMARANG
2025
KATA PENGANTAR
Puji
syukur saya panjatkan ke hadirat Tuhan Yang Maha Esa, karena atas berkat dan
rahmat-Nya, laporan proyek mata kuliah Mikrokontroler ini dapat terselesaikan
tepat pada waktunya.
Proyek
yang berjudul "Sistem Kendali Traffic Light Pertigaan Berbasis Sensor
Infra Merah (IR)" ini disusun untuk memenuhi tugas praktikum sekaligus
menguji pemahaman saya dalam mengimplementasikan logika pemrograman ke dalam
perangkat keras. Fokus utama dari proyek ini adalah menciptakan simulasi
pengaturan lalu lintas yang lebih responsif dengan bantuan sensor IR untuk
mendeteksi keberadaan kendaraan, sehingga distribusi waktu hijau dapat menjadi
lebih efisien.
Secara
teknis, proyek ini merupakan sarana eksplorasi saya terhadap keluarga mikrokontroler
8051. Meskipun arsitektur ini merupakan dasar klasik dalam dunia
mikrokontroler, proses pengembangannya memberikan tantangan tersendiri,
terutama dalam mengelola timing
dan interrupt untuk
memastikan sistem berjalan secara
real-time.
Saya
menyadari sepenuhnya bahwa laporan maupun proyek ini masih jauh dari kata
sempurna. Oleh karena itu, saya sangat terbuka terhadap kritik, saran, maupun
masukan yang membangun guna perbaikan di masa mendatang. Akhir kata, semoga
laporan ini dapat memberikan manfaat, baik bagi saya pribadi maupun bagi
rekan-rekan yang sedang mempelajari sistem kendali mikrokontroler.
BAB I
PENDAHULUAN
A.
Latar Belakang
Kemacetan
lalu lintas merupakan tantangan klasik yang terus dihadapi di area perkotaan, terutama
pada titik-titik persimpangan atau pertigaan yang memiliki volume kendaraan
tidak merata. Salah satu penyebab utama ketidakefisienan ini adalah penggunaan
sistem lampu lalu lintas (traffic light) konvensional yang bekerja berdasarkan
jeda waktu statis (fixed time control). Dalam sistem statis, lampu hijau akan
menyala dalam durasi yang sama meskipun salah satu jalur sedang kosong, yang
pada akhirnya memicu antrean kendaraan yang tidak perlu di jalur lainnya.
Permasalahan
utama pada pertigaan seringkali terjadi ketika kendaraan di satu jalur sangat
padat, namun lampu sudah terlanjur berubah merah karena durasi yang kaku. Oleh
karena itu, proyek ini menerapkan logika perpanjangan durasi (Green Extension).
Dengan bantuan mikrokontroler 8051, sistem akan mendeteksi keberadaan kendaraan
melalui sensor IR. Jika kendaraan terdeteksi, sistem secara otomatis akan
menahan lampu hijau lebih lama (memperlama timer), sehingga memberikan
kesempatan bagi arus kendaraan yang padat untuk terurai sebelum berganti ke
jalur berikutnya.
Pemilihan
mikrokontroler keluarga 8051 sebagai otak utama dalam proyek ini didasari pada
nilai fundamentalnya dalam dunia elektronika. Meskipun merupakan arsitektur
klasik, 8051 memberikan pemahaman yang mendalam mengenai manajemen input/output
dan logika interupsi yang sangat relevan untuk mengontrol perangkat keras
secara presisi. Mempelajari bagaimana 8051 mengolah sinyal dari sensor IR untuk
menggerakkan transisi lampu adalah langkah krusial dalam memahami prinsip kerja
otomasi industri maupun sistem cerdas.
Melalui
proyek ini, diharapkan dapat tercipta sebuah simulasi sistem traffic light
pertigaan yang tidak hanya bekerja secara otomatis, tetapi juga mampu merespons
kondisi lalu lintas secara dinamis. Hal ini diharapkan dapat memberikan
gambaran efektivitas penggunaan sensor sederhana dalam memecahkan masalah
kompleks di ruang publik.
B.
Rumusan Masalah
Dalam
proyek ini, beberapa permasalahan utama yang dirumuskan adalah sebagai berikut
1.
Bagaimana
merancang algoritma timer pada mikrokontroler 8051 yang dapat berubah durasinya
secara dinamis berdasarkan input sensor?
2.
Bagaimana
mengintegrasikan sensor IR agar dapat memberikan sinyal interupsi atau kondisi
untuk memperlama fase lampu hijau saat kendaraan terdeteksi?
3.
Bagaimana
mengimplementasikan logika pemrograman pada mikrontroler keluarga 8051 agar
dapat mengolah sinyal dari sensor dan mengatur transisi lampu secara tepat dan
aman?
4.
Sejauh
mana efektivitas penggunaan sensor IR dalam membantu pengaturan durasi lampu
hijau untuk mengurangi potensi penumpukan kendaraan di salah satu jalur?
C.
Tujuan
Adapun
tujuan dari praktikum ini adalah sebagai berikut:
1.
Mengimplementasikan
sistem variable timing control pada traffic light pertigaan.
2.
Menciptakan
sistem kendali yang mampu memperpanjang durasi lampu hijau secara otomatis guna
meningkatkan efisiensi arus lalu lintas pada jalur yang padat.
3.
Mengasah
kemampuan dalam menyusun algoritma pemrograman dan manajemen input/output pada
mikrokontroler keluarga 8051 agar dapat menangani logika kontrol yang kompleks
secara real-time.
4.
Menciptakan
simulasi pengaturan lalu lintas yang lebih cerdas, di mana durasi lampu hujau
dapat menyesuaikan secara dinamis berdasarkan masukan dari sensor, guna
meminimalisir waktu tunggu yang tidak efektif.
BAB II
METODOLOGI
Metodologi yang digunakan dalam
proyek “Traffic Light Pertigaan Dengan IR Sensor Berbasis IC 8051” mencakup
langkah langkah berikut:
1.
Studi
Literatur
·
Mengumpulkan referensi mengenai arsitektur
mikrokontroler keluarga 8051, terutama mengenai konfigurasi I/O Port dan sistem
instruksi.
·
Mempelajari prinsip kerja sensor Infra Merah
(IR) obstacle avoidance sebagai pendeteksi keberadaan objek.
·
Mengkaji logika pengaturan lalu lintas pada
persimpangan tiga (pertigaan) serta konsep actuated control system (sistem
kendali berdasarkan kepadatan).
2.
Perancangan
Sistem
·
Menentukan
alur kerja sistem yang terdiri dari sensor IR sebagai input,
mikrokontroler 8051 sebagai unit pemroses data, dan dioda LED (Merah, Kuning,
Hijau) sebagai output aktuator.
·
Menyusun
diagram rangkaian elektronik menggunakan software simulasi untuk
menghubungkan pin sensor ke port input dan LED ke port output 8051.
3.
Pembuatan
Program
·
Menulis kode program untuk mikrokontroler 8051
(menggunakan C atau Assembly) dengan logika Conditional Delay.
·
Program dirancang untuk memantau sensor IR. Jika
sensor bernilai 'High' (kendaraan terdeteksi), program akan mengeksekusi
sub-rutin Extended Timer yang membuat durasi lampu hijau berjalan lebih lama
dibandingkan durasi standar.
·
Mengatur manajemen looping atau timer interrupt
agar transisi dari hijau ke kuning, lalu ke merah, tetap berjalan mulus
meskipun ada intervensi durasi dari sensor.
4.
Implementasi
Sistem
·
Merakit komponen elektronik di atas breadboard
atau PCB sesuai dengan desain skematik yang telah dibuat sebelumnya.
·
Mengunggah (burning) file format hex hasil kompilasi ke dalam chip
mikrokontroler 8051 menggunakan perangkat programmer (seperti USBASP atau ISP
Programmer).
5.
Pengujian
dan Pengumpulan Data
·
Melakukan uji coba komparatif: mengukur durasi
lampu hijau saat sensor tidak mendeteksi objek vs saat sensor mendeteksi objek
secara kontinu.
·
Mencatat responsivitas perubahan timer: seberapa
cepat mikrokontroler bereaksi memperlama durasi tepat saat kendaraan tertangkap
oleh sensor IR.
6.
Analisis
dan Evaluasi
·
Menganalisis efektivitas logika Green Extension
dalam mencegah kemacetan di simulasi pertigaan.
·
Mengevaluasi apakah penambahan durasi tersebut
tidak menyebabkan antrean yang terlalu panjang di jalur lain yang sedang
menunggu lampu merah (keseimbangan sistem).
7.
Penyusunan
Laporan
·
Menyusun laporan akhir yang mendokumentasikan
seluruh proses mulai dari desain, kode program, hasil pengujian, hingga
analisis performa sistem traffic light yang telah diimplementasikan.
BAB III
KAJIAN PUSTAKA
Pada proyek “Traffic Light Pertigaan
Dengan IR Sensor”, terdapat beberapa komponen utama yang digunakan. Berikut ini
adalah kajian pustaka terkait masing masing komponen:
A.
Komponen
1.
Mikokontroler
8051
Mikrokontroler 8051 merupakan sebuah unit pemroses data
8-bit terintegrasi yang berfungsi sebagai "otak" utama dalam berbagai
sistem kendali otomatis sederhana. Sebagai komponen yang telah menjadi standar
fundamental dalam pendidikan teknik, 8051 menawarkan struktur yang ringkas
namun lengkap, yang terdiri dari CPU, memori internal, serta port Input/Output
untuk berkomunikasi dengan perangkat eksternal. Keunggulannya terletak pada
fleksibilitas penggunaan register dan manajemen waktu (timer) secara langsung,
yang memungkinkan pengembang untuk merancang logika kontrol yang sangat presisi
berdasarkan input dari lingkungan sekitar. Dalam implementasi praktis, komponen
ini sangat andal digunakan untuk mengolah data sensor secara real-time,
menjadikannya pilihan utama untuk memahami prinsip dasar sistem tertanam
melalui interaksi perangkat keras yang mendalam.
2.
LED
Traffic Light
Modul LED Traffic Light ini merupakan komponen penampil
visual yang dirancang untuk mensimulasikan sistem indikator jalan raya secara
ringkas dan praktis dalam lingkungan eksperimental. Secara teknis, modul ini
mengintegrasikan tiga buah dioda pemancar cahaya (LED) berwarna merah, kuning,
dan hijau ke dalam satu papan sirkuit tunggal yang biasanya sudah dilengkapi
dengan resistor internal, sehingga memudahkan proses integrasi langsung dengan
port I/O mikrokontroler tanpa memerlukan banyak kabel tambahan. Dalam
arsitektur sistem yang Anda bangun, modul ini menjalankan peran sebagai unit
output yang merepresentasikan status lalu lintas pada tiap jalur pertigaan
secara real-time. Fungsinya bukan sekadar sebagai penanda, melainkan sebagai
alat verifikasi visual utama untuk membuktikan bahwa logika perpanjangan durasi
hijau (green extension) telah berhasil dieksekusi oleh mikrokontroler saat
sensor mendeteksi adanya kepadatan kendaraan.
3.
Sensor
IR
Sensor Infra Merah (IR) berperan sebagai unit pendeteksi
jarak dekat yang bekerja dengan memanfaatkan pantulan cahaya infra merah untuk
mengenali keberadaan sebuah objek di depannya. Modul ini dilengkapi dengan
transmiter yang terus-menerus memancarkan cahaya serta receiver yang bertugas
menangkap kembali pantulan tersebut, di mana sensitivitas deteksinya dapat
disesuaikan secara manual melalui komponen potensiometer biru pada papan
sirkuitnya. Dalam sistem traffic light Anda, sensor ini berfungsi sebagai pemicu
utama yang menginformasikan mikrokontroler 8051 mengenai kehadiran kendaraan di
jalur tertentu; sinyal digital yang dihasilkan kemudian digunakan oleh program
untuk mengeksekusi logika perpanjangan timer hijau secara otomatis. Melalui
pemanfaatan sensor ini, sistem tidak lagi bekerja secara kaku berdasarkan waktu
statis, melainkan mampu merespons kepadatan lalu lintas secara dinamis layaknya
pengawasan manual.
4.
Kabel
Jumper
Kabel jumper merupakan kabel penghubung elektrik yang
memiliki pin konektor di kedua ujungnya, berfungsi sebagai jembatan untuk
mengalirkan arus listrik maupun sinyal data antar komponen elektronik secara
praktis. Dalam pengembangan proyek mikrokontroler seperti keluarga 8051, kabel
ini sangat krusial karena memungkinkan kita untuk merangkai sirkuit pada
breadboard atau menghubungkan berbagai modul sensor tanpa perlu melakukan
penyolderan permanen, sehingga proses perakitan menjadi jauh lebih fleksibel.
Tersedia dalam berbagai variasi seperti male-to-male, male-to-female, dan
female-to-female, kabel jumper memastikan setiap bagian sistem—mulai dari
sensor IR sebagai unit input hingga modul LED sebagai unit output—dapat
terinterkoneksi dengan stabil. Penggunaannya tidak hanya mempermudah teknis
perakitan fisik, tetapi juga sangat membantu pengembang dalam melakukan proses
pelacakan jalur sinyal atau troubleshooting secara cepat selama tahap pengujian
purwarupa.
5.
Sistem
Minimum untuk IC 8051
Sistem minimum untuk IC 8051 merupakan papan sirkuit
dasar yang dirancang khusus untuk menyediakan ekosistem kerja agar
mikrokontroler dapat beroperasi secara optimal sesuai fungsinya. Komponen ini
berperan sebagai infrastruktur pendukung esensial yang mengintegrasikan sirkuit
pengatur detak jantung sistem (crystal oscillator), sirkuit reset, serta
konektor catu daya yang stabil dalam satu unit yang praktis. Penggunaan soket
ZIF (Zero Insertion Force) yang berwarna biru pada sistem minimum ini sangat
mempermudah proses pemasangan maupun pelepasan IC tanpa risiko merusak
kaki-kaki komponen, sementara deretan header pin di sekelilingnya berfungsi
sebagai jembatan akses untuk menghubungkan mikrokontroler dengan perangkat luar
seperti sensor IR dan modul LED. Secara keseluruhan, sistem minimum ini
bertindak sebagai wadah utama yang menjembatani logika program di dalam chip
dengan komponen fisik lainnya, sehingga proses pengembangan dan pengujian
proyek traffic light Anda dapat dilakukan dengan jauh lebih efisien dan
terorganisir.
B.
Diagram Blok
C.
Diagram Alir
D.
Gambar Rangkaian Skematik
E.
Program
```#
Penjelasan Detail Program Traffic Light Pertigaan dengan IR Sensor
##
**BAGIAN HEADER & KONFIGURASI**
```assembly
;
Program Traffic Light PERTIGAAN dengan 3 IR Sensor
;
untuk AT89S51/AT89S52
```
-
Komentar yang menjelaskan tujuan program
-
Program ini untuk mikrokontroler AT89S51 atau AT89S52
###
**Konfigurasi Pin LED Traffic Light**
```assembly
;
JALUR A: P0.0=Merah, P0.1=Kuning, P0.2=Hijau
;
JALUR B: P0.3=Merah, P0.4=Kuning, P0.5=Hijau
;
JALUR C: P0.6=Merah, P0.7=Kuning, P3.7=Hijau
```
-
**JALUR A**: Menggunakan pin P0.0, P0.1, P0.2
-
**JALUR B**: Menggunakan pin P0.3, P0.4, P0.5
-
**JALUR C**: Menggunakan pin P0.6, P0.7, dan P3.7 (hijau di port berbeda)
###
**Konfigurasi IR Sensor**
```assembly
; IR
SENSOR:
; IR_A = P2.0 (untuk Jalur A)
; IR_B = P2.1 (untuk Jalur B)
; IR_C = P2.2 (untuk Jalur C)
```
- 3
sensor infrared untuk deteksi kendaraan di setiap jalur
-
Semua sensor terhubung ke Port 2
###
**Logika IR Sensor**
```assembly
;
LOGIKA IR SENSOR:
; Pin = 0 → Kendaraan TERDETEKSI → Delay
NORMAL (Hijau 2s, Kuning 1s)
; Pin = 1 → TIDAK ADA kendaraan → Delay CEPAT
2x (Hijau 1s, Kuning 0.5s)
```
-
**Pin = 0 (LOW)**: Ada kendaraan → lampu hijau 2 detik, kuning 1 detik
-
**Pin = 1 (HIGH)**: Tidak ada kendaraan → lampu hijau 1 detik, kuning 0.5 detik
-
Sistem ini menghemat waktu saat tidak ada kendaraan
---
##
**BAGIAN INISIALISASI**
```assembly
ORG
0000H
LJMP MAIN
```
- `ORG
0000H`: Mulai dari alamat memori 0000H (reset vector)
-
`LJMP MAIN`: Loncat ke label MAIN untuk memulai program utama
```assembly
ORG
0030H
```
- `ORG
0030H`: Lanjutkan program dari alamat 0030H (setelah interrupt vectors)
```assembly
MAIN:
; Inisialisasi
MOV P0, #00H ; Matikan semua LED
```
-
Label `MAIN`: Titik mulai program utama
- `MOV
P0, #00H`: Isi Port 0 dengan 00H (semua LED di P0 mati)
```assembly
MOV P3, #00H
```
- `MOV
P3, #00H`: Isi Port 3 dengan 00H (LED hijau Jalur C di P3.7 mati)
```assembly
MOV P2, #FFH ; Set P2 sebagai input (pull-up)
```
- `MOV
P2, #FFH`: Isi Port 2 dengan FFH (11111111 biner)
- Ini
mengaktifkan internal pull-up resistor untuk input
```assembly
SETB P2.0 ; IR Sensor A sebagai input
SETB P2.1 ; IR Sensor B sebagai input
SETB P2.2 ; IR Sensor C sebagai input
```
-
`SETB`: Set Bit (membuat pin menjadi 1)
-
Memastikan pin P2.0, P2.1, P2.2 sebagai input untuk sensor
---
##
**FASE 1: JALUR A HIJAU**
```assembly
LOOP:
;===========================================
; FASE 1: JALUR A HIJAU, B & C MERAH
;===========================================
; A: Hijau | B: Merah | C: Merah
MOV P0, #4CH ; A=Hijau, B=Merah, C=Merah
```
-
`LOOP`: Label untuk pengulangan siklus traffic light
- `MOV
P0, #4CH`: Isi P0 dengan 4CH (01001100 biner)
- P0.2 = 1 (Hijau A nyala)
- P0.0 = 0 (Merah A mati)
- P0.3 = 1 (Merah B nyala)
- P0.6 = 1 (Merah C nyala)
```assembly
CLR P3.7 ; C Hijau mati
```
- `CLR
P3.7`: Clear bit P3.7 (hijau C mati)
```assembly
; Cek IR Sensor A di P2.0
JB P2.0, A_HIJAU_CEPAT ; Jika P2.0=1 (tidak ada kendaraan)
```
-
`JB`: Jump if Bit set (lompat jika bit = 1)
- Jika
P2.0 = 1 (tidak ada kendaraan), lompat ke A_HIJAU_CEPAT
- Jika
P2.0 = 0 (ada kendaraan), lanjut ke baris berikutnya
```assembly
A_HIJAU_NORMAL:
; Ada kendaraan → Delay NORMAL (2 detik)
ACALL DELAY_2S
SJMP A_KUNING
```
-
Label untuk kondisi ada kendaraan
-
`ACALL DELAY_2S`: Panggil subrutin delay 2 detik
-
`SJMP A_KUNING`: Short Jump ke label A_KUNING
```assembly
A_HIJAU_CEPAT:
; Tidak ada kendaraan → Delay CEPAT (1
detik)
ACALL DELAY_1S
```
-
Label untuk kondisi tidak ada kendaraan
-
`ACALL DELAY_1S`: Panggil subrutin delay 1 detik (lebih cepat)
###
**Fase Kuning Jalur A**
```assembly
A_KUNING:
; A: Kuning | B: Merah | C: Merah
MOV P0, #4AH ; A=Kuning, B=Merah, C=Merah
```
- `MOV
P0, #4AH`: 4AH = 01001010 biner
- P0.1 = 1 (Kuning A nyala)
- P0.2 = 0 (Hijau A mati)
```assembly
CLR P3.7
```
-
Pastikan hijau C tetap mati
```assembly
; Cek IR Sensor A lagi untuk kuning
JB P2.0, A_KUNING_CEPAT
; Normal: 1 detik
ACALL DELAY_1S
SJMP FASE_B
```
- Cek
sensor lagi
- Jika
ada kendaraan: delay 1 detik
-
Lompat ke FASE_B
```assembly
A_KUNING_CEPAT:
; Cepat: 0.5 detik
ACALL DELAY_500MS
```
- Jika
tidak ada kendaraan: delay 0.5 detik
---
##
**FASE 2: JALUR B HIJAU**
```assembly
FASE_B:
; A: Merah | B: Hijau | C: Merah
MOV P0, #61H ; A=Merah, B=Hijau, C=Merah
```
- `MOV
P0, #61H`: 61H = 01100001 biner
- P0.0 = 1 (Merah A nyala)
- P0.5 = 1 (Hijau B nyala)
- P0.6 = 1 (Merah C nyala)
```assembly
CLR P3.7
; Cek IR Sensor B di P2.1
JB P2.1, B_HIJAU_CEPAT ; Jika P2.1=1 (tidak ada kendaraan)
```
- Cek
sensor B di P2.1
- Sama
seperti Jalur A
```assembly
B_HIJAU_NORMAL:
; Ada kendaraan → Delay NORMAL (2 detik)
ACALL DELAY_2S
SJMP B_KUNING
B_HIJAU_CEPAT:
; Tidak ada kendaraan → Delay CEPAT (1
detik)
ACALL DELAY_1S
```
-
Logika sama dengan Jalur A
###
**Fase Kuning Jalur B**
```assembly
B_KUNING:
; A: Merah | B: Kuning | C: Merah
MOV P0, #51H ; A=Merah, B=Kuning, C=Merah
```
- `MOV
P0, #51H`: 51H = 01010001 biner
- P0.4 = 1 (Kuning B nyala)
```assembly
CLR P3.7
; Cek IR Sensor B lagi untuk kuning
JB P2.1, B_KUNING_CEPAT
; Normal: 1 detik
ACALL DELAY_1S
SJMP FASE_C
B_KUNING_CEPAT:
; Cepat: 0.5 detik
ACALL DELAY_500MS
```
-
Logika sama dengan kuning A
---
##
**FASE 3: JALUR C HIJAU**
```assembly
FASE_C:
; A: Merah | B: Merah | C: Hijau
MOV P0, #09H ; A=Merah, B=Merah
```
- `MOV
P0, #09H`: 09H = 00001001 biner
- P0.0 = 1 (Merah A nyala)
- P0.3 = 1 (Merah B nyala)
```assembly
SETB P3.7 ; C=Hijau
```
-
`SETB P3.7`: Nyalakan hijau C di P3.7
```assembly
; Cek IR Sensor C di P2.2
JB P2.2, C_HIJAU_CEPAT ; Jika P2.2=1 (tidak ada kendaraan)
```
- Cek
sensor C di P2.2
```assembly
C_HIJAU_NORMAL:
; Ada kendaraan → Delay NORMAL (2 detik)
ACALL DELAY_2S
SJMP C_KUNING
C_HIJAU_CEPAT:
; Tidak ada kendaraan → Delay CEPAT (1
detik)
ACALL DELAY_1S
```
-
Logika sama dengan jalur A dan B
###
**Fase Kuning Jalur C**
```assembly
C_KUNING:
; A: Merah | B: Merah | C: Kuning
MOV P0, #89H ; A=Merah, B=Merah, C=Kuning
```
- `MOV
P0, #89H`: 89H = 10001001 biner
- P0.7 = 1 (Kuning C nyala)
```assembly
CLR P3.7 ; C Hijau mati
```
-
Matikan hijau C
```assembly
; Cek IR Sensor C lagi untuk kuning
JB P2.2, C_KUNING_CEPAT
; Normal: 1 detik
ACALL DELAY_1S
SJMP LOOP ; Kembali ke Fase 1
```
-
Setelah kuning C, kembali ke LOOP (Fase 1)
```assembly
C_KUNING_CEPAT:
; Cepat: 0.5 detik
ACALL DELAY_500MS
SJMP LOOP ; Kembali ke Fase 1
```
-
Delay cepat lalu kembali ke awal
---
##
**SUBRUTIN DELAY**
###
**Delay 2 Detik**
```assembly
DELAY_2S:
MOV R7, #20
```
- Isi
register R7 dengan 20
- Akan
memanggil DELAY_100MS sebanyak 20 kali
- 20 ×
100ms = 2000ms = 2 detik
```assembly
D2S:
ACALL DELAY_100MS
DJNZ R7, D2S
```
-
`ACALL DELAY_100MS`: Panggil delay 100ms
-
`DJNZ R7, D2S`: Decrement R7 dan Jump jika Not Zero
- Kurangi R7, jika belum 0, ulangi ke D2S
```assembly
RET
```
-
`RET`: Return (kembali ke pemanggil)
###
**Delay 1 Detik**
```assembly
DELAY_1S:
MOV R7, #10
D1S:
ACALL DELAY_100MS
DJNZ R7, D1S
RET
```
- 10 ×
100ms = 1000ms = 1 detik
-
Logika sama dengan DELAY_2S
###
**Delay 0.5 Detik**
```assembly
DELAY_500MS:
MOV R7, #5
D500:
ACALL DELAY_100MS
DJNZ R7, D500
RET
```
- 5 ×
100ms = 500ms = 0.5 detik
###
**Delay 100 Milidetik (Dasar)**
```assembly
DELAY_100MS:
MOV R5, #250
```
- Loop
luar: 250 kali
```assembly
DL1:
MOV R6, #250
```
- Loop
dalam: 250 kali
```assembly
DL2:
NOP
NOP
DJNZ R6, DL2
```
-
`NOP`: No Operation (instruksi kosong untuk delay)
- 2
NOP per iterasi
- Loop
dalam dijalankan 250 kali
```assembly
DJNZ R5, DL1
RET
```
-
Setelah R6 habis, kurangi R5 dan ulangi
-
Total: 250 × 250 = 62,500 iterasi
-
Dengan kristal 12MHz, ini menghasilkan ~100ms
```assembly
END
```
-
Akhir program
---
##
**RINGKASAN CARA KERJA**
1.
**Inisialisasi**: Semua LED mati, sensor siap
2.
**Siklus berulang**:
- Jalur A hijau → cek sensor → delay adaptif
→ kuning
- Jalur B hijau → cek sensor → delay adaptif
→ kuning
- Jalur C hijau → cek sensor → delay adaptif
→ kuning
- Kembali ke Jalur A
3.
**Delay adaptif**:
- Ada kendaraan: Hijau 2s, Kuning 1s
- Tidak ada: Hijau 1s, Kuning 0.5s
BAB IV
HASIL DAN PEMBAHASAN
Berdasarkan
hasil pengujian yang dilakukan menggunakan simulator EdSim51, sistem lampu lalu
lintas pertigaan ini telah berhasil berfungsi dengan baik dan sesuai dengan
rancangan awal. Secara visual, kita dapat melihat pada layar simulator bahwa
lampu merah, kuning, dan hijau menyala secara bergantian dengan urutan yang
tepat pada setiap jalur. Selain itu, interaksi antara perangkat lunak dan
simulasi perangkat keras juga berjalan lancar, di mana tombol-tombol yang kita
fungsikan sebagai pengganti sensor kendaraan benar-benar memberikan respons
yang sesuai terhadap perubahan warna lampu.
Inti
dari pembahasan proyek ini terletak pada logika "lampu hijau yang bisa
menyesuaikan diri". Tidak seperti lampu lalu lintas biasa yang waktunya
sudah dipatok mati, sistem ini bekerja lebih pintar karena bisa merespons
keadaan di lapangan. Saat sensor mendeteksi masih ada kendaraan yang lewat,
mikrokontroler 8051 akan secara otomatis menahan atau memperlama durasi lampu
hijau tersebut. Hal ini bertujuan agar arus kendaraan yang sedang padat bisa
mengalir lebih lama dan tidak terputus secara tiba-tiba oleh lampu merah,
sehingga kemacetan di area pertigaan bisa lebih diminimalisir.
Dari
hasil pengamatan, penggunaan sensor ini terbukti membuat pengaturan jalan
menjadi jauh lebih efisien. Kita tidak lagi melihat lampu hijau menyala lama di
jalur yang kosong, atau sebaliknya, lampu merah menyala terlalu cepat saat
kendaraan masih menumpuk. Meski begitu, dalam praktiknya kita perlu mengatur
batas waktu maksimal agar jalur lain tidak menunggu terlalu lama. Secara
keseluruhan, proyek ini membuktikan bahwa dengan logika pemrograman yang
sederhana namun tepat, kita bisa menciptakan sistem kendali lalu lintas yang
jauh lebih responsif dan membantu kelancaran jalan raya.
BAB V
KESIMPULAN
Kesimpulan
yang bisa kita ambil dari proyek ini adalah sistem lampu lalu lintas pertigaan
yang dibuat telah berhasil bekerja secara otomatis dan lebih cerdas berkat
penggunaan sensor IR dan mikrokontroler 8051. Melalui simulasi di EdSim51,
terlihat jelas bahwa program mampu menjalankan urutan lampu dengan tepat dan
merespons input sensor secara cepat. Poin paling utama adalah keberhasilan
fitur perpanjangan waktu (timer), di mana sistem tidak lagi kaku
menggunakan waktu tetap, melainkan bisa menahan lampu hijau lebih lama jika
memang masih ada kendaraan yang terdeteksi. Hal ini membuktikan bahwa
penggunaan mikrokontroler keluarga 8051 sangat efektif untuk menciptakan solusi
pengaturan jalan yang lebih dinamis dan mampu membantu mengurangi potensi
kemacetan di area pertigaan.
DAFTAR PUSTAKA
Mazidi, M. A., Mazidi, J. G., & McKinlay, R.
D. (2007). The 8051 Microcontroller and Embedded Systems: Using Assembly and
C. Pearson Education.
Ayala, K. J. (2004). The 8051 Microcontroller:
Architecture, Programming, and Applications. West Publishing Company.
Microchip Technology (Atmel). 8-bit
Microcontroller with 4K Bytes Flash AT89S51 Datasheet.
TAUTAN LINK
A.
Link PPT
B.
Link Youtube
https://youtu.be/avmpf7W4LvM?si=goCKUzUCaUkaY-Ct
Komentar
Posting Komentar