Baiklah pada
kesempatan kali ini kita akan mempelajari bagaimana caranya membuat counter up
and down pada seven segment. Bisa kita aplikasikan sebagai contoh pergantian dalam
pertandingan sepak bola, untuk mesin penghitung dan lain lain. Kita akan memakai mikrokontroller ATMega16, 7 segment, dan
push button. Untuk rangkaiannya dapat kita lihat berikut:
Pada kali ini saya mengunakan software simulasi Proteus 7
profesional. Pada gambar tersebut kita susun 7 segment pada PORTC secara
parelel dan push button pada PORTB. Untuk bagian katoda 7 segment kita pasang
pada PORTD.
Untuk listing
progamnya kita mengunakan software CV AVR:
/*****************************************************
Chip
type : ATmega16
Program
type : Application
AVR Core
Clock frequency: 11,059200 MHz
Memory
model : Small
External RAM
size : 0
Data Stack
size : 256
*****************************************************/
#include
<mega16.h>
#include
<delay.h>
unsigned
char angka[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
int
satuan,puluhan,ratusan,data,data_temp,x;
// Declare
your global variables here
void
ambil_data()
{
data_temp =
data ;
satuan =
data_temp%10;//rumus untuk satuan
puluhan =
(data_temp/10)%10;//rumus untuk puluhan
ratusan =
(data_temp/100)%10;//rumus untuk ratusan
}
void tampil
()
{
//mengatur nilai satuan
PORTD.0 = 1;
PORTD.1 = 1
;
PORTD.2 = 0
;
PORTC =
angka[satuan];
delay_ms(1);
//mengatur nilai puluhan
PORTD.0 = 1;
PORTD.1 = 0
;
PORTD.2 = 1
;
PORTC =
angka[puluhan];
delay_ms(1);
//mengatur nilai ratusan
PORTD.0 = 0;
PORTD.1 = 1
;
PORTD.2 = 1
;
PORTC =
angka[ratusan];
delay_ms(1);
}
while (1)
{
// Place your code here
for(x=0;x<50;x++)
{
ambil_data();
tampil();
}
//membatasi nilai maximum
if (PINB.0==0)
{
data++;
if (data>9999)
{
data=0;
}
}
//membatasi nilai minimum
if (PINB.1==0)
{
data--;
if (data<=0)
{
data=0;
}
}
}
dapat kita lihat bahwa untuk mengatur tampilan puluhan, satuan dan ratusan kita memainkan nilai logika pada kaki katoda.
while (1) eror
BalasHapusAssalamualaikum kak, salam kenal dari Tg. Balai Karimun.
BalasHapusBoleh sy mintak nomer hp nya atau nama FB nya? Mau tanya langsung tentang counter up satu digit 7 segment annode mnggunakan atmega 16. Sy ada lomba LKS Kamis ini jadi mohon bantuan nya.
Trimakasih
gan nama komponennya apa aja ?
BalasHapusNice
BalasHapus