IMPLEMENTASI TRAFFIC LIGHT PERTIGAAN BERBASIS SENSOR INFRARED

 

IMPLEMENTASI TRAFFIC LIGHT PERTIGAAN

BERBASIS SENSOR INFRARED

 

Lambang - POLINES

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

https://www.canva.com/design/DAG7eEG9LZs/sjbMs-ypWE3HDFXP-pgOFQ/edit?utm_content=DAG7eEG9LZs&utm_campaign=designshare&utm_medium=link2&utm_source=sharebutton

B. Link Youtube

https://youtu.be/avmpf7W4LvM?si=goCKUzUCaUkaY-Ct

 

 

Komentar

Postingan populer dari blog ini

AIR TEMPERATURE SWITCHING AND MONITORING SYSTEM DENGAN MENGGUNAKAN SENSOR LM35 BERBASIS ATMEGA 16

RANCANG BANGUN KALKULATOR DIGITAL OPERASI KALI DAN BAGI BERBASIS MIKROKONTROLER AT89C51

SISTEM LAMPU LALU LINTAS PERTIGAAN BERBASIS AT89s51 DENGAN SENSOR INFRAMERAH