Senin, 05 Desember 2016

Modul dan Hasil Praktikum Timer/Counter (Mikroprosesor)

MODUL VIII
MENGGUNAKAN TIMER/COUNTER
DALAM MIKROKONTROLER ATMEGA8535

 TUJUAN

  • Mahasiswa mampu menggunakan fitur timer/counter mikrokontroler.
  • Mahasiswa mampu menggunakan mikrokontroler untuk membuat timer.
  • Mahasiswa mampu menggunakan mikrokontroler untuk menghitung banyaknya pulsa yang masuk.

TIMER/COUNTER


Timer/counter dalam ATmega8535 ada 3 yaitu:
·         Timer/counter 0
·         Timer/counter 1
·         Timer/counter 2       

Interrupt timer berasal dari dua sumber yaitu:
·         Overflow interrupt, dimana interrupt terjadi jika TCNTn mencapai 255 untuk timer 8 bit dan 65535 untuk timer 16 bit.
·         Compare match interrupt, dimana interrupt terjadi jika nilai OCR sama dengan TCNTn.

Secara umum fitur Timer/Counter mikrokontroler  ATmega8535 dapat digunakan untuk berbagai macam fungsi, yaitu:
·         Timer/delay time
Pada dasarnya ketika Timer/Counter difungsikan sebagai Timer, sistem hanya menghitung pulsa clock. Frekuensi pulsa clock yang dihitung tersebut bisa sama dengan frekuensi kristal yang digunakan atau dapat diperlambat menggunakan prescaler dengan faktor 8, 64, 256, atau 1024. Contohnya jika sebuah sistem mikrokontroler menggunakan kristal dengan frekuensi 4 MHz dan timer yang digunakan adalah timer 8 bit, maka maksimum waktu timer yang bisa dihasilkan adalah:
         
                          
Untuk menghasilkan timer yang lebih lama dapat digunakan prescaler, misalnya 1024, maka maksimum waktu timer yang bisa dihasilkan adalah:
                              
           
Untuk menghitung nilai TCNT supaya menghasilkan waktu timer tertentu dipergunakan rumus berikut:
           

Dimana:
TCNT   = nilai Timer (Heksadesimal)
fCLK     = Frekuensi clock kristal yang digunakan (Hz)
Ttimer             = Waktu timer yang diinginkan (detik)
N          = prescaler (1,8,64,256,1024)
1+FFh   = nilai maksimum timer adalah FFh dan overflow saat FFh ke 00h

·         Counter
Secara prinsip, memfungsikan Timer/Counter sebagai Counter sama dengan fungsi sebagai Timer akan tetapi sumber clock bukan berasal dari frekuensi kristal, tetapi input dari kaki Tn. Dengan memanfaatkan counter naik, maka bisa diberikan nilai TCNT yang sesuai dengan rumus berikut:
TCNT = (1+FFH) – jumlah counter
Sehingga jika diinginkan membuat counter 5, maka nilai TCNT adalah FBH.

·         Mode CTC
Dengan mode ini, maka mikrokontroler bisa membangkitkan sinyal dengan frekuensi tertentu sesuai dengan rumus berikut:
Jika diinginkan untuk membangkitkan sinyal dengan frekuensi 1 kHz, maka dengan frekuensi clock 4 MHz, dan N=16, maka diperoleh nilai OCR sebagai berikut:


·         Mode PWM
Dengan mode ini, maka mikrokontroler bisa membangkitkan sinyal dengan frekuensi tertentu dan duty cycle tertentu sesuai dengan rumus sebagai berikut.
Untuk Fast PWM:

Untuk Phase Correct PWM:
Dimana nilai OCR yang berkisar dari 0 sampai 255 akan mempengaruhi duty cycle sinyal yang dibangkitkan.
ALAT DAN BAHAN YANG DIGUNAKAN

  • 1 set PC/Laptop yang sudah berisi program Code Vision dan Khazama
  • 1 buah multimeter dengan fasilitas frequency counter
  • 1 buah ISP Downloader AVR
  • 1 buah sistem minimum AVR
  • 1 buah I/O
  • 1 buah kabel printer USB
  • 2 buah kabel pita hitam

PROSEDUR

TIMER
1.      Rangkailah peralatan yang diperlukan seperti gambar dibawah. Hubungkan soket jumper PORTC pada minimum system dengan soket jumper pada OUTPUT Trainer I/O.
2.      Buka program Code Vision AVR
3.      Buatlah project baru. Pada saat mengeset chip dan clock, set juga bagian PORTC untuk LED serta Timer seperti gambar dibawah. Kemudian simpanlah file tersebut.
·         Nilai Clock Value adalah Nilai Clock Frequency Chip (Fclock) dibagi dengan prescaller dimana prescaller tersebuat bernilai 1, 8, 64, 256, atau 1024
·         Contoh jika nilai Fclock = 4 Mhz maka jika kita ingin menggunakan prescaller 1024 setting Clock Value nya adalah 4Mhz/1024=3,906 Khz






