Laporan Workshop

Embed Size (px)

Citation preview

LAPORAN WORKSHOP INTERFACE REAL TIME CLOCK DENGAN TAMBAHAN LIBRARY LCD DITAMPILKAN PADA QT CREATOR

DosenPengampu :Ressa Akbar, ST., MT.,Kelompok:Erwin Ardiansyah 1103121004Muhammad Fauzi 1103121005Arif Hidayat 1103121007Gilang Kurniawan H 1103121016Fauzul Dzikrul Hakim11031210232 D3 ELEKTRONIKA A2013/2014POLITEKNIK ELEKTRONIKA NEGERI SURABAYAKAMPUS ITS KEPUTIH SUKOLILO SURABAYA 60111,INDONESIATELP. (031) 5947280, 5946114 FAX : (031) 5946114

I. DASAR TEORIA. LCD Mikrokontroler 16 x 2LCD (Liquid Crystal Display) adalah suatu jenis media tampil yang menggunakan kristal cair sebagai penampil utama. LCD sudah digunakan diberbagai bidang misalnya alalalat elektronik seperti televisi, kalkulator, ataupun layar komputer. Pada bab ini aplikasi LCD yang dugunakan ialah LCD dot matrik dengan jumlah karakter 2 x 16. LCD sangat berfungsi sebagai penampil yang nantinya akan digunakan untuk menampilkan status kerja alat.Adapun fitur yang disajikan dalam LCD ini adalah : Terdiri dari 16 karakter dan 2 baris. Mempunyai 192 karakter tersimpan. Terdapat karakter generator terprogram. Dapat dialamati dengan mode 4-bit dan 8-bit. Dilengkapi dengan back light.Cara kerja LCD 2*16 secara umumPada aplikasi umumnya RW diberi logika rendah 0. Bus data terdiri dari 4-bit atau 8-bit. Jika jalur data 4-bit maka yang digunakan ialah DB4 sampai dengan DB7. Sebagaimana terlihat pada table diskripsi, interface LCD merupakan sebuah parallel bus, dimana hal ini sangat memudahkan dan sangat cepat dalam pembacaan dan penulisan data dari atau ke LCD. Kode ASCII yang ditampilkan sepanjang 8-bit dikirim ke LCD secara 4-bit atau 8 bit pada satu waktu. Jika mode 4-bit yang digunakan, maka 2 nibble data dikirim untuk membuat sepenuhnya 8-bit (pertama dikirim 4-bit MSB lalu 4-bit LSB dengan pulsa clock EN setiap nibblenya). Jalur kontrol EN digunakan untuk memberitahu LCD bahwa mikrokontroller mengirimkan data ke LCD. Untuk mengirim data ke LCD program harus menset EN ke kondisi high 1 dan kemudian menset dua jalur kontrol lainnya (RS dan R/W) atau juga mengirimkan data ke jalur data bus.Saat jalur lainnya sudah siap, EN harus diset ke 0 dan tunggu beberapa saat (tergantung pada datasheet LCD), dan set EN kembali ke high 1. Ketika jalur RS berada dalam kondisi low 0, data yang dikirimkan ke LCD dianggap sebagai sebuah perintah atau instruksi khusus (seperti bersihkan layar, posisi kursor dll). Ketika RS dalam kondisi high atau 1, data yang dikirimkan adalah data ASCII yang akan ditampilkan dilayar. Misal, untuk menampilkan huruf A pada layar maka RS harus diset ke 1. Jalur kontrol R/W harus berada dalam kondisi low (0) saat informasi pada data bus akan dituliskan ke LCD. Apabila R/W berada dalam kondisi high 1, maka program akan melakukan query (pembacaan) data dari LCD. Instruksi pembacaan hanya satu, yaitu Get LCD status (membaca status LCD), lainnya merupakan instruksi penulisan. Jadi hampir setiap aplikasi yang menggunakan LCD, R/W selalu diset ke 0. Jalur data dapat terdiri 4 atau 8 jalur (tergantung mode yang dipilih pengguna), DB0, DB1, DB2, DB3, DB4, DB5, DB6 dan DB7. Mengirim data secara parallel baik 4-bit atau 8-bit merupakan 2 mode operasi primer. Untuk membuat sebuah aplikasi interface LCD, menentukan mode operasi merupakan hal yang paling penting.Mode 8-bit sangat baik digunakan ketika kecepatan menjadi keutamaan dalam sebuah aplikasi dan setidaknya minimal tersedia 11 pin I/O (3 pin untuk kontrol, 8 pin untuk data).Sedangkan mode 4 bit minimal hanya membutuhkan 7-bit (3 pin untuk kontrol, 4 pin untuk data). Bit RS digunakan untuk memilih apakah data atau instruksi yang akan ditransfer antara mikrokontroller dan LCD. Jika bit ini di set (RS = 1), maka byte pada posisi kursor LCD saat itu dapat dibaca atau ditulis. Jika bit ini di reset (RS = 0), merupakan instruksi yang dikirim ke LCD atau status eksekusi dari instruksi terakhir yang dibaca.Modul LCD M1632 seperti dalam Gambar merupakan modul LCD dengan tampilan 16 x 2 baris dengan konsumsi daya yang rendah. Modul ini dilengkapi dengan mikrokontroler yang didisain khusus untuk mengendalikan LCD. Mikrokontroler HD44780 buatan Hitachi yang berfungsi sebagai pengendali LCD ini mempunyai: CGROM (Character Generator Read Only Memory),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 di bawah tampak terlihat pola-pola karakter yang tersimpan dalam lokasi-lokasi tertentu dalam CGROM. Pada saat HD44780 akan menampilkan data 41H ke DDRAM, maka HD44780 akan mengambil data di alamat 41H (0100 0001) yang ada pada CGROM yaitu pola karakter A. Dalam gambar modul LCD dihubungkan ke PORTB mikrokontroler dimana kaki RS, RD, EN terhubung ke PORTB.0-PORTB.2 dan D4, D5, D6, D7 terhubung ke PORTB.4-PORTB.7.

