Anda di halaman 1dari 14

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.
TR1
TF0
TR0
IE1
IT1
IE0

TF1

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 LEVELnya.
Karena register TCON merupakan register bit addressable, biasanya pemrogram hanya
mengunakan instruksi bit untuk mengaksesnya, agar bit-bit lainnya tidak terganggu.

11

Mikroprosesor
Ir. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan Ajar


Universitas Mercu Buana

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-

11

Mikroprosesor
Ir. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan Ajar


Universitas Mercu Buana

Modul 6. Urutan Eksekusi Program

MK : Mikroprosesor

step, maka ia harus menekan angka 1 dua kali. Sedangkan Nada 3 menyebabkan gerakan motor 1step 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.

saluran telepon

DTMF decoder

ring detektor

Prosesor 8051

motor driver

motor stepper

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.

11

Motor stepper.

Mikroprosesor
Ir. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan Ajar


Universitas Mercu Buana

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

11

Mikroprosesor
Ir. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan Ajar


Universitas Mercu Buana

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.

D2
IN4001

Phone
Line

NO

Coil

VCC

Relay
P2.7

Q1
9013

R3
1k

R4
1,2 k

LED1

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.

11

Mikroprosesor
Ir. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan Ajar


Universitas Mercu Buana

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.

11

Mikroprosesor
Ir. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan Ajar


Universitas Mercu Buana

Modul 6. Urutan Eksekusi Program

MK : Mikroprosesor

Tabel 6.1. Tabel Kebenaran DTMF Dekoder


fLOW

fHIGH

KEY

TOE

Q4

Q3

Q2

Q1

697

1209

697

1336

697

1477

770

1209

770

1336

770

1477

852

1209

852

1336

852

1477

941

1209

941

1336

941

1477

697

1633

770

1633

852

1633

941

1633

ANY

Rangkaian stepper motor driver atau penggerak motor langkah.


Rangkaian motor driver digunakan merupakan rangkaian perantara yang menghubungkan 4pin 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.

11

Mikroprosesor
Ir. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan Ajar


Universitas Mercu Buana

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.

11

Mikroprosesor
Ir. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan Ajar


Universitas Mercu Buana

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.
AT89C51
Q1
Q2
Q3
Q4
StD
ESt
Ring

VCC
C8
33 pF

1
2
3
4
5
6
7
8
13
12
15
14
31

X2
12 M Hz

19
18
9
17
16

33 pF
C9

P10
P11
P12
P13
P14
P15
P16
P17

P00
P01
P02
P03
P04
P05
P06
P07

INT1
INT0

P20
P21
P22
P23
P24
P25
P26
P27

T1
T0
EA/VP

Mikroprosesor
Ir. Eko Ihsanto, M.Eng

21
22
23
24
25
26
27
28

X1
X2
RESET

RXD
TXD
ALE/P
PSEN

RD
W
R
U3

Gambar 6.8. Konfigurasi AT89C51

11

39
38
37
36
35
34
33
32

Pusat Pengembangan Bahan Ajar


Universitas Mercu Buana

10
11
30
29

Ke Driver Motor
Stepper

Ke Relay
Driver

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.

11

10

Mikroprosesor
Ir. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan Ajar


Universitas Mercu Buana

Modul 6. Urutan Eksekusi Program

MK : Mikroprosesor

start

inisialisasi
timer, motor,
koneksi DTMF

Ambil Digit
berikutnya
dari DTMF

tidak ada

tunggu
dering

Angka '1'
?

putuskan
sambungan

ya

ya

ya

ya

ya

ya

bukan

ada

Angka '3'
?

sambungkan
saluran dengan
DTMF

bukan

Angka '4'
?

StD LOW

bukan

tunggu nada valid

Angka '6'
?

StD
HIGH

periksa
digit 1

bukan

tidak
cocok

Angka '7'
?

cocok

bukan

periksa
digit 2

tidak
cocok

Angka '9'
?

