Anda di halaman 1dari 3

JOB 2

PENGAKTIFAN SEVEN SEGMENT


Tujuan pratikum:
Setelah melakukan pratikum pengaktifan seven segment ini, mahasiswa dapat :
1. Mampu memahami teknik scanning untuk menghemat penggunaan pin I/O AVR
Atmega 8535
2. Mampu membuat program untuk menyalakan 7 segment dan dapat menampilkan
suatu angka pada 7 segment menggunakan pin I/O AVR Atmega 8535
3. menampilkan output program pada seven segment dengan menggunakan system
mikrokontroler AVR Atmega 8535

Teori

Gambar 1 Display 7 segmen

Gambar 4.1 Rangkaian Atmega8535 dengan Output Seven Segment

Dari gambar diatas terlihat bahwa untuk menghidupkan sebuah 7 segment dibutuhkan 8
pin I/O mikrokontroler untuk membentuk suatu angka atau huruf, masing-masing untuk
segment a, segment b, segment c,..., segment f, segment g, dan segment dot. Kalau sebuah
7 segment dihubungkan ke mikrokontroler maka dibutuhkan 8 pin I/O (satu port
mikrokontroler) untuk menyalakan/memadamkan segment. Seandainya dibutuhkan
penampil 7 segment sebanyak 8 buah, maka port mikrokontroler tidak akan mencukupi untuk
8 buah 7 segment. Untuk bisa menggunakan 8 buah 7 segment (atau lebih dari 8 buah)
digunakan cara scanning. Teknik scanning digunakan apabila terdapat minimal 2 buah 7
segment (kalau 7 segment hanya ada satu port maka semua pin a,b,c,d,e,f,g dan dot langsung
dihubungkan ke port mikrokontroler melalui resistor pembatas arus, dengan common anode
dihubungkan ke VCC).
Untuk latihan teknik scanning digunakan 2 buah 7 segment commom anode, dimana
segment a,b,c,...,f,g dan dot dihubungkan ke PB0, PB1, PB2,..,PB5, PB6, PB7. Driver 7
segment pertama dihubungkan ke pin PC0 dan driver 7 segment kedua dihubungkan ke pin
PC1. Driver yang digunakan adalah sebuah transistor yang difungsikan sebagai saklar.
Dari gambar diatas terlihat jelas bahwa pin I/O mikrokontroler yang dibutuhkan sebanyak
8 pin (untuk memudahkan pengiriman data, sebaiknya menggunakan satu port) ditambah 2
pin untuk driver 7 segment (jumlah 7 segment yang digunakan).
Berikut tabel data 7 segment untuk menampilkan angka 0 sampai 9 (dot pada 7 segment
tidak menyala ) :
Tabel 4.1 Data Tampilan Seven Segment
PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0
Angka Hex
dot (g) (f) (e) (d) (c) (b) (a)
1 1 0 0 0 0 0 0 “0” 0xC0
1 1 1 1 1 0 0 1 “1” 0xF9
1 0 1 0 0 0 1 0 “2” 0xA4
1 0 1 1 0 0 0 0 “3” 0xB0
1 0 0 1 1 0 0 1 “4” 0x99
1 0 0 1 0 0 1 0 “5” 0x92
1 0 0 0 0 0 1 0 “6” 0x82
1 1 1 1 1 0 0 0 “7” 0xF8
1 0 0 0 0 0 0 0 “8” 0x80
1 0 0 1 0 0 0 0 “9” 0x90

Jika ingin ditampilkan secara bersamaan, maka harus diatur hidup matinya display secara
bergantian. Walaupun sebenarnya display tersebut mati secara bergantian tapi mata
manusia akan melihat kedua display tersebut hidup secara bersamaan karena delay antara
hidup dan mati sangat singkat.

Langkah Kerja
1. Buatlah program pada CodeVision AVR
2. Ketiklah program pada Editor.c, kemudian simpan.
3. Compile program dengan menekan tombol F9 (Compile) atau melalui menu
Project kemudian pilih Compile.
4. Buatlah rangkaian pada papan proyek modul system mikrokontroler seperti
gambar berikut ini :

Gambar 4.2 Rangkaian Seven Segment Pada ProtoBoard

5. Selanjutnya buatlah file hex dari proyek yang dibuat yaitu melalui menu Project
kemudian pilih Make atau dengan tombol Shift + F9. Kemudian isikan file hex
tersebut ke modul system mikrokontroler
Tampilan Seven Segment
Untuk tampilan pada seven segment, program dapat dibuat dengan menampilkan data
seven segment.
1. Buatlah program untuk menampilkan angka “53” pada 7 segment
2. Buatlah sebuah program penghitung naik (Down counter) dengan delay satu
detik menggunakan dua buah 7 segment dari “09” s/d “00”
3. Buatlah program dengan menampilkan angka 90 sampai 00 setelah itu kembali dari
00 sampai 90

Contoh program

#include <mega8535.h>
#include <delay.h>

void main (void)


{
PORTB=0xFF; //PortB sebagai output
DDRB=0xFF;
PORTC=0xFF; //PortC sebagai output
DDRC=0xFF;

while (1)
{
PORTC=0xFF; //Matikan semua 7 segment
PORTB=0xF9; //Untuk menampilkan angka "1"
PORTC=0xFE; //7 segment pertama nyala
//dan 7 segment kedua mati
delay_ms(15);

PORTC=0xFF; //Matikan semua 7 segment


PORTB=0xC0; //Untuk menampilkan angka "0"
PORTC=0xFD; //7 segment kedua nyala
//dan 7 segment pertama mati
delay_ms(15);
};
}

Anda mungkin juga menyukai