pengetahuan dasar penggunaan timer dan counter microcontroller avr
TRANSCRIPT
![Page 1: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/1.jpg)
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](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/2.jpg)
APA MAKSUD AVR ?•Automatic Voltage
Regulator, AVR•Pengatur Voltan Automatik,
AVR
![Page 3: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/3.jpg)
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](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/4.jpg)
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](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/5.jpg)
• 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](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/6.jpg)
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](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/7.jpg)
• TIMER 0 (8 Bit)
![Page 8: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/8.jpg)
TIMER 1 (16 BIT)
![Page 9: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/9.jpg)
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](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/10.jpg)
PIN TIMER /COUNTER PADA AVR
Pin Timer / Counter Pada Atmega8535
![Page 11: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/11.jpg)
![Page 12: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/12.jpg)
![Page 13: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/13.jpg)
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](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/14.jpg)
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](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/16.jpg)
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](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/17.jpg)
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](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/18.jpg)
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](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/19.jpg)
TIMER :
![Page 20: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/20.jpg)
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](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/21.jpg)
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](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/22.jpg)
• 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 23: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/23.jpg)
![Page 24: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/24.jpg)
CARA PROGRAM PILIHAN SEBAGAI TIMER ATAU COUNTER PADA CODEWIZARD DI CODEVISION
![Page 25: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/25.jpg)
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](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/26.jpg)
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 27: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/27.jpg)
![Page 28: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/28.jpg)
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](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/29.jpg)
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](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/30.jpg)
• 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](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/31.jpg)
• 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](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/32.jpg)
CARA MEMBUAT PWM PADA CODEWIZARD DI CODEVISION SEPERTI PADA GAMBAR BERIKUT:
![Page 33: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/33.jpg)
![Page 34: Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR](https://reader035.vdokumen.net/reader035/viewer/2022062218/587e7b201a28abd6038b509f/html5/thumbnails/34.jpg)