Ihut Parulian Togatorop : Aplikasi Mikrokontroler AT89S51 Dalam Pengukuran Dan Pengiriman Data Temperatur Menggunakan Sinar Infra Merah, 2009.
USU Repository © 2009
bil6 equ 02h bilkosong equ 0ffh
mov 60h,bil1 mov 61h,bil2
mov 62h,bil3 Tampil:
mov sbuf,62h jnb ti,
clr ti mov sbuf,61h
jnb ti, clr ti
mov sbuf,60h jnb ti,
clr ti sjmp Tampil
Progran di atas akan menampilkan nilai 123
pada display seven segmen. Dan nilai berapapun yang diisikan ke alamat
60h, 61h dan 62h akan ditampilkan pada display
seven segmen.
3.1.5 Rangkaian Pengirim Data Melalui Infra Merah
Data yang yang telah diolah mikrokontroler AT89S51, selain ditampilkan pada display seven segmen, data tersebut juga dikirimkan ke rangkaian penerima dengan
menggunakan LED infra merah. Rangkaiannya seperti gambar di bawah ini :
Ihut Parulian Togatorop : Aplikasi Mikrokontroler AT89S51 Dalam Pengukuran Dan Pengiriman Data Temperatur Menggunakan Sinar Infra Merah, 2009.
USU Repository © 2009
Gambar 3.5 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
P3.7 AT89S51
LED_ir 5V
VCC
330
R2 4.7k
2SA733
Ihut Parulian Togatorop : Aplikasi Mikrokontroler AT89S51 Dalam Pengukuran Dan Pengiriman Data Temperatur Menggunakan Sinar Infra Merah, 2009.
USU Repository © 2009
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 :
3
1 1
1 0, 0000263
26, 3 38
38 10 T
s s
f KHz
x Hz
µ = =
= ==
Tabel 3.1 Waktu mikrokontroler AT89S51 mengeksekusi perintah
Instruksi Siklus mesin
Waktu S CLR
NOP SETB
SJMP 1
1 1
2 1
1 1
2
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
Ihut Parulian Togatorop : Aplikasi Mikrokontroler AT89S51 Dalam Pengukuran Dan Pengiriman Data Temperatur Menggunakan Sinar Infra Merah, 2009.
USU Repository © 2009
merah dengan frekuensi 38 KHz. Ini sudah merupakan karakteristik dari penerima infra merah yang digunakan TSOP 1738. Pada alat ini, logika high 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. Pada alat ini, data yang dikirimkan sebanyak 3 data, yaitu data untuk nilai ratusan,
nilai puluhan dan nilai satuan. Setiap pengiriman masing-masing data dari ketiga data tersebut, didahului dengan pengiriman sinyal low, jadi ada 3 sinyal low dan ada 3 data yang
diterima. Akan terjadi masalah jika pengiriman data dilakukan seperti ini, yaitu data yang diterima urutannya tidak sesuai dengan data yang dikirimkan. Misalnya 3 data yang
dikirimkan adalah 567, kemungkinan data yang diterima adalah: 675, dan 756. Sehingga hanya 13 kemungkinannya data yang dikirimkan benar.
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 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
Ihut Parulian Togatorop : Aplikasi Mikrokontroler AT89S51 Dalam Pengukuran Dan Pengiriman Data Temperatur Menggunakan Sinar Infra Merah, 2009.
USU Repository © 2009
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
data: loop1:
acall pulsa djnz r0,loop1
ret
pulsa: Clr P0.0
Mov r7,2 pls:
Mov r6,255 Djnz r6,
Ihut Parulian Togatorop : Aplikasi Mikrokontroler AT89S51 Dalam Pengukuran Dan Pengiriman Data Temperatur Menggunakan Sinar Infra Merah, 2009.
USU Repository © 2009 P3.7 AT89S51
5V VCC
100
10uF
i _1
i
i _1
i
Djnz r7,pls Mov r7,50
Djnz r7, Ret
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.
3.1.6 Rangkaian Penerima Infra Merah