14014-6-297365036624

21
Modul 6. Urutan Eksekusi Program MK : Mikroprosesor Urutan Eksekusi Program Prosesor 8051 dilengkapi dengan I/O internal yang terdiri dari Sarana akses data Paralel, Sarana Komunikasi Serial, Sarana untuk Timer/Counter dan Sarana untuk Interupsi. Sarana Timer/Counter berupa 2 buah Timer/Counter yang dapat digunakan dengan 4 macam cara atau mode. Ada 6 Register yang terkait dengan penggunaan Timer/Counter, semuanya terletak pada SFR, Register tsb adalah TMOD, TCON, TH1, TL1, TH0 dan TL0. Sebelum digunakan, Timer/Counter tsb harus di-setting melalui pengisian TMOD dengan angka biner tertentu. Setting timer melalui Register TMOD telah dijelaskan pada modul sebelum ini. Register TCON berisi bit-bit kendali untuk mengatur kerja Timer/Counter, sedangkan pasangan register THx dan TLx adalah container pulsa atau jam pasir untuk menampung pulsa, bukan pasir. Berikut ini salah gambar register TCON. TCON: TIMER/COUNTER CONTROL REGISTER. BIT ADDRESSABLE. TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 Gambar 6.1. bit-bit kendali pada Register TCON Bit TFx atau Timer Flag overflow adalah bit indikator terjadinya overflow atau meluap pada Timer/Counter x, jika terjadi overflow bit ini menjadi HIGH. Bit ini dikembalikan ke kondisi LOW dengan 2 cara, yaitu software atau hardware. Secara software bit ini dapat dikembalikan ke LOW dengan instruksi CLR TFx, sedangkan secara hardware, bit ini akan dikembalikan ke LOW setelah pengambilan alamat interupsi dari interrupt vector, tentu saja cara hardware ini harus melibatkan operasi interupsi. Mikroprosesor Ir. Eko Ihsanto, M.Eng Pusat Pengembangan Bahan Ajar Universitas Mercu Buana ‘11 1

Upload: fathi-arsalan

Post on 12-Dec-2015

219 views

Category:

Documents


4 download

DESCRIPTION

fileku

TRANSCRIPT

Page 1: 14014-6-297365036624

Modul 6. Urutan Eksekusi Program MK : Mikroprosesor

Urutan Eksekusi Program

Prosesor 8051 dilengkapi dengan I/O internal yang terdiri dari Sarana akses data Paralel,

Sarana Komunikasi Serial, Sarana untuk Timer/Counter dan Sarana untuk Interupsi. Sarana

Timer/Counter berupa 2 buah Timer/Counter yang dapat digunakan dengan 4 macam cara atau mode.

Ada 6 Register yang terkait dengan penggunaan Timer/Counter, semuanya terletak pada SFR,

Register tsb adalah TMOD, TCON, TH1, TL1, TH0 dan TL0. Sebelum digunakan, Timer/Counter tsb

harus di-setting melalui pengisian TMOD dengan angka biner tertentu. Setting timer melalui Register

TMOD telah dijelaskan pada modul sebelum ini.

Register TCON berisi bit-bit kendali untuk mengatur kerja Timer/Counter, sedangkan

pasangan register THx dan TLx adalah container pulsa atau jam pasir untuk menampung pulsa, bukan

pasir. Berikut ini salah gambar register TCON.

TCON: TIMER/COUNTER CONTROL REGISTER. BIT ADDRESSABLE.TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

Gambar 6.1. bit-bit kendali pada Register TCON

Bit TFx atau Timer Flag overflow adalah bit indikator terjadinya overflow atau meluap pada

Timer/Counter x, jika terjadi overflow bit ini menjadi HIGH. Bit ini dikembalikan ke kondisi LOW

dengan 2 cara, yaitu software atau hardware. Secara software bit ini dapat dikembalikan ke LOW

dengan instruksi CLR TFx, sedangkan secara hardware, bit ini akan dikembalikan ke LOW setelah

pengambilan alamat interupsi dari interrupt vector, tentu saja cara hardware ini harus melibatkan

operasi interupsi.

Bit TRx adalah pengendali gerbang masuk pulsa, jika TRx HIGH maka pulsa diizinkan

