PERTEMUAN IV PEMOGRAMAN SEVEN SEGMEN DAN...

12
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

Transcript of PERTEMUAN IV PEMOGRAMAN SEVEN SEGMEN DAN...

Page 1: PERTEMUAN IV PEMOGRAMAN SEVEN SEGMEN DAN …if-lab.itenas.ac.id/iflab/wp-content/uploads/2017/10/005.-Mikroko... · Ubah program tersebut sehingga seven segmen dapat menampilkan bilangan

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

Page 2: PERTEMUAN IV PEMOGRAMAN SEVEN SEGMEN DAN …if-lab.itenas.ac.id/iflab/wp-content/uploads/2017/10/005.-Mikroko... · Ubah program tersebut sehingga seven segmen dapat menampilkan bilangan

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

Page 3: PERTEMUAN IV PEMOGRAMAN SEVEN SEGMEN DAN …if-lab.itenas.ac.id/iflab/wp-content/uploads/2017/10/005.-Mikroko... · Ubah program tersebut sehingga seven segmen dapat menampilkan bilangan

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

Page 4: PERTEMUAN IV PEMOGRAMAN SEVEN SEGMEN DAN …if-lab.itenas.ac.id/iflab/wp-content/uploads/2017/10/005.-Mikroko... · Ubah program tersebut sehingga seven segmen dapat menampilkan bilangan

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:

Page 5: PERTEMUAN IV PEMOGRAMAN SEVEN SEGMEN DAN …if-lab.itenas.ac.id/iflab/wp-content/uploads/2017/10/005.-Mikroko... · Ubah program tersebut sehingga seven segmen dapat menampilkan bilangan

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.

Page 6: PERTEMUAN IV PEMOGRAMAN SEVEN SEGMEN DAN …if-lab.itenas.ac.id/iflab/wp-content/uploads/2017/10/005.-Mikroko... · Ubah program tersebut sehingga seven segmen dapat menampilkan bilangan

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

Page 7: PERTEMUAN IV PEMOGRAMAN SEVEN SEGMEN DAN …if-lab.itenas.ac.id/iflab/wp-content/uploads/2017/10/005.-Mikroko... · Ubah program tersebut sehingga seven segmen dapat menampilkan bilangan

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)

Page 8: PERTEMUAN IV PEMOGRAMAN SEVEN SEGMEN DAN …if-lab.itenas.ac.id/iflab/wp-content/uploads/2017/10/005.-Mikroko... · Ubah program tersebut sehingga seven segmen dapat menampilkan bilangan

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

Page 9: PERTEMUAN IV PEMOGRAMAN SEVEN SEGMEN DAN …if-lab.itenas.ac.id/iflab/wp-content/uploads/2017/10/005.-Mikroko... · Ubah program tersebut sehingga seven segmen dapat menampilkan bilangan

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

Page 10: PERTEMUAN IV PEMOGRAMAN SEVEN SEGMEN DAN …if-lab.itenas.ac.id/iflab/wp-content/uploads/2017/10/005.-Mikroko... · Ubah program tersebut sehingga seven segmen dapat menampilkan bilangan

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

Page 11: PERTEMUAN IV PEMOGRAMAN SEVEN SEGMEN DAN …if-lab.itenas.ac.id/iflab/wp-content/uploads/2017/10/005.-Mikroko... · Ubah program tersebut sehingga seven segmen dapat menampilkan bilangan

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

Page 12: PERTEMUAN IV PEMOGRAMAN SEVEN SEGMEN DAN …if-lab.itenas.ac.id/iflab/wp-content/uploads/2017/10/005.-Mikroko... · Ubah program tersebut sehingga seven segmen dapat menampilkan bilangan

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.