34
INDUSTRIAL MICROCONTROLLER ETN 504 TAJUK: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR DIPLOMA TEKNOLOGI ELEKTRONIK SEMESTER 5

Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

  • Upload
    ken-ken

  • View
    318

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

INDUSTRIAL MICROCONTROLLERETN 504

TAJUK: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

DIPLOMA TEKNOLOGI

ELEKTRONIKSEMESTER 5

Page 2: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

APA MAKSUD AVR ?•Automatic Voltage

Regulator, AVR•Pengatur Voltan Automatik,

AVR

Page 3: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

PENGENALAN TIMER & COUNTER• Timer & Counter merupakan salah satu iaitu pengawal mikro AVR

yang memiliki fungsi terhadap waktu. Fungsi pewaktu yang dimaksud disini adalah penentuan program tersebut dijalankan, tidak hanya itu saja fungsi timer yang lainnya adalah PWM, ADC, dan Oscillator. Prinsip kerja timer dengan cara membagi frekuensi (prescaler) pada clock yang terdapat pada pengawal mikro sehingga timer dapat berjalan sesuai dengan frekuensi yang di kehendaki.

• Timer merupakan fungsi waktu yang sumber clocknya berasal dari clock internal. Sedangkan counter merupakan fungsi perhitungan yang sumber clocknya berasal dari external pengawal mikro. Salah satu contoh penggunaan fungsi timer iaitu pada jam digital yang sumber clocknya boleh menggunakan crystal oscillator dan contoh penggunaan counter pada penghitung barang pada sumber clocknya berasal dari sensor tersebut.

Page 4: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

APA MAKSUD PWM ?

• PULSE WIDE MODULATION,PWM

-PULSE WIDE MODULATION BERFUNGSI UNTUK KECEPATAN PUTARAN MOTOR DC.

Page 5: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

• Pada pengawal mikro ATMEGA 16 memiliki 3 buah timer iaitu timer 0 (8bit), timer1 (16bit), dan timer 2 (8bit). Untuk mengenai register lengkapnya boleh dibaca pada data sheet. Namun yang akan menunjukkan pada tulisan kali ini hanya timer 0(8bit) dan timer1 (16 bit) sahaja.

Page 6: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

PIC16F877A mempunyai 3 buah TimersTimer 0 - 8 bit

boleh digunakan sebagai Timer/counterTimer 1 – 16 bit

boleh digunakan sebagai Timer/counterTimer 2 – 8 bit Timer

boleh digunakan sebagai PWM time-base untuk memasuki PWM mode daripada CCP module.

Timers

Page 7: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

• TIMER 0 (8 Bit)

Page 8: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

TIMER 1 (16 BIT)

Page 9: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

BLOCK DIAGRAM

CPU

On-chip RAM

On-chip ROM for program code

4 I/O Ports

Timer 0

Serial PortOSC

Interrupt Control

External interrupts

Timer 1

Timer/Counter

Bus Control

TxD RxDP0 P1 P2 P3

Address/Data

Counter Inputs

Page 10: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

PIN TIMER /COUNTER PADA AVR

Pin Timer / Counter Pada Atmega8535

Page 11: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR
Page 12: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR
Page 13: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

TUJUAN PEMBAHASAN TIMER DAN COUNTER AVR :

• 1. Melaksanakan tugas tertentu secara berulang  (mode normal).• 2. Menghitung panjang pulsa (input capture)• 3. Menghitung banyaknya sebagai counter (event).• 4. Mengendalikan kecepatan motor DC (pulse wide modulation /PWM).• 5. Membuat penundaan waktu/masa (delay).• 6. Penjana isyarat (Signal generator) .• Komponen utama Timer/Counter adalah sebuah register  yang

tugasnya hanya berhitung dari 0 sampai batas maximumnya, register ini pada AVR disebut  register TCNT .  Misalnya  sebuah register TCNT  pada AVR adalah 8 bit,  maka nilai maksimunya adalah 255.

Page 14: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

REGISTER YANG DIGUNAKAN UNTUK MENDUKUNG OPERASI TIMER COUNTER PADA AVR :

• Register TCNT = register pencacah dari 0 sampai nilai maximum yang kita tentukan.• Register TCCR =Untuk pengaturan mode  operasi  Timer/Counter• Register TIMSK =Untuk  memilih Timer / Counter  mana yang aktif.• Register TIFR = Untuk mengetahui adanya interupsi akibat operasi Counter dan Timer .• Register OC (output compare) = untuk menyimpan nilai pembanding dengan nilai pada

register  TCNT.• TCNT 0 = Register Timer 1• TCNT 1 = Register Timer 0• Ttimer 0 = Periode Timer 0• Ttimer 1 =Periode Timer 1• Tosc = Periode Clock• Fosc = Frekuensi Crystall Clock• N = Prescaler (1, 8, 64, 256, 1024)• Jadi kalau kita ingin melakukan pengaturan (men set up )   Timer/Counter kita fokuskan ke

register TCCRn .  n adalah nomer timer ,  misal  jika kita ingin menggunakan Timer 0 maka yg kita atur adalah TCCR0,timer 1 TCCR1A dan TCCR1B.

Page 16: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

TMOD REGISTER:

• Gate : When set, timer only runs while INT(0,1) is high.• C/T : Counter/Timer select bit.• M1 : Mode bit 1.• M0 : Mode bit 0.

Page 17: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

TCON REGISTER:

