Skripsi Lengkap Sensor Gas LPG
Skripsi Lengkap Sensor Gas LPG
PENDAHULUAN
GAS
LPG
MIKCROKONTROLER AT89S51 .
DENGAN
SENSOR
TGS2610
BERBASIS
rangkaian, skematik dari masing-masing rangkaian dan diagram alir dari program
yang akan diisikan ke mikrokontroler AT89S51.
BAB II
DASAR TEORI
2.1
SENSOR
2.1.1
Sebenarnya sensor secara umum didefinisikan sebagai alat yang mampu menangkap
fenomena fisika atau kimia kemudian mengubahnya menjadi sinyal elektrik baik arus listrik
ataupun tegangan. Fenomena fisik yang mampu menstimulus sensor untuk menghasilkan
sinyal elektrik meliputi temperatur, tekanan, gaya, medan magnet cahaya, pergerakan dan
sebagainya. Sementara fenomena kimia dapat berupa konsentrasi dari bahan kimia baik cairan
maupun gas.
Dengan definisi seperti ini maka sensor merupakan alat elektronik yang begitu banyak
dipakai dalam kehidupan manusia saat ini. Bagaimana tekanan jari kita pada key board
computer, remote televisi, lantai lift yang kita tuju, menghasilkan perubahan pada layar
computer atau televisi, serta gerakan pada lift adalah contoh mudah sensor secara luas. Atau
sensor temperatur yang banyak digunakan dalam mengontrol temperatur ruangan pada AC.
Demikian pula sensor pengukur cairan oksigen ataupun gas lainnya yang sering digunakan di
rumah sakit. Hampir seluruh kehidupan sehari hari saat ini tidak ada yang tidak melibatkan
sensor. Tidak mengherankan jika sensor (atau juga ada yang menyebutnya dengan transducer)
banyak disebut juga sebagai panca indera-nya alat elektronik modern.
2.1.2
Terbentuk pada permukaan luar kristal. Tegangan permukaan yang terbentuk akan
menghambat laju aliran electron seperti tampak pada ilustrasi Gambar.
Gambar 2
2.1.3
Adapun prinsip kerja dari sensor ini adalah sebagai berikut, Sensor gas TGS 2610
hanya terdiri dari sebuah lapisan silikon dan dua buah elektroda pada masing-masing sisi
silikon. Hal ini akan menghasilkan perbedaan tegangan pada outputnya ketika lapisan silikon
ini dialiri oleh arus listrik. Tanpa adanya gas LPG yang terdeteksi, arus yang mengalir pada
silikon akan tepat berada ditengah-tengah silikon dan menghasilkan tegangan yang sama
antara elektrode sebelah kiri dan elektrode sebelah kanan, sehingga beda tegangan yang
dihasilkan pada output adalah sebesar 0 volt.
Gambar Prinsip kerja sensor, saat tidak ada gas LPG yang terdeteksi
Ketika terdapat gas LPG yang mempengaruhi sensor ini, arus yang mengalir akan
berbelok mendekati atau menjauhi salah satu sisi silikon.
mengubah sinyal-sinyal analog menjadi sinyal - sinyal digital.. A/D Converter ini dapat
dipasang sebagai pengonversi tegangan analog dari suatu peralatan sensor ke konfigurasi
digital yang akan diumpankan ke suatu sistem minimum. Jenis ADC yang biasa digunakan
dalam perancangan adalah jenis successive approximation convertion (SAC) atau pendekatan
bertingkat yang memiliki waktu konversi jauh lebih singkat . IC ADC 0804 merupakan salah
satu dari sekian banyak pengubah data analog menjadi data digital
Jenis 0804 ini merupakan ADC yang simpel dan mudah digunakan .IC ADC 0804 ini
mempunyai 20 pin dengan konfigurasi seperti gambar berikut :
Bagian Sampling dan Hold, yang berfungsi menangkap atau menahan tagangan analog
input sesaat untuk seterusnya diumpankan ke rangkaian pengonversi.
2.
Gambar dibawah ini menggambarkan bagaimana aliran sinyal analog diubah ke sinyal digital.
interrupt harus diaktifkan untuk menghindari terjebaknya CPU dalam loop saat menunggu
ADC siap. Dengan demikian CPU hanya akan membaca data bila mendapatkan interrupt.
Secara singkat, ADC memerlukan bantuan sekuensi kontrol untuk menangkap dan
mengkonversi sinyal. Seberapa lama ADC dapat sukses mengkonversi suatu nilai sangat
tergantung dari kemampuan sampling dan konversi dalam domain waktu. Makin cepat
prosesnya, makin berkualitas pula ADC tersebut. Karena inilah maka karakteristik ADC yang
paling penting adalah waktu konversi (conversion time). Namun demikian, kemampuan riil
ADC dalam kontrol loop tertutup dalam sebuah sistem lengkap justru sangat dipengaruhi oleh
kemampuan kontroler atau prosesor dalam mengolah data input-output secara cepat, dan
bukan hanya karena kualitas ADC-nya.
2.3
Mikrokontroler
Mikrokontroler adalah single chip computer yang memiliki kemampuan untuk
Mikrokontroler AT89S51
Mikrokontroler seri 8051 merupakan salah satu seri mikrokontroler yang paling
banyak digunakan di seluruh dunia karena memiliki fasilitas onchip memory. Perusahaan
ATMEL membuat seri ini dengan nama AT89S51. Mikrokontroler AT89S51 memiliki fitur
sebagai berikut:
4K byte ROM
ROM atau Read Only Memory adalah tempat penyimpanan program yang diisikan pada
mikrokontroler. ROM hanya bisa dibaca. ROM biasanya berisi kode/ program untuk
mengontrol kerja mikrokontroler. Kapasitas memori yang disediakan oleh AT89S51 ini
adalah 4 kilobyte
128 bytes RAM
RAM atau Random Access Memory adalah memori yang berisi data yang akan dieksekusi
oleh mikrokontroler. RAM bisa ditulis dan dibaca, bersifat volatile (isinya hilang jika
power/ sumber tegangan dihilangkan). Kapasitas memori yang disediakan oleh AT89S51
adalah 128 bytes.
4 buah 8-bit I/O (Input/Output) port
Port ini berfungsi sebagai terminal input dan output. Selain itu, dapat digunakan sebagai
terminal komunikasi paralel, serta komunikasi serial (pin10 dan 11).
2 buah 16 bit timer
Interface komunikasi serial
64K pengalamatan code (program) memori
64K pengalamatan data memori
Prosesor Boolean (satu bit-satu bit)
Dengan fitur ini, mikrokontroler dapat melakukan operasi logika seperti AND, OR, EXOR,
dan lain-lain.
210 lokasi bit-addressable, dan
4 s operasi pengkalian atau pembagian
Arsitektur hardware mikrokontroler AT89S51 dari perspektif luar atau biasa disebut
pinout digambarkan pada gambar 2.8 di bawah ini:
Port 0
Merupakan dual-purpose port (port yang memiliki dua kegunaan). Pada disain yang
minimum (sederhana), port 0 digunakan sebagai port Input/Output (I/O). Sedangkan pada
disain lebih lanjut pada perancangan dengan memori eksternal digunakan sebagai data dan
address (alamat) yang di-multiplex. Port 0 terdapat pada pin 32-39.
Port 1
Merupakan port yang hanya berfungsi sebagai port I/O (Input/Output). Port 1 terdapat
pada pin 1-8.
Port 2
Merupakan dual-purpose port. Pada disain minimum digunakan sebagai port I/O
(Input/Output). Sedangkan pada disain lebih lanjut digunakan sebagai high byte dari
address (alamat). Port 2 terdapat pada pin 21-28.
Port 3
Merupakan dual-purpose port. Selain sebagai port I/O (Input/Output), port 3 juga
mempunyai fungsi khusus. Fungsi khusus tersebut diperlihatkan pada tabel 2.1. Port 3
terdapat pada pin 10-17.
No. Pin
10
11
12
13
14
15
16
Port Pin
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
Nama Port
RXD
TXD
INT 0
INT 1
T0
T1
WR
17
P3.7
RD
Fungsi Alternatif
Menerima data untuk port serial
Mengirim data untuk port serial
Interrupt 0 eksternal
Interrupt 1 eksternal
Timer 0 input eksternal
Timer 1 input eksternal
Memori data eksternal write
strobe
Memori data eksternal read strobe
EA (External Access)
Jika EA diberi input 1 (HIGH), maka mikrokontroler menjalankan program memori
internal saja. Jika EA diberi input 0 (LOW), maka AT89S51 menjalankan program
memori eksternal (PSEN akan bernilai 0). EA terdapat pada pin 31.
RST (Reset)
RST terdapat pada pin 9. Jika pada pin ini diberi input 1 (HIGH) selama minimal 2
machine cycle, maka sistem akan di-reset ( kembali ke awal )
On-Chip oscillator
AT89S51 telah memiliki on-chip oscillator yang dapat bekerja jika didrive menggunakan
kristal. Tambahan kapasitor diperlukan untuk menstabilkan sistem. Nilai kristal yang biasa
digunakan pada AT89S51 ini adalah 12 MHz. On-chip oscillator tidak hanya dapat didrive dengan menggunakan kristal, tetapi juga dapat dengan menggunakan TTL
Oscillator.
Koneksi power
AT89S51 beroperasi pada tegangan 5 volt. Pin Vcc terdapat pada pin 40, sedangkan pin
Vss (ground) terdapat pada pin 20.
2.4
elektromagnetik yang terukur oleh alat. LCD yang digunakan pada alat ini mempunyai lebar
display 2 baris 16 kolom atau biasa disebut sebagai LCD Character 2x16, dengan 16 pin
konektor, yang didifinisikan sebagai berikut:
PIN
Nama
fungsi
VSS
Ground voltage
VCC
+5V
VEE
Contrast voltage
RS
R/W
DB0
LSB
DB1
DB2
10
DB3
11
DB4
12
DB5
13
DB6
14
DB7
MSB
15
BPL
16
GND
Ground voltage
Register Select
0 = Instruction Register
1 = Data Register
Read/ Write, to choose write or read mode
0 = write mode
1 = read mode
Enable
0 = start to lacht data to LCD character
1= disable
Software
Perangkat lunak (software) adalah seperangkat intruksi yang disusun menjadi sebuah
Instruksi transfer data terbagi menjadi dua kelas operasi sebagai berikut :
Transfer data umum ( General Purpose Transfer ), yaitu : MOV, PUSH dan POP.
sumber dengan operand tujuan. Operand-nya dapat berupa register, memori atau lokasi suatu
memori. Penjelasan instruksi transfer data tersebut dapat dijelaskan sebagai berikut.
MOV
: Transfer data dari Register satu ke Register yang lainnya, antara Register dengan
Memory.
PUSH
: Transfer byte atau dari operand sumber ke suatu lokasi dalam stack yang
alamatnya ditunjuk oleh register penunjuk.
POP
XCH
XCHD
: Pertukaran nibble orde rendah antara RAM internal ( lokasinya ditunjukkan oleh
sumber.
R0 dan R1 )
2.5.2. Instruksi Logika
Mikrokontroller AT89S51 dapat melakukan operasi logika bit maupun operasi logika
byte. Operasi logika tersebut dibagi atas dua bagian yaitu :
Operasi logika operand tunggal, yang terdiri dari CLR, SETB, CPL, RL, RR, dan
SWAP.
Operasi logika dua operand seperti : ANL, ORL, dan XRL.
Operasi yang dilkukan oleh AT89S51 dengan pembacaan instruksi logika tersebut dijelaskan
dibawah ini :
CLR
SETB
CPL
: Mengkomplemenkan akumulator.
RL
RR
SWAP
2.5.3
Instruksi transfer kendali (control transfer) terdiri dari (3) tiga kelas operasi yaitu :
LJMP,SJMP
Lompatan bersyarat ( Conditional Jump ) seperti : JZ, JNZ, JB, CJNE, dan DJNZ.
Insterupsi seperti : RET dan RET1.
LCALL
AJMP
LJMP
JNB
JZ
JNZ
JC
CJNE
DJNZ
RET
Kembali ke subroutine.
RET1
BAB III
PERANCANGAN ALAT DAN CARA KERJA RANGKAIAN
3.1
SENSOR
TGS2610
ADC
KIPAS
DRIVER
KIPAS
ALARM
DRIVER
ALARM
Display
( Analog to Digital
Converter )
Blok Kipas
uC AT89S51
Blok Buzzer
Blok Driver
Blok Mikrokontroller
Blok ADC
ruangan sehingga data akan dikirimkan ke ADC dan diproses oleh mikrokontroller.
3.1
Display
yang ada. Rangkaian PSA yang dibuat terdiri dari dua keluaran, yaitu 5 volt dan 12 volt,
keluaran 5 volt digunakan untuk mensupplay tegangan ke seluruh rangkaian, sedangkan
keluaran 12 volt digunakan untuk mensuplay tegangan ke relay. Rangkaian power supplay
ditunjukkan pada gambar 3.2 berikut ini :
Trafo CT merupakan trafo stepdown yang berfungsi untuk menurunkan tegangan dari
220 volt AC menjadi 12 volt AC. Kemudian 12 volt AC akan disearahkan dengan
menggunakan dua buah dioda, selanjutnya 12 volt DC akan diratakan oleh kapasitor 2200 F.
Regulator tegangan 5 volt (LM7805CT) digunakan agar keluaran yang dihasilkan tetap 5 volt
walaupun terjadi perubahan pada tegangan masukannya. LED hanya sebagai indikator apabila
PSA dinyalakan. Transistor PNP TIP 32 disini berfungsi untuk mensupplay arus apabila
terjadi kekurangan arus pada rangkaian, sehingga regulator tegangan (LM7805CT) tidak
akan panas ketika rangkaian butuh arus yang cukup besar. Tegangan 12 volt DC langsung
diambil dari keluaran 2 buah dioda penyearah.
3.2
fungsi kerja sistem pengukuran. Dalam penelitian ini, mikrokontroler digunakan sebagai
sistem kontrol input dan output saja. Input (masukan) pada rangkaian sistem kontrol ini
dihubungkan dengan sensor medan magnetik. Sedangkan output (keluaran) dihubungkan
dengan piranti tampilan, dalam hal ini dot matrix LCD. Rangkaian mikrokontroler
ditunjukkan pada gambar berikut ini:
Pin 18 dan 19
kecepatan mikrokontroller AT89S51 dalam mengeksekusi setiap perintah dalam program. Pin
9 merupakan masukan reset (aktif tinggi). Pulsa transisi dari rendah ke tinggi akan me-reset
mikrokontroller ini. Pin 32 sampai 39 adalah Port 0 yang merupakan saluran/bus I/O 8 bit
open collector dapat juga digunakan sebagai multipleks bus alamat rendah dan bus data
selama adanya akses ke memori program eksternal. Pada Port 0 ini masing masing pin
dihubungkan dengan resistor 4k7 ohm. Resistor 4k7 ohm yan dihubungkan ke port 0 befungsi
sebagai pull up( penaik tegangan ) agar output dari mikrokontroller dapat mntrigger transistor.
Pin 1 sampai 8 adalah Port 1. Pin 21 sampai 28 adalah Port 2. Dan Pin 10 sampai 17 adalah
Port 3. Pin 20 merupakan ground dihubungkan dengan ground pada power supplay. Pin 40
merupakan sumber tegangan positif dihubungkan dengan + 5 volt dari power supplay.
3.3
gas LPG TGS2610 menjadi bilangan digital. Output dari ADC dihubungkan ke
mikrokontroler, sehingga mikrokontroler dapat mengetahui dan mendeteksi keberadaan gas
LPG yang terdapat di dalam ruangan. Dengan demikian proses pendeteksian gas LPG dapat
dilakukan. Gambar rangkaian ADC ditunjukkan pada gambar di bawah ini:
Tegangan pada output sensor akan dideteksi oleh ADC. Agar output yang dihasilkan
oleh ADC bagus, maka tegangan refrensi ADC harus benar-benar stabil, karena perubahan
tegangan refrensi pada ADC akan merubah output ADC tersebut. Oleh sebab itu pada
rangkaian ADC di atas tegangan masukan 12 volt dimasukkan ke dalam IC regulator
tegangan 9 volt ( 7809) agar keluarannya menjadi 9 volt, kemudian keluaran 9 volt ini
dimasukkan kedalam regulator tegangan 5 volt (7805), sehingga keluarannya menjadi 5 volt.
Tegangan 5 volt inilah yang menjadi tegangan refrensi ADC.
Dengan demikian walaupun tegangan masukan turun setengahnya, yaitu dari 12 volt
menjadi 6 volt, tegangan refrensi ADC tetap 5 volt.
Output dari ADC dihubungkan ke mikrokontroler, sehingga setiap perubahan output ADC
yang disebabkan oleh perubahan inputnya akan diketahui oleh mikrokontoler
3.4
menghubungkan sumber tegangan 12 volt dengan kipas. Gambar rangkaian pengendali kipas
ini ditunjukkan pada gambar berikut ini:
Output dari relay yang satu dihubungkan ke sumber tegangan 12 volt dan yang
lainnya dihubungkan ke kipas. Hubungan yang digunakan adalah normally close. Prinsip
kerja rangkaian ini pada dasarnya memanfaatkan fungsi transistor sebagai saklar elektronik.
Tegangan atau sinyal pemicu dari transistor berasal dari mikrokontroler Port 3.5 (P3.5). Pada
saat logika pada port 3.5 adalah tinggi (high), maka transistor mendapat tegangan bias dari
kaki basis. Dengan adanya tegangan bias ini maka transistor akan aktip (saturation), sehingga
adanya arus yang mengalir ke kumparan relay. Hal ini akan menyebabkan saklar pada relay
menjadi tertutup, sehingga hubungan sumber tegangan 12 volt ke kipas akan terhubung dan
kipas akan menyala. Begitu juga sebaliknya pada saat logika pada P3.5 adalah rendah (low)
maka relay tidak dialiri arus. Hal ini akan menyebabkan saklar pada relay terputus, sehingga
sumber tegangan 12 volt dengan kipas akan terputus dan kipas tidak menyala
3.5
Rangkaian Alarm
Rangkaian alarm pada alat ini berfungsi untuk memutuskan atau menghubungkan
sumber tegangan 12 volt dengan buzzer. Gambar rangkaian alarm ini ditunjukkan pada
gambar 3.5 berikut ini:
BAB IV
HASIL DAN PEMBAHASAN
4.1
dihubungkan ke sebuah resistor 4k7 ohm. , resistor ini berfungsi agar arus yang dikeluarkan
oleh pin17 (P3.7) cukup besar untuk men-trigger transistor C945. selanjutnya program
sederhana diisikan pada mikrokontroler AT89S51. Program yang diisikan adalah sebagai
berikut :
Loop:
Setb p3.7
Call delay
Clr p3.7
Call delay
Jmp loop
Delay:
Mov r7,#255
Dly:
Mov r6,#255
Djnz r6,$
Djnz r7,dly
Ret
end
berlogika high yang menyebabkan transistor C945 aktif dan LED akan menyala. Call delay
akan menyebabkan LED ini hidup selama beberapa saat. Perintah Clr P3.7 akan menjadikan
P3.7 berlogika low yang menyebabkan transistor tidak aktif dan LED akan mati. Perintah call
delay akan menyebabkan LED ini mati selama beberapa saat. Perintah jmp Loop akan
menjadikan program tersebut berulang, sehingga akan tampak LED tersebut berkedip.
Jika
program
tersebut
diisikan
ke
mikrokontroller
AT89S51,
kemudian
mikrokontroller dapat berjalan sesuai dengan program yang diisikan, maka rangkaian
minimum mikrokontroller AT89S51 telah bekerja dengan baik.
4.2
sebagai tampilan hasil pengukuran dan tampilan dari beberapa keterangan. LCD dihubungkan
langsung ke Port 0 dari mikrokontroler yang berfungsi mengirimkan data hasil pengolahan
untuk ditampilkan dalam bentuk alfabet dan numerik pada LCD.
karakter
pada
LCD
diatur
oleh
pin
EN,
RS
dan
RW:
Jalur EN dinamakan Enable. Jalur ini digunakan untuk memberitahu LCD bahwa anda sedang
mengirimkan sebuah data. Untuk mengirimkan data ke LCD, maka melalui program EN harus
dibuat logika low 0 dan set ( high ) pada dua jalur kontrol yang lain RS dan RW. Jalur RW
adalah jalur kontrol Read/ Write. Ketika RW berlogika low (0), maka informasi pada bus data
akan dituliskan pada layar LCD. Ketika RW berlogika high 1, maka program akan
melakukan pembacaan memori dari LCD. Sedangkan pada aplikasi umum pin RW selalu
diberi logika low ( 0 )
berdasarkan keterangan di atas maka kita sudah dapat membuat progam untuk
menampilkan karaker pada display LCD. Adapun program yang diisikan ke mikrokontroller
untuk menampilkan karakter pada display LCD adalah sebagai berikut:
rs
bit
p2.0
rw
bit
p2.1
en
bit
p2.2
kirim_karakter:
call data_penampil
mov a,#'H'
call kirim_data
mov a,#'e'
call kirim_data
mov a,#'l'
call kirim_data
mov a,#'l'
call kirim_data
mov a,#'o'
call kirim_data
jmp kirim_karakter
data_penampil:
mov a,#80h
call data_scan
ret
kirim_data:
mov p0,a
setb rs
clr rw
clr en
call delay
ret
end
Program di atas akan menampilkan kata Hello di baris pertama pada display LCD 2x16.
4.3
diberikan maka terlebih dahulu ADC tersebut harus di uji ketelitiannya. Langkah yang
digunakan untuk menguji tigkat ketelitian ADC adalah dengan cara memberikan tegangan
analog yang presisi. Untuk mendapatkan Tegangan analog yang presisi ini dapat digunakan
power lab type LEADER DC Tracking Power Supply LPS152.
Setiap perubahan tegangan yang diberikan merupakan input bagi ADC yang akan
diubah menjadi data digital. Proses perubahan tegangan input menjadi data digital dilakukan
dengan cara:
Output
Vin ADC
V faktor
1
1
Vcc
5Volt 0,0196 Volt
255
255
dengan data output dapat dihitung, misalnya jika Vin ADC = 0,3 Volt, maka:
Output
0,3Volt
15,30 ,
0,0196 Volt
saja. Berarti bilang biner yang dihasilkan oleh tegangan input ADC sebesar 0,3 Volt adalah
(0000 1111).pada rangkaian pengujian, Output ADC melalui kaki DB0-DB7 dihubungkan
dengan delapan buah led untuk mempermudah dalam pembacaan data.
4.4
Out ADC
Biner
2.5
127.55
01111111
2.7
137.75
10001001
3.0
153.06
10011001
3.3
168.36
10101000
3.6
183.6
10110111
3.9
198.97
11000110
4.2
214.28
11010110
4.5
229.59
11100101
4.8
244.8
11110100
5.0
255
11111111
Ada Gas
Keadaan
Tabel :
Grafik :
4.4
0 volt pada basis transistor C945. Transistor C945 merupakan transistor jenis NPN, transistor
jenis ini akan aktip jika pada basis diberi tegangan > 0,7 volt dan tidak aktip jika pada basis
diberi tegangan < 0,7 volt. Aktipnya transistor akan mengaktipkan relay. Pada rangkaian ini
relay digunakan untuk memutuskan hubungan alarm dengan sumber tegangan 12 volt, dimana
hubungan yang digunakan adalah normally close(NC), dengan demikian jika relay aktip maka
hubungan alarm ke sumber tegangan akan terhubung, sebaliknya jika relay tidak aktip, maka
hubungan alarm ke sumber tegangan akan terputus.
Pengujian dilakukan dengan memberikan tegangan 5 volt pada basis transistor, jika
relay aktip dan buzzer berbunyi, maka rangkaian ini telah berfungsi dengan baik.
Pengujian selanjutnya dilakukan dengan menghubungkan input rangkaian ini ke
mikrokontroler pada P0.1
4.5
volt dan 0 volt pada basis transistor C945. Transistor C945 merupakan transistor jenis NPN,
transistor jenis ini akan aktip jika pada basis diberi tegangan > 0,7 volt dan tidak aktip jika
pada basis diberi tegangan < 0,7 volt. Aktipnya transistor akan mengaktipkan relay. Pada
rangkaian ini relay digunakan untuk memutuskan hubungan kipas dengan sumber tegangan 12
volt, dimana hubungan yang digunakan adalah normally close(NO), dengan demikian jika
relay aktip maka hubungan kipas ke sumber tegangan akan terhubung, sebaliknya jika relay
tidak aktip, maka hubungan kipas ke sumber tegangan akan terputus.
Pengujian dilakukan dengan memberikan tegangan 5 volt pada basis transistor, jika
relay aktip dan kipas menyala, maka rangkaian ini telah berfungsi dengan baik.
Pengujian selanjutnya dilakukan dengan menghubungkan input rangkaian ini ke
mikrokontroler pada P0.7
Perintah di atas akan memberikan logika high pada P0.0, sehingga P0.0 akan mendapatkan
tegangan 5 volt. Tegangan 5 volt ini akan mengaktipkan transistor C945, sehingga relay juga
menjadi aktip dan kipas menyala. Berikutnya memberikan program sederhana untuk
menonaktipkan relay. Programnya sebagai berikut:
Clr P0.7
. . . . . . . .
Perintah di atas akan memberikan logika low pada P0.7, sehingga P0.7 akan mendapatkan
tegangan 0 volt. Tegangan 0 volt ini akan menonaktipkan transistor C945, sehingga relay
juga menjadi tidak aktip dan kipas tidak menyala.
;
=
;
;
;
=
= = = = = = = = = = = = =
= = ;
list.program LPG detector
= = = = = = = = = = = = =
= = ;
; = = initialisasi port =
= ;
rs
rw
en
bit
bit
bit
kipas1
kipas2
alarm
p2.2
p2.1
p2.0
bit
bit
bit
p0.0
p0.1
p0.2
intrupt bit
p2.7
; = = = scan dulu = = = ;
start:
clr alarm
setb kipas1
setb kipas2
acall tunda_5detik
clr kipas1
clr kipas2
clr alarm
;=tampil pesan pembuka=;
mov a,#38h
acall data_scan
acall data_penampil
acall polmed
acall kristina
acall juli
mulai:
clr Intrupt
acall tadc
setb Intrupt
utama:
jb Intrupt,$
acall tadc
mov a,p1
mov 62h,a
mov a,62h
cjne
a,#255,udara_clean
acall clear_screen
acall pesan1
setb kipas2
setb alarm
jmp utama
udara_clean:
acall pesan2
clr kipas1
clr kipas2
clr alarm
jmp utama
polmed:
mov a,#'P'
acall kirim_data
acall delay
mov a,#'O'
acall kirim_data
acall delay
mov a,#'L'
acall kirim_data
acall delay
mov a,#'I'
acall kirim_data
acall delay
mov a,#'T'
acall kirim_data
acall delay
mov a,#'E'
acall kirim_data
acall delay
mov a,#'K'
acall kirim_data
acall delay
mov a,#'N'
acall kirim_data
acall delay
mov a,#'I'
acall kirim_data
acall delay
mov a,#'K'
acall kirim_data
acall delay
;= = = tulis baris bawah = =
=;
mov a,#0c2h
acall data_scan
; = = = = = = = = = = = = =
= ; mov a,#'N'
acall kirim_data
acall delay
mov a,#'E'
acall kirim_data
acall delay
mov a,#'G'
acall kirim_data
acall delay
mov a,#'E'
acall kirim_data
acall delay
mov a,#'R'
acall kirim_data
acall delay
mov a,#'I'
acall kirim_data
acall delay
mov a,#' '
acall kirim_data
acall delay
mov a,#'M'
acall kirim_data
acall delay
mov a,#'E'
acall kirim_data
acall delay
mov a,#'D'
acall kirim_data
acall delay
mov a,#'A'
acall kirim_data
acall delay
mov a,#'N'
acall kirim_data
acall delay
acall tunda_5detik
acall clear_screen
ret
kristina:
acall data_penampil2
acall delay
mov a,#'K'
acall kirim_data
acall delay
mov a,#'R'
acall kirim_data
acall delay
mov a,#'I'
acall kirim_data
acall delay
mov a,#'S'
acall kirim_data
acall delay
mov a,#'T'
acall kirim_data
acall delay
mov a,#'I'
acall kirim_data
acall delay
mov a,#'N'
acall kirim_data
acall delay
mov a,#'A'
acall kirim_data
acall delay
mov a,#' '
acall kirim_data
acall delay
mov a,#'S'
acall kirim_data
acall delay
mov a,#'I'
acall kirim_data
acall delay
mov a,#'R'
acall kirim_data
acall delay
mov a,#'E'
acall kirim_data
acall delay
mov a,#'G'
acall kirim_data
acall delay
mov a,#'A'
acall kirim_data
acall delay
mov a,#'R'
acall kirim_data
acall delay
;= = = tulis baris bawah = =
=;
mov a,#0c0h
acall data_scan
; = = = = = = = = = = = = =
= ;
mov a,#'N'
acall kirim_data
acall delay
mov a,#'I'
acall kirim_data
acall delay
mov a,#'M'
acall kirim_data
acall delay
mov a,#' '
acall kirim_data
acall delay
mov a,#':'
acall kirim_data
acall delay
mov a,#' '
acall kirim_data
acall delay
mov a,#'0'
acall kirim_data
acall delay
mov a,#'6'
acall kirim_data
acall delay
mov a,#'2'
acall kirim_data
acall delay
mov a,#'3'
acall kirim_data
acall delay
mov a,#'0'
acall kirim_data
acall delay
mov a,#'4'
acall kirim_data
acall delay
mov a,#'1'
acall kirim_data
acall delay
mov a,#'7'
acall kirim_data
acall delay
mov a,#'9'
acall kirim_data
acall delay
acall tunda_5detik
acall clear_screen
ret
juli:
acall data_penampil2
acall delay
mov a,#'J'
acall kirim_data
acall delay
mov a,#'U'
acall kirim_data
acall delay
mov a,#'L'
acall kirim_data
acall delay
mov a,#'I'
acall kirim_data
acall delay
mov a,#'A'
acall kirim_data
acall delay
mov a,#'N'
acall kirim_data
acall delay
mov a,#'I'
acall kirim_data
acall delay
mov a,#' '
acall kirim_data
acall delay
mov a,#'T'
acall kirim_data
acall delay
mov a,#'A'
acall kirim_data
acall delay
mov a,#'M'
acall kirim_data
acall delay
mov a,#'B'
acall kirim_data
acall delay
mov a,#'U'
acall kirim_data
acall delay
mov a,#'N'
acall kirim_data
acall delay
mov a,#'A'
acall kirim_data
acall delay
mov a,#'N'
acall kirim_data
acall delay
;= = = tulis baris bawah = =
=;
mov a,#0c0h
acall data_scan
; = = = = = = = = = = = = =
= ;
mov a,#'N'
acall kirim_data
acall delay
mov a,#'I'
acall kirim_data
acall delay
mov a,#'M'
acall kirim_data
acall delay
mov a,#' '
acall kirim_data
acall delay
mov a,#':'
acall kirim_data
acall delay
mov a,#' '
acall kirim_data
acall delay
mov a,#'0'
acall kirim_data
acall delay
mov a,#'6'
acall kirim_data
acall delay
mov a,#'2'
acall kirim_data
acall delay
mov a,#'3'
acall kirim_data
acall delay
mov a,#'0'
acall kirim_data
acall delay
mov a,#'4'
acall kirim_data
acall delay
mov a,#'1'
acall kirim_data
acall delay
mov a,#'7'
acall kirim_data
acall delay
mov a,#'8'
acall kirim_data
acall delay
acall tunda_5detik
acall clear_screen
ret
pesan1:
; = = = kirim karakter = = =
;
acall data_penampil2
mov b,#'P'
acall kirim_data
acall delay
mov b,#'E'
acall kirim_data
acall delay
mov b,#'R'
acall kirim_data
acall delay
mov b,#'I'
acall kirim_data
acall delay
mov b,#'N'
acall kirim_data
acall delay
mov b,#'G'
acall kirim_data
acall delay
mov b,#'A'
acall kirim_data
acall delay
mov b,#'T'
acall kirim_data
acall delay
mov b,#'A'
acall kirim_data
acall delay
mov b,#'N'
acall kirim_data
acall delay
acall tunda_5detik
acall clear_screen
mov b,#38h
acall data_scan
acall data_penampil
mov b,#'T'
acall kirim_data
acall delay
mov b,#'e'
acall kirim_data
acall delay
mov b,#'l'
acall kirim_data
acall delay
mov b,#'a'
acall kirim_data
acall delay
mov b,#'h'
acall kirim_data
acall delay
mov b,#' '
acall kirim_data
acall delay
mov b,#'t'
acall kirim_data
acall delay
mov b,#'e'
acall kirim_data
acall delay
mov b,#'r'
acall kirim_data
acall delay
mov b,#'j'
acall kirim_data
acall delay
mov b,#'a'
acall kirim_data
acall delay
mov b,#'d'
acall kirim_data
acall delay
mov b,#'i'
acall kirim_data
acall delay
;= = = tulis baris bawah = =
=;
mov b,#0c0h
acall data_scan
; = = = = = = = = = = = = =
= ; mov b,#'K'
acall kirim_data
acall delay
mov b,#'e'
acall kirim_data
acall delay
mov b,#'b'
acall kirim_data
acall delay
mov b,#'o'
acall kirim_data
acall delay
mov b,#'c'
acall kirim_data
acall delay
mov b,#'o'
acall kirim_data
acall delay
mov b,#'r'
acall kirim_data
acall delay
mov b,#'a'
acall kirim_data
acall delay
mov b,#'n'
acall kirim_data
acall delay
mov b,#' '
acall kirim_data
acall delay
mov b,#'G'
acall kirim_data
acall delay
mov b,#'a'
acall kirim_data
acall delay
mov b,#'s'
acall kirim_data
acall delay
acall clear_screen
ret
pesan2:
acall data_penampil3
acall delay
mov a,#'t'
acall kirim_data
acall delay
mov a,#'i'
acall kirim_data
acall delay
mov a,#'d'
acall kirim_data
acall delay
mov a,#'a'
acall kirim_data
acall delay
mov a,#'k'
acall kirim_data
acall delay
mov a,#' '
acall kirim_data
acall delay
mov a,#'a'
acall kirim_data
acall delay
mov a,#'d'
acall kirim_data
acall delay
mov a,#'a'
acall kirim_data
acall delay
mov a,#' '
acall kirim_data
acall delay
;= = = tulis baris bawah = =
=;
mov a,#0c1h
acall data_scan
; = = = = = = = = = = = = =
= ;
mov a,#'k'
acall kirim_data
acall delay
mov a,#'e'
acall kirim_data
acall delay
mov a,#'b'
acall kirim_data
acall delay
mov a,#'o'
acall kirim_data
acall delay
mov a,#'c'
acall kirim_data
acall delay
mov a,#'o'
acall kirim_data
acall delay
mov a,#'r'
acall kirim_data
acall delay
mov a,#'a'
acall kirim_data
acall delay
mov a,#'n'
acall kirim_data
acall delay
mov a,#' '
acall kirim_data
acall delay
mov a,#'g'
acall kirim_data
acall delay
mov a,#'a'
acall kirim_data
acall delay
mov a,#'s'
acall kirim_data
acall delay
ret
data_penampil:
mov a,#0ch
acall data_scan
mov a,#06h
acall data_scan
mov a,#83h
acall data_scan
ret
data_penampil2:
mov a,#0ch
acall data_scan
mov a,#06h
acall data_scan
mov a,#80h
acall data_scan
ret
data_penampil3:
mov a,#0ch
acall data_scan
mov a,#06h
acall data_scan
mov a,#83h
acall data_scan
ret
data_scan:
mov p3,A
clr rs
clr rw
setb en
acall delay
clr en
acall delay
ret
kirim_data:
mov p3,A
setb rs
clr rw
setb en
acall delay
clr en
acall delay
ret
clear_screen:
mov a,#01h
acall data_scan
ret
tunda_5detik:
mov r7,#140
td5dtk:
mov r6,#100
td5:
mov r5,#100
djnz r5,$
djnz r6,td5
djnz r7,td5dtk
ret
delay:
mov r7,#100
dly:
mov r6,#200
djnz r6,$
djnz r7,dly
ret
tadc:
adc:
end
mov r7,#80h
mov r6,#50h
djnz r6,$
djnz r7,adc
ret
START
OFF Alarm
ON Kipas
Tunda 5 detik
Tampil pesan
"POLMED"
Pesan
"JULI"
Pesan
"KRISTINA"
TIDAK
Matikan Alarm
OFF Kipas
Tampil pesan
"AMAN"
ON Kipas
ON Alarm
Tampil pesan
"Peringatan"
BAB V
KESIMPULAN DAN SARAN
5.1
Kesimpulan
5.2
Saran