Laporan praktikum mikroprossesor

26
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

Transcript of Laporan praktikum mikroprossesor

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”

Berikut script list codingnya

Berikut gambar simulasinya.