PENGGUNAAN ATMEGA 8535 SEBAGAI MIKROKONTROLER STOPWATCH

| Minggu, 13 Desember 2015
Pendahuluan
1. Latar Belakang
      Bicara tentang stopwatch, benda ini adalah benda yang lumayan terkenal dibidang olahraga pada umumnya. Kali ini saya ingin berbagi bagaimana membuat stopwatch sederhana. Lebih tepatnya bisa di jadikan widget buatan kita sendiri atau bisa Anda jadikan sebagai bahan untuk belajar serta refrensi. Saya akan menggunakan LCD 16x2 dengan 3 switch button (Start, Stop, Reset) dengan mikrokontroller Atmega16. Compiler yang digunakan yakni Codevision AVR.

       Aplikasi ini merupakan sebuah stopwatch sederhana yang dapat menghitung sampai satuan waktu terkecil yaitu 1/100 detik atau 10 ms. Untuk membangkitkan timer 10 ms saya menggunakan fitur timer0 mikrokontroller.

2. Tujuan Pembuatan
    Tujuan pembuatan stopwatch ini adalah sebagai mengukur lamanya waktu yang diperlukan dalam suatu kegiatan. Selain itu pembuatan stopwatch ini adalah sebagai praktikum Tugas Akhir  Lab 3 yang berbasis mikro kontroler.


Analisa dan Perancangan Alat

1.  Langkah kerja
1.       Buat skrip program pada aplikasi Code Vision
2.       Donwload program yang telah dibuat ke Atmega8535
3.       Sambungkan rangkaian yang telah dibuat ke sumber VCC
4.       Kemudian tinggal mengklik tombol (Star,Stop,Reset) sesuai yang diinginkan
2Analisa Alat
   Pengunci pintu berkode merupakan suatu alat berbasis Atmega8535 yang menggunakan 8-bit prosesing sistem. Rangkaina alat menggunakan logika 1 saat start dan logika 0 saat stop.

GAMBAR 1.1 RANGKAIAN DENGAN PROTEUS

Dengan menggunakan input push button sebagai tombol start, stop, reset dan Atmega8535 sebagai prosesor dapat membuat angka pada LCD. Dengan LCD sebagai indikator bahwa waktu telah berjalan.Dengan menggunakan input push button sebagai tombol start, stop, reset dan Atmega8535 sebagai prosesor dapat membuat angka pada LCD. Dengan LCD sebagai indikator bahwa waktu telah berjalan.

3. Diagram Blog
GAMBAR 2.2 DIAGRAM BLOK
Input masukan dari push button yang akan di proses oleh Atmega 8535 yang akan mengubah ubah jalannya waktu pada LCD. Penggunaan LCD pada alat ini adalah sebagai penunjuk waktu yang telah tersimpan di Atmega 8535.

4. listing program :

unsigned char count, temp[16], indeks=0, detik=0, menit=0, jam=0;

#include <mega16.h>
#include <stdio.h>
#include <stdlib.h>

// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>

// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Reinitialize Timer 0 value
TCNT0=0x8A;
count++;
}

void hitung_waktu()
{
if (count>=100)
    {
    lcd_clear();
    detik++;
    count=0;
    }
if (detik>=60)
    {
    menit++;
    detik=0;
    }
if (menit>=60)
    {
    jam++;
    menit=0;
    }
}

void detek_tombol()
{
if (PINA.0==0 && (indeks==0 || indeks==2))//start timer
    {
    indeks=1;
    TIMSK=0x01;//memulai timer
    lcd_clear();
    }
if (PINA.1==0 && indeks==1)//stop timer
    {   
    indeks=2;
    TIMSK=0x00;//menstop timer
    lcd_clear();
    }
if (PINA.2==0 && indeks==2)//reset timer
    {   
    indeks=0;//semua data direset
    count=0;
    detik=0;
    menit=0;
    jam=0;   
    lcd_clear();
    }
}

void tampil_lcd()
{
lcd_gotoxy(0,0);
sprintf(temp,"Timer %d:%d:%d:%d",jam,menit,detik,count);
lcd_puts(temp);//tampilkan waktu di LCD baris pertama
if (indeks==0)
    {
    lcd_gotoxy(0,1);
    lcd_putsf("START");
    }   
if (indeks==1)
    {
    lcd_gotoxy(0,1);
    lcd_putsf("STOP");
    }    
if (indeks==2)
    {
    lcd_gotoxy(0,1);
    lcd_putsf("START      RESET");
    }
}

void main(void)
{
PORTA=0x0f;
DDRA=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 11.719 kHz
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x05;
TCNT0=0x8A;
OCR0=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// LCD module initialization
lcd_init(16);

// Global enable interrupts
#asm("sei")

while (1)
      {
      detek_tombol();
      hitung_waktu();
      tampil_lcd();
      };
}


1 komentar :

  1. Stopwatch-nya kok ga jalan ya?? Cuma push button doang yg fungsi sm lcd

    BalasHapus

Tolong Kasih Komentarnya, ya...!!!! ^_^

▲Top▲