4.      Perhatikan blok program berikut.

5.      Tuliskan script berikut dalam interrupt:
6.      Compile dan Build program jika ada yang error perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto program.
7.      Perhatikan dan catat nyala LED.
8.      Ubah nilai TCCR0 menjadi 0x04 dan 0x03.
9.      Perhatikan perbedaan nyala LED dengan nilai TCCR yang berbeda-beda.
10.  Ulangi langkah 3-9 untuk Timer2 dengan TCNT=0x80;
11.  Buat Project baru untuk Timer1 dengan TCNT = 0xd5d0

12.  Perhatikan blok berikut
   c

13.  Tuliskan script berikut dalam blok interrupt
14.   Compile dan Build program jika ada yang error perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto program.
15.  Perhatikan dan catat nyala LED.
16.  Ubah nilai TCCR1B sehingga menjadi 0x04, 0x03, 0x02, 0x01.
17.  Perhatikan perbedaan nyala LED dengan nilai TCCR yang berbeda-beda.
18.  Buatlah program menggunakan Timer 16 bit (Timer1) dengan nilai TCCR1B=0x05, Ubah nilai TCNT sehingga menghasilkan timer 1 detik.




COUNTER
1.      Rangkailah peralatan yang diperlukan seperti dalam gambar dibawah. Hubungkan soket jumper PORTC pada minimum system dengan soket jumper pada OUTPUT LED. Hubungkan kaki IS1 ke PORTB.0 (T0). 
2.      Buka program Code Vision AVR
3.      Buatlah project baru. Pada saat mengeset chip dan clock, set juga bagian PORTC untuk LED serta Timer seperti gambar dibawah. Kemudian simpanlah file tersebuT.
4.      Perhatikan blok program berikut.
      5.      Tuliskan script berikut dalam interrupt:
6.      Compile dan Build program jika ada yang error perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto program.
7.      Tekan push button IS1 Perhatikan dan catat nyala LED.
8.      Lakukan hal serupa dengan Timer dengan mengganti nilai TCNT0 menjadi 0xFC dan 0xF0  
  
CTC
  1. Rangkailah peralatan yang diperlukan seperti dalam Gambar 1.2. Hubungkan PORTB pada minimum system dengan kabel data pada OUTPUT TRAINER.

  1. Buka program Code Vision AVR
  2. Buatlah project baru. Pada saat mengeset chip dan clock, set juga bagian PORTB untuk LED serta Timer. Kemudian simpanlah file tersebut.
  1. Klik Yes jika muncul dialog diatas.
  1. Perhatikan blok program berikut.Compile dan Build program jika ada yang error perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto program.
  1. Lihat nyala LED  di PORTB.3.
  2. Ukur frekuensi pada PORTB.3 dengan frequency counter di AVOmeter
  3. Ubah Nilai OCR0 menjadi 0x3E dan 0x1E (lihat tabel CTC pada data hasil percobaan)
  4. Lihat nyala LED  di PORTB.3.
  5. Ukur frekuensi pada PORTB.3 dengan frequency counter di AVOmeter
  6. Amati Nyala LED
  7. Buatlah program yang dapat membangkitkan sinyal dengan frekuensi 1 Hz.

PULSE WIDTH MODULATION (PWM)
  1. Rangkailah peralatan yang diperlukan seperti dalam Gambar 1.2. Hubungkan PORTB pada minimum system dengan kabel data pada OUTPUT TRAINER.
  1. Buka program Code Vision AVR
  2. Buatlah project baru. Pada saat mengeset chip dan clock, set juga bagian PORTB untuk LED serta Timer. Kemudian simpanlah file tersebut. 
  1. Klik Yes jika muncul dialog diatas
  2. Perhatikan blok program berikut. 
  1. Compile dan Build program jika ada yang error perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto program.
  2. Lihat nyala LED  di PORTB.3.
  3. Ukur frekuensi pada PORTB.3
  4. Ubah Nilai OCR0 menjadi 0x00 dan 0xFF (lihat tabel PWM pada data hasil percobaan)
  5. Amati Nyala LED
  6. Ulang langkah 3-9 dengan mode Fast PWM.
  7. Buatlah program yang dapat mengubah nilai Duty Cycle sesuai dengan input Potensiometer !
