"Orang berilmu binasa kecuali orang yang mengamalkan ilmunya. Orang yang mengamalkan ilmunya binasa kecuali orang yang ikhlas". (Ibnu Qudamah)

Minggu, 12 Oktober 2014

Menampilkan Data pada Seven Segment dengan 74LS47 part 2

Membuat Counter menggunakan ATmega8, 74LS47 dan 7 Segment

Pada bagian dua ini akan dibahas bagaimana cara membuat counter mulai dari 0 sampai yang diinginkan dan maksimal hingga 9999.
Sebelumnya telah dijelaskan bagaimana cara menampilkan data pada 7 segment dengan bantuan 74LS47.
Jika anda belum tahu, silakan kunjungi alamat http://share-ilmu-ilmu.blogspot.com/2014/10/Sevensegmen0123.html

Rangkaian simulasinya sama dengan rangkaian simulasi pada part 1. Yang berbeda adalah prinsip kerja dan programnya.
Prinsip kerjanya sebagai berikut:

 Berikut ini adalah programnya:



#include <avr/io.h>
#include <util/delay.h>

uint8_t sel=0xf7;

uint8_t satuan=0;
uint8_t puluhan=0;
uint8_t ratusan=0;
uint8_t ribuan=0;

int counter=0;

int main(void){
   
    DDRC = 0x0f;        //Atur PORTC3-0 sbg output       
    PORTC = 0x0f;        //Aktifkan Pullup internal
    DDRD = 0x0f;        //Atur PORTD3-0 sbg output
    PORTD = 0x0f;        //Aktifkan Pullup internal
   
    while(1){
        PORTC = satuan;            //kirim data satuan
        PORTD = sel;            //aktifkan selector1
        _delay_ms(100);            //Tahan dan tampilkan data satuan
        PORTD = sel>>1;            //matikan selector1, aktifkan selector 2
        PORTC = puluhan;        //kirim data puluhan
        _delay_ms(100);            //Tahan dan tampilkan data puluhan
        PORTD = sel>>2;            //matikan selector2, aktifkan selector 3
        PORTC = ratusan;        //kirim data ratusan
        _delay_ms(100);            //Tahan dan tampilkan data ratusan
        PORTD = sel>>3;            //matikan selector3, aktifkan selector 0
        PORTC = ribuan;            //kirim data ribuan
        _delay_ms(100);            //Tahan dan tampilkan data ribuan

        satuan=satuan+1;

        if (satuan==10){
            satuan=0;
            puluhan++;
        }
        if (puluhan==10){
            puluhan=0;
            ratusan++;
        }
        if (ratusan==10){
            ratusan=0;
            ribuan++;
        }
        if (ribuan==10){
            ribuan=0;
            satuan=0;
        }

        counter=counter+1;

        if(counter==50){        //menentukan batas counter
            break;
        }
    }
    return 0;
}



Untuk menanam program ini pada ATmega 8, anda klik 2 kali gambar IC ATmega 8 pada proteus. Setelah itu,


Pada program File, anda arahkan ke folder penyimpanan program anda, pilih file ".hex"-nya. Sesuaikan CKSEL Fuses dengan frequency cpu program anda di AVR Studio.

Anda bisa download program AVR Studio untuk membuat counter pada alamat di bawah ini:
http://www.4shared.com/rar/OvV2_gMJba/7segmen_Counter.html


Sekian pembahasan ini. Terima Kasih.
 

Tidak ada komentar: