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)
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
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);
}
}
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);
}
}
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);
}
}
}
while (1) {
kanan=0;
for(kanan=0;kanan<10;kanan++)
{
PORTC.7=1;
PORTC.6=0;
PORTB = angka[kanan];
delay_ms(100);
}
}
}
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);
}
}
}
#define delay 2
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) {
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
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