logo

Select Sidearea

Populate the sidearea with useful widgets. Itโ€™s simple to add images, categories, latest post, social media icon links, tag clouds, and more.
[email protected]
+1234567890
 

Tutorial Microcontroller MCS-51 , AVR Codevision, ARM STM32F4, Keil

Tutorial Microcontroller MCS-51 ATMEL ISPย 

ย 

Product Kit Trainer

Tutorial MCS51

Tutorial AVR

Tutorial ARMSTM32

Link Download Software

Galery

Pelatihan


Best Seller Trainer

Super MCS51 Trainer
image

Standart MCS51 Trainer
image

Super AVR Trainer

image

Standart AVR Trainer
image

Programmer USBASP image

Standart ARM Trainerimage

ย 

ย 

Percobaan Timer

Timer/Counter pada AT Mega 8535/16 terdiri dari 3 buah. Yaitu Timer/Counter0 (8bit ), Timer/Counter1 ( 16 bit ), dan Timer/Counter2 ( 8 Bit ).
Timer/Counter0
Timer/Counter 0 adalah 8-bit Timer/Counter yang multifungsi. Deskripsi untuk Timer/Counter 0 pada ATmega 8535 adalah sebagai berikut:
a. Sebagai Counter 1 kanal.
b. Timer di-nol-kan saat match compare (auto reload).
c. Dapat menghasilkan gelombang PWM.
d. Frekuensi generator.
e. Prescaler 10 bit untuk timer.
f. Interupsi timer yang disebabkan timer overflow dan match compare.
Pengaturan Timer/Counter 0 diatur oleh TCCR0 (Timer/Counter kontrol Register0) yang dapat dilihat pada Tabel berikut.

Prosedure percobaan:

1. Hubungkan JUMPER yang menghubungkan PB0 dan Clock dari astabil 555, atur frekuensi clock yang paling rendah.
2. Lakukan konfigurasi codevision untuk mode 0 (mode normal) yang akan mencacah pulsa dan tampung pada register TCNT0.

1. Percobaan counter dengan display LED

Pada percobaan ini data counter pada TCNT0 akan dikeluarkan pada display LED, pastikan JUMPER LED telah terhubung, dan lakukan konfigurasi pada codevision untuk PORTC.

#include<mega8535.h>
void main()

PORTC=0xFF;
DDRC=0xFF;
TCCR0=0b00000110;
TCNT0=0;
while(1)

PORTC=~TCNT0;


2. Percobaan Counter dengan Display 7 Segmen

Pada percobaan ini, akan menggunakan fungsi COUNTER pada TIMER0 dengan mengatur sumber clock pada T0 atau PB0, sehingga pada saat ada transisi High to Low maka akan menaikkan isi register TCNT0. Agar nilai TCNT0 dapat ditampilkan pada 7 segmen maka harus dilakukan pembagian nilai decimal ke Ratusan, Puluhan dan Satuan. Karena counter yang digunakan adalah TIMER0 8 bit, maka nilai cacahan yang dimungkinkan adalah 000 sampai dengan 255.

#include <mega8535.h>
#include <delay.h>
Unsigned int ubah,data, sat,pul,rat;

// Declare your global variables here

void ubah_ke_format7segment()//fungsi untuk mengubah kedalam format 7segment{           if (ubah==0){ubah=0xc0;}           if (ubah==1){ubah=0xf9;}           if (ubah==2){ubah=0xa4;}           if (ubah==3){ubah=0xb0;}           if (ubah==4){ubah=0x99;}           if (ubah==5){ubah=0x92;}           if (ubah==6){ubah=0x82;}           if (ubah==7){ubah=0xf8;}           if (ubah==8){ubah=0x80;}           if (ubah==9){ubah=0x90;}}
void tampil_7segment(){            PORTC=rat;//mengirimkan data kedigit6            PORTD.5=1;            PORTD.6=0;           PORTD.7=0;           delay_ms(10);            PORTC=pul;//mengirimkan data kedigit7           PORTD.5=0;            PORTD.6=1;           PORTD.7=0;           delay_ms(10);            PORTC=sat;//mengirimkan data kedigit8           PORTD.5=1;            PORTD.6=1;           PORTD.7=0;           delay_ms(10); //lamanya waktu scanning ditentukan oleh intruksi delay} 
void main(void){ PORTC=0x00; DDRC=0xFF; PORTD=0x00; DDRD=0b11100000;
// Timer/Counter 0 initialization           // Clock source: T0 pin Falling Edge           // Mode: Normal top=FFh           // OC0 output: Disconnected TCCR0=0x06; TCNT0=0x00; OCR0=0x00;
           // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00;
ACSR=0x80; SFIOR=0x00;
while(1) {  data = TCNT0; sat = data % 10; // sat = sisa dari data dibagi 10 pul = data / 10; pul = pul % 10;  rat = data / 100; rat = rat % 10;           //  ubah=sat; ubah_ke_format7segment();  sat=ubah;            // ubah=pul; ubah_ke_format7segment();  pul=ubah;           // ubah=rat; ubah_ke_format7segment();  rat=ubah;           // tampil_7segment(); } 

NEXT

ย 

ย