Anda di halaman 1dari 7

Ferdian Hidayatullah (13116022) / Teknik Elektro - ITERA

MODUL 3
SEVEN SEGMENT, KEYPAD, DAN LCD

Ferdian Hidayatullah (13116022)


Asisten: Fauzan Ghozi Al Ayubi (13115021)
Tanggal Percobaan: 30/03/2019
EL3203 Praktikum Sistem Mikroprosesor
Laboratorium Teknik Elektro – Institut Teknologi Sumatera

Abstrak standar-berikut penamaannya). Tetapi


walaupun demikian, dibandingkan bahasa C
Pada praktikum modul 3 dengan judul “SEVEN
SEGMENT, KEYPAD, DAN LCD” praktikan
untuk aplikasi komputer, compiler C untuk
merancang suatu output dengan keluaran berupa 7 microcontroller ini memiliki sedikit
segmen dan Keypad, melalui perintah bahasa perbedaan yang disesuaikan dengan
pemrograman AVR code. Praktikan menggunakan arsitektur AVR tempat program C tersebut
metode scanning pada piranti tersebut. Pada ditanamkan (embedded).
perancangan modul 3 ini, IC yang digunakan adalah
ATMega 8535. Dengan memahami datasheet pada IC
tersebut praktikan dapat menjalankan perintah yang Khusus untuk library fungsi, disamping
tertera pada modul. Pada percobaan pertama, library standar (seperti fungsi-fungsi
praktikan merancang output dari 7 segment berupa matematik, manipulasi String, pengaksesan
angka yang terdiri dari satuan dan puluhan. Untuk memori dan sebagainya), CodeVisionAVR
percobaan 2. Praktikan merancang 7 segment dengan
menggunakan keypad. Pada Percobaan 3, praktikan
juga menyediakan fungsi-fungsi tambahan
diminta untuk merancang keluaran dari LCD dengan yang sangat bermanfaat dalam pemrograman
input (masukan) dari keypad menggunakan metode antarmuka AVR dengan perangkat luar yang
scanning. umum digunakan dalam aplikasi kontrol.
Beberapa fungsi library yang penting
Kata kunci : Seven segment, keypad, lcd, ATMega
8535, AVR code, scanning, IC.
diantaranya adalah fungsi-fungsi untuk
pengaksesan LCD, komunikasi I2C, IC RTC
(Real time Clock), sensor suhu LM75, SPI
1. PENDAHULUAN (Serial Peripheral Interface) dan lain
sebagainya.
CODE VISION AVR
Untuk memudahkan pengembangan program
CodeVisionAVR pada dasarnya merupakan aplikasi. Selain menu-menu pilihan yang
perangkat lunak pemrograman umum dijumpai pada setiap perangkat lunak
microcontroller keluarga AVR berbasis berbasis Windows, CodeVisionAVR ini telah
bahasa C. Ada tiga komponen penting yang mengintegrasikan perangkat lunak
telah diintegrasikan dalam perangkat lunak downloader (in system programmer) yang
ini: Compiler C, IDE dan Program generator. dapat digunakan untuk mentransfer kode
Berdasarkan spesifikasi yang dikeluarkan mesin hasil kompilasi kedalam sistem
oleh perusahaan pengembangnya, Compiler memori microcontroller AVR yang sedang
C yang digunakan hampir deprogram. Integrated Development
mengimplementasikan semua komponen Environtment (IDE) telah diadaptasikan pada
standar yang ada pada bahasa C standar chip AVR yaitu In-System Programmer
ANSI (seperti struktur program, jenis tipe software, memungkinkan programmer untuk
data, jenis operator, dan library fungsi mentransfer program ke chip mikrokontroler
Ferdian Hidayatullah (13116022) / Teknik Elektro - ITERA

secara otomatis setelah proses dari MSB ke LSB adalah DP (titik), G, F, E, D,


assembly/kompilasi berhasil. In-System C, B, A.
Programmer software didesign untuk bekerja
dan dapat berjalan dengan perangkat lunak
lain seperti AVR Dragon, AVRISP, Atmel
STK500, dan lain sebagainya.

2. DASAR TEORI

SCANNING SEVEN SEGMENT SCANNING KEYPAD

Salah satu teknik untuk menjalankan Pada prinsipnya, teknik scanning pada keypad
perangkat Seven Segment adalah teknik mirip dengan teknik scanning pada seven
segmen. Namun, pada scanning keypad,
Scanning. Dengan teknik scanning ini, selain dilakukan pengaturan logika pin secara
sejumlah seven segmen dapat dijalankan bergantian, juga dilakukan secara bergantian
secara bergantian (dengan frekuensi pemeriksaan / pembacaan pin oleh
tertentu) melalui jumlah port yang mikrokontroler untuk mengetahui tombol keypad
mana yang sedang ditekan.
minimum.
DT-51 Trainer Board memiliki keypad 2x2
Pada praktikum ini akan dipelajari teknik
dengan kondisi sebagai berikut:
scanning untuk menjalankan dua buah seven
segment pada Trainer Board. Aturan untuk Pin penerima output dari mkrokontroler
menjalankan kedua seven segmen tersebut adalah pin KBO1 (dari port “I/P S KEY”)
dan KBO2 (dari port “I/P S KEY”) yang
adalah sebagai berikut:
bersifat active low. Sedangkan pin yang
memberikan input pada mikrokontroler
Untuk menjalankan seven segment 1 (
adalah KBI1 (dari port “I/P S KEY”) dan
berlabel DIGIT1) maka pin DO1 (dari KBI2 (dari port “I/P S KEY”) yang bersifat
Port ”I/P S KEY”) harus diberi logika “0”; active low.
Sedangkan untuk dapat menjalankan seven
segment 2 (DIGIT1) maka pin Berikut ini adalah tahap-tahap untuk menjalankan
keypad 2x2:
DO2 (dari port ”I/P S KEY”) harus diberi
logika “0”. Pertama, berikan logika “0” pada pin KBO1
(sementara pin KBO2 berlogika “1”). Lalu,
Dengan demikian, untuk menyalakan periksa logika dari data input KBI1. Jika
masing-masing seven segemen tersebut, logika pin KBI1 berubah dari “1” ke “0”
diatur logika ”0” untuk pin D01 dan D02 berarti KEY1 telah ditekan (perhatikan
secara bergantian. Selain dua aturan di atas, rangkain listriknya).
untuk menampilkan angka (0 – 9) dan titik (.) Selanjutnya KBI2 diperiksa; jika logikanya
dengan seven segment pada Trainer Board berubah dari “1” ke “0” berarti berarti KEY3
tersebut yaitu dengan mengatur logika pin telah ditekan.
dari port ”Data 7S”. Rangkaian seven
Kedua, berikan logika “0” pada KBO2
segment tesebut berisfat active high(logika “1” (sementara pin KBO1 berlogika “1”).
= nyala, logika “0” = padam), dengan urutan Kemudian tiap-tiap data input-nya diperiksa,
seperti pemeriksaan pada tahap pertama.
Ferdian Hidayatullah (13116022) / Teknik Elektro - ITERA

3. METODOLOGI

Alat-alat dan komponen-komponen yang


digunakan dalam percobaan ini antara lain:
 1 PC / Laptop
 Software Khazama AVR
Programmer
 Software CodeVision AVR
 Board Mikrokonroller AVR
ATmega8535
 LED
 Keypad
 Kabel Jumper

LCD 
 Ketik Source Code
LCD (Liquid Cristal Display) adalah salah PadaCodeVision AVR.
satu jenis display elektronik yang dibuat
dengan teknologi CMOS logic yang bekerja
dengan tidak menghasilkan cahaya tetapi Hubungkan kabel jumper
memantulkan cahaya yang ada di sesuai panduan pada Papan
sekelilingnya terhadap front-lit atau kit Mikrokontroler.
mentransmisikan cahaya dari back-lit. LCD
(Liquid Cristal Display) berfungsi sebagai
Compile dan Upload
penampil data baik dalam bentuk karakter,
Program tersebut jika tidak
huruf, angka ataupun grafik.
ada error.

amati dan Catat perubahan


pada board

4. HASIL DAN PEMBAHASAN

1. PERCOBAAN A.1
PERCOBAAN SCANNING SEVEN
Pada praktikum ini, percobaan tentang SEGMENT
LCD akan dilakukan dengan
menggunakan library beserta demo project- Pada percobaan ini, praktikan mendesain
nya. keluaran berupa seven segment dengan
menghubungkan Port A dan Port D pada
papan Kit praktikum. Dan memberikan
perintah melalui script pada Code Vision
AVR.
Ferdian Hidayatullah (13116022) / Teknik Elektro - ITERA

Script yang digunakan :

#include <avr/io.h> case '7':


#define F_CPU 7372800UL kodehex = 0xF8;
#include <util/delay.h> break;
case '8':
char angka; kodehex = 0x80;
char kodehex; break;
unsigned int SSegmen(char angka); case '9':
kodehex = 0x90;
int main (void) break;
{ }
DDRA = 0xFF; return kodehex;
DDRD = 0xFF; }
while (1)
{
PORTD =(0<<PD7)|(1<<PD6); Keluaran seven segmen :
PORTA =SSegmen('7')|(1<<7);
_delay_ms(1);
PORTD =(1<<PD7)|(0<<PD6);
PORTA =SSegmen('2');
_delay_ms(1);
}
return 0;
}

