register status digunakan untuk dua sumber data. Gambaran mengenai hubungan antara handphone, port paralel dan DTMF dekoder dijelaskan pada Gambar 3.7.
1 = port paralel 2 = DTMF decoder
3 = Handphone penerima panggilan = lampu
Gambar 3.7 Hubungan antara DTMF, DB-25 dan Handphone
Dari gambar diatas, dapat dilihat bahwa perangkat yang terkoneksi, dalam hal ini lampu tidak hanya menjadi perangkat yang diberikan data keluaran dari port
paralel, namun juga sebagai sumber data bagi port paralel. Dengan menggunakan rancangan rangkaian tersebut, hanya memungkinkan untuk menghubungkan dua buah
perangkat saja untuk dikendalikan dikontrol.
Kemudian dalam pendefinisian data masukan, pendefinisian terbagi atas dua proses, yaitu pendefinisian mana data yang berasal dari DTMF dekoder, dan proses
pendefinisian nilai data yang diberikan oleh lampu.
3.9.1 Pendefinisian Data DTMF
Untuk dapat memahami bagaimana proses ini terjadi, terlebih dahulu perlu diingat kembali mengenai tabel register status yang digambarkan pada Tabel 3.4.
Tabel 3.4 Port Status alamat 379
~S7 S6 S5 S4 S3 - - -
~Busy Ack PE
Select Error
- - -
Ketika dalam rangkaian terbuka, atau tanpa pengaruh dari perangkat luar, register status bernilai 127, yang dalam biner adalah 01111111. Untuk mecari
bagaimana cara memperoleh data hanya data DTMF saja, dicari satu operator dan operand yang dapat menghasilkan kemungkinan hanya S3, S4 dan S5 yang berpeluang
bernilai logika 1 satu. Maka digunakanlah operasi AND dan operand 56. Dengan menggunakan operasi AND dengan operand 56, maka akan diperoleh data yang
diinginkan, sedangkan data lain akan bernilai 0 nol, dimana untuk saluran status S0 dan S1 masih tercadang, S2 tidak dikeluarkan ke pin DB25. Ilustrasi proses yang
terjadi, digambarkan dalam Tabel 3.5.
Tabel 3.5 Rangkaian Proses Operasi Logika AND pada Register Status
~S7 S6 S5 S4 S3 S2 S1 S0 0 1 1 1 1 1 1 1
Keadaan default
register status
0 1 1 0 1 1 1 1 Diberikan
input dari
DTMF decoder
1 1
1 Oprasi AND dengan operand 56
0 0 1 0 1 0 0 0 Hasil
operasi AND
Tabel 3.5 memperlihatkan gambaran yang jelas mengenai bagaimana pendefinisian nilai DTMF dekoder pada register status dapat dilakukan. Tabel 3.5
menggambarkan contoh pendefinisian data DTMF dekoder dengan nilai data 5 lima , 0101 dalam biner dari data keseluruhan pada register status. Melalui operasi AND
akan dihasilkan nilai 1 satu hanya jika keduanya benilai 1satu. Sehingga hanya ada kemungkinan terbesar 3 tiga bit data yang bernilai logika 1 satu. Berikut algoritma
yang digunakan dalam pendefinisian nilai DTMF dekoder dalam program:
temp := Hwinterface1.InPort378; temp1 := Hwinterface1.InPort379;
nilai := temp1 and 56;
Dari algoritma diatas terlihat bahwa proses yang pertama kali dilakukan adalah membaca data yang ada pada register status dengan alamat 379, kemudian
menyimpannya pada satu variabel, yaitu variabel temp. Kemudian nilai dari variabel temp di-AND kan dengan operand, yakni 56, dan kemudian disimpan dalam variabel
nilai. Untuk melakukan operasi logika tersebut, nilai yang dalam desimal tidak perlu dirubah ke dalam biner terlebih dahulu karena bahasa pemrograman sudah memiliki
kemampuan untuk melakukan operasi logika dengan nilai desimal. Gambaran alur proses pendefinisian nilai DTMF dijelaskan pada Gambar 3.8.
Mengambil data dari register status
alamat 379
Data DTMF AND 56 = nilai
Nilai = nilai div 8
Pemrosesan delphi
Gambar 3.8 Alur proses pendefinisian nilai DTMF
3.9.2 Pendefinisian Nilai Status Lampu