masuk container. Bit IEx adalah indikator terjadinya tepi interupsi (interrupt edge) pada pin INTx,

HIGH ketika terjadi picuan interupsi dan LOW setelah interupsi mulai diproses. Sedangkan Bit ITx

adalah bit kendali yang terkait dengan pilihan deteksi interupsi. Jika di-set HIGH secara software

dengan instruksi SETB ITx, maka interupsi dideteksi pada saat falling edge atau peralihan antara

HIGH ke LOW. Tetapi jika dibuat LOW, maka interupsi dideteksi sepanjang kondisi LOW LEVEL-

nya.

Karena register TCON merupakan register bit addressable, biasanya pemrogram hanya

mengunakan instruksi bit untuk mengaksesnya, agar bit-bit lainnya tidak terganggu.

MikroprosesorIr. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan AjarUniversitas Mercu Buana

‘11 1

Page 2: 14014-6-297365036624

Modul 6. Urutan Eksekusi Program MK : Mikroprosesor

Contoh 6.1. Pengendali Motor Stepper Jarak Jauh via saluran telepon.

Berikut ini adalah contoh lain penggunaan Timer dalam program penggerak motor stepper.

Misalnya kita menggunakan prosesor 8051 untuk menggerakkan motor stepper 4-bit berdasarkan nada

yang diterima dari saluran telepon oleh DTMF. Jika angka yang ditekan adalah angka ‘1’, maka

DTMF akan menerima nada tertentu kemudian menghasilkan output biner 4-bit 0001. Setelah

prosesor mengambil data 0001 dari DTMF, motor stepper akan digerakkan ke kiri sampai tombol

angka ‘1’ dilepas. Cara seperti ini dapat digunakan untuk menggerakkan motor stepper dari jarak jauh

melalui saluran telepon.

Secara garis besar, kerja alat yang kita inginkan adalah sebagai berikut. Motor stepper

dikendalikan oleh prosesor yang terhubung dengan saluran telepon melalui DTMF decoder. Prosesor

juga dilengkapi dengan ring detektor, yaitu alat pendeteksi keberadaan sinyal dering. Jika nomor

telepon tempat prosesor diletakkan dihubungi oleh nomor telepon lain, maka prosesor harus dapat

membedakan kondisi sinyal pada saluran telepon antara ada dengan tidak ada sinyal dering, yaitu

dengan bantuan ring detektor. Jika ada sinyal dering, maka ring detektor akan memberi informasi

HIGH ke prosesor, dan sebaliknya.

Setelah prosesor mendeteksi adanya sinyal dering, maka prosesor menghubungkan DTMF

dengan saluran telepon melalui sebuah saklar elektro mekanik. Setelah itu prosesor mendengarkan

nada yang masuk dengan bantuan DTMF decoder. Jika kemudian penelepon memutuskan saluran

telepon dengan meletakkan gagang telepon, maka akan muncul nada putus-putus pada saluran

telepon. Dalam PBX, jika sentral PBX mendeteksi pemutusan pembicaraan atau komunikasi dari sisi

penelepon, maka ia akan mengirimkan nada tertentu ke sisi penerima telepon, nada ini adalah nada

‘D’. Seperti tampak pada tabel 6.1, nada ini akan menyebabkan decoder DTMF mengeluarkan kode

biner tertentu, yaitu 4-bit biner 0000. Jika prosesor menerima kode biner ini, maka saluran telepon

akan diputuskan dari DTMF decoder, kemudian prosesor kembali ke posisi menunggu sinyal dering.

Setelah saluran telepon terhubung dengan DTMF decoder, sebelum prosesor menggerakkan

motor stepper, prosesor mengambil 3 digit angka yang datang berurutan yang diterimanya dari

DTMF. Tiga digit angka ini akan dibandingkan dengan password, jika berbeda, maka saluran telepon

akan diputus dan prosesor kembali ke posisi menunggu sinyal dering. Tetapi jika 3-digit tersebut

sama dengan password, maka prosesor akan menunggu angka berikutnya untuk menentukan gerakan

motor stepper. Jika yang diterima prosesor adalah nada ‘4’, maka motor stepper akan digerakkan ke

kiri terus-menerus dengan kecepatan 20 step per detik, setara dengan 36 per detik. Motor berhenti

