Anda di halaman 1dari 14

DASAR INPUT/OUTPUT

(PORT PPI DAN PORT 1 SEBAGAI INPUT/OUTPUT)


Menggunakan DT-51 MinSys

Mengamati keluaran data berupa nyala LED setelah proses pemindahan data
(akses eksternal) dari sebuah register ke alamat memori yang ditunjuk oleh
Data Pointer atau I/O port (Port 1 maupun Port PPI)
Meman!aatkan port input dan output pada minimum sistem D"#$1untuk trans!er
data se%ara parallel
Membuat program untuk kontrol nyala LED menggunakan &'I"() on/o!!
(I/O)
Pada per%obaan sebelumnya (per%obaan 1) telah dijelaskan !ungsi dari masing#
masing Port pada D"#$1 Min&ys yang bisa digunakan sebagai input/output* yaitu Port 1
mikrokontroler +,&$1* serta Port -* Port .* dan Port ( dari PPI +/($$
&emua Port diatas dapat diimplementasikan pada system rangkaian kontrol
elektronik yaitu sebuah sistem yang mempunyai piranti input dan piranti output
Piranti input ber!ungsi sebagai piranti penerima data#data dari sistem yang dikontrol*
sedang piranti output ber!ungsi sebagai pemberi aksi kepada sistem yang dikontrol
1/
PERCOBAAN
1
Piranti Input/Output dari sistem kontrol merupakan pintu gerbang hubungan ke
sistem yang akan dikontrol Data masukan melalui gerbang peripheral input maupun
data keluaran melalui peripheral ouput adalah berupa le0el biner
&edangkan yang disebut sebagai sistem yang dikontrol diilustrasikan pada
gambar /#1
dari output rangkaian kontrol ke input rangkaian kontrol
1ambar /#1 .lok diagram sistem yang dikontrol
"erminal input dapat terdiri dari sebuah jalur atau lebih (sekumpulan jalur) yang
beroperasi pada logika digital Demikian pula pada terminal output* dapat terdiri dari
sebuah jalur atau lebih (sekumpulan jalur)
Pada per%obaan berikut ini (per%obaan /)* kita akan menggunakan Port PPI dan
Port 1 pada D"#$1 Min&ys sebagai jalur input dan output 2angkaian toggle s3it%h
dihunbungkan pada jalur input sedangkan jalur ouput dihubungkan dengan LED
P!" PPI Se#agai In$u"
&ebagai masukkan* port -* port .* atau port ( dapat digunakan sebagai jalur
untuk menerima data* seperti telah dijelaskan pada per%obaan sebelumnya (Per%obaan
1)* bah3a port - dan port . hanya bisa diakses se%ara byte sedangkan port ( bisa
diakses se%ara byte maupun bit dengan %ara mengatur !ormat .it &et/2eset pada %ontrol
3orld Pengertian dari akses per bit adalah mengakses tiap bit se%ara sendiri 4 sendiri*
tidak se%ara keseluruhan (+ bit) &edangkan akses byte adalah mengakses keseluruhan
(+ bit) sekaligus
P!" A Se#agai In$u"
&ebagai input* kita bisa memasukkan data* misalnya melalui Port - Port - dari
PPI +/$$ pada D"#$1 Min&ys dihubungkan dengan piranti input yaitu toggle s3it%h +#
15
Sis"e%
yang &ikn"!'
bit (&')* sedangkan output menggunakan Port output D"#$1 Min&ys yaitu Port 1
dihubungkan dengan piranti output (LED)
6arena menggunakan Port - PPI sebagai input* maka %ontrol 3ordnya bernilai
,7h (bit 8 %ontrol 3ord bernilai 91:) Dengan pemberian nilai ,7h pada %ontrol 3ord
berarti Port - ber!ungsi sebagai input* Port . dan Port ( ber!ungsi sebagai output
Contoh :
# inisialisasi;
MOV DPTR,#2003h
MOV A,#90h
MOVX @DPTR,A
(%#inasi P!" A) B &an P!" C Se#agai In$u" &an Ou"$u"
.erikutnya adalah menggunakan ketiga Port PPI sebagai input dan output
2angkaian toggle s3it%h (&') dihubungkan dengan Port . D"#$1 Min&ys sebagai
input* sedangkan output Port ( D"#$1 Min&ys dihubungkan dengan rangkaian LED
<ntuk menentukan inisialisasi PPI supaya Port . sebagai input dan Port (
sebagai output* maka %ontrol 3ord bernilai +/h (bit 1 = 91:* bit 7 dan 5 = 97:)
Contoh :
# inisialisasi;
MOV DPTR,#2003h
MOV A,#82h
MOVX @DPTR,A
P!" 1 Se#agai In$u"
Port 1 merupakan Port I/O d3i#arah (bidire%tional) yang dilengkapi dengan
internal pull-up (gambar /#/) Penyangga keluaran Port 1 mampu
memberikan/menyerap arus empat masukan ""L (sekitar 1*> m-)
?ika 91: dituliskan ke kaki#kaki Port 1* maka masing#masing kaki akan di#
pulled high dengan pull#up internal sehingga dapat digunakan sebagai masukan* jika
kaki#kaki Port 1 dihubungkan dengan ground (di#pull lo3)* maka masing#masing kaki
akan memberikan arus (sour%e) karena di#pulled high se%ara internal Port 1 juga
menerima lamat rendah (lo3 byte) selama pemrograman dan 0eri!ikasi !lash
18
&ebagai input* Port 1 dapat dimasuki suatu data yang berasal dari piranti input
yaitu toggle s3it%h (&') &edangkan output bisa menggunakan Port PPI yang terdapat
pada D"#$1 Min&ys
1ambar /#/ 2angkaian Internal Port 1
# Modul D"#$1
# P( beserta so!t3are
# Debugger
# Do3nloader
# Editor
# "oggle s3it%h dan LED sebagai modul I/O
(%#inasi P!" A) P!" B) P!" C &an P!" 1 se#agai In$u"/Ou"$u"
1* +a!&,a!e
Input
# )ubungkan konektor (kabel pita) Port -* Port . pada D"#$1 ke Modul toggle
s3it%h jika input yang digunakan adalah Port - atau Port . "etapi bila inputnya
adalah Port 1 atau Port ( maka hubungkan konektor (kabel pita) Port 1 atau Port C
pada DT-51 ke Modul toggle switch
1$
D @
P1*- .ATC+
(L6 @A
Pin P1B
C((
C&&
!"#D $#TC%
&'T"!'#$
()*
+!&T" T,
$#TC%
!"#D P&'
&'T"!'#$
P)$$-)P
Output
# )ubungkan konektor (kabel pita) Port 1* Port ( pada D"#$1 ke Modul Display
$"D jika output yang digunakan adalah Port 1 atau Port ( "etapi bila outputnya
adalah Port - atau Port . maka hubungkan konektor (kabel pita) Port - atau Port .
pada D"#$1 ke Modul Display $"D (lihat gambar /#5)
1ambar /#5 6oneksi D"#$1 Min&ys dengan Modul I/O
Selanjutnya
# )ubungkan kabel serial dari konektor D.#, pada D"#$1 ke P( pada Port serial
1>
DT-51 MinSys

(OD"2OL
1
/

Port ( Port 1
1
/

Port - Port .
1
/

L(D
1
/
#

E
E

#
F $ 8 5 / 1 7 >
Input
M&u' I/O
5 / 1 7

&' LED

E #
1 1
F $ 8 >
Output
&3it%h

(&')
LED
# )ubungkan %atu data , Colt -( pada modul D"#$1
# Pin 6onektor &ele%t pada posisi Pin 1 dan / untuk mode download program* pada
posisi Pin / dan 5 untuk mode stand alone * setelah do3nload program berhasil
/* S0",a!e
Editor :
# "ulislah program pada editor DO& prompt* Dotepad atau lainnya
# Program / !ile baru tersebut* simpan dalam direktori(!older) D"$1 dengan
eGtension -na.a/ile0#*M
# EGit
Debugger :
# (ompile !ile baru dengan perintah (;HD"$1H#*M51 -na.a /ile0#*M pada DO&
Prompt* dengan terlebih dahulu pindah ke direktori D"$1
# Maka akan terbentuk !ile#!ile yang bereGtension )EB* O.?* dan L&" disamping
itu juga mun%ul pesan* bah3a !ile yang telah di%ompile tersebut terdapat kesalahan
atau tidak
# .ila ada kesalahan* bisa dilihat letak kesalahannya dengan membuka !ile yang
berekstension L&"* melalui (;HD"$1Hedit
# <ntuk memperbaiki kesalahan (error)* buka !ile yang berekstension -&M ?angan
lupa disimpan kemudian di%ompile kembali
# EGit
Downloader :
# <ntuk mendo3nload program yang telah sukses di%ompile* maka gunakan
perintah (;HD"$1HD"$1L -na.a /ile0%"1
# -pabila proses do3nload selesai* maka akan mun%ul pesan Do3nload &u%%eded
# .ila gagal* maka akan mun%ul beberapa prosedur untuk mege%ek kembali
kesalahan tersebut
1F
Akses P!" PPI
- Program 1.1 Test Output data di Port A PPI DT-51
$MOD51
ORG 4000H ;Awal pr!ra" DT#51 har$% 4000h
;&'&%&al&%a%&
MOV DPTR,#2003H
MOV A,#80H
MOVX @DPTR,A
;pr( A
MOV DPTR,#2000H
MOV A,#0)*H
MOVX @DPTR,A
+,MP $
-.D
- Program 1.2 Test Output data di Port B PPI DT-51
$MOD51
)TR/0RD -12 2003H ;3333456lara%& 7ar&a85l
ORG 4000H
;&'&%&al&%a%&
MOV DPTR,#)TR/0RD
MOV A,#80H
MOVX @DPTR,A
;pr( 9
2/A.G: MOV DPTR,#2001H
MOV A,#55H
MOVX @DPTR,A
,MP 2/A.G
-.D
- Program 1.3 Test Output data di Port C PPI DT-51
$MOD51
)+-G
ORG 4000H
,MP +TART
ORG 4100H
+TART: MOV DPTR,#2003H ;&'&%&al&%a%&
MOV A,#80H
MOVX @DPTR,A

MOV DPTR,#2002H ;pr( )
MOV A,#0AAH
MOVX @DPTR,A
+,MP $
-.D
- Program 1.4 Test Output data di Port A dab Port B PPI
1+
$MOD51
PORTA -12 2000H ; 33333333333333333
PORT9 -12 2001H ; 456lara%& 7ar&a85l
PORT) -12 2002H ;
PORT)0 -12 2003H ; 33333333333333333
)0 -12 0080H ; 333%5"$a ;a4& $(p$(
ORG 4000H
,MP +TART
ORG 4100H
;&'&%&al&%a%&
+TART: MOV DPTR,#PORT)0
MOV A,#)0
MOVX @DPTR,A
2/A.G: MOV DPTR,#PORTA
MOV A,#0AAH
MOVX @DPTR,A
MOV DPTR,#PORT9
MOV A,#55H
MOVX @DPTR,A
,MP 2/A.G
-.D
- Program 1.5 Pembuatan lampu edip degan dela! di Port A
$MOD51
PORTA -12 2000H ; 33333333333333333
PORT9 -12 2001H ; 456lara%& 7ar&a85l
PORT) -12 2002H ;
PORT)0 -12 2003H ; 33333333333333333
)0 -12 0080H ; 3%5"$a ;a4& $(p$(
ORG 4000H
A,MP +TART
ORG 4100H
D-/A<: MOV R0,#03H
D-/1A: MOV R1,#0**H
D-/19: MOV R2,#0**H
D,.= R2,$
D,.= R1,D-/19
D,.= R0,D-/1A
R-T
;&'&%&al&%a%&
+TART: MOV DPTR,#PORT)0
MOV A,#)0
MOVX @DPTR,A
;8$a( la"p$ 85r654&p
/OOP: MOV A,#0**H
MOV DPTR,#PORTA
MOVX @DPTR,A
A)A// D-/A<
MOV A,#00H
1,
MOVX @DPTR,A
A)A// D-/A<
A,MP /OOP
-.D
- Program 1." Port A Input# Port B $ C Output
$MOD51
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Pr!ra" 9a?a 4a(a 4& +w&(?h 4a'
; (a"p&l6a'@($l&% 4& /-D
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ORG 4000H

MOV DPTR,#2003H ;&'&%&al&%a%&
MOV A,#90H ;PA In, PB&PC Out
MOVX @DPTR,A
/OOP: MOV DPTR,#2000H ;baca Sw input
MOVX A,@DPTR
MOV DPTR,#2002H ;tulis data
MOVX @DPTR,A
/,MP /OOP
-.D
- Program 1.% Port C Input# Port A $ B Output
$MOD51
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Pr!ra" 9a?a 4a(a 4& +w A $'($6 r5%5( 4a'
; +w B $'($6 (a"p&l6a' 4a(a 4& /-D C45'!a' D5laDE
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ORG 4000H
MOV DPTR,#2003H ;inisialisasi PPI
MOV A,#100010019 ;PC In, PA&PB Out
MOVX @DPTR,A
+TART: MOV DPTR,#2002H ;Baca Sw Input
MOVX A,@DPTR
),.- A,#010000009,)-FG1 ;?56 +wA '
+,MP R-+-T
)-FG1: ),.- A,#100000009,+TART ;?56 +wB '
MOV A,#101001019
MOV DPTR,#2001H ;Output data
MOVX @DPTR,A
A)A// D-/A<
MOV A,#100000019
MOVX @DPTR,A
A)A// D-/A<
/,MP +TART
R-+-T: MOV A,#000000009
MOV DPTR,#2001H ;Output data
MOVX @DPTR,A
A)A// D-/A<
/7
R-T
D-/A<: MOV R1,#3H
D-/1: MOV R2,#0**H
D-/2: MOV R3,#0**H
D,.= R3,$
D,.= R2,D-/2
D,.= R1,D-/1
R-T
-.D
- Program 1.& Port B Input# Port A $ C Output
$MOD51
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Pr!ra" 6'(rl arah !5ra6a' 'Dala /-D
; Cr(a%& 6a'a'E"5'!!$'a6a' %w&(?h O'@OHH C1@0E
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ORG 4000H
MOV DPTR,#2003H ;inisialisasi
MOV A,#82H ;PB In, PA&PC Out
MOVX @DPTR,A

MAI.: MOV DPTR,#2001H ;baca Sw input
MOVX A,@DPTR
),.- A,#40H,)-FG/AGI
-XIT: MOV A,#000000009
MOV DPTR,#2002H ;Output data
MOVX @DPTR,A
A)A// D-/A<
+,MP MAI.
)-FG/AGI: ),.- A,#80H,MAI.
MOV A,#80H
/OOP: MOV DPTR,#2002H ;Output
MOVX @DPTR,A
A)A// D-/A<
RR A ;Rotasi kanan
+,MP /OOP
D-/A<: MOV R1,#3H
D-/1: MOV R2,#0**H
D-/2: MOV R3,#0**H
D,.= R3,$
D,.= R2,D-/2
D,.= R1,D-/1
R-T
-.D
/1
- Program 1.' Port B Input# Port A $ C Output
$MOD51
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Pr!ra" 6'(rl 65?5pa(a' 4&%plaD /-D
; "5'!!$'a6a' %w&(?h O'@OHH C1@0E
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ORG 4000H
MOV DPTR,#2003H ;inisialisasi
MOV A,#82H ;PB In, PA&PC Out
MOVX @DPTR,A

MAI.: MOV R0,#01H
MOV DPTR,#2001H ;baca Sw input
MOVX A,@DPTR
),.- A,#80H,TG1 ;?56 +w B
/OOP: MOV A,R0
MOV DPTR,#2002H ;Output data
MOVX @DPTR,A
A)A// D-/A<
I.) R0
A,MP /OOP
TG1: ),.- A,#40H,TG2 ;?56 +w A
/OOP1: MOV A,R0
MOV DPTR,#2002H ;Output data
MOVX @DPTR,A
A)A// D-/A<1
I.) R0
A,MP /OOP1
TG2: ),.- A,#20H,MAI. ;?56 +w 5
/OOP2: MOV A,R0
MOV DPTR,#2002H ;Output data
MOVX @DPTR,A
A)A// D-/A<2
I.) R0
A,MP /OOP2
D-/A<: MOV DPTR,#DAT
MOVX A,@DPTR
MOV R1,A
+,MP D-/1
D-/A<1: MOV DPTR,#DAT
I.) DPTR
MOVX A,DPTR
MOV R1,A
+,MP D-/1
D-/A<2: MOV DPTR,#DAT
I.) DPTR
I.) DPTR
MOVX A,@DPTR
MOV R1,A
D-/1: MOV R2,#5*H
D-/2: MOV R3,#0**H
//
D,.= R3,$
D,.= R2,D-/2
D,.= R1,D-/1
R-T
DAT: D9 0*H,08H,03H
-.D
Akses P!" 1
- Program 1.1( Test Output data di Port 1 DT-51 )ases per
bit*
$MOD51
)+-G
ORG 4000H
,MP +TART
ORG 4100H
+TART: MOV +P,#30H
+-T9 P1J0
)/R P1J1
+-T9 P1J2
)/R P1J3
+-T9 P1J4
+-T9 P1J5
+-T9 P1JA
+-T9 P1JB
+,MP $
-.D
- Program 1.11 Test Output data di Port 1 DT-51 )ases b!te*
$MOD51
ORG 4000H
+TART: MOV A,#01H
/A,2: MOV P1,A
A)A// D-/A<
I.) A
),.- A,#00H,/A,2
,MP +TART

D-/A<: MOV RB,#03H
D-/1: MOV RA,#0**H
D-/2: MOV R5,#0**H
D,.= R5,$
D,.= RA,D-/2
D,.= RB,D-/1
R-T
-.D
- Program 1.12 Port 1 DT-51 sebagai Input# Port A output
$MOD51
/5
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Pr!ra" "5'Dala6a' %a($ /-D
; "5'!!$'a6a' %w&(?h O'@OHH C1@0E
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
)+-G
ORG 4000H
,MP +TART
ORG 4100H
+TART: MOV +P,#30H
I.IT: MOV DPTR,#2003H
MOV A,#80H
MOVX @DPTR,A
/A9-/1: ,9 P1J0,DI+P/A<

DI+P/A<2: MOV DPTR,#2000H
MOV A,#00H
MOVX @DPTR,A
+,MP /A9-/1
DI+P/A<: MOV DPTR,#2000H
MOV A,#01H
MOVX @DPTR,A
+,MP /A9-/1
-.D
1 &empurnakan program /8 diatas*
agar perpindahan saklar F* > dan $ untuk menjalankan program dengan
ke%epatan tertentu tanpa harus di do3nload ulang (hanya 1G do3nload)
?ika saklar yang On selain saklar F* > dan $ atau semua saklar O!!* program
akan reset
/ &empurnakan program /5 diatas* dengan ketentuan sebagai berikut ;
ketika saklar F saja yang On* rotasi kanan dilaksanakan mulai dari LED bit
ke F menuju ke LED bit ke 7
?ika saklar yang On saklar >* maka rotasi dihentikan/reset (semua LED
padam)
?ika saklar F On lagi* maka rotasi kanan dilaksanakan kembali
/8
5 .uat program untuk kontrol ke%epatan nyala LED (rotasi kanan dan kiri)
menggunakan s3it%h input (&3F#&37)* jika &3F On* maka delay#nya paling
besar/lambat dan bila &37 On delay#nya paling ke%il/%epat
8 .uat program dengan input toggle s3it%h di Port ( dan output LED di Port .
&emua LED dimulai dari keadaan padam
# ?ika Port ($ = On* nyala LED di Port . akan bertambah 1 se%ara biner
# ?ika Port (1 = On* nyala LED di Port . akan berkurang 1 se%ara biner
# ?ika Port (7 = On* semua LED di Port . akan padam atau reset
Petun2uk : gunakan perintah ID( dan DE( untuk menambah atau mengurangi
dan gunakan prosedur 9delay: untuk men%egah agar proses penambahan atau
pengurangan bisa berlangsung se%ara perlahan dan berurutan
/$

Anda mungkin juga menyukai