brontoseno electric

6:24 AM
0
Wah pagi yang indah untuk menulis dan berbagi ilmu dengan teman-teman pembaca blog saya ini . Nah kalian harus sedikit tau bagaimana cara membuat timer dengan durasi waktu pencacah 1 detik atau sekitar 1000ms.Perlu sedikit kalian harus ketahui paling tidak bacalah tentang datasheet tentang timer counter , nah dengan ini kalian pasti sedikit tau bagaimana melakukan proses cacahan dan cara kerja timer.

waktu timer0 = TOSC*(256-TCNT0)*N
TOSC= 1/FOSC   → pada aplikasi ini saya menggunakan kristal 12 MHz, sehingga:
TOSC = 1/12Mhz = 0,0000000833 detik


timer yang dihasilkan diatas sebenarnya hanya 10 ms saja karna batas timer 0 disini hanya 8bit atau 255 saja. Nah untuk membuat waktu tunda pas 1 second kalian tinggal melakukan perulangan selama 100 kali saja , jauh lebih simple bukan.

saya menggunakan kristal 12 MHz dan menggunakan skala clock N = 1024, maka didapat:
0.01 = 0,0000000833*(256-TCNT0)*1024
TCNT0= 138 = 8A (dalam hexa)

8A dalam hexa diberikan agar timer0 bernilai 10ms.

Ikuti langkah di bawah ini saja dan buka code wizard kalian dengan setingan clock 12Mhz.



Nah untuk mengetahui hasil dari simulasinya kalian hanya perlu melihat dan mempraktekan simulasi dibawah berikut :


Untuk lebih jelas tentang penjelasan program dan selangkapnya tentang program , saya akan memberikan cuplikan programnya

#include <mega32.h>

// Alphanumeric LCD functions
#include <alcd.h>
#include <stdlib.h>
#include <stdio.h>
#include <delay.h>


unsigned char screen[32];
unsigned char counter=0;
int pencacah=0;

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

 if (counter>=100)
 {
  pencacah++;
  counter=0;
 }


}

untuk lebih singkat dan jelasnya kalian bisa download langsung di sini

Source program timer0
download simulasi proteus timer0


0 komentar:

Post a Comment