bergerak setelah penelepon melepaskan tombol ‘4’ tersebut. Nada ‘6’ menyebabkan gerakan serupa

tetapi dengan arah berlawanan, yaitu ke arah kanan terus-menerus. Nada ‘1’ untuk menggerakkan

motor 1-step ke kiri berapa pun lamanya tombol ini ditekan, jika penelepon menginginkan gerakan 2-

MikroprosesorIr. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan AjarUniversitas Mercu Buana

‘11 2

Page 3: 14014-6-297365036624

Modul 6. Urutan Eksekusi Program MK : Mikroprosesor

step, maka ia harus menekan angka ‘1’ dua kali. Sedangkan Nada ‘3’ menyebabkan gerakan motor 1-

step ke kanan.

Penekanan tombol ‘7’ menyebabkan motor stepper bergerak ke kiri tanpa henti, sampai

terjadi penekanan tombol berikutnya. Tombol ‘9’ menyebabkan gerakan yang mirip dengan tombol

‘7’ tetapi dengan arah berlawanan, yaitu ke kanan. Gambar 6.1. memperlihatkan letak angka pada

keypad pesawat telepon untuk memudahkan mengingat akibatnya terhadap gerakan motor stepper.

Gambar 6.1. Kaitan antara tombol angka dengan nada yang dihasilkan.

Gambar 6.2. Diagram blok penggerak motor stepper jarak jauh.

Pada gambar 6.2. terlihat diagram blok penggerak motor stepper jarak jauh, yaitu melalui

saluran telepon. Secara garis besar, alat tersebut terdiri dari :

a. Ring detector

b. DTMF encoder

c. Relay driver

d. 8051 processor

e. Motor driver

f. Motor stepper.

MikroprosesorIr. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan AjarUniversitas Mercu Buana

‘11 3

saluran telepon

ring detektor Prosesor 8051

DTMF decoder

motor driver

motor stepper

Page 4: 14014-6-297365036624

Modul 6. Urutan Eksekusi Program MK : Mikroprosesor

Rangkaian ring detector atau detektor sinyal dering.

Rangkaian ring detektor atau detektor dering berfungsi untuk mengubah sinyal dering dari

saluran telepon menjadi 1-bit kode biner yang dapat dibaca prosesor. Skema rangkaian ring detector

dapat dilihat pada gambar 6.3. di bawah ini.

Gambar 6.3. Rangkaian Ring Detector

Pasangan kabel dari saluran telepon dihubungkan dengan terminal input Ring (-) dan Tlp (+).

Sinyal dering pada saluran telepon tsb berupa sinyal sinus 20 Hz dengan amplitudo 90 volt dan

tegangan DC 50 volt. Resistor 100k dipasang pada terminal input untuk membatasi arus yang akan

diumpan ke optocoupler 6N139. Kapasitor 0.02 F merupakan kapasitor coupling AC sekaligus

blocking sinyal DC 50V. Sedangkan pasangan dioda 1N914 dengan LED infra merah dalam

optocoupler berfungsi untuk menyalakan LED dengan sisi positif sinyal AC 90V tadi. Tanpa dioda

IN914, LED dapat rusak oleh tegangan balik (reverse voltage) yang terlalu besar.

Sinar dari LED infra merah akan menyebabkan photodioda dalam konduksi, mengalirkan arus

dalam orde 10 A. Arus kecil ini diperkuat oleh pasangan transistor darlington dalam 6N139. Arus

yang diperkuat oleh pasangan darlington tsb akan menyebabkan transistor 2N3906 saturasi sehingga

pin ring detect menjadi HIGH. Kapasitor 0.1 F berfungsi untuk menahan pulsa HIGH tsb, sehingga

output akan tetap HIGH paling tidak selama setengah periode sinyal dering, yaitu 25 ms. Pin ring

detect ini dihubungkan dengan pin P1.6 pada prosesor 8051.

Rangkaian relay driver atau penggerak saklar.

Rangkaian ini memiliki komponen utama berupa transistor Q1 yang berfungsi sebagai saklar.

Jika basis mendapat tegangan 5 volt dari prosesor, maka transistor ini akan mengalami saturasi,

sehingga coil teraliri arus yang cukup besar dan menjadi magnet yang menarik saklar mekanik di

