PIC12F675 timer1 code and Proteus simulation

This post provides the timer1 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.

PIC12F675 timer1

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 timer1 expires and executes it’s ISR[1] code. In the above figure, it is clear that after approximately every 130msec, GP0 pin is toggled i-e timer1 expires. You can easily change this value in the code.


The code used to initialize timer1 is shown below.

In this function, firstly timer1 count registers (TMR1H and TMR1L) are cleared before starting timer1. T1CON register is initialized to make timer1 prescalar to be 1:1. Timer1 is a 16bit timer, so it expires after reaching a value of 65535. When timer1 prescalar is made 1:1 then it means that, timer1 value will increment after every clock cycle. Since PIC12F675 is running at 1MIPS[2] speed, this means that timer1 will expire after every 65535*2 = 131 msec[3]. T1IF bit clears any pending timer1 interrupts. T1IE bit enables timer1 interrupts, PEIE bit enables peripheral interrupts (It is a must to enable peripheral interrupts in order to enable timer1 interrupts) and GIE bit enables global interrupts.

Timer1 interrupt service routine code is shown below.

PIC12F675 timer1 schematic


Timer1 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 timer1 code and Proteus simulation

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.