TUGAS MIKROPROCESSOR

Nama : Muhammad Syafiq Baehaqi
Kelas  : TI 11 Sore - STMIK Amikom Purwokerto
NIM     : 11.11.1946

Pengendalian Suhu Menggunakan MCS-51


MCS-51 adalah keluarga kumpulan mikroprosessor umum yang murah dan banyak dipakai serta gampang pembuatan aplikasi softwarenyasehingga dalam penelitian ini dipergunakan mikroprosesor ini. Dengan berbagai keunggulannya maka dibuatlah suatu board berbasis MCS-51 untuk dipakai sebagai pengendali suhu yang multi guna, dapat dipakai untuk apa saja seperti pengendalian suhu kamar, pengendalian suhu oven, pengendalian suhu penetasan telur dan lain sebagainya. Dalam board tersebut dilengkapi dengan ADC, Display dan komponen-komponen yang terkait, relay on-off untuk memati hidupkan dan cara setting 
  1. Pendahuluan

Suhu merupakan hal yang sepele akan tetapi bila dikaitkan dengan proses atau hal hal yang memerlukan suatu ketetapan aturan suhu maka suhu akan merupakan dan menjadikan suatu hal yang penting. Suhu kalau tidak terkendali maka akan menyebabkan yang dikendalikan akan rusak atau tidak menhasilkan sesuatu yang diharapkan. Sebagai contoh, pada pembuatan roti dengan menggunakan oven maka suhu di oven perlu dikendalikan sehingga roti akan menjadi sesuatu yang kita kehendaki, mekar dan tidak bantat atau setengah matang. Demikian juga bila suhu dipergunakan untuk menjalankan alat penetas telor ayam maka tentunya sangat memerlukan pengendalian suhu yang cukup ketat dengan harapan jumlah telur yang menetas 100 persen tanpa ada yang mati atau bahkan matang karena terlalu panas atau membusuk karena terlalu dingin. Untuk itu bila diperlukan pengendali suhu yang cukup bagus maka dapat dibuat dengan menggunakan rangkaian elektronika dan dengan otaknya menggunakan prsessor MCS-51. 



MCS-51 mempunyai mikrokontroller yang banyak dipakai yaitu mikrocontroller buatan ATMEL type AT89C52 dengan segala kelebihan dan kekurangannya akan tetapi untuk pengendali suhu sudah cukup kemampuannya. Sebagai mikrokontroller maka tipe AT89C52 ini mempunyai RAM atau Random Access Memory, ROM atu Read Only Memory, Masukan dan keluaran baik yang hubungan serial atau UART dan untuk hubungan paralel (PIO). Secara blok 
diagram mikrokontroller AT89C52 dapat dilihat dibawah ini.


Adapun spesifikasi dari AT89C52 adalah : 

- Kapasiats ROM 8 kByte 
- Kemampuan melaksanakan instruksi 1 mikrodetik pada clock 12 MHz 
- Internal RAM 246 byte 
- Mempunyai Internal Osilator dan timer 
- Mempunyai 4 buat Programmable I/O @ 8 jalur 
- Mempunyai 3 buah timer/counter 
- Mempunyai serial Port full duplex UART 
- Daya rendah 

  2.  Perancangan 

2.1 Perancangan Hardware 
Secara blok diagram yang akan dibuat dapat dilihat pada gambar 2 dibawah ini dimana dipergunakan sensor suhu untuk merubah besaran suhu menjadi tegangan kemudian diperkuat menggunakan rangkaian signal  conditioning untuk mencapai tegangan yang dikehendaki untuk perubahan suhu yang diukur. Dari Signal Conditioning dimasukkan ke ADC atau Analog Digital Converter dimana signal analog dari Signal Conditioning harus didigitalkan karena akan diteruskan untuk diproses perubahan yang terjadi oleh mikrokontroller AT89C52. Keluaran mikrokontroller adalah switch yang dipakai untuk mengendalikan suhu yaitu untuk memati hidupkan pemanas/heater dan memati hidupkan kipas untuk meniup angin dingin. Dibuat program yang menggunakan bahasa C++ [2,3] untuk agar port dari Mikrokontroller AT89C52 berfungsi seperti kemauan kita. Sensor menerima suhu dari sekitarnya kemudian diperkuat da dijitalisasi dan dimasukkan ke mikrokontroller. Bila suhu sekitar daerah yang dikehendaki maka tidak ada kegiatan sama sekali akan tetapi bila terlalu dingin dari suhu yang dikehendaki maka program akan mendeteksi dan keluaran akan menghidupkan pemanas sehingga mencapai suhu yang dikehendaki. Akan tetapi bila terlalu panas maka keluaran mikrokontroller yang lain akan menghidupkan kipas angin hingga tercapai suhu sesuai yang dikehendaki. Demikian seterusnya sehingga dicapai pengendalian suhu pada suhu yang dikehendaki. 

2.1.1 Sensor Suhu 

