Program di atas bertujuan untuk menghidupkan LED yang terhubung ke P3.7 beberapa saat dan kemudian mematikannya. Perintah Setb P3.7 akan menjadikan
P3.7 berlogika high yang menyebabkan transistor C945 aktif dan LED akan menyala. Call delay akan menyebabkan LED ini hidup selama beberapa saat.
Perintah Clr P3.7 akan menjadikan P3.7 berlogika low yang menyebabkan transistor tidak aktif dan LED akan mati. Perintah call delay akan menyebabkan LED ini mati
selama beberapa saat. Perintah jmp Loop akan menjadikan program tersebut berulang, sehingga akan tampak LED tersebut berkedip.
Jika program tersebut diisikan ke mikrokontroller AT89S51, kemudian mikrokontroller dapat berjalan sesuai dengan program yang diisikan, maka
rangkaian minimum mikrokontroller AT89S51 telah bekerja dengan baik.
4.1.2 interfacing LCD 2x16
Bagian ini hanya terdiri dari sebuah LCD dot matriks 2 x 16 karakter yang berfungsi sebagai tampilan hasil pengukuran dan tampilan dari beberapa keterangan.
LCD dihubungkan langsung ke Port 0 dari mikrokontroler yang berfungsi mengirimkan data hasil pengolahan untuk ditampilkan dalam bentuk alfabet dan
numerik pada LCD. Display karakter pada LCD diatur oleh pin EN, RS dan RW: Jalur EN dinamakan Enable. Jalur ini digunakan untuk memberitahu LCD
bahwa anda sedang mengirimkan sebuah data. Untuk mengirimkan data ke LCD, maka melalui program EN harus dibuat logika low “0” dan set high pada dua
jalur kontrol yang lain RS dan RW. Jalur RW adalah jalur kontrol Read Write. Ketika RW berlogika low 0, maka informasi pada bus data akan dituliskan pada
layar LCD. Ketika RW berlogika high ”1”, maka program akan melakukan
Universitas Sumatera Utara
pembacaan memori dari LCD. Sedangkan pada aplikasi umum pin RW selalu diberi logika low 0
berdasarkan keterangan di atas maka kita sudah dapat membuat progam untuk menampilkan karaker pada display LCD. Adapun program yang diisikan ke
mikrokontroller untuk menampilkan karakter pada display LCD adalah sebagai berikut:
rs bit
p2.0 rw
bit p2.1
en bit
p2.2 kirim_karakter:
call data_penampil mov a,H
call kirim_data mov a,e
call kirim_data mov a,l
call kirim_data mov a,l
call kirim_data mov a,o
call kirim_data jmp kirim_karakter
data_penampil: mov a,80h
;posisi awal karakter call data_scan
ret kirim_data:
mov p0,a setb rs
Universitas Sumatera Utara
clr rw clr en
call delay ret
end Program di atas akan menampilkan kata “Hello” di baris pertama pada
display LCD 2x16.
4.1.3 Pengujian rangkaian ADC Analog to Digital Converter
Untuk mengetahui tingkat ketelitian ADC dalam mengkonversi input analog yang diberikan maka terlebih dahulu ADC tersebut harus di uji ketelitiannya.
Langkah yang digunakan untuk menguji tigkat ketelitian ADC adalah dengan cara memberikan tegangan analog yang presisi. Untuk mendapatkan Tegangan analog
yang presisi ini dapat digunakan power lab. Setiap perubahan tegangan yang diberikan merupakan input bagi ADC yang
akan diubah menjadi data digital. Proses perubahan tegangan input menjadi data digital dilakukan dengan cara:
faktor ADC
V Vin
Output =
sedangkan V
faktor
adalah :
Volt Volt
Vcc V
faktor
0196 ,
5 255
1 255
1 =
× =
× =
dengan data output dapat dihitung, misalnya jika Vin ADC = 0,3 Volt, maka:
30 ,
15 0196
, 3
, =
= Volt
Volt Output
, data yang diubah ke bilangan biner hanya bilangan bulatnya saja. Berarti bilang biner yang dihasilkan oleh tegangan input ADC sebesar
0,3 Volt adalah 0000 1111.pada rangkaian pengujian, Output ADC melalui kaki
Universitas Sumatera Utara
DB0-DB7 dihubungkan dengan delapan buah led untuk mempermudah dalam pembacaan data.
Gambar 4.2 Pengujian rangkaian ADC Analog to Digital Converter
Pada tabel 4.1 berikut akan ditampilkan data biner yang di output-kan oleh ADC untuk setiap variasi tegangan yang di inputkan ke ADC, yang dihitung dengan
cara yang sama seperti di atas.
Tabel 4.1 Output Data Biner
Universitas Sumatera Utara
Gambar 4.3 Grafik Linearitas ADC
4.2 Pengujian Sensor Warna