LAPORAN PRAKTIKUM
MIKROPROSSESOR
Modul II : Scanning Display Seven Segment and
Keypad
Disusun Oleh :
Hanif Rifkha Pambudi
13101055
Rekan Praktikum : Hendro Bayu Pramono
(13101056)
Asisten Praktikum : Andika Agung
Khoirun Ni’mah
Henny Mahendali
LABORATURIUM SWITCHING
SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM
PURWOKERTO
2015
MODUL II
SCANNING DISPLAY SEVEN SEGMENT AND KEYPAD
I. Dasar Teori
Seven Segment Display ( 7 Segment Display)
adalah komponen elektroni-ka yang dapat menampilkan
angka desimal melalui kombinasi-kombinasi segmennya.
Seven Segment Display pada umumnya dipakai pada Jam
Digital, Kalkulator, Penghitung atau Counter Digital,
Multimeter Digital dan juga panel display digital
seperti pada microwave oven ataupun pengatur suhu digital
. Seven Segment Display pertama diperkenalkan dan
dipatenkan pada tahun 1908 oleh Frank. W. Wood dan
mulai dikenal luas pada tahun 1970-an setelah
aplikasinya pada LED (Light Emitting Diode).
Seven Segment Display memiliki 7 Segmen setiap segmen
dikendalikan secara ON dan OFF untuk menampilkan angka
yang diinginkan. Angka-angka dari 0 (nol) sampai 9
(Sembilan) dapat ditampilkan dengan menggunakan
beberapa kombinasi Segmen. Selain 0 – 9, Seven Segment
Display juga dapat menampilkan Huruf Hexadecimal dari A
sampai F. Segmen atau elemen-elemen pada Seven Segment
Display diatur menjadi bentuk angka “8” yang agak
miring ke kanan dengan tujuan untuk mempermudah
pembacaannya. Pada beberapa jenis Seven Segment
Display, terdapat juga penambahan “titik” yang
menunjukan angka koma decimal. “LED 7 Segmen ada dua
type yaitu “7 Segmen common Cathode” dan “ 7 Segmen common
Anode”.[1]
Perbedaan antara dua layar, seperti namanya, adalah
bahwa katoda umum memiliki semua katoda dari 7-segmen
terhubung langsung bersama-sama dan anoda umum memiliki
semua anoda dari 7-segmen terhubung bersama-sama dan
diterangi sebagai berikut.
1. Common Katoda (CC) - Dalam tampilan katoda umum,
semua koneksi katoda dari segmen LED bergabung
bersama untuk logika "0" atau tanah. Segmen individu
diterangi oleh aplikasi dari "TINGGI", atau logika
"1" sinyal melalui resistor yang membatasi arus ke
bias maju terminal Anoda individu.
Gambar A.1 Common Catoda.
2. Common Anode (CA) - Dalam tampilan anoda umum,
semua koneksi anoda dari segmen LED bergabung bersama
untuk logika "1". Segmen individu diterangi dengan
menerapkan dasar, logika "0" atau "LOW" sinyal
melalui cocok resistor yang membatasi arus ke katoda
dari segmen tertentu.[2]
Gambar A.2. Common Anoda
Gambar A.3. Tampilan display seven segment[2]
Tabel 4.1 kendali seven segment Common Anode (Anoda):
Numerik Dp G f e d c b a Dalam
hex0 1 1 0 0 0 0 0 0 C01 1 1 1 1 1 0 0 1 F92 1 0 1 0 0 1 0 0 A43 1 0 1 1 0 0 0 0 B04 1 0 0 1 1 0 0 1 995 1 0 0 1 0 0 1 0 926 1 0 0 0 0 0 1 0 827 1 1 1 1 1 0 0 0 F8
8 1 0 0 0 0 0 0 0 809 1 0 0 1 1 0 0 0 98
Metode untuk memahami scanning display berisi 4
buah 7 segmen common anoda yang dapat diakses dengan 12
pin I/O. Masukan pin common dapat dikendalikan pada pin
Ed1 hingga Ed4. Masukan pin segmen a-b-c-d-e-f-g-dot
(active low) dapat diakses melalui jumper Jdr. Jadi
prinsipnya adalah mengaktifkan salah satu pin Ed1..Ed4
dengan memberikan logika ’1’. Kemudian data segmen yang
sudah disiapkan diberikan ke masukan a..g dan dot
dengan syarat memberikan logika ’0’ agar led segmen
menyala.[1]
Gambar A.4 skematik scanning seven segment
Keypad adalah kumpulan beberapa switch yang tersusun
atas baris dan kolom, yang mempunyai sifat yang unik yaitu
kolom dan barisnya tidak dapat dirubah. Dalam melakukan
proses pembacaan dan pengiriman data keypad dapat
bekerja dengan menggunakan dua metoda, yaitu metoda
scanning dan pollong. Keypad ATMega 8535 yang digunakan
menggunakan metoda scanning yang berfungsi untuk menerima
input tombol keypad serta menampilkan digit atau
karakter yang diinginkan ke alat penampil seperti
seven segment atau LCD. Keypad merupakan susunan saklar
push-button menurut baris dan kolom, hampir sama dengan
dot matriks, hanya saja dot matrix tersusun dari LED.
Bentuk dan susunan keypad dapat dilihat pada gambar
2.3. Hubungkan pin keypad dengan pin mikrokontroler.
Cara untuk mengetahui saklar mana yang ditekan adalah
dengan memeriksa baris dan kolom. Agar mikrokontroler
mengetahui.[3]
Keypad Matrix adalah tombol - tombol yang disusun
secara matrix (baris x kolom) sehingga dapat mengurangi
penggunaan Port. Sebagai contoh, Keypad Matriks 4×4
cukup menggunakan 8 pin untuk 16 tombol push button.
Hal tersebut dimungkinkan karena rangkaian tombol
disusun secara horizontal membentuk baris dan secara
vertical membentuk kolom.[1]
Gambar A.5 Rangkaian Keypad
Gambar A.6 Skematik scanning keypad
II. Hasil Data
Pada praktikum modul 2 kali ini kita membahas
tentang scanning display seven segment dan keypad . Hasil akhir
yang akan diketahui setelah praktikum ini bisa
menampilkan angka pada display seven segment. Pada
praktikum kali ini berbeda dengan praktikum hari
sebelumnya. Karena pada praktikum ini dalam pembuatan
projek harus membuat source juga setelah kita membuat
projek.
Gambar B.1
Pilih Project > OK, lalu muncul gambar dibawah ini.
Gambar B.2.
Ketika muncul jendela di atas pilih “No”, maka setelah
itu akan muncul gambar seperti ini,
Gambar B.3.
Ketik nama file yang akan dibuat, lalu klik “Save”.
Lalu akan muncul jendela seperti ini
Gambar B.4.
Pilih menu pada taskbar “C Compiler” maka isi Chip
dengan ATmega 324A,dan Clock sebesar 11.0592 > OK.
Setalah itu pilih file > New maka akan tampil gambar
berikiut
Gambar B.5.
Pada jendela ini pilih source lalu OK, setelah itu pilih
menu setting > Programmer pastikan bahwa USB Downloader
sudah terdeteksi maka pilih OK. Seperti gambar pada
berikut.
Gambar B.6.
Setelah itu ketikkan list coding yang telah tertulis dalam
modul. Setelah coding dimasukan kemudian langkah
selanjutnya yaitu configure project dengan cara memilih
menu Project kezmudian pilih Configure kemudian pilih After
Build kemudian centang Program the Chip klik OK.
Gambar B.7. – B.9.
Gambar B.10.
Setelah itu klik menu Add dan pilih nama project yang
telah kita simpan tadi lalu klik OK.
Setelah itu tekan F9 untuk melihat apakah masih ada
coding yang salah atau sudah benar. Jika coding sudah
benar semua maka pilih menu Project kemudian Build All atau
langsung menekan ctrl+F9 setelah itu pilih Program the
Chip untuk melihat hasil dari program yang dibuat.
Gambar B.11.
Berikut hasil yang di dapat ketika melakukan praktik
scanning seven segment and keypad.
Gambar B.12. Hasil dari
Projek 2
Gambar B.13. Hasil dari Projek 2
Gambar B.14. Hasil dari projek 3
Gambar B.15. Hasil dari projek 3 Gambar B.16. Hasil dari
projek 4
III. Analisa Pembahasan
Praktikum modul 2 scanning display seven segment and
keypad untuk mem-buat projrect berbeda dengan
modul sebelumnya, jika pada modul 1 membuat
CodeVision Autowizard, pada modul 2 tidak
membuatnya. Jadi, dalam pembuatannya membuat
source setelah kita membuat projek.
Pada projek pertama praktikum membuat untuk
menampilkan angka 1 dan berikut coding dan
flowchartnya.
#include <mega324a.h>
void main (void)
Start
Port A sebagaioutput
{
DDRA=0xff;
DDRD=0x00;
while(1)
{
PORTA=0b11111001;
PORTD.1=1;
}
Pada list coding pada baris pertama yang tertulis
di atas mempunyai maksud bahwa compiler diminta untuk
menyertakan file ATmega 324a karena
pada praktikum juga menggunakan mikro tersebut. Dan
untuk baris selanjutnya, tertulis perintah DDRA=0xff;
merupakan baris register DDRx untuk mengatur orientasi
port. DDRD=0x00; berarti kita mengatur Port D sebagai
tempat keluaran DDRA. Dan baris selanjutnya perintah
while(1) untuk mengulang setiap perintah yang ditulis.
Untuk baris list koding selanjurnya PORTA=0b11111001; //
Cetak Numerik 1 | PORTD.1=1;, perintah koding ini adalah
Port A menampilkan angka biner kedalam bentuk hexa
dengan Port D sebagai keluarannya dan angka tersebut
berbentuk angka 1. Dan perintah ini akan berulang
karena terdapat perintah while (1), untuk mengakhiri
projek tidak lupa tanda kurung kurawal dikasih.
PORTA=0b11111001
Output =
End
No
yes
Untuk projek praktikum yang kedua adalah
menampilakan angka 1 dan C. berikut list koding yang
ditulis dan Flowchart dari projek kedua..
#include <mega324a.h>
#include <delay.h>
void main (void)
{
DDRA=0xff;
DDRD=0x00;
while(1)
{
PORTA=0b11111001;
PORTD.0=0;
PORTD.1=1;
delay_ms(50);
PORTA=0b11000110;
PORTD.0=1;
PORTD.1=0;
Delay_ms(50);
}
}
Pada projek kedua, hampir sama dengan projek pertama
hanya menambah satu karakter saja, pada awal list
koding hampir sama dan tetap mengulangi perintah itu
selamanya karena terdapat perintah while(1). PORTA =
0b11111001; //Cetak Numerik “1” | PORTD.0=0; | PORTD.1=1; |
delay_ms(50);. Untuk list koding berikut berfungsi untuk
Start
Port Asebagai
PORTA=0b11111001
Output=1
Delay = 50detik
PORTA=0b11000110
Output = C
Delay = 50detk
End
no
No
mengubah angka biner tersebut menjadi bilangan
hexadecimal dengan Port A menampilkan angka dan Port
D.0 sebagai inputannya dan bernilai 1 sedangkan Port
D.1 sebagai outputnya dan bernilai 0 atau lebih
jelasnya menampilkan dan mematikan. Untuk delay angka
pertama ini sebesar 50 milisecond karena terdapat
perintah delay_ms(50);. Dan dibawahnya terdapat koding
berikut PORTA=0b11000110; //Cetak Karakter “C” | PORTD.0=1; |
PORTD.1=0; | Delay_ms(50);, fungsi koding tersebut, Port A
untuk menampilkan karakter “C”. karena angka biner
tersebut menunjukkan huruf C, yang sebelumnya angka
biner tersebut diubah menjadi bilangan hexadecimal.
Untuk Port D.0 sebagai outputnya yang bernilai 1
sedangkan port D.1 sebagai inputnya dan bernilai 0.
Serta delaynya selama 50 milisecond. Untuk hasil dari
projek dua ini akan tampil angka 1 dan C pada seven
segment secara bersamaan dan hidup selama 50 milisecond
dan mati 50 milisecond sesuai dengan perintah.
Untuk projek ketiga dari praktikum kali ini, kami
membuat seven segment untuk menampilkan angka urut dua
digit dari 00 hingga 29. Untuk perintah pertama dari
coding ini adalah #include <mega324a.h> | include <delay.h> |#define DS1 PORTD.0 | #define DS2 PORTD.1 | #define data_segmen
PORTA, perintah dari coding ini adlah bahwa kita
menggunakan ATmega 324a sebagai microprossesor dan Port
D.0 dan Port D.1 digunakan sebagia input dari mikro ke
display seven segmentnya. Dan Port A sebagai tempat untuk
mengatur dimana tempat hasil compiler yang akan
ditampilkan. Koding selanjutnya adalah unsigned charbil[10] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};|
int kiri, kanan, i;, untuk coding tersebut menandakan
bahwa perintah untuk menampilkan karakter – karakter
tulisan hasil dari peralihan angka hexa ke angka
decimal, yang akan ditampilkan pada display seven segment.
Dan untuk coding selanjuntnya PORTA=0x00; | DDRA=0xFF; |
PORTD=0x00; | DDRD=0xFF;seperti projek sebelumnya koding
ini berfungsi sama halnya dengan praktikum sebelumnya.
while(1) fungsi koding ini untuk mengulang hasil projek
selamanya tanpa harus berhenti. Dan perintah koding
selanjutnya kiri=0; | kanan=0; | for (kiri=0; kiri<2;kiri++) |
{ | for (kanan=0; kanan<10; kanan++) { | for (i=0; i<50; i++) {,
fungsi dari perintah ini adalah perintah kiri yang
bernilai 0 dan kanan yang bernilai 0. Serta untuk kiri
sama dengan 0 maka kiri lebih besar 2 atau bernilai
satuan, dan kanan yang bernilai sama dengan 0 makan
kanan lebih besar 10 atau bernilai puluhan. Untuk
perintah koding selanjutnya adalah data_segmen =
bil[kanan]; | DS2=0;DS1=1; : delay_ms(5); | data_segmen =
bil[kiri]; | DS2=1;DS1=0; | delay_ms(5);, maksud perintah ini
adalah bilangan bagian kanan yang merupakan data segmen
akan tampil jika DS2=0 dan DS1=1 dengan delay tampil 5
detik, selanjutnya data segmen bilangan kiri akan
tampil jika DS2 = 1 dan DS1=0 serta delaynya selama 5
detik.
Untuk projek keempat ini kita melakukan scanning
menggunakan keypad. Pada projek ini terlebih dahulu
kita mengcopy dulu script yang ada dalam modul lalu
dipindahkan ke dalam CodeVisionAVR. Setelah itu kita
mengkompile script dan mendownload kedalam micro. Untuk
coding baris pertama #include <mega324a.h> | #include
<delay.h> berfungsi sebagai Lib ATmega 324a serta Lib
delay atau waktu tunda. Untuk script koding selanjutnya#define DS1 PORTD.0 | #define DS2 PORTD.1 | #define DS3 PORTD.2 |
#define DS4 PORTD.3 berfungsi untuk mendeklarasikan
masukan common anoda DS1 – DS4 ke Port D.0 – Port D.3.
Dan baris selanjutnya #define data_segmen PORTA | #define K1PINB.0 | #define K2 PINB.1 | #define K3 PINB.2 | #define K4 PINB.3
pada script selanjutnya berfungsi sebagai mendeklarasikan
data seven segment (active low) serta untuk
mendeklarasikan kolom keypad K1 – K4 di Pin B.0 – Pin
B.3. Untuk script selanjutnya adalah #define B1 PORTC.4 |#define B2 PORTC.5 | #define B3 PORTC.6 | #define B4 PORTC.7
untuk koding ini kita mendeklarasikan baris keypad B1 –
B4 ke Port C.4 – Port C.7. Baris script selanjutnya
adalah unsigned char segmen[]=
{0b11000000,0b11111001,0b10100100,0b10110000, //0-1-2-3 |
0b10011001,0b10010010,0b10000010,0b11111000, //4-5-6-7 |
0b10000000,0b10010000,0b10001000,0b10000011, //8-9-A-B |
0b11000110,0b10100001,0b10000110,0b10001110}; //C-D-E-F | unsigned
char d1=0,d2=0,d3=0,d4=0,d=0; | unsigned char a,tombol;
mempunyai fungsi sebagi table tengok untuk data seven
segment, serta berfungsi mengaktifasi variable common
anoda display, serta variabel a dan data tombol, dan
subrutin menampilkan ke scanning display. Setelah itu
koding berikut d1=d+1; | d2=d+2; | d3=d+3; | d4=d+4; |
for(a=0;a<10;a++, untuk koding ini berfungsi untuk display
akan menampilkan angka yang berada dalam D menambah
angka 1, 2,3, dan 4. Untuk script data_segmen = segmen[d1]; |DS1=1;DS2=0;DS3=0;DS4=0;|delay_ms(5); | data_segmen = segmen[d2];|
DS1=0;DS2=1;DS3=0;DS4=0;|delay_ms(5);|data_segmen=segmen[d3];|
DS1=0;DS2=0;DS3=0;DS4=0; | delay_ms(5);| data_segmen = segmen[d4];
| DS1=0;DS2=0;DS3=0;DS4=0; | delay_ms(5);, untuk script ini
berfungsi untuk menampilkan angka dibagian D mana yang
akan nampak serta yang tidak nampak hal ini bisa diatur
dengan mengganti angka 1 yang di DS1 atau yang lain
dengan angka 0. void detek(){ | B1=1;B2=0;B3=0;B4=0; |
delay_us(100); | if(K1==1) tombol=0; | if(K2==1) tombol=1; |
if(K3==1) tombol=2; | if(K4==1) tombol=3; | B1=0;B2=1;B3=0;B4=0;
| delay_us(100);,dst berfungsi sebagai subrutin
pendeteksian tombol. Dan untuk ini void main(void) { |#pragma optsize- | CLKPR=0x80; | CLKPR=0x00; | #ifdef
_OPTIMIZE_SIZE_ | #pragma optsize+ | #endif, berfungsi sebagai
program utama crystal ocsilator divisi factor 1. Untuk
koding terakhir detek(); | tampil(); }}, koding terakhir
ini berfungsi sebagai panggilan subrutin deteksi tombol
dan panggilan subrutin untuk tampil pada scanning display.
V. Kesimpulan dan Saran
Kesimpulan yang bisa diambil dari praktikum kali
ini adalah :
1. Seven Segment merupakan komponen elektronika yang
dapat menampilkan angka desimal melalui
kombinasi-kombinasi segmennya.
2. Untuk Scanning seven segment kita bisa menggunakan
common kathoda serta bisa common anoda.
3. Scanning seven segment merupakan teknik untuk
menampilkan perintah yang sudah didownload dari
mikro akan ditransfer kedalam display seven segment.
4. Scanning Keypad merupakan teknik scanning yang
akan menampilan elemen elemen angka yang yang
sudah didownload kedalam seven segment dan bisa
diubah lewat tombol keypad yang tersedia.
5. Scanning seven segment dan scanning keypad saling
berhubungan dan berkaitan.
Saran yang bisa diberikan pada praktikum kali ini
adalah :
1. Dalam praktikum disarankan menggunakan windows 7
2. Software yang digunakan untuk praktikum adalah
CodeVision AVR dan Proteus 8, tapi untuk Proteus
disarankan menggunakan Proteus 7.x.
3. Untuk penulisan coding harus teliti serta di
awali dan di akhiri dengan tanda kurung kurawal
setiap perintah ({}).
4. Peralatan praktikum sebaiknya di cek
kelayakannya sebelum praktikum berlangsung.
VI. Daftar Pustaka
1. Pramono, S. (2015). Modul Praktikum Microprossesor Scanning Display Seven Segment dan Keypad. Purwokerto.
2. Anynomous. (n.d.). http://www.electronics-tutorials.ws/blog/7-segment-display-tutorial.html. Retrieved May 05, 2015, from electronics-tutorial.ws: http://www.electronics-tutorials.ws/blog/7-segment-display-tutorial.html
3. Anonymous. (n.d.). https://www.academia.edu/9071984/Seven_Segment_Keypad_dan_LCD.Retrieved May 05, 2015, from Academia.edu: https://www.academia.edu/9071984/Seven_Segment_Keypad_dan_LCD
VII. Lampiran A. Pertanyaan
1. Apa fungsi dari “PORTD.1=1”?
Jawab : Perintah PORTD.1=1 yaitu mengaktifkan
Pin 1 pada Port D.
2. Apa fungsi dari delay_ms (50)?
Jawab : Fungsi dari delay ms (50) adalah untuk
mengatur delay atau waktu lamanya jeda selama 50
mili second atau 0.05 detik.
3. Apa fungsi dari unsigned char bil [10]?
Jawab : Char berarti variabelnya akan ditampung
dalam tipe data char (karakter). Sedangkan [10]
berarti array yang akan ditampilkan mempunyai 10
kolom, yaitu dari index 0 sampai dengan 9.
4. Apa maksud dari for (kiri=0; kiri<2; kiri++)?
Jawab : berarti akan terjadi pengulangan dimana
variable dengan nama kiri mula-mula bernilai
nol, kemudian jika variable kiri lebih kecil
dari 2 maka variable kiri akan ditambah 1.
5. Pada saat kanan bernilai 5, berapani lai dari
Port A dalam hexa dan binernya ?
Jawab : Untuk nilai Port A adalah LED 6 yang
menyala, sedangkan dalam hexa adalah 6 dan
binernya adalah 0110.
6. Apa keunggulan menggunakan Subrutin ?
Jawab : Dapat membagi program kedalam sub-sub
program yang lebih kecil sehingga memudahkan
dalam penulisan code listing.
7. Apa fungsi daridelay_us (100) ?
Jawab : Fungsidari delay us (100) adalah untuk
mengatur delay atau waktu lamanya jeda selama
100 mikro second atau 0.1 milli second atau
0.0001 detik.
8. Apa perbedaan scanning seven segment pada
point 5 & 7?
Jawab: Pada Scanning Seven Segment point 5
menggunakan listing code perulagan while
sedangkan pada Scanning Seven Segment Point
menggunakan perulangan For.
B. Tugas 1. Simulasi dan program Up counter yang
menghitung dari 0 hingga 100+XYZ. 2.Simulasi dan Program Up down counter dengan
ketentuana. Bila Push buttom 1 ditekan counter
bertambah 1 b. Bila Push buttom 2 ditekan counter
berkurang 1c. Bila Push buttom 3 ditekan counter akan
reset ke “000”
Top Related