102
PERCOBAAN I MENGHIDUPKAN LED MELALUI KANAL PARAREL 1.1 TUJUAN Memahami bagaimana menghidupkan (sekaligus mengendalikan) beberapa LED melalui Port Pararel dengan berbagai macam kombinasi. 1.2 PERALATAN YANG DIGUNAKAN 1. Kit Modul Praktikum 2. Komputer 3. Kabel Penghubung Ke Komputer 1.3 TEORI Rangkaian minimum untuk menghidupkan 8 LED melalui Port 1 ditunjukkan pada gambar 1.1. Yang perlu diperhatikan adalah konfigurasi rangkaian LED itu sendiri yaitu Common Anode (CA), artinya untuk menghidupkan LED pada Port 1 yang bersangkutan harus dikirim atau ditulis logika ‘0’, jika ‘0’ kita tulis ke Port ‘0’ maka keluaran dari lacth yang akan menghidupkan LED sehingga baik kaki Port ‘0’ maupun resistor Pullup internal akan di Pulled-Low (secara internal juga), sehingga LED yang terhubung secara Common Chatode (CC), maka untuk menyalakan LED butuh penulisan ‘1’namun penulisan ‘1’ini menyebabkan port 0 menjadi masukan berimpedansi (karena adanya resistor Pullup internal) dan hanya cocok untuk masukan bukan 1

Isi Laporan Mikro Kelompok

Embed Size (px)

Citation preview

Page 1: Isi Laporan Mikro Kelompok

PERCOBAAN I

MENGHIDUPKAN LED MELALUI KANAL PARAREL

1.1 TUJUAN

Memahami bagaimana menghidupkan (sekaligus mengendalikan)

beberapa LED melalui Port Pararel dengan berbagai macam kombinasi.

1.2 PERALATAN YANG DIGUNAKAN

1. Kit Modul Praktikum

2. Komputer

3. Kabel Penghubung Ke Komputer

1.3 TEORI

Rangkaian minimum untuk menghidupkan 8 LED melalui Port 1

ditunjukkan pada gambar 1.1. Yang perlu diperhatikan adalah konfigurasi

rangkaian LED itu sendiri yaitu Common Anode (CA), artinya untuk

menghidupkan LED pada Port 1 yang bersangkutan harus dikirim atau ditulis

logika ‘0’, jika ‘0’ kita tulis ke Port ‘0’ maka keluaran dari lacth yang akan

menghidupkan LED sehingga baik kaki Port ‘0’ maupun resistor Pullup internal

akan di Pulled-Low (secara internal juga), sehingga LED yang terhubung secara

Common Chatode (CC), maka untuk menyalakan LED butuh penulisan ‘1’namun

penulisan ‘1’ini menyebabkan port 0 menjadi masukan berimpedansi (karena

adanya resistor Pullup internal) dan hanya cocok untuk masukan bukan keluaran

(arus dari Pullup internal tidak kuat untuk menyalakan LED karena ordenya µA,

sedangkan keluarannya bisa mencapai sekitar 3,8 mA). Hal ini berlaku juga untuk

Port 2 dan Port 3. penggunaan resistor 330 Ohm sebagai pembatas arus, dengan

tegangan Vcc 5 Volt maka arusnya sekitar 15 mA dan ini cukup untuk

menghidupkan LED (biasanya sekitar 10 mA).

Pengendalian LED dengan Mikrokontroller pada dasarnya adalah

mengatur variasi bilangan biner pada port yang digunakan sebagai output

pengendali LED. Pada modul ini LED dihubungkan dengan port 1 dengan alamat

80H, sehingga jika kita ingin menyalakan semua LED maka kita harus

1

Page 2: Isi Laporan Mikro Kelompok

mengirimkan data 0FFH ke alamat 80H dan jika kita ingin mematikan semua

LED maka kita harus mengirimkan data 00H ke alamat 80H.

Untuk menyalakan LED dengan variasi tertentu maka kita harus

mengirimkan data ke alamat 80H sesuai dengan bobot LED yang akan

dinyalakan. Misalnya LED yang akan dinyalakan adalah LED paling kiri

(bobotnya adalah 80H) dan LED paling kanan (bobotnya adalah 01H) maka data

yang harus dikirim adalah 80H + 01H = 81H.

Gambar 2.1. Rangkaian Aplikasi Menghidupkan LED Melalui Kanal Pararel

2

80H 40H 20H 10H 08H 04H 02H 01H

Gambar Susunan LED dan nilai dalam Hexa

Page 3: Isi Laporan Mikro Kelompok

1.4 PROGRAM-PROGRAM

1.4.1 Program Empat LED mati Hidup Secara Bergantian

$include(reg51.inc)

; ------------------------------------

; Lampu Flip Flop Pada Port 1

; ------------------------------------

Org 0h

Mulai : Mov P1,#00001111B ; LED P1.4 s/d P1.7 Nyala

Call Delay ; Panggil subrutine Delay

Mov P1,#11110000B ; LED P1.1 s/d P1.3 Nyala

Call Delay

Sjmp Mulai

; -------------------------

; Sub Runtine Delay

; -------------------------

Delay :

Mov R0,#5 ; Isi register R0 dengan 5

Delay1 : Mov R1,#255

Delay2 : Mov R2,#0

Djnz R2,$

Djnz R1, Delay2 ; Kurangi R1 dengan 1, bila hasil

Belum sama dengan 0 maka lompat

Ke Delay2

Djnz R0, Delay1 ; Kurangi R1 dengan 1, bila hasil

Belum sama dengan 0 maka

lompat

ke Delay1

Ret ; Kembali ke alamat setelah perintah

‘ACALL DELAY’

End

3

Page 4: Isi Laporan Mikro Kelompok

Tabel Kebenaran

LED D7 D6 D5 D4 D3 D2 D1 D0

Kondisi

0 0 0 0 1 1 1 1

1 1 1 1 0 0 0 0

Keterangan :

0 = Lampu Kondisi Nyala

1 = Lampu Kondisi Padam

1.4.2. Program Untuk Membuat LED Menyala Bergantian (Bergeser)

Dari P1.0 Ke P1.7

$include(reg51.inc)

; ----------------------------------------------------------

; Lampu Flip Flop Geser satu per satu

; ----------------------------------------------------------

Org 0HIni: Mov a,#11111110BLagi: Mov P1,a

Call DelayR1 aCjne a,#0feh,Lagi

Mula: rr aMov P1,aCall DelayDjne a,#0feh,MulaSjmp ini

Delay: Mov r0,#5Delay1: Mov r1,#155Delay2: Mov r2,#0

Djnz r2,$Djnz r1,Delay2Djnz r0,Delay1RetEnd

4

Page 5: Isi Laporan Mikro Kelompok

Tabel Kebenaran

LED D7 D6 D5 D4 D3 D2 D1 D0

Kondisi

1 1 1 1 1 1 1 0

1 1 1 1 1 1 0 1

1 1 1 1 1 0 1 1

1 1 1 1 0 1 1 1

1 1 1 0 1 1 1 1

1 1 0 1 1 1 1 1

1 0 1 1 1 1 1 1

0 1 1 1 1 1 1 1

1 0 1 1 1 1 1 1

1 1 0 1 1 1 1 1

1 1 1 0 1 1 1 1

1 1 1 1 0 1 1 1

1 1 1 1 1 0 1 1

1 1 1 1 1 1 0 1

1 1 1 1 1 1 1 0

Keterangan :

0 = Lampu Kondisi Nyala

1 = Lampu Kondisi Padam

1.4.3. Menghidupkan Lampu LED secara serempak

$include(reg51.inc)

; ----------------------------------------------------------

; Lampu Flip Flop nyala serempak

; ----------------------------------------------------------

Org 0HIni: Mov a,#11111111BLagi: Mov P1,a

Call Delaydec aCjne a,#0,Lagi

5

Page 6: Isi Laporan Mikro Kelompok

Mulai: mov p1,aCall Delayinc aDjne a,#11111111B,Mulai 1Sjmp mulai

Delay: Mov r0,#5Delay1: Mov r1,#20Delay2: Mov r2,#0

Djnz r2,$Djnz r1,Delay2Djnz r0,Delay1RetEnd

Tabel Kebenaran

LED D7 D6 D5 D4 D3 D2 D1 D0

Kondisi 0 0 0 0 0 0 0 0

Keterangan :

0 = Lampu Kondisi Nyala

1 = Lampu Kondisi Padam

Tugas

Buat program nyala lampu bergerak ketengah kembali ke posisi awal

Jawab :

Program Menyalakan LED Agar Bergerak Ke Tengah atau Kembali

Ke Posisi Awal

$include(reg51.inc)

; ----------------------------------------

; Lampu dari Tengah ke Port 1

; ----------------------------------------

Org 0h

Mulai : Mov P1,#11100111B ; LED P1.3 dan P1.4 Nyala

Call Delay ; Panggil subrutine Delay

Mov P1,#11011011B ; LED P1.2 dan P1.5 Nyala

6

Page 7: Isi Laporan Mikro Kelompok

Call Delay

Mov P1,#10111101B

Call Delay

Mov P1,#01111110B

Call Delay

Mov P1,#10111101B

Call Delay

Mov P1,#11011011B

Call Delay

Sjmp Mulai ; Lompat ke alamat dengan label

mulai

-------------------------

; Sub Runtine Delay

; -------------------------

Delay :

Mov R0,#5 ; Isi register R0 dengan 5

Delay1 : Mov R1,#0FFh ; Isi register R1 dengan FF ( Hex)

Delay2 : Mov R2,#0

Djnz R2,$

Djnz R1, Delay2 ; Kurangi R1 dengan 1, bila hasil

Belum sama dengan 0 maka lompat

Ke Delay2

Djnz R0, Delay1 ; Kurangi R1 dengan 1, bila hasil

Belum sama dengan 0 maka

lompat ke Delay1

Ret ; Kembali ke alamat setelah perintah

‘ACALL DELAY’

End

7

Page 8: Isi Laporan Mikro Kelompok

Tabel KebenaranLED D7 D6 D5 D4 D3 D2 D1 D0

Kondisi

1 1 1 0 0 1 1 1

1 1 0 1 1 0 1 1

1 0 1 1 1 1 0 1

0 1 1 1 1 1 1 0

1 0 1 1 1 1 0 1

1 1 0 1 1 0 1 1

1 1 1 0 0 1 1 1

Keterangan :

0 = Lampu Kondisi Nyala

1 = Lampu Kondisi Padam

8

Page 9: Isi Laporan Mikro Kelompok

PERCOBAAN II

MENAMPILKAN HURUF DENGAN SEVEN SEGMENT

2.1 TUJUAN

Memahami bagaimana membuat suatu huruf menggunakan seven segmen

dengan berbagai macam kombinasi tampilan.

2.2 PERALATAN YANG DIGUNAKAN

1. Kit Modul Praktikum

2. Komputer

3. Kabel Penghubung Ke Komputer

4. Seven segment

2.3 TEORI

2.3.1. DISPLAY ( SEVENT SEGMENT )

Display / tampilan merupakan sarana hubungan antara MCU dengan user,

layaknya sebuah layer monitor pada sebuah PC, dengan display dapat ditampilkan

hasil kerja dari MCU, status dari sensor atau actuator atau bentuk-bentuk tampilan

yang menarik, seperti huruf berjalan dan sebagainya.

1. Seven Segment antar muka parallel

Display paling sederhana adalah LED, hanya dapat ditampilkan state hi

atau lo dalam bentuk lampu LED yang hidup atau mati. Untuk menampilkan

numeris dikenal adanya 7 segment display, yang sebenarnya adalah 7 buah LED

yang disusun sedemikian rupa sehingga membentuk angka 8, ditambahkan 1 LED

bulat kecil untuk dot(titik), untuk menghidupkan ruas-ruas LED tersebut sama

dengan led tunggal yaitu memberi arus sekitar 10-20mA dari anoda ke katoda,

untuk membentuk angka, diperlukan kombinasi penyalaan LED sesuai dengan

angka yang akan ditampilkan.untuk7 segment dikenal adanya common anoda

semua anoda(anoda bersama) atau common cathode, dimana pada commonanoda

semua anoda LED dijadikan satu, sehingga untuk menghidupkan satu ruas LED

diperlukan tegangan yang negative. Tiap segment diberi notasi huruf a,b,c,d,e,f

dan g, serta dt untuk dot. untuk mentest atau mengetahui kaki-kaki pin mana yang

9

Page 10: Isi Laporan Mikro Kelompok

