ISSN 1978-2497
iteks intuisi teknologi dan seni
PERANCANGAN ALAT PENUNJUK ARAH ANGIN BERBASIS MIKROKONTROLER AT89S51 DENGAN TAMPILAN LCD Oleh : Utis Sutisna dan Subuh Priyantoro
ABSTRACT
Wind directional signal is importan thing and is used in many cases, such as weather estimate, navigation, flight, etc. This system now is easy to be implemented since many sophisticated electronic equipments such as microcontrollesrs, softwares, and their equipments, were discovered. The purpose of this experimental research is to design a prototype of wind directional signal based on microcontroller AT89S51 using optocoupler sensors and Liquid Crystal Display (LCD). The research result shows that the system can run with good enaugh performance, stable and reliable, can be operated automatically. One of optocoupler sensors gives input to microcontroller if it detects a wind direction change then the microcontroller processes this signal, and then it is displayed on LCD. Keywords : Microcontrollesrs AT89S51, Liquid Crystal Display (LCD), optocoupler sensors. PENDAHULUAN Penunjuk arah angin adalah sebuah tampilan karakter huruf atau angka yang menampilkan arah angin sesuai dengan arah angin yang sedang terjadi dan akan mengubah tampilan secara otomatis jika terjadi perubahan arah angin tersebut. Pemakaian alat ini sangat banyak sekali, misalnya dalam prakiraan cuaca, dunia pelayaran, penerbangan, militer dan sebagainya. Mengingat pentingnya peranan alat penunjuk arah tersebut, maka dalam penelitian ini dibuat prototip alat penunjuk arah angin berbasis mikrokontroler AT89S51. Perancangan dan pembuatan alat ini dilakukan dalam rangka berusaha mempraktekan dan mengembangkan teknologi instrumen dan kendali serta memberi kontribusi untuk kemudahan dan kemaslahatan bagi manusia. TINJAUAN PUSTAKA Mikrokontroler AT89S51 Mikrokontroler AT89S51 adalah mikrokontroler yang chipnya merupakan kombinasi antara CPU 8 bit dengan memori flash sehingga AT89S51 menjadi sebuah mikrokomputer yang sangat berdaya guna, memberikan solusi yang sangat efektif, murah dan sangat fleksibel untuk beberapa aplikasi pengendalian. AT89S51 memiliki beberapa kelebihan antara lain: 4 Kbyte Flash PEROM (Programmable anda Eraseable Read Only Memory), pengisian program secara ISP (In Sistem Programmable), RAM 128 byte, 32 jalur input-output, dua timer 16 byte, lima vector interupsi 2 level, port serial dua arah, rangkaian detak (clock) dan osilator internal. AT89S51 mempunyai empat buah port yang dapat digunakan sebagai unit masukkan/keluaran (I/O), yaitu port 0, port 1, port 2, dan port 3. Namun jika digunakan eksternal memori ataupun fungsi-fungsi spesial, seperti External Interrupt, serial ataupun External Timer, port 0, port 2, dan port 3 tidak dapat digunakan
115
ISSN 1978-2497
iteks intuisi teknologi dan seni
sebagai port dengan fungsi umum. Untuk itu disediakan port 1 yang dikhususkan untuk port dengan fungsi umum. Semua port ini dapat diakses dengan pengalamatan secara bit sehingga dapat dilakukan perubahan output pada tiap-tiap pin dari port ini tanpa mempengaruhi pinpin yang lainnya. Gambar 1 memperlihatkan diagram blok piranti mikrokontroler AT89S51. P0.0 – P0.7
PORT 0 DRIVERS
Vcc
P2.0 – P2.7
PORT 2 DRIVERS
GND RAM ADDR REGISTER
B REGISTER
PORT0 LACTH
RAM
PORT2 LACTH
FLASH
PROGRAM ADDRESS REGISTER
STACK POINTER
ACC
TMP2
BUFFER
TMP1
PC INCREMENTER
ALU INTERRUPT SERIAL PORT AND TIMER BLOCKS
PROGRAM COUNTER
PSW PSEN ALEPROG EA/Vpp RST
TIMING AND CONTROL
INTRUCTION REGISTER
WATCH DOG
DUALDPTR
PORT3 LACTH
PORT1 LACTH
ISP PORT
PROGRAM LOGIC
OSC PORT 3 DRIVERS
PORT 1 DRIVERS
P3.0 – P3.7
P1.0 - P1.7
Gambar 1 Diagram Blok AT89S51
Organisasi Memori AT89S51 mempunyai struktur memori yang terdiri atas :
• •
RAM Internal, memori sebesar 128 byte yang biasanya digunakan untuk menyimpan variable atau data yang bersifat sementara. Special Function Register (Register Fungsi Khusus), memori yang berisi registerregister yang mempunyai fungsi-fungsi khusus yang disediakan oleh mikrokontroler tersebut, seperti timer, serial dan lain-lain.
•
Flash PEROM, memori yang digunakan untuk menyimpan intruksi-intruksi MCS-51.
116
ISSN 1978-2497
iteks intuisi teknologi dan seni
FF
7FF SPECIAL FUNCITON REGISTER
80 RAM ADDRESS REGISTER
PROGRAM ADDRESS REGISTER
7F RAM INTERNAL 00
FLASH REROM
000
Gambar 2 Struktur Memori Mikrokontroler AT89S51.
RAM Internal AT89S51 terdiri dari : Register Banks (00H hingga 1FH), Bit Addressable RAM (20H hingga 2FH), RAM Keperluan Umum (30 H hingga 7FH). Pada AT89S51 terdapat 21 Special Function Registers (Register Fungsi Khusus) yang terletak antara alamat 80H hingga FFH. Beberapa register-register ini juga mampu dialamati dengan pengamatan bit (bit addressable) sehingga dapat dioperasikan seperti yang ada pada RAM yang lokasinya dapat diamati dengan pengamatan bit (Bit Addressable RAM). AT89S51 mempunyai 4 Kbyte Flash PEROM (Programmable and Erasable Raed Only Memory), yaitu ROM yang dapat ditulis ulang atau dihapus dengan menggunakan perangkat programmer. Flash PEROM dalam AT89S51 menggunakan Atmel’s High-Densty Non Volatile Technology yang mempunyai kemampuan untuk ditulis ulang hingga 1000 kali dan berisikan perintah standar MCS-51. Program yang ada pada Flash PEROM akan dijalankan jika pada saat sistem di-reset, pin EA/VP berlogika satu sehingga mikrokontroler aktif berdasarkan program yang ada pada Flash PEROM-nya. Namun jika EA/VP berlogika nol, mikrokontroler aktif berdasarkan program yang ada pada memori eksternal.
• • •
PERANCANGAN SISTEM Perancangan Perangkat Keras (Hardware)
Blok diagram sistem pada perancangan alat ini dapat dilihat pada Gambar 3.
Sensor Optocoupler
Mikrokontroler
LCD
Gambar 3 Blok diagram perencanaan sistem.
Alat penunjuk arah angin dilengkapi dengan sebuah penangkap angin yang terhubung pada sebuah poros batang aluminium, dan pada batang aluminium tersebut terdapat cakram sensor. Di cakram sensor terdapat 8 sensor dengan menggunakan
117
ISSN 1978-2497
iteks intuisi teknologi dan seni
optocoupler sebagai sensor, yang tiap sensornya merupakan arah dari kedelapan arah angin yang nantinya akan mendeteksi kemana arah angin berhembus dengan mendeteksi sebuah lubang yang terdapat pada cakram oleh sensor. Penangkap Angin
Led Inframerah
Cakram
Poros
Lubang Sensor LCD
Phototransistor
Gambar 4 Alat Penunjuk Arah Angin dengan Tampilan LCD
• • •
•
• •
Cara kerja secara lengkap adalah sebagai berikut : Angin berhembus dan menggerakan penangkap angin sehingga menunjuk pada suatu arah. Penangkap angin kemudian menggerakan poros batang aluminium dan menggerakan pula cakram sensor. Pada cakram sensor terdapat lubang pendeteksi, dan sensor arah akan mendeteksi lubang tersebut. Cahaya dari led inframerah yang tadinya terpotong oleh cakram akan terdeteksi oleh phototransistor apabila sensor tepat mengenai lubang pada cakram. Sensor yang mendeteksi arah angin diperkuat sinyalnya oleh penguat Op-Amp LM 324 dengan menguatkan tegangan input sensor sehingga sensor akan berlogika 0 apabila mendeteksi suatu arah angin dan berlogika 1 apabila tidak mendeteksi arah angin. Sinyal dari sensor yang diperkuat oleh LM 324 dikirim ke Mikrokontroler AT89S51 yang kemudian diproses oleh program. Kedelapan input dari sensor dihubungkan ke port 1 dan output LCD pada port 0 dan port 2 pada mikrokontroler AT89S51. Setiap satu sensor arah angin terdeteksi maka akan diproses oleh mikrokontroler
arah manakah angin tersebut berhembus dan ditampilkan ke LCD.
Rangkaian Sensor Optocoupler Pada rangkaian sensor digunakan optocoupler sebagai sensor yang terdiri dari Led inframerah dan phototransistor. Led inframerah akan memancarkan inframerah dan akan diterima oleh phototransistor. Pada Alat penunjuk arah angin cakram akan memotong dan menghalangi inframerah, sensor akan bekerja bila tepat berada pada lubang pendeteksi karena inframerah tidak terhalang ke phototransistor. 118
ISSN 1978-2497
iteks intuisi teknologi dan seni
VCC
VCC
R3 1K
3 R1 180
+ -
2
4 1
U1 1 LM324
P1. X
Gambar 5 Rangkaian Sensor Optocoupler
Led inframerah bekerja pada tegangan 5 Vdc dan Arus 27 mA. Untuk membatasi arus yang masuk ke led di pasang resistor 180 ohm pada katoda. Pada rangkaian sensor digunakan IC Op-Amp LM 324 sebagai detector taraf positif pembalik. Resistor 1K bekerja pull-up untuk kaki 3 Op-Amp sebagai non inverting, menjaga agar kaki 3 selalu dalam keadaan positif bila phototransistor tidak bekerja atau pancaran inframerah terhalang maka output Op-Amp negatif. Bila led inframerah memancar diterima oleh phototransistor maka akan menggroundkan kaki 3 non inverting sehingga Op-Amp akan bekerja sebagai detector taraf positif pembalik dan output akan positif 5 Vdc. VR 10K digunakan sebagai pengatur tegangan referensi untuk kaki inverting OpAmp. VR 10K diatur agar tegangan yang masuk ke kaki inverting tidak terlalu besar melebihi tegangan saturasi atau terlalukecil. ehingga bila sensor bekerja atau tidak ada penghalang maka output positif dan akan negatif bila sensor terhalang.
Rangkaian Mikrokontroler AT89S51 dan LCD VCC SENSOR P1.0 – P1.7
VCC
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
40 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7
9
P2.7 P2.6 P2.4
LCD D0 D1 D2 D3 D4 D5 D6 D7 E RW RS
VCC LCD VCC GND
10 M
10 K
5V
18 19 20 30 pf
30 pf
AT89S51 12 Mhz
Gambar 6 Rangkaian Mikrokontroler AT89S51 dan LCD
119
ISSN 1978-2497
iteks intuisi teknologi dan seni
Dalam rangkaian Mikrokontroler Resistor 10K dan Elco 10 microfarad yang dihubungkan ke kaki 9 mikrokontroler digunakan sebagai rangkaian reset. Kristal 12 MHz dan kapasitor 30 Pf digunakan sebagai rangkaian Clock yang menghasilkan pulsa dengan frekuensi 12 MHz untuk Mikrokontroler dan dihubungkan ke kaki 18 dan 19.
• • • • • • • •
Port 1 digunakan sebagai masukan dari sensor pendeteksi arah angin. P1.0 untuk sensor arah utara P1.1 untuk sensor arah timur laut P1.2 untuk sensor arah timur P1.3 untuk sensor arah tenggara P1.4 untuk sensor arah selatan P1.5 untuk sensor arah barat daya P1.6 untuk sensor arah barat P1.7 untuk sensor arah barat laut
Setiap sensor yang terdeteksi maka akan di terima oleh port 1 dan di proses oleh mikrokontroler arah manakah dan ditampilkan ke LCD. Port 0 digunakan sebagai output data karakter ke LCD. Data karakter dikodekan dalam kode ASCII yang tersimpan di dalam memori LCD. Setiap pengiriman data ASCII ke LCD akan di proses oleh LCD dan akan ditampilkan.
Port 2.7 sebagai kontrol Rite/Write LCD. Port 2.6 sebagai kontrol Enabel LCD dan Port 2.4 sebagai kontrol reset.
Flow chart Program Struktur diagram flow chart program diperlihatkan pada Gambar 7. START CEK SENSOR ARAH MATA ANGIN SENSOR TERDETEKSI ATAU TIDAK
TIDAK TERDETEKSI
LCD => “ MENCARI ARAH ”
TERDETEKSI SENSOR BARAT
LCD => “ BARAT “ SENSOR BARAT LAUT
LCD => “ BARAT LAUT “ SENSOR BARAT DAYA
LCD => “ BARAT DAYA “ SENSOR TIMUR LCD => “ TIMUR “ SENSOR TIMUR LAUT
LCD => “ TIMUR LAUT “ SENSOR SELATAN LCD => “ SELATAN “ SENSOR TENGGARA LCD => “ TENGGARA “ SENSOR UTARA
LCD => “ UTARA “ END
Gambar 7 Flow chart program Penjelasan dari pada diagram flow chart pada program penunjuk arah angin dalam skripsi ini adalah sebagai berikut :
120
ISSN 1978-2497
iteks intuisi teknologi dan seni
a. Setelah alat diberi daya listrik bertegangan 5 volt DC, maka alat segera melakukan power on reset dan mengaktifkan rutin inisialisasi, yakni pengisian register, pemberian status pada bit-bit input dan output pada mikrokontroler AT89S51 dan menentukan kondisi mesin awal. b. Setelah inisialisasi, mesin melakukan proses pengujian terhadap status bit yang berasal dari sensor optocoupler, sensor tersebut akan mendeteksi adanya input atau tidak dari sensor optocoupler. c. Jika terdapat input dari sensor optocoupler maka mikrokontroler akan memprosesnya dan LCD akan menampilkannya atau menunjuk arah angin yang terdeteksi dengan tampilan huruf atau angka. Misalnya terdeteksi input sensor dengan arah angin barat maka LCD akan menunjukkan atau menampilkan ”Barat”. d. Namun jika tidak ada input dari sensor, maka mikrokontroler tidak akan memprosesnya dan LCD tidak akan menampilkan arah angin tetapi tetap menunggu adanya input yang terdeteksi oleh sensor optocoupler. e. Demikian proses tersebut kembali berulang-ulang.
Pembuatan Program Untuk Mikrokontroler AT89S51 Program ini menggunakan suatu software MS Dos editor untuk menulis program assembly. Downloder yang digunakan oleh software tersebut adalah ATMEL 89 Series Flash Programmer Version 3.1 Listing program assembly dengan software MS. Dos Editor untuk pendeteksi arah angin dengan Sensor Optocoupler menggunakan Mikrokontroler AT89S51 adalah sebagai berikut : ;------------------------------------------------------------------;------ARAH ANGIN.ASM-----------------------------------------;------------------------------------------------------------------;INISIALISASI RS BIT P2.1 RW BIT P2.6 EBL BIT P2.7 DATA_LCD EQU 80H ORG 00H ;PROGRAM UTAMA START: LCALL DELAY_1S LCALL INIT_LCD LCALL CLEAR_LCD LCALL PERKENALAN LCALL DELAY_1S LCALL DELAY_1S
Program diatas digunakan untuk mengeset LCD dan digunakan untuk intruksi dibawah ini : a. Display clear (layar bersih) b. Kursor berada pada digit pertama c. Set fungsi 8 bit transfer data ASCII d. Set DDRAM Adress. Untuk program pendeteksi sensor digunakan seperti pada program dibawah ini. a. Sensor terhubung Port P3.0 - P3.7 b. Jika sensor tidak mendeteksi arah angin maka tidak ada tegangan, tetapi jika terdeteksi adanya arah angin maka akan mengirim tegangan.
121
ISSN 1978-2497
iteks intuisi teknologi dan seni
c. Mikrontroler dengan instruksi JNB (Jump if not bit) mendeteksi adanya tegangan atau tidak dari sensor, jika mikrokontroler mendeteksi ada sensor maka akan mengirimkan pesan ke LCD. Jika mikrokontroler tidak mendeteksi adanya sensor maka akan melompat ke program pendeteksi sensor berikutnya. Listing programnya adalah sebagai berikut: BARAT: JNB P3.0,BARAT_LAUT LCALL CLEAR_LCD MOV DPTR,#PESAN1A LCALL KIRIMPESAN_LCD LCALL DELAY_1S LCALL CLEAR_LCD MOV DPTR,#PESAN1B LCALL KIRIMPESAN_LCD LCALL TULIS_DIBARIS_BAWAH MOV DPTR,#PESAN2 LCALL KIRIMPESAN_LCD LCALL DELAY_1S LCALL DELAY_1S LOOP: LJMP BARAT PESAN: PESAN1A: DB 'ARAH ANGIN>->->*',0FH PESAN1B: DB 'ARAH ANGIN > > ',0FH PESAN2: DB 'BARAT ',0FH
Program pesan LCD, digunakan untuk mengubah karakter menjadi kode ASCII 16 bit dengan instruksi DB (Define Byte). Kemudian program selanjutnya adalah Program hapus LCD digunakan untuk menghapus program jika selesai penulisan dan akan berganti ke penulisan berikutnya: CLEAR_LCD: SETB EBL CLR RS MOV DATA_LCD,#01H CLR EBL LCALL WAIT_LCD RET
Program hapus LCD digunakan untuk menghapus program jika selesai penulisan dan akan berganti ke penulisan berikutnya. Setelah program tersebut dilanjutkan dengan program Register Akumulator, dan Program tulis LCD yaitu program berupa pesan yang sudah berbentuk kode data ASCII dikirim ke LCD. WAIT_LCD: CLR RS SETB RW SETB EBL MOV DATA_LCD,#0FFH MOV A,DATA_LCD JB ACC.7,WAIT_LCD CLR EBL CLR RW RET WRITE_TEXT: CLR RW SETB RS SETB EBL MOV DATA_LCD,A CLR EBL LCALL WAIT_LCD RET
122
ISSN 1978-2497
iteks intuisi teknologi dan seni
HASIL DAN PEMBAHASAN Pengujian pada rangkaian mikrokontroler AT89S51 bertujuan untuk mengetahui apakah sinyal dari sensor optopcoupler dapat diterima dengan baik atau tidak dan dapat diproses dengan baik oleh mikrokontroler AT89S51 serta menapilkannya dengan LCD. Dengan melihat hasil pengujian terhadap rangkaian sensor dapat diketahui cara kerja dari sensor. Jika sensor akan mendeteksi arah angin maka akan berogika 0, tetapi jika tidak mendeteksi arah angin akan berlogika 1. Pada mikrokontroler Port1.0-Port1.7 digunakan untuk menerima input dari sensor. Adapun langkah-langkan pengujian rangkaian mikrokontroler AT89S51 antara lain sebagai berikut :
1. Memberi tegangan ± 5Vdc pada rangkaian mikrokontroler. 2. Pada keadaan biasa Port1 dalam keadaan logika 1 semua. 3. Untuk mengujinya salah satu kaki diberi logika 0. Untuk itu salah satu kaki Port1 dihubungkan dengan Ground kemudian lihat pada LCD, maka LCD akan menampilkan arah angin yang terdeteksi. 4. Melakukan pengujian satu persatu seperti pada pengujian ketiga diatas, dari Port1.0 - Port1.7. 5. Bila tampilan LCD sudah sesuai dengan arah angin yang terdeteksi maka semua rangkaian dianggap sudah benar. Hasil percobaan atau pengujian rangkaian mikrokontroler AT89S51 dan LCD dapat diperlihatkan seperti pada Tabel 1. Tabel 1 Pengujian Rangkaian Mikrokontroler AT 89S51 dan LCD Sensor
Arah
Port 1
Sensor 1
Utara
P1.0
Sensor 2
Timur laut
P1.1
Sensor 3
Timur
P1.2
Sensor 4
Tenggara
P1.3
Sensor 5
Selatan
P1.4
Percobaan
Tegangan masukan
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
4,8 Vdc 4,9 Vdc 4,6 Vdc 5 Vdc 4,5 Vdc 4,9 Vdc 5 Vdc 4,8 Vdc 4,5 Vdc 4,6 Vdc 4,6 Vdc 4,5 Vdc 4,8 Vdc 4,9 Vdc 5 Vdc 4,5 Vdc 4,9 Vdc 4,8 Vdc 5 Vdc 4,6 Vdc 4,7 Vdc 4,5 Vdc 5 Vdc 4,5 Vdc 4,8 Vdc
123
Tampilan LCD
Arah angin ->> Utara
Arah angin ->> Timur laut
Arah angin ->> Timur
Arah angin ->> Tenggara
Arah angin ->> Selatan
ISSN 1978-2497
iteks intuisi teknologi dan seni
Tabel 1 (Lanjutan)
Sensor 6
Barat Daya
P1.5
Sensor 7
Barat
P1.6
Sensor 8
Barat Laut
P1.7
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
5 Vdc 4,9 Vdc 4,6 Vdc 5 Vdc 4,8 Vdc 4,7 Vdc 4,8 Vdc 4,6 Vdc 4,7 Vdc 5 Vdc 4,8 Vdc 4,9 Vdc 4,5 Vdc 5 Vdc 5 Vdc
Arah angin ->> Barat Daya
Arah angin ->> Barat
Arah angin ->> Barat Laut
Dari hasil pengujian tersebut, maka perancangan sistem keamanan pada ruangan ini dapat berjalan dengan baik.
KESIMPULAN Setelah dilakukan perancangan, pembuatan, serta pengujian dan analisa, dapat diambil kesimpulan sebagai berikut. 1. Pada keadaan biasa atau sensor dalam keadaan terhalang maka output Op-Amp selalu dalam keadaan 4,5 Vdc – 5 Vdc atau berlogika 1 (High). 2. Pada keadaan sensor mendeteksi arah angin atau tidak terhalang maka output OpAmp dalam keadaan 0 Vdc – 0,4 Vdc atau berlogika 0 (low). 3. Setiap kaki Mikrokontroler AT89S51 pada Port.1.0 - Port.1.7 bertugas untuk mendeteksi sensor arah angin yang bekerja dalam logika 0. 4. Setiap sensor mendeteksi maka akan ditampilkan ke LCD arah angin manakah yang terdeteksi. 5. Alat penunjuk arah angin menggunakan aplikasi mikrokontroler AT89S51 dengan tampilan LCD dalam pengujian memberikan performasi yang cukup bagus, stabil dan handal, karena dapat difungsikan secara otomatis.
DAFTAR PUSTAKA Budiharto, Widodo, 2005, Perancangan Sistem Aplikasi Mikrokontroler, PT Elek Media Komputindo, Jakarta. Eko Putro, Afgianto, 2003, “Mikrokontroler”, GAVA MEDIA, Yogyakarta. Hartono, 2006., Modul Mata Kuliah Perancangan Rangkaian Analog 3 “Operational Amplifier (Op-Amp)”. Malvino, Barmawi, 1991, ”Prinsip-Prinsip Elektronika”, PT Erlangga, Jakarta. Priyanto, Anton, 2004, Kendali Wireless Berbasis Mikrokontroler AT89C51, laporan Kerja Praktek Nyata II, Institut Sains & Teknologi Akprind Yogyakarta. Wasito S. 1985, Data Sheet Book 1, Data IC Linier, TTL, dan CMOS, PT Elek Media Komputindo, Jakarta. http://www.atmel.com http://www.delta-electronic.com
124