Anda di halaman 1dari 22

LAPORAN WORKSHOP INTERFACE

REAL TIME CLOCK DENGAN TAMBAHAN LIBRARY
LCD DITAMPILKAN PADA QT CREATOR








DosenPengampu :
Ressa Akbar, ST., MT.,
Kelompok:
Erwin Ardiansyah 1103121004
Muhammad Fauzi 1103121005
Arif Hidayat 1103121007
Gilang Kurniawan H 1103121016
Fauzul Dzikrul Hakim 1103121023
2 D3 ELEKTRONIKA A
2013/2014
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
KAMPUS ITS KEPUTIH SUKOLILO SURABAYA 60111,INDONESIA
TELP. (031) 5947280, 5946114 FAX : (031) 5946114

I. DASAR TEORI
A. LCD Mikrokontroler 16 x 2
LCD (Liquid Crystal Display) adalah suatu jenis media tampil yang menggunakan kristal cair
sebagai penampil utama. LCD sudah digunakan diberbagai bidang misalnya alal–alat 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 umum
Pada 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 DS1307
DS1307 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: -40°C hingga +85°C.
7. Tersedia dalam kemasan 8-pin DIP atau SOIC.

 Konfigurasi Pin DS1307
Penjelasan 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 00–24 dan HIGH untuk siklus jam 00–
12. Bit-5 HIGH pada saat PM dan LOW pada saat AM atau angka puluhan jika bit-6 LOW.

 Register Kontrol DS1307
Register 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 I
2
C adalah standar komunikasi serial dua arah
menggunakan dua saluran yang didisain khusus untuk mengirim maupun menerima data. Sistem
I
2
C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data) yang membawa informasi data
antara I
2
C dengan pengontrolnya. Piranti yang dihubungkan dengan sistem I2C Bus dapat
dioperasikan sebagai Master dan Slave. Master adalah piranti yang memulai transfer data pada
I
2
C 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 stop
Sinyal dasar yang lain dalam I
2
C 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 NACK
Dalam melakukan transfer data pada I
2
C 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 I
2
C bus


II. PERALATAN
1. Personal computer
2. Software simulasi (ISIS Proteus)
3. Software pemrograman (code vision AVR, Eclipse)
4. Software QT-Creator
5. Com0com

III. PROSEDUR PERCOBAAN
1. Buat rangkaian pada software simulasi Proteus

2. Buat program pada software eclipse, berikut adalah prosedurnya :
a. Buka software eclipse
b. 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 Creator
4. 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 DATA
Pada 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 I
2
C. I
2
C adalah standar komunikasi serial dua arah menggunakan dua saluran yang
didisain khusus untuk mengirim maupun menerima data. Sistem I
2
C terdiri dari saluran SCL
(Serial Clock) dan SDA (Serial Data) yang membawa informasi data antara I
2
C dengan
pengontrolnya.
Awalnya data pada IC DS1307 diambil oleh mikrokontroler atmega 16 dengan
menggunakan komunikasi I
2
C 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 LCD
Dalam 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

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 0 0 0 1

2. Melakukan function set

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 1 A B C 0 0


• 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

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 1 A B C

• 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

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 0 1 A B


• 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 <avr/io.h>
#include <util/delay.h>

////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<<bit))
#define CLRBIT(address,bit) (address &= ~(1<<bit))
#define SET_EN SETBIT(PORT_LCD,EN)
#define CLR_EN CLRBIT(PORT_LCD,EN)
#define SET_RS SETBIT(PORT_LCD,RS)
#define CLR_RS CLRBIT(PORT_LCD,RS)
#define SET_RW SETBIT(PORT_LCD,RW)
#define CLR_RW CLRBIT(PORT_LCD,RW)
typedef uint8_t byte;
typedef int8_t sbyte;

/////// prototipe fungsi-fungsi LCD

void enable(void); // enable fulse for LCD
void lcd_init(void); // intialization LCD
void lcd_putchar(unsigned char c); // send character to LCD
void lcd_putstr(char *s); // send string to LCD
void lcd_clear(void); // clear display
void lcd_gotoxy(unsigned char i,unsigned char j); //move LCD cursor position
void lcd_line(byte row);

