akan terus mengalir melalui kumparan dan arus ini akan dialirkan ke dioda. Tanpa adanya dioda arus sesaat yang besar itu akan mengalir ke transistor, yang mengakibatkan
kerusakan pada transistor.
Program yang harus diisikan untuk mengaktipkan transistor yang akan mengaktipkan relay, sehingga lampu hidup adalah sebagai berikut,
Setb P0.0 Dan untuk mematikan lampu maka program yang harus diisikan adalah,
Clr P0.0 Dengan demikian kita sudah dapat menghidupkan dan mematikan lampu melalui
program.
4.5. Pengujian Rangkaian Pengirim Data Melalui Infra Merah
Data yang yang telah diolah mikrokontroler AT89S51, dikirimkan ke rangkaian penerima dengan menggunakan LED infra merah. Rangkaiannya seperti gambar di bawah ini :
Universitas Sumatera Utara
Gambar 4.3. Pengujian Rangkaian Pengirim Data Melalui Infra Merah Pada rangkaian di atas LED infra merah akan menyala jika basis pada transistor
C945 diberi tegangan yang lebih besar dari 0,7 volt, ini akan sama artinya jika pada P3.7 AT89S51 diberi logika high 1, karena pin yang diberi logika high akan mempunyai
tegangan 4 sd 5 volt, cukup untuk mengaktipkan transistor. Sedangkan untuk mematikan LED infra merah, maka P3.7 AT89S51 harus diberi logika low 0, karena dengan
memberikan logika low pada P3.7, maka P3.7 akan memiliki tegangan 0 sd 0,009 volt, tegangan ini akan menyebabkan transistor tidak aktip.
Untuk pengiriman data agar data dapat dikirimkan dari jarak yang jauh, maka LED infra merah harus dipancarkan dengan frekuensi 38 KHz karena frekuensi ini bebas
dari gangguan frekuensi infra merah alam. Jika LED infra merah dipancarkan dengan frekuensi selai 38 KHz, maka pancarannya akan terganggu oleh frekuensi-frekuensi infra
merah dari alam, seperti frekuensi infra merah yang dipancarkan oleh matahari, tumbuhan, bahkan badan manusia. Dengan menggunakan frekuensi 38 KHz, maka
pancaran LED infra merah yang dihasilkan oleh rangkaian tidak terganggu oleh pancaran infra merah alam, sehingga jarak pengiriman data semakin jauh.
Untuk memancarkan frekuensi 38 KHz dari LED infra merah, langkah yang harus dilakukan adalah dengan mengedipkannya menghidupkan dan mematikannya
dengan frekuensi tersebut, yaitu dengan memberikan logika high dan low pada P3.7 dengan selang waktu perioda :
Universitas Sumatera Utara
3
1 1
1 0,0000263
26,3 38
38 10 T
s s
f KHz
x Hz
Untuk mendapatkan perioda tersebut, maka program yang harus diberikan pada mikrokontroler AT89S51 adalah:
38KHz: clr p3.7
nop nop
nop nop
nop nop
nop nop
nop nop
nop nop
setb p3.7 nop
nop nop
nop nop
nop nop
nop nop
Universitas Sumatera Utara
nop sjmp 38KHz
Mikrokontroler AT89S51 memerlukan 12 Clock setiap satu siklus mesin. Dengan demikian, jika digunakan kristal 12 MHz, maka waktu yang diperlukan untuk satu siklus
mesin adalah :
6
12 1 10
1 12
Clock x sekon
s MHz
Jika dihitung lamanya mikrokontroler AT89S51 mengerjakan perintah di atas : Instruksi
Siklus mesin Waktu S
CLR NOP
SETB SJMP
1 1
1 2
1 1
1 2
Tabel 4.3. waktu siklus mesin
Berdasarkan tabel di atas, maka lamanya logika low 0 pada P3.7 adalah 13 dan lamanya logika high 1 adalah 13 s, sehingga periodanya menjadi 26 s.
13 s 13 s
Low High
26 s Dengan demikian frekuensi yang dihasilkan oleh P3.7 adalah :
Universitas Sumatera Utara
6 6
1 1
1 1 10
38461 38,461
26 26 10
26 x
f Hz
KHz T
s x
s
Jika LED infra merah dipancarkan dengan frekuensi ini, maka pancaran LED infra merah
dari rangkaian tidak akan terganggu oleh frekuensi infra merah alam. Sebagai catatan frekuensi infra merah yang tidak dipengaruhi oleh frekuensi infra merah dari alam adalah
antara 38 KHz sd 40 KHz, frekuensi inilah yang digunakan sebagai frekuensi remote kontrol dari TV, VCD dan DVD di seluruh dunia.
Ketika penerima infra merah menerima pancaran infra merah dengan frekuensi 38 KHz dari rangkaian pemancar, maka output dari penerima akan berlogika high 1, jika
pancaran infra merah ini dihentikan, maka penerima akan mendapatkan logika low 0 sesaat ± 1200 s kemudian berubah menjadi high 1 kembali walaupun tidak ada
pancaran infra merah dengan frekuensi 38 KHz. Ini sudah merupakan karakteristik dari penerima infra merah yang digunakan TSOP 1738. Pada alat ini, logika high setelah
setelah logika low sesaat itulah yang dijadikan sebagai data, sehingga dengan mengatur lebar pulsa high 1 tersebut dengan suatu nilai tertentu dan menjadikan nilai tersebut
sebagai datanya, maka pengiriman data dapat dilakukan.
Untuk menghindari kesalahan dalam pengambilan data, maka pada alat ini ditambahkan satu data yang berfungsi sebagai startbit atau data awal. Data awal ini
mempunyai nilai tertentu, jadi ketika penerima mendapatkan sinyal low, penerima akan mengambil 1 data setelah sinyal low tersebut dan membandingkannya apakah sesuai
dengan data awal atau tidak. Jika tidak sama, maka penerima akan mengambil data
Universitas Sumatera Utara
berikutnya , kemudian membandingkan lagi sesuai atau tidak dengan data awal. Langkah ini dilakukan terus sampai didapat data awal. Ketika penerima mendapatkan data yang
sesuai dengan data awal, maka penerima akan mengambil data pertama setelah data awal sebagai data pertama, data kedua setelah data awal sebagai data kedua, dan seterusnya
hingga data ketiga. Dengan demikian tidak akan terjadi kesalahan urutan data, walaupun ada penghalang sesaat.
Setiap data mempunyai lebar pulsa high 1 tertentu. Untuk nilai data 0, maka lebar pulsa high yang dikirim adalah ± 1131 sekon. Programnya seperti berikut:
Mov 70h,0 Inc 70h
Kirim: Mov r0,70h
Acall data Sjmp kirim
data: loop1:
acall pulsa djnz r0,loop1
ret
pulsa: Clr P0.0 ; 1 s
Mov r7,2 ; 1 s pls:
mov r6,255 ; 1 s
Universitas Sumatera Utara
P3.7 AT89S51 5V
VCC
100 10uF
i_1
i
i_1
i
djnz r6, ; 2x255=510 s
djnz r7,pls ; 2 s =513x2=1026 s mov r7,50 ; 1 s
djnz r7, ; 2x50=100 s
ret ; 2 s
Total 1131 s
demikian juga seterusnya jika yang dikirimkan data 1 sd data 9, maka data ini akan ditambah dengan nilai 1, dan kemudian hasil penjumlahannya digunakan sebagai
banyaknya perulangan dalam pengiriman pulsa.
Sebagai contoh jika data yang dikirimkan adalah data 1, maka data ini akan ditambahkan 1 sehingga hasilnya menjadi 2. 2 inilah yang merupakan banyaknya
perulangan pengiriman pulsa. Jadi lebar pulsa untuk data satu ± 2 x 1.131 s = 2.262 s. Demikian pula untuk data-data yang lainnya.
4.6. Pengujian Rangkaian Penerima Infra Merah