Potensiometer 0 V (minimum) à Duty Cycle 0%
Potensiomter 5V (Maksimum) à Duty Cycle 100%

DATA HASIL PERCOBAAN

TIMER
No
TIMER
TCCRx
TCNTx
Kondisi Led
Delay
1
Timer0
0x05
0x50
00000000 à 11111111
2s
2
Timer0
0x04
0x50
00000000 à 11111111
1s
3
Timer0
0x03
0x50
11111111
Diam
6
Timer2
0x05
0x80
00000000 à 11111111
2s
7
Timer1
0x05
0xD5D0
00000000 à 11111111
20s
8
Timer1
0x04
0xD5D0
00000000 à 11111111
2s
9
Timer1
0x03
0xD5D0
00000000 à 11111111
2s
10
Timer1
0x02
0xD5D0
00000000 à 11111111
10ms
11
Timer1
0x01
0xD5D0
11111111
Diam
12
Timer1


00000000 à 11111111
1 s

Counter
No
TIMER
TCCRx
TCNTx
Jumlah Penekanan Tombol IS1 Hingga
 LED Menyala
Jumlah Penekanan Tombol IS1 Hingga
LED Mati
1
Timer0
0x06
0xFB


2
Timer0
0x06
0xFC


3
Timer0
0x06
0xF0







CTC
Nilai OCR0/OCR1A/OCR1B/OCR2
N
Nyala LED
Frekuensi
0x7C

Nyala pada bit 3
61,8 hz 
0x3E

Menyala semua
 122,7 hz
0x1E

Menyala semua
 249,3



1 Hz



PWM
Fast PWM
Nilai OCR0
Nyala LED
Tegangan LED
Frekuensi
0x00
 Kedip
3,5 v 
50,11 Hz 
3,775 Hz 
 50,08 Hz
0x50
 Kedip
 2,8 v
0xFF
 nyala
 3,8 v
Phase Correct PWM
Nilai OCR0
Nyala LED
Tegangan LED
Frekuensi
0x00
 Mati
1,3 mv 

 50,09 Hz
 50,12 Hz
0x50
 Kedip
 314 mv
0xFF
 nyala
 4,77 v

ANALISA DATA

TIMER
  1. Analisa data hasil pada tabel Timer dengan menggunakan rumus :
Hitung Nilai Ttimer :
TIMER
TCCRx
TCNTx
Fclock (Hz)
Prescaler
8 / 16 bit
T (s)
Keterangan
Timer0
0x05
0x50
4.000.000
1.024
255
0,05
Delay tidak terlihat
Timer0
0x04
0x50
4.000.000



Delay tidak terlihat
Timer0
0x03
0x50
4.000.000



Diam
Timer2
0x05
0x80
4.000.000



Delay tidak terlihat
Timer1
0x05
0xD5D0
4.000.000



Delay 20s
Timer1
0x04
0xD5D0
4.000.000



Delay 2s
Timer1
0x03
0xD5D0
4.000.000



Delay 1 s
Timer1
0x02
0xD5D0
4.000.000



Delay tidak terlihat
Timer1
0x01
0xD5D0
4.000.000



Diam

  1. Bagaimana anda mendapatkan timer dengan Ttimer 1 detik dengan menggunakan Timer1?
COUNTER
  1. Analisa data hasil pada tabel counter


CTC
  1. Hitung nilai frekuensi
Nilai OCR0/OCR1A/OCR1B/OCR2
N
Nyala LED
Frekuensi
0x7C

Nyala pada bit 3
61,8 Hz 
0x3E

Nyala
127,7 Hz
0x1E

Nyala
249,3 Hz

  1. Bagaimana cara anda membangkitkan sinyal dengan frekuensi 1 detik menggunakan Timer/Counter mode CTC?


PWM
  1. Hitung nilai frekuensi dan duty cycle
Fast PWM
Nilai OCR0
Duty Cycle Berdasarkan Nilai OCR0
Duty Cycle Berdasarkan Nilai Tegangan LED
Frekuensi
0x00





0x50


0xFF


Phase Correct PWM
Nilai OCR0
Duty Cycle Berdasarkan Nilai OCR0
Duty Cycle Berdasarkan Nilai Tegangan LED
Frekuensi
0x00





0x50


0xFF



2.      Jelaskan perbedaan mode Fast PWM dengan Phase Correct PWM
3.      Mengapa nyala led pada mode Fast PWM berkedip lebih cepat daripada mode Phase Correct PWM?
4.      Source Code Program langkah no 11.


0 Profil penulis:

Posting Komentar