LAPORAN KERJA PRAKTEK I
PENGHITUNG WAKTU DENGAN TAMPILAN LCD M1632 BERBASIS MIKROKONTROLER MCS 51
Disusun Oleh
NURSYAMSU ABUBAKAR (033 21 0002) DEWAN SANTOSO (033 21 0065)
JURUSAN ELEKTRO FAKULTAS TEKNIK
UNIVERSITAS MUSLIM INDONESIA
MAKASSAR
LEMBAR PENGESAHAN
Laporan Kerja Praktek I ini merupakan salah satu persyaratan dalam rangka penyelesaian studi pada Jurusan Elektro Fakultas Teknik Universitas Muslim Indonesia.
Nomor : 413 / B 3 / FTE-UMI / IX / 2003
Sub Bidang : Perancangan Aplikasi Mikrokontroler.
Lokasi Praktek : Laboratorium Teknik Telekomunikasi dan Digital Universitas Muslim Indonesia.
Disusun Oleh :
NURSYAMSU ABUBAKAR (033 21 0002)
DEWAN SANTOSO (033 21 0065)
Makassar, September 2003 Pembimbing Kerja Praktek
Ir. Muhammad Nawir, MT
Kepala Lab. TTD
Ir. Amir Ali, MT
JURUSAN ELEKTRO FAKULTAS TEKNIK
UNIVERSITAS MUSLIM INDONESIA
MAKASSAR
SURAT KETERANGAN
NO : 620 / A.6 / FTE-UMI / I / 2005 Yang bertanda tangan di bawah ini menerangkan bahwa :Nama : Ir. Amir Ali, MT.
Jabatan : Kepala Laboratorium Teknik Telekomunikasi dan Digital Menerangkan dengan sebenar-benarnya bahwa mahasiswa :
Nama/Stambuk :
NURSYAMSU ABUBAKAR (033 21 0002)
DEWAN SANTOSO (033 21 0065)
Telah melaksanakan Kerja Praktek I mulai 15 September 2003 sampai
dengan 29 September 2003 pada Laboratorium Teknik Telekomunikasi dan Digital Universitas Muslim Indonesia mengenai :
“PENGHITUNG WAKTU DENGAN TAMPILAN LCD M1632 BERBASIS
MIKROKONTROLER MCS 51”
Demikian surat keterangan ini kami buat untuk diketahui dan digunakan semestinya.
Makassar, ... ... 2004 Kepala Lab. TTD
Ir. Amir Ali, MT.
LABORATORIUM TEKNIK TELEKOMUNIKASI DAN DIGITAL
JURUSAN ELEKTRO FAKULTAS TEKNIK
MAKASSAR
SURAT KETERANGAN NILAI
NO. ... / A.6 / FTE-UMI / II / 2005 Yang bertanda tangan di bawah ini menerangkan bahwa :
Nama : DEWAN SANTOSO Stambuk : 033 21 0065
Laporan Kerja Praktek ini telah diperiksa dan disetujui oleh Dosen Pembimbing pada sub program :
TEKNIK TELEKOMUNIKASI
Dan telah menyelesaikan Tugas Kerja pada :
LABORATORIUM TEKNIK TELEKOMUNIKASI DAN DIGITAL (TTD) DAN
LISTRIK DASAR DASAR DAN ELEKTRONIKA (LDE)
Sebagai syarat kelulusan dari Mata Kuliah Kerja Praktek I (Satu) dan nilai yang diperoleh :
A B C D E
Demikian keterangan ini diberikan kepadanya untuk digunakan seperlunya.
Makassar, ... Februari 2005
Diketahui Oleh, Ketua Jurusan Elektro
(Ir. Muhammad Nawir, MT.)
Dosen Pembimbing Kerja Praktek
(Ir. Amir Ali, MT.)
YAYASAN BADAN WAKAF UMI
UNIVERSITAS MUSLIM INDONESIA FAKULTAS TEKNIK JURUSAN ELEKTROKATA PENGANTAR
Assalamu Alaikum wr. Wb.
Puji syukur kita panjatkan kehadirat Allah SWT yang mana atas rahmat dan hidayah-Nyalah sehingga penyusun dapat menyelesaikan Kerja Praktek I (KP I) yang berjudul “PENGHITUNG WAKTU DENGAN TAMPILAN LCD M1632 BERBASIS MIKROKONTROLER MCS 51” dan merupakan salah satu syarat untuk mendapatkan gelar kesarjanaan pada Jurusan Elektro Fakultas Teknik Universitas Muslim Indonesia.
Dalam penyusunan Laporan kerja Praktek I ini, penyusun telah berusaha semaksimal mungkin agar tulisan ini dapat mencapai taraf kesempurnaan, namun sebagai hamba Allah SWT yang tak luput dari kekurangan, kekhilafan dan kesalahan maka segala bentuk apapun yang terbaik selalu penyusun harapkan agar penyusunan Laporan kerja Praktek I pada kesempatan yang lain dapat lebih disempurnakan.
Penyusun menyadari bahwa dalam penyusunan Laporan Kerja Praktaek I ini masih banyak terdapat kekurangan-kekurangan, oleh sebab itu segala kritik dan saran yang sifatnya membangun demi kesempurnaan dalam penulisan Laporan Kerja Praktek I ini penyusun terima dengan senang hati. Semoga Allah SWT senantiasa meridhoi dan menyertai setiap langkah kita. Amin.
Wassalam.
DAFTAR ISI
Halaman
HALAMAN JUDUL ... i
LEMBAR PENGESAHAN ... ii
SURAT KETERANGAN ... iii
SURAT KETERANGAN NILAI ... iv
KATA PENGANTAR ... v
DAFTAR ISI ... vi
DAFTAR GAMBAR ... vii
DAFTAR TABEL ... viii
BAB I PENDAHULUAN ... 1
1.1. Latar Belakang Masalah ... 1
1.2. Perumusan Masalah... 2
1.3. Tujuan Kegiatan ... 3
1.4. Batasan Masalah ... 3
1.5. Nama Kegiatan ... 4
1.6. Sistematika Penulisan ... 4
BAB II TINJAUAN PUSTAKA ... 6
2.2 Penghitung Waktu dengan Tampilan LCD M1632 ... 11
2.3.1. Program Memori LCD M 1632 ... 17
2.3.2 Pin Out ... 20
2.3.3 Register ... 21
2.3.3.1 Register Perintah ... 21
§ Penulisan Data ke Register Perintah ... 21
§ Pembacaan Data dari Register Perintah ... 23
2.3.3.2 Register Data ... 23
• Penulisan Data ke Register Data ... 24
• Pembacaan Data dari Register Data ... 24
BAB III PERMASALAHAN... 26
BAB IV PEMECAHAN MASALAH... 28
4.1 Diagram Blok rangkaian ... 28
4.2 Perancangan Program Penghitung Waktu (Stop Watch)... 29
4.3. Program ... 29
BAB V PENUTUP ... 35
5.1. Kesimpulan ... 35
5.2 Saran – saran ... 35
DAFTAR GAMBAR
Nomor Teks Halaman
1. Blok Diagram Inti 8051 ... 6
2. Blok Diagram Penghitung Waktu dengan DST-51 ... 11
3. Saklar Start/Stop dan Reset ... 12
4. Blok Diagram Sistem Penghitung Waktu yang diatur dengan Sensor ... 13
5. Antar Muka M1632 LCD ... 13
6. Diagram Alir Program Utama ... 14
7. Diagram alir interupsi timer 0 ... 15
8. Diagram Alir Layanan Interupsi Eksternal 1 ... 16
9. DDRAM M1632 (diambil dari data sheet HD44780) ... 17
10. Hubungan antara CGROM dan DDRAM (diambil dari data sheet HD44780) ... 19
11. Pin Out M1632 LCD Hitachi ... 20
12. Timing diagram Penulisan Data ke Register Perintah Mode 4 bitInterface ... 22
13. Timing Diagram Pembacaan Register Perintah Mode 4 bitInterface. ... 23
14. Timing Diagram Penulisan Data ke Register Data Mode 4 bitInterface. ... 24
15. Timing Diagram Pembacaan Data dari Register Data Mode 4 bit Interface Antar Muka LCD dengan Mikrokontroler ... 25
16. Antar Muka dengan Modul DST-51 ... 25
17. Antar Muka dengan Modul SC-51 atau AT8951. ... 25
DAFTAR TABEL
Nomor Teks Halaman
BAB I PENDAHULUAN
1.1. Latar Belakang Masalah
Seiring dengan perkembangan ilmu pengetahuan dan teknologi
khususya dalam bidang elektronika telah membawa perubahan besar dalam tatanan kehidupan manusia.
Salah satu bidang yang berkembang pesat dalam bidang elektronika
adalah teknik pengontrolan. Proses pengontrolan ini dapat dilakukan dengan berbagai macam cara seperti menggunakan potensiometer, relay dan lain sebagainya. Namun pengontrolan seperti yang disebutkan diatas memiliki tingkat keefektifan yang terbatas serta kurang efisien. Teknik pengontrolan
memiliki tingkat kerumitan yang berbeda beda baik itu yang sifatnya sedarhana sampai pada tingkat yang kompleks.
Mencermati persoalan tersebut di atas, di sinilah peranan
mikrokontroler diperlukan dan dapat dijadikan sebagai komponen utama dalam suatu pengendali atau pengontrol. Dimana mikrokontroler ini diintegresikan ke sistem – sistem lain yang memiliki unjuk kerja yang lebih tinggi dan dapat dikembangkan sebagai sistem otomatis dan pertimbangan
lain adalah dengan meluasnya pemakaian sistem mikrokentroler.
CPU, ROM, RAM, dan I/O. Dengan adanya CPU tersebut maka
Mikrokontroler dapat melakukan proses ‘berfikir’ berdasarkan program yang telah diberikan kepadanya. Mikrokontroler banyak ditemukan diperalatan elektronik digunakan sebagai pusat pengontrol peralatan – peralatan
elektronik tersebut.
Karena itulah mikrokontroler sangat populer digunakan sebagai alat kontrol atau pengendali yang tentu aja membutuhkan alat – alat tambahan yang disesuaikan dengan batasan – batasan aplikasi yang akan dikontrol
atau dikendalikan, ada beberapa hal yang merupakan bagian kecil dari aplikasi Mikrokontroler yaitu pengontrol penghitung waktu dengan tampilan LCD M 1632.
Manfaat alat yang dihasilkan dari rancang bangun ini dapat dipergunakan untuk keperluan sehari-hari, misalnya untuk arloji atau jam digital danstop watch (penghitung waktu).
1.2. Perumusan Masalah
Kerja Praktek (KP) yang kami lakukan ini mengenai Pengontrolan Penghitung Waktu dengan Tampilan LCD M 1632 Berbasis Mikrokontroler
MCS 51. Namun untuk lebih lanjutnya pengontrolan khususnya pengontrolan peralatan dengan menggunakan mikrokontroler masih terus dilakukan.
1.3. Tujuan Kegiatan
Kerja Praktek (KP) yang kami laksanakan pada Laboratorium Teknik Digital dan Laboratorium Dasar Elektronika merupakan syarat untuk menyelesaikan Program Study Strata Satu (S1) pada Sub Jurusan
Telekomunikasi dan Elektronika Jurusan Elektro Fakultas Teknik Universitas Muslim Indonesia (UMI) Makassar.
Adapun tujuan dilaksanakannya Kerja Praktek (KP) ini adalah :
1. Membuat suatu alat pengontrol penghitung waktu (stop watch) dengan
tampilan LCD M 1632 berbasis mikrokontroler.
2. Mengaplikasikan program pengontrolan yang ada dalam Mikrokontroler pada penampil LCD.
1.4. Batasan Masalah
Luasnya ruang lingkup mengenai Mikrokontroler baik dari segi
Hardware maupun dari segi Softwarenya, maka perlu kami batasi ruang lingkup masalah sesuai dengan keperluan, mengingat keterbatasan waktu dan instrumen pendukung serta kemampuan penyusun. Adapun masalah yang kami bahas adalah mengenai :
1. Penampil yang digunakan adalah LCD M 1632.
2. Pengontrolan penghitung waktu (stop watch) menggunkan kabel data dan menggunakan 2 buah saklar untuk tombol start/stop dan untuk tombol
1.5. Nama Kegiatan
Kegiatan yang dilaksanakan ini adalah Kerja Praktek 1. Peserta Kerja Praktek 1 ini adalah mahasiswa Sub Program Teknik Telekomunikasi dan Elektronika (TTE) Jurusan Elektor Fakultas Teknik Universitas Muslim
Indonesia.
1.6. Sistematika Penulisan
Untuk memberikan gambaran tenteng pokok–pokok bahasan pada
setiap bab, maka secara garis besar sistematika penulisan tugas akhir ini adalah sebagai berikut :
Bab I Pendahuluan.
Pada bab ini dikemukakan latar belakang masalah, Perumusan masalah, Tujuan penulisan, Batasan masalah, Nama kegiatan dan
Sistimatika penulisan. Bab II Teori Dasar
Pada bab ini berisi tentang teori – teori dasar tiap blok rangkaian alat pengontrolan penghitung waktu dengan tampilan LCD M1632
berbasis mikrokontroler MCS 51. Bab III Permasalahan
Bab IV Pemecahan Masalah
Pada bab ini menjelaskan tentang diagram blok rangkaian penghitung waktu dengan tampilan LCD M1632 berbasis mikrokontroler, program dan perancangan program untuk penghitung waktu (Stop Watch)
dengan tampilan LCD M1632. Bab V Penutup
BAB II
TINJAUAN PUSTAKA
2.1. Gambaran Umum MCS-51
Mikrokontroler 8051 adalah anggota dari keluarga MCS-51 yang memiliki fasilitas antara lain:
• CPU dengan kapasitas 8-bit
• Boolean processing (operasi Boolean) dalam bit (single bit logic)
• On-Chip 4 Kbyte Program Memori
• Program memori dapat diperbesar hingga 64 Kbyte
• On-Chip 128 byte Data Memori
• Data Memori dapat diperbesar hingga 64 Kbyte
• 4 buah port masing-masing 8 bit
• Dua buah Timer/ Counter 16 bit
• UART full duplex
• 5 interupsi vektor dengan 2 tingkatan prioritas
Arsitektural MCS-51 adalah sbb:
2.2 Mikroprosessor MCS 51
Mikroprosessor ideal mempunyai A saluran masikan dan B saluran keluaran. Mikroprosessor adalah suatu alat pemroses digital dan hanya mempunyai dua level tegangan yang dapat dipasang pada saluran masukan,
demikian pula pada saluan keluarannya. Kedua level tegangan tersebut adalah logikalow dan logikahigh.
Sinyal pada sluran masukan adalah data masukan mikroprosessor.
Data tersebut berasal dariswitch-switch, sensor-sensor, pengubah analog ke digital dan lain-lain.
• Bus Data.
Jumlah saluran masuk (bus data) didefinisikan sebagai lebar
jejak data (word size) dari suatu mikroprosessor yang juga menentukan lebar jejak data. Saluran yang dipergunakan untuk menyalurkan data dari dan ke mikroprosessor secara kolektif disebut
bus data.
• Bus Alamat.
Untuk mikroprosessor ideal, data keluaran merupakan fungsi
dari seluruh kegiatan dan masukan. Sifat dari fungsi ini ditentukan oleh program mikroprosessor.
Setiap lokasi memori mempunyai suatu alamat memori tertentu. Alamat ini biasanya ditentukan dengan notasi biner atau hexadesimal.
dahulu memilih alamat memori yang dikehendaki. Bus alamat adalah bus
untuk menentukan alamt RAM atauPort I/O yang dipergunakan.
• Bus Pengendali
Di samping bus data dan bus alamat, mikroprosessor juga harus mempunyai sepernagkat bus pengendali masukan dan pengendali keluaran yang dapat dipergunakan untuk menyerempakka
operasi mikroprosessor dengan opersi rangkaian luar. Saluran-saluran pengendali ini secara kolektif merupakan bus pengendali mikroprosessor.
Bus-bus kendali yang dipergunakan pada mikroprosessor terdiri dari bus kendali eksternal seperti DMA (Direct Memori Access), RD
(Receive Data), WR, ALE, INTR dan lain-lain. Operasi pengendali ini ditentukan oleh mikroprogram dalam sebuah ROM.
• Memory MCS 51
Memori dari sebuah komputer merupakan tempat untuk menyimpan program da data sebelum operasi peritungan dimulai. Selama komputer bekerja, bagian kendali dapat menyimpan sebagian
dari jawaban-jawaban di dalam memori. Karena itu memori mrupakan bagian yang paling aktif dalam sebuah komputer, peranannya tidak hanya terbatas pada penyimpanan progaram dan data saja melainkan
Semuasistem komputer memerlukan meori supaya dapat
berfungsi.untuk mikrokontroler, memori yang diperlukan berada dalam serpihan mikrokontroler itu sendiri dan dapat ditambahkan memori eksternal.
Memori mikrokontroler terbagi kedalam bagian besar yaitu : 1. Memori Volatile (mudah menguap) artinya data/ informasi akan
hilang jika catu daya terputus walaupun sesaat. Contoh memori
volatile yaitu RAM (Random Acces Memory).
2. Memori non Volatile (tidah mudah menguap) artinya data/informasi akan tetap tesimpan secara permanen walaupun catu dayanya hilang. Contoh memori non Volatile adalah ROM (Read Only
Memory) atau memori yang hanya dapat dibaca saja. Ada beberapa jenis memorinon Volatile yaitu :
PROM (Programmable ROM) adalah memori yang dapat diprogram oleh user (pemakai) tetapi hanya sekali saja. User
dapat memasukkan program dan data melalui proses pembakaran (sambungan-sambungan) pada bit-bit tertentu sampai putus dengan menggunakandengan arus besar dan
program ini akan bersifat permanen.
UV EPROM (Ultraviolet Erasable PROM) adalah memori yang dapat diprogram dan dihapus oleh user. EROM ini
disimpan dengan menggunakan EPROM Programmer.
Selanjutnya dapat dihapus dengan sinar Ultra Violet. Sinar ini dilewatkan melalui jendela serpih. Dengan kata lain terjadi pembebasan muatan pada MOSFET dan dapat diprogram
kembali secara listrik.
EEPROM (Electrically Erasable PROM) adalah memori yang dapat dihapus tapi cara penghapusannya secara listrik dan dapat diprogram kembali secara listrik pula.
Flash PEROM (Flash Programmable Erasable ROM) adalah memori yang memiliki densitas (kerapatan) yang tinggi dan kelebihannya adalah mampu menghapus hanya pada byte-byte
tertentu atau penghapusan sekaligus. Hal ini tidak dapat dilakukan oleh EEPROM dan EPROM standar.
• Osilator Kristal
Beberapa kristal memiliki efek piezoelektrik, jika tegangan AC terpasang pada kristal akan bervibrasi pada frekuensi AC yang dipasang. Bahan utama yang menimbulkan efek vibrasi ini adalah
quartz,garam Rochele, dantourmaline.
Ciri-ciri yang terkenal dari kristal dibandikan dengan rangkaian
tanki IC yang diskrit adalah nilai faktor kualitasnya (Q) yang sangat
terhadap waktu, drift ini timbul oleh temperatur, usia dan sebab
lain-lain. Dalam sebuah osilator kristal dirft frekuensi dengan waktu kacil sekali, secara tipikal kurang dari seperjuta bagian (0,0001 persen) per hari.
2.3. Penghitung Waktu dengan Tampilan LCD M1632
Penghitung waktu yang dimulai dengan menekan tombolstart danstop
atau lebih dikenal dengan stop watch sudah banyak terdapat pada arloji-arloji
digital memang sudah banyak terdapat di pasaran. Namun dalam aplikasinya, sebuah sistem elektronik seringkali membutuhkan bagian penghitung waktu yang terintegrasi dengan sistem tersebut. Untuk itu dalam laporan ini akan
dibahas bagaimana kita merancang sebuah penghitung waktu dengan menggunakan Mikrokontroler MCS 51 sehingga penghitung waktu ini dapat diintegrasikan dengan perangkat elektronik lain.
MODUL DST-51
Gambar 2.2 Blok Diagram Penghitung Waktu dengan DST-51
Bila pada stop watch, proses penghitungan waktu dilakukan dengan menekan saklar start/stop dan reset pada arloji, maka pada aplikasi berikut proses penghitungan waktu juga dilakukan dengan menekan saklarstart/stop
saklar start/stop terhubung dengan P3.2/INT0 dan reset terhubung dengan
P3.3/INT1. Saat saklar S1 tidak ditekan, maka kondisi logika P3.2 adalah 1. Hal ini disebabkan karena adanya aliran arus dari resistor pull up internal yang ada pada I/O AT8951. Kondisi logika 1 akan dideteksi oleh
Mikrokontroler MCS 51 sebagai indikasi bahwa proses perhitungan waktu belum dimulai. Kondisi logika 0 sebagai indikasi bahwa proses perhitungan waktu dimulai terjadi saat S1 ditekan sehingga P3.2/INT0 terhubung dengan ground.
Demikian pula pada saklar S2 yang terhubung pada P3.3, kondisi logika 0 sebagai indikasi reset perhitungan waktu terjadi saat saklar tersebut ditekan dan P3.3 terhubung ke ground.
P3.2/INT0
Gambar 2.3 Saklar Start/Stop dan Reset
Dengan adanya proses pengendalian waktu melalui pemberian logika 0 dan 1 pada Mikrokontroler MCS 51 ini, maka proses pengendalian tersebut
tidak hanya dapat dilakukan dengan menggunakan saklar start/stop maupun
sensor di mana kedua sensor tersebut diatur agar dapat menghasilkan
keluaran berupa kondisi logika 0 dan 1 seperti halnya pada saklar.
Modul DST-51
Gambar 2.4 Blok Diagram Sistem Penghitung Waktu yang diatur dengan Sensor
VCC
Gambar 2.5 Antar Muka M1632 LCD
Gambar 2.4 menunjukkan bagian antar muka Modul LCD M1632
dengan Modul MCS 51 di mana proses antar muka dilakukan dengan mode antar muka 4 bit. Potensio 10K yang terhubung pada kaki nomor 3 LCD yang berfungsi sebagai pengatur kontras dari layar LCD.
Pada bagian perangkat lunak, secara garis besar terdiri dari 3 bagian yaitu program utama dan program layanan interupsi timer 0 dan program layanan interupsi eksternal 1. Program utama (gambar 2.6) berfungsi untuk
berada pada logika 0 (StartStop=0) maka timer 0 maupun interupsi eksternal
1 diaktifkan. Proses perhitungan waktu bekerja hingga kondisi P3.2/INT0 diubah menjadi logika 1. Pada kondisi tersebut, proses perhitungan waktu dihentikan sehingga LCD akan menampilkan hasil akhir dari perhitungan
waktu tersebut dan program akan menunggu adanya kondisi logika 0 berikutnya di mana proses perhitungan waktu akan dilanjutkan kembali.
Gambar 2.6 Diagram Alir Program Utama
Bagian layanan interupsi timer 0 adalah bagian yang melakukan penambahan dari nilaitimer. Interupsitimer 0 diatur agar terjadi setiap 10 mS dan setiap kali interupsi timer 0 terjadi, maka nilai dari variabel-variabel yang
START
Inisial LCD Reset Nilai Timer
StartStop = 0? Tidak
Start Timer 0 Aktifkan Interupsi Eksternal 1
Delay
StartStop = 1? Tidak
Stop Timer 0
menyimpan data timer akan selalu bertambah dan program akan keluar dari
layanan interupsi ini dan kembali ke program utama. Pada saat timer mencapai perhitungan 24 jam, maka program akan mereset nilai timer
sehingga proses perhitungan dimulai dari 0 kembali.
Gambar 2.7 Diagram alir interupsi timer 0
Bagian berikutnya adalah layanan interupsi eksternal 1, di mana
bagian ini berfungsi untuk mereset nilai dari variabel-variabel timer serta menampilkan nilai 0 pada perhitungan waktu di layar LCD. Proses yang dilakukan pada bagian ini (gambar 2.8) diawali dengan mengatur posisi LCD
pada posisi awal dan dilanjutkan dengan memberikan nilai 0 pada variabel-variabeltimer.
Setelah nilai pada variabel-variabel timer berubah menjadi nol, maka
isi dari variabel tersebut ditampilkan pada layar LCD oleh bagian Tampilkan Nilai Timer. Selanjutnya program akan menunggu kondisi logika INT1
Tambah waktu
24 jam?
Reset nilai timer
Keluar dari interupsi
Tidak
START
menjadi logika 1. Hal ini dilakukan agar program tetap berada pada layanan
interupsi eksternal 1 selama saklar reset yang terhubung pada INT1 masih ditekan. Saat saklar reset dilepas dan kondisi INT1 menjadi logika 1, maka program akan keluar dari layanan interupsi ini dan kembali ke program
utama.
Gambar 2.8 Diagram Alir Layanan Interupsi Eksternal 1
2.4. LCD M 1632
M1632 adalah merupakan modul LCD dengan tampilan 16 x 2 baris dengan konsumsi daya yang rendah. Modul ini dilengkapi dengan mikrokontroler yang didesain khusus untuk mengendalikan LCD.
Mikrokontroler HD44780 buatan Hitachi yang berfungsi sebagai pengendali LCD ini mempunyai CGROM (Character Generator Read Only Memory),
START
LCD ke posisi awal
Reset nilai timer
Tampilkan nilai timer
Tunggu INT1 = 1
Kembali dari interupsi eksternal 1
CGRAM (Character Generator Random Access Memory) dan DDRAM
(Display Data Random Access Memory).
2.4.1. PROGRAM MEMORI LCD M 6132
• DDRAM
DDRAM adalah merupakan memori tempat karakter yang ditampilkan berada. Contoh, untuk karakter ‘A’ atau 41H yang ditulis pada alamat 00, maka karakter tersebut akan tampil pada baris pertama dan
kolom pertama dari LCD. Apabila karakter tersebut ditulis di alamat 40, maka karakter tersebut akan tampil pada baris kedua kolom pertama dari LCD.
Gambar 2.9 DDRAM M1632 (diambil dari data sheet HD44780)
• CGRAM
CGRAM adalah merupakan memori untuk menggambarkan pola
keinginan. Namun memori ini akan hilang saat power supply tidak aktif,
sehingga pola karakter akan hilang.
• CGROM
CGROM adalah merupakan memori untuk menggambarkan pola
sebuah karakter di mana pola tersebut sudah ditentukan secara permanen dari HD44780 sehingga pengguna tidak dapat mengubah lagi. Namun karena ROM bersifat permanen, maka pola karakter tersebut tidak
akan hilang walaupun power supply tidak aktif. Pada gambar 2.10, tampak terlihat pola-pola karakter yang tersimpan dalam lokasi-lokasi tertentu dalam CGROM. Pada saat HD44780 akan menampilkan data 41H yang
2.4.2. PIN OUT
Untuk lebih jelasnya pin-pin pada LCD dapat dilihat pada tabel 2.1 berikut :
Tabel 2.1 Pin pada M1632No N ama Pin Deskripsi
No Nama Pin Deskripsi
1 VCC Tegangan + 5 Volt
2 GND Tegangan 0 Volt
3 VEE Tegangan Kontras LCD
4 RS Rgister Select, 0 = Register Perintah,1 = Register Data
5 R/W 1 = Read, 0 = Write
6 E Enable Clock LCD, logika 1 setiap kali
pengiriman atau pembacaan data
7 D0 Data Bus 0
15 Anoda (Kabel coklat untuk LCD Hitaci) Tegangan Positif backlight 16 Katoda (Kabel merah untuk LCD Hitaci) Tegangan Negatif backlight
2.4.3. REGISTER
HD44780, mempunyai dua buah Register yang aksesnya diatur dengan menggunakan kaki RS. Pada saat RS berlogika 0, maka register yang diakses adalah Register Perintah dan pada saat RS berlogika 1, maka
register yang diakses adalah Register Data.
2.4.3.1 Register Perintah
Register ini adalah register di mana perintah-perintah dari
mikrokontroler ke HD44780 pada saat proses penulisan data atau tempat status dari HD44780 dapat dibaca pada saat pembacaan data.
§ Penulisan Data ke Register Perintah
Penulisan data ke Register Perintah dilakukan dengan tujuan mengatur tampilan LCD, inisialisasi dan mengatur Address Counter
maupun Address Data. Gambar 3.5 menunjukkan proses penulisan data ke register perintah dengan menggunakan mode 4 bit interface.
Kondisi RS berlogika 0 menunjukkan akses data ke Register Perintah. RW berlogika 0 yang menunjukkan proses penulisan data akan dilakukan. Nibble tinggi (bit 7 sampai bit 4) terlebih dahulu dikirimkan
dilakukan secara 8 bit (bit 7 … bit 0) dan diawali sebuah pulsa logika 1
pada EClock.
Gambar 2.12 Timing diagram Penulisan Data ke Register Perintah Mode 4 bit Interface
M 1632 mempunyai beberapa perintah untuk tampilannya. Perintah-perintah tersebut dapat dilihat pada tabel 2.2 berikut :
Tabel 2.2 Perintah-perintah M1632
X = diabaikan
I/D 1 = Increment, 0 = Decrement
S0 = Display tidak geser
S/C 1 = DisplayShift, 0 = GeserCursor
R/L 1 = Geser Kiri, 0 = Geser Kanan DL 1 = 8 bit, 0 = 4bit
N 1 = 2 baris, 0 = 1 baris F 1 = 5x10, 0 = 5x8
D0 = Display OFF, 1 = Display ON
C0 = Cursor OFF, 1 = Cursor ON
B0 = Blinking OFF, 1 = Blinking ON
ay
ubah
yang
§ Pembacaan Data dari Register Perintah
Proses pembacaan data pada register perintah biasa digunakan untuk melihat status busy dari LCD atau membaca Address Counter. RS diatur pada logika 0 untuk akses ke Register Perintah, R/W diatur
pada logika 1 yang menunjukkan proses pembacaan data. 4 bit nibble
tinggi dibaca dengan diawali pulsa logika 1 pada E Clock dan kemudian 4 bit nibble rendah dibaca dengan diawali pulsa logika 1 pada E Clock. Untuk Mode 8 bit interface, pembacaan 8 bit (nibble tinggi dan rendah)
dilakukan sekaligus dengan diawali sebuah pulsa logika 1 pada E Clock.
Gambar 2.13Timing Diagram Pembacaan Register Perintah Mode 4 bitInterface.
2.4.3.2 Register Data
akan menempatkan data tersebut ke DDRAM sesuai dengan alamat yang
telah diatur sebelumnya.
Penulisan Data ke Register Data
Penulisan data pada Register Data dilakukan untuk mengirimkan
data yang akan ditampilkan pada LCD. Proses diawali dengan adanya logika 1 pada RS yang menunjukkan akses ke Register Data, kondisi R/W diatur pada logika 0 yang menunjukkan proses penulisan data.
Data 4 bit nibble tinggi (bit 7 hingga bit 4) dikirim dengan diawali pulsa logika 1 pada sinyal E Clock dan kemudian diikuti 4 bit nibble rendah (bit 3 hingga bit 0) yang juga diawali pulsa logika 1 pada sinyal E Clock.
Gambar 2.14Timing Diagram Penulisan Data ke Register Data Mode 4 bitInterface.
Pembacaan Data dari Register Data
Pembacaan data dari Register Data dilakukan untuk membaca
mengatur RS pada logika 1 yang menunjukkan adanya akses ke
Register Data. Kondisi R/W diatur pada logika tinggi yang menunjukkan adanya proses pembacaan data. Data 4 bitnibble tinggi (bit 7 hingga bit 4) dibaca dengan diawali adanya pulsa logika 1 pada E Clock dan
dilanjutkan dengan data 4 bit nibble rendah (bit 3 hingga bit 0) yang juga diawali dengan pulsa logika 1 pada E Clock.
Gambar 2.15Timing Diagram Pembacaan Data dari Register Data Mode 4 bit
Interface Antar Muka LCD dengan Mikrokontroler.
Gambar 2.16 Antar Muka dengan Modul DST-51.
Gambar 2.17 Antar Muka dengan Modul SC-51 atau AT8951. Modul M 1632
LCD
BAB III
P E R M A S A L A H A N
Perkembangan teknologi elektronika telah mengarah kepada teknologi mikrokontroler, yaitu sebuah komponen elektronik yang dapat bekerja sesuai
dengan program yang diisikan ke dalam memorinya seperti layaknya sebuah komputer yang sangat sederhana. Dalam sistem mikrokontroler seringkali terjadi komunikasi antara sistem yang satu dengan sistem yang lain,
contohnya antara mikrokontroler dengan PC atau sistem mikrokontroler dengan sistem mikrokontroler yang lain, bahkan untuk aplikasi yang lebih luas yaitu antara sistem mikrokontroler dengan LAN (Local Area Network).
Sistem mikrokontroler dalam aplikasinya dapat juga terdiri dari single
chip namun untuk aplikasi tertentu seringkali tidak berdiri sendiri, melainkan dapat terhubung dengan antar muka - antar muka lain seperti ADC, DAC, LCD,Keypad dan lain- lain.
Namun yang terpenting dalam membuat suatu aplikasi yang berbasis mikrokontroler teknik merancang program, yang sering seorang pembuat program menganggap sebuah program sudah selesai jika program tersebut telah berjalan dengan baik. Namun seringkali program yang dirancang, perlu
Berdasarkan permasalahan di atas Lab. Teknik Digital & Lab. Dasar
Elektronika Fakultas Teknik Jurusan Elektro Universitas Muslim Indonesia mencoba untuk mengadakan pelatihan dan kerja praktek kepada para mahasiswa yang berkeinginan mengembangkan dirinya dalam upaya untuk
BAB IV
PEMECAHAN MASALAH
4.1. Diagram Blok Rangkaian
Secara umum diagram blok sistem pengontrolan penghitung waktu
dengan tampilan LCD M 1632 berbasis mikrokontroler MCS 51 dapat dilihat pada gambar di bawah ini :
Gambar 4.1. Digram Blok rangkaian Penghitung Waktu dengan Tampilan LCD M1632 Berbasis mikrokontroler MCS 51.
Bila pada stop watch, proses penghitungan waktu dilakukan dengan
menekan saklar start/stop dan reset pada arloji, maka pada aplikasi berikut proses penghitungan waktu juga dilakukan dengan menekan saklar
start/stop maupun reset yang terhubung pada DST-51. Pada gambar tampak saklarstart/stop terhubung dengan P3.2/INT0 dan reset terhubung dengan P3.3/INT1. Saat saklar S1 tidak ditekan, maka kondisi logika P3.2 adalah 1. Hal ini disebabkan karena adanya aliran arus dari resistor pull up
Modul DST-51 sebagai indikasi bahwa proses perhitungan waktu belum
dimulai. Kondisi logika 0 sebagai indikasi bahwa proses perhitungan waktu dimulai terjadi saat S1 ditekan sehingga P3.2/INT0 terhubung dengan ground.
4.2. Perancangan Program Penghitung Waktu (Stop Watch).
Pada bagian perangkat lunak, secara garis besar terdiri dari 3 bagian yaitu program utama dan program layanan interupsi timer 0 dan program
layanan interupsi eksternal 1. Program utama berfungsi untuk mengaktifkan dan non aktifkan timer di mana hal ini dilakukan dengan mendeteksi kondisi logika dari P3.2/INT0. Saat kondisi logika P3.2/INT0 berada pada logika 0 (Start/Stop=0) maka timer 0 maupun interupsi eksternal 1 diaktifkan. Proses
perhitungan waktu bekerja hingga kondisi P3.2/INT0 diubah menjadi logika 1. Pada kondisi tersebut, proses perhitungan waktu dihentikan sehingga LCD akan menampilkan hasil akhir dari perhitungan waktu tersebut dan program
akan menunggu adanya kondisi logika 0 berikutnya di mana proses perhitungan waktu akan dilanjutkan kembali.
4.3. Program
Rutin-rutin Program untuk Modul MCS-51 yang diassembly dengan
• Program Utama:
;*********
; PROGRAM UTAMA STOP WATCH ;*********
.Data
Org 50H ;Tentukan alamat awal variabel
.Code
PosisiAwal_LCD EQU 0216H
Init_LCD EQU 0237H
Kirim_Karakter EQU 0295H
StartStop Bit P3.2 ;Switch Start Stop berada di P3.2/INT0
Ajmp Timer0_Interrupt
Org ROM+13H ;External Interrupt 1 Vector
Acall ResetNilaiTimer ;Isi nilai timer
Loop:
Jb StartStop,$ ;Tunggu switch start/stop ditekan
Acall StartTimer0 ;Aktifkan timer
Setb EX1 ;
Acall Delay ;Delay anti bouncing
Jnb StartStop,$ ;Tunggu switch start/stop dilepas
;******************
; BAGIAN UNTUK MERESET NILAI TIMER DAN MENAMPILKAN 00:00:00 DI LCD ;******************
Intr1:
Clr EX1 ;Interupsi 1 dinonaktifkan
Acall ResetNilaiTimer ;Nilai timer direset
Lcall PosisiAwal_LCD ;Tampilkan 00:00:00 di LCD
Acall DisplayTimer ;
• Program Untuk Pewaktu (Timer Up)
;***********************
; RUTIN UNTUK MENGAKTIFKAN TIMER ;****************
StartTimer0:
Mov StackTimer,SP ;Simpan nilai Stack Pointer
;****************
; RUTIN ISI NILAI AWAL TIMER DENGAN KEYPAD DAN TAMPILKAN DI M1632 LCD
;****************
ResetNilaiTimer:
Mov NilaiTimer+3,#00
Mov NilaiTimer+2,#00
Mov NilaiTimer+1,#00
Mov NilaiTimer,#00
Ret ;
;********************** ; HARGA AWAL TIMER 0
; - Rutin memberi harga awal nilai timer 0 yang berfungsi sebagai pre scaler ; dari timer
; - Jumlah siklus x 12/Frekwensi crystal = 10 mS ; Jumlah siklus = 10 mS x Frekwensi crystal / 12
; RUTIN INTERUPSI TIMER 0 ; - Terjadi setiap 10 ms
; - Nilai Timer berkurang setiap 10 ms ;**********************
Timer0_Interrupt:
Acall ResetTimer0
Acall TambahWaktu
Setb ET0
Reti
;*******************
; RUTIN PENAMBAHAN WAKTU DENGAN FORMASI 24 HOURS ;*******************
TambahWaktu:
Mov R0,#NilaiTimer ;Mili detik + 1 Inc @R0 ;
Mov A,@R0 ;
Cjne A,#100,TidakReset ;
Inc R0 ;Detik + 1
; TAMPILKAN NILAI TIMER KE M1632 LCD ; - Nilai timer tersimpan dalam tabel desimal ; - Formasi tabel desimal adalah:
; mili detik, detik, menit, jam ;************************************* DisplayTimer:
Push ACC
Lcall PosisiAwal_LCD
Push 0H
Push 7H
Mov R0,#NilaiTimer+3
Mov R7,#3
LoopdisplayTimer:
Mov A,@R0
Acall Konversi1bdesimal
Mov A,TabelDesimal+1
Add A,#30H
Lcall Kirim_Karakter
Mov A,TabelDesimal
Add A,#30H
Lcall Kirim_Karakter
Dec R0
Djnz R7,TampilkanTerus
Pop 07H
Pop 0H
TampilkanTerus:
Mov A,#':'
Lcall Kirim_Karakter
Ajmp LoopDisplayTimer
• Program Untuk Mengkonversi Data Hexa ke Desimal
.data
TabelDesimal: Ds 3 .Code
Org $
;Subroutine Konversi Hexa 1 byte ke Desimal ;Bilangan yang dikonversi di Akumulator ;Jumlah digit yang dihasilkan disimpan di R6 ;Hasil tersimpan di Tabel Desimal
Konversi1BDesimal:
Push 00H
Push Acc
Push B
Mov R0,#TabelDesimal
Mov @R0,#00H
Ajmp LoopKonversi
BAB V P E N U T U P
5.1. Kesimpulan
Setelah kita membicarakan dan mengenal yang berhubungan
dengan mikrokontroler, diharapkan mahasiswa akan lebih membuka wahana dan pengetahuan kita dalam merencanakan perancangan aplikasi yang berbasis mikrokontroler. Untuk itu dapat kami simpulkan
bahwa :
1. Dalam perancangan sistem pada mikrokontroler penghitung waktu dengan tampilan LCD berbasis mikrokontroler dilakukan dengan menggabungkan beberapa program kecil.
2. Program yang dibuat sebaiknya dibagi dalam beberapa bagian agar mudah dalam penulisan.
3. Penulisan program haruslah terstruktur agar mudah dalam
penulusaran dan pengaplikasiannya terhadap alat yang dibuat.
5.2. Saran – saran
1. Sebaiknya mahasiswa yang memprogramkan mata kuliah kerja praktek terlebih dahulu mengetahui teori dasar yang berhubungan
DAFTAR PUSTAKA
1. http://www.alds.stts.edu/digital 2. http://www.ATMEL.COM
3. http://www.chaocun.kmilt.ac.th/~kswicit. 4. http//www.delta-electronic.com