Anda di halaman 1dari 9

PRAKTIKUM ANTAR MUKA MIKROKONTROLER ATMEGA 8535

DENGAN SEVEN SEGMENT

Laporan ini disusun untuk memenuhi tugas Mata Kuliah Mikroprosesor


Yang dibimbing oleh Bapak Arya Kusuma Wardhani, S. Pd., M. T.,

Disusun Oleh :
1. Muhammad Robihul Husni (170534629102)
2. Shakila Ocvabiola Nindia Maldini (170534629081)
3. Syaiqun Nizar Trisna Saputra (170534629073)
4. Tubagus Ferdy Putra Ermanda (170534629006)

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
S1 PENDIDIKAN TEKNIK ELEKTRO

FEBRUARI
LAPORAN PRAKTIKUM 3
A. TUJUAN
 Dapat memahami dan menjelaskan rangkaian antarmuka Mikrokontroler dengan
rangkaian seven segment
 Mempraktekkan Pemrograman Mikrokontroller untuk Menampilkan karakter ke
seven segment

B. DASAR TEORI
 Seven Segment
Adalah salah satu perangkat layar untuk menampilkan sistem angka desimal yang
merupakan alternatif dari layar dot-matrix

 Mikrokontroller ATMega 8535


IC Mikrokontroller merupakan sebuah IC Pemrogaman yang dapat di isi sesuai
perintah melalui Bahasa mesin, tentunya yang telah tercompile agar dapat di eksekusi
oleh Prosesor pada Mikrokontroller.

 Rangkaian Seven Segment


 Perintah Dasar Untuk Menampilkan Seven Segment
Dalam penggunaan IC Mikrokontroler untuk menampilkan sebuah angka pada
seven segment ini perlu untuk menyetting atau membuat ray dan PORT.6 dan PORT.7
terlebih dahulu sebagai perintah dasar dan sistem kendali
 Konversi Bilangan Digital
Terdapat 4 Jenis Bilangan Digital yang dapat digunakan untuk memberi perintah
kepada Mikrokoktroller yakni menggunakan Bilangan Binner, Oktal, Desimal, dan Hexa,
tetapi dalam penerapannya lebih sering menggunakan bilangan Hexa agar Listing
Program tidak terlalu Panjang dan lebih singkat. Bilangan tersebut memiliki Basis
bilangan yang berbeda dengan Binner yakni berbasis 2, Oktal berbasis 8, Desimal
berbasis 10 dan Hexa berbasis 16. Contoh dapat dilihat seperti Dibawah :
Binner = 010101012 Desimal = 8510
Oktal = 1258 Hexa = 5516

C. ALAT DAN BAHAN YANG DIGUNAKAN


 1 Set PC/Laptop yang sudah berisi Program Code Vision dan Khazama
Programmer
 1 Set Trainer Mikrokontroller
 1 Buah Kanel USB
 1 Buah Kabel Pita 10 Pin untuk Data
D. DATA HASIL PERCOBAAN
1. Program Seven Segmen 1
#include <mega8535.h>
#include <delay.h>

unsigned char angka [10] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};

void main () {
DDRB = 0xFF; PORTB = 0x00;
DDRC = 0xF0; PORTC = 0xF0;

while (1) {
PORTC.7 = 1;
PORTC.6 = 0;
PORTB = angka[9];
delay_ms(10);
}
}

2. Program Seven Segment 2


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

unsigned char angka [10] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};

void main () {
DDRB = 0xFF; PORTB = 0x00;
DDRC = 0xF0; PORTC = 0xF0;

while (1) {
PORTC.7 = 0;
PORTC.6 = 1;
PORTB = angka[4];
delay_ms(10);
}
}

3. Gabungan SEGMENT 1 DAN SEGMENT 2 delay 100ms


4. Program Seven Segment 3
#include <mega8535.h>
#include <delay.h>

unsigned char angka [10] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};
int kanan;

void main () {
DDRB = 0xFF; PORTB = 0x00;
DDRC = 0xF0; PORTC = 0xF0;

while (1) {
kanan=0;
for(kanan=0;kanan<10;kanan++)
{
PORTC.7 = 1;
PORTC.6 = 0;
PORTB = angka[kanan];
delay_ms(1000);
}
}
}

5. Program Seven Segment 3 delay 100ms


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

unsigned char angka [10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};


