Sie sind auf Seite 1von 4

Adsby Google

PIC Microcontroller programmer


PIC Microcontroller ADC
PicProgramming
PIC16F877A
TimerClock

Search this web site:

Contact us
Blog
TimeTimer

PIC16F877TimerModulestutorialsTimer0

Search
Adsby Google

TimeTimer

1. PICMicrocontroller

TimerModule
2. BestLEDTVs
PIC Microcontroller
Development tools

3. PICProgrammer

Home
PIC microcontroller kits
USB PIC microcontroller kits

4. FreeSoftwareDownloads
5. 32BitMicrocontroller

PIC programming books


Programming PIC in C

PIC Microcontroller
Tutorials
Adsby Google

PicTutorial
CountUpTimer
PIC Introduction to PIC
PIC Memory Organization
Microchip MPLAB IDE
HI-TECH compiler
Microcontroller Board
PIC USB Programmer

Many times, we plan and build systems that perform various processes that depend on time.
Simple example of this process is the digital wristwatch. The role of this electronic system is to
display time in a very precise manner and change the display every second (for seconds), every
minute (for minutes) and so on.
To perform the steps we've listed, the system must use a timer, which needs to be very accurate in
order to take necessary actions.The clock is actually a core of any electronic system.
In this PIC timer module tutorial we will study the existing PIC timer modules. The microcontroller
PIC16F877 has 3 different timers:
PIC Timer0
PIC Timer1
PIC Timer2
We can use these timers for various important purposes. So far we used delay procedure to
implement some delay in the program, that was counting up to a specific value, before the
program could be continued. "Delay procedure" had two disadvantages:

PIC Debuger

we could not say exactly how long the Delay procedure was in progress

PIC Timer Modules

we could not perform any further steps while the program executes the "delay procedure"

PIC Timer0 tutorial


PIC Timer1 tutorial
PIC Timer2 tutorial
Serial communication /
USART
PIC Interrupts
PIC A/D converter

PIC Microcontroller
Projects
Creating new project
PIC Fire Detector project

EDUPIC microcontroller board

Now, using Timers we can build a very precise time delays which will be based on the system clock
and allow us to achieve our desired time delay well-known in advance.
In order for us to know how to work with these timers, we need to learn some things about each
one of them. We will study each one separately.

PIC Timer0 tutorial


The Timer0 module timer/counter has the following features:
8-bit timer/counter
Readable and writable
8-bit software programmable prescaler
Internal (4 Mhz) or external clock select
Interrupt on overflow from FFh to 00h
Edge select (rising or falling) for external clock

ICP2 USB programmer

General
Liquid Crystal Display - LCD
Contact Us

Lets explain the features of PIC Timer0 we have listed above:

PICProgrammer
BestLEDTVs

FreeSoftwareDownloads
PICChipProgramming

Timer0 has a register called TMR0 Register, which is 8 bits of size.


We can write the desired value into the register which will be increment as the program progresses.
Frequency varies depending on the Prescaler. Maximum value that can be assigned to this register
is 255.
TMR0IF - TMR0 Overflow Interrupt Flag bit.
The TMR0 interrupt is generated when the TMR0 register overflows from FFh to 00h. This overflow
sets bit TMR0IF (INTCON<2>). You can initialize the value of this register to what ever you want
(not necessarily "0").
We can read the value of the register TMR0 and write into. We can reset its value at any given
moment (write) or we can check if there is a certain numeric value that we need (read).
Prescaler - Frequency divider.
We can use Prescaler for further division of the
system clock. The options are:
1:2
1:4
1:8
1:16
1:32
1:64
1:128
1:256

Intel Quark Processors


Learn How Intel Offers
End-to-End IoT Security
and Manageability.
intel.in/Quark

The structure of the OPTION_REG register


We perform all the necessary settings with OPTION_REG Register. The size of the register is 8 bits.
Click the link to explore the relevant bits of OPTION_REG Register

Initializing the OPTION_REG register


The following is an example how we can initialize the OPTION_REG:
1. PSA=0; // Prescaler is assigned to the Timer0 module
2. PS0=1; // Prescaler rate bits
3. PS1=1; // are set to 111
4. PS2=1; // which means divide by 256
5. TOSE=0; // rising edge
6. TOCS=0; // Internal instruction cycle clock

Block diagram of the PIC Timer0 / WDT prescaler

PIC TIMER0 block diagram

Calculating Count, Fout, and TMR0 values


If using INTERNAL crystal as clock, the division is performed as follow:

PIC TIMER0 formula for internal clock

Fout The output frequency after the division.


Tout The Cycle Time after the division.
4 - The division of the original clock (4 MHz) by 4, when using internal crystal as clock (and not
external oscillator).
Count - A numeric value to be placed to obtain the desired output frequency - Fout.
(256 - TMR0) - The number of times in the timer will count based on the register TMR0.

An example of INTERNAL crystal as clock


Suppose we want to create a delay of 0.5 second in the our program using Timer0. What is the
value of Count?
Calculation:
First, lets assume that the frequency division by the Prescaler will be 1:256. Second, lets set
TMR0=0. Thus:

Formula to calculate Cout using Timer0

If using EXTERNAL clock source (oscillator), the division is performed as follow:

PIC TIMER0 formula for external clock

In this case there is no division by 4 of the original clock. We use the external frequency as it is.

An example of EXTERNAL clock source (oscillator):


What is the output frequency - Fout, when the external oscillator is 100kHz and Count=8?
Calculation:
First, lets assume that the frequency division by the Prescaler will be 1:256. Second, lets set
TMR0=0. Thus:

Formula to calculate Fout for Timer0

Delay of 1 sec using Timer0


The following simple program creates a delay of 1 sec using Timer0:

1 sec delay using Timer0

PIC Timer1 tutorial


PIC Timer2 tutorial

Microcontroller Board Blog

Microcontroller Board Store

Contact Page

Copyright 2008- 2016 MicrocontrollerBoard.com. All rights reserved.

Das könnte Ihnen auch gefallen