Sensor suhu yang dipergunakan dalam penelitian ini adalah LM335 dimana sensor ini adalah sensor komponen aktif yang berkemampuan merubah suhu dari minus 40 derajat Celcius sampai 100 derajat Celcius menjadi tegangan dalam orde milivolt sampai Volt dimana sensitivitas dari komponen sensor ini adalah 10 miliVolt/derajat Kelvin.Kalibrasi dari Sensor suhu ini adalah bahwa pada suhu 25 °C akan mempunyai keluaran sebesar 2.982 Volt.

 
2.1.2 ADC

Untuk masuk ke AC dibuat penguat inverting dengan penguatan 300 kali yang mempunyai keluaran 0-10 Volt. Tegangan ini cukup untuk ADC dengan type ADC0808. 
ADC0808 ini merupakan IC Analog to Digital Converter 8 bit dan mempunyai masukan hingga 8 masukan. Tinggal dipilih masukan yang mana yang akan dipakai untuk selanjutnya dproses untuk didisplaykan. 

2.2. Perancangan Software

Pengendali mikro atau mikrokontroller akan bekerja berdasarkan perintah-perintah yang dibuat di perangkat lunak yang disimpan di memorinya. Fungsi utama adalah mengambildata dari hasil pemrosesan ADC, memrosesnya, mengerjakan keluaran dijital on dan off untuk mamati hidupkan pemanas dan pendingin serta mendisplylan hasil pengukuran serta suhu yang dikehendaki (setting). Bahasa pemrograman yang dipakai adalah bahasa C++.[4,5].

3. Realisasai Rancangan 

3.1. Realisasi Hardware

Setelah rangkaian ditentukan dan diuji tahap demi tahap bagian perbagian dari Blok diagram maka akhirnya dibuat dalam bentuk satu board berupa Papan Rangkaian Tercetak. Bentuk papan rangkaian tercetaknya seperti gambar 3 a dan b untuk jalur bagian atas dan jalur bagian bawah. Papan rangkaian tercetaknya dibuat dari bahan fiber hijau yang cukup bagus untuk rangkaian digital.


3.1. Realisasi Software

Setelah selesai hardwarenya secara keseluruhan dan benar jalurnya maka softwarenya yang sudah dibuat ditest dengan Franklin Software 32 untuk mengetahui yang salah dan yang akan menyebabkan program akan tidak dapat diexekusi. Dengan menggunakan Franklin Software 32 akan muncul mana yang salah ketik mana yang salah notasi dan mana yang salah ketik dan lain sebagainya. Semuanya harus diperbaiki sehingga software akan berjalan sesuai dengan flowchart dibawah ini. 



















Ada beberapa subprogram dalam program yang dibuat antara lain Sub Program Set Suhu / Ceck Suhu 
  • Sub Program inisialisasi LCD
  • Sub Program Tampilan Hasil Pengukuran ke LCD
  • Sub Program Input Keypads
  • Sub Program Input Sensor
  • Sub Program on off kan pemanas dan pendingin (Kipas)
Semuanya dibuat programnya sesuai dengan flowchartnya. Penulisan listing program sebagian kami sampaikan disini :

#include <stdio.h> 
#include <reg52.h> 
#include <intrins.h> 
#include <absacc.h> 
#include <string.h> 
#include <stdlib.h> 

typedef unsigned int uint; 
typedef unsigned int uchair; 

static char angka,strin[2]; 
static int x,y,t,data_buf; 

int RAM [4] 

void delay (void) 
void delay1(void) 
void set_temp (void) 
void baca_temp(void) 
void heater(void) 
void fan(void) 

void menu(void) 
counter() 
lcd_puttextxy(LINE_1,0,title1); 
lcdputextxy(LINE2,0,title2) 
delay();delay();delay();delay();d
elay(); 
data_buf=XBYTE[keypad]; 
baca(); 
                if  (angka==1) 
set_suhu(); 
                if 
(angka==2)baca_suhu(); 

else menu(); 
main(void) 
      init_sys(); 
      init_lcd(); 
      p10=0; 
         Menu(); 
void delay 1 (void) 
  { 
            for (i=0;i<25;i++) 
            {
            for (a=0;a<100;a++) 
            } 
void delay_counter(void) 
for (i=0;i<255;i++) 
           { 
             for (a=0;a<50;a++) 
            } 
void tida() 
vor (x=0;x<200;x++) 
            { 
            for (y=0;y<50;y++) 
            } 
void lcd_puttextxy()char line, 
char row, char *text) 
            uchar lcd_counter=0; 
_lcd_command(line*64)+row+ADD_SET
); 

while(int)lcd_cunter<strlen 
(text)) 
            { 
if(text[lcd_counter]!=0x20) 
                  { 
lcd_putchar(text[lcd_counter]); 
                  } 
                  else 
                  { 
lcd_putchar(SPACE); 
                   ) 
                  lcd_counter++; 
             } 
            Return 

4. Pengetesan sistem