• TF1: Timer 1 overflow flag.• TR1: Timer 1 run control bit.• TF0: Timer 0 overflag.• TR0: Timer 0 run control bit.• IE1: External interrupt 1 edge flag.• IT1: External interrupt 1 type flag.• IE0: External interrupt 0 edge flag.• IT0: External interrupt 0 type flag.

Page 18: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

APA BERFUNGSI SEBAGAI TIMER DAN APA BERFUNGSI SEBAGAI COUNTER?

• Ketika sumber clock  dari   system clock  (kristal) maka ialah berfungsi sebagai timer.• Ketika sumber clock dari external clock maka ialah berfungsi sebagai counter.• Pemilihan sumber clock ada pada bit  CS pada register TCCR.

Page 19: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

TIMER :

Page 20: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

MODE TIMER O UNTUK MENENTUKAN MODE TIMER O DI LAKUKAN PADA BIT WGM-OO DAN

WGM-OI PADA REGISTER CONTROL (TCCRO) SEPERTI PADA JADUAL DIBAWAH INI.

Page 21: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

1.  MODE NORMAL  MEMILIH MODE INI DENGAN CARA DIPROGRAM SEMUA BIT WGM OI =O DAN

WGMOO=O, PADA REGISTER TCCR

Page 22: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

• Digunakan  untuk melaksanakan pekerjaan yang berulang dgn interval tertentu juga boleh digunakan untuk membuat delay.  Nilai TCNT akan terus menerus mengalami kenaikan tiap di clock oleh simber clok yg sudah dipilih. Jika sudah mencapai maksimumnya nilai TCNT akan kembali 0  dan mengeset bit Flag TOV0 di register TIFR.  Waktu interval  dapat dirubah rubah dengan merubah nilai maximum TCNT.  Makin kecil nilai maximum TCNT makin kecil pula waktu intervalnya.  Contoh sebagai gambaran saja , jika periode clock yg di berikan ke timer 1 detik,  maka dgn nilai max TCNT diset 255 , interval timer  1 x255 = 255 detik. untuk nilai max  TCNT  di set 10 . Maka periode interval 1×10 = 10 detik.

Untuk mode normal penggunaanya cukup mudah, contohnya anda boleh baca disini.• Pada mode normal selain boleh diprogram sebagai timer juga sebagai counter,

dgn cara merubah sumber clocknya menggunakan triger di pin TO .  Pengantian sumber clock melalui set bit CSO2:CSOl:CSOO pada register TCCRO seperti tampak pada gambar dibawah ini ( untuk lebih jelasnya lihat  penjelasan no 3.  mode normal sbg  counter )

Page 24: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

CARA PROGRAM PILIHAN SEBAGAI TIMER ATAU COUNTER PADA CODEWIZARD DI CODEVISION

Page 25: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

PILIHAN SCALA CLOCK CS02:CSO1:CSOO UNTUK XTAL 11.059.200HZ  PD CODEVISION SUDAH BERUPA PILIHAN

 FREKWENSI CLOCK TIMER:

Page 26: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

2.  MODE INPUT CAPTURE PADA TIMER 1 .

• Input capture digunakan untuk menghitung periode pulsa yang pencetus pin ICP1.  Setiap kali Pin ICP1 di mencetuskan  oleh perubahan isyarat (rising ) akan penyalinan nilai register 16 bit TCNT ke register 16 bit ICR1 (ICR1H dan ICR1L). perbedaan dengan  timer 0 adalah nilai TCNT \sambungan bergulir  tanpa ada mula dan berhenti timer tetapi timer0 ada mula dan berhenti timer.• oleh kerana itu nilai register ICR1 harus segera dibaca

sebelum di overwrite oleh data TCNT yg baru ketika terjadi perubahan isyarat berikutnya.

Page 28: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

3.  MODE NORMAL SEBAGAI COUNTER

Digunakan untuk menghitung jumlah event yang mentriger pin T0 (portB.0) jika kita menggunakan  timer0  atau T1 (portB.1) pada timer1.

Page 29: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

4. Mode PWM , Pulse Wide Modulation.• Mode PWM ada dua iaitu PWM phase correct dan Fast PWM.  perbedananya

iaitu pada PWM phase corect counter  (TCNT) bergulir/mencacah naik dan turun . sedangkan pada Fast PWM counter  (TCNT) hanya bergulir naik saja .• Untuk menjadikan Timer counter  mode PWM phase correct iaitu  dengan

Cara diprogram bit WGM01=1 dan bit WGM0 =0  ,  pada register TCCR.

Page 30: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

• Salah satu kegunaan isyarat PWM  antara lain untuk  mengendalikan Kecepatan putaran  Motor DC.   Gambar berikut ini menunjukan berbagai bentuk PWM dan efek terhadap kecepatan Motor DC yang berbeda sesuai bentuk pulsa PWM.

Page 31: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

• Cara pembentukan isyarat Fast (kelajuan) PWM • Nilai pada register Counter TCNT akan terus menerus naik sampai nilai

maximum, lalu kembali ke 0. begitu seterusnya selama isyarat clock diberikan kepada timer. Nilai OCR diprogram untuk mengatur pembentukan PWM.• saat nilai TCNT  >  nilai OCR maka pin OC mengeluarkan isyarat HIGH ,• saat nilai TCNT < nilai OCR maka pin OC mengeluarkan isyarat LOW.• Gambar berikut menunjukan tiga buah nilai OCR yang berbeda ,yang

 menghasilkan isyarat output  PWM   berbeda pula pada pin OC.

Page 32: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR

CARA MEMBUAT PWM PADA CODEWIZARD  DI CODEVISION SEPERTI PADA GAMBAR BERIKUT:

Page 34: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR