3.2 Perancangan Program
Alat ini dirancang untuk sistem parkir otomatis menggunakan koin. Diagram alir dari program yang akan dibuat adalah sebagai berikut:
MIKRO 1:
START INISIALISASI
Ada koin dimasukkan?
Ada mobil keluar?
Periksa warna koin Warna koin
sesuai ? Lewatkan koin
Periksa masssa koin Masakoin
sesuai ? Wadah diputar kanan 60
derajat dan diputar kiri 60 derajat
Lewatkan koin Wadah diputar kiri 60
derajat dan diputrar kanan 60 derajat
Suruh mikro2 membuka gerbang masuk
Update display1
Hidupkan alamr
Update display2 Tuggu sampai mikro dua
mengirimkan pesan bahwa gerbang masuk
telah dibuka Updiae display3
Suruh mikro2 menutup gerbang masuk
Tunggu sampai mikro dua mengirimkan pesan
bahwa gerbang masuk telah ditutup
Data = data - 1
Update display1 Data = data
+ 1 YA
YA
YA YA
TIDAK TIDAK
TIDAK TIDAK
Update display 1 : “jumlah maximum 10 sisa = data”
Update display2 : “koin salah” Update display3 : “Silahkan masuk”
Program pertama kali dimulai dari start, setelah itu dilakukan penginisialisasi program untuk memetakan port dan memori yang digunakan
dalam program. Mikrokontroler akan memeriksa apakah ada koin dimasukkan
Universitas Sumatera Utara
atau tidak, jika ada selanjutnya mikro memeriksa warna koin. Jika warnanya sesuai dilanjutkan dengan memeriksa berat koin, jika sesuai juga, maka koin
diletakkan pada wadah yang benar dan mikro memerintahkan mikro yang satu lagi untuk membuka gerbang masuk dan data tempat kosong pada parkir dikurangi
satu. Mikro satu akan menunggu sampai mikro dua membuka gerbang masuk dan mengirimkan pesan bahwa gerbang telah dibuka. Mikro 1 akan mengirimkan data
pada display untuk menampilkan kalimat “silahkan masuk”. Setelah itu mikro akan memerintahkan mikro satu lagi untuk menutup gerbang masuk dan
menunggu pesan dari mikro satu lagi bahwa gerbang telah ditutup, setelah itu mikro akan mengirimkan data yang akan ditampilkan pada display 1 dan mikro
akan kembali ke program utama Jika dari pemeriksaan mikro bahwa ada koin yang dimasukkan beratnya
tidak sesuai, maka mikro akan melewatkan koin, dan ditempatkan pada wadah yang salah, kemudian mikro akan menghidupkan alarm dan akan ditampilkan
pada display yang berisi kalimat “koin salah”, setelah itu mikro akan kembali ke program utama
Jika setelah diperiksa oleh mikro bahwa warna koin yang diperiksa tidak sesuai, maka mikro akan memeriksa warna koin tersebut kemudian akan
melewatkan koin, dan ditempatkan pada wadah yang salah, kemudian mikro akan memerintahkan untuk menghidupkan alaram dan mengirimkan data untuk
ditampilkan pada display yang berisi kalimat “koin salah” Jika mikro memeriksa bahwa tidak ada koin yang dimasukkan , maka
mikro 1 akan menunggu pesan dari mikro 2 apakah ada mobil yang keluar, jika ada maka data tempat kosong pada parkir ditambah satu dan mikro akan
Universitas Sumatera Utara
menampilkan data pada display 1, setelah itu mikro akan kembali memeriksa apakah ada koin yang dimasukkan
Jika mikro 2 tidak mengirimkan pesan bahwa ada mobil yang keluar maka, mikro 1 akan memeriksa apakah ada koin yang dimasukkan begitu seterusnya.
MIKRO 2:
START INISIALISASI
Mobil mau masuk?
Ada kendaraan mau keluar?
Mobil sudah masuk?
Buka gebang masuk
Kirim pesan bahwa gerbang
sudah dibuka Tuggu kenraan
masuk
Tutup gebang masuk
Data = data + 1
Buka gerbang keluar
Tampilkan kata “terimakasih”
Pada display
tutup gerbang keluar
Kendraan sudah keluar?
Kirim pesan bahwa gerbang
sudah ditutup
Kirim pesan ke mikro1 bahwa
ada kendraan keluar
Update display
YA TIDAK
TIDAK
TIDAK TIDAK
YA
YA YA
Program dimulai dengan start dan dilakuakn proses inisialisasi untuk
memetakan port dan memori yang digunakan dalam program. Selanjutnya mikro akan emunggu perintah dari mikro1, atau ada kendraan keluar. Begitu seterusnya
Jika ada perintah dari mikro satu untuk membuka gerbang masuk, maka mikrokontroler akan membuka gerbang masuk sebesar 90 derajat, dan menunggu
sampai sensor fotodioada mendetaksi bahwa kendraan sudah benar-benar masuk,
Universitas Sumatera Utara
dan selanjutnya mikrokontroler mengirimkan pesan ke mikro 1 bahwa gerbang telah dibuka. Selanjutnya mikrokontroler kembali ke routin utama
Jika ada perintah dari mikro 1 untuk menutup grbang, maka mikro satu akan menghitung kendraan masuk, kemudian gerbnag ditutup dan elanjutnya
dikirim pesan kepada mikro 1 bahwa gerbang telah ditutup. Jika sensor mendeteksi ada kendraan yang mau keluar, maka
mikrokontroler akan membuka gerbang keluar, dan menunggu sampai kendraan benar-benar keluar, dan selanjutnya menutup gerbang keluar, dan dikirim pesan
kepada mikro 1 bahwa ada kendraan yang telah keluar dan selanjutnya program kembali ke program utama.
Program Sistem Parkir Otomatis Menggunakan Koin Berbasis
Mikrokontroler AT89S52 :
Mikrokontroler 1 : LDR equ p2.1
pas equ p2.3 com1 equ p2.0
RS EQU P2.5 RW EQU P2.6
EN EQU P2.7 tekan equ p2.3
clr p2.4 setb com1
Universitas Sumatera Utara
masuk equ p2.2 clr p2.2
mov 20h,0 mov r4,10
mov p1,0 clr p2.3
acall silahkan utama:
jb masuk,koin jb p1.2,adakeluar
sjmp utama
adakeluar: inc r4
setb p1.3 jb p1.2,
acall delay clr p1.3
acall silahkan sjmp utama
Universitas Sumatera Utara
koin: acall delaymax
acall delaymax jb LDR,warna_cocok
jnb LDR,tkcocok sjmp koin
tkcocok: ajmp takcocok
warna_cocok: acall delay
acall lewatkankoin acall delay
jnb p2.3,salahdah acall putarkanan
acall delay acall delay
acall putarkiri acall tutup
dec r4
Universitas Sumatera Utara
acall mikro1
acall silahkan acall delay
CJNE R4,0,utama sjmp sesak
sesak: acall penuh
bandel: jb masuk,bandal
jb p1.2,adakeluar sjmp bandel
bandal: acall delaymax
acall lewatkankoin acall putarkiri
acall delay acall delay
acall putarkanan acall tutup
Universitas Sumatera Utara
setb p2.4 acall delaymax
acall delaymax clr p2.4
sjmp bandel
takcocok: acall lewatkankoin
salahdah: acall putarkiri
acall delay acall delay
acall putarkanan acall tutup
setb p2.4 acall koins
acall delaymax acall delaymax
acall silahkan clr p2.4
ajmp utama
Universitas Sumatera Utara
lewatkankoin: mov p3,0
mov r1,14 lewatsaja:
setb p3.4 acall delay
clr p3.4 setb p3.5
acall delay clr p3.5
setb p3.6 acall delay
clr p3.6 setb p3.7
acall delay clr p3.7
djnz r1,lewatsaja ret
tutup: mov p3,0
mov r1,15 tarik:
Universitas Sumatera Utara
setb p3.7 acall delay
clr p3.7 setb p3.6
acall delay setb p3.5
clr p3.6 acall delay
setb p3.4 clr p3.5
acall delay clr p3.4
djnz r1,tarik ret
putarkanan: mov p3,0
mov r1,14 kanan:
setb p3.0 acall delay
setb p3.1 clr p3.0
Universitas Sumatera Utara
acall delay setb p3.2
clr p3.1 acall delay
setb p3.3 clr p3.2
acall delay clr p3.3
djnz r1,kanan ret
putarkiri: mov p3,0
mov r1,10 kiri:
setb p3.3 acall delay
setb p3.2 clr p3.3
acall delay setb p3.1
clr p3.2 acall delay
setb p3.0
Universitas Sumatera Utara
clr p3.1 acall delay
clr p3.0 djnz r1,kiri
ret
mikro1: clr com1
acall delay acall silahkanmasuk
jnb p1.0, setb com1
ret
delay: mov r2,0ffh
deli: mov r3,10h
djnz r3, djnz r2,deli
ret delaymax:
mov r7,060h
Universitas Sumatera Utara
de: ACALL delay
djnz r7,de ret
konversi: mov 21h,
satu: cjne r5,1,dua
mov r5,1 ret
dua: cjne r5,2,tiga
mov r5,2 ret
tiga: cjne r5,3,empat
mov r5,3 ret
empat: cjne r5,4,lima
mov r5,4 ret
Universitas Sumatera Utara
lima: cjne r5,5,enam
mov r5,5 ret
enam: cjne r5,6,tujuh
mov r5,6 ret
tujuh: cjne r5,7,lapan
mov r5,7 ret
lapan: cjne r5,8,sembilan
mov r5,8 ret
sembilan: cjne r5,9,sepuluh
mov r5,9 ret
sepuluh: cjne r5,10,anti_error
mov r5,0
Universitas Sumatera Utara
mov 21h,1 ret
anti_error: mov r5,0
mov 21h,1 ret
silahkan: mov a,r4
mov r5,a acall konversi
mov 20h,r5
MOV A,038H LCALL SCAN
ACALL PENAMPIL ACALL SCAN
MOV A,J ACALL KIRIM
MOV A,L ACALL KIRIM
Universitas Sumatera Utara
mOV A,H ACALL KIRIM
MOV A, ACALL KIRIM
MOV A,M ACALL KIRIM
MOV A,A ACALL KIRIM
MOV A,K ACALL KIRIM
MOV A,S ACALL KIRIM
MOV A, ACALL KIRIM
MOV A,: ACALL KIRIM
MOV A, ACALL KIRIM
MOV A,1 ACALL KIRIM
MOV A,0 ACALL KIRIM
MOV A, ACALL KIRIM
Universitas Sumatera Utara
MOV A,0c0H LCALL SCAN
MOV A,S ACALL KIRIM
MOV A,I ACALL KIRIM
MOV A,S ACALL KIRIM
MOV A,A ACALL KIRIM
MOV A, ACALL KIRIM
MOV A,: acall KIRIM
MOV A, ACALL KIRIM
MOV A,21h ACALL KIRIM
MOV A,20h ACALL KIRIM
RET silahkanmasuk:
MOV A,038H
Universitas Sumatera Utara
LCALL SCAN ACALL PENAMPIL
ACALL SCAN MOV A,S
ACALL KIRIM MOV A,I
ACALL KIRIM MOV A,L
ACALL KIRIM MOV A,A
ACALL KIRIM mOV A,H
ACALL KIRIM MOV A,K
ACALL KIRIM MOV A,A
ACALL KIRIM MOV A,N
ACALL KIRIM MOV A,
ACALL KIRIM MOV A,M
ACALL KIRIM MOV A,A
Universitas Sumatera Utara
ACALL KIRIM MOV A,S
ACALL KIRIM MOV A,U
ACALL KIRIM MOV A,K
ACALL KIRIM MOV A,
ACALL KIRIM
MOV A,0c0H LCALL SCAN
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
MOV A, acall KIRIM
Universitas Sumatera Utara
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
RET ret
koins: MOV A,038H
LCALL SCAN ACALL PENAMPIL
ACALL SCAN MOV A,M
ACALL KIRIM MOV A,A
ACALL KIRIM mOV A,A
ACALL KIRIM MOV A,F
ACALL KIRIM MOV A,
Universitas Sumatera Utara
ACALL KIRIM MOV A,K
ACALL KIRIM MOV A,O
ACALL KIRIM MOV A,I
ACALL KIRIM MOV A,N
ACALL KIRIM MOV A,
ACALL KIRIM MOV A,S
ACALL KIRIM MOV A,L
ACALL KIRIM MOV A,H
ACALL KIRIM
MOV A,0c0H LCALL SCAN
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
Universitas Sumatera Utara
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
MOV A, acall KIRIM
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
RET
penuh:
MOV A,038H LCALL SCAN
ACALL PENAMPIL ACALL SCAN
ACALL KIRIM mOV A,P
Universitas Sumatera Utara
ACALL KIRIM MOV A,A
ACALL KIRIM MOV A,R
ACALL KIRIM MOV A,K
ACALL KIRIM mOV A,I
ACALL KIRIM mOV A,R
ACALL KIRIM MOV A,
ACALL KIRIM MOV A,P
ACALL KIRIM MOV A,E
ACALL KIRIM mOV A,N
ACALL KIRIM MOV A,U
ACALL KIRIM MOV A,H
ACALL KIRIM MOV A,
Universitas Sumatera Utara
ACALL KIRIM MOV A,
ACALL KIRIM
ACALL KIRIM
MOV A,0c0H LCALL SCAN
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
MOV A, acall KIRIM
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
Universitas Sumatera Utara
MOV A, ACALL KIRIM
RET
PENAMPIL: MOV A,00CH
LCALL SCAN MOV A,006H
LCALL SCAN MOV A,080H
LCALL SCAN RET
SCAN: MOV P0,A
CLR RS CLR RW
SETB EN
CLR EN LCALL DELAY
RET
Universitas Sumatera Utara
KIRIM: MOV P0,A
SETB RS CLR RW
SETB EN CLR EN
LCALL DELAY RET
End Mikrokontroler 2 :
com1 equ p2.0 fotodioda1 equ p2.2
fotodioda2 equ p2.4 fotodioda3 equ p2.3
RS EQU P2.5 RW EQU P2.6
EN EQU P2.7 mov p0,0
mov p1,0
mov p3,0 mov r4,0
Universitas Sumatera Utara
mov r6,0 acall silahkan
utama: jnb com1,mikro1
jnb fotodioda2,kendraankeluar sjmp utama
kendraankeluar: acall buka_palangkeluar
ACALL silahkankeluar jb fotodioda3,
jnb fotodioda3, acall tutup_palangkeluar
acall silahkan sjmp utama
mikro1: acall buka_palangmasuk
Universitas Sumatera Utara
jb fotodioda1, jnb fotodioda1,
acall tutup_palangmasuk setb p1.0
acall delay acall delay
acall delay clr p1.0
sjmp utama
buka_palangmasuk: mov p3,0
mov r1,13 tarik:
setb p3.7 acall delay
clr p3.7 setb p3.6
acall delay setb p3.5
clr p3.6 acall delay
setb p3.4
Universitas Sumatera Utara
clr p3.5 acall delay
clr p3.4 djnz r1,tarik
ret
tutup_palangmasuk: mov p3,0
mov r1,13 sjmp itung
refles: acall silahkan
mon: setb p3.4
acall delay clr p3.4
setb p3.5 acall delay
setb p3.6 clr p3.5
acall delay setb p3.7
clr p3.6 acall delay
Universitas Sumatera Utara
clr p3.7 djnz r1,mon
ret
itung: inc r4
cjne r4,12,refles mov r4,0
inc r6 sjmp refles
tutup_palangkeluar: mov p3,0
mov r1,12 kanan:
setb p3.0 acall delay
setb p3.1 clr p3.0
acall delay setb p3.2
clr p3.1 acall delay
setb p3.3
Universitas Sumatera Utara
clr p3.2 acall delay
clr p3.3 djnz r1,kanan
ret
buka_palangkeluar: mov p3,0
mov r1,13 setb p1.2
acall delay jnb p1.3,
clr p1.2
kiri: setb p3.3
acall delay setb p3.2
clr p3.3 acall delay
setb p3.1 clr p3.2
acall delay setb p3.0
Universitas Sumatera Utara
clr p3.1 acall delay
clr p3.0 djnz r1,kiri
ret
delaymin: mov r2,0ffh
deli: mov r3,05h
djnz r3, djnz r2,deli
ret
delay: mov r7,08h
de: ACALL delaymin
djnz r7,de ret
konversi: cjne r5,0,satu
Universitas Sumatera Utara
mov r5,0 ret
satu: cjne r5,1,dua
mov r5,1 ret
dua: cjne r5,2,tiga
mov r5,2 ret
tiga: cjne r5,3,empat
mov r5,3 ret
empat: cjne r5,4,lima
mov r5,4 ret
lima: cjne r5,5,enam
mov r5,5 ret
enam: cjne r5,6,tujuh
Universitas Sumatera Utara
mov r5,6 ret
tujuh: cjne r5,7,lapan
mov r5,7 ret
lapan: cjne r5,8,sembilan
mov r5,8 ret
sembilan: cjne r5,9,anti_error
mov r5,9 ret
anti_error: ret
silahkan: mov a,r4
mov r5,a acall konversi
mov 20h,r5
Universitas Sumatera Utara
mov a,r6 mov r5,a
acall konversi mov 21h,r5
MOV A,038H LCALL SCAN
ACALL PENAMPIL ACALL SCAN
MOV A,J ACALL KIRIM
MOV A,L ACALL KIRIM
mOV A,H ACALL KIRIM
MOV A, ACALL KIRIM
MOV A,M ACALL KIRIM
MOV A,A ACALL KIRIM
MOV A,K ACALL KIRIM
MOV A,S
Universitas Sumatera Utara
ACALL KIRIM MOV A,
ACALL KIRIM MOV A,:
ACALL KIRIM MOV A,
ACALL KIRIM MOV A,1
ACALL KIRIM MOV A,0
ACALL KIRIM
MOV A,0c0H LCALL SCAN
MOV A,J ACALL KIRIM
MOV A,L ACALL KIRIM
MOV A,H ACALL KIRIM
MOV A, ACALL KIRIM
MOV A,M ACALL KIRIM
Universitas Sumatera Utara
MOV A,B ACALL KIRIM
MOV A,L acall KIRIM
MOV A, MOV A,M
acall KIRIM MOV A,S
ACALL KIRIM MOV A,K
ACALL KIRIM MOV A,
ACALL KIRIM MOV A,:
ACALL KIRIM MOV A,
ACALL KIRIM MOV A,21h
ACALL KIRIM MOV A,20h
ACALL KIRIM RET
silahkankeluar: MOV A,038H LCALL SCAN
Universitas Sumatera Utara
ACALL PENAMPIL ACALL SCAN
MOV A,T ACALL KIRIM
MOV A,E ACALL KIRIM
mOV A,R ACALL KIRIM
MOV A,I ACALL KIRIM
MOV A,M ACALL KIRIM
MOV A,A ACALL KIRIM
MOV A,K ACALL KIRIM
MOV A,A ACALL KIRIM
MOV A,S ACALL KIRIM
MOV A,I ACALL KIRIM
MOV A,H ACALL KIRIM
Universitas Sumatera Utara
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
MOV A,0c0H LCALL SCAN
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
MOV A, acall KIRIM
MOV A, MOV A,
acall KIRIM
Universitas Sumatera Utara
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
MOV A, ACALL KIRIM
RET
PENAMPIL: MOV A,00CH LCALL SCAN
MOV A,006H LCALL SCAN
MOV A,080H LCALL SCAN
RET
Universitas Sumatera Utara
SCAN: MOV P0,A CLR RS
CLR RW SETB EN
CLR EN LCALL delaymin
RET KIRIM: MOV P0,A
SETB RS CLR RW
SETB EN CLR EN
LCALL delaymin RET
end
Universitas Sumatera Utara
BAB 4
PENGUJIAN RANGKAIAN DAN ANALISA
4.1 Pengujian Rangkaian