sesuai dengan ruas a,b,c,… dapat digunakan multitester yang diset pada posisi

ohmmeter jangkauan terendah,atau pada posisi test dioda. Multitester analog arus

dari probe hitam ke probe merah, sedangkan multimeter digital sebaliknya, aliri

arus dari anoda ke katoda,segemen LED akan menyala. Dalam perkembangannya

dua atau tiga segment dijadikan satu kemasa sudah dapat diperoleh dipasaran.

Gambar3.1 Display 7 Segment

Gambar dibawah memperlihatkan koneksi MCU AT89C2051 dengan satu

7 segment, dimana digunakan tambahan IC 74LS48 yang merupakan konvektor

BCD ke segment. Data pada P1;00d hingga 09d akan menyalakan display angka 0

hingga 9, sedangkan setelah 9, apa yang ditampilkan di 7 segment dapat dilihat

pada datasheet IC TTL 74LS48.

10

Page 11: Isi Laporan Mikro Kelompok

Gambar3.2 Koneksi Segment melalui IC 74LS48N

Untuk menghemat komponen, IC 74LS48 dapat dihilangkan, tetapi akan

ada kerugian yaitu pengurangan jumlah pin I/O yang tersedia untuk keperluan lain

dan software akan sedikit lebih rumit. Rutin software harus digunakan cara

lookup table atau melihat tabel, karena tidak ada rumusan yang tepat yang dapat

digunakan untuk mengkonversi BCD ke 7 segment.

Gambar Koneksi 7 Segment tanpa IC decorder 74LS48

;Program 12.5 : rutin ubah biner A ke 7 SegmentAto7S:

INC A ;Dibawah RET lokasi loopup tablenya.MOVC A,@A+PC ;A dirubah dengan data 7 SegmentRETgfedcbaDB 11000000b ;0DB 11111001b ;1

11

Page 12: Isi Laporan Mikro Kelompok

DB 10100100b ;2DB 10110000b ;3DB 10011001b ;4DB 10010010b ;5DB 10000010b ;6DB 11111000b ;7DB 10000000b ;8DB 10010000b ;9

Rutin 12.5 adalah mengubah nilai di A menjadi tampilan 7 segment,

sebagai contohnya; apabila A berisi 05d,maka melalui rutin 1A to7S akan menjadi

10010010b, bila nilai A dikirim ke P1, maka yang menyala adalah segment

a,b,c,d,f dan g (perhatikan segment yang menyala adalah yang diberi state to) Bila

dikehendaki lebih dari satu digit, mislanya diperlukan 3 digit untuk

bisamenunjukkan hingga 999, maka koneksi masing-masing segment ke MCU

secara langsung menjadi tidak efektif lagi, lagipula jumlah pin bisa tidak

mencukupi untuk keperluan tersbut. Cara yang biasa dipakai untuk solusi kasus

ini dengan multiplexing. Multiplexing display mirip multiplexing keyboard, untuk

jelasnya diperlihatkan pada gambar 3.3.

Gambar3.3 Multiplexing display

dan seterusnya kendali digit mana yang diaktifkan dilakukan oleh

transistor Q1 sd Q3 yang berfunsi sebagai saklar yang mengalirkan arus common

anoda. Bila Q1 yang aktif (dengan membuat P3.4 lo) dan yang lain tidak, maka

hanya digit 1 saja yang menyala, demikian juga untuk digit 2 dan 3.

12

Page 13: Isi Laporan Mikro Kelompok

Pengaktifan digit dilakukan bergantian, tidak boleh dalam waktu yang bersamaan,

dua atau lebih digit yang aktif, digit 1, digit 2, digit 3 dan kembali ke digit 1 lagi

dan seterusnya, berputar.

Dengan waktu pergantian pengaktifan (scanning) digit yang besar, akan

terlihat pengaktifan digit berjalan bergantian, seperti lampu berjalan bila waktu

dipersingkat pergantian menjadi semakin cepat dan pada waktu yang tepat, akan

kelihatan sepertnya semua digit menyala, seakan-akan tidak ada proses scanning

lagi. Ini terjadi karena adanya soifat remanensi dari mata manusia yang tetap

dapat mengimajinasikan bayangan suatu benda dalam waktu singkat etelah benda

tersebut tidak ada dan juga bahwa LED yang tidak diberi arus, masih

memancarkan cahaya dalam waktu singkat. Waktu scanning dapat ditentukan

dengan menunda pengaktifan antar digit, dengan program tunda.pentapan waktu

scanning yang terlalu cepat justru akan mengurangi intensitas dari 7 segment.

Jika dibandingkan dengan koneksi langsung tanpa multiplexing, intensitas

cahaya LED lebih redup, karena sebenarnya LED-LED tersebut berkedip, cara

seperti inilah yang digunakan pada system tampilan huruf berjalan, yang

digunakan untuk iklan-iklan ditoko-toko. System display 7 segment multiplexing

juga memerlukan software yang relative lebih rumit.

;Program 12.6, menghidupkan 123 pada segment dengan cara mux $mod51;8051 module

ORG 0000HAJMP STARTORG 0100H

START:mov a,#01 ;angka 1, pada digit 3acall Ato7S ;konversi ke 7 segmentsetb P3.4 ;aktifkan digit 3, lainnya tidaksetb P3.5clr P3.7mov P1,a ;data a ke p1acall delay ;penundaan antar digit (waktu scan)

mov a,#02 ;angka 2, pada digit 2acall Ato7Ssetb P3.4setb P3.5clr P3.7mov P1,aacall delay

13

Page 14: Isi Laporan Mikro Kelompok

mov a,#03 ;angka 3, pada digit 3acall Ato7Ssetb P3.4setb P3.5clr P3.7mov P1,aacall delay

ajmp start ;berputar kembalidelay: MOV R2,#0FH ;penundaan dapat ditunda atauDell: Mov R1, #0FFH ;dikurangi dengan merubah nilai R@ danR!DJNZ R1, $ ;disini....DJNZ R2,Dell RETAto7S: ;listing seperti P12.5ret

END

Suatu system MCU tentunya buanhanya menampilkan hasil olahan atau

menampilkan 123 seperti program diatas saja.menampilkan data hanyalah

sebagian dari rutin system MCU, kerja utama adalah mengambil data, melakukan

proses dan menampilkan hasil,misalnya membaca ADC, membandingkan dengan

referensi, menampilkan hasil atau melakukan tindakan tertentu, ini adalah

program utamanya.

Jika ‘program utama’ digunakan untuk tampilan, maka program utama yang

sebenarnya dapat diletakan pada rutin interupsi, misalnya interupsi timer

diaktifkan, setiap setengah detik akan diinterupsi, rutin interupsi membaca data

dan membandingkan atau mengolahnya, selesai interupsi, kembali ke program

utama, yaitu menampilkan hasil dengan cara multileksing.

System pemrograman juga dapat dibalik, program utama melakukan pembacaan

ADC dan mengolahnya, sedangkan system interupsi menggunakan timer, setiap

sekian milidetik diinterupsi untuk menyalakan digit ke 1, interupsi berikut

menyalakan digit ke 2 dan seterusnya. Penggunaan system interupsi harus

memperhatikan stack pointer.

14

Page 15: Isi Laporan Mikro Kelompok

2. Seven Segment antar muka Serial

Antar muka parallel, minimal memerlukan 7 saluran IO, untuk menghemat

IO, dapat dilakukan cara serial, beberapa metode dijelaskan berikut ini.

IC CMOS 4553 (Three-digit BCD Counter) adalah counter BCD 3 digit, dapat

mencacah pilsa dari 0 hingga 999, kemudian kembali ke 0 lagi dengan

memberikan sinyal OF (Over Flow, pin 14), hasil cacah iniditampilkan secara

multiplexer dalam format BCD, melalui 4511BCD tersebut dapat diubah menjadi

format 7 segment, seperti yang diperlihatkan pada gambar dibawah ini. Dengan

demikian hasil cacah dapat ditampilkan secara langsung sudah dalam format BCD

di 7 segment. Dengan koneksi 3 pin saja ke sistem MCU, rangkaian ini sudah

dapat menampilkan 3 digit BCD display, tanpa harus MCU melakukan scaning

display seperti yang telah dijelaskan sebelumnya.

Gambar3.4 Display 3 digit dengan 4553

Rangkain ini dapat dikaskadekan dengan rangkaian serupa, dengan clock pada

tingkat berikutnya yang berasal dari pinOF.dengan demikian dapat menjadi 6

digit, 9 digit dan seterusnya. Begitu dreset (aktif hi), counter akan menjadi 000.

setiap ada pulsa masuk (negative edge) counter akan meningkat 1, agar proses

pencacahan tidak terlihat di display, sebaliknya pada proses pencacahan LATCH

diaktifkan (aktif hi), baru setelah selesai mencacah, LATCH di non aktifkan.

Jika ingin menampilkan isi register A dalam display tipe ini, maka harus

dibuat program untuk membangkatkan pulsa clock sejumlah isi register A, atau

dengan logaritma sebagai berikut :

15

Page 16: Isi Laporan Mikro Kelompok

Latch aktif

Berikan sinyal reset sebentar (lo –hi- lo)

Beri clock sejumlah isi register A.

Latch tidak aktif (data ditransfer ke display) sebentar (hi-lo-hi).

Jika dikehendaki untuk menampilkan data yang lebih dari 255 diperlukan

register pasangan A dan B menggunakan register DPTR. Perhatikan bahwa

system MCU tidak perlu untuk melakukan scanning display,begitu data ini

ditampilkan, cukup sekali mengirim data melalui prosedur tersebut. Program 15.7

contoh rutin menampilkan isi register A pada 3 digit display.

;p12.7 rutin menampilkan isi register A;CLOCK, LATCH dan RESET harus didefinisikan dahulu didepan;pada IO yang mana.

TDDISPL:setb LATCHsetb CLOCKCLR RESETsetb RESETClr RESET

CLLOOP:DJNZ Acc,USAICLR CLOCKSETB CLOCKSJMP CLLOP

USAI:CLR LATCHSETB LATCHRET

Untuk kota – kota besar mencari IC CMOS 4553, relative lebih mudah dan

murah, untuk kota-kota kecil, kemungkinan sulit, atau jika ada harganya mahal.

Rangkaian display alternative yang lain diperlihatkan pada gambar dibawah ini,

dimana jenis komponenya lebih mudah dicari dipasaran

16

Page 17: Isi Laporan Mikro Kelompok

Gambar3.5 Display 3 digit dengan 4094

IC 4094 adalah 8 stage shift register, data diisikan secara serial dan

didorong oleh clock (positif edge), outputnya parallel. Dalam contoh nible rendah

dari data digunakan untuk pemilihan digit, ssedangkan nible tinggi digunakan

untuk data binernya. Jika register Ahendak ditampilkan pada display, data perlu

diramu lebih dahulu untuk dapat ditampilkan secara benar pada digit tertentu.

Program P12.8 adalah contoh program menampilkan 1234 pada display.MCU

perlu melakukan scanning display untuk menampilkan seluruh digit.

;p12.8 test scanning 7 segment dg shift register.sdata equ 96h ;P1.6 dataclock equ 97h ;P1.7PStart equ 0000h ;program start

$mod51 ;8051 moduleORG PstartAJMP STARTORG Pstart+30

START:mov SP,#30Hmov P1,#0

START1: mov a,#00001000b ;angka 0 pada digit 4acall trasferacall delay

mov a,#00010100b ;angka 1 pada digit 3acall trasferacall delay

17

Page 18: Isi Laporan Mikro Kelompok

mov a,#00100010b ;angka 2 pada digit 2acall trasferacall delay

mov a,#00110001b ;angka 1 pada digit 1acall trasferacall delayAJMP START1

transfer: mov R7,#8trloop: RRC a

mov sdata,Csetb clockclr clockdjnz r7,trloopret

Delay: MOV R2,#08Dell: MOV R1,#250

DJNZ R1,$DJNZ R2,DellRET

END

Intersil (sekarang bagian dari Harris Semiconductor), terkenal dengan

produk-produk driver untuk display, banyak IC digunakan pada multitester digital

3.5 digit yang berupa ADC yang langsung dapat dikoneksikan dengan LCD atau

LED. Salah produk driver untuk LED adalah ICM7218D,yang mungkin agak sulit

untuk mendapatkan dipasaran di Indonesia.

ICM7218D adalah multiplexed display driver yang dapat mengemudikan hingga

