PENGHITUNG WAKTU DENGAN TAMPILAN LCD M1632 BERBASIS MIKROKONTROLER MCS 51

  LAPORAN KERJA PRAKTEK I

PENGHITUNG WAKTU DENGAN TAMPILAN LCD M1632 BERBASIS

MIKROKONTROLER MCS 51

Disusun Oleh

NURSYAMSU ABUBAKAR (033 21 0002)

  

JURUSAN ELEKTRO FAKULTAS TEKNIK

UNIVERSITAS MUSLIM INDONESIA

MAKASSAR

2005

  

JURUSAN ELEKTRO FAKULTAS TEKNIK

UNIVERSITAS MUSLIM INDONESIA

MAKASSAR

Kampus II UMI. Jl. Urip Sumoharjo Km.5 Telp. (0411) 447562 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 Pembimbing

  

Ir. Amir Ali, MT Nur Abin, ST

  Mengetahui, Ketua Jurusan Elektro Kepala Lab. TTD

  Ir. Muhammad Nawir, MT Ir. Amir Ali, MT

LABORATORIUM TEKNIK TELEKOMUNIKASI DAN DIGITAL JURUSAN ELEKTRO FAKULTAS TEKNIK MAKASSAR

  Kampus II UMI. Jl. Urip Sumoharjo Km.5 Telp (0411) 447562

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.

YAYASAN BADAN WAKAF UMI UNIVERSITAS MUSLIM INDONESIA FAKULTAS TEKNIK JURUSAN ELEKTRO

  Kampus II UMI. Jl Urip Sumoharjo Km. 5 Telp (0411) 447562 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 Dosen Pembimbing Kerja Praktek

  (Ir. Muhammad Nawir, MT.) (Ir. Amir Ali, MT.)

  

KATA 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.

  Penyusun

  

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.1 Teori Dasar .........................................................................

  6 2.1.1 Gambaran Umum MCS-51 .............................................

  6 2.1.2 Mikroprosessor MCS 51 ................................................

  7 • Bus Data ..................................................................

  7 • Bus Alamat ..............................................................

  7 • Bus Pengendali .......................................................

  8 • Memory MCS 51 ......................................................

  8

  • Osilator Kristal ........................................................... 10 2.2 Penghitung Waktu dengan Tampilan LCD M1632 .............

  11 2.3. LCD M 1632........................................................................

  16

  2.3.1. Program Memori LCD M 1632 ........................................

  BAB IV PEMECAHAN MASALAH

  35 5.2 Saran – saran ....................................................................

  ............................................................................... 35 5.1. Kesimpulan .......................................................................

  BAB V PENUTUP

  4.3. Program ............................................................................. 29

  4.2 Perancangan Program Penghitung Waktu (Stop Watch)....................................................................... 29

  28

  ........................................................ 28 4.1 Diagram Blok rangkaian ....................................................

  24 BAB III PERMASALAHAN .................................................................... 26

  17 2.3.2 Pin Out ...........................................................................

  24 • Pembacaan Data dari Register Data .....................

  23 • Penulisan Data ke Register Data ...........................

  23 2.3.3.2 Register Data ...............................................................

  21 § Pembacaan Data dari Register Perintah ................

  21 § Penulisan Data ke Register Perintah .....................

  21 2.3.3.1 Register Perintah ........................................................

  20 2.3.3 Register ..........................................................................

  35 DAFTAR PUSTAKA

  

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 Timing diagram Penulisan Data ke Register Perintah 12. Mode 4 bit Interface ....................................................................... 22

  Timing Diagram Pembacaan Register Perintah 13.

  Mode 4 bit Interface. ...................................................................... 23

  14. Timing Diagram Penulisan Data ke Register Data Mode 4 bit Interface. ...................................................................... 24

  Timing Diagram Pembacaan Data dari Register Data Mode 4 bit 15. 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 18. Digram Blok rangkaian Penghitung Waktu dengan Tampilan LCD M1632 Berbasis mikrokontroler MCS 51. ..............

  28

  

DAFTAR TABEL

Nomor Teks Halaman

  7. Pin pada M 1632 ............................................................................ 20

  8. Perintah-perintah M 1632 ............................................................... 22

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.

  Mikrokontroler dapat dianggap sebagai komputer yang berukuran kecil. Secara sederhana Mikrokontroler merupakan IC yang didalamnya berisi 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 dan stop 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.

  Dalam Kerja Praktek (KP) ini dapat dibuat suatu alat yang dapat mengontrol tampilan penghitung waktu berbasis mikrokontroler.

  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

  reset.

  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 Berisikan tentang penyederhanaan perancangan peralatan Elektronika dengan memanfaatkan mikrokontroler.

  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 Merupakan kesimpulan dari konsep dasar dari perancangan aplikasi Mikrokontroler.

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 du
  • 5 interupsi vektor dengan 2 tingkatan prioritas

  Arsitektural MCS-51 adalah sbb:

