RANGKAIAN APLIKASI SEDERHANA
Rangkaian Mikroprosesor 8086 Sebagai Penggerak Motor Stepper Bipolar
Prinsip Kerja Rangkaian
![]() |
| gambar rangkaian sistem minimum |
Rangkaian yang ditunjukkan merupakan sistem berbasis mikroprosesor 8086 yang digunakan untuk mengendalikan motor stepper bipolar melalui IC driver L298. Mikroprosesor 8086 (U1) berfungsi sebagai pusat pengolah yang mengirimkan instruksi berupa data urutan logika untuk menggerakkan motor. Karena bus pada 8086 bersifat multiplex, data dan alamat berbagi jalur yang sama (AD0–AD7), sehingga dibutuhkan IC latch 74HC373 (U2) untuk menangkap alamat ketika sinyal ALE aktif, agar selanjutnya jalur bus dapat dipakai untuk pengiriman data. Data dari prosesor kemudian dikirim ke IC PPI 8255A (U3) yang bertugas sebagai antarmuka paralel untuk menghubungkan 8086 dengan perangkat eksternal. Port-port pada 8255 diprogram untuk menghasilkan sinyal logika yang sesuai dengan urutan langkah motor stepper bipolar. Sinyal ini diteruskan ke IC L298 (U4) yang berperan sebagai driver H-Bridge, sehingga mampu memberikan arus dua arah ke lilitan motor stepper. Dengan pola logika yang dikirimkan secara bergantian, motor stepper dapat bergerak dalam mode full-step atau half-step sesuai program. Selain itu, pada rangkaian ini juga terdapat seven segment display yang dihubungkan ke salah satu port 8255, berfungsi sebagai penampil status seperti posisi langkah atau arah putaran motor. Secara keseluruhan, rangkaian ini bekerja dengan cara mikroprosesor 8086 mengeksekusi program untuk menghasilkan urutan logika, 8255 menjadi jembatan penghubung ke perangkat keras, L298 menguatkan sinyal untuk menggerakkan motor stepper, dan seven segment menampilkan informasi kondisi sistem.
🔹 1. Mikroprosesor 8086 (U1)
-
U1 = 8086 sebagai otak utama sistem.
-
Jalur AD0–AD15 digunakan sebagai bus alamat/data multiplexed.
-
Dengan bantuan sinyal kontrol ALE (Address Latch Enable), sinyal alamat dipisahkan menggunakan latch eksternal.
🔹 2. Latch Address/Data (U2 = 74HC373)
-
Karena 8086 menggunakan multiplex bus, data dan alamat berbagi pin (AD0–AD7).
-
74HC373 (U2) berfungsi untuk “menyimpan” alamat dari bus ketika ALE aktif.
-
Setelah itu bus dapat digunakan untuk data.
🔹 3. IC PPI 8255A (U3)
-
8255A = Programmable Peripheral Interface.
-
Dipakai untuk komunikasi I/O paralel antara 8086 dengan perangkat eksternal (motor stepper, seven segment).
-
Port A, B, C dari 8255 digunakan untuk mengirimkan pola logika (bit ON/OFF) yang akan menentukan urutan langkah motor stepper bipolar.
-
8255 juga bisa dihubungkan ke 7-seg display untuk menampilkan status (misalnya step ke berapa).
🔹 4. Driver Motor L298 (U4)
-
L298 adalah driver motor H-Bridge yang dapat mengendalikan motor stepper bipolar.
-
Input IN1–IN4 menerima sinyal logika dari 8255.
-
Output OUT1–OUT4 terhubung ke lilitan motor stepper bipolar.
-
Kombinasi ON/OFF pada keempat input akan menentukan arah dan langkah motor.
-
Contoh urutan step full-step:
-
IN1=1, IN2=0, IN3=1, IN4=0
-
IN1=0, IN2=1, IN3=1, IN4=0
-
IN1=0, IN2=1, IN3=0, IN4=1
-
IN1=1, IN2=0, IN3=0, IN4=1
-
-
🔹 5. Seven Segment Display
-
Terhubung ke salah satu port 8255 (misalnya Port A).
-
Dipakai untuk menampilkan status kontrol, seperti angka step yang sedang aktif, arah putaran, atau jumlah langkah.
🔹 6. Prinsip Kerja Keseluruhan
-
8086 menjalankan program (kode assembly) yang mengatur urutan logika untuk menggerakkan motor stepper.
-
Alamat dikirim melalui bus → latch (74HC373) menyimpan alamat.
-
Data (pola step) dikirim ke 8255.
-
8255 meneruskan data ke driver L298.
-
L298 mengubah logika ON/OFF menjadi arus pada lilitan motor stepper.
-
Motor stepper berputar sesuai urutan langkah yang diberikan (CW/CCW, full-step/half-step).
-
Seven segment menampilkan angka yang merepresentasikan step atau status motor.
Gambar Rangkaian
1. Sebelum dijalankan
![]() |
| sebelum dijalankan |
2. Setelah dijalankan
![]() |
| setelah dijalankan |
Vidio Simulasi
Flowchart Rangkaian
Listing Program
; Program 8086 + 8255
; Menggerakkan motor stepper (Port C) dan menampilkan angka di 7-seg (Port A)
.model tiny
.code
org 100h
start:
; =============== INIT 8255 =================
mov dx, 083h ; alamat control register 8255 (ubah sesuai mapping di proteusmu)
mov al, 80h ; Mode 0: semua port output (PA, PB, PC)
out dx, al
; =============== LOOP PROGRAM ==============
main_loop:
; --- tampilkan angka di seven segment ---
mov dx, 080h ; alamat Port A (7-seg)
mov al, seg_code[si] ; ambil kode seven segment
out dx, al
; --- kirim step motor ke Port C ---
mov dx, 082h ; alamat Port C (motor stepper)
mov al, step_code[di]
out dx, al
; --- delay sederhana ---
call delay
; --- update index ---
inc si
cmp si, 10
jne next_digit
mov si, 0
next_digit:
inc di
cmp di, 4
jne loop_continue
mov di, 0
loop_continue:
jmp main_loop
; =========================
; Tabel kode seven segment
; (untuk Common Cathode)
; =========================
seg_code db 3FH,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh
; angka 0-9
; =========================
; Urutan stepper (4 langkah)
; =========================
step_code db 09h,0Ch,06h,03h
; 1001, 1100, 0110, 0011
; =========================
; Delay sederhana
; =========================
delay proc
push cx
mov cx, 0FFFFh
d1: loop d1
pop cx
ret
delay endp
end start
Penjelasan Berdasarkan Urutan Kode
1. Deklarasi Program
.model tiny
.code
org 100h
-
model tiny→ program kecil, satu segmen kode dan data. -
org 100h→ lokasi awal program untuk format COM file.
2. Inisialisasi PPI 8255
mov dx, 083h ; alamat control register
mov al, 80h ; Mode 0, semua port sebagai output
out dx, al
-
Mengatur 8255 agar semua port (A, B, C) berfungsi sebagai output.
-
Control word
80hartinya Mode 0 → output semua port.
3. Menampilkan Angka di Seven Segment
mov dx, 080h ; alamat Port A
mov al, seg_code[si] ; ambil kode dari tabel
out dx, al
-
Port A dihubungkan ke seven segment.
-
Nilai
seg_code[si]diambil dari tabel angka 0–9.
4. Menggerakkan Motor Stepper
mov dx, 082h ; alamat Port C
mov al, step_code[di]; ambil pola stepper
out dx, al
-
Port C dihubungkan ke driver motor stepper bipolar.
-
Nilai
step_code[di]mengatur urutan lilitan motor (ON/OFF).
5. Delay
call delay
-
Memanggil subrutin delay agar putaran motor dan pergantian angka seven segment tidak terlalu cepat.
6. Update Index Seven Segment
inc si
cmp si, 10
jne next_digit
mov si, 0
-
SI sebagai indeks tabel angka.
-
Naik dari 0 → 9, lalu kembali ke 0.
7. Update Index Stepper
inc di
cmp di, 4
jne loop_continue
mov di, 0
-
DI sebagai indeks tabel stepper.
-
Naik dari 0 → 3, lalu kembali ke 0.
8. Ulangi Loop
jmp main_loop
-
Program akan terus mengulang (infinite loop).
9. Tabel Data Seven Segment
seg_code db 3FH,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh
-
Tabel berisi pola biner angka 0–9 untuk seven segment common cathode.
10. Tabel Data Stepper
step_code db 09h,0Ch,06h,03h
-
Urutan pola untuk mengaktifkan lilitan motor stepper bipolar:
-
1001→ coil 1 dan 4 aktif -
1100→ coil 1 dan 2 aktif -
0110→ coil 2 dan 3 aktif -
0011→ coil 3 dan 4 aktif
-
11. Subrutin Delay
delay proc
push cx
mov cx, 0FFFFh
d1: loop d1
pop cx
ret
delay endp
-
Menggunakan perulangan kosong dengan counter
CX. -
Memberi jeda waktu agar motor stepper bergerak stabil dan angka seven segment terbaca jelas.
Kesimpulan
Program ini bekerja dengan alur berikut:
-
Inisialisasi 8255 agar semua port menjadi output.
-
Mengambil data angka dari tabel
seg_codelalu menampilkannya di seven segment (Port A). -
Mengambil data langkah dari tabel
step_codelalu mengirimkannya ke motor stepper (Port C). -
Memberikan delay agar gerakan dan tampilan tidak terlalu cepat.
-
Mengupdate indeks angka dan stepper.
-
Mengulangi proses dari awal secara terus menerus.
Dengan cara ini, seven segment akan menampilkan angka 0–9 secara berurutan, sementara motor stepper berputar mengikuti pola langkah yang ditentukan.
Download File
File Rangkaian unduh
File Program ASM unduh
File Program COM unduh
Datasheet mikroprosesor 8086 unduh
Datasheet IC PPI 8255A unduh
Datasheet 7HC373 unduh
Datasheet L298 unduh
Datasheet Motor Stepler unduh




Tidak ada komentar:
Posting Komentar