8 digit secara multiplexing secara otomatis (jadi MCU tidak perlu melakukan

multiplexing display). 7 segment yang digunakan adalah type Common Cathoda,

dimanatiap katodanyadihubungkan langsung dengan kendali digit pada IC7218D

(D1 sd D8).tiap-tiap segmen pada semua digit diparalel, temasuk decimal point

dp(titik)dan dihubungkan dengan kendali segmen pada IC7218D. tiap digit dapat

dicatu rata-rata 25 mA,tetapi apabila semua segment menyala (angka 8 +DPt),

arus total yang diperlukan adalah 150 mA.

18

Page 19: Isi Laporan Mikro Kelompok

Gambar3.6 Display 3 digit dengan 7218

Kendali input adalah Id3…ID0 berupa digit biner yang akan ditampilkan pada

digit yang dikendalikan oleh DA2…DA0, misalnya akan menampilkan angka 3

pada digit 1, maka ID3…ID0 = 0011b dan DA2 … DA0 = 000b. jika dp ingin

dihidupkan, maka ID7 = 1b. penulisan data diberikan algoritma sebagai berikut.

1. Siapkan data yang akan ditampilkan pada ID3…Id0

2. Siapkan alamat digit mana yang akan diaktifkan pada DA2…DA0

3. Berikan pulsa write (aktif lo) selama minimal 400 nS.

4. Setelah pulsa write kembali hi, berikan tunda minimal 125 nS untuk

penulisan pada digit yang lain.

Pin 9 digunakan untuk MODE dari IC7218D dimana, mode tersebut adalah :

1. Hi untuk mode HEX (0123456789ABCDEF)

2. Hi-z untuk mode CODE B (0123456789-EHLP)

3. Lo untuk mode OFF

Koneksi ke MCU bisa digunakan P10…P1.7 untuk ID0 …ID3,ID7 dan DA0…

DA2. P3.7 untuk HEXA/CODE dan P3.5 untuk write. Penggunaan I/O lain juga

dimungkinkan dan apabila tidak digunakan, seperti DP dan mode, pin dapat

dihubungkan dengan logika lo atau hi langsung, sesuai kebutuhan, dengan

demikian menghemat I/O pada MCU.

19

Page 20: Isi Laporan Mikro Kelompok

2.4 PROGRAM - PROGRAM

2.4.1 Program 7-segmen menampilkan huruf – HALINE- secara bergantian :

$include(reg51.inc)

; --------------------------------------------------------------

; Menampilkan huruf –HaLine- secara bergantian

; -------------------------------------------------------------

Org 0

Mu: Mov p3,#0fdh

Mov p0,#7fh

Call delay

Mov p3,#70h

Mov p0,#0bfh

Call delay

Mov p3,#24h

Mov p0,#0dfh

Call delay

Mov p3,#0bah

Mov p0,#0efh

Call delay

Mov p3,#77h

Mov p0,#0f7h

Call delay

Mov p3,#62h

Mov p0,#0fbh

Call delay

20

Page 21: Isi Laporan Mikro Kelompok

Mov p3,#0a0h

Mov p0,#0fdh

Call delay

Mov p3,#0fdh

Mov p0,#0feh

Call delay

Sjmp mu

Delay: mov r0,#5

Delay1: mov r1,#225

Delay2: mov r2,#0

Djnz r2,$

Djnz r1,delay2

Djnz r0,Delay1

Ret

End

Tabel Konversi Hexa ke Biner untuk tampilan 7 segmen

HURUF

8 4 2 1 8 4 2 1 BIL

HEXAC D P A B F G E

- 1 1 1 1 1 1 0 1 0FDH

H 0 1 1 1 0 0 0 0 70H

A 0 1 1 0 0 0 0 0 24H

L 1 0 1 1 1 0 1 0 0BAH

I 0 0 1 0 0 0 0 0 77H

N 0 1 1 0 0 0 1 0 62H

E 1 0 1 0 1 0 0 0 0A0H

- 1 1 1 1 1 1 0 1 0FDH

21

Page 22: Isi Laporan Mikro Kelompok

Tabel konversi Hexa ke Biner untuk Common 7 segmen

SEGMEN

8 4 2 1 8 4 2 1 BIL

HEXAD D D D D D D D

- 0 1 1 1 1 1 1 1 7FH

H 1 0 1 1 1 1 1 1 0BFH

A 1 1 0 1 1 1 1 1 0DFH

L 1 1 1 0 1 1 1 1 0EFH

I 1 1 1 1 0 1 1 1 0F7H

N 1 1 1 1 1 0 1 1 0FBH

E 1 1 1 1 1 1 0 1 0FDH

- 1 1 1 1 1 1 1 0 0FEH

2.4.2 Program 7-segmen menampilkan huruf – HALINE- secara serempak

:$include(reg51.inc)

; --------------------------------------------------------------

; Menampilkan huruf –HALINE- secara serempak

; -------------------------------------------------------------

Org 0h

Mulai: Mov DPTR,#Haline

Mov R6,#08h

Mov R1,#7Fh

Ulang: Clr A

Movc A,@A+DPTR

Inc DPTR

Mov P3,A

Mov A,R1

Mov P0,A

RR A

Mov R1,A

Mov R2,#0FFh

Delay: Djnz R2,delay

Mov R0,#0FFh

22

Page 23: Isi Laporan Mikro Kelompok

Djnz R6,Ulang

Jmp Mulai

; ==========================

;DATA AREA

; ==========================

Haline

DB 0FDH,70H,24H,0BAh,77H,62H,0A0H,0FDh

End

Tugas

Buat program membuat nama sendiri dengan seven segmen

Jawab :

$include(reg51.inc)

; --------------------------------------------------------------

; Menampilkan huruf – FEbrIan - secara bergantian

; -------------------------------------------------------------

Org 0

Mu: Mov p3,#0FDh

Mov p0,#E8h

Call delay

Mov p3,#70h

Mov p0,#OBFh

Call delay

Mov p3,#60h

Mov p0,#0A8h

Call delay

Mov p3,#38h

Mov p0,#38h

Call delay

23

Page 24: Isi Laporan Mikro Kelompok

Mov p3,#31h

Mov p0,#OEAh

Call delay

Call delay

Mov p3,#0FDh

Mov p0,#0FAh

Call delay

Mov p3,#0A0h

Mov p0,#24h

Call delay

Mov p3,#0fdh

Mov p0,#62h

Call delay

Sjmp mu

Delay: mov r0,#5

Delay1: mov r1,#225

Delay2: mov r2,#0

Djnz r2,$

Djnz r1,delay2

Djnz r0,Delay1

Ret

End

24

Page 25: Isi Laporan Mikro Kelompok

Tabel Konversi Hexa ke Biner untuk tampilan 7 segmen

HURUF

8 4 2 1 8 4 2 1 BIL

C D P A B F G E HEXA

F 1 1 1 0 1 0 0 0 0E8H

E 1 0 1 0 1 0 0 0 0A8H

b 0 0 1 1 1 0 0 0 38H

r 1 1 1 0 1 0 1 0 0EAH

I 1 1 1 1 1 0 1 0 0FAH

a 0 0 1 0 0 1 0 0 24H

n 0 1 1 0 0 0 1 0 62H

- 1 1 1 1 1 1 0 1 0FDH

Tabel konversi Hexa ke Biner untuk Common 7 segmen

SEGMEN

8 4 2 1 8 4 2 1 BIL

HEXAD D D D D D D D

F 0 1 1 1 1 1 1 1 0FDH

E 1 0 1 1 1 1 1 1 70H

b 1 1 0 1 1 1 1 1 0A0H

r 1 1 1 0 1 1 1 1 62H

I 1 1 1 1 0 1 1 1 34H

a 1 1 1 1 1 0 1 1 0FCH

n 1 1 1 1 1 1 0 1 77H

- 1 1 1 1 1 1 1 0 0FDH

25

Page 26: Isi Laporan Mikro Kelompok

PERCOBAAN III

MENAMPILKAN TULISAN PADA LCD

3.1 TUJUAN

Memahami bagaimana membuat suatu huruf menggunakan seven segmen

dengan berbagai macam kombinasi tampilan.

3.2 PERALATAN YANG DIGUNAKAN

1. Kit Modul Praktikum

2. Komputer

3. Kabel Penghubung Ke Komputer

4. LCD

3.3 TEORI

Sebagai tampilan data yang telah diproses oleh mikrokontroller maka

dibutuhkan suatu perangkat display yang berfungsi sebagai alat penampil data.

Diharapkan dengan adanya display ini pengguna dapat mengetahui data – data

hasil proses sesuai dengan yang dikehendaki.

Suatu perangkat display yang siap pakai dan mudah didapat serta banyak dipakai

adalah LCD dot matrik 2 x 16 karakter, jenis LCD ini mudah dalam

penggunaanya. Dalam perencanaan dan pembuatan alat ini digunakan LCD tipe

M1632 dari Seiko Instument.

Struktur pin – pin dan cara pengaksesannya pada LCD M1632 dijelaskan pada

table berikut ini :

Tabel 2-3 Definisi Pin LCD Modul M1632

Pin No Simbol Level Keterangan

1 Vss Power Supplay

2 Vcc

3 Vee

4 RS H/L H : Data Input L : Instruction Input

5 R/W H/L H : Read

L : Write

6 E H/L H : Enable

26

Page 27: Isi Laporan Mikro Kelompok

L : Disable

7 DB0 H/L

DATA BUS

8 DB1 H/L

9 DB2 H/L

10 DB3 H/L

11 DB4 H/L

12 DB5 H/L

13 DB6 H/L

14 DB7 H/L

15 V + BL Back Light supplay

16 V - BL

Instruksi – instruksi untuk dapat mengakses LCD tipe M 1632 dijelaskan pada

table dibawah ini :

Tabel Perintah Dalam Pengaksesan LCD

Instruksi

Code

FungsiRS R

/

W

D

B

7

D

B

6

D

B

5

D

B

4

D

B

3

D

B

2

D

B

1

D

B

0

Disply clear 0 0 0 0 0 0 0 0 0 1 Clear display dan cursor pada Add 0

Cursor home 0 0 0 0 0 0 0 0 1 X Kursor ke add 0

Entry mode set 0 0 0 0 0 0 0 1 I/D S Pemakai mode pada LCD

Display

ON/OFF

0 0 0 0 0 0 1 D C B Menset tampilan display

Cursor/Display

Shift

0 0 0 0 0 1 S/

C

R/

L

X X Gerakan kursor tanpa merubah DD RAM

Function Set 0 0 0 0 1 DL 1 X X X Untuk

27

Page 28: Isi Laporan Mikro Kelompok

menset lebar data yang akan digunakan

CG RAM

Address set

0 0 0 1

ACG

Digunakan untuk pengisian CG Ram

DD RAM

Address set

0 0 1

ADD

UntukPengisian DD Ram

Tulis data ke

CG Ram

1 0

Data

Perintah untuk penulisan data ke DD atau ke CG RAM

Baca data dari

CG atau DD

Ram

1 1

Data

Perintah untuk membaca data dari CG Aatau DD Ram

ACG : CG RAM Address B = 1 : Blink On

ADD : DD RAM Address B = 0 : Blink Off

I/D = 1 : Increment S/C = 1 : Display shift

I/D = 0 : Decrement S/C = 0 : Cursor Movement

S = 1 : Display Shift R/L = 1 : Right Shift

S = 0 : No Display Shift R/L = 0 : Left Shift

D = 1 : Display On DL = 1 : 8 bit data

D = 0 : Display Off DL = 0 : 4 bit data

C = 1 : Cursor On

C = 0 : Cursor Off

28

Page 29: Isi Laporan Mikro Kelompok

3.4 PROGRAM - PROGRAM

Program Demo untuk menjalankan LCD :

$include(reg51.inc)

;---------------------------------------------------------

;Program Demo untuk menjalankan LCD 16 x 2

;Character FN ; HL 18.H51

;---------------------------------------------------------

;

org 0h

nop

ljmp mulai

;

write_inst.

mov P1,#0h

mov P0,R1

setb P1.0

clr P1.0

acall delay

ret

;

write_data:

mov P1,#01

mov P0,R1

setb P1.0

clr P1.0

acall delay

ret

;

delay: mov R0,#02

delay1: mov R5,#50H

djnz R5,$

DJNZ R0,delay1

ret

29

Page 30: Isi Laporan Mikro Kelompok

;

Ldelay: mov R2,#030h

Ld1: acall delay

djnz R2,Ld1

ret

;

tulis: mov R4,#3