cocok

periksa
digit 3

bukan
tidak
cocok

ya

nada 'D'
?
bukan

cocok

A
Gambar 6.9a. Diagram Alir Program pengendali prosesor

11

11

Mikroprosesor
Ir. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan Ajar


Universitas Mercu Buana

Modul 6. Urutan Eksekusi Program

MK : Mikroprosesor

Geser data ke kiri

Geser data ke kiri

Geser data ke kiri

Kirim ke Motor
dan delay 50 ms

Kirim ke Motor
dan delay 50 ms

Kirim ke Motor
StD HIGH

ESt
HIGH

StD
HIGH

Tombol masih
ditekan ?

tunggu Std LOW


Std LOW ?

ESt
LOW

StD
LOW

StD
LOW

StD HIGH

tunggu Std LOW


StD
LOW

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

0090
0094
0095
0096
00A7
0080
0003
0002
0008
---0030
0030
---0000
0000

11

020030

12

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

$MOD51
DTMF
StD
ESt
Ring
Line
Motor
Pass1
Pass2
Pass3
DSEG
ORG
buffer:
CSEG
ORG
LJMP

Mikroprosesor
Ir. Eko Ihsanto, M.Eng

EQU
EQU
EQU
EQU
EQU

P1
P1.4
P1.5
P1.6
P2.7
EQU
EQU
EQU
EQU

30H
DS

P0
3
2
8

0
START

Pusat Pengembangan Bahan Ajar


Universitas Mercu Buana

Modul 6. Urutan Eksekusi Program


0030
0030
0033
0036
0039
telp
003B
003E

758911
7530CC
853080
C2A7
3096FD
D2A7

0040
0043
0045
0047
004A
putus

3094FD
E590
540F
B40003
020039

004D
0050
0053
0056
0058
005A
005D

B403E9
2094FD
3094FD
E590
540F
B40003
020039
putus

0060
0063
0066
0069
006B
006D
0070

B402D6
2094FD
3094FD
E590
540F
B40003
020039
putus

0073
0076
0079
007C
007E
0080
0083

B408C3
2094FD
3094FD
E590
540F
B40003
020039

0086
0089
008C
008F
0092
0095
0098
009B
009E
00A1
00A4
00A7

B40103
0200AA
B40303
0200BB
B40403
0200EE
B40603
0200F9
B40703
0200CC
B409CF
0200DD

11

13

21
22
23
24
25

ORG
START:
PUTUS:

26
27
28
29
30
31
32
33

MK : Mikroprosesor
30H
MOV
MOV
MOV
CLR

TMOD,#00010001B
buffer,#11001100B ;data stepper pertama
Motor,buffer
Line
;DTMF putus dari line

JNB
SETB

Ring,$
Line

JNB
MOV
ANL
CJNE
LJMP

StD,$
A,DTMF
A,#0FH
A,#0,DIGIT1
PUTUS

;tunggu dering
;DTMF connect dgn line
;tunggu output DTMF valid
;ambil 4-bit LSB saja
;jika bukan nada 'D'
;jika nada 'D' atau

nada

34
35
36
37
38
39
40
41

DIGIT1: CJNE
JB
JNB
MOV
ANL
CJNE
LJMP

A,#Pass1,PUTUS
StD,$
;tunggu nada berikutnya
StD,$
;tunggu output DTMF valid
A,DTMF
A,#0FH
;ambil 4-bit LSB saja
A,#0,DIGIT2
;jika bukan nada 'D'
PUTUS
;jika nada
'D' atau nada

42
43
44
45
46
47
48
49

DIGIT2: CJNE
JB
JNB
MOV
ANL
CJNE
LJMP

A,#Pass2,PUTUS
StD,$
;tunggu nada berikutnya
StD,$
;tunggu output DTMF valid
A,DTMF
A,#0FH
;ambil 4-bit LSB saja
A,#0,DIGIT3
;jika bukan nada 'D'
PUTUS
;jika nada
'D' atau nada