void main (void) {
int kanan;
PORTB=0x00;
DDRB=0xFF;
PORTC=0xF0;
DDRC=0xF0;

while (1) {
kanan=0;
for(kanan=0;kanan<10;kanan++)
{
PORTC.7=1;
PORTC.6=0;
PORTB = angka[kanan];
delay_ms(100);
}
}
}

6. Program Seven Segment 4


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

unsigned char angka [10] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};

int index;
void main () {
DDRB = 0xFF; PORTB = 0x00;
DDRC = 0xF0; PORTC = 0xF0;

while (1) {
for (index=0;index<10;index++){
PORTC = 0x03;
PORTB = angka[index];
delay_ms(500);
}
}
}

7. Program Seven Segmen 5


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

#define delay 2
unsigned char angka [10] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};

int index, index2, time;

void main () {
DDRB = 0xFF; PORTB = 0x00;
DDRC = 0xF0; PORTC = 0xF0;

while (1) {
for (index=0;index<10;index++) {
for (index2=0;index2<10;index2++) {
for (time=0; time < 30; time++) {
PORTC.6 = 1; PORTC.7 = 0;
PORTB = angka[index];
delay_ms(delay);

PORTC.6 = 0; PORTC.7 = 1;
PORTB = angka[index2];
delay_ms(delay);
if (index == 7 && index2 == 3) {
goto down;
}
}
}
}

down :

for (index2=3;index2>=0;index2--) {
for (time=0; time < 30; time++) {
PORTC.6 = 1; PORTC.7 = 0;
PORTB = angka[7];
delay_ms(delay);

PORTC.6 = 0; PORTC.7 = 1;
PORTB = angka[index2];
delay_ms(delay);

if (index2 == 0) {
goto next;
}
}
}

next :

for (index=6;index>=0;index--) {
for (index2=10;index2>=0;index2--) {
for (time=0; time < 30; time++) {
PORTC.6 = 0; PORTC.7 = 1;
PORTB = angka[index2];
delay_ms(delay);
PORTC.6 = 1; PORTC.7 = 0;
PORTB = angka[index];
delay_ms(delay);
}
}
}
}
}

8.
E. ANALISIS DATA
1. Analisis Program Segment 1 sampai Segment 5
A. Analisis Program Segment 1
Pada program seven segment 1 PORTB = 0x7F , PORTC.6 = 0 dan PORTC = 1
yang berarti perintah untuk menampilkan angka 8 pada segment sebelah kanan
B. Analisis Program Segment 2
Pada program seven segment 2 PORTB = 0x66 , PORTC.6 =1 dan PORTC = 0
yang berarti perintah untuk menampilkan angka 4 pada segment sebelah kiri
C. Analisis Program Segment 3
Pada program seven segment 3 PORTB = angka[kanan] , PORTC.6 = 0 dan
PORTC = 1 dengan delay 1000 ms yang berarti perintah untuk menampilkan
angka 0 sampai 9 dengan delay 1000 ms pada segment sebelah kanan

D. Analisis Program Segment 4


Pada program seven segment 4 PORTC.6 = 0x03 dan PORTB = angka[index]
dengan delay 500 ms yang berarti perintah untuk menampilkan angka 0 sampai
9 secara bersamaan dengan waktu delay 500 ms pada kedua segment
E. Analisis Program Segment 5
Pada program seven segment 5

2. Instruksi apa yang digunakan untuk mengeluarkan data ke seven segment?


Menggunakan perintah unsigned char angka [10] = {0x3F, 0x06, 0x5B, 0x4F, 0x66,
0x6D, 0x7D, 0x07, 0x7F, 0x6F};
0x3F = menampilkan angka 0
0x06 = menampilkan angka 1
0x5B = menampilkan angka 2
0x4F = menampilkan angka 3
0x66 = menampilkan angka 4
0x6D = menampilkan angka 5
0x7D = menampilkan angka 6
0x07 = menampilkan angka 7
0x7F = menampilkan angka 8
0x6F = menampilkan angka 9

3. Instruksi apa yang digunakan untuk mengontrol nyala seven segment ?


Menggunakan perintah PORTC.6 dan PORTC.7 sebagai pengontrol kedua segment
yang akan di beri logika 1 atau 0 dimana apabila berlogika 1 segment akan
menampilkan sebuah angka sedangkan apabila berlogika 0 maka segment akan
tidak menampilkan apa-apa

4.

5. Jika nilai delay pada program SEGMEN 3 diperkecil, apa yang terjadi pada tampilan
seven segment ?
Jika nilai delay pada program segmen 3 diperkecil maka pergantian angka pada
segmen akan bertambah cepat

Anda mungkin juga menyukai