Gambar Pola Karakter dalam CGROM CGRAM (Character Generator Random Access Memory),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. DDRAM (Display Data Random Access Memory).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.

B. RTC (Real Time Clock) DS1307 (Code Vision AVR)RTC (Real Time Clock) merupakan sebuah IC yang memiliki fungsi untuk menghitung waktu, mulai dari detik, menit, jam, tanggal, bulan, serta tahun. Ada beberapa RTC yang di jual di pasaran, seperti : DS1307, DS1302, DS12C887, DS3234.Real-time clock DS1307 adalah IC yang dibuat oleh perusahaan Dallas Semiconductor. DS1307 merupakan sebuah IC yang dapat digunakan sebagai pengaturan waktu yang meliputi detik, menit, jam, hari, tanggal, bulan dan tahun. Pengaksesan data dilakukan dengan sistem serial sehingga hanya membutuhkan dua jalur untuk komunikasi yaitu jalur clock untuk membawa informasi data clock dan jalur data yang membawa data.

Fitur-fitur DS1307DS1307 memiliki fitur sebagai berikut :1. Real-time clock menyimpan data-data detik, menit, jam, tanggal dan bulan dalam seminggu, dan tahun valid hingga 2100. 2. 56-byte, battery-backed, RAM (Random Access Memory) Nonvolatile.3. Antarmuka serial Two-wire (I2C). 4. Sinyal keluaran gelombang kotak terprogram (Programmable squarewave).5. Konsumsi daya kurang dari 500nA menggunakan mode baterai cadangan dengan operasional osilator. 6. Tersedia fitur industri dengan ketahanan suhu: -40C hingga +85C. 7. Tersedia dalam kemasan 8-pin DIP atau SOIC.

Konfigurasi Pin DS1307Penjelasan dari masing-masing kaki adalah sebagai berikut : 1. X1 dan X2 adalah pin yang dihubungkan dengan kristal 32.768 KHz.2. VBAT adalah pin yang dihubungkan masukan baterai +3V. 3. GND adalah pin yang dihubungkan Ground. 4. SDA adalah pin yang difungsikan sebagai jalur data. 5. SCL adalah pin yang fungsikan sebagai jalur clock. 6. SQW/OUT adalah pin yang digunakan sebagai keluaran sinyal kotak.7. VCC adalah pin untuk mencatu tegangan 5V.

Peta Alamat DS1307 Pemetaan alamat pada RTC DS1307 dimana register-register DS1307 ditempatkan pada lokasi pengalamatan 00h sampai 07h. sedangkan register-register RAM (Random Access Memory) ditempatkan pada lokasi pengalamatan 08h sampai 3Fh.Khusus alamat 02H, bit-6 LOW untuk siklus jam 0024 dan HIGH untuk siklus jam 0012. Bit-5 HIGH pada saat PM dan LOW pada saat AM atau angka puluhan jika bit-6 LOW.

Register Kontrol DS1307Register kontrol pada RTC DS1307 digunakan untuk mengontrol operasi pada pin SQW/OUT.Keterangan bit-bit pada register kontrol :1. Bit-7: Output Control (OUT) Bit-7 adalah keadaan jika pin SQW/OUT di-disable sehingga tidak mengeluarkan clock, bit-7 ini menentukan level sinyal yang keluar dari pin SQW/OUT. Jika bit-7 ini LOW, maka level pin SQW/OUT ikut LOW dan jika bit-7 ini HIGH, maka level pin SQW/OUT ikut HIGH. 2. Bit-4: Square-wave Enable Digunakan untuk enable/disable keluarnya clock dari pin SQW/OUT. HIGH berarti enable dan LOW berarti disable. Frekuensi sinyal clock yang keluar dari pin SQW/OUT ditentukan oleh kondisi bit-1 dan bit-0. 3. Bit 1, 0: Rate Select (RS1, RS0) Digunakan untuk menentukan frekuensi yang keluar dari pin SQW/OUT. Kombinasi nilai RS0, dan RS1 menghasilkan output gelombang kotak dengan nilai frekuensi masing-masing.

C. I2C (Inter Integrated Circuit)Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi serial dua arah menggunakan dua saluran yang didisain khusus untuk mengirim maupun menerima data. Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data) yang membawa informasi data antara I2C dengan pengontrolnya. Piranti yang dihubungkan dengan sistem I2C Bus dapat dioperasikan sebagai Master dan Slave. Master adalah piranti yang memulai transfer data pada I2C Bus dengan membentuk sinyal Start, mengakhiri transfer data dengan membentuk sinyal Stop, dan membangkitkan sinyal clock. Slave adalah piranti yang dialamati master.Sinyal Start merupakan sinyal untuk memulai semua perintah, didefinisikan sebagai perubahan tegangan SDA dari 1 menjadi 0 pada saat SCL 1. Sinyal Stop merupakan sinyal untuk mengakhiri semua perintah, didefinisikan sebagai perubahan tegangan SDA dari 0 menjadi 1 pada saat SCL 1. Kondisi sinyal Start dan sinyal Stop seperti tampak pada Gambar 1.Gambar 1. Kondisi sinyal start dan stopSinyal dasar yang lain dalam I2C Bus adalah sinyal acknowledge yang disimbolkan dengan ACK Setelah transfer data oleh master berhasil diterima slave, slave akan menjawabnya dengan mengirim sinyal acknowledge, yaitu dengan membuat SDA menjadi 0 selama siklus clock ke 9. Ini menunjukkan bahwa Slave telah menerima 8 bit data dari Master. Kondisi sinyal acknowledge seperti tampak pada Gambar 2.

Gambar 2. Sinyal ACK dan NACKDalam melakukan transfer data pada I2C Bus, kita harus mengikuti tata cara yang telah ditetapkan yaitu: Transfer data hanya dapat dilakukan ketikan Bus tidak dalam keadaan sibuk. Selama proses transfer data, keadaan data pada SDA harus stabil selama SCL dalam keadan tinggi. Keadaan perubahan 1 atau 0 pada SDA hanya dapat dilakukan selama SCL dalam keadaan rendah. Jika terjadi perubahan keadaan SDA pada saat SCL dalam keadaan tinggi, maka perubahan itu dianggap sebagai sinyal Start atau sinyal Stop.Gambar 3. Trasfer Bit pada I2C bus

II. PERALATAN1. Personal computer2. Software simulasi (ISIS Proteus)3. Software pemrograman (code vision AVR, Eclipse)4. Software QT-Creator5. Com0com

III. PROSEDUR PERCOBAAN1. Buat rangkaian pada software simulasi Proteus

2. Buat program pada software eclipse, berikut adalah prosedurnya :a. Buka software eclipseb. kemudian pilih file->new, pilih c project. kemudian muncul kotak dialog berikut ini.

c. pilih AVRcross target aplication pilih empty project. Kemudian ketik nama projek. Klik next.d. muncul kotak dialog dibawah ini. Centang release, kemudian klik next.

e. Ubah type IC AVR yang akan digunakan, beserta clocknya seperti gambar di bawah ini. Klik finish.

f. Maka akan muncul kotak dialog dibawh ini.

g. kemudian klik kanan pilih new->source file. Ketik nama folder pada source folder, pada kotak dialog souce file ketik main.c

h. klik finish, Muncul kotak dialog di bawah ini.

i. klik properti kemudian pilih avrdude untuk konfigurasi progarmer, jika belum terdapat konfigurasi maka pilih new.j. pilih device yang sesuai digunakan(stk500 versi 2), ketik konfigurasi nama, pada overwrite default port ketik port yang digunakkan /dev/ttyACM0.