Setelah semua modul dan bagian dicoba satu persatu, baik analog maupun bagian digital serta piranti lunaknya maka secara keseluruhan dicoba. Pada pengujian rangkaian sensor diberi tegangan yang optimum sebesar 9 Volt DC dan terukur tegangan keluaran pada suhu ruang 23 derajat Celcius mencapai sebesar 1.564 Volt. Keluaran tegangan ini dapat dinaikkan dan diturunkan dengan memutar potensiometer. Dicoba pada suhu 10 derajat maka tegangan menunjukkan 1.541 Volt. Hal ini dapat diartikan bahwa sensor suhu telah bekerja dengan baik. Demikian selanjutnya untuk rangkaian pengurang tegangan dan op-amp dimana dibuat keluaran op-amp yang berfungsi sebagai masukan ke ADC yang akan menerima hanya maximum 5 Volt DC. Terukur dikeluaran op-amp untuk tegangan minimal adalah 0.47 Volt pada suhu 10 derajat Celcius dan sebesar 4.65 pada suhu 23 derajat Celcius dan tegangan ini cukup untuk ADC.
Rangkaian digitalnya tidak di uji karena dianggap berfungsi dengan baik. Piranti lunaknya sudah ditest dan dibaca dan tidak ada kesalahan yang akan mengganggu dalam membuat hardware berfungsi. Sehingga dianggap akan berfungsi dengan baik bila dibakar dan diupload ke EPROMnya. 
Pada saat pengujian pertama kali ternyata penunjukan sedikit tidak benar, saat setting 25 derajat Celcius dengan delta suhu sebesar 2.50 derajat seharusnya bila suhu sekitar alat tersebut berada pada 30 derajat maka akan mengonkan kipas untuk mendinginkan ruangan. Akan tetapi pada kenyataannya dengan setting 25 derajat dan suhu ruangan pada 31 derajat Celcius terlihat kipas tidak nyala sama sekali. 
Sebaliknya pada saat suhu disekitar sensor didinginkan dengan mem-bungkus plastic bersuhu dibawah 20 derajat maka pemanas juga tidak hidup untuk memanaskan. 
Tidak diketahui kenapa hal ini terjadi dan perlu pengetesan lanjutan baik hardware maupun software dimana kemungkinan besar adalah pada jalur Papan Rangkaian Tercetaknya yang kurang bagus atau tidak tersambung saat penyolderan. Setelah diteliti dan dicheck dengan seksama dan dilakukan penyolderan ulang untuk memastikan hubungan semua baik maka ditest ulang. Dan ternyata dapat bekerja mendekati yangd irencanakan akan tetapi belum sempurna benar terutama pada switch untuk memat hidupkan pemanas dan kipas akan tetapi setting sudah jalan dengan baik. Kemungkinan besar pada flowchart yang kurang tepat dan relay yang kurang bagus . Perlu pengamatan yang lebih seksama. Akan tetapi dapat dikatakan hasilnya cukup baik. 

5. Kesimpulan dan saran


Setelah dicoba dan dirangkai semuanya maka dari percobaan yang dilaksanakan dapat disimpulkan bahwa : 

• Perangkat keras yang bersifat analog seperti dari sensor, rangkaian pengurang dan rangkaian penguat sudah bekerja sesuai dengan yang diharapkan 

• Perangkat yang bersifat dijital mulai dari keluaran ADC0808 sampai masuk ke Microcontroller 89C52 dan juga keluaran dari port untuk njalankan reley pemanas dan kipas masih belum sempurna bekerjanya. 

• Penggunaan EPROM sebesar 32 Kbytes ternyata terlalu besar 

• Perangkat  lunak  yang  dibuat  walau sudah dicheck dengan menggunakan Franklin Software tidak ada kesalahan akan tetapi kurang bekerja dengan baik, kemungkinan kesalahan adalah 

pada saaat pembakaran EPROM yang kurang bagus atau kurang berhasil. 
Disarankan untuk memperbaiki hardware dan software, mengurangi besarnya EPROM dan mengecheck keluaran microcontroller secara langsung sebelum dilakukan melalui program. 

6. Daftar pustaka

[1]  ATMEL, Data book AT89C52 8bit Microcontroller with 8 kilobyte Flash. ATMEL 1997 
[2]  Ayala, J. Kenneth, he 8051 Microcontroller Architecture, Programming and Application, West Publixhing Company, USA 1991 
[3]  Hall Douglas V., Microprocessor and Interfacing Programming and Hardware, Mc. Graw Hill International, USA 1991 
[4]  INTEL, Embedded Microcontrollers and Processor Volume I, INTEL International, USA, 1991 
[5]  Kusuma, Markus Robijanto, Belajar Turbo C dengan Cepat dan mudah, PT Elex Media Komputindo, Jakarta 1997 
[6]  Millman Jacob;Halkias, Christis C; Integrated Electronic, Analog and Digital Circuits System, 3rd Edition, Mc Graw Hill Inc, USA 1986



sumber : http://jurnal.informatika.lipi.go.id/index.php/inkom/article/download/19/19

Tidak ada komentar:

Posting Komentar