mov DPTR,#Haline

barisa;mov R3,#16

mov R1,#80h

acall write_inst

tulis1: clr A

mov A,@A+DPTR

mov R1,A

Inc DPTR

acall write_data

djnz R3,Tulis1

;

barisb;mov R3,#16

mov R1,#0C0h

acall write_inst

tulis2: clr A

mov A,@A+DPTR

mov R1,A

Inc DPTR

acall write_data

djnz R3,Tulis2

acall Ldelay

djnz R4barisa

ret

;

mulai:

mov R1,#03Fh

acall write_inst

30

Page 31: Isi Laporan Mikro Kelompok

acall write_inst

mov R1,#0Dh

acall write_inst

mov R1,#06h

acall write_inst

mov R1,#01h

acall write_inst

mov R1,#0Ch

acall write_inst

acall tulis

sjmp mulai

;

Haline: DB 'SELAMAT DATANG'

DB 'Sdr Teguh dkk'

DB 'di.D.Maninjau'

DB 'Mo.58 Sawojajar'

DB 'MALANG INDONESIA'

DB 'Phone/Fax 719418'

End

Tugas

Membuat Identitas diri kedalam LCD

Jawab :

;---------------------------------------------------------

;Program Demo untuk menjalankan LCD 16 x 2

;Character FN ; HL 18.H51

;---------------------------------------------------------

;

org 0h

nop

ljmp mulai

;

write_inst.

31

Page 32: Isi Laporan Mikro Kelompok

mov P1,#0h

mov P0,R1

setb P1.0

clr P1.0

acall delay

ret

;

write_data:

mov P1,#01

mov P0,R1

setb P1.0

clr P1.0

acall delay

ret

;

delay: mov R0,#02

delay1: mov R5,#50H

djnz R5,$

DJNZ R0,delay1

ret

;

Ldelay: mov R2,#030h

Ld1: acall delay

djnz R2,Ld1

ret

;

tulis: mov R4,#4

mov DPTR,#Haline

barisa;mov R3,#16

mov R1,#80h

acall write_inst

tulis1: clr A

mov A,@A+DPTR

mov R1,A

32

Page 33: Isi Laporan Mikro Kelompok

Inc DPTR

acall write_data

djnz R3,Tulis1

;

barisb;mov R3,#16

mov R1,#0C0h

acall write_inst

tulis2: clr A

mov A,@A+DPTR

mov R1,A

Inc DPTR

acall write_data

djnz R3,Tulis2

acall Ldelay

djnz R4barisa

ret

;

mulai:

mov R1,#03Fh

acall write_inst

acall write_inst

mov R1,#0Dh

acall write_inst

mov R1,#06h

acall write_inst

mov R1,#01h

acall write_inst

mov R1,#0Ch

acall write_inst

acall tulis

sjmp mulai

;

Haline: DB 'SELAMAT DATANG'

33

Page 34: Isi Laporan Mikro Kelompok

DB ’Teknik Elektro’

DB 'Febrian Dwi Cahyo'

DB '081020100020’

DB 'Universitas'

DB ‘Muhammadiyah’

end

PERCOBAAN IV

34

Page 35: Isi Laporan Mikro Kelompok

PENGENDALIAN MOTOR

4.1 TUJUAN

Memahami dan menguasai teknik-teknik dasar perancangan rangkaian

driver dan penggunaan stepper motor sebagai alat penggerak/pemutar dalam suatu

sistem peralatan kontrol yang diatur oleh sistem mikrosessor atau mikrokontroller

serta dapat membuat atau memanipulasi program untuk memutar stepper motor.

4.2 PERALATAN YANG DIPERLUKAN

Kit Modul Praktikum

Komputer

Kabel Penghubung ke Komputer

4.3 TEORI

Stepper motor adalah salah satu type motor yang sangat populer

digunakan sebagai penggerak/ pemutar peralatan – peralatan industri, misalnya

instrumentasi, komputer (disk drive & hard disk), printer, kontrol posisi pada

mesin / robot dan lain-lain untuk kebutuhan daya yang relatif rendah. Tetapi

keunggulan dibanding type motor yang lain ialah ia dapat memutar sampai pada

taraf derajat pada putaran rotornya. Prinsip kerja stepper motor ini dengan DC

motor, yaitu dicatu dengan tegangan DC untuk memperoleh medan magnet pada

lilitan-lilitan atau kutub statornya. Bila DC motor memiliki magnet tetap pada

rotor.

Suatu stepper motor biasanya cukup dinyatakan dengan

spesifikasi :”berapa phasa”,”berapa derajat per step”,”berapavolt tegangan catu

untuk lilitan dan “berapa ampere meter/mili meter untuk tiap liliotan”. Suatu

contoh stepper motor: 4 phasa, 1 S derajat / step, 12 V, 1 A. stepper motor ini

memiliki 4 buah lilitan pada kumparan stator. Masing-masing bila dicatu dengan

tegangan akan menghasilkan medan magnet dengan kutub yang sama pada sisi

yang menghadap ke rotor. Untuk dapat memutar rotor maka lilitan tersebut harus

dicatu dengan tegangan secara bergantian. Medan magnet yang searah akan

bertolakan, medan magnet yang berlawanan arah akan tarik menarik. Rotor akan

35

Page 36: Isi Laporan Mikro Kelompok

berputar mengikuti arah penggantian medan magnet yang dihasilkan oleh lilitan-

lilitan tersebut.

Pada prinsipnya ada dua macam cara kerja stepper motor, yaitu full step

dan half step. Lihat tabel dibawah ini.

TABEL 4.1

PEMBERIAN TEGANGAN UNTUK BEKERJA FULL STEP

FULL STEP

TEGANGAN YANG DIBERIKAN PADA LILITAN

ARAH PUTAR

SEARAH JARUM JAM

ARAH PUTAR

MELAWAN JARUM JAM

STEP L3 L2 L1 L0 L3 L2 L1 L0

1

2

3

4

1

0

0

0

0

1

0

0

0

0

1

0

0

0

0

1

0

0

0

1

0

0

1

0

0

1

0

0

1

0

0

0

TABEL 4.2

PEMBERIAN TEGANGAN UNTUK BEKERJA HALF STEP

FULL STEP

TEGANGAN YANG DIBERIKAN PADA LILITAN

ARAH PUTAR

SEARAH JARUM JAM

ARAH PUTAR

MELAWAN JARUM JAM

STEP L3 L2 L1 L0 L3 L2 L1 L0

1

2

3

4

5

6

7

8

1

0

0

0

0

0

0

1

0

1

1

1

0

0

0

0

0

0

0

1

1

1

0

0

0

0

0

0

0

1

1

1

0

0

0

0

0

1

1

1

0

0

0

1

1

1

0

0

0

1

1

1

0

0

0

0

1

1

0

0

0

0

0

1

36

Page 37: Isi Laporan Mikro Kelompok

Pada full step, suatu titik pada sebuah kutub magnet di rotor akan kembali

mendapat tarikan medan magnet stator pada lilitan yang sama setelah step ke-4

berikutnya dapat diberikan lagi mulai dari step 1. setiap step rotor bergerak baik

searah atau berlawanan jarum jam sebesar ¼ dari 360 derajat dibagi dengan

jumlah kutub magnet (batangan besi magnet) yang berada di sisi rotor (setiap step

hanya menarik sebuah kutub saja). Tegangan ‘1’ adalah menunjukkan logika

dalam level TTL. Besar tegangan sesungguhnya diatur sesuai spesifikasi stepper

motor yang dipakai. Misalnya dengan menggunakan buser.

Untuk half step, setiap kutub magnet di rotor akan kembali mendapat

tarikan dari medan magnet lilitan yang sama setelah step ke 8 berikutnya dapat

diberikan lagi mulai dari step 1. setiap step posisi rotor berubah sebesar 360/8

derajat dibagi dengan jumlah magnet batang di rotor.

Melihat bahwa pergerakan stepper motor adalah berdasarkan perubahan

logika pada input lilitannya maka menjadi mudah bagi programmer untuk

mengubah arah gerakan dan kedudukan rotor pad aposisi yang akurat. Ini adalah

salah satu keuntungan dari penggunaan stepper motor. Untuk dapat membuat

gerakan yang lebih presisi, biasanya jumlah batang magnet di rotor diperbanyak

dan lilitan dibuat berpasang-pasangan sesuai dengan posisi kutub magnet rotor.

Cara lain adalah dengan menggunakan sistem gear pada poros rotor tanpa

mengubah karakteristik stepper motornya.

4.4 PROGRAM-PROGRAM

4.4.1 Percobaan Motor Putar Kanan

$include(reg51.inc)

;------------------------------------------

Percobaan Motor Putar Kanan

;------------------------------------------

ORG 0H

MOV A,#0fehB

MULAI: MOV P0,a

CALL DELAY

Rl A

37

Page 38: Isi Laporan Mikro Kelompok

Sjmp MULAI

Delay : Mov R0,#2

Delay1: Mov R1,10

Delay2: Mov R2,#0

Djnz R2,$

Djnz R1,Delay2

Djnz R0,Delay1

Ret

End

4.4.2 Percobaan Motor Putar ke kiri

$include(reg51.inc)

;------------------------------------------

; Percobaan Motor Putar Kiri

;------------------------------------------

ORG 0H

MOV A,#0fehB

MULAI: MOV P0,a

CALL DELAY

Rr A

Sjmp MULAI

Delay : Mov R0,#2

Delay1: Mov R1,10

Delay2: Mov R2,#0

Djnz R2,$

Djnz R1,Delay2

Djnz R0,Delay1

Ret

End

38

Page 39: Isi Laporan Mikro Kelompok

4.4.3 Percobaan Motor Putar Kiri Kanan

$include(reg51.inc)

;------------------------------------------

; Percobaan Motor Putar Kiri Kanan

;------------------------------------------

Org 0H

Mulaki :Mov R3,#200

Mov A,#0feh

Mulai :Mov P1,A

ACALL DELAY

RL A

CJNE A,#7fh,Mulai

DJNZ R7,mulai

Mov R7,#200

Mulia: Mov P0,A

CALL Delay

RR A

CJNE A,#0FEh,Mulia

DJNZ R7,Mulia

Sjmp mula

Delay :Mov R0,#2

Delay1: Mov R1,#10

Delay2: Mov R2,#0

DJNZ R2,$

DJNZ R1,Delay2

DJNZ R0,Delay1

Ret

End

39

Page 40: Isi Laporan Mikro Kelompok

Tugas

Menjalankan motor putar kanan 5 kali dan putar kiri 5 kali

selanjutnya motor berhenti.

Jawab :

$include(reg51.inc)

;------------------------------------------

; Percobaan Motor Putar Kiri Kanan

;------------------------------------------

Org 0h

Mulaki :Mov R3,#65

Mov A,#0feh

Mulai :Mov P1,A

ACALL DELAY

RL A

CJNE A,#7fh,Mulai

DJNZ R7,mulai

Mov R7,#65

Mulia: Mov P0,A

CALL Delay

RR A

CJNE A,#0FEh,Mulia

DJNZ R7,Mulia

Sjmp mula

Stop: sjmp stop

Delay :Mov R0,#2

Delay1: Mov R1,#10

Delay2: Mov R2,#0

DJNZ R2,$

DJNZ R1,Delay2

DJNZ R0,Delay1

Ret

End

40

Page 41: Isi Laporan Mikro Kelompok

PERCOBAAN V

AD/DA CONVERTER

5.1 Tujuan

Memahami dan menguasai prinsip kerja dan teknik-teknik perancangan

rangkaian ADC/DAC Converter dan penggunaan dalam suatu sistem peralatan

kontrol atau instrumentasi serta dapat membuat dan memanipulasi program untuk

mengoperasikan ADC/DAC Converter.

5.2 Peralatan yang diperlukan

Kit Modul Praktikum

Komputer

Kabel Penghubung ke Komputer

Avo Meter

5.3 Teori

5.3.1 Analog to Digital Converter

Sinyal-sinyal digital secara ideal digambarkan sebagai bentuk gelombang

yang terjadi akibat perubahan antara nilai /parameter yang tertentu. Sinyal-sinyal

yang selalu mempunyai nilai tertentu dalam suatu interval yang kontinyu disebut

sinyal analog. Dalam pemrosesan sinyal-sinyal analog seringkali akan banyak

keuntungan yang didapat dengan mengubah terlebih dahulu ke bentuk digital.

Sebagai contoh misalnya kita melakukan proses untuk menentukan harga dari