k. cek apakah device sudah terkoneksi atau belum, dengan cara klik target hardware, load from MCU. Jika sudah klik apply, ok. Jika belum cek port koneksi.

l. kemudian klik kanan pilih properties, klik c++ build, pilih setting, centang avrdude, klik ok.

m. kemudian pada menu klik windows->preference, general,workspase, centang save automatically before build. Klik ok.

n. setelah itu ketik program pada yang telah diberikan .

3. setelah itu kita buat user interface untuk komunikasi serial pada QT Creator4. untuk menghubungkan antara proteus dengan QT creator dengan menggunakan serial komunikasi COM0COM

5. berikut ini adalah hasil run dari QT Creator yang sudah terhubung dengan Proteus

IV. ANALISA DATAPada percobaan kali ini yaitu tentang pemrograman LCD dan Real Time Clock dengan menggunakan IC DS1307. LCD (Liquid Crystal Display) adalah suatu jenis media tampil yang menggunakan kristal cair sebagai penampil pada alat-alat elektronika, sedangkan IC DS1307 merupakan sebuah IC yang memiliki fungsi untuk menghitung waktu, mulai dari detik, menit, jam, tanggal, bulan, serta tahun, atau biasa disebut sebagai fungsi RTC (Real Time Clock).Untuk dapat mengakses IC DS1307 dibutuhkanlah suatu komunikasi tertentu untuk dapat berinteraksi dengan mikrokontroller. Dalam hal ini menggunakan komunikasi I2C. I2C adalah standar komunikasi serial dua arah menggunakan dua saluran yang didisain khusus untuk mengirim maupun menerima data. Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data) yang membawa informasi data antara I2C dengan pengontrolnya.Awalnya data pada IC DS1307 diambil oleh mikrokontroler atmega 16 dengan menggunakan komunikasi I2C untuk ditampilkan pada LCD, dalam hal ini kami menggunakan library LCD sendiri untuk mengakses LCD tersebut. Selain itu data yang ditampilkan pada LCD juga ditampilkan pada user interface PC dengan komunikasi serial, dalam hal ini menggunakan software userinterface QT Creaator sebagai penampilnya.selanjutnya kami akan membahas lebih lanjut tentang library LCD dan komunikasi serial dengan QT. Library LCDDalam membuat library terdapat 2 buah macam format file yang berbeda yaitu file dengan format extensi .h dan file dengan format extensi .c. File dengan format extensi .h adalah untuk data header atau data prototype, sedangkan file dengan format extensi .c adalah untuk data compiler. Dimana file dengan format extensi .h nantinya akan dipanggil pada file dengan format extensi .c.Untuk dapat mengakses LCD, ada beberapa langkah untuk mempersiapkan LCD agar siap dipakai diantaranya adalah penginisialisasian konfigurasi dari pin-pin LCD, pengaturan mode agar sesuai dengan yang diinginkan, serta pengaturan letak koordinat data yang ditampilkan. Berikut adalah langkah-langkah yang dibutuhkan untuk proses pengaturan mode atau lebih sering disebut init.

1. Melakukan proses clear display

RSR/WDB7DB6DB5DB4DB3DB2DB1DB0

0000000001

2. Melakukan function set

RSR/WDB7DB6DB5DB4DB3DB2DB1DB0

00001ABC00

Jika :o A = 1 / 0 ( 1 = 8 bit , 0 = 4 bit )o B = 1 / 0 ( 1 = 2 baris , 0 = 1 baris )o C = 1 / 0 ( 1 = 5x10 dot , 0 = 5x7 dot )

3. Mengontrol display on / off

RSR/WDB7DB6DB5DB4DB3DB2DB1DB0

0000001ABC

Jika :o A = 1 / 0 ( 1 = display on , 0 = display off )o B = 1 / 0 ( 1 = cursor on , 0 = cursor off )o C = 1 / 0 ( 1 = blinking on , 0 = blinking off )

4. Entry mode set

RSR/WDB7DB6DB5DB4DB3DB2DB1DB0

00000001AB

Jika :o A = 1 / 0 ( 1 = increment , 0 = decrement )o B = 1 / 0 ( 1 = shift , 0 = no shift )

Dan berikut adalah contoh dari library LCD#ifndef LCD_H_#define LCD_H_#include #include

////setting PORT LCD ////#define PORT_LCD PORTB#define DDR_LCD DDRB#define RS PB0#define RW PB1#define EN PB2#define DB4 PB4#define DB5 PB5#define DB6 PB6#define DB7 PB7#define SETBIT(address,bit) (address |= (1