unsigned int SSegmen(char angka)


{
switch (angka)
{
case '0':
kodehex = 0xC0; Gambar 1. Seven segment perc. A.1
break;
case '1': Pembahasan :
kodehex = 0xF9;
break; Pada script diatas akan menghasilkan
case '2': keluaran Seven segmen pada papan kit. Pada
kodehex = 0xA4; script diatas dapat dijelaskan bahwa port A di
break; konfigurasi sebagai output dari 7 segmen.
case '3': Dan port D sebagai input nya. Dengan
kodehex = 0xB0; menggunakan delay sebesar 1 ms. Pada script
break; diatas diberikan perintah untuk menampilkan
case '4': keluaran angka puluhan dengan nilai 72.
kodehex = 0x99;
Switch akan aktif ketika diberikan perintah
break;
case '5': dalam bilanagn hex. Pada tiap” bagain dari 7
kodehex = 0x92; segmen (a sampai g) lampu lednya akan aktif
break; bergantung perintah dari script yang
case '6': diinputkan.
kodehex = 0x82;
break;
Ferdian Hidayatullah (13116022) / Teknik Elektro - ITERA

2. PERCOBAAN A.2 _delay_ms(1);


PERCOBAAN SCANNING SEVEN }
SEGMENT (MODIFIKASI) for(int x = 1; x<=200; x++) {
PORTD =(0<<PD7)|(1<<PD6);
PORTA =SSegmen('1')|(1<<7);
Script yang digunakan: _delay_ms(1);
PORTD =(1<<PD7)|(0<<PD6);
#include <avr/io.h>
PORTA =0b01000000;
#define F_CPU 7372800UL
_delay_ms(1);
#include <util/delay.h>
}
for(int x = 1; x<=200; x++) {
char angka; PORTD =(0<<PD7)|(1<<PD6);
char kodehex; PORTA =0b00001110;
unsigned int SSegmen(char angka); _delay_ms(1);
PORTD =(1<<PD7)|(0<<PD6);
int main (void) PORTA =0b00001110;
{
_delay_ms(1);
DDRA = 0xFF; }
DDRD = 0xFF; for(int x = 1; x<=200; x++) {
while (1)
PORTD =(0<<PD7)|(1<<PD6);
{
PORTA =0b11111111;
for(int x = 1; x<=200; x++) {
_delay_ms(1);
PORTD =(0<<PD7)|(1<<PD6); PORTD =(1<<PD7)|(0<<PD6);
PORTA =SSegmen('5')|(1<<7); PORTA =0b11111111;
_delay_ms(1); _delay_ms(1);
PORTD =(1<<PD7)|(0<<PD6);
}
PORTA =0b01000000;
for(int x = 1; x<=200; x++) {
_delay_ms(1); PORTD =(0<<PD7)|(1<<PD6);
} PORTA =0b00001110;
for(int x = 1; x<=200; x++) {
_delay_ms(1);
PORTD =(0<<PD7)|(1<<PD6);
PORTD =(1<<PD7)|(0<<PD6);
PORTA =SSegmen('4')|(1<<7);
PORTA =0b00001110;
_delay_ms(1); _delay_ms(1);
PORTD =(1<<PD7)|(0<<PD6); }
PORTA =0b01000000; for(int x = 1; x<=200; x++) {
_delay_ms(1); PORTD =(0<<PD7)|(1<<PD6);
}
PORTA =0b11111111;
for(int x = 1; x<=200; x++) { _delay_ms(1);
PORTD =(0<<PD7)|(1<<PD6); PORTA PORTD =(1<<PD7)|(0<<PD6);
=SSegmen('3')|(1<<7); PORTA =0b11111111;
_delay_ms(1); _delay_ms(1);
PORTD =(1<<PD7)|(0<<PD6);
}
PORTA =0b01000000; for(int x = 1; x<=200; x++) {
_delay_ms(1);
PORTD =(0<<PD7)|(1<<PD6);
} PORTA =0b00001110;
for(int x = 1; x<=200; x++) { _delay_ms(1);
PORTD =(0<<PD7)|(1<<PD6);
PORTD =(1<<PD7)|(0<<PD6);
PORTA =SSegmen('2')|(1<<7); PORTA =0b00001110;
_delay_ms(1);
_delay_ms(1);
PORTD =(1<<PD7)|(0<<PD6); }
PORTA =0b01000000; for(int x = 1; x<=200; x++) {
Ferdian Hidayatullah (13116022) / Teknik Elektro - ITERA

PORTD =(0<<PD7)|(1<<PD6); Keluaran seven segmen :


PORTA =0b11111111;
_delay_ms(1);
PORTD =(1<<PD7)|(0<<PD6);
PORTA =0b11111111;
_delay_ms(1);
}

}
return 0;
}

unsigned int SSegmen(char angka)


{
switch (angka) Gambar 2. Seven segment perc. A.2 (10)
{
case '0':
kodehex = 0xC0;
break;
case '1':
kodehex = 0xF9;
break; case '2': kodehex = 0xA4; break;
case '3': kodehex = 0xB0; break;
case '4': kodehex = 0x99; break;
case '5':
kodehex = 0x92;
break; case '6': kodehex = 0x82; break;
case '7': kodehex = 0xF8; break;
case '8': kodehex = 0x80; break;
case '9': Gambar 3. Seven segment perc. A.2 (20)
kodehex = 0x90;
break;
}

return kodehex;
}

Gambar 4. Seven segment perc. A.2 (30)


Ferdian Hidayatullah (13116022) / Teknik Elektro - ITERA

1 detik kemudian, seven segment akan


menampilkan ”10.” Switch akan aktif ketika
diberikan perintah dalam bilanagn hex. Pada
tiap” bagain dari 7 segmen (a sampai g)
lampu lednya akan aktif bergantung perintah
dari script yang diinputkan.

5. KESIMPULAN

1. Praktikan dapat memahami datasheet


Gambar 5. Seven segment perc. A.2 (40) pada IC ATMega 8535

2. Praktikan dapat merancang desain


dengan mikrokontroler dan
diaplikasikan pada 7 Segmen, LCD
dan keypad.

3. Praktikan membuat desain dengan


bahasa pemrograman AVR code
vision.

Gambar 6. Seven segment perc. A.2 (50)

PEMBAHASAN : 6. REFERENSI
Pada percobaan ini, merupakan modifikasi
dari percobaan pertama. Sama halnya pada 1. Laboratorium Dasar, Teknik Elektro
percobaan pertama, script diatas dapat Institut Teknologi Sumatera, Modul
dijelaskan bahwa port A di konfigurasi Sistem Mikroprosesor
sebagai output dari 7 segmen. Dan port D 2. http://xcontohmakalah.blogspot.com
sebagai input nya. Dengan menggunakan /2014/02/pengertian-
delay sebesar 1 ms. Pada script diatas codevisionavr.html
diberikan perintah untuk menampilkan 3. http://elektronika-dasar.web.id/lcd-
keluaran angka puluhan dengan nilai liquid-cristal-display/
50,40,30,20, dan 10. Script diatas akan
menunjukan kondisi :
Pertama, seven segment akan menampilkan
”50.”
1 detik kemudian, seven segment akan
menampilkan ”40.”
1 detik kemudian, seven segment akan
menampilkan ”30.”
1 detik kemudian, seven segment akan
menampilkan ”20.”

Anda mungkin juga menyukai