Program awali dengan start yang berarti rangkaian dihidupkan, sensor TGS 2610 akan mendeteksi adanya kadar gas dilingkungan tersebut, apabila sensor tidak mendeteksi
adanya gas maka program akan terus mendeteksi adanya kadar gas padalikungan tersebut. jika terdeteksi adanya gas maka sensor akan mengirimkan sinyal ke mikrokontroler untuk
menghidupkan kipas dan alarm.
4.1.2 Diagram blok rangkaian
secara umum alat pendeteksi kebocoran gas LPG terdiri dari lima blok rangkaian utama.
Blok diagram dari rangkaian dapat dilihat dari gambar 4.4 berikut:
Diagram dari rangkaian sistem pendeteksian dini kebocoran gas LPG menggunakan sensor TGS 2610.
Gambar 4.2 Diagram blok rangkaian pendeteksi kebocoran gas LPG
Untuk mendeteksi gas LPG digunakan sensor TGS 2610. output sensor berupa tegangan. Apabila terkena gas LPG maka tegangan pada output sensor akan semakin besar. Data
output sensor merupakan data analog. Agar dapat dibaca oleh mikrokontroler maka terlebih dahulu output dari sensor dimasukkan ke ADC untuk diolah datanya menjadi data
data digital. Hasil dari perubahan yang di olah oleh ADC inilah yang dikirimkan ke mikrokontroller untuk di proses lebih lanjut. Mikrokontroler AT89S51 berfungsi sebagai
otak dari keseluruhan sistem. Dimana didalam mikrokontroler inilah nantinya semua data akan diolah dan dibandingkan . untuk menjalankan kipas dan menghidupkan alarm
dibutuhkan suatu rangkaian driver relay. Driver menghidupkan kipas dan alarm ini terdiri dari rangkaian relay dimana relay ini berfungsi sebagai saklar otomatis sehingga dapat
menyalakan dan mematikan kipas dan alarm sesuai dengan yang perintahkan secara otomatis dengan sendirinya.
4.1.3 Program
Adapun program yang digunakan pada rangkaian sistem pendeteksian dini kebocoran gas LPG menggunakan sensor TGS 2610 adalah sebagai berikut :
program LPG detector initial port
kipas
bit p3.6 ; alamat kipas
alarm bit p3.5
; alamat alarm program utama:
clr kipas ; matikan kipas
clr alarm ; matikan alarm
clr p3.7 ; cek busy interrupt ADC
acall tadc ; panggil tadc
setb p3.7 ; cek data interrupt ADC
start:
jb p3.7, ; ambil data interrupt ADC
call tadc ; panggil routine tunda ADC
mov a,p0 ; isikan nilai p0 pada alamat a
a = data gas LPG mov 62h,a
; isikan ke alamat 62h nilai a mov b,100
; isikan ke alamat b nilai 100 div ab
; bagikan a dengan b hasilnya save to a mov 72h,a
; isikan nilai a pada 72h mov a,b
; isikan a,b mov b,10
; isikan nilai 10 ke b div ab
; tambahkan ab mov 71h,a
; isikan a di 71h mov 70h,b
; isikan b di 70h call tunda
; panggil tunda mov a,62h
; isikan 62h di a cjne a,0c0h,utama
; baca data gas ada atau tidak , jika tidak ada kembali ke awal
call hidup_kipas ; jika ada hidupkan kipas dan alarm
sjmp utama ; jika tidak kembali ke utama
hidup_kipas:
setb alarm ; terhubungke alarm
setb kipas ; terhubungke kipas
call tunda_alarm_5detik ; pangil kembali alarm sesudah 5 detik
call tunda_kipas_5detik ; pangil kembali kipas sesudah 5 detik
ret
tunda_kipas_5detik: mov r7,200
; ini merupakan delay waktu pada register 7 tnd_kps:
mov r6,255 td_kp:
mov r5,100 djnz r5,
: jika tidak kembali ke register 5 djnz r6,td_kp
djnz r7,tnd_kps ret
tunda: mov r7,100
tnd: mov r6,100 djnz r6,
djnz r7,tnd ret
tadc: mov r7,100
adc: mov r6,40 djnz r6,
djnz r7,adc ret
end
;selesai
4.2 Pengujian Rangkaian Mikrokontroller AT89S51