Upload
chairvl-rizaldi
View
217
Download
0
Embed Size (px)
Citation preview
7/25/2019 Traffic Light Lp
1/9
MIKROKONTROLER
TRAFFIC LIGHT
PRAKTIKUM VII
TRAFFIC LIGHT
I. Tujuan
Setelah melakukan percobaan ini, siswa diharapkan dapat membuat
program pengontrolan lampu lalu lintas dengan menggunakan
mikrokontroler
II. Teori Dasar
!ada percobaan ini akan dibuat suatu program "ang mengontrol lampu
lalu lintas pada#alan simpang tiga $ambar %& memperlihatkan #alan
simpang tiga berikut letak lampulalulintasn"a
$ambar '&
(rutan pen"alaan lampu lalu lintas $ambar %& ditun#ukkan seperti pada
Tabel %& berikut ini
Tabel %&
7/25/2019 Traffic Light Lp
2/9
MIKROKONTROLER
TRAFFIC LIGHT
III.Daftar Alat dan Baan
(tama) '*+& central proccessing unit
!arallel InputOutput
Trafc light
Kabel SerialKabel (S- ke Serial
Kabel penghubung secukupn"a
Komputer program aplikasi SciTE .!T/'&%*0 Microcontroller Trainer1
23or 4indows5
IV.Kesela!atan Kerja
(ntuk melaksanakan praktikum Mikrokontroler ini diperlukan langkah6
langkah untuk keselamatan)a Sebelum praktikum dimulai, masing6masing praktikan men"iapkan
#obsheetb !astikan hubungan kabel power pada komputer laptop sudah
tersambung dan tidak ada kabel "ang terbuka, kemudian hidupkan
2turn on5 M7- panel pada me#a praktikumc !astikan hubungan komputer dengan peralatan lainn"a, seperti
ke"board dan mouse sudah terhubungd 8idupkan komputer, dan tunggu sampai sistem operasi selesai loading
dan sudah dapat digunakan
V. Lan"#a Kerja
&5 Siapkan peralatan "ang diperlukan05 Rangkai peralatan seperti pada $ambar %0
7/25/2019 Traffic Light Lp
3/9
MIKROKONTROLER
TRAFFIC LIGHT
$ambar %0
+5 9tur saklar '*+& 7!( pada posisi 77LK:5 9tur saklar nomor & pemilih alamat !arallel InputOutput pada posisi
ON;5 -uat program berikut ini pada editor program aplikasi SciTE
. !T/'&%*0Microcontroller Trainer1 Simpan 5 Kompilasikan
7/25/2019 Traffic Light Lp
4/9
MIKROKONTROLER
TRAFFIC LIGHT
7/25/2019 Traffic Light Lp
5/9
MIKROKONTROLER
TRAFFIC LIGHT
&*5 Reset '*+& 7!(&&5 9mati dan catat pada tabel %0 keadaan lampu lalu lintas dimulai saat
LEA hi#au & men"ala&05 (langi langkah : sampai dengan ' tetapi ubah perintah rr a pada
baris Sembilanmen#adi rl a&+5 Reset '*+&7!(
&:5 9mati dan catat pada Tabel %+ keadaan LEA stepping motor dan arah
putarmotor dimulai saat LEA 4& men"ala
VI. Analisa
org **h men"iapkan program dimulai dari alamat **h
7/25/2019 Traffic Light Lp
6/9
MIKROKONTROLER
TRAFFIC LIGHT
Lcall dela"ppi memanggil subrutin Bdela"ppiC dalam program ber3ungsisebagai #eda waktu, untuk mempersiapkan !!I
2!rogrammable !eripheral Inter3ace5mo@
dptr,D:**+hmengisi register data pointer 2penun#uk data5 dengan data:**+h
mo@ a,D'*h mengisi register accumulator dengan data '*hmo@ Fdptr,a memindahkan data memori eksternal, isi data dari register
accumulator dipindahkan ke alamat "ang ditun#ukkan olehregister data pointer 2:**+h5
ulang) subrutin BulangCmo@
dptr,D:***hmengisi register data pointer dengan data :***h
mo@a,D**&*&&**b
urutan $, mengisi register accumulator dengan data**&*&&**b
mo@ Fdptr,a mengakses memori eksternal, mengisi alamat "angditun#ukkan oleh register data pointer dengan data "angberada pada register accumulator
incdptr menambahkan nilai & ke register data pointermo@
a,D&&&&*&&*bmengisi register accumulator dengan data &&&&*&&*b
mo@ Fdptr,a G mengakses memori eksternal, mengisi alamat"angditun#ukkan oleh register data pointer dengan data "angberada pada register accumulator
mo@ r*,D& mengisi register r* dengan nilai &hcall dela" memanggil subrutin Bdela"C
mo@dptr,D:***h
mengisi register data pointer dengan data :***h
mo@a,D**&*&*&*b
urutan %, mengisi register accumulator dengan data&&&&*&&*b
mo@ Fdptr,a mengakses memori eksternal, mengisi alamat "angditun#ukkan oleh register data pointer dengan data "angberada pada register accumulator
Inc dptr menambahkan nilai & ke register data pointermo@
a,D&&&&*&&*bG mengisi register accumulator dengan data &&&&*&&*b
mo@ Fdptr,a mengakses memori eksternal, mengisi alamat "ang
ditun#ukkan oleh register data pointer dengan data "angberada pada register accumulatormo@ r*,D& mengisi register r* dengan nilai &call dela" memanggil subrutin dela" 2dalam program ber3ungsi
sebagai #eda waktu5mo@
dptr,D:***hmengisi register data pointer dengan nilai :***h
mo@a,D**&*&**&b
urutan &, mengisi register accumulator dengan data**&*&**&b
mo@ Fdptr,a mengakses memori eksternal, mengisi alamat "angditun#ukkan oleh register data pointer dengan data "angberada pada register accumulator
incdptr menambahkan nilai & ke register data pointermo@
a,D&&&&*&*&bmengisi register accumulator dengan data &&&&*&*&b
mo@ Fdptr,a mengakses memori eksternal, mengisi alamat "ang
7/25/2019 Traffic Light Lp
7/9
MIKROKONTROLER
TRAFFIC LIGHT
ditun#ukkan oleh register data pointer dengan data "angberada pada register accumulator
mo@ r*,D& mengisi register r* dengan nilai &call dela" memanggil subrutin dela" 2dalam program ber3ungsi
sebagai #eda waktu5mo@
dptr,D:***hmengisi register data pointer dengan nilai :***h
mo@a,D&**&***&b
urutan :
mo@ Fdptr,a mengakses memori eksternal, mengisi alamat "angditun#ukkan oleh register data pointer dengan data "angberada pada register accumulator
incdptr menambahkan nilai & ke register data pointermo@
a,D&&&&*&*&bmengisi register accumulator dengan data &&&&*&*&b
mo@ Fdptr,a mengakses memori eksternal, mengisi alamat "angditun#ukkan oleh register data pointer dengan data "angberada pada register accumulator
mo@ r*,D& mengisi register r* dengan nilai &call dela" memanggil subrutin dela" 2dalam program ber3ungsi
sebagai #eda waktu5mo@
dptr,D:***hmengisi register data pointer dengan nilai :***h
mo@a,D*&*&***&b
urutan ', mengisi register accumulator dengan data*&*&***&b
mo@ Fdptr,a mengakses memori eksternal, mengisi alamat "angditun#ukkan oleh register data pointer dengan data "angberada pada register accumulator
incdptr menambahkan nilai & ke register data pointermo@
a,D&&&&*&*&bmengisi register accumulator dengan data &&&&*&*&b
mo@ Fdptr,a mengakses memori eksternal, mengisi alamat "angditun#ukkan oleh register data pointer dengan data "angberada pada register accumulator
mo@ r*,D& mengisi register r* dengan nilai &call dela" memanggil subrutin dela" 2dalam program ber3ungsi
sebagai #eda waktu5mo@dptr,D:***h
mengisi register data pointer dengan nilai :***h
mo@a,D**&&***&b
urutan >,G mengisi register accumulator dengan data**&&***&b
mo@ Fdptr,a mengakses memori eksternal, mengisi alamat "angditun#ukkan oleh register data pointer dengan data "angberada pada register accumulator
incdptr menambahkan nilai & ke register data pointermo@
a,D&&&&*&*&bmengisi register accumulator dengan data &&&&*&*&b
mo@ Fdptr,a mengakses memori eksternal, mengisi alamat "ang
ditun#ukkan oleh register data pointer dengan data "angberada pada register accumulator
mo@ r*,D& mengisi register r* dengan nilai &call dela" memanggil subrutin dela" 2dalam program ber3ungsi
7/25/2019 Traffic Light Lp
8/9
MIKROKONTROLER
TRAFFIC LIGHT
sebagai #eda waktu5mo@
dptr,D:***h
mengisi register data pointer dengan nilai :***h
mo@a,D**&&***&b
urutan (, G mengisi register accumulator dengan data**&&***&b
mo@ Fdptr,a mengakses memori eksternal, mengisi alamat "angditun#ukkan oleh register data pointer dengan data "angberada pada register accumulator
incdptr menambahkan nilai & ke register data pointermo@
a,D&&&&&*&*bmengisi register accumulator dengan data &&&&&*&*b
mo@ Fdptr,a mengakses memori eksternal, mengisi alamat "angditun#ukkan oleh register data pointer dengan data "angberada pada register accumulator
mo@ r*,D& mengisi register r* dengan nilai &call dela" memanggil subrutin dela" 2dalam program ber3ungsi
sebagai #eda waktu5mo@
dptr,D:***hmengisi register data pointer dengan nilai :***h
mo@a,D**&*&**&b
urutan ), G mengisi register accumulator dengan data**&*&**&b
mo@ Fdptr,a mengakses memori eksternal, mengisi alamat "angditun#ukkan oleh register data pointer dengan data "angberada pada register accumulator
incdptr menambahkan nilai & ke register data pointer
mo@a,D&&&&*&*&b
mengisi register accumulator dengan data &&&&*&*&b
mo@ Fdptr,a mengakses memori eksternal, mengisi alamat "angditun#ukkan oleh register data pointer dengan data "angberada pada register accumulator
mo@ r*,D& mengisi register r* dengan nilai &call dela" memanggil subrutin Bdela"Cl#mp ulang melompat ke subrutin BulangCdela") subrutin Bdela"Cmo@ r&,D&** mengisi register r& dengan data &**dela"0) subrutin Bdela"0C
mo@ r0,D&** mengisi register r0 dengan data &**dela"&) subrutin Bdela"&Cmo@ r+,D&** mengisi register r+ dengan data &**d#nH r+, mengurangi isi register r+ dengan &, #ika r+ belum nol
maka ulangi perintah tersebut 2tanda dalam instruksi inimaksudn"a adalah ker#akan kembali instruksi ini5
d#nH r0,dela"& mengurangi isi register r0 dengan &, #ika r+ belum nolmaka melompat ke subrutin Bdela"&C
d#nH r&,dela"0 mengurangi isi register r& dengan &, #ika r& belum nolmaka melompat ke subrutin Bdela"0C
d#nH r*,dela" mengurangi isi register r* dengan &, #ika r* belum nolmaka melompat ke subrutin Bdela"C
ret kembali ke subrutin utama, tempat instruksi dipanggil2subrutin5
dela"ppi) subrutin Bdela"ppiCmo@ r:,D0* mengisi register r: dengan nilai 0*h
7/25/2019 Traffic Light Lp
9/9
MIKROKONTROLER
TRAFFIC LIGHT
delppi) subrutin BdelppiCmo@ r;,D&* mengisi register r; dengan nilai &*h
d#nH r;, mengurangi isi register r; dengan &, #ika belum nol makaulangi instruksi
d#nH r:,delppi mengurangi isi register r: dengan &, #ika belum nolmelompat ke subrutin delppi
Ret kembali ke subrutin utama, tempat instruksi dipanggil2subrutin5
ENA akhir program
VII.K*+IMPULA,
TraJc light dikendalikan melalui sistem kendali, dan Berdasarkan hasilpercobaan dan analisis rangkaian di atas maka dapat disimpulkan bahwa pada kontrol
lampu lalu lintas (traffic light), lampu akan menyala bergantian secara otomatis.jeda
waktu antara lampu tergantung pada program