sebelahnya ke posisi sambung atau kontak. Dioda D2 berfungsi untuk melindungi transistor Q1 dari

tegangan balik yang terlalu besar akibat perubahan arus pada coil.

Sebaliknya, jika basis transistor Q1 mendapat tegangan 0 volt dari prosesor, maka transistor

dalam kondisi cut-off, sehingga coil hampir tidak dialiri arus dan saklar mekanik di sebelahnya

MikroprosesorIr. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan AjarUniversitas Mercu Buana

‘11 4

Page 5: 14014-6-297365036624

Modul 6. Urutan Eksekusi Program MK : Mikroprosesor

beralih ke posisi putus. Sambung dan putusnya saklar mekanik ini menentukan sambung dan putusnya

saluran telepon dengan DTMF decoder. Input Relay Driver ini dihubungkan dengan P2.7 pada

prosesor 8051.

Gambar 6.4. Rangkaian Relay Driver

Dekoder DTMF (Dual Tone Multiple Frequency)

Setelah saluran telepon berada dalam keadaan off-hook, gagang diangkat, atau terhubung

dengan DTMF, maka penelepon dapat memasukkan kode password yang dikehendaki. Kode

password yang dimasukkan harus berasal dari pesawat telepon jenis nada, karena pesawat telepon

jenis inilah yang dapat menghasilkan sinyal-sinyal DTMF.

Tiap tombol yang ada pada pesawat telepon, bila ditekan akan menghasilkan sebuah nada

yang memiliki frekuensi hasil superposisi dari dua buah frekuensi yang berlainan seperti tampak pada

gambar 6.1. Sinyal nada dengan frekuensi hasil superposisi inilah yang kemudian dikirimkan melalui

saluran telepon. Sinyal ini kemudian diterima dan dikodekan oleh dekoder DTMF MT8870.

Rangkaian dekoder DTMF diperlihatkan pada gambar 6.5. di bawah ini.

MikroprosesorIr. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan AjarUniversitas Mercu Buana

‘11 5

Page 6: 14014-6-297365036624

Modul 6. Urutan Eksekusi Program MK : Mikroprosesor

Gambar 6.5. Rangkaian Dekoder DTMF.

Kita harus menghubungkan pin input prosesor dengan 6 pin output DTMF, yaitu 4-bit hasil

konversi nada, bit StD dan bit ESt. Empat-bit data hasil konversi nada, yaitu Q4, Q3, A2 dan Q1

masing-masing dihubungkan dengan P1.3, P1.2, P1.1 dan P1.0. Bit StD dihubungkan dengan P1.4,

sedangkan bit ESt dihubungkan dengan P1.5.

Bit StD (steering delay) digunakan untuk mengetahui validitas data yang keluar dari Q4 – Q1,

selama StD HIGH berarti data yang keluar valid. Bit ESt (early steering) digunakan untuk mendeteksi

validitas nada, jika sinyal nada yang diterima DTMF termasuk dalam katagori sinyal DTMF yang

keluar dari pesawat telepon standard, maka ESt bernilai HIGH, tetapi jika nada tidak valid, termasuk

keadaan tanpa nada, maka ESt akan kembali LOW.

Sebelum memasuki dekoder DTMF, komponen DC dari sinyal input ditahan oleh kapasitor

C1. Kemudian sinyal tersebut dilewatkan melalui tahanan R1 yang berfungsi untuk membatasi besar

arus yang msuk ke dekoder DTMF. Selanjutnya sinyal ini diterima oleh DTMF dekoder untuk

didekodekan menjadi 4-bit output seperti yang terlihat pada tabel 6.1. berikut ini. Output DTMF

MT8870 ini akan diumpan ke prosesor untuk kemudian dibandingkan dengan password yang telah

diatur sebelumnya dan untuk kode kendali gerak arah motor stepper yang diinginkan.

MikroprosesorIr. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan AjarUniversitas Mercu Buana

‘11 6

Page 7: 14014-6-297365036624

Modul 6. Urutan Eksekusi Program MK : Mikroprosesor

Tabel 6.1. Tabel Kebenaran DTMF Dekoder

fLOW fHIGH KEY TOE Q4 Q3 Q2 Q1

697 1209 1 1 0 0 0 1

