PERTEMUAN IV PEMOGRAMAN SEVEN SEGMEN DAN...
Transcript of PERTEMUAN IV PEMOGRAMAN SEVEN SEGMEN DAN...
Mikrokontroler-Pemograman Seven Segmen dan LCD
PERTEMUAN IV
PEMOGRAMAN SEVEN SEGMEN DAN LCD
TUJUAN:
- Mahasiswa mampu memprogram mikrokontroller untuk menampilkan Informasi
pada perangkan output Seven Segmen dan LCD.
PERALATAN:
Modul-modul/perangkat keras yang digunakan dalam praktikum ini terdiri dari :
1. Satu buah Kit-MCU (ATMega16)
2. Satu buah Kit-Display
a. 1 sub-modul Led (Merah-Kuning-Hijau-Biru)
b. 1 sub-modul Mic
c. 1 buah Buzzer
d. 1 sub-modul Led & Switch
e. 1 sub-modul LDR
f. 1 sub-modul Potensio
g. 1 sub-modul Phototransistor
3. Satu buah Kit Programmer AVR910-Serial
Mikrokontroler-Pemograman Seven Segmen dan LCD
4. Satu Kit Seven Segmen
5. Satu Kit LCD
6. Satu buah kabel ISP
7. Satu buah LED Senter
8. Satu set kabel jumper yang terdiri :
a. 3 buah kabel data 10 pin
b. 1 buah kabel jumper 2 pin
c. 3 buah kabel jumper 1 pin
4. SEVEN SEGMEN
LED Seven Segmen umunya digunakan
untuk menampilkan angka satuan desimal yaitu
angka 0 sampai dengan 9. Kadang-kadang dapat
digunakan juga untuk menampilkan bilang Hexa
Desimal yaitu berupa angak 1 .. 9 dan ab,c,d,e,f.
Untuk dapat menampilkan angka-angka tersebut
dengan cara mengubah nyala atau matinya
masing-masing dari 7 segmen tersebut. Walaupun
nama komponen ini adalah Seven Segmen, sebenarnya terdapat 8 buah Led yang terdiri
Mikrokontroler-Pemograman Seven Segmen dan LCD
7 buah dalam bentuk garis dan 1 buah untuk dalam bentuk titik (untuk desimal/koma).
Dengan cara ini pin yang digunakan pada MCU untuk mengendalikan sebuah 7Segmen
dengan 7+1 buah pin (untuk jalur data). Adapun penamaan led-led tersebut
menggunakan huruf dari A sampai dengan G dan DP untuk titik, untuk lebih jelasnya
dapat dilihat pada gambar di bawah ini.
Sementara itu secara skematik terdapat dua jenis 7 Segmen ini yaitu Common
Anoda (Gambar 52 a dan Common Cathoda (Gambar 52.b). Cara pemakaiannya setiap
jenis ini berbeda secara logika,sebagai contoh untuk Common Anoda, “common”-nya
diberikan logika 1 dalam hal ini Vcc (+) dan setiap led akan menyala jika diberi logika
0. Sedangkan untuk Common Cathoda kebalikkannya, “commom”-nya diberikan logika
0 (nol) dalam hal ini “Gnd” dan setiap led akan menyala jika diberi logika 1.
Gambar 52 Skematik 7Segmen Common Anoda dan Common Cathoda
Tugas 4.1 Memprogram Seven Segmen Tunggal
1. Salin source code di bawah ini dan simpan dengan nama file : Tugas_4.1.bas
'-----------------------------------------
' Single 7-Segmen Common Anoda
'---------------------------------
$regfile = "m16def.dat"
$crystal = 11059200
'crystal= 8000000
' pgfedcba
Const N0 = &B00111111
Const N1 = &B00000110
Const N2 = &B01011011
Const N3 = &B01001111
Const N4 = &B01100110
Const N5 = &B01101101
Mikrokontroler-Pemograman Seven Segmen dan LCD
Const N6 = &B01111101
Const N7 = &B00000111
Const N8 = &B01111111
Const N9 = &B01101111
Config PortA = Output
Do
Porta = N0
Waitms 1000
Porta = N1
Waitms 1000
Porta = N2
Waitms 1000
Porta = N3
Waitms 1000
Porta = N4
Waitms 1000
Porta = N5
Waitms 1000
Porta = N6
Waitms 1000
Porta = N7
Waitms 1000
Porta = N8
Waitms 1000
Porta = N9
Waitms 1000
Loop 2. Compile & Upload ke dalam MCU
3. Hubungkan MCU dan Kit-7S1 pada 7-segmen tunggal dengan PORT.A
4. Perhatikan prilaku 7-Segmen tunggal tersebut.
Tugas Praktikan:
1. Ubah program tersebut sehingga seven segmen dapat menampilkan bilangan
hexadesimal dari 0-F pada 7-segmen tunggal.
Tugas 4.2 Menampilkan Hasil Counter Up/Down Pada Seven Segmen
Pada tugas ini, praktikan diminta untuk membuat program sekaligus
merangkaikan kitkit yang ada untuk menghasilkan sebuah Counter Up/Down 1 digit
dengan menggunakan dua buah tombol tekan (misal S1 dan S2). Tombol S1 digunakan
untuk menaikkan nilai bilangan dan S2 digunakan untuk menurunkan nilai bilangan.
Tugas:
Mikrokontroler-Pemograman Seven Segmen dan LCD
1. Mounting kit-kit yang ada/diperlukan. (Kit MCU,Kit Display,Kit 7S-1)
2. Tunjukkan kepada asisten serta jelaskan rencana praktikan terhadap rangkaian yang
dirakit.
(Asisten memberi paraf pada hal ini.
3. Buat source code untuk menjadikan rangkaian dirakit menghasilkan Counter
Up/Down.
4. Source code disimpan dengan nama file : Tugas_4.2.bas
5. Jika rangkaian bekerja sudah sesuai skenario yang diinginkan, tunjukkan kepada
asisten.
5. MATERI LCD 16 X 2 Layar LCD merupakan suatu media penampilan data yang sangat efektif dan efisien
dalam penggunaannya. Untuk menampilkan sebuah karakter pada layar LCD diperlukan
beberapa rangakaian tambahan. Untuk lebih memudahkan para pengguna, maka beberapa
perusahaan elektronik menciptakan modul LCD. Adapun bentuk fisik LCD 16x2 seperti
pada Gambar 54
Gambar 54 Bentuk Fisik LCD (Amarilys 2010)
LCD dibagi menjadi dua bagian yaitu bagian depan panel LCD yang terdiri dari
banyak dot atau titik LCD dan mikrokontroler yang menempel pada bagian belakang
panel LCD yang berfungsi untuk mengatur titik-titik LCD sehingga dapat menampilkan
huruf, angka, dan simbol khusus yang dapat terbaca. 1. Fungsi Pin-Pin LCD Modul
LCD berukuran 16 karakter x 2 baris dengan fasilitas backlighting memiliki 16 pin yang
terdiri dari 8 jalur data, 3 jalur kontrol dan jalur-jalur catu daya, dengan fasilitas pin
yang tersedia maka lcd 16 x 2 dapat digunakan secara maksimal untuk menampilkan
data yang dikeluarkan oleh mikrokontroler, secara ringkas fungsi pin-pin pada LCD
dituliskan pada Tabel 2.
Mikrokontroler-Pemograman Seven Segmen dan LCD
Sedangkan secara umum pin-pin LCD diterangkan sebagai berikut :
Pin 1 dan 2
Merupakan sambungan catu daya, Vss dan Vdd. Pin Vdd dihubungkan dengan
tegangan positif catu daya, dan Vss pada 0V atau ground. Meskipun data menentukan
catu 5 Vdc (hanya pada beberapa mA), menyediakan 6V dan 4.5V yang keduanya
bekerja dengan baik, bahkan 3V cukup untuk beberapa modul.
Pin 3
Pin 3 merupakan pin kontrol Vee, yang digunakan untuk mengatur kontras display.
Idealnya pin ini dihubungkan dengan tegangan yang bisa dirubah untuk memungkinkan
pengaturan terhadap tingkatan kontras display sesuai dengan kebutuhan, pin ini dapat
dihubungkan dengan variable resistor sebagai pengatur kontras.
Pin 4
Pin 4 merupakan Register Select (RS), masukan yang pertama dari tiga command
control input. Dengan membuat RS menjadi high, data karakter dapat ditransfer dari dan
menuju modulnya.
Pin 5
Mikrokontroler-Pemograman Seven Segmen dan LCD
Read/Write (R/W), untuk memfungsikan sebagai perintah write maka R/W low atau
menulis karakter ke modul. R/W high untuk membaca data karakter atau informasi
status dari registernya.
Pin 6
Enable (E), input ini digunakan untuk transfer aktual dari perintah-perintah atau
karakter antara modul dengan hubungan data. Ketika menulis ke display, data ditransfer
hanya pada perpindahan high atau low. Tetapi ketika membaca dari display, data akan
menjadi lebih cepat tersedia setelah perpindahan dari low ke high dan tetap tersedia
hingga sinyal low lagi. Pin 714 Pin 7 sampai 14 adalah delapan jalur data/data bus (D0
sampai D7) dimana data dapat ditransfer ke dan dari display. Pin 16 Pin 16
dihubungkan kedalam tegangan 5 Volt untuk memberi tegangan dan menghidupkan
lampu latar/Back Light LCD.
Pin 7-14
Pin 7 sampai 14 adalah delapan jalur data/data bus (D0 sampai D7) dimana data
dapat ditransfer ke dan dari display. Pin 16 Pin 16 dihubungkan kedalam tegangan 5
Volt untuk memberi tegangan dan menghidupkan lampu latar/Back Light LCD. 2.
Pengalamatan LCD Pengalamatan LCD dimulai dengan menghidupkan modul LCD,
karakter kursor pada LCD diposisikan pada awal baris pertama (alamat 00H). Masing-
masing sewaktu sebuah karakter dimasukkan, kursor bergerak ke alamat selanjutnya
01H, 02H dan seterusnya. Sebuah alamat awal yang baru bergerak ke alamat
selanjutnya, harus dimasukkan sebagai sebuah perintah. Dengan cara mengirimkan
sebuah perintah Set Display Address, nilai 80H. Dengan dua line karakter, baris yang
pertama dari karakter, baris pertama mulai pada alamat 00H dan baris ke dua pada
alamat 40H. Hubungan antara tata letak alamat-alamat terlihat pada Gambar 2.12
berikut ini.
Gambar 55 Pengalamatan LCD (anonimc,2008)
Mikrokontroler-Pemograman Seven Segmen dan LCD
Gambar 56 Tampak LCD
5.1 Menampilkan “Selamat Datang” Pada LCD 16x2
Pada tugas kali ini, praktikan diminta untuk membuat program sekaligus merakit kit-kit
yang ada untuk menampilkan sebuah kata “Hello!” di baris pertama layar LCD 16x2
dan kata “bandung” di baris kedua. Lakukan langkah berikut.
1. Salin source code di bawah ini dan simpan dengan nama file : Tugas_5.1.bas
$regfile = "m16def.dat"
$crystal = 8000000
Dim Count As Integer
Dim X As Integer
Count = 0
Enable Interrupts
Config Lcd = 16 * 2
Config Lcdbus = 4
Config Lcdmode = Port
Config Lcdpin = Pin , Rs = Portb.2 , E = Portb.3
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 =
Portb.7
'Display On
X = 1
Do
Cls
Locate 1 , X
Lcd "Hello! " ; Count
Locate 2 , X
Lcd "Bandung"
Count = Count + 1
Wait 1
X = X + 1
If X > 10 Then X = 1
Loop
End
2. Compile & Upload ke dalam MCU
Mikrokontroler-Pemograman Seven Segmen dan LCD
3. Sambungkan LCD ke PortB (yang digunakan PinB.2...PinB.7)
4. Perhatikan perubahan LCD 16x2 tersebut.
5. Perlihatkan hasilnya ke asisten
Tugas Praktikan:
Ubahlah program tersebut sehinga LCD 16x2 menampilkan nama anda pada baris
ke 2 kemudian perlihatkan hasil perubahan kepada asisten.
5.2 Menampilkan Bintang Pada LCD 16x2
1. Salin source code di bawah ini dan simpan dengan nama file : Tugas_5.2.bas
$regfile = "m16def.dat"
$crystal = 8000000
Dim Count As Integer
Dim X As Integer
Count = 0
Enable Interrupts
Config Lcd = 16 * 2
Config Lcdbus = 4
Config Lcdmode = Port
Config Lcdpin = Pin , Rs = Portc.2 , E = Portc.3
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 =
Portc.7
Cursor Off
Deflcdchar 0 , 32 , 4 , 4 , 31 , 4 , 4 , 32 , 32
Deflcdchar 1 , 32 , 2 , 20 , 14 , 5 , 8 , 32 , 32
Deflcdchar 2 , 32 , 2 , 26 , 4 , 11 , 8 , 32 , 32
Deflcdchar 3 , 32 , 17 , 10 , 4 , 10 , 17 , 32 , 32
Deflcdchar 4 , 32 , 8 , 11 , 4 , 26 , 2 , 32 , 32
Deflcdchar 5 , 32 , 8 , 5 , 14 , 20 , 2 , 32 , 32
Cls
Do
For X = 0 To 5 Step 1
Portd = 255
Waitms 100
Portd = 0
Waitms 100
Locate 1 , 16
Mikrokontroler-Pemograman Seven Segmen dan LCD
Lcd Chr(x)
Next X
Loop
End
2. Compile & Upload ke dalam MCU
3. Sambungkan LCD ke PortC
4. Perhatikan perubahan LCD 16x2 tersebut.
5. Perlihatkan hasilnya ke asisten
5.3 Menampilkan Orang Pada LCD 16x2
1. Salin source code di bawah ini dan simpan dengan nama file : Tugas_5.3.bas
$regfile = "m16def.dat"
$crystal = 8000000
Dim X As Integer
Dim Z As Integer
Config Lcd = 16 * 2
Config Lcdbus = 4
Config Lcdmode = Port
Config Lcdpin = Pin , Rs = Portc.2 , E = Portc.3
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 =
Portc.7
Cursor Off
Cursor Off
Deflcdchar 0 , 21 , 14 , 4 , 4 , 4 , 27 , 32 , 32
Deflcdchar 1 , 4 , 14 , 21 , 4 , 4 , 10 , 10 , 10
Deflcdchar 2 , 32 , 32 , 10 , 32 , 17 , 14 , 32 , 32 ' replace [x] with
number (0-7)
Deflcdchar 3 , 32 , 32 , 10 , 32 , 32 , 14 , 17 , 32 ' replace [x] with
number (0-7)
Cls
Do
For X = 0 To 1 Step 1
Portd = 255
Waitms 200
Portd = 0
Waitms 100
Locate 1 , 16
Lcd Chr(x)
Locate 1 , 1
Z = X + 2
Mikrokontroler-Pemograman Seven Segmen dan LCD
Lcd Chr(z)
Next X
Loop
End
2. Compile & Upload ke dalam MCU
3. Sambungkan LCD ke PortC
4. Perhatikan perubahan LCD 16x2 tersebut.
5. Perlihatkan hasilnya ke asisten
5.4 Menampilkan Tanggal dan Waktu Pada LCD 16x2
1. Salin source code di bawah ini dan simpan dengan nama file : Tugas_5.4.bas
$regfile = "m16def.dat"
$crystal = 8000000
$baud = 9600
Dim I As Integer
Enable Interrupts
Config Portd = Output
'------------------
Portd.1 = 0
'hanya aga aman saja krn pin ini pd bisa jadi board kitnya terhubung dengan
GND
Portd.3 = 0
'------------------
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portd.0 , E = Portd.2 , Db4 = Portd.4
Config Lcdpin = Pin , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7
'Config Lcdbus = 4
Config Date = Mdy , Separator = -
Config Clock = Soft
Date$ = "26/11/08"
Time$ = "08:16:00"
'-----------------------
Cls
I = 0
Do
Locate 1 , 1
Lcd "Tanggal:" ; Date$
Locate 2 , 1
Lcd "Pukul:" ; Time$
Waitms 1000
Mikrokontroler-Pemograman Seven Segmen dan LCD
Cls
Locate 1 , 1
Lcd "Count : " ; I
I = I + 1
Waitms 1000
Loop
End
2. Compile & Upload ke dalam MCU
3. Sambungkan LCD ke PortC
4. Perhatikan perubahan LCD 16x2 tersebut.
5. Perlihatkan hasilnya ke asisten
Tugas Praktikan:
1. Buatlah program menampilkan hasil pengukuran sensor (pilih salah satu antara
Mic, LDR, Photensiometer, atau Phototransistor) pada LCD
2. Buatlah program menampilkan hasil pengukuran sensor (pilih salah satu antara
Mic, LDR, Photensiometer, atau Phototransistor) pada Seven Segmen 3 display.