Jadi waktu yang dibutuhkan untuk mengerjakan program di atas adalah 131.073 μdetik atau 0,131073 detik dan dapat dibulatkan menjadi 0,13 detik.
Jika program tersebut diisikan ke mikrokontroler AT89S51, kemudian mikrokontroler dapat berjalan sesuai dengan program yang diisikan, maka rangkaian
minimum mikrokontroler AT89S51 telah bekerja dengan baik.
4.3 Pengujian Rangkaian Display Seven Segmen
Pengujian pada rangkaian ini dapat dilakukan dengan menghubungkan rangkaian ini dengan rangkaian mikrokontroler, kemudian memberikan data tertentu pada port serial
dari mikrokontroler. Seven segmen yang digunakan adalah common anoda, dimana semen akan menyala jika diberi logika 0 dan sebaliknya segmen akan mati jika diberi
logika 1. Dari hasil pengujian diperoleh data yang harus dikirimkan ke port serial untuk
menampilkan angka desimal adalah sebagai berikut:
Angka Data yang dikirim
1 0EDH
2 19H
3 89H
Universitas Sumatera Utara
4 0C5H
5 83H
6 03H
7 0E9H
8 01h
9 81H
21H
Program yang diisikan pada mikrokontroler untuk menampilkan nilai-nilai tersebut adalah sebagai berikut:
bil0 equ 21h bil1 equ 0edh
bil2 equ 19h bil3 equ 89h
bil4 equ 0c5h bil5 equ 83h
bil6 equ 03h bil7 equ 0e9h
bil8 equ 01h bil9 equ 81h
Loop: mov sbuf,bil0
Jnb ti, Clr ti
sjmp loop
Universitas Sumatera Utara
Program di atas akan menampilkan angka 0 pada semua seven segmen. Sedangkan untuk menampilkan 3 digit angka yang berbeda pada seven segmen adalah
dengan mengirimkan ke 3 data angka yang akan ditampilkan pada seven segmen. Programnya adalah sebagai berikut :
Loop: mov sbuf,bil1
Jnb ti, Clr ti
mov sbuf,bil2 Jnb ti,
Clr ti mov sbuf,bil3
Jnb ti, Clr ti
sjmp loop Program di atas akan menampilkan angka 1 pada seven segmen ketiga, angka 2 pada
seven segmen kedua dan angka 3 pada seven segmen pertama.
Universitas Sumatera Utara
4.4 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 :
Gambar 4.1 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 mengaktifkan 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
P3.7 AT89S51
LED_ir 5V
VCC
330
R2 4.7k
2SA733
Universitas Sumatera Utara
memiliki tegangan 0 sd 0,009 volt, tegangan ini akan menyebabkan transistor tidak aktif.
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 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 :
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
Universitas Sumatera Utara
nop nop
nop nop
nop nop
nop nop
nop nop
nop setb p3.7
nop nop
nop nop
nop nop
nop nop
nop 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 :
Universitas Sumatera Utara
T =
6
12 1 10
1 12
Clock x
sekon s
MHz µ
= =
Jika dihitung lamanya mikrokontroler AT89S51 mengerjakan perintah di atas adalah sebagai berikut:
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
μs 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 :
6 6
1 1
1 1 10
38461 38, 461
26 26 10
26 x
f Hz
KHz T
s x
s µ
−
= = =
= =
=
Universitas Sumatera Utara
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. Pada alat ini, data yang dikirimkan sebanyak 3 data, yaitu data untuk nilai
ratusan, nilai puluhan dan nilai. Setiap pengiriman masing-masing data dari ketiga data tersebut, didahului dengan pengiriman sinyal low, jadi ada 3 sinyal low dan ada 3
data. Akan terjadi masalah jika pengiriman data dilakukan seperti ini, yaitu data yang diterima urutannya tidak sesuai dengan data yang dikirimkan. Misalnya 3 data yang
Universitas Sumatera Utara
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 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
Universitas Sumatera Utara
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 pulsa untuk data satu ± 2 x 1.131
μs = 2.262 μs. Demikian pula untuk data-data yang lainnya.
4.5 Rangkaian Penerima Infra Merah