tugas akhir alat ukur suhu dengan sensor …repository.usd.ac.id/28244/2/015114021_full.pdf · alat...
TRANSCRIPT
-
TUGAS AKHIR
ALAT UKUR SUHU DENGAN SENSOR TERMOKOPEL BERBASIS MIKROKONTROLER PIC16F877
Diajukan untuk memenuhi salah satu syarat
memperoleh gelar Sarjana Teknik pada
Program Studi Teknik Elektro
Fakultas Teknik Universitas Sanata Dharma
Disusun oleh
KRISTIANTO WIDIATMOKO
NIM: 015114021
PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2007
-
FINAL PROJECT
THERMOMETER INSTRUMENT USING THERMOCOUPLE BASED ON PIC16F877 MICROCONTROLLER
Submitted as Partial Fulfillment Of The Requirement forSarjana Teknik Degree In Electrical Engineering
By:
KRISTIANTO WIDIATMOKONIM: 015114021
DEPARTMENT ELECTRICAL ENGINEERING
FACULTY OF MATHEMATIC, SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2007
i
-
LEMBAR PERSETUJUAN PEMBIMBING
TUGAS AKHIR
ALAT UKUR SUHU DENGAN SENSOR TERMOKOPEL BERBASIS MIKROKONTROLER PIC16F877
KRISTIANTO WIDIATMOKONIM: 015114021
Telah disetujui pada tanggal __ April 2007
oleh
Pembimbing I
B. Djoko Untoro S. Ssi., MT
Pembimbing II
Martanto, ST, MT
i
-
LEMBAR PENGESAHAN
ALAT UKUR SUHU DENGAN SENSOR TERMOKOPEL
BERBASIS MIKROKONTROLER PIC16F877
Disusun oleh:
KRISTIANTO WIDIATMOKONIM: 015114021
Pada tanggal 3 Februari 2007
dan dinyatakan memenuhi syarat
Susunan Panitia Penguji
Nama Lengkap Tanda Tangan
Ketua : Ir. Th. Prima Ari Setiyani, M.T
Sekretaris : B. Djoko Untoro S. Ssi., MT
Anggota : Augustinus Bayu Primawan, S.T.,M.Eng
Anggota : Martanto, ST, MT
Yogyakarta, ____________2007
Fakultas Teknik Universitas Sanata Dharma Dekan Fakultas Teknik
Ir. Greg.Heliarko, SJ.,SS.,BST., MT., Msc.
i
-
Pernyataan Keaslian Karya
Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang saya tulis ini
tidak memuat karya atau bagian karya orang lain kecuali yang telah disebutkan
dalam daftar pustaka sebagaimana layaknya sebuah karya tulis.
Yogyakarta, _________________2007
Penulis
KRISTIANTO WIDIATMOKO
v
-
MOTTO
v
PRACTICE MAKE PERFECT
-
Karya ini kupersembahkan untuk:
Tuhan Yesus Kristus sang Juru Selamat
Ayah , Ibu dan Adikku Desi yang sangat aku kasihi serta saudara - saudaraku yang selalu menyayangiku
Semua teman – teman dan sahabatku…..Almamaterku…
v
-
Intisari
Dalam otomotif, suhu dari sebuah mesin sangat mempengaruhi kinerja dari sebuah mesin. Gas buang dari mesin bakar suhunya dapat mencapai 500oC, untuk itu dibutuhkan sebuah alat ukur suhu yang dapat mengukur hingga 500oC.
Tugas akhir ini membahas perancangan alat ukur suhu dengan sensor termokopel tipe K dan diproses menggunakan mikrokontroler PIC16F877 dan hasilnya di tampilkan pada LCD 16x2. Suhu dikonversi oleh termokopel menjadi tegangan, sebesar 0 mV pada suhu 0 oC hingga 19,7 mV pada suhu 500 oC. Hasil konversi dikuatkan 253x melalui pengkondisi sinyal kemudian tegangan keluaran dari pengkondisi sinyal diolah oleh mikrokontroler PIC16F877 dan hasilnya ditampilkan melalui LCD 16x2.
Hasil dari perancangan ini adalah alat ukur suhu yang mampu untuk mengukur suhu hingga 500oC dengan resolusi 0,5oC.
Kata kunci : Termokopel, Aplikasi Mikrokontroler
v
-
Abstract
In automotive, engine temperature influences engine performances. Engine exhaust temperature can reach 500oC, therefore temperature measurement was needed.
This final project are discussed about thermometer instrument using thermocouple type K and processed by PIC16F877 microcontroller and displayed by 16x2 LCD. Temperature converted by Thermocouple to 0 mV at 0 oC and 19,7 mV at 500 oC. The convertion result gained 253x by signal conditioner, Then Signal conditioner output processed by PIC16F877 microcontroller and displayed by 16x2 LCD.
Finally This equipment is able to measure upto 500 oC with 0,5 oC resolution.
Keywords: Thermocouple, microcontroller.
i
-
Kata Pengantar
Dengan memanjatkan puji dan syukur kepada Allah Bapa dan Yesus Kristus,
atas segala rahmat-Nya sehingga dengan pertolongan dan petunjuk-Nya akhirnya
penulis dapat menyelesaikan skripsi ini.
Skripsi ini diberi judul : Alat Ukur Suhu Dengan Sensor Termokopel
Berbasis Mikrokontroler PIC16F877. Penulisan skripsi ini didasarkan pada hasil-
hasil yang penulis peroleh mulai dari perancangan, pembuatan alat sampai pada
pengujian alat yang diajukan, juga kemungkinan pengembangannya.
Penulis mengucapkan terimakasih kepada semua pihak yang telah membantu
penulis hingga terselesaikannya skripsi ini. Ucapan terimakasih penulis sampaikan
kepada :
1. Bapak Djoko Untoro Suwarno, S.Si., MT selaku Pembimbing I yang telah
bersedia meluangkan waktunya untuk membimbing dalam proses penyusunan
Tugas akhir ini dari awal sampai selesai.
2. Bapak Martanto, S.T.,M.T. selaku pembimbing II yang juga telah bersedia
membimbing dan mengarahkan sehingga karya ini dapat selesai dan berhasil
sesuai yang diharapkan.
3. Ibu Ir. Th. Prima Ari Setiyani., M.T. selaku penguji.
4. Bapak Augustinus Bayu Primawan, S.T., M.T. selaku penguji.
5. Mas Broto, mas Mardi, mas Rony, mas Hardi, mbak Viany, mas Suryo, yang
telah membantu dalam penyediaan alat di laboratorium dan literatur.
6. Bapak dan Ibu Dosen jurusan Teknik Elektro yang telah membagi dan
mengajarkan banyak ilmu kepada penulis.
x
-
7. Bapak, Ibu dan adikku Desi, terimakasih atas doa dan dukungannya selama
ini
8. Tim Hibahku Andre dan Franki, “terima kasih banyak,. tanpa kalian karya ini
tidak akan jadi”
9. Semua tim PHK pak Tjendro cs ( Andry, Galuh, Nandy, Marta, Butet), pak Is
cs ( Bowo, Ari, Danang, Joko, Sulis, Yayuk, Hernomo, Tatang, Liong) maju
terus dab..
10. Ika, Anink, Yoseph, Iwuk, Krisna, Petrus, Iink dan semua Mudika
ALOYSIUS GONZAGA, terima kasih atas doanya….
11. Temanku Ririn, Ndoko, Oscar, Agung, Broto, Made, Ulin, Yuli dan semua
anak – anak JMC.
12. Ledul, Lolok, Badala, Adin yang selalu memberi semangat kepada penulis…
…
13. Anak – anak kos Tangkadas ( Heri, Sigit, Purba, Fandy, Sinung, Widi,
Wawan, Andy, Charles dan Purba) yang telah banyak memberi bantuan
14. Teman – teman operator warnet SECOND HOME ko Aan, ko Dennis, cik
Tanti, Mamata, Efan, Dony, Jackson, Tyo, Amos, Yulius, dan teman – teman
operator yang lain thanxs.
Penulis menyadari bahwa dalam karya tulis ini masih banyak kekurangannya
dan jauh dari sempurna. Oleh karena itu penulis sangat mengharapkan saran dan
kritik yang dapat membangun dari berbagai pihak. Sehingga penulis dapat lebih maju
dan lebih baik dari sekarang.
x
-
Akhirnya penulis berharap dan berdoa, semoga karya tulis ini dapat
bermanfaat bagi pembaca.
Yogyakarta 31 juni 2007
Penulis
Kristianto Widiatmoko
x
-
DAFTAR ISI
HALAMAN JUDUL ................................................................................... i
HALAMAN JUDUL (INGGRIS)................................................................ ii
HALAMAN PERSETUJUAN..................................................................... iii
HALAMAN PENGESAHAN...................................................................... iv
PERNYATAAN KEASLIAN KARYA...................................................... v
HALAMAN MOTTO ................................................................................. vi
HALAMAN PERSEMBAHAN.................................................................. vii
INTISARI..................................................................................................... viii
ABSTRACT................................................................................................. ix
KATA PENGANTAR ................................................................................ x
DAFTAR ISI................................................................................................ xiii
DAFTAR TABEL........................................................................................ xvii
DAFTAR GAMBAR................................................................................... xviii
BAB I. PENDAHULUAN .......................................................................... 1
I.1 Judul.............................................................................................. 1
I.2 Latar Belakang ............................................................................. 1
I.3 Tujuan dan manfaat Penelitian..................................................... 2
I.4 Batasan masalah............................................................................ 2
I.5 Metodologi penelitian................................................................... 2
I.6 Sistematika penulisan................................................................... 3
BAB II. DASAR TEORI............................................................................. 5
x
-
2.1 Skala Suhu .................................................................................... 5
2.2 Metode Pengukuran Suhu ........................................................... 6
2.2.1 Metode Ekspansi............................................................... 6
2.2.2 Metode Hambatan................................................................ 7
2.2.3 Metode Lempeng Bimetal ................................................... 7
2.3 Karakteristik alat ukur................................................................... 7
2.3.1 Presisi (ketelitian)................................................................ 7
2.3.2 Akurasi ( ketepatan)............................................................. 8
2.3.3 Sensitivitas ( Kepekaan)....................................................... 8
2.3.4 Resolusi ( kemampuan membaca skala )............................. 8
2.3.5 Repeatability ( kemampuan mengulang )............................ 8
2.3.6 Threshold ............................................................................ 8
2.3.7 Linearitas............................................................................. 9
2.4 Analisis Statistik........................................................................... 9
2.4.1 Nilai Rata – rata (Arithmatic mean)..................................... 9
2.4.2 Penyimpangan Terhadap Nilai Rata – rata.......................... 10
2.4.3 Penyimpangan Rata-rata (Average Deviation).................... 10
2.4.4 Deviasi Standar.................................................................... 11
2.4.5 Regresi Linier....................................................................... 11
2.4.6 Kesalahan baku penaksiran.................................................. 12
2.4.7 Koefisien korelasi................................................................ 13
2.5 Termokopel................................................................................... 14
2.6 Penguat Tak Membalik................................................................. 16
x
-
2.7 LCD............................................................................................... 18
2.8 Mikrokontroler PIC16F877........................................................... 22
2.8.1 ALU (Arithmatic Logic Unit).............................................. 23
2.8.2 Memori Program.................................................................. 23
2.8.3 Program counter................................................................... 24
2.8.4 Register Status...................................................................... 24
2.8.5 Pembangkit Clock - Oscilator.............................................. 24
2.8.6 Unit I/O................................................................................ 24
2.8.7 Timer.................................................................................... 24
2.8.8 Analog to Digital Converter (ADC).................................... 25
2.8.8.1 Register ADCON0................................................... 25
2.8.8.2 Register ADCON1................................................... 26
2.8.8.3 Register ADRESH dan ADRESL............................ 27
2.8.9 USART................................................................................ 27
2.8.10 Instruksi – instruksi PIC16F877........................................ 27
2.8.11 Register Status.................................................................... 29
BAB III. Perancangan Peralatan.................................................................. 32
3.1 Perancangan ADC ........................................................................ 33
3.1.1 Inisialisasi ADC.................................................................... 33
3.1.2 Konversi ADC...................................................................... 34
3.2 Perancangan Pengkondisi Sinyal.................................................. 34
3.3 Perancangan LCD ........................................................................ 37
3.3.1 Tampilan LCD .................................................................... 38
x
-
3.4 Diagram Alir................................................................................. 39
BAB IV. HASIL PENGUJIAN DAN PEMBAHASAN ............................ 41
4.1 Hasil Pengukuran Dengan Media Uap Air................................... 41
4.3 Pengujian Dengan Media Api....................................................... 46
4.4 Pengujian Dengan Media Es......................................................... 46
BAB V. KESIMPULAN DAN SARAN ..................................................... 48
5.1 Kesimpulan................................................................................... 48
5.2 Saran.............................................................................................. 48
DAFTAR PUSTAKA.................................................................................. 49
LAMPIRAN
x
-
DAFTAR TABEL
Tabel 2.1 Sensitivitas Termoelectric dari beberapa material yang
dikombinasikan dengan platinum pada suhu 0oC (32oF).......... 16
Tabel 2.2 Pin pada LCD HD44780U........................................................ 21
Tabel 2.3 konfigurasi kontrol bit port A/D................................................ 27
Tabel 2.4 Tabel instruksi PIC16F877........................................................ 28
Tabel 3.1 Tabel tegangan keluaran termokopel tipe K terhadap
temperatur (referensi termokopel 0 oC)..................................... 34
Tabel 4.1 Data Hasil Pengukuran Suhu Dengan Media Uap Air.............. 41
Tabel 4.2 Tabel komputasi kecocokan alat ukur............................................... 44
Tabel 4.3 Data hasil pengujian dengan media api..................................... 46
Tabel 4.4 Data hasil pengujian dengan media es...................................... 47
x
-
DAFTAR GAMBAR
Gambar 2.1 Termokopel ........................................................................ 15
Gambar 2.2 Penguat tak pembalik........................................................... 17
Gambar 2.3 Display LCD 2 × 16 karakter............................................... 19
Gambar 2.4 Mikrokontroler PIC16F877.................................................. 22
Gambar 2.5 Arsitektur mikrokontroler PIC16F877................................. 22
Gambar 3.1 Diagram blok sensor suhu.................................................... 33
Gambar 3.2 Grafik perubahan emf termokopel Tipe K terhadap suhu..... 35
Gambar 3.3 Rangkaian akhir pengkondisi sinyal..................................... 37
Gambar 3.4 Rangkaian LCD.................................................................... 38
Gambar 3.5 Tampilan nama dan nomor mahasiswa................................ 38
Gambar 3.6 Tampilan hasil pengukuran suhu.......................................... 39
Gambar 3.7 Diagram alir program utama................................................ 39
Gambar 4.1 Grafik hubungan suhu terukur terhadap suhu referensi....... 43
x
-
BAB I
PENDAHULUAN
1.1.Judul
Alat ukur suhu dengan sensor suhu termokopel berbasis mikrokontroler
PIC16F877.
1.2.Latar Belakang Masalah
Pengukuran merupakan kegiatan yang sangat penting untuk mengetahui
kuantitas, kualitas suatu benda dalam sebuah penelitian. Salah satu faktor atau
besaran yang dipakai untuk mengetahui kuantitas, kualitas serta kemampuan suatu
benda tersebut adalah suhu. Suhu sangat berpengaruh hampir di tiap percobaan atau
penelitian.
Laboratorium Konversi Energi Universitas Sanata Dharma mempunyai sebuah
mesin bakar yang saat ini dipakai untuk penelitian oleh fakultas teknik mesin. Dalam
penelitian mesin bakar tersebut mereka membutuhkan sebuah alat untuk mengukur
suhu gas buang hasil pembakaran, pelumas serta suhu mesin, untuk itu mereka
membutuhkan alat ukur suhu yang dapat mengukur suhu hingga 500oC. karena
alasan itulah maka pada tugas akhir kali ini kami membuat alat ukur suhu
Laboratorium yang dapat mengukur suhu dari 0 oC hingga 500 oC dengan resolusi 0,5
oC .
1
-
1.3.Tujuan dan Manfaat Penelitian
Tujuan yang ingin dicapai dari pembuatan alat ukur ini yaitu: pengembangan
alat ukur suhu berbasis mikrokontroler untuk mengukur suhu gas buang pada mesin
bakar Laboratorium Konversi Energi Universitas Sanata Dharma.
Manfaat yang dapat diambil dari penelitian ini yaitu:
1. Tersedianya alat ukur suhu untuk laboratorium
2. Mempermudah perolehan data dalam pengukuran di laboratorium.
3. Tersedianya literatur dalam perancangan alat ukur menggunakan sensor
termokopel.
1.4.Batasan Masalah
Dalam penelitian ini akan dirancang sebuah alat ukur suhu dari 100oC hingga
500oC dengan resolusi 0.5oC. Sensor suhu yang digunakan adalah termokopel tipe K
dengan unit pengolah sebuah mikrokontroler PIC16F877. Hasil pengukuran dapat
ditampilkan di LCD 2X16
1.5.Metodologi Penelitian
Tahap – tahap yang dilakukan untuk memperoleh hasil sesuai dengan tujuan
penelitian adalah sebagai berikut:
1. Menentukan obyek yang akan diukur (karakteristik dari obyek).
2. Menentukan komponen yang akan digunakan yang sesuai dengan karakteristik
dari obyek.
2
-
3. pengumpulan dokumen pendukung, berupa buku – buku dan data sheet yang
berhubungan dengan kompenen yang akan digunakan pada perancangan.
4. Perancangan untuk menyelesaikan masalah, berupa perhitungan matematis dan
menentukan nilai – nilai yang akan digunakan
5. Implementasi dari perancangan.
6. Pengambilan data dengan melakukan pengukuran di Laboratorium
7. Pengolahan data dengan membandingkan hasil pengukuran dengan hasil
perhitungan matematis.
8. Penyajian data dengan grafik dari hasil percobaan dan perhitungan matematis dan
statistik
9. Penulisan laporan.
.
1.6.Sistematika Penulisan
Penulis melakukan penelitian dengan merancang alat dan mengambil data alat
yangg telah dirancang tersebut. Laporan penelitian dibagi menjadi 5 Bab yangsecara
singkat dapat dijelaskan sebagai berikut:
BAB I memuat pendahuluan yang berisi latar belakang penelitian, batasan
masalah, tujuan dan manfaat penelitian, metodologi penelitian, serta
sistematika penulisan laporan
BAB II berisi dasar teori yang dipakai oleh penulis untuk melakukan penelitian
BAB III berisi tentang perancangan alat yang terdiri dari diagram blok, perhitungan
nilai komponen, gambar tiap rangkaian beserta diagram alir program.
BAB IV berisi data hasil percobaan alat yang telah dibuat beserta pembahasannya.
3
-
BAB V berisi kesimpulan dari penelitian yang telah dilakukan serta saran yang
dianggap perlu.
4
-
BAB II
DASAR TEORI
2.1.Skala Suhu
Satuan yang dipakai untuk menyatakan temperatur adalah derajat, yang paling
umum dipakai adalah derajat Celcius, yang biasa disingkat dengan oC. Ada pula
satuan oKelvin dan oFahrenheit, masing-masing disingkat sebagai oK dan oF. Pada
skala Celcius titik nol sama dengan titik beku air, sedangkan titik didih air berada
pada skala“100 o”. Pada keadaan yang lebih dingin dari pada air beku, skala ditandai
dengan angka negatif.
Untuk skala suhu Fahrenheit, suhu beku air adalah 32 oF ( tiga puluh dua derajat
Fahrenheit ) dan suhu didih air berada pada 212 oF, keduanya pada tekanan atmosfir
standar (1013 millibar). Ada 180 derajat skala Fahrenheit diantara titik beku dan titik
didih, dibandingkan terhadap 100 skala Celcius, sehingga 1 skala Fahrenheit
mewakili hanya 180100
, atau 95
dari perubahan suhu sejauh satu derajat Celcius.
Untuk mengubah suhu dari derajat Celcius ke derajat Fahrenheit, harus
diperhatikan bahwa suatu suhu Celcius ( TC ) adalah besar derajat Celcius diatas titik
beku. Besar derajat Fahrenheit diatas titik beku adalah 59
dari suhu Celcius, Tetapi,
titik beku pada skala Fahrenheit adalah 32 oF. Sehingga untuk memperoleh suhu
5
-
Fahrenheit sebesar TF yang sebenarnya, kalikan nilai Celcius dengan 59
lalu
tambahkan 32 o, atau dapat dituliskan:
TF = 59
TC + 32 o (2.1)
Untuk mengubah Fahrenheit ke Celcius, turunkan persamaan (2.1) untuk
memperoleh TC , dan didapatkan persamaan:
TC = 95
( TF – 32 o). (2.2)
Skala suhu Kelvin, dinamai untuk menghargai fisikawan Inggris Lord Kelvin
(1824 – 1907). Satuannya tetap sama besar seperti pada skala Celcius, tetapi harga
nol digeser sehingga 0 K = 273,15 oC atau
TK = TC + 273,15 (2.3)
Pada khasanah SI, “derajat” tidak digunakan pada skala Kelvin; suhu 293 Kelvin
dibaca sebagai “293 Kelvin”, bukan “293 derajat Kelvin”.
2.2.Metode Pengukuran Suhu
Pengukuran suhu dapat dilakukan dengan beberapa metode, diantaranya:
2.2.1.Metode Ekspansi
Termometer cairan dalam kaca terdiri dari pipa kapiler dengan suatu
gelembung yang berisi suatu cairan ( biasanya cairan Raksa ). Maka ketika suhu
berubah, volume cairan berekspansi dari kaca dan gelembung karena perbedaan
dalam koefisien ekspansi suhu antara kaca dan fluida. Perubahan deferensial dalam
6
-
volume menyebabkan cairan mengisi pipa kapiler. Suatu skala yang dilekatkan pada
kaca digunakan untuk menandai perubahan cairan pada pipa kapiler terhadap suhu.
2.2.2.Metode Hambatan
Termometer hambatan terdiri atas suatu elemen sensor yang memperlihatkan
suatu perubahan dalam hambatan ketika terjadi perubahan suhu. Dua jenis sensor
yang biasanya digunakan adalah RTD (Resistance Temperatur Detector) dan
termistor.
2.2.3.Metode Lempeng Bimetal
Termometer ini terdiri dari dua buah lembaran logam dengan bahan yang
berbeda dan saling direkatkan. Ketika dipanaskan, salah satu logam berekspansi
lebih jauh dibandingkan logam lainnya, sehingga gabungan lembaran akan
melengkung jika suhu berubah.
2.3.Karakteristik Alat Ukur
Dalam pengukuran digunakan istilah – istilah yang menentukan karakteristik
suatu alat ukur, antara lain:
2.3.1.Presisi (ketelitian)
Presisi merupakan suatu ukuran kemampuan untuk mendapatkan hasil
pengukuran serupa. Dengan memberikan suatu harga tertentu bagi sebuah variabel,
7
-
ketelitian (presisi) merupakan suatu ukuran tingkatan yang menunjukkan perbedaan
hasil pengukuran pada pengukuran – pengukuran yang dilakukan secara berurutan.
2.3.2.Akurasi (ketepatan)
Akurasi merupakan sifat kedekatan pembacaan alat ukur dengan nilai
sebenarnya dari variabel yang diukur. Akurasi ditentukan dengan cara mengkalibrasi
dengan kondisi operasi tertentu.
2.3.3.Sensitivitas (kepekaan)
sensitivitas merupakan perubahan terkecil dari masukan yang mempengaruhi
keluaran.
S= InputOutput
∆∆
(2.4)
2.3.4.Resolusi (kemampuan membaca skala)
Resolusi merupakan perubahan terkecil dari keluaran yang masih bisa
dibedakan.
2.3.5.Repeatability (kemampuan mengulangi)
Repeatability adalah sebagai ukuran deviasi dari hasil uji nilai rata – rata. Hal
ini mengindikasikan kedekatan diantara sejumlah pengukuran yang dilakukan secara
berulang dengan kondisi yang sama.
8
-
2.3.6.Treshold
Treshold merupakan nilai minimum perubahan masukan yang tidak dapat
diamati atau dideteksi, bila masukannya berangsur – angsur bertambah dari nol.
2.3.7.Linearitas
Linearitas merupakan kemampuan untuk menghasilkan ukuran alat ukur yang
menghasilkan keluaran yang secara linear. Dalam hal ini, dapat didefinisikan dengan
persamaan berikut ini:
y = mx + c (2.5)
keterangan :
y = nilai – nilai taksiran untuk variabel tak bebas
x = nilai variabel bebas
m = kemiringan (slope)
c = offset
2.4.Analisis Statistik
Analisis statistik terhadap data pengukuran adalah untuk menentukan
penentuan ketidakpastian hasil pengujian akhir secara analisis. Hasil dari suatu
pengukuran dengan metode tertentu dapat diramalkan berdasarkan contoh (data
sampel), tanpa memiliki informasi atau keterangan yang lengkap mengenai semua
faktor – faktor gangguan.
Agar cara–cara statistik dan keterangan yang diberikan bermanfaat, biasanya
diperlukan sejumlah pengukuran banyak.
9
-
2.4.1.Nilai Rata-rata (Arithmatic Mean)
Nilai yang paling mungkin dari suatu variabel yang diukur adalah nilai rata –
rata dari semua pembacaan yang dilakukan. Pendekatan paling baik akan diperoleh
bila jumlah pembacaan untuk suatu besaran sangat banyak. Secara teoritis,
pembacaan yang tak berhingga akan memberikan hasil paling baik, walaupun dalam
prakteknya hanya dapat dilakukan pengukuran yang terbatas.
Nilai rata – rata diberikan oleh persamaan:
x = nxxxx n++++ .......321 =
nx∑ (2.6)
Dimana x = nilai rata –rata
x1,x2,xn = pembacaan yang dilakukan
n = jumlah pembacaan
2.4.2.Penyimpangan Terhadap Nilai Rata-rata
Penyimpangan (deviasi) adalah selisih antara suatu pembacaan terhadap nilai
rata- rata dalam sekelompok pembacaan. Jika penyimpangan pembacaan pertama x1
adalah d1, penyimpangan pembacaan kedua x2 adalah d2 dan seterusnya, maka
penyimpangan terhadap nilai rata-rata adalah:
d1 = x1- x d2 = x2 – x x dn = xn - x (2.7)
perlu dicatat bahwa penyimpangan terhadap nilai rata – rata boleh positif atau
negatif dan jumlah aljabar semua penyimpangan tersebut harus nol.
10
-
2.4.3.Penyimpangan Rata-rata (Average Deviation)
Deviasi rata –rata adalah suatu indikasi ketepatan instrumen – instrumen yang
digunakan untuk pengukuran. Menurut definisi, deviasi rata – rata adalah
penjumlahan nilai – nilai mutlak dari penyimpangan – penyimpangan dibagi jumlah
pembacaan. Deviasi rata – rata dapat dinyatakan dengan:
D = n
dn
dddd n ∑=++++ ......321 (2.8)
2.4.4.Deviasi Standar
Deviasi standar (root mean square) merupakan salah satu cara untuk
menganalisis kesalahan – kesalahan acak secara statistik. Deviasi standar dari
jumlah data terbatas didefinisikan sebagai akar dari penjumlahan semua
penyimpangan (deviasi). Setelah dikuadratkan dibagi dengan banyak pembacaan.
Tetapi dalam praktek, jumlah penjumlahan yang mungkin adalah terbatas. Deviasi
standar untuk sejumlah data terbatas adalah:
11.... 2223
22
21
−=
−++++
=∑n
dn
dddd tnσ (2.9)
2.4.5.Regresi Linier
Untuk mempermudah melakukan perumusan dan analisis hubungan dua
kejadian, maka dua kejadian tersebut dilambangkan dengan variabel – variabel, yaitu
kejadian pertama dilambangkan dengan variabel X dan kejadian kedua dilambangkan
dengan variabel Y.
11
-
Yang dimaksud dengan garis regresi atau regresi adalah garis lurus atau garis
linear yang merupakan garis taksiran atau perkiraan untuk mewakili pola hubungan
antara variabel X dengan variabel Y. dalam hal ini X disebut variabel bebas dan Y di
sebut variabel tak bebas.
Garis regresi mempunyai persamaan yang umum yaitu sebagai berikut:
^Y = a + bX (2.10)
^Y = adalah nilai – nilai taksiran untuk variabel tak bebas Y
X = niai – nilai variabel bebas
a = intersep ( pintasan) bilamana X = 0
b = koefisien arah atau slope dari garis regresi
Dalam hal ini a dan b disebut koefisien regresi tersebut
persamaan regresi yang paling baik dari sebaran data adalah regresi yang
mempunyai total kuadrat kesalahan atau total kuadrat selisih atau total kuadrat error
yang paling minimum.Untuk memperoleh total kuadrat error yang paling minimum
tersebut dipakai metode kuadrat minimum ( last square method ). Dengan metode
ini, persamaan regresi linier akan mempunyai total kuadrat error minimum bilamana
koefisien a dan b dihitung dengan rumus berikut
( )∑ ∑∑ ∑ ∑
−
−= 22
2
XXn
YXXYnb (2.11)
−=
∑∑n
Xb
nY
a (2.12)
12
-
2.4.6.Kesalahan baku penaksiran
Kesalahan baku penaksiran atau disebut juga standard error of estimate oleh
bXaY +=^ kesalahan ini menunjukkan ukuran menyeluruh dari pencaran titik-titik
(X1,Y1),(X2,Y2),(X3,Y3), …….,(Xn,Yn) disekitar garis regresi. Rumus dari
kesalahan baku penaksiran :
nXYbYaY
SXY
∑ ∑ ∑−−=
2
^
(2.13)
2.4.7.Koefisien Korelasi
Salah satu teknik statistik yang kerapkali digunakan untuk mencari hubungan
antara dua variabel adalah teknik korelasi. Dua variabel yang hendak diselidiki
hubungannya itu biasa diberi kode variabel X dan variabel Y. bilamana kenaikan
nilai variabel X selalu disertai kenaikan nilai variabe Y, dan sebaliknya turunnya
nilai variabel X selalu diikuti oleh turunnya nilai variabel Y, maka hubungan seperti
itu disebut hubungan yang positif. Akan tetapi sebaliknya bilamana niliai variabel X
yang rendah selalu diikuti oleh variabel Y yang tinggi, hubungan antara kedua
varibel itu disebut hubungan negatif. Ada juga kemungkinan bahwa dua variabel
tidak mempunyai hubungan itu tidak mampunyai hubungan. Dua variabel disebut
tidak mempunyai hubungan atau dalam istilah teknis statistik dikatakan mempunyai
hubungan yang nihil, bilamana kenaikan variabel yang satu kadang-kadang desertai
turunnya nilai variabel lainnya, dan kadang – kadang diikuti oleh kenikan nilai
variabel yang lain itu.
13
-
Biasanya besar kecilnya hubungan dinyatakan dalam bilangan. Bilangan yang
menyatakan besar-kecilnya hubungan itu disebut koefisien hubungan atau koefisien
korelasi. Koefisien korelasi itu bergerak antara 0,000 sampai +1,000 atau diantara
0,000 sampai-1,000, tergantung kepada arah korelasi, nihil, positif atau
negatif.koefisien yang bertanda positif menunjukkan arah korelasi positif, koefisien
negatif menunjukkan arah korelasi yang negatif, sedang koefisien yang bernilai
0,000 menunjukkan tidak adanya korelasi antara X dan Y.
Koefisien korelasi pearson dicari dengan rumusan matematis sebagai berikut:
{ }{ }∑ ∑∑ ∑∑ ∑ ∑
−−
−=
2222 )()( YYnXXn
YXXYnr (2.14)
Perbandingan antara variasi yang dijelaskan dengan variasi total yaitu
∑∑
−−
= 2
2^
2
)()(
YYYY
r (2.15)
r2 disebut koefisien determinasi, jika tidak terdapat variasi yang dijelaskan maka
r2 = 0. jika r2 = 1 maka tidak terdapat variasi yang tidak dijelaskan. Dalam keadaan –
keadaan yang lain perbandingan tersebut terletak antara 0 dan 1, yaitu 0
-
menghasilkan tegangan yang sangat kecil yang disebut electromotive force (emf),
seperti ditunjukkan pada gambar 2.1
Gambar 2.1. Termokopel
Efek yang terjadi pada termokopel ini ditemukan oleh Thomas J. Seebeck pada tahun
1822, sehingga dinamakan efek Seebeck. emf yang dihasilkan dapat dirumuskan
sebagai berikut:
ε = ∫2
1
T
T(QA – QB)∂T (2.16)
dengan : ε : emf yang dihasilkan dalam volt
T1, T2 : Suhu sambungan dalam Celcius
QA, QB : konstanta perpindahan panas untuk logam A dan B
Persamaan (2.16) menunjukkan bahwa emf yang dihasilkan proposional dengan
perbedaan suhu dan perbedaan konstanta aliran panas, sehingga persamaan (2.16)
dapat ditulis kembali menjadi:
ε = α ( T1 – T2) (2.17)
dengan α adalah konstanta dalam Celcius
Volt = QA –QB (2.18)
emfTemperatur referensi
Ujung panas
Logam A
Logam B
15
-
Tabel 2.1. Sensitivitas Termoelectric dari beberapa material yang dikombinasikan
dengan platinum pada suhu 0oC (32oF)
Material Q (konstanta material)μV/oC μV/oFBismuth -72 -40
Constantan -35 -19,4Nickel -15 -8,3Alumel -13,6 -7,6
Nisil -10,7 -5,9Platinum 0 0Mercury +0,6 0,3Carbon +3 +1,7
Alumunium +3,5 +1,9Lead +4 +2,2Silver +6,5 +3,6
Copper +6,5 +3,6Gold +6,5 +3,6
Tungsten +7,5 +4,2Nicrosil +15,4 +8,6
Iron +18,5 +10,3Chromel +25,8 +14,3
Germanium +300 +167Silicon +440 +244
Tellurium +500 +278Selenium +900 +500
Konstanta perpindahan panas untuk jenis logam yang digunakan dalam pembuatan
Termokopel dapat dilihat pada tabel 2.1.
2.6.Penguat Tak Pembalik
Gambar 2.2 adalah sebuah penguat tak membalik, yaitu tegangan keluaran
mempunyai polaritas yang sama dengan tegangan masukannya Ei = Vo,
16
-
Gambar 2.2. Penguat tak pembalik
Karena tegangan antara terminal (+) dan terminal (-) idealnya adalah 0, maka
kedua pasak tersebut berada pada potensial yang sama, sehingga :
I = 1R
Ei (2.19)
Arus masukan ke terminal (-) opamp dapat diabaikan. Karenanya, I mengalir
melalui Rf dan penurunan tegangan melintasi Rf dinyatakan oleh VRf dan dinyatakan
sebagai:
VRf = I(Rf) = 1R
R f x Ei (2.20)
Tegangan keluaran Vo didapat dengan menambahkan penurunan tegangan melintasi
R1, yang adalah Ei, ke tegangan melintasi Rf, yang adalah VRf:
Vo = Ei + 1R
R f Ei (2.21)
Atau
Vo =
+
11
RR f Ei (2.22)
Vo
R1I
~o
Ei
x Ia=
RfI
17
-
Dengan menyusun kembali persamaan (2.31) untuk menyatakan penguatan
tegangannya, kita dapatkan
Acl = 1E
Vo = 1 +
1RR f (2.23)
2.7.LCD
LCD (Liquid Crystal Display) adalah suatu tampilan (display) dari bahan cairan
kristal yang dioperasikan dengan menggunakan sistem dot matriks. Pada
perancangan alat ini digunakan Display LCD 16 × 2 karakter, yang artinya LCD ini
memiliki 2 baris dan 16 kolom karakter, sehingga jumlah total karakter yang dapat
ditampilkan sekaligus adalah sebanyak 32 karakter. Masing-masing karakter tersebut
terbentuk dari susunan dot yang berukuran 8 baris dan 5 kolom dot.
Jenis LCD yang digunakan dalam perancangan alat ini adalah LCD
HD44780U. Untuk berhubungan dengan mikrokontroler atau perangkat elektronik
lainnya, LCD HD44780U dengan berdasarkan panjang datanya mempunyai dua buah
teknik antarmuka, yaitu antarmuka 4 bit dan antarmuka 8 bit. Pada teknik antarmuka
8 bit, data yang ditulis atau dibaca oleh mikrokontroler ke atau dari LCD dilakukan
sekali proses, teknik ini membutuhkan 8 buah jalur data dalam proses antarmukanya
sehingga juga membutuhkan 8 bit I/O pada mikrokontroler sebagai data bus (jalur
data). Pada teknik antarmuka, 4 bit penulisan atau pembacaan data dilakukan
sebanyak dua kali untuk 8 bit data, yaitu 4 bit untuk nibble atas (bit 7 hingga bit 4)
dan dilanjutkan dengan nibble bawah (bit 3 hingga bit 0).
18
-
LCD yang dipakai pada alat pencacah ini menggunakan sistem pengiriman data
8-bit dan diperlukan 10 jalur data untuk berhubungan dengan sistem mikrokontroler
PIC16F877. Kesepuluh jalur data tersebut adalah :
1. Delapan jalur data untuk mengirimkan data instruksi dan data karakter yang akan
ditampilkan, kedelapan jalur tersebut secara berurutan yaitu kaki 7 (DB0), kaki 8
(DB1), kaki 9 (DB2), kaki 10 (DB3), kaki 11 (DB4), kaki 12 (DB5), kaki 13
(DB6), kaki 14 (DB7).
2. Dua jalur lainnya adalah kaki 4 (RS/Register select), dan kaki 6 (E/Enable).
Gambar LCD 2 x 16 dapat dilihat pada gambar 2
Gambar 2.3. Display LCD 2 × 16 karakter
HD44780U memiliki beberapa bagian, yaitu:
1. Register
HD44780U memiliki dua buah register 8-bit, yaitu IR (Instruction
Register) dan DR (Data Register). IR merupakan register yang hanya dapat ditulis
untuk menyimpan kode-kode instruksi seperti clear display, cursor shift, dan juga
untuk alamat dari DDRAM (display data RAM) ataupun CGRAM (Character
Generator RAM). Sedangkan DR (Data Register) merupakan register yang dapat
19
-
ditulis maupun dibaca untuk penyimpanan sementara data yang akan ditulis atau
dibaca dari atau kedalam DDRAM ataupun CGRAM.
2. BF (Busy Flag)
Jika BF berlogika ‘1’ maka driver HD44780U akan menjalankan operasi
internal, sehingga instruksi selanjutnya tidak dapat dijalankan. Maka untuk dapat
menjalankan instruksi selanjutnya perlu diperiksa apakah BF tersebut berlogika
‘0’, atau dapat juga dilakukan dimana pengiriman data selanjutnya dilakukan
dalam waktu yang lebih lama dari waktu yang dibutuhkan untuk melakukan
eksekusi instruksi data sebelumnya.
3. AC (Address Counter)
Fungsi AC adalah untuk mengalamati DDRAM dan juga CGRAM.
4. DDRAM (Display Data RAM)
DDRAM digunakan untuk menyimpan tampilan data yang direpresentasikan
dalam bentuk 8-bit kode karakter. DDRAM memiliki kapasitas 80× 8 bit atau
jenis 80 karakter.
5. CGROM (Character Generator ROM)
CGROM merupakan RAM (Read Only Memory) berukuran 64× 8 bit yang
memungkinkan pemakai untuk memprogram bentuk karakter yang diinginkan.
LCD yang digunakan adalah LCD buatan Hitachi dengan driver HD44780U yang
memiliki 16 pin seperti yang ditunjukkan pada tabel (2.2)
20
-
Tabel 2.2 Pin pada LCD HD44780U
Nomor Pin Simbol1 VEE (0V)2 VCC (5V)3 GND (0V)4 RS5 R/W6 E7 DB08 DB1
Nomor
Pin
Simbol9 DB210 DB311 DB412 DB513 DB614 DB715 A16 K
Deskripsi pin:
1. DB0 sampai dengan DB7, merupakan jalur data yang dipakai untuk menyalurkan
kode ASCII maupun perintah pengatur kerja LCD tersebut.
2. RS (Register Select), merupakan pin yang dipakai untuk membedakan jenis data
yang dikirim ke LCD. Jika RS berlogika ‘0’ maka data yang dikirim adalah
perintah untuk mengatur kerja LCD tersebut, jika RS berlogika ‘1’ maka data
yang dikirim adalah kode ASCII yang ditampilkan.
3. R/W (Read/Write), merupakan pin yang digunakan untuk mengaktifkan
pengiriman dan pengambilan data ke dan dari LCD. Jika R/W berlogika ‘0’ maka
akan diadakan pengiriman data ke LCD, jika R/W berlogika ‘1’ maka akan
diadakan pengambilan data dari LCD.
4. E (Enable), merupakan sinyal sinkronisasi. Saat E berubah dari logika ‘1’ ke ‘0’,
maka data di DB0 s/d DB7 akan diterima atau diambil dari port mikrokontroler.
21
-
2.8.Mikrokontroler PIC16F877
Gambar 2.4 Mikrokontroler PIC16F877
Gambar 2.5 Arsitektur mikrokontroler PIC16F877
22
-
Mikrokontroler PIC16F877 seperti ditunjukkan pada gambar 2.4 merupakan
mikrokontroler yang dikembangkan dan diproduksi oleh perusahaan Microchip.
Mikrokontroler PIC16F877 termasuk dalam mikrokontroler 8 bit, yang berarti dapat
melakukan pengolahan data sebanyak 8 bit secara langsung.
Bagian-bagian utama dari mikrokontroler PIC16F877 seperti yang ditunjukkan
pada gambar 2.5, yaitu:
2.8.1.ALU (Arithmetic Logic Unit)
Merupakan bagian mikrokontroler yang bertanggungjawab terhadap operasi
aritmatika (penjumlahan dan pengurangan) dan logika, termasuk pergeseran dalam
register (shfting). PIC 16F877 mempunyai sebuah ALU 8-bit dan sebuah register
kerja W ( Working Register).
2.8.2.Memori Program
Memori program direalisasikan dalam teknologi FLASH memory yang
memungkinkan pemrogram melakukan program hapus - tulis hingga seribu kali.
Pemrograman PIC16F877 dilakukan sebelum dipasang pada rangkaian aplikasi, atau
ketika sistem sudah terpasang namun dikehendaki adanya up-dating pada program di
dalamnya. Ukuran memori program untuk PIC16F877 adalah 8 Kbyte lokasi dengan
lebar kata (word) 14 bit. Lokasi 0000h dan 0004h berturut-turut digunakan untuk
vektor reset dan vektor interupsi.
23
-
2.8.3.Program counter
Merupakan suatu register 13 bit yang berisi alamat instruksi yang sedang
dieksekusi. Program Counter terbagi menjadi byte rendah (PCL) dan byte tinggi
(PCH). PCL bersifat dapat dibaca dan ditulis, sedangkan PCH hanya dapat ditulis
melalui register PCLATH.
2.8.4.Register status
Register status berisi status aritmatika dan ALU (C,DC,Z), status reset (TO,PD)
dan bit-bit pemilih memori (IRP, RP1, RP0).
2.8.5.Pembangkit clock - osilator
Rangkaian osilator yang dibutuhkan oleh mikrokontroler untuk menyediakan
clock bagi mikrokontroler.
2.8.6.Unit I/O
Agar mikrokontroler dapat berkomunikasi dengan dunia luar, maka harus ada
terminal yang menghubungkan keduanya. Terminal tersebut dinamakan port I/O
yang dialamati sebagaimana layaknya lokasi memori.
2.8.7.Timer
Timer digunakan untuk keperluan menghasilkan tunda, mencacah pulsa,
mengetahui keberadaan proses yang sedang berlangsung, dan sebagainya.
24
-
2.8.8.Analog to Digital converter (ADC)
Mikrokontroler seri PIC16F877 mempunyai 10 bit ADC internal untuk
mengkonversi tegangan menjadi data digital. Data digital hasil konversi adalah dari
‘000’H sampai ‘3FF’H (0 – 1023). Modul ADC pada PIC16F877 mempunyai
tegangan referensi (+) dan tegangan referensi (-), kombinasi keduanya diatur melalui
software(VDD, VSS, RA2 atau RA3). ADC pada PIC16F877 mempunyai 4 register,
antara lain:
2.8.8.1.Register ADCON0
Bit 7-6 ADCS1:ADCS0 : bit untuk memilih waktu konversi
00 = Fosc/2
01 = Fosc/8
10 = Fosc/32
11 = FRC ( Clock dari RC oscilator internal)
Bit 5-3 CHS2:CHS0: bit untuk memilih chanel analog
000 = chanel 0, (RA0/AN0)
001 = chanel 1, (RA1/AN1)
010 = chanel 2, (RA2/AN2)
011 = chanel 3, (RA3/AN3)
100 = chanel 4, (RA5/AN4)
101 = chanel 5, (RE0/AN5)
25
-
110 = chanel 6, (RE1/AN6)
111 = chanel 7, (RE2/AN7)
Bit 2 GO/DONE: status konversi ADC
1 = ADC sedang bekerja ( mengeset bit ini akan mulai
mengkonversi)
0 = ADC off, ( otomatis =0 jika konversi selesai)
Bit 1 tidak dipakai
Bit 0 ADON: A/D on bit
1 = ADC on
0 = ADC shutdown (tidak mengkonsumsi arus)
2.8.8.2.Register ADCON1
Bit 7 ADFM: Format pemilihan bit hasil konversi
1= Right justified. 6 Msb ADRESH dibaca 0
0 = Left justified. 6 Lsb ADRESL dibaca 0
Bit 6 - 4 tidak dipakai
Bit 3 – 0 PCFG3:PCFG0:Konfigurasi kontrol bit port A/D
26
-
Tabel 2.3 konfigurasi kontrol bit port A/D
2.8.8.3.Register ADRESH dan ADRESL
Register ADRESH dan ADRESL adalah tempat menyimpan hasil konversi
ADC.
2.8.9.USART
Digunakan untuk berkomunikasi secara serial dengan komputer.
2.8.10.Instruksi-instruksi PIC16F877
Mikrokontroler seri PIC16 instruksi yang digunakan relatif sedikit, hanya 35
instruksi. Instruksi – instruksi tersebut terdiri atas 6 instruksi untuk transfer data, 15
instruksi aritmatika dan logika, 2 instruksi pengarah aliran program dan 3 instruksi
umum.
Instruksi – instruksi PIC16F877 juga dapat dikelompokkan berdasarkan medan
operasinya yaitu: instruksi literal dan kontrol, instruksi berorientasi byte, dan
instruksi berorientasi bit.
27
-
Tabel 2.4 Tabel instruksi PIC16F877
Mnemonic,
OperandKeterangan Siklus
14-bit opcode
Msb Lsb
Status yang
dipengaruhiPENGALAMATAN BERORIENTASI BYTE
ADDWF f,d Jumlahkan W dan f 1 00 0111 d f f f f f f f C,DC,ZANDWF f,d AND W dan f 1 00 0101 d f f f f f f f ZCLRF f Bersihkan f 1 00 0001 1 f f f f f f f ZCLRW Bersihkan w 1 00 0001 0xxx xxxx ZCOMF f,d Complement f 1 00 1001 d f f f f f f f ZDECF f,d Decrement f 1 00 0011 d f f f f f f f ZDECFSZ f,d Decrement f, lompati jika 0 1(2) 00 1011 d f f f f f f f INCF f,d Increment f 1 00 1010 d f f f f f f f ZINCFSZ f,d Increment f, lompati jika bernilai 0 1(2) 00 1111 d f f f f f f f IORWF f,d Inclusive OR W dengan f 1 00 0100 d f f f f f f f ZMOVF f,d Move f 1 00 1000 d f f f f f f f ZMOVWF f Move f ke W 1 00 0000 1 f f f f f f f NOP Tidak ada operasi 1 00 0000 0xx0 0000 RLF f,d f digeser ke kiri melewati Carry 1 00 1101 d f f f f f f f CRRF f,d f digeser ke kanan melewati Carry 1 00 1100 d f f f f f f f CSUBWF f,d Kurangi W dengan f 1 00 0010 d f f f f f f f C,DC,ZSWAPF f,d Tukar nible pada f 1 00 1110 d f f f f f f f XORWF f,d Exclusive OR W dengan f 1 00 0110 d f f f f f f f Z
PENGALAMATAN BERORIENTASI BITBCF f,b Bersihkan bit pada f 1 01 00bb b f f f f f f f BSF f,b Set bit pada f 1 01 01bb b f f f f f f f BTFSC f,b Check Bit di f, lompati jika =0 1(2) 01 10bb b f f f f f f f BTFSS f,b Check Bit di f, Lompati jika =1 1(2) 01 11bb b f f f f f f f
OPERASI LITERAL DAN KONTROLADDLW k Literal dijumlahkan dengan W 1 11 111x kkkk kkkk C,DC,ZANDLW k Literal diAND-kan dengan W 1 11 1001 kkkk kkkk ZCALL k Panggil subrutine 2 10 0kkk kkkk kkkk CLRWDT Bersihkan Wacthdog Timer 1 00 0000 0110 0100 TO,PDGOTO k Menuju ke alamat 2 10 1kkk kkkk kkkk IORLW k Inclusive OR Literal dengan W 1 11 1000 kkkk kkkk ZMOVLW k Pindahkan Literal ke W 1 11 00xx kkkk kkkk RETFIE Kembali dari Interupsi 2 00 0000 0000 1001 RETLW k Kembali dengan Literal ke W 2 11 01xx kkkk kkkk RETURN kembali ke program utama 2 00 0000 0000 1000 SLEEP Mode Standby 1 00 0000 0110 0011 TO,PDSUBLW k W dikurangi dengan literal 1 11 110x kkkk kkkk C,DC,ZXORLW k Exclusive OR Literal dengan W 1 11 1010 kkkk kkkk Z
Instruksi – instruksi pada mikrokontroler PIC16F877 ditunjukkan pada tabel 2.4
Simbol “k” pada instruksi Literal dan kontrol menunjukkan suatu nilai Literal,
suatu nilai konstanta atau label. Untuk instruksi berorientasi byte, “f” menunjukkan
28
-
suatu register file dan ”d” menunjukkan suatu tujuan yang merupakan lokasi untuk
menyimpan hasil operasi.
2.8.11.Register Status
Register status berisi status aritmetika dari ALU (C, DZ, Z), status reset (TO,
PD) dan bit-bit pemilih bank memori (IRP, RP0, RP1).
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
IRP RP1 RP0 TO PD Z DC CGambar 2.3 Format register status
Bit 0 = C (Carry) Transfer
Bit C merupakan bit yang dipengaruhi oleh operasi penjumlahan,
pengurangan, dan pergeseran.
1 = transfer tejadi dari bit tertinggi (MSB) pada hasil operasi
0 = tidak terjadi transfer
Instruksi yang mempengaruhi ADDWF, ADDLW, SUBLW, SUBWF.
Bit 1 = DC (Digit Carry) DC transfer
Bit DC juga dipengaruhi oleh operasi penjumlahan, pengurangan, dan
pergeseran. Bit DC menyatakan terjadinya transfer dari bit 3 ke bit 4 pada operasi
penjumlahan, atau transfer dari bit 4 ke bit 3 pada operasi pengurangan, atau operasi
pergeseran antara bit 3 dan bit 4 dengan arah manapun.
1 = terjadi transfer antara bit 3 dan bit 4
0 = tidak terjadi transfer
Bit 2 = Z (Zero bit)
29
-
Bit Z akan mengindikasikan apabila hasil operasi adalah nol. Bit ini akan
diset jika hasil operasi aritmetika atau logika sama dengan nol.
1 = hasil operasi sama dengan nol
0 = hasil operasi tidak sama dengan nol
Bit 3 = PD (Power Down bit)
Bit PD akan diset ketika power supply mulai ON atau setelah eksekusi
instruksi CLRWDT. Instruksi SLEEP akan mereset bit ini ketika mikrokontroler
mulai memasuki mode SLEEP.
1 = sesudah power supply ON
0 = saat eksekusi instruksi SLEEP
Bit 4 = TO (Time Out, WDT overflow)
Bit ini diset setelah power supply ON, eksekusi CLRWDT dan instruksi
SLEEP. Reset pada bit ini akan terjadi saat WDT overflow.
1 = overflow tidak terjadi
0 = overflow terjadi
Bit 5, 6 = RP1, RP0 (Request Bank Select Bit)
Kedua bit ini merupakan bit-bit pemilih bank pada mode pengalamatan
langsung. Bit RP0 tidak difungsikan karena bit ini hanya disisakan untuk keperluan
ekspansi mendatang.
01 = bank 1
00 = bank 0
Bit 7 = IRP (Register Bank Select Bit)
Bit IRP digunakan untuk memilih bank pada pengalamatan tidak langsung.
30
-
1 = bank 2 dan bank 3
2 = bank 1 dan bank 0
31
-
BAB III
PERANCANGAN PERALATAN
Alat ukur suhu ini dirancang untuk mengukur suhu mesin otomotif hingga
500oC. Untuk alasan tersebut maka sensor yang dapat dipakai untuk pengukuran
suhu mesin yaitu Termokopel tipe K, karena:
1. Termokopel tipe K banyak dipakai dan mudah diperoleh.
2. Harga relatif lebih murah.
3. Mempunyai range suhu yang relatif besar (lebih dari 500 oC ).
Untuk merealisasi perancangan alat yang akan dibangun diperlukan identifikasi
kebutuhan yaitu:
1. Tranduser atau sensor suhu untuk mengubah besaran non-listrik menjadi besaran
listrik
2. Pengkondisi sinyal
3. Pengubah sinyal elektris dari sensor menjadi data-data digital.
4. Perangkat penampil data-data digital supaya dapat dibaca dalam bentuk desimal.
Diagram blok perancangan alat ukur suhu ini ditunjukkan pada gambar 3.1.
Pertama – tama suhu ditangkap oleh sensor suhu (termokopel) kemudian diubah
menjadi tegangan. Penguat digunakan Untuk menyesuaikan level keluaran dari
termokopel dengan level tegangan Analog to Digital Convertion (ADC). ADC akan
mengubah tegangan keluaran dari pengkondisi sinyal menjadi sinyal digital. Data
digital diolah oleh mikrokontroler agar dapat ditampilkan dalam bentuk desimal oleh
LCD 16x2.
32
-
Gambar 3.1 Diagram blok sensor suhu
Berdasarkan aturan pengukuran Termokopel ( Bab 2.6 ), maka diperlukan satu
buah sensor lagi untuk mengukur suhu sambungan antara termokopel dengan
penguat. Sensor suhu yang digunakan adalah LM35 dengan resolusi 10mV/oC.
3.1.Perancangan ADC
Suhu yang akan diukur adalah 0oC hingga 500oC dengan resolusi 0,5oC,
sehingga ADC yang diperlukan untuk mendapatkan resolusi 0,5oC. Karena ADC
yang digunakan adalah ADC internal yang digunakan adalah ADC internal dari
PIC16F877 maka proses konversi dilakukan melalui software.
3.1.1.Inisialisasi ADC
Proses inisialisasi pada ADC adalah untuk menentukan port yang digunakan
sebagai input analog, tegangan referensi, dan kecepatan konversi. Berikut tahap –
tahap proses inisisalisasi ADC :
1. RA0 – RA5 sebagai input dan port RA6 dan RA7 sebagai output yaitu dengan
mengisi register TRISA dengan b’00111111’.
penguat
Pic16f877
Lcd 16 x 2
ADCLm35VCC
termokopel
8 bit
33
-
2. ADFM untuk left justified, Vref - = Vs, Vref + = AN3, input Analog = AN0
(port RA0) yaitu dengan mengisi register ADCON1 dengan b’01000001’.
3.1.2.Konversi ADC
Supaya ADC dapat mengkonversi data input analog maka GO/DONE bit pada
register ADCON0 harus diset high, maka ADC akan mulai mengkonversi input
analog, kemudian tunggu hingga ADC selesai mengkonversi.
3.2.Perancangan Pengkondisi Sinyal
Pengkondisi sinyal yang diinginkan adalah agar dapat menyesuaikan level
tegangan dari termokopel dengan level ADC. Tegangan keluaran termokopel yang
dihasilkan oleh termokopel terhadap perubahan suhu dapat dilihat pada tabel 3.1
dibawah. Dari tabel 3.1 dapat dilihat bahwa keluaran termokopel sangat kecil
sehingga perlu adanya penguatan untuk menyesuaikan sinyal keluaran dari
termokopel dengan sinyal yang menuju ke mikrokontroler.
Tabel. 3.1 Tabel tegangan keluaran termokopel tipe K terhadap temperatur
(referensi termokopel 0 oC)
Temperatur(oC)
Output Voltage(mV)
-200 -7,88-100 -3,94
0 0100 3,94200 7,88300 11,82400 15,76500 19,7600 23,64700 27,58
34
-
Temperatur(oC)
Output Voltage(mV)
800 31,52900 35,46
1000 39,41100 43,341200 47,281300 51,22
Gambar 3.2 adalah grafik emf dari termokopel tipe K terhadap perubahan
temperatur berdasarkan dari tabel 3.1. Pada gambar 3.2 tersebut keluaran termokopel
pada suhu 0oC hingga 500oC cukup linear sehingga tidak perlu adanya linearisasi
keluaran termokopel.
Perubahan emf termokopel Tipe K terhadap suhu
51.22
35.46
15.76
-3.94
-20
-10
0
10
20
30
40
50
60
-400 -200 0 200 400 600 800 1000 1200 1400
suhu (oC)
emf
(mV)
Gambar 3.2 Grafik perubahan emf termokopel Tipe K terhadap suhu
Dari tabel 3.1 dapat dilihat bahwa saat tegangan termokopel 3,94mV
suhunya adalah 100oC, dengan kata lain saat tegangan termokopel 3,94mV maka
tegangan input ke ADC adalah 1V ( keluaran dari LCD saat input 1V = 100oC).
sehingga dengan persamaan (2.32) penguatan adalah:
Acl = 31094,31
−x
35
-
Dari didapat:
Acl = 253,81
sinyal dari termokopel dikuatkan menggunakan penguat tak membalik, sehingga
dari persamaan (2.32) diperoleh:
Acl =
+
11
RR f
dengan memperhitungkan komponen resistor yang terdapat di pasaran dan untuk
mempermudah perhitungan maka penguatan dibulatkan menjadi 254x, dengan
persamaan (2.32) dan R1 = 1k sehingga :
254 = 1 + 1000
fR
didapat:
Rf = 253 Kohm
Dengan menyesuaikan nilai resistor yang ada di pasaran maka Rf = 220 kohm+ 33
kohm = 253 Kohm.
Keluaran dari lm35 adalah berupa tegangan dan digunakan sebagai tegangan
referensi oleh potensiometer. Keluaran dari potensiometer digunakan sebagai
referensi penguat, sebagai pengkalibrasi jika suhu pada tampilan tidak cocok dengan
suhu referensi.
.
36
-
1K
To mikrokontroler
+-
TERMOKOPEL
+-
VCC
VCC
VCC
5K
13
2
+
-LM358
3
21
84
+
-LF353
3
21
84
220K
VEE
VCC
1K
LM35
1 2
3
VS+ VOUT
GN
D1K
33K
Gambar 3.3 Rangkaian akhir pengkondisi sinyal
Rangkaian akhir pengkondisi sinyal dapat dilihat pada gambar 3.3.
3.3.Perancangan LCD
Alat pengukur suhu berbasis Mikrokontroler PIC16F877 ini menggunakan alat
penampil berupa sebuah LCD 16X2. dari bab 2.7. LCD yang digunakan adalah
HD44780U, LCD ini dapat menampilkan karakter sepanjang 32 karakter dengan 2
baris tampilan. Kontras dari display diatur dengan potensiometer R2. pin enable dari
display dihubungkan pada port C pin 2 dari mikrokontroler, jika kaki ini
mendapatkan sinyal high maka mikrokontroler akan membaca data dari display dan
jika kaki ini mendapatkan sinyal low, maka mikrokontroler akan mengirimkan data
ke display. Pada alat ukur ini data yang dikirimkan ke display merupakan data 8 bit
dengan menggunakan pin data D0 – D7 dari display yang dihubungkan ke port B
pada mikrokontroler.
37
-
PIC16F877
151617
3334353637383940
RCO/T1OSO/T1CKIRC1/T1OSI/CCP2
RC2/CCP1
RBO/INTRB1RB2RB3RB4RB5RB6RB7
VCC
lcd 16 x 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
R1
POT13
2
Gambar 3.4 Rangkaian LCD
3.3.1.Tampilan LCD
Ketika alat pengukur suhu dihidupkan pertama kali maka LCD akan
menampilkan karakter seperti ditunjukkan pada gambar 3.5. kemudian tampilan
karakter pada gambar 3.5 akan hilang dan dilanjutkan dengan menampilkan karakter
seperti pada gambar 3.6. karakter 000oC seperti yang ditunjukkan pada gambar 3.6
akan berubah-ubah sesuai dengan besaran suhu yang terukur
Gambar 3.5 Tampilan nama dan nomor mahasiswa
38
Kristianto WNIM: 015114021
-
Gambar 3.6 Tampilan hasil pengukuran suhu
3.4.Diagram Alir:
mulai
Inisialisasi LCD
Ambil data suhu
TampilkanHasil
pengukuran
Tampilan perkenalan
Tunda 1detik
Konversi ke desimal
Konversi ke ASCII
Gambar 3.7 Diagram alir program utama
39
sensor suhusuhu = 0000 oC
-
Proses pengolahan data pada mikrokontroler agar data dapat di tampilkan pada
layar LCD2x16 dan komputer digambarkan dengan diagram alir seperti pada gambar
3.7 program dimulai dengan inisialisasi LCD kemudian mengirimkan karakter
tampilan perkenalan seperti pada gambar 3.5. kemudian ADC pada mikrokontroler
akan mulai membaca tegangan keluaran dari pengkondisi sinyal dan mengubahnya
menjadi data biner (sinyal digital).
Sebelum ditampilkan ke LCD, data-data biner ini terlebih dahulu harus diubah
menjadi nilai-nilai suhu dengan proses konversi. Nilai –nilai suhu tersebut masih
dalam bentuk hexa. Untuk beberapa proses tertentu seperti kalkulasi data, bentuk
hexa ini sudah dapat diproses. Namun agar dapat ditampilkan ke LCD dengan bentuk
bilangan yang dikenali umum, yaitu bentuk bilangan desimal, maka terlebih dahulu
dilakukan proses konversi dari hexa de desimal dan dilanjutkan ke bentuk ASCII.
Agar nilai suhu yang tampil pada layar LCD dapat terlihat dengan jelas,
program akan menambahkan waktu tunda selama satu detik sebelum proses
pengambilan nilai suhu yang baru dilakukan. Oleh karena itu, perubahan suhu akan
dideteksi setelah waktu tunda selama satu detik tersebut terlewati.
40
-
BAB IV
HASIL PENGUJIAN DAN PEMBAHASAN
4.1.Hasil Pengukuran Suhu Dengan Media Uap Air
Pengujian dan pengambilan data pengukuran suhu dilakukan dengan
membandingkan keluaran termometer referensi dengan keluaran termometer digital
rancangan yang terlihat pada layar LCD. Media yang dipakai saat pengujian adalah
suhu uap air hasil pemanasan dengan pemanas listrik. Hasil pengukuran tersebut
dapat dilihat pada tabel berikut.
Tabel 4.2 Data hasil pengukuran suhu dengan media uap air
no
suhu pembanding suhu tampilan
rata rata galat tegangansuhu tampilan atau keluaran LM35
oC oC oC selisih mV
1 10
119.5
10.510 10.25
1 308.4-0.5 308.40.5 308.40 308.4
2 22
2121.522.522 21.75
1 308.4-0.5 308.40.5 308.40 308.4
3 25
2424.523.523 23.75
-1 308.4-0.5 308.4-1.5 308.4-2 308.4
4 30
2929.530.531.5 30.125
-1 308.4-0.5 308.40.5 308.41.5 308.4
5 35
35.53534
34.5 34.75
0.5 308.40 308.4-1 308.4
-0.5 308.4
6 40
4140
39,539 40
1 308.40 308.4
-0.5 308.4-1 308.4
41
-
no
suhu
pembandingsuhu
tampilan
rata rata galat tegangansuhu
tampilan atau keluaran LM35oC oC oC selisih mV
7 45
44.545
45.545.5 45.125
-0.5 308.40 308.4
0.5 308.40.5 308.4
8 50
5150.55049 50.125
1 308.40.5 308.40 308.4-1 308.4
9 55
5554.55456 54.875
0 308.40.5 308.4-1 308.41 308.4
10 60
59.5596160 59.875
-0.5 308.4-1 308.41 308.40 308.4
11 65
65.5646665 65.125
0.5 308.4-1 308.41 308.40 308.4
12 70
6968
69.569 68.875
-1 308.4-2 308.4
-0.5 308.4-1 308.4
13 75
7474.575
74.5 74.5
-1 308.4-0.5 308.4
0 308.4-0.5 308.4
14 80
7978
79.580 79.125
-1 308.4-2 308.4
-0.5 308.40 308.4
15 85
8585.584.585 85
0 308.40.5 308.4-0.5 308.4
0 308.4
16 90
89.5908989 89.375
-0.5 308.40 308.4-1 308.4-1 308.4
42
-
Dari tabel 4.1 diatas dapat dilukiskan perbandingan antara termometer
referensi dan hasil rata- rata pengukuran pada grafik dengan bentuk scatter. Anggap
termometer referensi sebagai x dan hasil pengukuran sebagai y maka didapat gambar
grafik sebagai berikut.
Grafik Hubungan Suhu Terukur terhadap Suhu Referensi
89.375
65
50.125
34.75
0102030405060708090
100
0 20 40 60 80 100
suhu referensi (oC)
suhu
yan
g te
ruku
r (oC
)
Gambar 4.1. Grafik hubungan suhu terukur terhadap suhu referensi
Dari hasil pengukuran pada tabel 4.1 dapat dianalisis dengan regeresi linier.
Pembacaan termometer referensi dianggap sebagai x dan rata – rata pembacaan
termometer hasil pengukuran dianggap sebagai y.
Pengolahan data ditunjukkan dibawah ini dengan menggunakan regresi linier
menghasilkan:
N = 16
∑x = 837
∑y = 832,625
∑ 2x = 52559
∑ 2y = 52011,27
∑ xy = 52282,88
43
-
Dengan memakai persamaan (2.11) maka koefisien regresinya adalah:
b = ( )∑ ∑∑ ∑ ∑
−
−22 XXn
YXXYn =
b = ( ) ( ) ( )
( ) ( ) 28325225916625,83283788,5228216
−−
= 0,9946
a =
−16837
9946,016
625,832 = 0,0083
jadi persamaan regresinya adalah XY 9946,00083,0^
+= , dengan persamaan
tersebut kita dapat menentukan taksiran nilai – nilai Y dan kuadrat kesalahannya.
Yaitu disajikan pada tabel berikut:
Tabel 4.3 Tabel hasil komputasi kecocokan alat ukur
No X Y X2 Y2 XY ^Y 2^)( YY −
1 10 10.25 100 105.0625 102.5 9.883 0.1346892 22 21.75 484 473.0625 478.5 21.835 0.0072253 25 23.75 625 564.0625 593.75 24.823 1.1513294 30 30.125 900 907.5156 903.75 29.803 0.1036845 35 34.75 1225 1207.563 1216.25 34.783 0.0010896 40 40 1600 1600 1600 39.763 0.0561697 45 45.125 2025 2036.266 2030.625 44.743 0.1459248 50 50.125 2500 2512.516 2506.25 49.723 0.1616049 55 54.875 3025 3011.266 3018.125 54.703 0.029584
10 60 59.875 3600 3585.016 3592.5 59.683 0.03686411 65 65 4225 4241.266 4233.125 64.663 0.21344412 70 68.875 4900 4743.766 4821.25 69.643 0.58982413 75 74.5 5625 5550.25 5587.5 74.623 0.01512914 80 79.125 6400 6260.766 6330 79.603 0.22848415 85 85 7225 7225 7225 84.583 0.17388916 90 89.375 8100 7987.891 8043.75 89.563 0.035344
∑ 837 832.625 52559 52011.27 52282.88 832.42 3.084275
44
-
dari tabel diperoleh total kuadrat kesalahan ∑
−
2^YY = 3,084275
dengan memakai rumus pada persamaan (2.13) maka kesalahan baku dari
taksiran regresi tersebut adalah
n
YYS
XY
∑
−
=
2^
^
= 16
084275,3 =0,43905
Dari persamaan regresi XY 9946,00083,0^
+= ditunjukkan bahwa arah garis
regresi mendekati 1 ini berarti bahwa hasil pengukuran linear.
Dengan memakai rumus pada persamaan (2.14) maka Koefisien korelasinya
adalah:
{ }{ }∑ ∑∑ ∑∑ ∑ ∑
−−
−=
2222 )()( YYnXXn
YXXYnr
= { }{ }22 )625,832()27,52011(16)837()52559(16)625,832)(837()88,52282(16
−−
−
= 0.9999
Oleh karena r = 0,9999 terletak antara 0,9 dan 1,0 maka terdapat hubungan
positif yang kuat antara suhu yang terukur pada alat ukur hasil rancangan dengan alat
ukur referensi.
Koefisien determinasinya, yaitu r2 = (0,9999)2 = 0,9996 = 99,96%, artinya
variasi hasil pengukuran suhu yang dapat dijelaskan oleh variasi peningkatan suhu
referensi oleh persamaan XY 9946,00083,0^
+= adalah sebesar 99,96 % sisanya
45
-
sebesar 0,04% dijelaskan oleh faktor lain diluar variabel pada persamaan regresi
tersebut.
4.2.Pengujian Dengan Media Api
Pengujian dengan menggunakan media api ini dilakukan untuk menguji
apakah alat ini mampu untuk mengukur hingga suhu 500oC. Pengujian dan
pengambilan data ini dilakukan dengan mendekatkan kedua ujung sensor alat ukur
dan sensor alat ukur referensi pada media api. Agar pengamatan dapat mudah maka
yang diamati adalah penurunan suhu dari alat ukur dan alat ukur referensi. Data hasil
pengukuran disajikan pada tabel 4.4:
Tabel 4.4 pengujian dengan media api
nosuhu
referensi (oC)
suhu yang terukur (oC)
error %
1 100 125 82 200 222 73 300 254 154 400 297 345 500 431 236 Over Load 500
Rata-rata 300 304.8333333 17.4
Dari tabel 4.4 diatas dapat dilihat bahwa alat ukur ini mampu untuk
menampilkan suhu yang terukur hingga 500 oC. dari data dapat dilihat bahwa error
yang terjadi untuk pengukuran dengan media api lebih besar dari pada pengukuran
dengan media air, hal ini disebabkan karena perbedaan kecepatan penurunan suhu
sensor pada alat dan sensor pada alat ukur referensi mempunyai kecepatan penurunan
suhu yang berbeda.
46
-
4.3.Pengujian Dengan Media Es
Pengujian dengan media es ini dilakukan untuk menguji kemampuan alat
ukur untuk suhu yang rendah. Pengujian ini dilakukan dengan mengukur uap es dari
es dengan mengatur jarak sensor terhadap balok es. Data dari hasil pengukuran
ditunjukkan pada tabel 4.5 berikut:
Tabel 4.5 data hasil pengujian dengan media es
noSuhu
terukur (oC)
Suhu referensi
(oC)error %
1 10 10.25 12 22 21.75 13 23 23 04 24 24 05 25 24.5 26 26 27 4.5
rata - rata 21.66667 21.75 1.417
Dari data tabel 4.5 dapat dilihat bahwa alat ini mampu untuk mengukur suhu
yang rendah dengan error yang terjadi relatif lebih rendah.
47
-
BAB V
KESIMPULAN DAN SARAN
5.1.Kesimpulan
Dari hasil pengamatan dan percobaan yang telah diuraikan pada bagian
sebelumnya maka dapat diambil beberapa kesimpulan antara lain:
1. Alat ini mampu mengukur suhu hingga suhu 500oC dengan resolusi 0,5oC
2. Semakin besar suhu yang diukur galat yang terjadi semakin besar hingga
mencapai 23 % pada pengukuran dengan media api
3. Berbedanya media yang diukur error yang terjadi pada pengukuran juga berbeda
4. Alat ini lebih cocok untuk mengukur suhu uap air atau gas dibandingkan untuk
untuk mengukur suhu sebuah benda padat ataupun api.
5.2.Saran
Alat ukur yang telah dibuat masih jauh dari sempurna. Untuk pengembangan
lebih lanjut maka saran dari penulis agar alat bisa lebih baik yaitu: sensor yang
digunakan untuk mengukur suhu referensi sebaiknya digunakan sensor dengan
sensitivitas yang sama dengan termokopel.
48
-
DAFTAR PUSTAKA
Ramon Pallas-areny, sensors and signal conditioning, second edition, John Willey &
sons, inc.
Sears and Semansky, 2002, Fisika Universitas edisi ke sepuluh
J. Michael Jacob. 1989. Prentice Hall, Inc. Engle Wood Cliffs, NJ. USA
Herman Widodo Soemitro. 1982. “Penguat Operasional dan Rangkaian Terpadu
Linier edisi kedua” (Robert F. Coughlin dan Frederick F. Driscoll..
terjemahan). Operational Amplifier and Liner Integrated Circuits second
edition. Buku asli diterbitkan tahun 1982
William D. Stanley. 1994. Operational Amplifier With Linear Integrated Circuits
(third edition) , Macmillan College Publishing Company, inc.United States of
America.
Andi Pratomo, 2004, Belajar Cepat dan Mudah Mikrokontroler PIC16F877, PT Elex
Media Komputindo, Jakarta.
Paulus Andi Nalwa, 2004, Panduan Praktis Pengguanaan dan Antarmuka Modul
LCD M1632, PT Elex Media Komputindo, Jakarta.
Dr. Boediono dan Dr.Ir. Wayan Koster, M.M. 2001, Teori dan Aplikasi Statistika
dan Probabilitas, Jakarta.
http://www.Hobby-elec.com/
Http://www.microchip.com/
Http://www.datasheetcatalog.com/
Http://www.electroniclab.com/
49
http://www.electroniclab.com/http://www.datasheetcatalog.com/http://www.microchip.com/http://www.Hobby-elec.com/
-
;------------------------------------------------------------------------------; ALAT UKUR SUHU DENGAN SENSOR TERMOKOPEL BERBASIS
MIKROKONTROLER PIC16F877A; OLEH : KRISTIANTO WIDIATMOKO; NIM : 015114021;------------------------------------------------------------------------------;; **LCD Pinouts; 1 Vss - Ground, 3rd pin of the potentiometer; 2 Vcc - 5V DC, 1st pin of the potentiometer; 3 Vee - Middle pin of the potentiometer; 4 RS - RA0 (Data - 1, Instruction - 0); 5 R/W - RA1 (R - 1, W - 0); 6 E - RA2 (Enable Pulse); 7 DB0 - RB0 (LSB); 8 DB1 - RB1; 9 DB2 - RB2; 10 DB3 - RB3 (Lower 4 bits); 11 DB4 - RB4 (Upper 4 bits); 12 DB5 - RB5; 13 DB6 - RB6; 14 DB7 - RB7 (MSB);; Instruction Cycle Time = 1 / (4MHz / 4) = 1us per instruction;-------------------------------------------------------------------------------
N EQU 0x20FIXDELAY EQU 0x21 ; General Purpose Registers.sela equ 0x22sela1 equ 0x23R0L equ 0x24R0H equ 0x25R1L equ 0x26SUBM equ 0x27SUBD equ 0x28RATUSAN equ 0x29PULUHAN equ 0x2ASATUAN equ 0x2Bvisdelay EQU 0x2CdataL EQU 0x2D
tempL EQU 0x2E ; Temp. variable registers.tempH EQU 0x2FtempCfract EQU 0x30
-
tempHtrans EQU 0x31 ; Data to be passed to PC.tempLtrans EQU 0x32
TAMBAH EQU 0X33KALI32 EQU 0X34KALI2 EQU 0X35KOMA EQU 0X36DID EQU 0X37
;---------------------------------------------------------------------------;PROGRAM UTAMA DARI ALAT UKUR SUHU;---------------------------------------------------------------------------
org 0x0000BCF PCLATH,3BCF PCLATH,4goto startorg 0x0004
start call initports ; Inisialisasi Port output/input.
call INITLCD ; Inisialisasi LCD.maincall
call tampilan1 ; tampilan perkenalancall clrscreencall tampilan2
ulang CALL nextline7 ; tampilan hasil suhu yang terukurCALL tempconvgoto ulang
goto start
;----------------------------------------------------------------------------; Subrutin untuk inisialisasi PORT Input/Output.;----------------------------------------------------------------------------
initportsbanksel PORTB ;konfigurasi bank0clrf PORTB ; Clear PORT.clrf PORTCclrf PORTA
banksel TRISB ;konfigurasi input output untuk PORTBmovlw 0x00 ; PORTB and PORTC sebagai Output.movwf TRISB
-
movwf TRISCmovlw 0x3fmovwf TRISARETURN
;----------------------------------------------------------------------------; Inisialisasi ADC;----------------------------------------------------------------------------
initadcbanksel TRISA ; konfigurasi I/O pada PORTA.movlw b'00111111' ; Inisialisasi RA0 - RA5 sebagai Input.movwf TRISA
banksel ADCON1 ; Konfigurasi register ADCON1.movlw b'00000101' ; ADFM for Left Justified, Vref-=Vss
Vref+=AN3 Analog In=AN0, AN1 (R/C = 1/2).movwf ADCON1
banksel ADCON0 ; Konfigurasi register ADCON0.movlw b'01000001' ; Fosc/8, Channel 0, Enable the ADC
(Default Chan. 0)movwf ADCON0
return;---------------------------------------------------------------------------; rutine mulai mengkonversi ADC dan tunggu hingga selesai mengkonversi.;---------------------------------------------------------------------------
startadcbanksel ADCON0 ; konfigurasi register ADCON0.bsf ADCON0, GO ; Set "GO" bit untuk mulai
mengkonversi AD.
banksel ADCON0 ; konfigursi register ADCON0.checkdone btfsc ADCON0, GO ; apakah selesai mengkonversi?
goto checkdone ; jika belum, dicek lagi (kembali ke checkdone).
return ; jika sudah selesai kembali ke program utama.
;---------------------------------------------------------------------------; memilih chanel AN0 sebagai input Analog.;---------------------------------------------------------------------------
-
chan0banksel ADCON0bcf ADCON0, 5bcf ADCON0, 4bcf ADCON0, 3
return;----------------------------------------------------------------------------; subrutin untuk mengkonversi dari anlog input menjadi bilangan heksa.;----------------------------------------------------------------------------
tempconvcall initadc ; Inisialisasi dan mulai ADC pada AN0.call chan0call delay20 ; Delay untuk menunggu hingga
capacitor penuh.call startadc ; Start ADC dan tunggu hingga selesai.
banksel ADRESH ; hasil konversi high byte diletakkan di alamat tempH.
movf ADRESH, wmovwf tempHmovwf tempHtrans
banksel ADRESL ; hasil konversi low byte diletakkan di tempL.
movf ADRESL, wbanksel tempLmovwf tempL
MOVLW 0X02MOVWF DID
arrgtemp; Rearrange tempL dari xx00 0000 ke
0000 00xx.BCF STATUS,CRLF tempH,f ; geser isi tempH kekiri 1xbtfsc STATUS,C ; apakah carry =0?GOTO arrg1 ; jika tidak lompat ke arrg1
BCF STATUS,C ; jika ya geser tempL 1xRLF tempL,fbtfsc STATUS,C ; apakah carry=0?BSF tempH,0 ; jika tidak set bit pertama tempHGOTO BLK ; jika ya check apakah sudah bergeser 2x
-
arrg1BCF STATUS,C ; geser tempL 1xRLF tempL,fbtfsc STATUS,C ; apakah carry=0?BSF tempH,0 ; jika tidak set bit pertama tempHBSF tempL,0 ; jika ya set bit pertama tempL
BLKDECFSZ DID,1 ; apakah sudah digeser 2xGOTO arrgtemp ; jika belum kembali geser
;----------------------------------------------------------------------------;memisahkan high nibble dengan low nibble;high nibble di simpan di R0L dan low nibble disimpan di R0H;------------------------------------------------------------------------------
PISAHMOVF tempH,W ;pindahkan isi register ADRESH
ke register WMOVWF R0L ;simpan di R0LMOVLW 0XF0 ;jumlahkan R0L dengan 'F0'HANDWF R0L,FSWAPF R0L,F ;hasil disimpan di R0LMOVF tempH,W ;pindahkan isi register ADRESH
ke register WMOVWF R0H ;simpan di R0LMOVLW 0X0F ;jumlahkan dengan 0FANDWF R0H,F ;simpan hasil di R0H
;------------------------------------------------------;MENDAPATKAN NILAI RATUSAN;tempL DIKALI 32 KEMUDIAN DI BAGI 25;------------------------------------------------------
CLRF RATUSAN ;bersihkan isi register RATUSAN
MOVLW 0x1f ;isi akumulator dengan 1fMOVWF KALI32 ;pindahkan ke register KALI32MOVFtempL,w ;pindahkan hasil konversi ADC
ke akumulatorlagi ADDWF tempL,f ;jumlahkan tempL dengan
-
akumulator, hasil disimpan di tempLdecfsz kali32,1 ;turunkan regKALI32 1x, hasil simpan
di KALI32goto lagi ;menjumlah lagiMOVLW 0x19 ;isi akumulator dengan 19H (25d)
BAGI25 INCF RATUSAN,1 ;naikkan reg RATUSAN 1XSUBWF tempL,f ;kurangi tempL dengan
akumulator, hasil disimpan di tempLBTFSC STATUS,C ;apakah hasil =(-)? jika y lompati inst
berikutnyaGOTO BAGI25 ;membagi lagiDECF RATUSAN,1 ;turunkan RATUSAN 1xADDWF tempL,F ;jumlahkan tempL dengan
akumulator hasil disimpan di tempL
;-------------------------------------------------------;R0L DIKALIKAN 2 KEMUDIAN DIBAGI 25;HASIL DIJUMLAHKAN DENGAN RATUSAN;SISANYA DIJUMLAHKAN DENGAN R0H;-------------------------------------------------------
MOVLW 0x01 ;isi akumulator dengan 01hMOVWF KALI2 ;pindahkan ke reg kali2MOVFR0L,W ;pindahkan isi R0L ke
akumulatorAGAIN ADDWF R0L,F ;jumlahkan R0L dengan akumulator dan hasil disimpan di R0L
decfsz KALI2,1 ;turunkan reg kali2 1x, jika sudah 0 lompati instruksi berikutnya
GOTO AGAIN ;menjumlah lagiMOVFtempL,W ;pindahkan isi reg tempL ke
akumulatorADDWF R0L,F ;jumlahkan R0L dengan
akumulator
MOVLW 0x19 ;isi akumulator dengan 19h (25d)BAGI19 INCF RATUSAN,1 ;naikkan register RATUSAN 1x
SUBWF R0L,F ;kurangi R0L dengan 19h, hasil disimpan di R0L
BTFSC STATUS,C ;hasil = (-)? jika ya lompati instruksi berikutnya
GOTO BAGI19 ;mengurang lagiDECF RATUSAN,1 ;turunkan register RATUSAN 1xADDWF R0L,f ;jumlahkan isi register R0L
dengan akumulator hasil disimpan di R0L
;-------------------------------------------------------
-
;hasil penjumlahan dibagi 25 hasil dijumlahkan dengan RATUSAN;sisa dikali 8;-------------------------------------------------------
MOVLW 0x07 ;isi akumulator dengan 07hMOVWF KALI2 ;pindahkan ke akumulatorMOVFR0L,W ;pindahkan isi register R0L ke
akumulatorAGAIN1 ADDWF R0L,F ;jumlahkan R0L dengan akumulator
decfsz KALI2,1 ;turunkan register KALI2 1x, jika sudah 0 lompati instruksi berikutnya
GOTO AGAIN1 ;menjumlah lagiMOVFR0L,W ;pindahkan isi R0L ke
akumulatorADDWF R0H,F ;jumlahkan R0H dengan
akumulator hasil disimpan di R0H
;-------------------------------------------------------;MENDAPATKAN NILAI PULUHAN;R0H DI DIBAGI 20;-------------------------------------------------------
CLRF PULUHAN ;bersihkan PULUHANMOVLW 0X14 ;isi akumulator dengan 14h (20d)
BAGI14 INCF PULUHAN,1 ;naikan register PULUHAN 1xSUBWF R0H,F ;kurangi R0H dengan
akumulator, hasil disimpan di R0HBTFSC STATUS,C ;apakah hasil= (-)? jika y lompati
instruksi berikutnyaGOTO BAGI14 ;mungurang lagiDECF PULUHAN,1 ;turunkan PULUHAN 1xADDWF R0H,F ;jumlahkan R0H dengan
akumulator, hasil disimpan di R0H;-------------------------------------------------------;untuk mendapatkan nilai satuan;R0H dibagi 2 kemudian sisanya ditaruh dikoma;-------------------------------------------------------
CLRF SATUAN ;bersihkan SATUANMOVLW 0X02 ;isi akumulator dengan 02h
BAGI2H INCF SATUAN,1 ;naikkan SATUAN 1xSUBWF R0H,F ;kurangi R0H dengan akumulator
hasil disimpan di R0HBTFSC STATUS,C ;apakah hasil = (-)? jika y lompati
instruksi berikutnyaGOTO BAGI2H ;mengurang lagiDECF SATUAN,1 ;turunkan SATUAN 1x
-
ADDWF R0H,F ;jumlahkan R0H dengan akumulator, hasil disimpan di R0H
CLRF KOMA ;bersihkan KOMAMOVLW 0x04 ;isi akumulator dengan 04hMOVWF KALI2 ;pindahkan ke KALI2MOVFR0H,W ;pindahkan R0H ke akumulator
AGAIN2 ADDWF R0H,F ;jumlahkan akumulator dengan R0H, hasil disimpan di R0H
decfsz KALI2,1 ;turunkan KALI2 1x, jika sudah 0 lompati instruksi berikutnya
GOTO AGAIN2 ;menjumlah lagiMOVFR0H,W ;pindahkan R0H ke akumulatorMOVWF KOMA ;pindahkan isi akumulator
ke KOMA
MOVLW 0X0A ;isi akumulator dengan 0Ah (10d)SISA INCF RATUSAN,1 ;naikkan RATUSAN 1X
SUBWF PULUHAN,F ;kurangi puluhan dengan akumulator, hasil disimpan di PULUHAN
BTFSC STATUS,C ;apakah hasil =(-)? jika y lompati instruksi berikutnya
GOTO SISA ;mengurang lagiDECF RATUSAN,1 ;kurangi RATUSAN 1XADDWF PULUHAN,F ;jumlahkan PULUHAN dengan
akumulator hasil disimpan di PULUHAN
MOVLW 0X0A ;isi akumulator dengan 0Ah (10d)SISA1 INCF PULUHAN,1 ;naikkan PULUHAN 1X
SUBWF SATUAN,F ;kurangi SATUAN dengan akumulator, hasil disimpan di SATUAN
BTFSC STATUS,C ;apakah hasil = (-)? jika y lompati instruksi berikutnya
GOTO SISA1 ;mengurang lagiDECF PULUHAN,1 ;turunkan PULUHAN 1XADDWF SATUAN,F ;jumlahkan SATUAN dengan
akumulator, hasil disimpan di SATUAN
MOVLW 0X0A ;isi akumulator dengan 0Ah (10d)SISA2 INCF SATUAN,1 ;naikkan SATUAN 1x
SUBWF KOMA,F ;kurangi KOMA dengan akumulator, hasil disimpan di KOMA
BTFSC STATUS,C ;apakah hasil = (-)? jika y lompati instruksi berikutnya
GOTO SISA2 ;mengurang lagi
-
DECF SATUAN,1 ;turunkan SATUAN 1xADDWF KOMA,F ;jumlahkan akumulator dengan
KOMA, hasil disimpan di KOMA;----------------------------------------------------------;mengubah bill heksa menjadi ascii dan hasil dikirim ke LCD;----------------------------------------------------------
MOVFRATUSAN,W ;pindahkan isi reg RATUSAN ke akumulator
ADDLW 0X30 ;jumlahkan dengan 30H untuk mengkonversi ke ASCII
CALL PUTCHAR ;panggil PUTCHARGOTO KRMPUL ;lompat ke KRMPUL
KRMPUL MOVFPULUHAN,W ;pindahkan PULUHAN ke akumulator
ADDLW 0X30 ;jumlahkan dengan 30HCALL PUTCHAR ;kirim ke LCD
KRMSATUAN MOVFSATUAN,W ;pindahkan SATUAN ke akumulator
ADDLW 0X30 ;jumlahkan dengan 30HCALL PUTCHAR
KIRIMKOMA MOVLW B'00101100' ;karakter koma (,)CALL PUTCHAR
MOVFKOMA,W ;pindahkan KOMA ke akumulator
ADDLW 0X30 ;jumlahakn dengan 30HCALL PUTCHAR
MOVLW " " ;spasiCALL PUTCHARMOVLW b'11011111' ;derajatCALL PUTCHARMOVLW "C" ;karakter "c"CALL PUTCHARMOVLW " "CALL PUTCHARMOVLW " "CALL PUTCHAR
return
-
;------------------------------------------------------------; Inisialisasi LCD.;------------------------------------------------------------
INITLCDBANKSEL PORTBMOVLW 0xE6 ; 46ms delayCALL NDELAY ; tunggu hingga VCC pada LCD
mencapai 5V
BCF PORTC, 0 ; Clear RS untuk mengeset Instruction Reg.
BCF PORTC, 1 ; Clear R/W untuk menulis
MOVLW B'00111011' ; Function Set to 8 bits, 2 lines and 5x7 dot matrix
MOVWF PORTBCALL ENABLEPULSECALL DELAY50CALL ENABLEPULSECALL DELAY50CALL ENABLEPULSECALL DELAY50 ; delay 50us dan tunggu hingga
instruksi selesai
MOVLW B'00001000' ; Display OFFMOVWF PORTBCALL ENABLEPULSECALL DELAY50 ; delay 50us dan tunggu hingga
instruksi selesai
MOVLW B'00000001' ; bersihkan layarMOVWF PORTBCALL ENABLEPULSEMOVLW 0x09 ; delay 1.8ms tunggu hingga
instruksi selesaiCALL NDELAY
MOVLW B'00000010' ; Cursor HomeMOVWF PORTBCALL ENABLEPULSEMOVLW 0x09 ; delay 1.8ms tunggu hingga
instruksi selesaiCALL NDELAY
MOVLW B'00001100' ; Display ON, Cursor ON,
-
Blinking ONMOVWF PORTBCALL ENABLEPULSECALL DELAY50 ; delay 50us tunggu hingga
instruksi selesai
MOVLW B'00000110' ; Entry Mode Set, Increment & No display shift
MOVWF PORTBCALL ENABLEPULSECALL DELAY50 ; delay 50us
BSF PORTC, 0 ; Set RS untuk memilih Data Reg.
BCF PORTC, 1 ; menulis
RETURN
;-----------------------------------------------------------------------------------------------------; Enable Pulse for writing or reading instructions or data;-----------------------------------------------------------------------------------------------------
ENABLEPULSE BCF PORTC, 2 ; 2us LOW followed by 3us HIGH Enable Pulse and 2us LOW.
NOPNOPBSF PORTC, 2NOPNOPNOPBCF PORTC, 2NOPNOPRETURN
;-------------------------------------------------------------------------------------; N DELAY subrutin, delay in multiples of 200us up to 200us*255 = 51ms;--------------------------------------------------------------------------------------NDELAY
MOVWF N ; N is delay multiplierNOTOVER CALL DELAY200 ; Call for 200us
DECFSZ N, 1 ; Decrease N by 1GOTO NOTOVER ; The delay isn't doneRETURN
;------------------------------------------------------------------------------------------
-
; FIXED delay 200us;------------------------------------------------------------------------------------------
DELAY200MOVLW 0x42 ; 66 LOOPSMOVWF FIXDELAY ; 200us fixed delay
NOTDONE200 DECFSZ FIXDELAY, 1 ; Decrement of FIXDELAY
GOTO NOTDONE200 ; If 200us isn't up go back to NOTDONE200
RETURN ; If 200us is up then return to instruction.
;-------------------------------------------------------------------------------------------; FIXED delay 50us;-------------------------------------------------------------------------------------------
DELAY50MOVLW 0x10 ; 10 LOOPSMOVWF FIXDELAY ; 50us fixed delay
NOTDONE50 DECFSZ FIXDELAY,1 ; Decrement of FIXDELAY
GOTO NOTDONE50; If 50us isn't up go back to NOTDONE50
RETURN ; If 50us is up then return to instruction.
;--------------------------------------------------------------------------------------------; FIXED 20us DELAY (Possibly more due to execution time of the DECFSZ instruction.);--------------------------------------------------------------------------------------------
DELAY20MOVLW 0x7 ; 7 LOOPSMOVWF FIXDELAY ; 50us fixed delay
NOTDONE20 DECFSZ FIXDELAY,1 ; Decrement of FIXDELAYGOTO NOTDONE20; If 50us isn't up go back to
NOTDONE50RETURN ; If 50us is up then return to
instruction.
;-----------------------------------------------------------------------------------------------------; sub-rutin mengirim karakter ke LCD.;-----------------------------------------------------------------------------------------------------
PUTCHAR
-
MOVWF PORTBCALL ENABLEPULSECALL CHKBUSYcall tundaRETURN
;----------------------------------------------------------------; Subrutin untuk mengecek BUSY flag.;----------------------------------------------------------------tunda movlw h'ff'
movwfselatunda1 movlw h'ff'
movwfsela1tunda2 decfsz sela1,1
goto tunda2decfsz sela,1goto tunda1return
CHKBUSYbcf PORT