#endif /* LCD_H_ */
File lcd.h diatas akan dipanggil pada program utama menampilkan lcd:
#include "lcd.h"
#include <stdio.h>


void enable(void) {
SET_EN;
_delay_ms(3); // minimal 2ms don't follow databook ;((450ns)<--
CLR_EN;
}


void lcd_init(void)
{
DDR_LCD=0xFF; // enable output for LCD
CLR_EN;
_delay_ms(15);
//step1
PORT_LCD=0x30;CLR_RS;CLR_RW;enable();
_delay_ms(5);
// step2
PORT_LCD=0x30;CLR_RS;CLR_RW;enable();
_delay_ms(1);
// step3
PORT_LCD=0x30;CLR_RS;CLR_RW;enable();
//next init
PORT_LCD=0x20;CLR_RS;CLR_RW;enable();
PORT_LCD=0x20;CLR_RS;CLR_RW;enable();
PORT_LCD=0x80;CLR_RS;CLR_RW;enable();
PORT_LCD=0x00;CLR_RS;CLR_RW;enable(); // display on
PORT_LCD=0xE0;CLR_RS;CLR_RW;enable();
PORT_LCD=0x00;CLR_RS;CLR_RW;enable(); // entry mode address inc and cursor shift right
PORT_LCD=0x60;CLR_RS;CLR_RW;enable();
PORT_LCD=0x00;CLR_RS;CLR_RW;enable(); // display clear
PORT_LCD=0x10;CLR_RS;CLR_RW;enable(); // display clear
}



void lcd_putchar(unsigned char kar)
{
unsigned char kar2;
//kar2=(kar|(PORT_LCD&0x0F))& (PORT_LCD|0xF0); //save control in bit 0-3
//kar2= (kar & 0xF0) + (PORT_LCD &0x0F);
//CLRBIT(kar2,EN);
kar2=kar & 0xF0;
PORT_LCD=kar2;SET_RS;CLR_RW;enable(); //
kar=(kar<<4|kar>>4);
kar2 = kar & 0xF0;
PORT_LCD=kar2;SET_RS;CLR_RW;enable(); // display clear
}



void lcd_putstr(char *s)
{
char i=0;
char c;
while((c=*(s+(i++)))!=0)
lcd_putchar(c);
}



void lcd_clear(void)
{
PORT_LCD=0x00;CLR_RS;CLR_RW;enable(); // display clear
PORT_LCD=0x10;CLR_RS;CLR_RW;enable(); //
}

void lcd_hex (int data)
{
char st[8]="";
itoa(data,st,16);
lcd_putstr(st);
}

void lcd_gotoxy(unsigned char i,unsigned char j)
{
unsigned char posisi,kar2;
posisi=(i*0x40)+j;
//posisi=(i>0?0x40+j:j);
kar2= posisi & 0xF0;
PORT_LCD=kar2;SETBIT(PORT_LCD,DB7);
CLR_RS;CLR_RW;enable();
posisi= (posisi<<4)|(posisi>>4); // swap temp
kar2= posisi & 0xF0;
PORT_LCD=kar2;
CLR_RS;CLR_RW;enable();
}

void lcd_line(byte row)
{
lcd_gotoxy (row,0);
}






 Komunikasi Serial QT

Setelah simulasi kita buat kita lakukan integrasi simulasi dengan QT. kita perlu membuat
tampilan QT terlebih dahulu dengan software QT creator. Lalu buat program untuk
melakukan integrasi simulasi dengan QT. kita dapat melakukan hal tersebut dengan parsing
data. Seperti pada projek sebelumnya kita membuat program QT. kita perlu mengaktifkan
setting port terlebih dahulu dengan setting baudrate, parity, data bits, stop bits. Lalu jangan
lupa untuk mengeset nama portnya Berikut analisnya.

serialku::~serialku()
{
delete ui;
}