tegangan analog yang berupa tegangan DC. Sebuah Voltmeter analog akan

menunjukkan harga dari tegangan tersebut dari sebuah jarum penunjuk pada

skala, sebuah Voltmeter digital akan langsung menunjukkan harga tersebut dalam

bentuk bilangan display. Atau suatu sinyal analog M(t) misalnya output dari

sebuah mikrophon yang berupa sinyal tegangan fungsi dari waktu. Memerlukan

proses untuk ditransmisikan ke sebuah loadspeaker di tempat lain agar noise

(gangguan yang tidak diinginkan) yang selalu menumpang pada sinyal yang

ditransmisikan dapat dikurangi. Cara yang efektif menekan noise adalah

mentransmisikan secara digital. Cara komunikasi yang menggunakan cara seperti

diatas yaitu mengubah sinyal analog ke bentuk digital kemudian

41

Page 42: Isi Laporan Mikro Kelompok

mengembalikannya sebagai sinyal analog disebut pulse modulation. Dalam proses

mengubah sinyal analog ke bentuk digital tercakup empat proses yang berurutan

yaitu sampling, holding, quantising dan encoding. Proses-proses ini tidak harus

merupakan operasi yang terpisah. Sampling dan holding dikerjakan secara

bersamaan dalam rangkaian yang disebut S/H circuit (Sample & Hold).

Quantising dan encoding dilaksanakan oleh rangkaian yang disebut analog to

digital (A/D) Converter.

Ketepatan dari keseluruhan proses pada dasarnya tergantung dari

sampling. Teori sampling erat kaitannya dengan teori komunikasi dan analisa

system. Misalnya diketahui suatu sinyal M (t) yang mempunyai frekuensi

tertinggi Fm. Selang waktu yang digunakan untuk mensampling sinyal tersebut

diijinkan pada interval yang tetap, yaitu Ts < ½ fm. Jadi sinyal diatas disampel

(diambil untuk diterjemahkan ke bobot biner) secara teratur setiap Ts atau bisa

lebih sering lagi. Sample-sampel ini akan mempunyai karakteristik atau contoh

sinyal pada suatu saat dari sinyal tersebut, sehingga dengan suatu proses tertentu

akan dapat dibentuk kembali tanpa kesalahan. Sinyal M (t) dapat dibentuk

kembali dengan melewatkan sample-sampelnya pada sebuah low-pas ideal yang

responsinya datar paling sedikit sampai frekuensi Fm dan frekuensi cut-off kurang

atau sama dengan fs-fm, dimana fs = 1/Ts disebut sampling time.sampling rate fs

harus cukup paling sedikit diambil dua sample selama periode yang bersesuaian

dengan komponen frekuensi tertinggi sinyal M (t).

Uraian tentang teori sampling diatas dapat dimengerti dari gambar 5.1

pada gambar (a) terlihat sinyal sampling yang dilakukan dengan menggunakan

sebuah FET sebagai pengontrol gate, terdiri dari deretan pulsa-pulsa.

Gambar 5.1 (a)

42

Page 43: Isi Laporan Mikro Kelompok

Gambar 5.1 (b)

Gambar 5.1 (c)

Gambar 5.1

(a) Sinyal sampel Dan Pengolahan Kembali

(b) Sinyal M (t)

(c) Transfer Karakteristik Filter Yang Diinginkan

Transmisi hanya terjadi selama ineterval diberikan dan sinyal akan

dibentuk kembali pada output low-pass filter. Gambar (b) memperlihatkan

sebagian sinyal. Gambar (c) menunjukkan bentuk gelombang sample Ms(t) yang

terdiri dari pulsa-pulsa. Lama tiap pulsa sama dengan interval waktu saat swich

FET tertutup. Selama selang waktu Ms (t) puncak dari tiap pulsa akan mengikuti

kontur M (t), diluar interval sampling Ms (t) akan sama dengan nol.

43

Page 44: Isi Laporan Mikro Kelompok

Karakteristik filter yang dibutuhkan agar M (t) dapat dibentuk kembali

tanpa kesalahan ditunjukkan pada gambar (c ). H (f) / Vi (f) adalah transfer

function dari filter. H (f) harus flat, paling sedikit sampai frekuensi fim, yaitu

komponen frekuensi tertinggi dari M (t), dan H (f) haruslah jatuh ke nol sebelum

fs-fm. Misalnya fm = 1 Khz maka minimum frekuensi sampling adalah fs = 2fm =

2 Khz. Kita ambil fs = 2,5 Khz maka fs – fm = 2,5 – 1 =1,5 , jadi diinginkan H (f)

konstan = Ho dari 0 sampai paling sedikit 1 Khz kemudian menurun sampai nol

pada frekuensi < 1,5 Khz. Bila kita ambil fs = 2fm, fs dikurangi fm = 2fs-fm,

maka H (f) = Ho. Sampai fm baru menurun ke nol tentu saja karakteristik dari

bandpass filter sehingga tidak terjadi distorsi.

Perbandingan sinyal asli dengan sampelnya ditunjukkan sebagai

communication channel yang biasa berupa kawat atau hubungan radio. Fasilitas

communication channel sangat berharga, oleh sebab itu penggunaannya harus

semaksimal mungkin. Kita laihat pada transmisi sinyal M (t) channel yang

digunakan hanya / Ts dari waktu yang tersedia, jadi selama channel tidak

digunakan dapat dimanfaatkan untuk menyalurkan sinyal lain.

Dalam percobaan ini saudara akan berexperimen dengan IC analog to

digital converter (ADC 0804) yang data pin-pinnya seperti gambar 3.2 di bawah

ini :

Gambar 5.2

5.3.2 Digital to Analog Converter

Digital to Analog (D/A) Converter adalah suatu rangkaian pengubah

informasi dari digital ke analog. Rangkaian ini diperlukan pada saat suatu

44

Page 45: Isi Laporan Mikro Kelompok

rangkaian digital digunakan sebagai alat kontrol pada suatu sistem rangkaian yang

mengoperasikan parameter tegangan / arusnya dalam analog. Misalnya peralatan

pemanas (heater), pengatur putaran DC motor, sistem rekaman digital dan lain-

lain. D/A Converter akan mengubah setiap konfigurasi logika pada input-inputnya

kedalam tegangan analog pada outputnya dengan perbandingan yang tertentu.

Lihat gambar 5.3. Input Output pada D/A Converter

Pada contoh diatas D/A Converter memiliki 8 bit input port. Maka ketelitian

gelombang tangga (starcase) pada output adalah (1/256) dari tegangan output

maksimum bila tegangan output minimum diset pada 0 volt.

Misalnya Vout (max) = 5,12 Volt dan Vout (min) = 0,00 Volt. Maka

hubungan tegangan input dan output adalah sebagai berikut:

Tegangan

Output / Vout

(Volt)

D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 0 0 0 0 0 0,00

0 0 0 0 0 0 0 1 0,02

45

Digital input

DigitalTo

AnalogConverte

r

1V (satu tangga) = ------- x Vout (max)

256 Vout (min) = 0 Volt

Page 46: Isi Laporan Mikro Kelompok

0 0 0 0 0 0 1 0 0,04

0 0 0 0 0 0 1 1 0,06

0 0 0 0 0 1 0 0 0,08

0 0 0 0 0 1 0 1 0,10

0 0 0 0 0 1 1 0 0,12

.

.

.

X,xx

1 1 1 1 1 1 0 0 5,06

1 1 1 1 1 1 0 1 5,08

1 1 1 1 1 1 1 0 5,10

1 1 1 1 1 1 1 1 5,12

Catatan : ‘0’ dan ‘1’ pada input adalah level TTL

Bentuk dasar D/A Converter terdiri dari dua macam, yaitu Weight

Resistor DAC dan R-2R Ladder DAC. Bentuk yang paling sederhana

menggunakan Weight resistor. Resistansi dalam rangkaian dari cara ini

mempunyai nilai yang sebanding dengan kebaikan nilai numeric digit yang

ditunjukkannya. Struktur dasarnya adalah seperti gambar dibawah ini.

46

Page 47: Isi Laporan Mikro Kelompok

Output dari DAC ini tergantung dari nilai resistansi resistor yang

mempunyai urutan kelipatan-kelipatan untuk tiap dua bit berurutan yang

ditunjukkannya. Dengan demikian nilai parameter R dapat dipilih dengan bebas.

Anggaplah V (1) = Vr, yaitu sumber tegangan referensi dan V (0) = 0. Bila posisi

switch berada pada ‘0’ maka berarti diketanahkan, atau berlogika ‘0’.

Arus keluaran IL dapat dihitung tergantung dari posisi switch. Misalnya

digunakan variable Sk, sedang bila pada posisi ‘0’ maka Sk = 0. Arus short circuit

pada output dapat dihitung sebagai berikut.

SN-1 S N-2 S 0

ILS = VR (------- + -------- + ……………. + -------- ) ……………( 4–1 ) R N-1 R N-2 R 0

