Summary of PIC12F675 timer0 code and Proteus simulation
This article provides a Timer0 interrupt example code for the PIC12F675 microcontroller using C language with MPLAB and HI-TECH C compiler. Running on a 4MHz internal oscillator, the Timer0 is configured with a 1:2 prescaler, causing it to overflow approximately every 0.5ms, toggling the GP0 pin via an interrupt service routine. The setup and simulation are verified in Proteus software, and the code is available for download.
Parts used in the PIC12F675 Timer0 Project:
- PIC12F675 microcontroller
- Internal 4MHz oscillator
- LED (connected to GP0 pin)
- MPLAB IDE with HI-TECH C compiler
- Proteus simulation software
This post provides the timer0 code for PIC12F675 microcontroller. This code is written in C language using MPLAB with HI-TECH C compiler. You can download this code from the ‘Downloads‘ section at the bottom of this page.
It is assumed that you know how to blink an LED with PIC12F675 microcontroller. If you don’t then please read this page first, before proceeding with this article.
The result of simulating the code in Proteus is shown below.
In this circuit, PIC12F675 is running on internal oscillator of 4MHz value. GP0 pin is toggled every time timer0 expires and executes it’s ISR[1] code. In the above figure, it is clear that after approximately every 0.5msec, GP0 pin is toggled i-e timer0 expires. You can easily change this value in the code.
Code
The code used to initialize timer0 is shown below.
In this function, OPTION_REG is initialized to make timer0 prescalar to be 1:2. Timer0 is an 8bit timer, so it expires after reaching a value of 255. When timer0 prescalar is made 1:2 then it means that timer0 value will increment after every two clock cycles. Since PIC12F675 is running at 1MIPS[2] speed, this means that timer0 will expire after every 256*2 = 512 usec[3]. T0IE bit enables timer0 interrupts and GIE bit enables global interrupts.
Timer0 interrupt service routine code is shown below.
Downloads
Timer0 code for PIC12F675 was compiled in MPLAB v8.85 with HI-TECH C v9.83 compiler and simulation was made in Proteus v7.10. To download code and Proteus simulation click here.
For more detail: PIC12F675 timer0 code and Proteus simulation