Pengujian Sensor Arah Angin dengan Tampilan LCD
Gambar 5.4 Blok diagram pengujian sensor arah angin
Realisasi
switch
yang digunakan sebagai sensor arah angin dapat dilihat pada gambar 5.5
Gambar 5.5 Switch pada sensor arah
Bahasa yang digunakan untuk membuat program pembacaan sensor arah angin adalah bahasa
assembly
.Cuplikan program untuk sensor arah angin adalah sebagai berikut:
Startarah: Jnb
SensorUtara,BukanUtara ;Jika SensorUtara bit 0 lompat ke BukanUtara
Mov DPTR,PesanUtara
;Copy data PesanUtara ke DPTR Lcall
Posisi2 ;panggil subrutin Posisi2
Ljmp baca ;lompat ke baca
BukanUtara: Jnb
SensorTimurLaut,BukanTimurLaut; Jika SensorTimurLaut bit 0 lompat ke BukanTimurLaut
Mov DPTR,PesanTimurLaut
;Copy PesanTimurLaut ke DPTR Lcall
Posisi2 ;panggil subrutin posisi2
Ljmp baca ;lompat ke baca
BukanTimurLaut: Jnb
SensorTimur,BukanTimur ;Jika SensorTimur
bit lompat ke BukanTimur
Mov DPTR,PesanTimur
;Copy PesanTimur ke DPTR Lcall
Posisi2 ;panggil subrutin posisi2
Ljmp baca ;lompat ke baca
AT89S51 LCD
Sensor Arah
Voltmeter
Port 2 Port 0
Bagian switch yang dapat
berputar
BukanTimur: Jnb
SensorTenggara,BukanTenggara;Jika SensorTenggara bit 0 lompat ke BukanTenggara
Mov DPTR,PesanTenggara
;Copy PesanTenggara ke DPTR Lcall
Posisi2 ;panggil subrutin posisi2
Ljmp baca ;lompat ke baca
BukanTenggara: Jnb
SensorSelatan,BukanSelatan;Jika SensorSelatan bit 0 lompat ke BukanSelatan
Mov DPTR,PesanSelatan
;Copy PesanSelatan ke DPTR Lcall
Posisi2 ;panggil subrutin posisi2
Ljmp baca ;lompat ke baca
BukanSelatan: Jnb
SensorBaratDaya,BukanBaratDaya;Jika SensorBaratDaya
bit 0 lompat ke BukanBaratDaya Mov
DPTR,PesanBaratDaya ;Copy PesanBaratDaya ke DPTR
Lcall Posisi2
;panggil subrutin posisi2 Ljmp baca
;lompat ke baca BukanBaratDaya:
Jnb SensorBarat,BukanBarat
;Jika SensorBarat
bit lompat ke BukanBarat
Mov DPTR,PesanBarat
; Copy PesanBarat ke DPTR Lcall
Posisi2 ;panggil subrutin posisi2
Ljmp baca ;lompat ke baca
BukanBarat: Jnb
SensorBaratLaut,BukanBaratLaut; Jika SensorBaratLaut bit 0 lompat ke BukanBaratLaut
Mov DPTR,PesanBaratLaut
;Copy PesanBaratLaut ke DPTR Lcall
Posisi2 ;panggil subrutin posisi2
Ljmp baca ;lompat ke baca
BukanBaratLaut: Mov
DPTR,CariArah ;Copy CariArah ke DPTR
Lcall Posisi2
;panggil subrutin posisi2 jmp Startarah
;lompat ke Startarah PesanUtara:
DB ARAH:Utara 000 PesanTimurLaut:
DB ARAH:Tm.Laut 045 PesanTimur:
DB ARAH:Timur 090 PesanTenggara:
DB ARAH:Tenggara135 PesanSelatan:
DB ARAH:Selatan 180 PesanBaratDaya:
DB ARAH:Br.Daya 225 PesanBarat:
DB ARAH:Barat 270 PesanBaratLaut:
DB ARAH:Br.Laut 315 CariArah:
DB MencariArahAngin dst..................
Penjelasan mengenai cuplikan program di atas adalah sebagai berikut:
Pembacaan sensor pertama kali dimulai dari sub rutin StartArah yang merupakan subrutin untuk membaca sensor utara. Jika sensor utara
port
2.0 masih dalam kondisi
low
bit 0 maka langkah selanjutnya langsung melompat ke sub rutin BukanUtara. Tapi jika sensor utara dalam kondisi
high
bit1 maka dilanjutkan dengan langkah meng-
copy
isi PesanUtara ke dalam
data pointer
DPTR. PesanUtara merupakan salah satu isi
data base
kalimat yang akan ditampilkan di LCD.
Langkah selanjutnya yaitu memanggil sub rutin Posisi2. Sub rutin ini merupakan rangkaian perintah
– perintah untuk menampilkan data pada LCD. Pada sub rutin ini diatur agar PesanUtara ditampilkan pada baris kedua LCD.
Setelah sub rutin Posisi2 selesai dilaksanakan maka pada LCD akan muncul tulisan ”
ARAH:Utara 000
”. Setelah muncul informasi mengenai arah di LCD langkah selanjutnya
yaitu memanggil sub rutin baca. Sub rutin baca merupakan rangkaian perintah untuk membaca sensor kecepatan
port
1.0 dan
output
rangkaian
timer
port1.1. Seperti yang disebutkan sebelumnya, jika sensor utara dalam kondisi
low
bit 0 dan ternyata sensor Timur Laut dalam kondisi
high
bit1 maka ke dalam
data pointer
DPTR yang di-
copy
-kan adalah isi PesanTimurLaut. Langkah berikutnya hampir sama dengan sub rutin StartArah yaitu memanggil subrutin
Posisi2 sehingga pada LCD akan tampil kalimat”
ARAH:Tm.Laut 045
”. Apabila sensor utara dan sensor timur laut ternyata dalam kondisi
low
bit 0 maka dilanjutkan dengan membaca sensor timur. Jika sensor timur juga
ternyata dalam kondisi
low
bit 0 maka dilanjutkan dengan pembacaan sensor –
sensor lainnya secara berurutan yaitu sensor tenggara, sensor selatan, sensor barat daya, sensor barat, dan terakhir sensor barat laut.
Pembacaan sensor berlanjut sampai salah satu sensor terbaca dalam kondisi
high
bit1. Setelah ditemukan sensor yang dalam kondisi
high
bit1 maka DPTR diisi dengan pesan dari
data base
arah angin yang sesuai. Namun apabila pembacaan dari sensor utara hingga sensor barat laut tidak ada ditemukan
satupun sensor yang dalam kondisi
low
bit 0 maka pada DPTR di-
copy
pesan
CariArah sehingga pada saat ditampilkan di LCD akan muncul tulisan ”
MencariArahAngin
”. Tabel hasil pengujian sensor arah dapat dilihat pada tabel 5.2.
Tabel 5.2 Pengujian sensor arah ARAH YANG DIUJI
PORT AT89S51 TEGANGAN
TULISAN PADA LCD UTARA
2.0 4,8 V
ARAH UTARA 000 TIMUR LAUT
2.1 4,8 V
ARAH TIMUR LAUT 045 TIMUR
2.2 4,8 V
ARAH TIMUR 090 TENGGARA
2.3 4,8 V
ARAH TENGGARA 135 SELATAN
2.4 4,8 V
ARAH SELATAN 180 BARAT DAYA
2.5 4,8 V
ARAH BARAT DAYA 225 BARAT
2.6 4,8 V
ARAH BARAT 270 BARAT LAUT
2.7 4,8 V
ARAH BARAT LAUT 315 -
- 0 V
MENCARI ARAH ANGIN
Foto hasil pengujian sensor arah seperti terlihat pada gambar 5.6.
Gambar 5.6 Tampilan LCD pada saat pengujian sensor arah
Dari hasil pengujian terhadap sensor arah angin seperti yang ditunjukkan oleh gambar 5.6 dan tabel 5.2 maka rangkaian sensor arah angin telah bekerja
sesuai dengan hasil rancangan penulis pada Bab IV.