void serialku::buka()// kita perlu membuka komunikasi port
{
serial.close();
serial.setPortName("COM20"); // set nama port yang sesuai pada com0com
if(!serial.open(QIODevice::ReadWrite)) // jika tidak ada port yang cocok dngan set port kita,
maka saat kita buka akan terjadi peringatan
{
QMessageBox::warning(this,tr("error"),tr("Port Serial tidak dapat diakses"));
serial.close();

}
else setting();

}
void serialku::kirim()// digunakan untuk mengirim data
{
serial.write(ui->kirimBox->text().toLocal8Bit());
}
void serialku::setting() // setting komunikasi
{
serial.setBaudRate(QSerialPort::Baud57600); //setting kecepatan komunikasi data
serial.setDataBits(QSerialPort::Data8); // data yang dikirimkan 8 bit
serial.setParity(QSerialPort::NoParity);
serial.setStopBits(QSerialPort::OneStop);
serial.setFlowControl(QSerialPort::NoFlowControl);

}
void serialku::terimadata() // digunakan untuk menerima data, pada bagian ini parsing dilakukan
{

QStringList query;
QString datane;
datane= serial.readLine(); //membaca data serial
ui->terimaBox->setText(datane);
if(datane.endsWith('$'))
{
QRegExp parse(":"); // parsing
query=datane.split(parse); //parsing

try
{
if(query[0].compare("Time")==0)
{
ui->jam->setText(query[1]); // mengeset atau menerima data jam dari luar atau
simulasi
ui->menit->setText(query[2]); // mengeset atau menerima data menit dari luar atau
simulasi
ui->detik->setText(query[3]); // mengeset atau menerima data detik dari luar atau
simulasi
a =query[1].toInt(); // mengubah data ke integer
b= query[2].toInt();
c = query[3].toInt();

}
else
{
return;
}
} catch (...) {
}
}

// ke gambar plot

y = datane.toInt(); //mserubah dari Qstring data menjadi value int

if (y<10 && y>-1)
{
x++;
samples->push_back(QPointF(x,y));
samples2->push_back(QPointF(x,a));
samples3->push_back(QPointF(x,b));
samples4->push_back(QPointF(x,c));

curve.setSamples(*samples);
curve.setPen(QPen(Qt::blue));

curve2.setSamples(*samples2);
curve2.setPen(QPen(Qt::red));

curve3.setSamples(*samples3);
curve3.setPen(QPen(Qt::darkGray));

curve4.setSamples(*samples4);
curve4.setPen(QPen(Qt::black));

curve.attach(ui->qwtPlot);
curve2.attach(ui->qwtPlot);
curve3.attach(ui->qwtPlot);
curve4.attach(ui->qwtPlot);
ui->qwtPlot->replot();
ui->qwtPlot->autoRefresh();
}
}
void serialku::on_tombolOpen_clicked()
{
buka();
}
void serialku::on_closeTombol_clicked()
{
serial.close();
}
void serialku::on_sendTombol_clicked()
{
kirim();
}

Setelah kita selesei membuat simulasi real time clock dan program integrasi Qt dengan
parsing, jangan lupa untuk membuat koneksi port dengan menggunakan software Com0com.
Port nantinya kita koneksikan, dan set nama port dapat kita sesuaikan. Pada projek ini kita
gunakan port COM20 dan COM21.




Kesimpulan
Dari praktikum yang telah kami lakukan kami mendapatkan analisa sebagaimana berikut ini;
1. Dalam 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.
2. Komunikasi I2c merupakan komunikasi perarel yang biasanya digunakan untuk
mengakses komponen tertentu seperti ds1307, eeprom, dsb.
3. Untuk mengakses lcd kita perlu menginisialisisasi, menentukan lokasi (gotoxy), dan
menampilkan data. Untuk melakukan integrasi antara simulasi dengan qt dapat
dilakukan dengan parsing data. Untuk melakukan integrasi penting untuk
mengkoneksikan port terlebih dahulu, biasanya digunakan com0com