Timer Module adalah salah satu fungsi dalam PIC untuk melakukan timer dan juga counter. Terdapat tiga jenis timer dalam PIC16 iaitu Timer0, Timer1 dan Timer2. Timer0 dan Timer2 adalah 8bit counter manakala Timer1 adalah 16bit counter.
Address-address yang terlibat dalam Timer0 adalah OPTION_REG dan TMR0, address untuk Timer1 adalah T1CON, TMR1H dan TMR1L manakala address untuk Timer2 adalah T2CON dan TMR2.
OPTION_REG ini menetapkan prescaler untuk TMR0 dan juga WDT (Watchdog Timer) dengan menetapkan PSA (OPTION_REG<3>). Prescaler adalah nilai untuk mengurangkan frequency tinggi kepada frequency rendah dengan cara pembahagian. Jika prescaler disetkan kepada TMR0, bermakna tiada prescaler untuk WDT dan jika prescaler disetkan kepada WDT, tiada prescaler untuk TMR0. TMR0 mengira dari 00h-FFh.
Timer1 pula adalah 16bit counter, oleh itu ia membabitkan dua address iaitu TMR1H dan TMR1L. Timer1 dihidupkan dengan setkan TMR1ON (T1CON<0>). Prescaler Timer1 ditetapkan oleh bit5-bit4 T1CON. Timer1 juga boleh menggunakan clock luaran pada pin RCO/T1OSO/T1CKI dan ditetapkan oleh TMR1CS (T1CON<1>). Timer1 mengira dari 0000h-FFFFh.
Timer2 adalah 8bit counter. Timer2 mempunyai period register, PR2. Timer2 mengira dari 00h hingga sama dengan PR2, kemudian kembali kepada 00h. Timer2 dihidupkan dengan setkan TMR2ON (T2CON<2>). Prescaler Timer2 ditetapkan oleh bit1-bit0 T2CON.
Saya menyediakan contoh operasi timer ini. Program di bawah menunjukkan perbezaan dalam 9 condition.
State 1: Ketiga-tiga timer OFF
State 2: Timer0 dihidupkan
State 3: Menukar prescaler Timer0
State 4: Timer1 dihidupkan
State 5: Menukar prescaler Timer1
State 6: Timer2 dihidupkan
State 7: Menukar prescaler Timer2
State 8: Menukar nilai PR2
State 9: Menukar sumber clock Timer1 daripada internal kepada external
Ketika menggunakan external clock, saya menggunakan push button yang dipasang pada pin RC0 sebagai sumber clock. Oleh itu, Timer1 akan bergerak ketika push button di tekan.
Berikut adalah videonya.
PIC Source Code
Sertai Telegram Group bagi dapatkan source code
20 responses to “PIC Lesson: Timer Module”
salam shahrul.
wahhhhhhhhh blog ilmu yg bagus ni
akak keja bidang elektronik gak ni
boleh cari2 ilmu disini ya
akak dan link
tq for sharing
ada tak downloader program untuk linux?
meorbu, saya tidak pernah menggunakan downloader bersama linux, jadi saya juga tidak mempunyai info tersebut.
Boleh you buat program untuk mcu lain selain dari PIC for example Renesas, NEC, Panasonic etc. Biasa kalau program sahaja berapa you charge (PIC)?
Selain PIC, sy pernah menggunakan mcu Freescale, fpga Xilinx dan plc GE Fanuc. Upah programming PIC RM300.
Alhamdulillah…sekurang2nya ada anak jati pahang yg mencurahkan ilmu dan pengetahuan kpd awam yang sangat bermanafaat..Apa yg terharu buat saya..kamu dan saya adalah sama dr teknik1 ktn dan sama2 blajar diUitm yg dulunya dikenali sbg ITM ketika saya keluar dari sana pd thn 1988..
Sharul..apa saya nak minta tlg..kalau kamu dapat mengajar kami menggunakan Software 2004 DXP Protel secara bersemuka dan kami bersedia membayar kosnya..
Saya berharap ia dapat dilaksanakan..
t.k
Nak belajar Software Protel secara bersemuka, hubungi sy di http://shahrulnizam.com/about, namun bergantung kpd tempat.
bro??? bole ajar program x??
aslkm abg….
sy nk tny abg tntng projek final…
klau sy nk tempah projek kat abg blh x???
sy nk buat mesin tanam jagung….
harap abg blh mmbntu dn mmbls komen sy…
jsa baik abg sngt sy hargai….
aslkm…….
ws ain, boleh. Nak tempah projek, e-mail saya di Tentang Saya.
laju nye timer dia . x leh slow kan ke?
ahmad, kalau nak slow x perlu pakai Timer, pakai delay je la.
Assalamualaikum ,
Boleh saya tahu bagaimana nak hasilkan fail seperti di bawah.
#include “LibraryHardware.h”
#include “LibraryPeripheral.h”
#include “LibraryUniversalDisplay.h”
waalaikumussalam, buka notepad, save as .h
Minta maaf encil Shahrul saya masih lagi keliru mengenail fail .h tu. Apa yg perlu saya taip dalam notepad sebelum saya save menjadi fail .h
Nak tulis fail .h perlukan belajar berbulan atau bertahun. Jadi, x boleh terangkan kat sini.
Encik Sharul ada jual tak fail .h tu kalau ada email saya berapa harga satu fail tu.
Saya x jual fail library sahaja. Saya jual beserta dgn projek. Sebab saya jual library sahaja, ramai yg tak reti guna juga.
nak tanya satulah nape bila saya masukan arahan
void interrupt ()
arahan ni tidak diterima begitu juga arahan
OPTION_REG
bila compile ada masa
harap sudi bantu.
Zailah, OPTION_REG nama register yg dah ditetapkan dlm Hi-Tech PIC16 V9.83. Version yang lama guna OPTION kalau x silap. Jadi kena update Hi-Tech yg terbaru.