Langkah-langkah Pemograman Pemograman sistem

- Register Flag untuk alarm - Register 2 dan 3 untuk function delay alarm - Register 5 dan 6 untuk function delay umum

3.3.2 Langkah-langkah Pemograman

Agar memudahkan dalam penulisan program maka digunakanlah instruksi “bit” untuk merubah alamat 1-bit dan “Equ” untuk 8-bit dalam bentuk kata, seperti :  MemDtmf Equ 30h ; penulis menggunakan alamat memori 30h  DetHook bit P0.2 ; aktif low  SenLDR bit P0.1 ; apabila terkena cahaya : high  SenHalang bit P0.0 ; apabia terhalang : High  STD bit P0.3 ; apabila di tekan : high  FAlarm bit F0  Pintu1 bit P2.0 ; aktif high  Pintu2 bit P2.1 ; aktif high  Beban1 bit P1.0  Beban2 bit P1.1  Beban3 bit P1.2  Beban4 bit P1.3  Beban5 bit P1.4  Beban6 bit P1.5  Beban7 bit P1.6  Beban8 bit P1.7  Alarms bit P3.0  Led bit P3.1 Universitas Sumatera Utara

3.3.3 Pemograman sistem

Berikut ini adalah program-program yang terdapat pada Mikrokontroler AT89S52 sebagai instrumen pengendali, diantaranya :  Program inisialisasi yang berfungsi sebagai pengaturan awal untuk mengaplikasikan program yang telah dibuat. Berikut adalah program inisialisasi. Init: mov R2,0 ; R2 sebagai counter timer mulai dari 0 mov R3,0 ; R3 sebagai counter timer mulai dari 0 Mov P0,0ffh ; Diisi 0ff agar terbaca sebagai input Mov P2,0ffh ; Diisi 0ff agar terbaca oleh sebagai input clr FAlarm ; Matikan Alarm acall delay ; Tunda dulu sesaat acall delay acall delay acall delay clr led ; matikan LED indikator  Program Delay Alarm Program ini dibuat agar bunyi alarm menggunakan interval waktu. Di bawah ini adalah programnya. AlarmRun: inc R2 ; counter timer R2 ditambah dgn 1 Cjne R2,0FEh,tnd_end ; cek apakah R2 sudah 0FEh? jika belum lompat ke tnd_end Universitas Sumatera Utara Inc R3 ; Counter timer R3 ditambah dengan 1 mov R2,0 ; counter R2 diberi nilai 0 cjne R3,50h,tnd_end ; Cek apakah counter R3 sudah 50h ? jika belum lompat ke tnd_end mov R2,0 ; jika sudah kosongkan isi counter R2 mov R3,0 ; Juga kosongkan isi counter R3 cpl Alarms ; Balikkan kondisi Alarms cpl led ; Balikkan logika LED tnd_end: ret  Program Delay Umum Delay: Mov R5,0ffh ; R5 sebagai counter yang dimulai dari 0FFh dly1: Mov R6,0ffh ; R6 sebagai counter yang dimulai dari 0FFh dly2: djnz R6,dly2 djnz R5,dly1 ret  Program Kedip LED setb Led ; LED diberi logika 1 hidup acall delay ; panggil program function delay acall delay clr led ; matikan LED acall delay acall delay ret Universitas Sumatera Utara  Program Deteksi Hook Berikut ini adalah programnya : Jb DetHook,BacaSensor Pada program diatas tampak instruksi JBDetHook, Baca Sensor. Fungsinya untuk mendeteksi DetHook P0.2 dalam keadaan high atau low, jika high berarti handset telephone sedang di angkat sehingga intruksi di lanjutkan ke baris program selanjutnya tetapi jika high maka hal ini menandakan bahwa handset telepon tidak sedang diangkat sehingga intruksi program akan melompat ke label BacaSensor.  Program Tone Dekoder Rangkaian tone decoder menghasilkan 5 bit data yang akan dimasukkan kerangakaian mikrokontroler. 5 bit tersebut atau keluaran dari IC MT 8870 dihubungkan ke jalur B. Di bawah adalah programnya : DetStd: Jnb STD,BacaSensor ; Cek Tombol di Tekan atau tidak, jika tidak lompat ke BacaSensor Lepas: Jb STD,Lepas ; Cek Tombol di udah di Lepas atau belum. Jika belumhigh maka akan menunggu sampai dilepas low Mov Acc,P0 ; pindahkan data dari P0 ke Acc mov b,10h ; Register b sebagai bilangan yang dibagi Anl Acc,0F0h ; Ambil data MSB XXXX 0000 div ab ; Ubah jadi Satuan 0000 XXXX TblBintang: Cjne A,11,TblPagar ; lihat data tombol yang kedua acall blink ; jika ditekan maka Hidupkan LED Universitas Sumatera Utara mov A,MemDTMF ; Ambil data tombol sebelumnya Acall BebanOn ; Panggil function BebanOn mov MemDTMF,0 ; Kosongkan Isi memory data tombol Sjmp BacaSensor ; Jump ke Baca sensor TblPagar: Cjne A,12,SimpanTbl ; lihat data tombol yang kedua ditekan acall blink ; Hidupkan LED Mov A,MemDTMF ; Ambil data tombol sebelumnya Acall BebanOff ; Panggil Function BebanOff mov MemDTMF,0 ; Kosongkan isi memory data tombol Sjmp BacaSensor SimpanTbl: Mov MemDTMF,Acc ; jika yg di tekan bukan tombol dan maka data tombol Simpan ke memory pada program diatas tampak instruksi JNB STD ini berfungsi mengecek tombol ditekan atau tidak. Jika tidak ditekan maka kondisi input logikanya adalah 0 dan akan lompat ke instruksi program baca sensor dan jika high maka akan dicek lagi apakah tombol sudah dilepas atau belum, Jika belum maka mikrokontroler akan menunggu sampai tombol dilepas dan jika sudah dilepas maka ambil data dari p0 dan simpan ke Acc. Kemudian isi data register B dengan nilai 10h, setelah itu data yang ada di Acc di AND kan dengan 0F0h xxxx 0000 untuk mengambil nilai MSB dan menghasilkan nilai puluhan, kemudian dibagikan dengan register B agar didapat data sesuai dengan tombol mana yang ditekan. Jika yang ditekan bukan tanda ataupun maka data tombol akan disimpan dimemory. Kemudian akan mendeteksi kembali untuk tombol dan . Seperti langkah diatas akan membandingkan apakah tombol yang ditekan itu atau , jika ada tombol diantara keduanya maka data yang Universitas Sumatera Utara disimpan di MemDtmf akan dipindahkan ke Acc dan akan memanggil program beban on atau beban off dimana nomor beban terlebih dahulu sudah disimpan di Acc pada program simpan tombol.  Program Deteksi Sensor Berikut adalah program untuk sensor-sensor yang digunakan SPintu1: Jnb Pintu1, SPintu2 ; mendeteksi kondisi pintu 1 setb Alarms ; Jika sensor aktif maka Hidupkan alarm setb FAlarm ; Beri kode aktifkan alarm SPintu2: Jnb Pintu2, SLDR ; mendeteksi kondisi pintu 2 setb Alarms setb FAlarm SLDR: Jnb SenLDR,SHalang ; mendeteksi kondisi sensor LDR setb Alarms setb FAlarm Shalang Jnb SenHalang,AlarmAktif ; mendeteksi kondisi sensor halang setb Alarms setb FAlarm AlarmAktif: Jnb FAlarm, SensorEnd ; jika alarm tidak aktif lompat ke SensorEnd acall AlarmRun ; aktifkan AlarmRun SensorEnd: sjmp Start ; kembali ke awal Program Pengontrolan Beban Relay Pengontrolan pada beban dilakukan dengan membuat sebuah fungsi yang nantinya dapat langsung menghidupkan atau mematikan beban melalui rangkaian relay, untuk Universitas Sumatera Utara pengontrolan ini program harus dapat mengirimkan logika low dan high kerangkaian relay, ketika rangkaian driver relay menerima logika high maka beban akan aktif dan sebaliknya. Dalam hal ini sistem menggunakan 8 buah relay maka khusus untuk rangkaian relay ini digunakan satu buah port untuk uotputnya yaitu p1. dibawah ini adalah program untuk mengotrol relay yang nomor beban telah disimpan di Acc pada program simpan tombol.  Program menghidupkan beban On BebanOn: on1: cjne A,1,on2 ; Jika ditekan tombol 1? jika tidak maka lompat ke on2 setb Beban1 ; hidupkan beban 1 sjmp on2End on2: cjne A,2,on3 ; Jika ditekan tombol 2 ? jika tidak maka lompat ke on3 setb Beban2 ; hidupkan beban 2 sjmp on2End on3: cjne A,3,on4 setb Beban3 sjmp on2End on4: cjne A,4,on5 setb Beban4 sjmp on2End on5: cjne A,5,on6 setb Beban5 sjmp on2End on6: cjne A,6,on7 setb Beban6 Universitas Sumatera Utara sjmp on2End on7: cjne A,7,on8 setb Beban7 sjmp on2End on8: cjne A,8,on9 setb Beban8 sjmp on2End on9: cjne A,9,on0 setb FAlarm ; Hidupkan alarm setb Alarms sjmp on2End on0: Cjne A,0Ah,on2End Mov P1,0FFh ; hidupkan semua beban sjmp on2End on2End: acall delay ret  Program mematikan beban Beban Off off1: cjne A,1,off2 ; Jika ditekan tombol 1 ? jika tidak maka lompat ke off2 clr Beban1 ; matikan beban 1 sjmp off2End off2: cjne A,2,off3 clr Beban2 sjmp off2End Universitas Sumatera Utara off3: cjne A,3,off4 clr Beban3 sjmp off2End off4: cjne A,4,off5 clr Beban4 sjmp off2End off5: cjne A,5,off6 clr Beban5 sjmp off2End off6: cjne A,6,off7 clr Beban6 sjmp off2End off7: cjne A,7,off8 clr Beban7 sjmp off2End off8: cjne A,8,off9 clr Beban8 sjmp off2End off9: cjne A,9,off0 Clr FAlarm ; matikan alarm Clr Alarms sjmp off2End off0: Cjne A,0Ah,off2End Mov P1,0 ; matikan semua beban sjmp off2End Universitas Sumatera Utara off2End: acall delay ; panggil function delay ret  Blink: setb Led ; hidupkan Led acall delay ; panggil program delay acall delay clr led ; matikan led acall delay acall delay ret end Universitas Sumatera Utara

BAB IV PENGUJIAN DAN ANALISA SISTEM

4.1 Pengujian Software

4.1.1 Pengujian Program Sistem Minimum Mikrokontroler

Pengujian rangkaian minimum mikrokontroler ini dilakukan sebelum menghubungkan blok-blok rangkaian lainnya untuk mengetahui apakah rangkaian mikrokontroler ini bagus dengan menggunakan LED dan alarm sebagai indikator. alarm LED P3,0 P3,1 AT89S52 Gbr 4.1 blok diagram pengujan sistem minimum mikrokontroler Adapun program pengujiannya sebagai berikut : Start : mov P1,0 ; port 1 diisi dengan 0 clr led ; matikan LED setb Alarms ; alarm diberikan logik 1 aktif acall delay ; tunda sesaat setb led ; hidupkan LED clr Alarms ; alarm off acall delay clr led setb Alarms acall delay Universitas Sumatera Utara