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
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 /$