Gambar 2.1 Blok Diagram Inti 8051

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 logika low dan logika high.

  Sinyal pada sluran masukan adalah data masukan mikroprosessor. Data tersebut berasal dari switch-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. Sebelum membaca atau menulis lokasi memori, mikroprosessor terlebih dahulu memilih alamat memori yang dikehendaki. Bus alamat adalah bus untuk menentukan alamt RAM atau Port 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 juga data yang sedan diproses.

  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 memori non 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 menggunakan MOSFET sebagai komponen utamanya. Data 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, dan tourmaline.

  Ciri-ciri yang terkenal dari kristal dibandikan dengan rangkaian tanki IC yang diskrit adalah nilai faktor kualitasnya ( Q ) yang sangat tinggi. Frekuensi dari sebuah osilator cenderung untuk berubah sedikit 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 tombol start dan stop 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 M1632 LCD

  Switch

Start/ MODUL DST-51

Stop

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 saklar start/stop maupun reset yang terhubung pada pada MCS 51. Pada gambar 2.3 tampak 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. START/STOP S1 RESET S2 P3.3/INT1 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

  

reset saja, melainkan dapat dihubungkan dengan perangkat lain yang dapat

  menghasilkan kondisi logika tersebut. Contohnya pada gambar 2.4 di mana proses perhitungan waktu dapat diatur dengan menggunakan dua buah sensor di mana kedua sensor tersebut diatur agar dapat menghasilkan keluaran berupa kondisi logika 0 dan 1 seperti halnya pada saklar. Sensor 1 P3.2/INT0 Modul DST-51 LCD M1632 Sensor 2 P3.3/INT1

Gambar 2.4 Blok Diagram Sistem Penghitung Waktu yang diatur dengan Sensor P0.6 P0.7

  13 14 D7 U? D6 VCC 2 VCC P3.2 P0.4 P2.1/A9 P0.5 10 11 12 9 4 7 5 6 8 D3 R/W E D4 D0 D1 D2 D5 VLCD 3 1 10K LCD MATRIX 2X16 RS GND

Gambar 2.5 Antar Muka M1632 LCDGambar 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 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 (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. Reset Nilai Timer Inisial LCD START StartStop = 0? Tidak Aktifkan Interupsi Eksternal 1 Start Timer 0 Delay Tidak

  StartStop = 1? Stop Timer 0 STOP

Gambar 2.6 Diagram Alir Program Utama

  Bagian layanan interupsi timer 0 adalah bagian yang melakukan penambahan dari nilai timer. Interupsi timer 0 diatur agar terjadi setiap 10 mS dan setiap kali interupsi timer 0 terjadi, maka nilai dari variabel-variabel yang 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.

Tambah waktu

START

Reset nilai timer

24 jam?

Tidak

  

Keluar dari

interupsi

STOP

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- variabel timer.

  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 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. LCD ke posisi awal START Tampilkan nilai timer Reset nilai timer Kembali dari interupsi Tunggu INT1 = 1 eksternal 1 STOP

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), 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

  sebuah karakter di mana bentuk dari karakter dapat diubah-ubah sesuai 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 tersimpan pada DDRAM, maka HD44780 akan mengambil data di alamat 41H (0100 0001) yang ada pada CGROM yaitu pola karakter A.

Gambar 2.10 Hubungan antara CGROM dan DDRAM (diambil dari data sheet HD44780)

2.4.2. PIN OUT

  Untuk lebih jelasnya pin-pin pada LCD dapat dilihat pada tabel 2.1 berikut :

  No N

Tabel 2.1 Pin pada M1632

  ama Pin Deskripsi No Nama Pin Deskripsi

  1 VCC Tegangan + 5 Volt

  2 GND Tegangan 0 Volt

  3 VEE Tegangan Kontras LCD Rgister Select, 0 = Register Perintah,

  4 RS 1 = Register Data

  5 R/W 1 = Read, 0 = Write Enable Clock LCD, logika 1 setiap kali

  6 E pengiriman atau pembacaan data

  7 D0 Data Bus 0

  8 D1 Data Bus 1

  9 D2 Data Bus 2

  10 D3 Data Bus 3

  11 D4 Data Bus 4

  12 D5 Dara Bus 5

  13 D6 Data Bus 6

  14 D7 Data Bus 7 Tegangan Positif backlight

  15 Anoda (Kabel coklat untuk LCD Hitaci) Tegangan Negatif backlight

  16 Katoda (Kabel merah untuk LCD Hitaci)

Gambar 2.11 Pin Out M1632 LCD Hitachi

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 dengan diawali pulsa logika 1 pada E Clock. Kemudian Nibble rendah (bit 3 sampai bit 0) dikirimkan dengan diawali pulsa logika 1 pada E Clock lagi. Untuk mode 8 bit interface, proses penulisan dapat langsung dilakukan secara 8 bit (bit 7 … bit 0) dan diawali sebuah pulsa logika 1 pada E Clock.

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 ay

  suai yang ubah suai X = diabaikan I/D 1 = Increment, 0 = Decrement S = Display tidak geser S/C 1 = Display Shift, 0 = Geser Cursor 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 D = Display OFF, 1 = Display ON C = Cursor OFF, 1 = Cursor ON B = Blinking OFF, 1 = Blinking ON

  § 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.13 Timing Diagram Pembacaan Register Perintah Mode 4 bit Interface.