697 1336 2 1 0 0 1 0

697 1477 3 1 0 0 1 1

770 1209 4 1 0 1 0 0

770 1336 5 1 0 1 0 1

770 1477 6 1 0 1 1 0

852 1209 7 1 0 1 1 1

852 1336 8 1 1 0 0 0

852 1477 9 1 1 0 0 1

941 1209 0 1 1 0 1 0

941 1336 * 1 1 0 1 1

941 1477 # 1 1 1 0 0

697 1633 A 1 1 1 0 1

770 1633 B 1 1 1 1 0

852 1633 C 1 1 1 1 1

941 1633 D 1 0 0 0 0

- - ANY 0 Z Z Z Z

Rangkaian stepper motor driver atau penggerak motor langkah.

Rangkaian motor driver digunakan merupakan rangkaian perantara yang menghubungkan 4-

pin output prosesor dengan 4-kabel kendali motor stepper. Rangkaian ini akan memperkuat sinyal

kendali dari prosesor agar cukup untuk menggerakkan stepper motor sekaligus melindungi prosesor

dari kerusakan akibat arus atau tegangan lebih dari stepper motor. Rangkaian pengganti stepper motor

dapat dilihat pada gambar 6.6. di bawah ini.

Gambar 6.6. Skema rangkaian pengganti untuk sebuah stepper motor 4-bit.

MikroprosesorIr. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan AjarUniversitas Mercu Buana

‘11 7

Page 8: 14014-6-297365036624

Modul 6. Urutan Eksekusi Program MK : Mikroprosesor

Empat saklar S1, S2, S3 dan S4 pada gambar 6.6. dapat diwakili dengan saklar elektrik yang

berupa transistor Q1, Q2, Q3 dan Q4 seperti tampak pada gambar 6.7. di bawah ini. Input rangkaian

yang diberi notasi 1a, 1b, 2a dan 2b masing-masing dihubungkan dengan pin P0.0, P0.1, P0.2 dan

P0.3 pada prosesor 8051. Resistor pada rangkaian ini digunakan sebagai pembatas arus, sedangkan

dioda D1, D2, D3 dan D4 berfungsi untuk melindungi transistor dari tegangan lebih yang berasal dari

perubahan arus pada gulungan motor.

Gambar 6.7. Rangkaian Saklar Transistor untuk menggerakkan stepper motor.

MikroprosesorIr. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan AjarUniversitas Mercu Buana

‘11 8

Page 9: 14014-6-297365036624

Modul 6. Urutan Eksekusi Program MK : Mikroprosesor

Program untuk prosesor AT89C51.

Prosesor pengendali alat ini adalah AT89C51 yang merupakan replika dari prosesor Intel

8051. Seperti tampak pada gambar 6.2, input prosesor ini berasal dari DTMF dan ring detector,

sedangkan outputnya diberikan ke stepper motor driver dan relay driver. Dari dekoder DTMF

prosesor menerima 6-bit input, sedangkan dari ring detector 1-bit input. Untuk motor driver, prosesor

memberikan 4-bit output, sedangkan untuk relay driver prosesor memberikan 1-bit output.

Gambar 6.8 memperlihatkan sambungan antara prosesor dengan alat yang dikendalikannya.

Pada sisi input prosesor, pin Q4, Q3, Q2 dan Q1 pada DTMF masing-masing dihubungkan dengan pin

P1.3, P1.2, P1.1 dan P1.0. Pin StD dan pin ESt pada DTMF masing-masing dihubungkan dengan pin

P1.4 dan P1.5. Pin output rangkaian ring detector dihubungkan dengan P1.6. Sedangkan pada sisi

output prosesor, pin input rangkaian motor driver dihubungkan dengan 4-pin LSB Port 0, dan pin

input relay driver dihubungkan dengan P2.7.

Gambar 6.8. Konfigurasi AT89C51

MikroprosesorIr. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan AjarUniversitas Mercu Buana

‘11 9

Page 10: 14014-6-297365036624

Modul 6. Urutan Eksekusi Program MK : Mikroprosesor

Secara garis besar, program pengendali kerja prosesor harus mampu melakukan hal-hal berikut,

yaitu :

a. Memantau keberadaan sinyal dering

b. Membaca dan menguji password.

