Proses Menghidupkan Lampu-1 Proses Menghidupkan Lampu-2

Keterangan: n = nilai operand yang berbeda-beda untuk tiap lampu.

3.10.1 Proses Menghidupkan Lampu-1

Algoritma untuk menghidupkan lampu dan membaca nilai DTMF pada dasarnya adalah hampir sama. Yakni menggunakan operator logika dan sebuah operand. Namun operand yang digunakan pada lampu-1 dan lampu-2 tidaklah sama. Hal pertama yang dilakukan adalah membaca nilai dari register data alamat 378 dan menyimpannya ke dalam sebuah variabel. Operator logika yang digunakan adalah operator OR. Operator OR hanya akan bernilai 0 nol apabila kedua operand bernilai 0 nol. Variabel yang berisikan nilai awal dari register data di OR kan dengan operand 1 satu. Karena nilai 0nol hanya akan hadir ketika kedua operand bernilai 0 nol, hal ini berarti bahwa nilai yang ada sebelumnya tidak akan terhapus ataupun berubah nilainya. Digunakan nilai 1 satu sebagai operand karena lampu-1 yang terhubung dengan D0 akan bernilai 1 satu bila diberi logika 1 satu pada pin D0. Gambaran proses kejadian untuk menghidupkan lampu diilustrasikan pada Tabel 3.7. Tabel 3.7 Ilustrasi Proses Penghidupan Lampu pada Register Data D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 0 0 Nilai awal 0 0 0 0 0 0 1 0 Perintah pertama 0 0 0 0 0 0 0 1 Perintah kedua Apabila perintah petama telah dieksekusi, dan nilainya dibaca dan disimpan pada satu variabel dan kemudian variabel tersebut di OR kan dengan perintah kedua maka: 00000010 00000001 + 00000011 Dari perhitungan logika diatas terlihat bahwa hasil dari operasi logika OR nilai perintah pertama dan nilai perintah kedua dapat menghasilkan data yang diharapkan. Jadi apa yang sebenarnya dilakukan ketika perintah menghidupkan lampu pertama adalah proses mengirimkan data ke register data alamat 378, nilai yang dikirimkan adalah nilai hasil dari operasi logika OR antara variabel yang menyimpan nilai register data sebelumnya dengan operand 1 satu.

3.10.2 Proses Menghidupkan Lampu-2

Selanjutnya untuk proses menghidupkan lampu-2, proses yang dilakukan sama dengan menghidupkan lampu-1. Perbedaannya terletak pada operand yang digunakan. Jika lampu-1 menggunakan operand 1 satu, maka lampu-2 menggunakan operand 2 dua dalam prosesnya. Digunakan operand bernilai 2 dua karena pin yang dituju pada register data akan bernilai 2 dua jika diberi logika 1 satu untuk menghidupkan lampu-2. Sedangkan pin yang lain pada register data di OR kan dengan nilai 0 nol karena nilai 0 nol pada operasi logika OR tidak akan mempengaruhi nilai sesungguhnya. Berikut perhitungannya: 00000001 00000010 + 00000011 Dengan demikian rangkaian proses yang terjadi untuk menghidupkan lampu-2 adalah pengiriman sebuah nilai misal: X. Nilai variabel X tersebut merupakan hasil dari operasi logika OR antara nilai register data yang lama dengan operand 2. Hasil proses tersebutlah yang kemudian disampaikan kembali ke register data. Dengan demikian, variabel X sebenarnya berisikan : X = Y + Z Keterangan: Z = 2 Y = nilai register data yang lama

3.11 Proses Pemadaman Lampu