I LS = V / R ( SN-1 2 N-1 + S N-2 2N-2 + ………..S 0 20 ………… ( 4–2 )

S = SN-1 + S N-2 + SN-3 + ……………. + S0

Dengan faktor pembanding sebesar VR : R, perbandingan ini akan tetap

meskipun factor pembandingnya berbeda. Asal RL tidak sama dengan nol.

47

S0 R/2

S1 R/4 RL

S2

R/2n-1

Sn MSB

_ _Gambar 5.4.

Analogi sebuah Weight Resistor DAC

Page 48: Isi Laporan Mikro Kelompok

Kesulitan yang timbul bila kita menggunakan D/A Converter dari jenis

weight resistor ini adalah “Range” dari resistor yang dibutuhkan cukup besar.

Misalnya pada MSB digunakan resistor 2 Kohm dan Converter diperlukan untuk

input digital sebanyak 13 bit. Maka harga tahanan pada LSB adalah sebesar 212 x

2 Kohm = 8192 Kohm atau 8,2 Mohm. Dengan resistor bertoleransi 1% maka

toleransi tahanan pada LSB adalah 82 Kohm. Hal ini sulit dicapai terutama pada

pembuatan IC (Integrated Circuit)-nya. Untuk memperoleh nilai resistansi dengan

ketelitian tinggi pada resistor yang bernilai besar adalah masih sulit dilaksanakan.

Oleh karena itu jenis DAC ini terbatas jumlah bitnya.

Untuk mengatasi kekurangan yang terdapat pada DAC jenis Weight

Resistor tersebut dapat dicapai dengan penggunaan metode kedua, yaitu R-2R

Ladder DAC. Dalam DAC jenis ini hanya digunakan nua buah nilai resistor saja,

yaitu R dan 2R. Lihat gambar dibawah ini.

Gb5.5 (a) Analog sebuah R-2R Ladder D/A Converter

Gb5.5 (b) Analisa Output V0 menggunakan Rangkaian Thevenin

48

Page 49: Isi Laporan Mikro Kelompok

R +

vo

VR/2 - -

__ VR D

Gb5.5 (c) Penyederhanaan Rangkaian Gambar 8-3 (b)

R R R R +

vo

--- A’ 2R 2R 2R -VR/2

Gb5.5 (d)Ekivalen Rangkaian Dilihat dari Output

Rangkaian pada gambar 4.3 diatas adalah DAC untuk digital input

sebanyak 4 bit. R-2R Ladder DAC ini memerlukan resistor dua kali lebih banyak

dari Weight Resistor DAC. Prinsip kerjanya adalah sebagai berikut. Anggaplah

S0=1 dan S1=S2=S3=0. Sumber tegangan VR dihubungkan seri dengan tahanan

seri 2R (lihat gambar 4-3 (a)).

Dengan menggunakan teori Thevenin A-A’ diperoleh gambar (b). Lihat

sumber tegangan VR/2 seri. Dengan cara yang sama pada BB’, CC’, dan DD’,

maka diperoleh bahwa sumber tegangan akan terbagi menjadi dua dengan

ipedansi output Thevenin sama dengan R. Rangkaian ekuivalennya ditunjukkan

pada gambar (d), dengan sumber tegangan menjadi VR/2R. Dengan demikian tiap

posisi switch menunjukkan bobot biner yang sesuai.

49

Page 50: Isi Laporan Mikro Kelompok

Persamaan tegangan outputnya adalah :

S3 S2 S1 S0

Vo = VR ( ---- + ---- + ---- + ---- ) ……………………… ( 4–3 ) 21 22 23 24

Vo = VR / 24 ( S3 . 23 + S2 . 22 + S1 . 21 + S0 . 20 )……. ( 4–4 ) Secara umum dapat ditulis :

Vo = VR / 24 ( SN-1 . 2N-1 + SN-2 . 2N-2 + …. + S0 . 20 ) …. ( 4–5 )

Bila dipasang beban RL maka tegangan output akan menjadi :

Vo = VR / 24 . RL / R + RL ………………………….…… ( 4–6 )

Agar pembagian antara tegangan beban Ladder dengan RL dapat

dilakukan secara aman (secara relatif tidak mempengaruhi nilai output) maka

diusahakan RL >> R Ladder. Dalam aplikasi biasanya ditambahkan sebesar 2R

setelah switch MSB sehingga impedansi yang dilihat tiap cabang akan sama yaitu

3R.

Dalam percobaan ini saudara akan berksperimen dengan IC analog to digital

converter (IC DAC 0808) yang data pin-pinnya seperti gambar 4-4 dibawah ini.

50

Vcc -- 1 16 -- A8 LSB

VREF -- 2 15 -- A7

VREF -- 3 14 -- A6

COMPENSATION -- 4 13 -- A5

NC (NOTE 2) -- 5 12 -- A4

GND -- 6 11 -- A3

VEE -- 7 10 -- A2

10 -- 8 9 -- A1 MSB

Gambar 5.6

Page 51: Isi Laporan Mikro Kelompok

5.4 PROGRAM-PROGRAM

5.4.1. PROGRAM DAC / ADC ( LED )

$include(reg51.inc)

;--------------------------------

;Program DAC/ADC (Led)

;--------------------------------

;===============================================

;Program demo HA0804 + HB200

;konektor pada port 3 + port 2

;output nilai biner oleh nyala LED di port 1

;===============================================

ADC_CS bit P2.0

ADC_RD bit P2.1

ADC_WR bit P2.2

ADC_INT bit P2.3

;

org 0h

next_sampling:

clr ADC_CS

clr ADC_WR

setb ADC_WR

not_EOC:

jb ADC_INT,not_EOC

delay: djnz r2,$

djnz r3,delay

clr ADC_RD

djnz r3,$

mov a,p3

setb ADC_RD

setb ADC_CS

cpl a

mov p1,a

51

Page 52: Isi Laporan Mikro Kelompok

sjmp next_sampling

end

TABEL HUBUNGAN TEGANGAN INPUT – OUTPUT

VOut (Max) = 5,10 dan Vout (Min) = 0,00

D7 D6 D5 D4 D3 D2 D1 D0 Desimal Hexa Tegangan 0 0 0 0 0 0 0 0 0 0 0,000 0 0 0 0 0 0 1 1 1 0.040 0 0 0 0 0 1 0 2 2 0,060 0 0 0 0 0 1 1 3 3 0,070 0 0 0 0 1 0 0 4 4 0,090 0 0 0 0 1 0 1 5 5 0,110 0 0 0 0 1 1 0 6 6 0,130 0 0 0 0 1 1 1 7 7 0,150 0 0 0 1 0 0 0 8 8 0,170 0 0 0 1 0 0 1 9 9 0,180 0 0 0 1 0 1 0 10 A 0,200 0 0 0 1 0 1 1 11 B 0,220 0 0 0 1 1 0 0 12 C 0,230 0 0 0 1 1 0 1 13 D 0,250 0 0 0 1 1 1 0 14 E 0,280 0 0 0 1 1 1 1 15 F 0,300 0 0 1 0 0 0 0 16 10 0,31. . . . . . . . . . .0 0 1 0 0 0 1 0 34 22 0,69. . . . . . . . . . .0 1 1 0 0 1 1 0 102 66 1,98. . . . . . . . . . .1 1 0 0 1 1 0 0 204 CC 3,94. . . . . . . . . . .1 1 0 1 1 1 0 1 221 DD 4,26. . . . . . . . . . .1 1 1 1 1 1 0 0 252 FC 4,85. . . . . . . . . . .1 1 1 1 1 1 1 1 255 FF 4,90

52

Page 53: Isi Laporan Mikro Kelompok

53

Page 54: Isi Laporan Mikro Kelompok

5.4.2 PROGRAM ADC LCD

$Include(reg51.inc);======================================; measure voltage with ADC + LCD; file name : ADCM.H51;======================================; Definisi pemakaian port;--------------------------LCD_RS bit P1.1LCD_CS bit P1.0;ADC_CS bit P2.0ADC_RD bit P2.1ADC_WR bit P2.2ADC_INT bit P2.3;--------------------------------; Definisi variable pemakaian RAM;--------------------------------Temp equ 50hTmp_0 equ 51hTmp_1 equ 52hTmp_2 equ 53hTmp_3 equ 54hDiv_0 equ 55hDiv_1 equ 56hDiv_2 equ 57hDiv_3 equ 58hNum_Lo equ 59hNum_Hi equ 5AhMul_Lo equ 5BhMul_Hi equ 5ChADC_data equ 5Dhhexval equ 5EhDecL equ 60hDecH equ 61hkeydata equ 62hdataiL equ 63hdataiH equ 64hcounti equ 65hkeybounc equ 66hhexL equ 67hhexH equ 68hHex_0 EQU 69hHex_1 EQU 6AhHex_2 EQU 6BhHex_3 EQU 6ChDec_0 EQU 6DhDec_1 EQU 6Eh

54

Page 55: Isi Laporan Mikro Kelompok

Dec_2 EQU 6FhDec_3 EQU 70hDec_4 EQU 71hADCL equ 72hADCH equ 73hBatas equ 74hOld_data equ 75h;

Org 0h;===================================; Awal dari program; Inisialisasi dan pengisian nilai; awal dari beberapa variable;===================================mulai_0:;==================; Inisialisasi LCD;==================

call Ldelaymov R1,#03Fhacall write_instacall write_instmov R1,#0Dhacall write_instmov R1,#06hacall write_instmov R1,#0Chacall write_instmov R1,#01hacall write_inst

;===========================; Menunggu tombol ditekan ; untuk pemilihan MENU;===========================Mulai:

mov R1,#0Chacall write_instmov dptr,#judulcall Tulis_LCD_2_baris_w_o_delay

run:call ADC0808call Ldelay

; tampilkan nilai hexmov R1,#8Chcall write_instmov A,ADC_Dataswap Aanl A,#0Fhorl A,#30Hcjne A,#3Ah,cek01

55

Page 56: Isi Laporan Mikro Kelompok

cek01: jc terus1add A,#7H

terus1: mov R1,Acall write_data

; nilai nible rendahmov A,ADC_Dataanl A,#0Fhorl A,#30Hcjne A,#3Ah,cek02

cek02: jc terus2add A,#7H

terus2: mov R1,Acall write_data

;; hitung dan tampilkan nilai desimal

mov A,ADC_data;

mov Num_Hi,#03H ; ADC_data X 1000mov Num_Lo,#0E8hmov mul_Hi,#0mov mul_Lo,ADC_data ; ADC datacall mul_16mov div_3,mul_Himov div_2,mul_Lomov div_1,Num_Himov div_0,Num_Lomov mul_Hi,#0mov mul_Lo,#0mov Num_Hi,#0mov Num_Lo,#8 ; ADC_data = ADC_data * 1000 / 8call div_16mov hex_3,div_3mov hex_2,div_2mov hex_1,div_1mov hex_0,div_0mov ADCH,div_1mov ADCL,div_0mov tmp_0,#8call hex2des

; display hasil mov R1,#0C4h

call write_instmov A,DEC_2anl A,#0Fhadd A,#30hmov R1,Acall write_datamov A,DEC_1swap Aanl A,#0Fh

56

Page 57: Isi Laporan Mikro Kelompok

add A,#30hmov R1,Acall write_data

;mov R1,#'.' ; desimal pointcall write_data

;mov A,DEC_1anl A,#0Fhadd A,#30hmov R1,Acall write_data

;mov A,DEC_0swap Aanl A,#0Fhadd A,#30hmov R1,Acall write_data

;mov A,DEC_0anl A,#0Fhadd A,#30hmov R1,Acall write_datajmp run

;========================================; Routine untuk menulis instruksi ke LCD;========================================write_inst:

clr LCD_RSsetb LCD_CSmov P0,R1 ;intruksi ke LCDclr LCD_CS ;modulesetb LCD_CSacall delay ret

;========================================; Routine untuk menulis data ke LCD;========================================write_data:

setb LCD_RSsetb LCD_CSmov P0,R1 ;data ke LCDclr LCD_CS ;modulesetb LCD_CSacall delayret

;=========================; Routine penghasil delay

57

Page 58: Isi Laporan Mikro Kelompok

;=========================delay: mov R5,#0

djnz R5,$ret

;=================================; Routine penghasil delay panjang;=================================Ldelay: mov R2,#100Ld1: acall delay

djnz R2,LD1ret

;=================================; Routine menulis character ; sebanyak 16 di baris LCD atas;=================================tulis_LCD_atas:

mov R3,#16mov R1,#80hacall write_inst

tulis1: clr Amovc A,@A+DPTRmov R1,Aacall write_datainc DPTRdjnz R3,Tulis1ret

;=================================; Routine menulis character ; sebanyak 16 di baris LCD bawah;=================================tulis_LCD_bawah:

mov R3,#16mov R1,#0C0hacall write_inst

tulis3: clr Amovc A,@A+DPTRmov R1,Aacall write_datainc DPTRdjnz R3,Tulis3ret

;===================================; Routine menulis character sebanyak; 32 di baris LCD atas dan bawah;===================================Tulis_LCD_2_baris:

Lcall tulis_LCD_atasLcall tulis_LCD_bawahLcall Ldelaydjnz R7,Tulis_LCD_2_baris

58

Page 59: Isi Laporan Mikro Kelompok

; Lcall Ldelayret

;===========================================; Routine menulis character sebanyak; 32 di baris LCD atas dan bawah tanpa delay;===========================================Tulis_LCD_2_baris_w_o_delay:

Lcall tulis_LCD_atasLcall tulis_LCD_bawahret

;----------------------------------------; Div_32 : Routine untuk pembagian 32 bit; 32 bit / 32 bit -> 32 bit ; MSB LSB ; Pembagi -> Mul_Hi Mul_Lo Num_Hi Num_Lo ; Bilangan -> Div_3 Div_2 Div_1 Div_0 ; Hasil -> Div_3 Div_2 Div_1 Div_0 ; Sisa -> Tmp_3 Tmp_2 Tmp_1 Tmp_0;----------------------------------------Div_32:

MOV Tmp_0,#0MOV Tmp_1,#0MOV Tmp_2,#0MOV Tmp_3,#0

D_32_J4:MOV a,Div_3MOV b,Mul_HiCJNE a,b,D_32_J1MOV a,Div_2MOV b,Mul_LoCJNE a,b,D_32_J1MOV a,Div_1MOV b,Num_HiCJNE a,b,D_32_J1MOV a,Div_0MOV b,Num_LoCJNE a,b,D_32_J1AJMP D_32_J2

D_32_J1:JNC D_32_J2PUSH Tmp_3PUSH Tmp_2PUSH Tmp_1PUSH Tmp_0MOV Tmp_3,Div_3MOV Tmp_2,Div_2MOV Tmp_1,Div_1MOV Tmp_0,Div_0POP Div_0POP Div_1

59

Page 60: Isi Laporan Mikro Kelompok

POP Div_2POP Div_3AJMP D_32_J3

D_32_J2:CLR cMOV a,Div_0MOV b,Num_LoSUBB a,bMOV Div_0,aMOV a,Div_1MOV b,Num_HiSUBB a,bMOV Div_1,aMOV a,Div_2MOV b,Mul_LoSUBB a,bMOV Div_2,aMOV a,Div_3MOV b,Mul_HiSUBB a,bMOV Div_3,aMOV a,Tmp_0ADD a,#1MOV Tmp_0,aJNC D_32_J4MOV a,Tmp_1ADD a,#1MOV Tmp_1,aJNC D_32_J4MOV a,Tmp_2ADD a,#1MOV Tmp_2,aMOV a,Tmp_3ADD a,#1MOV Tmp_3,aAJMP D_32_J4

D_32_J3:RET

;;-----------------------------------------------; Hex2Des : Routine untuk mengubah bilangan; hexa 32 bit menjadi desimal; (membutuhkan routine Div_32 dan ; code Tabel);; MSB LSB Digit; Bil hexa : Hex_3 Hex_2 Hex_1 Hex_0 Tmp_0; Desimal : Dec_4 Dec_3 Dec_2 Dec_1 Dec_0 ;-----------------------------------------------Hex2Des:

60

Page 61: Isi Laporan Mikro Kelompok

MOV Dec_0,#0MOV Dec_1,#0MOV Dec_2,#0MOV Dec_3,#0MOV Dec_4,#0MOV dptr,#TabelMOV a,Tmp_0MOV b,#2DIV abPUSH ACCMOV a,bCJNE a,#1,H_D_J1POP ACCINC aINC Tmp_0AJMP H_D_J2

H_D_J1: POP ACCH_D_J2:

MOV r7,aMOV r0,#Dec_0ADD a,r0DEC aMOV r0,aMOV a,Tmp_0DEC aMOV b,#4MUL abMOV r6,a

H_D_J10:MOV r1,#Num_LoMOV r5,#4

H_D_J3: MOV a,r6MOVC a,@a+dptrMOV @r1,aINC r1INC r6DJNZ r5,H_D_J3MOV Div_0,Hex_0MOV Div_1,Hex_1MOV Div_2,Hex_2MOV Div_3,Hex_3LCALLDiv_32MOV a,Div_0MOV b,aMOV r5,#4

H_D_J4: DEC r6DEC r6RL aDJNZ r5,H_D_J4MOV @r0,a

61

Page 62: Isi Laporan Mikro Kelompok

MOV Hex_0,Tmp_0MOV Hex_1,Tmp_1MOV Hex_2,Tmp_2MOV Hex_3,Tmp_3MOV r1,#Num_LoMOV r5,#4

H_D_J6: MOV a,r6MOVC a,@a+dptrMOV @r1,aINC r1INC r6DJNZ r5,H_D_J6MOV Div_0,Hex_0MOV Div_1,Hex_1MOV Div_2,Hex_2MOV Div_3,Hex_3LCALLDiv_32MOV b,Div_0MOV a,@r0ORL a,bMOV @r0,aMOV Hex_0,Tmp_0MOV Hex_1,Tmp_1MOV Hex_2,Tmp_2MOV Hex_3,Tmp_3DEC r0MOV r5,#8

H_D_J11:DEC r6DJNZ r5,H_D_J11DJNZ r7,H_D_J9RET

H_D_J9: LJMP H_D_J10;;----------------------------------------; Div_16 : Routine untuk pembagian ; 32 bit : 16 bit -> 32 bit ; MSB LSB ; Pembagi -> Num_Hi Num_Lo ; Bilangan -> Div_3 Div_2 Div_1 Div_0 ; Hasil -> Div_3 Div_2 Div_1 Div_0 ;----------------------------------------Div_16: MOV R7,#0 MOV R6,#0 ;zero out partial remainder MOV Tmp_0,#0 MOV Tmp_1,#0 MOV Tmp_2,#0 MOV Tmp_3,#0

62

Page 63: Isi Laporan Mikro Kelompok

MOV R1,Num_Hi ;load divisor MOV R0,Num_Lo MOV R5,#32 ;loop count

;This begins the loopDiv_loop: ACALL Shift_D ;shift the dividend and return MSB in C MOV A,R6 ;shift carry into LSB of partial remainder RLC A MOV R6,A MOV A,R7 RLC A MOV R7,A JC can_sub ; Revisi tgl 20 okt 1998

;---------------- now test to see if R7:R6 >= R1:R0 CLR C MOV A,R7 ;subtract R1 from R7 to see if R1 < R7 SUBB A,R1 ; A = R7 - R1, carry set if R7 < R1 JC Cant_sub

;--------------- at this point R7>R1 or R7=R1 JNZ Can_sub ;jump if R7>R1

;--------------- if R7 = R1, test for R6>=R0 CLR C MOV A,R6 SUBB A,R0 ; A = R6 - R0, carry set if R6 < R0 JC Cant_subCan_sub:;--------------- subtract the divisor from the partial remainder CLR C MOV A,R6 SUBB A,R0 ; A = R6 - R0 MOV R6,A MOV A,R7 SUBB A,R1 ; A = R7 - R1 - Borrow MOV R7,A SETB C ; shift a 1 into the quotient AJMP QuotCant_sub:;--------------- shift a 0 into the quotient CLR CQuot:;--------------- shift the carry bit into the quotient ACALL Shift_Q

;--------------- Test for competion DJNZ R5,Div_loop

63

Page 64: Isi Laporan Mikro Kelompok

;-- Now we are all done, move the TMP values back into OP MOV Div_0,Tmp_0 MOV Div_1,Tmp_1 MOV Div_2,Tmp_2 MOV Div_3,Tmp_3 RETShift_D:;-- shift the dividend one bit to the left and return the MSB in C CLR C MOV A,Div_0 RLC A MOV Div_0,A MOV A,Div_1 RLC A MOV Div_1,A MOV A,Div_2 RLC A MOV Div_2,A MOV A,Div_3 RLC A MOV Div_3,A RETShift_Q:;-- shift the quotent one bit to the left and shift the C into LSB MOV A,Tmp_0 RLC A MOV Tmp_0,A MOV A,Tmp_1 RLC A MOV Tmp_1,A MOV A,Tmp_2 RLC A MOV Tmp_2,A MOV A,Tmp_3 RLC A MOV Tmp_3,A RET;----------------------------------------; Mul_16 : Routine untuk perkalian ; 16 bit x 16 bit -> 32 bit ; MSB LSB ; Pengali -> Mul_Hi Mul_Lo ; Bilangan -> Num_Hi Num_Lo ; Hasil -> Mul_Hi Mul_Lo Num_Hi Num_lo ;----------------------------------------Mul_16:

MOV Tmp_3,#0MOV Tmp_2,#0MOV Tmp_1,#0MOV Tmp_0,#0

64

Page 65: Isi Laporan Mikro Kelompok

MOV a,Mul_LoMOV b,Num_LoMUL abMOV Tmp_0,aMOV Tmp_1,bMOV a,Mul_LoMOV b,Num_HiMUL abADD a,Tmp_1MOV Tmp_1,aJNC Mul_J1INC b

Mul_J1: MOV Tmp_2,bMOV a,Mul_HiMOV b,Num_LoMUL abADD a,Tmp_1MOV Tmp_1,aJNC Mul_J2INC b

Mul_J2: MOV a,bADD a,Tmp_2MOV Tmp_2,aJNC Mul_J3INC Tmp_3

Mul_J3: MOV a,Num_HiMOV b,Mul_HiMUL abADD a,Tmp_2MOV Tmp_2,aJNC Mul_J4INC Tmp_3

Mul_J4: MOV a,bADD a,Tmp_3MOV Tmp_3,aMOV Num_Lo,Tmp_0MOV Num_Hi,Tmp_1MOV Mul_Lo,Tmp_2MOV Mul_Hi,Tmp_3RET

;===================; ADC 0808/9 Routine;===================ADC0808: ;ADC channel 0 ABC = 000 / input 1

clr ADC_Aclr ADC_Bclr ADC_C

; kondisi awal clr ADC_OEclr ADC_START

65

Page 66: Isi Laporan Mikro Kelompok

next_sampling:setb ADC_START ; start of conversionnopclr ADC_START

not_EOC:jnb ADC_EOC,not_EOC

delaya: djnz R2,$djnz R3,delayasetb ADC_OE ; Baca Data melalui P3djnz R3,$mov A,P3clr ADC_OEmov ADC_data,Asetb ADC_OEret

;===================; Definition of DATA;===================Judul: DB ' ADC DATA = H '

DB 'V = VOLT ';Tabel:

DB 001h,000h,000h,000h ; 1DB 00Ah,000h,000h,000h ; 10DB 064h,000h,000h,000h ; 100DB 0E8h,003h,000h,000h ; 1kDB 010h,027h,000h,000h ; 10kDB 0A0h,086h,001h,000h ; 100kDB 040h,042h,00Fh,000h ; 1MDB 080h,096h,098h,000h ; 10MDB 000h,0E1h,0F5h,005h; 100MDB 000h,0CAh,09Ah,03Bh ; 1G

;End ; Akhir dari progam

TABEL HEXA dengan VOLTNo. DATA HEX VOLT No. DATA HEX VOLT1 FFH 0,187 129 7FH 0,5872 FEH 0,175 130 7EH 0,5753 FDH 0,162 131 7DH 0,5624 FCH 0,150 132 7CH 0,5505 FBH 0,137 133 7BH 0,5376 FAH 0,125 134 7AH 0,5257 F9H 0,112 135 79H 0,5128 F8H 0,100 136 78H 0,5009 F7H 0,087 137 77H 0,48710 F6H 0,075 138 76H 0,47511 F5H 0,062 139 75H 0,462

66

Page 67: Isi Laporan Mikro Kelompok

12 F4H 0,050 140 74H 0,45013 F3H 0,037 141 73H 0,43714 F2H 0,025 142 72H 0,42515 F1H 0,012 143 71H 0,41216 F0H 0,000 144 70H 0,40017 EFH 0,987 145 6FH 0,38718 EEH 0,975 146 6EH 0,37519 EDH 0,962 147 6DH 0,36220 ECH 0,950 148 6CH 0,35021 EBH 0,937 149 6BH 0,33722 EAH 0,925 150 6AH 0,32523 E9H 0,912 151 69H 0,31224 E8H 0,900 152 68H 0,30025 E7H 0,887 153 67H 0,28726 E6H 0,875 154 66H 0,27527 E5H 0,862 155 65H 0,26228 E4H 0,850 156 64H 0,25029 E3H 0,837 157 63H 0,23730 E2H 0,825 158 62H 0,22531 E1H 0,812 159 61H 0,21232 E0H 0,800 160 60H 0,20033 DFH 0,787 161 5FH 0,18734 DEH 0,775 162 5EH 0,17535 DDH 0,762 163 5DH 0,16236 DCH 0,750 164 5CH 0,15037 DBH 0,737 165 5BH 0,13738 DAH 0,725 166 5AH 0,12539 D9H 0,712 167 59H 0,11240 D8H 0,700 168 58H 0,10041 D7H 0,687 169 57H 0,08742 D6H 0,675 170 56H 0,07543 D5H 0,662 171 55H 0,06244 D4H 0,650 172 54H 0,05045 D3H 0,637 173 53H 0,03746 D2H 0,625 174 52H 0,02547 D1H 0,612 175 51H 0,01248 D0H 0,600 176 50H 0,00049 CFH 0,587 177 4FH 0,98750 CEH 0,575 178 4EH 0,97551 CDH 0,562 179 4DH 0,96252 CCH 0,550 180 4CH 0,95053 CBH 0,537 181 4BH 0,93754 CAH 0,525 182 4AH 0,92555 C9H 0,512 183 49H 0,91256 C8H 0,500 184 48H 0,90057 C7H 0,487 185 47H 0,88758 C6H 0,475 186 46H 0,875

67

Page 68: Isi Laporan Mikro Kelompok

59 C5H 0,462 187 45H 0,86260 C4H 0,450 188 44H 0,85061 C3H 0,437 189 43H 0,83762 C2H 0,425 190 42H 0,82563 C1H 0,412 191 41H 0,81264 C0H 0,400 192 40H 0,80065 BFH 0,387 193 3FH 0,78766 BEH 0,375 194 3EH 0,77567 BDH 0,362 195 3DH 0,76268 BCH 0,350 196 3CH 0,75069 BBH 0,337 197 3BH 0,73770 BAH 0,325 198 3AH 0,72571 B9H 0,312 199 39H 0,71272 B8H 0,300 200 38H 0,70073 B7H 0,287 201 37H 0,68774 B6H 0,275 202 36H 0,67575 B5H 0,262 203 35H 0,66276 B4H 0,250 204 34H 0,65077 B3H 0,237 205 33H 0,63778 B2H 0,225 206 32H 0,62579 B1H 0,212 207 31H 0,61280 B0H 0,200 208 30H 0,60081 AFH 0,187 209 2FH 0,58782 AEH 0,175 210 2EH 0,57583 ADH 0,162 211 2DH 0,56284 ACH 0,150 212 2CH 0,55085 ABH 0,137 213 2BH 0,53786 AAH 0,125 214 2AH 0,52587 A9H 0,112 215 29H 0,51288 A8H 0,100 216 28H 0,50089 A7H 0,087 217 27H 0,48790 A6H 0,075 218 26H 0,47591 A5H 0,062 219 25H 0,46292 A4H 0,050 220 24H 0,45093 A3H 0,037 221 23H 0,43794 A2H 0,025 222 22H 0,42595 A1H 0,012 223 21H 0,41296 A0H 0,000 224 20H 0,40097 9FH 0,987 225 1FH 0,38798 9EH 0,975 226 1EH 0,37599 9DH 0,962 227 1DH 0,362100 9CH 0,950 228 1CH 0,350101 9BH 0,937 229 1BH 0,337102 9AH 0,925 230 1AH 0,325103 99H 0,912 231 19H 0,312104 98H 0,900 232 18H 0,300105 97H 0,887 233 17H 0,287

68

Page 69: Isi Laporan Mikro Kelompok

106 96H 0,875 234 16H 0,275107 95H 0,862 235 15H 0,262108 94H 0,850 236 14H 0,250109 93H 0,837 237 13H 0,237110 92H 0,825 238 12H 0,225111 91H 0,812 239 11H 0,212112 90H 0,800 240 10H 0,200113 8FH 0,787 241 0FH 0,187114 8EH 0,775 242 0EH 0,175115 8DH 0,762 243 0DH 0,162116 8CH 0,750 244 0CH 0,150117 8BH 0,737 245 0BH 0,137118 8AH 0,725 246 0AH 0,125119 89H 0,712 247 09H 0,112120 88H 0,700 248 08H 0,100121 87H 0,687 249 07H 0,087122 86H 0,675 250 06H 0,075123 85H 0,662 251 05H 0,062124 84H 0,650 252 04H 0,050125 83H 0,637 253 03H 0,037126 82H 0,625 254 02H 0,025127 81H 0,612 255 01H 0,012128 80H 0,600 256 00H 0,000

69

Page 70: Isi Laporan Mikro Kelompok

TUGAS PENDAHULUHAN

PRAKTIKUM MIKROPROSESSOR

1. a. Jelaskan perbedaan Mikroprosessor dan Mikrokontroller ? b. Gambarkan serta jelaskan fungsi Pin pada mikroprosessor 8088 dan 8086 ?

2. Jelaskan perbedaan pengiriman data melalui port serial dan port parallel ?

3. Jelaskan perbedaan ADC dan DAC (serta aplikasinya) ?

4. a. Jelaskan yang dimaksud Motor Stepper ? b. Jelaskan yang dimaksud port ?

5. Jelaskan kode instruksi bahasa assembler dibawah ini :a. Mov A,#Datab. DJNZ A,Labelc. CJNE A,#Data Labeld. INC Ae. DEC Af. Callg. RL Ah. RR A

6. Ubah bilangan-bilangan dibawah ini menjadi desimal :a. 7AD5 Hexab. 625 Oktalc. 101110110110 Biner

Penyelesaian :1. a. Perbedaan mikrokontroller dengan mikroprocesor :

a. Mikrokontroller

Adalah sejenis mikroprocessor yang dikhususkan untuk

instrumentasi dan kendali, sebagai contoh aplikasi pada kendali motor,

berperan seperti PLC, pengaturan pengapian dan injeksi bahan bakar

kendaraan bermotor serta alat untuk mengukur suatu besaran, seperti suhu,

tekenan, kelembaban, dll.

Hanya terdiri dari 1 IC saja dan memory sudah ada dalam mikrokonkroler.

Beberapa keuntungan pemakaian mikrokontroler dibandingkan

mikroprosesor adalah mikrokrontroler sudah terdapat RAM dan peralatan

I/O pendukung sehingga tidak perlu menambahnya.

70

Page 71: Isi Laporan Mikro Kelompok

b. Mikroprocessor

Adalah rangkaian terpadu tunggal yang mengandung ribuan

gerbang digital yang dapat melakukan operasi aritmatika, logika dan

control dari computer general purpose. Merupakan komponen chip untuk

aritmatika dan logika (AW) yang memiliki kemampuan untuk melakukan

fungsi aritmatika dan logika biasa dengan operand 4 bit yang memiliki

kemampuan pemrosesan yang sama dengan minicomputer, tetapi ukuran

dan kecepatannya tidak sama.

b. Gambar dan jelaskan fungsi Pin pada 8088

71

Page 72: Isi Laporan Mikro Kelompok

2. Port Serial :Port serial pada AT 89C54/S2 bersifat duplex – penuh atau full duplex artinya port serial bisa menerima dan mengirim secara bersamaan.

Port ParallelPort paralel dipakai untuk menerima masukan sinyal digital dari luar mikrokontroler.

72

Page 73: Isi Laporan Mikro Kelompok

3. ADC (ANALOG TO DIGITAL CONVERTER)adalah suatu rangkaian pengubah informasi dari analog ke digital. Dalam pemrosesan sinyal-sinyal analog seringkali akan banyak keuntungan yang dapat dengan mengubah terlebih dahulu ke bentuk digital sehingga proses dapat dilakukan secara digital. Dengan menggunakan ADC, maka dapat mengamati sinyal-sinyal dari perubahan-perubahan sinyal analog seperti perubahan temperature, kepekatan asap, tekanan udara, kecepatan angina, berat benda, kadar asam (pH) dan lain-lain yang semuanya dapat diamati melalui sensornya masing-masing. Aplikasi ADC (Analog To Digital) Converter

PPI_PA equ 8000h

PPI_PB equ 8001h

PPI_PC equ 8002h

PPI_INI equ 8003h

PPI_CW equ 8Ah ; P_C Upper, P_B : Input

; P_C Lower, P_A : Output

Org 8h

tPA DS 1

tPB DS 1

tPC DS 1

Org 0

Call PPI_Init

Mov Dptr,#PPI_PC

Mov A,#00001111B

Movx @Dptr,A

L1 :

;-----start ADC

Mov Dptr,#PPI_PC

Mov A,#00001010B

Movx @Dptr,A

Mov A,#00001110B

Movx @Dptr,A

L2 :

;-----Tunggu INTR

Movx @Dptr,A

Jb Acc.4,L2

;-----Baca ADC

73

Page 74: Isi Laporan Mikro Kelompok

Mov Dptr,#PPI_PC

Mov A,#00001100B

Movx @Dptr,A

Mov A,#00001110B

Movx @Dptr,A

Mov Dptr,#PPI_PC

Movx A,@Dptr

;-----Tulis Ke Port A

Mov Dptr,#PPI_PA

Movx @Dptr,A

PPI_Init

Mov A,#PPI_CW

Mov Dptr,#PPI_INI

Movx @Dptr,A

Ret

DAC (DIGITAL TO ANALOG CONVERTER)adalah suatu rangkaian pengubah informasi dari Digital ke Analog. Rangkaian ini diperlukan pada saat suatu rangkaian digital digunakan sebagai alat Kontrol pada suatu system rangkaian yang mengoperasikan parameter tegangan/arusnya dalam analog. Misalnya peralatan pemanas (heater), pengantar putaran DC motor, system rekaman digital dan lain-lain.Aplikasi DAC (Digital To Analog) Converter

PPI_PA equ 8000h

PPI_PB equ 8001h

PPI_PC equ 8002h

PPI_INI equ 8003h

PPI_CW equ 8Ah ; P_C Upper, P_B : Input

; P_C Lower, P_A : Output

Org 8h

tPA DS 1

tPB DS 1

tPC DS 1

Org 0

Call PPI_Init

74

Page 75: Isi Laporan Mikro Kelompok

Mov Dptr,#PPI_PC

Mov A,#00001111B

Movx @Dptr,A

L1 :

;-----start ADC

Mov Dptr,#PPI_PC

Mov A,#00001010B

Movx @Dptr,A

Mov A,#00001110B

Movx @Dptr,A

L2 :

;-----Tunggu INTR

Movx @Dptr,A

Jb Acc.4,L2

;-----Baca ADC

Mov Dptr,#PPI_PC

Mov A,#00001100B

Movx @Dptr,A

Mov A,#00001110B

Movx @Dptr,A

Mov Dptr,#PPI_PB

Movx A,@Dptr

4. a. Motor Stepper

Adalah salah satu type motor yang sangat popular digunakan sebagai

penggerak atau pemutar dalam system kontrol misalnya instrumentasi,

computer (diskdrive dan hard disk), printer, kontrol posisi pada

mesin/robot dan lain-lain untuk kebutuhan daya yang relative rendah.

jenis motor yang mempunyai putaran berstep sesuai dengan namanya

stepper, motor ini mempunyai kutub magnet yang saling tarik antar rotor

dan statornya.

Motor stepper ini mempunyai sudut putar yang berbeda – beda, semakin

pendek jarak sudut putarnya maka motor stepper ini semakin presisi

75

Page 76: Isi Laporan Mikro Kelompok

b. Port

Port adalah suatu lubang kecil/penghubung antara computer dengan alat

dalam mengirim atau menerima data yang mempunyai dua jenis yaitu

serial dan parallel.

Terminal masukkan atau terminal keluaran pada sebuah perangkat keras,

dimana port ini berfungsi untuk komunikasi dengan perangkat yang lain.

Pada komputer terdapat port serial dan port parallel.

5. a. Mov A, #Data yaitu masukan data ke awal akumulator

b. DJNZ A, Label yaitu kurangi A dengan 1, bila hasil belum sama

dengan 0 maka lompat ke label.

c. CJNE A,#Data Label yaitu untuk membandingkan nilai data label dengan

akumulator jika nilainya tidak sama maka lompat.

d. INC A yaitu tambah isi akumulator (A)

e. DEC A yaitu kurangi isi akumulator (A)

f. Call yaitu panggil subrutine dan kembali ke alamat distack

g. RL A yaitu putar isi akumulator ke kiri 1 bit di dalam suatu register

h. RR A yaitu putar isi akumulator ke kanan 1 bit di dalam suatu register

6. a. 7AD5 Hexa = 31445

b. 625 Oktal = 405

c. 101110110110 Biner = 2998

76

Page 77: Isi Laporan Mikro Kelompok

PENUTUP

1. Kesimpulan

1.1. Percobaan/modul 1 membahas percobaan serta penerapan microprocessor

pada parallel port 1 byte. Pada percobaan ini pengaturan delay akan

mempengaruhi tampilan led. Penggunaan perintah Djnz dan Cjnz sangat

dominan dinama kedua perintah ini mempunyai sendiri–sendiri, Djnz

berfungsi untuk mengulangi perintah sesuai jika data/nilai yang dibaca

tidak sama dengan 0; serta perintah pembanding.

1.2. Percobaan modul 2 membahas penerapan microprocessor pada tampilan

7-segment, dimana pada percobaan ini penggunaan penggunaan konversi

hexa pada biner sangat diperlukan untuk merancang program tampilan

sebelum program dirancang. Serta penggunaan DB sebagai perintah

untuk memindahkan data 8 bit.

1.3. Percobaan modul 3 membahas tampilan LCD, penggunaan perintah-

perintahnya lebih komplek disbanding program untuk tampilan 7-

segment. Penggunaan DPTR sangat dominan sebagai data pointer

pengidentifikasian untuk memanggil label pada program berinisial DB.

1.4. Percobaan modul 4 membahas penggunaan mikroproscessor untuk

memproses penggunaan motor stepper, dimana pada percobaan ini

penggunaan RR dan RL sangat kelihatan sekali dimana kedua perintah ini

untuk memproses putaran motor CW dan CCW.

1.5. Percobaan modul 5 membahas aplikasi mikroprocessor sebagai media

untuk mengkonversi atau menjalankan konversi analog to digital dan

digital to analog dimana hasilnya ditampilkan pada LCD serta

penggunaan led sebagi pengganti outputan.

2. Kritik dan Saran

2.1 Untuk jadwal praktikum yang akan datang mohon disesuaikan dengan

kartu heregistrasi agar pelaksanaan tidak menumpuk dibelakang.

2.2 Mohon untuk activity plan praktikum dilaksanakan dengan jadwal dan

jika ada perubahan mendadak supaya dilakukan konfirmasi lebih dahulu,

minimal 1 hari sebelum pelaksanaan.

77

Page 78: Isi Laporan Mikro Kelompok

2.3 Mohon pada waktu mengikuti praktikum instruktur agar mendampingi

praktikan jadi bila ada yang kurang jelas dapat segera selesaikan.

78

Page 79: Isi Laporan Mikro Kelompok

DAFTAR PUSTAKA

Panduan praktikum mikroprocessor, Universitas Muhammadiyah Sidoarjo, 2004.

Agfianto Eko Putra, Belajar Mikrokontroller, Teori dan Aplikasi, Gava Media,

Yogyakarta, 2003.

Belajar sendiri pemograman dengan bahasa Assembly ( PDF ).

79