c. Memantau nada penggerak motor.

d. Menggerakkan stepper motor.

e. Memutus atau menyambung saluran telepon dengan DTMF

Berkaitan dengan tekanan tombol pada telepon di seberang prosesor, respon yang kita inginkan adalah

sebagai berikut :

1. Jika angka ‘1’ ditekan, maka prosesor akan menggerakkan motor stepper ke kiri terus menerus

dengan kecepatan 20 step/detik, sampai tombol dilepas. Dalam listing program, proses ini diberi

label seretkiri.

2. Jika angka ‘4’ ditekan, maka prosesor akan menggerakkan motor 1 step atau 1,8° ke kiri. Sama

saja menekan sebentar atau menekan lama, yang jelas 1 kali tekan satu step. Dalam listing

program, proses ini diberi label stepkiri.

3. Jika angka ‘7’ ditekan, maka prosesor akan menggerakkan motor stepper ke kiri terus menerus

dengan kecepatan 20 step/detik, sampai ada tombol lain ditekan. Dalam listing program, proses

ini diberi label kiriterus.

4. Tombol 3, 6 dan 9 bekerja berlawanan arah dengan tombol 1, 4 dan 7, tetapi dengan cara bergerak

yang sama, yaitu seret, step dan terus-menerus.

MikroprosesorIr. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan AjarUniversitas Mercu Buana

‘11 10

Page 11: 14014-6-297365036624

Modul 6. Urutan Eksekusi Program MK : Mikroprosesor

Gambar 6.9a. Diagram Alir Program pengendali prosesor

MikroprosesorIr. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan AjarUniversitas Mercu Buana

‘11 11

Page 12: 14014-6-297365036624

Modul 6. Urutan Eksekusi Program MK : Mikroprosesor

Gambar 6.9b. Diagram Alir Program pengendali prosesor (lanjutan).

1 $MOD512

0090 3 DTMF EQU P10094 4 StD EQU P1.40095 5 ESt EQU P1.50096 6 Ring EQU P1.600A7 7 Line EQU P2.70080 8 Motor EQU P00003 9 Pass1 EQU 30002 10 Pass2 EQU 20008 11 Pass3 EQU 8

12---- 13 DSEG0030 14 ORG 30H0030 15 buffer: DS 1

16---- 17 CSEG0000 18 ORG 00000 020030 19 LJMP START

20

MikroprosesorIr. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan AjarUniversitas Mercu Buana

‘11 12

Page 13: 14014-6-297365036624

Modul 6. Urutan Eksekusi Program MK : Mikroprosesor

0030 21 ORG 30H0030 758911 22 START: MOV TMOD,#00010001B0033 7530CC 23 MOV buffer,#11001100B ;data stepper pertama0036 853080 24 MOV Motor,buffer0039 C2A7 25 PUTUS: CLR Line ;DTMF putus dari line telp003B 3096FD 26 JNB Ring,$ ;tunggu dering003E D2A7 27 SETB Line ;DTMF connect dgn line

280040 3094FD 29 JNB StD,$ ;tunggu output DTMF valid0043 E590 30 MOV A,DTMF0045 540F 31 ANL A,#0FH ;ambil 4-bit LSB saja0047 B40003 32 CJNE A,#0,DIGIT1 ;jika bukan nada 'D'004A 020039 33 LJMP PUTUS ;jika nada 'D' atau nada putus

34004D B403E9 35 DIGIT1: CJNE A,#Pass1,PUTUS0050 2094FD 36 JB StD,$ ;tunggu nada berikutnya0053 3094FD 37 JNB StD,$ ;tunggu output DTMF valid0056 E590 38 MOV A,DTMF0058 540F 39 ANL A,#0FH ;ambil 4-bit LSB saja005A B40003 40 CJNE A,#0,DIGIT2 ;jika bukan nada 'D'005D 020039 41 LJMP PUTUS ;jika nada 'D' atau nada

putus42

0060 B402D6 43 DIGIT2: CJNE A,#Pass2,PUTUS0063 2094FD 44 JB StD,$ ;tunggu nada berikutnya0066 3094FD 45 JNB StD,$ ;tunggu output DTMF valid0069 E590 46 MOV A,DTMF006B 540F 47 ANL A,#0FH ;ambil 4-bit LSB saja006D B40003 48 CJNE A,#0,DIGIT3 ;jika bukan nada 'D'0070 020039 49 LJMP PUTUS ;jika nada 'D' atau nada

