Pengujian Rangkaian Pengirim Data Melalui Infra Merah
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 :
Tabel 4.3 Siklus Mesin
Instruksi Siklus mesin
Waktu μS CLR
NOP SETB
SJMP 1
1 1
2 1
1 1
2
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 anatara 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.
Kesalahan pengambilan data oleh penerima disebabkan karena adanya penghalang atau karena kesalahan pengambilan data ketika alat pertama kali
dihidupkan. Seharusnya penerima mengambil sinyal low dari data yang pertama, kemudian mengambil data pertama, setelah itu mengambil sinyal low dari data kedua,
kemudian mengambil data kedua, dan demikian seterusnya, sehingga data tersebut sesuai dengan urutannya. Namun jika ada penghalang sesaat atau ketika pertama kali
dihidupkan terjadi kesalahan pengambilan sinyal low, maka pengambilan data
Universitas Sumatera Utara
seterusnya akan salah. Misalnya jika ada penghalang sesaat, sehingga sinyal low yang diterima adalah sinyal low yang kedua, maka data kedua akan dianggap sebagai data
pertama, dan data ketiga akan dianggap sebagai data kedua, demikian seterusnya, sehingga urutan data menjadi salah.
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 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
Universitas Sumatera Utara
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
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.