2.4.3.2 Register Data

  Register ini adalah register di mana mikrokontroler dapat menuliskan atau membaca data ke atau dari DDRAM. Penulisan data pada register ini 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.14 Timing Diagram Penulisan Data ke Register Data Mode 4 bit Interface.

  Pembacaan Data dari Register Data

  Pembacaan data dari Register Data dilakukan untuk membaca kembali data yang tampil pada LCD. Proses dilakukan dengan 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 bit nibble 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.15 Timing Diagram Pembacaan Data dari Register Data Mode 4 bit Interface Antar Muka LCD dengan Mikrokontroler.

  Modul M 1632 LCD Gambar 2.16 Antar Muka dengan Modul DST-51.

  Modul M 1632 LCD Gambar 2.17 Antar Muka dengan Modul SC-51 atau AT8951.

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 ditelusuri lagi untuk pengembangan lebih lanjut ataupun digabungkan dengan program lain dalam kerja sama tim.

  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 meningkatkan kemampuan mereka yang berhubungan pemrograman aplikasi mikrokontroler.

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 : START/STOP

  S1 P3.2/INT0

  Modul M 1632 RESET S2 P3.3/INT1 LCD

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 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

  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 ALDS atau ASM51 Rutin-rutin Program untuk MSC-51/AT8951 yang diassembly dengan ALDS atau ASM51 Rutin delay yang diassembly dengan ALDS atau ASM51 Datasheet HD44780.

  • 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

ROM EQU 2000H Org ROM ;Reset Vector Ajmp Start ; Org ROM+3H ;External Interrupt Vector

  Reti ;

Org ROM+0BH ;Timer Interrupt Vector

Ajmp Timer0_Interrupt

Org ROM+13H ;External Interrupt

  1 Vector Ajmp Intr1 Org ROM+1BH ;Timer

  1 Interrupt Vector Reti ; Org ROM+23H ;Serial Interrupt Vector Reti ; Start: Lcall Init_LCD ;Inisial LCD

  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

Clr TR0 ;Matikan timer

  Ajmp Loop ; Delay: Push B Mov B,#0FFH Djnz B,$ Pop B Ret

  ;****************** ; 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 ; Jnb P3.2,$ ;Tunggu saklar reset dilepas Setb EX1 ;Interupsi

  1 aktif Reti Include timerup.asm Include hexdec1b.asm END

  • Program Untuk Pewaktu (Timer Up)

  ;*********************** ; RUTIN TIMER

  • ; Tampilan : M1632 LCD
  • ; Input data : Keypad 4x3 ; - Satuan Timer : 10 mili detik ; - Bentuk tampilan : Jam : menit : detik ;*********************** .Data Org $

  NilaiTimer: Ds 6 ;mili detik, detik, menit StackTimer: Ds 1 ;Stack Timer Temporary RTemp: Ds 6 ;Register Temporary .Code

  Org $ ;*************** ; RUTIN UNTUK MENGAKTIFKAN TIMER ;**************** StartTimer0: Mov StackTimer,SP ;Simpan nilai Stack Pointer

  Mov A,TMOD ;Atur mode timer tanpa mengubah Anl A,#0F0H ;mode timer

  1 Orl A,#01H ; Mov TMOD,A ; Acall ResetTimer0 ; Setb EA ;Aktifkan Interupsi Setb ET0 ; Setb TR0 ;Aktifkan Timer Ret

  ;****************

; 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 ; Jumlah siklus = 9216 => 2400H ; - Nilai Timer = -jumlah siklus = -2400H = DC00H Resettimer0: Mov TH0,#0DCH ;Nilai Timer diisi Mov TL0,#00H Ret ;********************** ; 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 ; Mov @R0,#00 ;Mili detik = 100 -> Mili detik =

  00 Acall DisplayTimer ;Tampilkan nilai timer Inc R0 ;Detik +

  1 Inc @R0 ; Mov A,@R0 ; Cjne A,#60,TidakReset ;Detik = 60 -> Detik =

  00 Mov @R0,#00 ; Inc R0 ; Inc @R0 ;Detik +

  1 Mov A,@R0 ; Cjne A,#60,TidakReset ;Menit = 60 -> Menit =

  00 Mov @R0,#00 ; Inc R0 ; Dec @R0 ;Menit +

  1 Mov A,@R0 ; Cjne A,#24,TidakReset ;Jam = 24 ->

  00 Mov @R0,#00 TidakReset: Ret ;************************************* ; 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 Pop ACC Ret TampilkanTerus: Mov A,#':' Lcall Kirim_Karakter Ajmp LoopDisplayTimer

  • Program Untuk Mengkonversi Data Hexa ke Desimal

  .data TabelDesimal: Ds 3 .Code