putus50

0073 B408C3 51 DIGIT3: CJNE A,#Pass3,PUTUS0076 2094FD 52 TungguStD: JB StD,$ ;tunggu nada berikutnya0079 3094FD 53 AmbilNada: JNB StD,$ ;tunggu output DTMF valid007C E590 54 MOV A,DTMF007E 540F 55 ANL A,#0FH ;ambil 4-bit LSBsaja0080 B40003 56 CJNE A,#0,CEK1 ;jika bukan nada 'D'0083 020039 57 LJMP PUTUS ;jika nada 'D' atau nada putus

580086 B40103 59 CEK1: CJNE A,#1,CEK30089 0200AA 60 LJMP seretkiri008C B40303 61 CEK3: CJNE A,#3,CEK4008F 0200BB 62 LJMP seretkanan0092 B40403 63 CEK4: CJNE A,#4,CEK60095 0200EE 64 LJMP stepkiri0098 B40603 65 CEK6: CJNE A,#6,CEK7009B 0200F9 66 LJMP stepkanan009E B40703 67 CEK7: CJNE A,#7,CEK900A1 0200CC 68 LJMP kiriterus00A4 B409CF 69 CEK9: CJNE A,#9,TungguStD00A7 0200DD 70 LJMP kananterus

7172

MikroprosesorIr. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan AjarUniversitas Mercu Buana

‘11 13

Page 14: 14014-6-297365036624

Modul 6. Urutan Eksekusi Program MK : Mikroprosesor

00AA E530 73 Seretkiri: MOV A,buffer00AC 23 74 RL A ;putar buffer 1-bit ke kiri00AD F530 75 MOV buffer,A00AF 853080 76 MOV motor,buffer00B2 120104 77 LCALL delay50ms00B5 2095F2 78 JB ESt,seretkiri ;selama tombol masih ditekan00B8 020076 79 LJMP TungguStD

8000BB E530 81 Seretkanan: MOV A,buffer00BD 03 82 RR A ;putar buffer 1-bit ke kiri00BE F530 83 MOV buffer,A00C0 853080 84 MOV motor,buffer00C3 120104 85 LCALL delay50ms00C6 2095F2 86 JB ESt,seretkanan ;tombol masih ditekan00C9 020076 87 LJMP TungguStD

8800CC E530 89 kiriterus: MOV A,buffer00CE 23 90 RL A ;putar buffer 1-bit ke kiri00CF F530 91 MOV buffer,A00D1 853080 92 MOV motor,buffer00D4 120104 93 LCALL delay50ms00D7 2094F2 94 JB StD,kiriterus ;selama belum ada nada lain00DA 020079 95 LJMP AmbilNada

9600DD E530 97 kananterus: MOV A,buffer00DF 03 98 RR A ;putar buffer1-bit kekiri00E0 F530 99 MOV buffer,A00E2 853080 100 MOV motor,buffer00E5 120104 101 LCALL delay50ms00E8 2094F2 102 JB StD,kananterus ;selama belum ada nada lain00EB 020079 103 LJMP AmbilNada

10400EE E530 105 stepkiri: MOV A,buffer00F0 23 106 RL A ;putar buffer 1-bit ke kiri00F1 F530 107 MOV buffer,A00F3 853080 108 MOV motor,buffer00F6 020076 109 LJMP TungguStD

11000F9 E530 111 stepkanan: MOV A,buffer00FB 03 112 RR A ;putar buffer 1-bit ke kiri00FC F530 113 MOV buffer,A00FE 853080 114 MOV motor,buffer0101 020076 115 LJMP TungguStD

1160104 C28C 117 delay50ms: CLR TR00106 758C3C 118 MOV TH0,#HIGH –50000 ;delay 50ms0109 758AB0 119 MOV TL0,#LOW -50000010C D28C 120 SETB TR0010E 308DFD 121 JNB TF0,$ ;tunggu 50 ms0111 C28D 122 CLR TF00113 22 123 RET

124125 END

MikroprosesorIr. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan AjarUniversitas Mercu Buana

‘11 14