50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

DIGIT3:
CJNE
TungguStD: JB
AmbilNada: JNB
MOV
ANL
CJNE
LJMP
CEK1:
CEK3:
CEK4:
CEK6:
CEK7:
CEK9:

Mikroprosesor
Ir. Eko Ihsanto, M.Eng

CJNE
LJMP
CJNE
LJMP
CJNE
LJMP
CJNE
LJMP
CJNE
LJMP
CJNE
LJMP

A,#Pass3,PUTUS
StD,$ ;tunggu nada berikutnya
StD,$ ;tunggu output DTMF valid
A,DTMF
A,#0FH ;ambil 4-bit LSBsaja
A,#0,CEK1 ;jika bukan nada 'D'
PUTUS ;jika nada 'D' atau nada putus

A,#1,CEK3
seretkiri
A,#3,CEK4
seretkanan
A,#4,CEK6
stepkiri
A,#6,CEK7
stepkanan
A,#7,CEK9
kiriterus
A,#9,TungguStD
kananterus

Pusat Pengembangan Bahan Ajar


Universitas Mercu Buana

Modul 6. Urutan Eksekusi Program


00AA E530
00AC 23
00AD F530
00AF 853080
00B2 120104
00B5 2095F2
ditekan
00B8 020076
00BB
00BD
00BE
00C0
00C3
00C6
00C9

E530
03
F530
853080
120104
2095F2
020076

00CC
00CE
00CF
00D1
00D4
00D7
00DA

E530
23
F530
853080
120104
2094F2
020079

00DD E530
00DF 03
kekiri
00E0 F530
00E2 853080
00E5 120104
00E8 2094F2
lain
00EB 020079
00EE
00F0
00F1
00F3
00F6

E530
23
F530
853080
020076

00F9
00FB
00FC
00FE
0101

E530
03
F530
853080
020076

0104
0106
0109
010C
010E
0111
0113

C28C
758C3C
758AB0
D28C
308DFD
C28D
22

11

14

73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98

MK : Mikroprosesor

Seretkiri:
RL
MOV
MOV
LCALL
JB
LJMP

MOV
A,buffer
A ;putar buffer 1-bit ke kiri
buffer,A
motor,buffer
delay50ms
ESt,seretkiri
;selama
tombol
TungguStD

Seretkanan: MOV
RR
MOV
MOV
LCALL
JB
LJMP
kiriterus:
RL
MOV
MOV
LCALL
JB
LJMP

masih

A,buffer
A
;putar buffer 1-bit ke kiri
buffer,A
motor,buffer
delay50ms
ESt,seretkanan ;tombol masih ditekan
TungguStD

MOV
A,buffer
A
;putar buffer 1-bit ke kiri
buffer,A
motor,buffer
delay50ms
StD,kiriterus ;selama belum ada nada lain
AmbilNada

kananterus: MOV
RR

A,buffer
A

;putar

buffer1-bit

99
100
101
102

MOV
MOV
LCALL
JB

buffer,A
motor,buffer
delay50ms
StD,kananterus ;selama belum ada nada

103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125

LJMP

AmbilNada

stepkiri:
RL
MOV
MOV
LJMP
stepkanan: MOV
RR
MOV
MOV
LJMP
delay50ms: CLR
MOV
MOV
SETB
JNB
CLR
RET

MOV
A,buffer
A
;putar buffer 1-bit ke kiri
buffer,A
motor,buffer
TungguStD
A,buffer
A
;putar buffer 1-bit ke kiri
buffer,A
motor,buffer
TungguStD
TR0
TH0,#HIGH 50000 ;delay 50ms
TL0,#LOW -50000
TR0
TF0,$ ;tunggu 50 ms
TF0

END

Mikroprosesor
Ir. Eko Ihsanto, M.Eng

Pusat Pengembangan Bahan Ajar


Universitas Mercu Buana

Anda mungkin juga menyukai