SlideShare a Scribd company logo
1 of 34
PIC18 TIMER
PROGRAMMING
IN ASSEMBLY AND C
INTRODUCTION
• PIC18 FAMILY HAS 2 TO 5 TIMERS DEPENDING ON FAMILY MEMBER
• THEY ARE TIMERS 0,1,2,3 AND 4
• THESE ARE USED TO GENERATE TIME DELAY OR USED AS COUNTERS
TO COUNT EVENTS HAPPENING OUTSIDE THESE MICRO DELAYS
• MANY OF THE PIC18 TIMERS ARE 16 BITS WIDE BECAUSE PIC18 HAS
8-BIT ARCHITECHTURE EACH 16-BIT TIMER IS ACCESSED AS TWO
SEPARATE REGISTERS OF LOW BYTE AND HIGH BYTE
• EACH TIMER ALSO HAS CONTROL REGISTER FOR SETTING MODES OF
OPERATION
TIMER AS COUNTER AND DELAY GENERATOR
• EVERY TIMER NEEDS A CLOCK PULSE
• IF IT IS INTERNAL CLOCK SOURCE THEN ONE FORTH OF
FREQUENCY OF CRYSTAL OSCILLATOR ON OSC1 AND OSC2 PINS
IS FED INTO TIMER
• THERFORE IT IS USED FOR TIME DELAY GENERATION AND FOR
THAT REASON IS CALLED A TIMER
• WHEN AN EXTERNAL CLOCK IS CHOSEN WE FEED PULSES
THROUGH ONE OF PIC18’S PINS THIS IS CALLED AS COUNTER
TIMER 0 REGISTERS AND PROGRAMMING
• TIMER 0 CAN BE USED AS 8-BIT OR 16-BIT TIMER
• THE 16 BIT TIMER IS ACCESSED AS LOW BYTE AND HIGH BYTE
• THE LOW BYTE TIMER IS CALLED TMR0L AND HIGH BYTE
REGISTER IS REFERRED TO AS TMR0H
• THESE REGISTERS CAN BE ACCESSED LIKE ANY OTHER SPECIAL
FUNCTION REGISTERS
• FOR EXAMPLE “MOVWF TMR0L”
TIMER0 HIGH AND LOW REGISTERS
T0CON(TIMER0 CONTROL) REGISTER
• EACH TIMER HAS A CONTROL REGISTER TO SET VARIOUS TIMER
OPERATION MODES
• T0CON IS AN 8-BIT REGISTEER USED FOR CONTROL OF TIMER 0
• THE BITS FOR T0CON ARE SHOWN IN NEXT SLIDE
T0CS(TIMER0 CLOCK SOURCE)
• THIS BIT IN CONTROL REGISTER IS USED TO DECIDE WHETHER CLOCK
SOURCE IS INTERNAL OR EXTERNAL
• IF T0CS=0 THEN FOSC/4 IS USED AS CLOCK SOURCE WHERE THE
TIMERS ARE USED FOR TIME DELAY GENERATION
• IF T0CS=1 THE CLOCK SOURCE IS EXTERNAL AND COMES FROM
RA4/T0CKI WHICH IS PIN6 ON PIC1818F4580/4520
• WHEN CLOCK SOURCE COMES FROM AN EXTERNAL SOURCE TIMER IS
AN EVEN COUNTER
FIND VALUE OF T0CON IF WE WANT TO PROGRAM TIMER0 IN 16-BIT MODE NO
PRE-SCALER USE PIC18’S FOSC/4 CRYSTAL OSCILLATOR FOR CLOCK SOURCE,
INCREMENT ON POSITIVE EDGE
FIND VALUE OF T0CON IF WE WANT TO PROGRAM TIMER0 IN 16-BIT MODE NO
PRE-SCALER USE PIC18’S FOSC/4 CRYSTAL OSCILLATOR FOR CLOCK SOURCE,
INCREMENT ON POSITIVE EDGE
T0CON=0000 1000
INTCON(INTERRUPT CONTROL REGISTER) CONTAINS TMR01F
FLAG
• TMR01F BIT IS PART OF INTERRUPT CONTROL REGISTER WHEN
TIMER REACHES ITS MAXIMUM VALUE OF ‘FFFF H’ IT ROLLS
OVER TO ‘0000 H’ AND TMR01F IS SET TO 1
TIMER0 OVERFLOW FLAG
16-BIT TIMER PROGRAMMING
FOLLOWING ARE OPERATIONS AND CHARACTERISTICS OF 16-BIT
MODE:
1. IT IS A 16-BIT TIMER THERFORE IT ALLOWS VALUES OF 0000 TO FFFFH TO BE LOADED
INTO TMR0H AND TMR0L
2. AFTER THEY ARE LOADED WITH A 16-BIT INITIAL VALUE, THE TIMER MUST BE
STARTED.THIS IS DONE BY “BSF T0CON,TMR0ON” FOR TIMER0
3. AFTER TIMER IS STARTED IT STARTS TO COUNT UP.IT COUNTS UP UNTIL IT REACHES ITS
LIMIT OF FFFFH.WHEN IT ROLLS OVER FROM FFFFH TO 0000H, IT SETS HIGH A FLAG BIT
CALLED TMR01F.THIS TIMER FLAG CAN BE MONITORED.WHEN THI TIMER FLAG IS RAISED
ONE OPTION WOULD BE TO STOP THE TIMER
4. AFTER TIMER REACHES ITS LIMIT AND ROLLS OVER,IN ORDER TO REPEAT THE PROCESS
TMR0H AND TMR0L MUST BE LOADED WITH ORIGINAL VALUE,AND THE TMR01F FLAG
MUST BE RESET TO 0 FOR NEXT ROUND
STEPS TO PROGRAM TIMER0 IN 16-BIT
MODE
TO GENERATE TIME DELAY USING TIMER0 MODE 16 THE FOLLOWING STEPS ARE TAKEN:
• LOAD THE VALUE INTO T0CON REGISTER INDICATING WHICH MODE(8 OR 16 BIT) IS
TO BE USED AND THE SELECTED PRE-SCALER OPTION
• LOAD REGISTER TMR0H FOLLOWED BY TMR0L WITH INITIAL COUNT VALUES
• START TIMER WITH INSTRUCTION “BSF T0CON,TMR0ON”
• KEEP MONITORING TIMER FLAG TO SEE IF IT IS RAISED.GET OUT OF THE LOOP WHEN
TMR01F BECOMES HIGH
• STOP TIMER WITH INSTRUCTION “BCF T0CON,TMR0ON”
• CLEAR THE TMR0F FLAG FOR THE NEXT ROUND
• NOW AGAIN LOAD TMR0H FOLLOWED BY TMR0L WITH INITIAL COUNT VALUES AND
REPEAT THE STEPS
• WE CANNOT LOAD TMR0H FIRST BECAUSE THE VALUE OF TMR0H IS KEPT IN
TEMPORARY REGISTER AND WRITTEN TO TMR0H WHEN TMR0L IS LOADED.THIS WILL
PREVENT ANY ERROR IN COUNTING IF TMR0ON FLAG IS SET HIGH
FINDING VALUES TO BE LOADED INTO
TIMER
ASSUMING XTAL=10MHZ AND NO PRESCALER VALUES :
1. DIVIDE THE DESIRED TIME DELAY BY 0.4 𝜇𝑠𝑒𝑐
2. PERFORM 65536-N WHERE N IS DECIMAL VALUE OF WHAT WE
GOT IN STEP 1
3. CONVERT THE RESULT INTO HEX AND LOAD THE HIGHER INTO
HIGHER BITS AND LOWER VALUE INTO LOWER BITS
PRESCALER AND GENERATING TIME DELAY
• SIZE OF TIME DELAY DEPENDS ON TWO FACTORS: 1)CRYSTAL FREQUENCY
2)TIMERS 16-BIT REGISTER
BOTH OF THEM CANNOT BE CONTROLLED BY PIC18 PROGRAMMER
• IF THE LARGEST DELAY ACHIEVED BY THE TIMER USING TMR0L AND TMROH IS NOT
ENOUGH THEN WE USE PRESCALER OPTION IN T0CON REGISTER TO INCREASE THE
DELAY Y REDUCING THE PERIOD
• THE PRESCALER OPTION ALLOWS US TO DIVIDE INSTRUCTION CLOCK BY A FACTOR
OF 2 TO 256
• WITH PRESCALER BIT ENABLED WE CAN DIVIDE THE INSTRUCTION CLOCK BY 4
BEFORE IT IS FED INTO TIMER0
• LOWER 3 BITS OF T0CON REGISTER GIVES THE OPTIONS OF THE NUMBERS WE CAN
DIVIDE BY WHERE THE LOWEST NUMBER IS 2 AND HIGHEST NUMBER IS 256
8-BIT MODE PROGRAMMING OF TIMER0
• IN 8-BIT MODE TIMER ALLOWS ONLY VALUES FROM 00 TO FFH
TO BE LOADED INTO TMR0L
• AFTER TIMER IS STARTED IT STARTS TO COUNT UP BY
INCREMENTING TMR0L REGISTER
• IT COUNTS UP UNTIL IT REACHES LIMIT FFH
• WHEN IT ROLLS OVER FROM FFH TO 00H IT SETS HIGH TMR01F
STEPS TO PROGRAM 8-BIT MODE OF
TIMER0
1. LOAD T0CON VALUE REGISTER INDICATING 8-BIT MODE IS SELECTED
2. LOAD TMR0L REGISTERS WITH INITIAL COUNT VALUE
3. START THE TIMER
4. KEEP MONITORING TIMER FLAG (TMR01F) TO SEE IF IT IS RAISED.GET OUT OF THE LOOP WHEN
TMR01F BECOMES HIGH
5. STOP TIMER WITH INSTRUCTION “BCF T0CON,TMR0ON”
6. CLEAR TMR01F FLAG FOR NEXT ROUND
7. GO BACK TO STEP2 TO LOAD TMR0L AGAIN
8. WHEN USING THE 8-BIT MODE TMR0L REGISTER IS LOADED AND TMR0H HAS A ZERO VALUE
DURING COUNT UP
ASSEMBLERS AND NEGATIVE VALUES
• WHEN TIMER IS IN 8-BIT MODE WE CAN LET ASSEMBLER
CALCULATE VALUE FOR TMR0H
• EXAMPLE: MOVLW, -D’100’
IN THIS INSTRUCTION THE ASSEMBLER WILL CALCULATE -
100=9C AND MAKE WREG =9C IN HEX
TIMER1 PROGRAMMING
• IT IS A 16-BIT TIMER AND ITS 16-BIT REGISTER IS SPLIT INTO 2 BYTES TMR1L
AND TMR1H
• TIMER BIT CAN BE PROGRAMMED IN 16-BIT MODE ONLY
• TIMER 1 ALSO HAS TICON(TIMER1 CONTROL) REGISTER IN ADDITION TO
TMR1F(TIMER1 INTERRUPT FLAG)
• TMR1F FLAG BIT GOES HIGH WHEN TMR1H:TMR1L OVERFLOWS FROM FFFFH
TO 0000H
• TIMERQ ALSO HAS PRESCALER OPTIONS BUT IT ONLY SUPPORTS FACTORS OF
1:1,1:2,1:4,1:8
PIR1(INTERRUPT CONTROL REGISTER 1) CONTAINS
TMR1F FLAG
COUNTER PROGRAMMING
• TIMERS CAN ALSO BE USED AS COUNTERS TO COUNT EVENTS
HAPPENING OUTSIDE PIC18
• WHEN TIMER IS USED AS COUNTER IT IS A PULSE OUTSIDE PIC18
THAT INCREMENTS TH,TL REGISTERS
• IN COUNTER MODE THE REGISTERS SUCH AS TMR0H,TMR0L
AND T0CON ARE SAME AS FOR THE TIMERS DISCUSSED
PREVIOUSLY
T0CS BIT IN T0CON REGISTER
• USED TO COUNT EVENTS OUTSIDE PIC
• INCREMENTS TMR0H AND TMR0L REGISTERS
• T0CS IN T0CON REGISTER DETERMINES CLOCK SOURCE
• IF T0CS = 1, TIMER IS USED AS COUNTER
• COUNTS UP AS PULSES ARE FED FROM PIN RA4 (T0CKI)
• If TMR1CS=1, TIMER1 COUNTS UP AS CLOCK PULSES ARE FED
INTO PIN RC0
USING EXTERNAL CRYSTAL
FOR TIMER1 CLOCK
TIMER1 COMES WITH TWO OPTIONS,
1. CLOCK FED INTO T1CKI
T1OSCEN=0
2. CLOCK FROM A CRYSTAL CONNECTED
TO T1OSI-T1OSO (additional)
• T1OSCEN=1
• 32 kHz CRYSTAL IS CONNECTED
• USED FOR SAVING POWER DURING
SLEEP MODE  DOESNOT DISABLE
TIMER1 WHILE THE MAIN CRYSTAL
IS SHUT DOWN
EXTERNAL SOURCE
INTERNALSOURCE
ACCESSING TIMER REGISTERS IN C
• IN C118 WE CAN ACCESS TIMER REGISTERS SUCH AS
TMR0H,TMR0L AND T0CON DIRECTLY USING PIC18FXXX.H
HEADER FILE
• IN ADDITION TO CRYSTAL FREQUENCY AND PRESCALER FACTOR
THE THIRD FACTOR IN DELAY CALCULATIONS IS C COMPILER
• VARIOUS C COMPILERS GENERATE DIFFERENT HEX CODE SIZES
TIMER2 PROGRAMMING
• TIMER2 IS 8-BIT TIMER
• 8-BIT REGISTER OF TIMER2 IS CALLED TMR2
• TIMER2 ALSO HAS 8-BIT REGISTER CALLED PERIOD REGISTER(PR2)
• WE CAN SET A FIXED VALUE TO PR2 AND TIMER2 WILL INCREMENT
FROM 00 TO PR2
• THEN THE EQUAL SIGNAL WILL RAISE TMR21F FLAG AND RESET TMR2
TO 00
• CLOCK SOURCE FOR TIMER 2 IS FOSC/4 WITH OPTIONS OF BOTH
PRESCALER AND POSTSCALER
• IT CANNOT BE USED AS COUNTER AS THERE IS NO EXTERNAL CLOCK
SOURCE FOR TIMER2
PIR1(PERIPHERAL INTERRUPT FLAG REGISTER 1) CONTAINS
TMR21F FLAG
T2CON(TIMER2 CONTROL) REGISTER
TIMER3 PROGRAMMING
• TIMER3 IS 16-BIT TIMER THAT CAN BE USED BOTH AS TIMER
AND COUNTER
• ITS 16-BIT REGISTER IS SPLIT INTO TWO BYTES REFERRED TO AS
TMR3L AND TMR3H
• TIMER3 CAN BE PROGRAMMED IN 16-BIT MODE ONLY AND
DOESN’T SUPPORT 8-BIT MODE
• TIMER3 HAS PRESCALER OPTIONS OF 1:1,1:2,1:4 AND 1:8
• TIMER3 FLAG (TMR31F) BIT GOES HIGH WHEN TMR3H:TMR3L
OVERFLOWS FROM FFFF TO 0000H
PIR2(PERIPHERAL INTERRUPT FLAG REGISTER 2) CONTAINS
TMR31F FLAG
T3CON(TIMER3 CONTROL) REGISTER
CONCLUSION
• THE PIC18 CAN HAVE UPTO 4 OR MORE TIMERS/COUNTERS
DEPENDING ON FAMILY MEMBERS
• TIMERS: GENERATE TIME DELAYS(USING CRYSTAL)
• COUNTERS: EVENT COUNTER(USING PULSE OUTSIDE)
• TIMERS ARE ACCESSED AS TWO 8-BIT REGISTERS, TMRLx and TMRHx
• CAN BE USED AS 8-BIT OR 16-BIT
• EACH TIMER HAS ITS OWN TIMER CONTROL REGISTER

More Related Content

What's hot

8051 timer and counter 1
8051 timer and counter 18051 timer and counter 1
8051 timer and counter 1DominicHendry
 
Pulse width modulation (PWM)
Pulse width modulation (PWM)Pulse width modulation (PWM)
Pulse width modulation (PWM)amar pandey
 
Memory & I/O interfacing
Memory & I/O  interfacingMemory & I/O  interfacing
Memory & I/O interfacingdeval patel
 
PIC 16F877A by PARTHIBAN. S.
PIC 16F877A   by PARTHIBAN. S.PIC 16F877A   by PARTHIBAN. S.
PIC 16F877A by PARTHIBAN. S.parthi_arjun
 
8051 Assembly Language Programming
8051 Assembly Language Programming8051 Assembly Language Programming
8051 Assembly Language ProgrammingRavikumar Tiwari
 
PIC MICROCONTROLLERS -CLASS NOTES
PIC MICROCONTROLLERS -CLASS NOTESPIC MICROCONTROLLERS -CLASS NOTES
PIC MICROCONTROLLERS -CLASS NOTESDr.YNM
 
RTC Interfacing and Programming
RTC Interfacing and ProgrammingRTC Interfacing and Programming
RTC Interfacing and ProgrammingDevashish Raval
 
8085 addressing modes
8085 addressing modes8085 addressing modes
8085 addressing modesVijay Kumar
 
I/O port programming in 8051
I/O port programming in 8051I/O port programming in 8051
I/O port programming in 8051ssuser3a47cb
 
Kertas Kerja (PLC)
Kertas Kerja (PLC)Kertas Kerja (PLC)
Kertas Kerja (PLC)juan_fjfn
 
Programmable array logic
Programmable array logicProgrammable array logic
Programmable array logicGaditek
 
8051 Microcontroller ppt
8051 Microcontroller ppt8051 Microcontroller ppt
8051 Microcontroller pptRahul Kumar
 
Architecture and pin diagram of 8085
Architecture and pin diagram of 8085Architecture and pin diagram of 8085
Architecture and pin diagram of 8085Suchismita Paul
 

What's hot (20)

Counters
CountersCounters
Counters
 
fungsi-komponen dalam litar
fungsi-komponen dalam litarfungsi-komponen dalam litar
fungsi-komponen dalam litar
 
8051 timer and counter 1
8051 timer and counter 18051 timer and counter 1
8051 timer and counter 1
 
Pulse width modulation (PWM)
Pulse width modulation (PWM)Pulse width modulation (PWM)
Pulse width modulation (PWM)
 
Architecture of 8085
Architecture of  8085Architecture of  8085
Architecture of 8085
 
Memory & I/O interfacing
Memory & I/O  interfacingMemory & I/O  interfacing
Memory & I/O interfacing
 
PIC 16F877A by PARTHIBAN. S.
PIC 16F877A   by PARTHIBAN. S.PIC 16F877A   by PARTHIBAN. S.
PIC 16F877A by PARTHIBAN. S.
 
8051 Assembly Language Programming
8051 Assembly Language Programming8051 Assembly Language Programming
8051 Assembly Language Programming
 
PIC MICROCONTROLLERS -CLASS NOTES
PIC MICROCONTROLLERS -CLASS NOTESPIC MICROCONTROLLERS -CLASS NOTES
PIC MICROCONTROLLERS -CLASS NOTES
 
RTC Interfacing and Programming
RTC Interfacing and ProgrammingRTC Interfacing and Programming
RTC Interfacing and Programming
 
8085 addressing modes
8085 addressing modes8085 addressing modes
8085 addressing modes
 
I/O port programming in 8051
I/O port programming in 8051I/O port programming in 8051
I/O port programming in 8051
 
PLDs
PLDsPLDs
PLDs
 
8051 timer counter
8051 timer counter8051 timer counter
8051 timer counter
 
Kertas Kerja (PLC)
Kertas Kerja (PLC)Kertas Kerja (PLC)
Kertas Kerja (PLC)
 
VHDL Part 4
VHDL Part 4VHDL Part 4
VHDL Part 4
 
Interrupts in 8051
Interrupts in 8051Interrupts in 8051
Interrupts in 8051
 
Programmable array logic
Programmable array logicProgrammable array logic
Programmable array logic
 
8051 Microcontroller ppt
8051 Microcontroller ppt8051 Microcontroller ppt
8051 Microcontroller ppt
 
Architecture and pin diagram of 8085
Architecture and pin diagram of 8085Architecture and pin diagram of 8085
Architecture and pin diagram of 8085
 

Similar to PIC18 TIMER PROGRAMMING IN ASSEMBLY AND C

Timer counter in arm7(lpc2148)
Timer counter in arm7(lpc2148)Timer counter in arm7(lpc2148)
Timer counter in arm7(lpc2148)Aarav Soni
 
timer counter (1).pptx
timer counter (1).pptxtimer counter (1).pptx
timer counter (1).pptxSujalKumar73
 
PIC timer programming
PIC timer programmingPIC timer programming
PIC timer programmingAkash Puri
 
PIC-Chapter_10.pptx
PIC-Chapter_10.pptxPIC-Chapter_10.pptx
PIC-Chapter_10.pptxAliBzeih7
 
lecture 12 counter_microcontroller2.ppt
lecture 12 counter_microcontroller2.pptlecture 12 counter_microcontroller2.ppt
lecture 12 counter_microcontroller2.pptHebaEng
 
Timer And Counter in 8051 Microcontroller
Timer And Counter in 8051 MicrocontrollerTimer And Counter in 8051 Microcontroller
Timer And Counter in 8051 MicrocontrollerJay Makwana
 
Microcontroller 8051 introduction
Microcontroller 8051 introductionMicrocontroller 8051 introduction
Microcontroller 8051 introductionEngr umar
 
UNIT 5 Interfacing and Mixed Signal Controller.pptx
UNIT 5 Interfacing and Mixed Signal Controller.pptxUNIT 5 Interfacing and Mixed Signal Controller.pptx
UNIT 5 Interfacing and Mixed Signal Controller.pptxGowrishankar C
 

Similar to PIC18 TIMER PROGRAMMING IN ASSEMBLY AND C (20)

AVRTIMER.pptx
AVRTIMER.pptxAVRTIMER.pptx
AVRTIMER.pptx
 
8051e
8051e8051e
8051e
 
TIMERS.pptx
TIMERS.pptxTIMERS.pptx
TIMERS.pptx
 
Timer counter in arm7(lpc2148)
Timer counter in arm7(lpc2148)Timer counter in arm7(lpc2148)
Timer counter in arm7(lpc2148)
 
timer counter (1).pptx
timer counter (1).pptxtimer counter (1).pptx
timer counter (1).pptx
 
PIC timer programming
PIC timer programmingPIC timer programming
PIC timer programming
 
PIC-Chapter_10.pptx
PIC-Chapter_10.pptxPIC-Chapter_10.pptx
PIC-Chapter_10.pptx
 
lecture 12 counter_microcontroller2.ppt
lecture 12 counter_microcontroller2.pptlecture 12 counter_microcontroller2.ppt
lecture 12 counter_microcontroller2.ppt
 
8051 timers--2
   8051 timers--2   8051 timers--2
8051 timers--2
 
Timers of 8051
Timers of 8051Timers of 8051
Timers of 8051
 
Timer And Counter in 8051 Microcontroller
Timer And Counter in 8051 MicrocontrollerTimer And Counter in 8051 Microcontroller
Timer And Counter in 8051 Microcontroller
 
Microcontroller 8051 introduction
Microcontroller 8051 introductionMicrocontroller 8051 introduction
Microcontroller 8051 introduction
 
Timers
TimersTimers
Timers
 
8051 ch9
8051 ch98051 ch9
8051 ch9
 
Timers
TimersTimers
Timers
 
UNIT 5.pptx
UNIT 5.pptxUNIT 5.pptx
UNIT 5.pptx
 
UNIT-5.ppt
UNIT-5.pptUNIT-5.ppt
UNIT-5.ppt
 
Timers in Arduino
Timers in ArduinoTimers in Arduino
Timers in Arduino
 
UNIT 5 Interfacing and Mixed Signal Controller.pptx
UNIT 5 Interfacing and Mixed Signal Controller.pptxUNIT 5 Interfacing and Mixed Signal Controller.pptx
UNIT 5 Interfacing and Mixed Signal Controller.pptx
 
Timing & Control.pptx
Timing & Control.pptxTiming & Control.pptx
Timing & Control.pptx
 

Recently uploaded

VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx959SahilShah
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .Satyam Kumar
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2RajaP95
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxk795866
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEroselinkalist12
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 

Recently uploaded (20)

VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
 
POWER SYSTEMS-1 Complete notes examples
POWER SYSTEMS-1 Complete notes  examplesPOWER SYSTEMS-1 Complete notes  examples
POWER SYSTEMS-1 Complete notes examples
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptx
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 

PIC18 TIMER PROGRAMMING IN ASSEMBLY AND C

  • 2. INTRODUCTION • PIC18 FAMILY HAS 2 TO 5 TIMERS DEPENDING ON FAMILY MEMBER • THEY ARE TIMERS 0,1,2,3 AND 4 • THESE ARE USED TO GENERATE TIME DELAY OR USED AS COUNTERS TO COUNT EVENTS HAPPENING OUTSIDE THESE MICRO DELAYS • MANY OF THE PIC18 TIMERS ARE 16 BITS WIDE BECAUSE PIC18 HAS 8-BIT ARCHITECHTURE EACH 16-BIT TIMER IS ACCESSED AS TWO SEPARATE REGISTERS OF LOW BYTE AND HIGH BYTE • EACH TIMER ALSO HAS CONTROL REGISTER FOR SETTING MODES OF OPERATION
  • 3. TIMER AS COUNTER AND DELAY GENERATOR • EVERY TIMER NEEDS A CLOCK PULSE • IF IT IS INTERNAL CLOCK SOURCE THEN ONE FORTH OF FREQUENCY OF CRYSTAL OSCILLATOR ON OSC1 AND OSC2 PINS IS FED INTO TIMER • THERFORE IT IS USED FOR TIME DELAY GENERATION AND FOR THAT REASON IS CALLED A TIMER • WHEN AN EXTERNAL CLOCK IS CHOSEN WE FEED PULSES THROUGH ONE OF PIC18’S PINS THIS IS CALLED AS COUNTER
  • 4. TIMER 0 REGISTERS AND PROGRAMMING • TIMER 0 CAN BE USED AS 8-BIT OR 16-BIT TIMER • THE 16 BIT TIMER IS ACCESSED AS LOW BYTE AND HIGH BYTE • THE LOW BYTE TIMER IS CALLED TMR0L AND HIGH BYTE REGISTER IS REFERRED TO AS TMR0H • THESE REGISTERS CAN BE ACCESSED LIKE ANY OTHER SPECIAL FUNCTION REGISTERS • FOR EXAMPLE “MOVWF TMR0L”
  • 5. TIMER0 HIGH AND LOW REGISTERS
  • 6. T0CON(TIMER0 CONTROL) REGISTER • EACH TIMER HAS A CONTROL REGISTER TO SET VARIOUS TIMER OPERATION MODES • T0CON IS AN 8-BIT REGISTEER USED FOR CONTROL OF TIMER 0 • THE BITS FOR T0CON ARE SHOWN IN NEXT SLIDE
  • 7.
  • 8. T0CS(TIMER0 CLOCK SOURCE) • THIS BIT IN CONTROL REGISTER IS USED TO DECIDE WHETHER CLOCK SOURCE IS INTERNAL OR EXTERNAL • IF T0CS=0 THEN FOSC/4 IS USED AS CLOCK SOURCE WHERE THE TIMERS ARE USED FOR TIME DELAY GENERATION • IF T0CS=1 THE CLOCK SOURCE IS EXTERNAL AND COMES FROM RA4/T0CKI WHICH IS PIN6 ON PIC1818F4580/4520 • WHEN CLOCK SOURCE COMES FROM AN EXTERNAL SOURCE TIMER IS AN EVEN COUNTER
  • 9. FIND VALUE OF T0CON IF WE WANT TO PROGRAM TIMER0 IN 16-BIT MODE NO PRE-SCALER USE PIC18’S FOSC/4 CRYSTAL OSCILLATOR FOR CLOCK SOURCE, INCREMENT ON POSITIVE EDGE
  • 10. FIND VALUE OF T0CON IF WE WANT TO PROGRAM TIMER0 IN 16-BIT MODE NO PRE-SCALER USE PIC18’S FOSC/4 CRYSTAL OSCILLATOR FOR CLOCK SOURCE, INCREMENT ON POSITIVE EDGE T0CON=0000 1000
  • 11. INTCON(INTERRUPT CONTROL REGISTER) CONTAINS TMR01F FLAG • TMR01F BIT IS PART OF INTERRUPT CONTROL REGISTER WHEN TIMER REACHES ITS MAXIMUM VALUE OF ‘FFFF H’ IT ROLLS OVER TO ‘0000 H’ AND TMR01F IS SET TO 1
  • 13. 16-BIT TIMER PROGRAMMING FOLLOWING ARE OPERATIONS AND CHARACTERISTICS OF 16-BIT MODE: 1. IT IS A 16-BIT TIMER THERFORE IT ALLOWS VALUES OF 0000 TO FFFFH TO BE LOADED INTO TMR0H AND TMR0L 2. AFTER THEY ARE LOADED WITH A 16-BIT INITIAL VALUE, THE TIMER MUST BE STARTED.THIS IS DONE BY “BSF T0CON,TMR0ON” FOR TIMER0 3. AFTER TIMER IS STARTED IT STARTS TO COUNT UP.IT COUNTS UP UNTIL IT REACHES ITS LIMIT OF FFFFH.WHEN IT ROLLS OVER FROM FFFFH TO 0000H, IT SETS HIGH A FLAG BIT CALLED TMR01F.THIS TIMER FLAG CAN BE MONITORED.WHEN THI TIMER FLAG IS RAISED ONE OPTION WOULD BE TO STOP THE TIMER 4. AFTER TIMER REACHES ITS LIMIT AND ROLLS OVER,IN ORDER TO REPEAT THE PROCESS TMR0H AND TMR0L MUST BE LOADED WITH ORIGINAL VALUE,AND THE TMR01F FLAG MUST BE RESET TO 0 FOR NEXT ROUND
  • 14. STEPS TO PROGRAM TIMER0 IN 16-BIT MODE TO GENERATE TIME DELAY USING TIMER0 MODE 16 THE FOLLOWING STEPS ARE TAKEN: • LOAD THE VALUE INTO T0CON REGISTER INDICATING WHICH MODE(8 OR 16 BIT) IS TO BE USED AND THE SELECTED PRE-SCALER OPTION • LOAD REGISTER TMR0H FOLLOWED BY TMR0L WITH INITIAL COUNT VALUES • START TIMER WITH INSTRUCTION “BSF T0CON,TMR0ON” • KEEP MONITORING TIMER FLAG TO SEE IF IT IS RAISED.GET OUT OF THE LOOP WHEN TMR01F BECOMES HIGH • STOP TIMER WITH INSTRUCTION “BCF T0CON,TMR0ON” • CLEAR THE TMR0F FLAG FOR THE NEXT ROUND • NOW AGAIN LOAD TMR0H FOLLOWED BY TMR0L WITH INITIAL COUNT VALUES AND REPEAT THE STEPS • WE CANNOT LOAD TMR0H FIRST BECAUSE THE VALUE OF TMR0H IS KEPT IN TEMPORARY REGISTER AND WRITTEN TO TMR0H WHEN TMR0L IS LOADED.THIS WILL PREVENT ANY ERROR IN COUNTING IF TMR0ON FLAG IS SET HIGH
  • 15. FINDING VALUES TO BE LOADED INTO TIMER ASSUMING XTAL=10MHZ AND NO PRESCALER VALUES : 1. DIVIDE THE DESIRED TIME DELAY BY 0.4 𝜇𝑠𝑒𝑐 2. PERFORM 65536-N WHERE N IS DECIMAL VALUE OF WHAT WE GOT IN STEP 1 3. CONVERT THE RESULT INTO HEX AND LOAD THE HIGHER INTO HIGHER BITS AND LOWER VALUE INTO LOWER BITS
  • 16. PRESCALER AND GENERATING TIME DELAY • SIZE OF TIME DELAY DEPENDS ON TWO FACTORS: 1)CRYSTAL FREQUENCY 2)TIMERS 16-BIT REGISTER BOTH OF THEM CANNOT BE CONTROLLED BY PIC18 PROGRAMMER • IF THE LARGEST DELAY ACHIEVED BY THE TIMER USING TMR0L AND TMROH IS NOT ENOUGH THEN WE USE PRESCALER OPTION IN T0CON REGISTER TO INCREASE THE DELAY Y REDUCING THE PERIOD • THE PRESCALER OPTION ALLOWS US TO DIVIDE INSTRUCTION CLOCK BY A FACTOR OF 2 TO 256 • WITH PRESCALER BIT ENABLED WE CAN DIVIDE THE INSTRUCTION CLOCK BY 4 BEFORE IT IS FED INTO TIMER0 • LOWER 3 BITS OF T0CON REGISTER GIVES THE OPTIONS OF THE NUMBERS WE CAN DIVIDE BY WHERE THE LOWEST NUMBER IS 2 AND HIGHEST NUMBER IS 256
  • 17. 8-BIT MODE PROGRAMMING OF TIMER0 • IN 8-BIT MODE TIMER ALLOWS ONLY VALUES FROM 00 TO FFH TO BE LOADED INTO TMR0L • AFTER TIMER IS STARTED IT STARTS TO COUNT UP BY INCREMENTING TMR0L REGISTER • IT COUNTS UP UNTIL IT REACHES LIMIT FFH • WHEN IT ROLLS OVER FROM FFH TO 00H IT SETS HIGH TMR01F
  • 18. STEPS TO PROGRAM 8-BIT MODE OF TIMER0 1. LOAD T0CON VALUE REGISTER INDICATING 8-BIT MODE IS SELECTED 2. LOAD TMR0L REGISTERS WITH INITIAL COUNT VALUE 3. START THE TIMER 4. KEEP MONITORING TIMER FLAG (TMR01F) TO SEE IF IT IS RAISED.GET OUT OF THE LOOP WHEN TMR01F BECOMES HIGH 5. STOP TIMER WITH INSTRUCTION “BCF T0CON,TMR0ON” 6. CLEAR TMR01F FLAG FOR NEXT ROUND 7. GO BACK TO STEP2 TO LOAD TMR0L AGAIN 8. WHEN USING THE 8-BIT MODE TMR0L REGISTER IS LOADED AND TMR0H HAS A ZERO VALUE DURING COUNT UP
  • 19. ASSEMBLERS AND NEGATIVE VALUES • WHEN TIMER IS IN 8-BIT MODE WE CAN LET ASSEMBLER CALCULATE VALUE FOR TMR0H • EXAMPLE: MOVLW, -D’100’ IN THIS INSTRUCTION THE ASSEMBLER WILL CALCULATE - 100=9C AND MAKE WREG =9C IN HEX
  • 20.
  • 21. TIMER1 PROGRAMMING • IT IS A 16-BIT TIMER AND ITS 16-BIT REGISTER IS SPLIT INTO 2 BYTES TMR1L AND TMR1H • TIMER BIT CAN BE PROGRAMMED IN 16-BIT MODE ONLY • TIMER 1 ALSO HAS TICON(TIMER1 CONTROL) REGISTER IN ADDITION TO TMR1F(TIMER1 INTERRUPT FLAG) • TMR1F FLAG BIT GOES HIGH WHEN TMR1H:TMR1L OVERFLOWS FROM FFFFH TO 0000H • TIMERQ ALSO HAS PRESCALER OPTIONS BUT IT ONLY SUPPORTS FACTORS OF 1:1,1:2,1:4,1:8
  • 22.
  • 23. PIR1(INTERRUPT CONTROL REGISTER 1) CONTAINS TMR1F FLAG
  • 24. COUNTER PROGRAMMING • TIMERS CAN ALSO BE USED AS COUNTERS TO COUNT EVENTS HAPPENING OUTSIDE PIC18 • WHEN TIMER IS USED AS COUNTER IT IS A PULSE OUTSIDE PIC18 THAT INCREMENTS TH,TL REGISTERS • IN COUNTER MODE THE REGISTERS SUCH AS TMR0H,TMR0L AND T0CON ARE SAME AS FOR THE TIMERS DISCUSSED PREVIOUSLY
  • 25. T0CS BIT IN T0CON REGISTER • USED TO COUNT EVENTS OUTSIDE PIC • INCREMENTS TMR0H AND TMR0L REGISTERS • T0CS IN T0CON REGISTER DETERMINES CLOCK SOURCE • IF T0CS = 1, TIMER IS USED AS COUNTER • COUNTS UP AS PULSES ARE FED FROM PIN RA4 (T0CKI) • If TMR1CS=1, TIMER1 COUNTS UP AS CLOCK PULSES ARE FED INTO PIN RC0
  • 26. USING EXTERNAL CRYSTAL FOR TIMER1 CLOCK TIMER1 COMES WITH TWO OPTIONS, 1. CLOCK FED INTO T1CKI T1OSCEN=0 2. CLOCK FROM A CRYSTAL CONNECTED TO T1OSI-T1OSO (additional) • T1OSCEN=1 • 32 kHz CRYSTAL IS CONNECTED • USED FOR SAVING POWER DURING SLEEP MODE  DOESNOT DISABLE TIMER1 WHILE THE MAIN CRYSTAL IS SHUT DOWN EXTERNAL SOURCE INTERNALSOURCE
  • 27. ACCESSING TIMER REGISTERS IN C • IN C118 WE CAN ACCESS TIMER REGISTERS SUCH AS TMR0H,TMR0L AND T0CON DIRECTLY USING PIC18FXXX.H HEADER FILE • IN ADDITION TO CRYSTAL FREQUENCY AND PRESCALER FACTOR THE THIRD FACTOR IN DELAY CALCULATIONS IS C COMPILER • VARIOUS C COMPILERS GENERATE DIFFERENT HEX CODE SIZES
  • 28. TIMER2 PROGRAMMING • TIMER2 IS 8-BIT TIMER • 8-BIT REGISTER OF TIMER2 IS CALLED TMR2 • TIMER2 ALSO HAS 8-BIT REGISTER CALLED PERIOD REGISTER(PR2) • WE CAN SET A FIXED VALUE TO PR2 AND TIMER2 WILL INCREMENT FROM 00 TO PR2 • THEN THE EQUAL SIGNAL WILL RAISE TMR21F FLAG AND RESET TMR2 TO 00 • CLOCK SOURCE FOR TIMER 2 IS FOSC/4 WITH OPTIONS OF BOTH PRESCALER AND POSTSCALER • IT CANNOT BE USED AS COUNTER AS THERE IS NO EXTERNAL CLOCK SOURCE FOR TIMER2
  • 29. PIR1(PERIPHERAL INTERRUPT FLAG REGISTER 1) CONTAINS TMR21F FLAG
  • 31. TIMER3 PROGRAMMING • TIMER3 IS 16-BIT TIMER THAT CAN BE USED BOTH AS TIMER AND COUNTER • ITS 16-BIT REGISTER IS SPLIT INTO TWO BYTES REFERRED TO AS TMR3L AND TMR3H • TIMER3 CAN BE PROGRAMMED IN 16-BIT MODE ONLY AND DOESN’T SUPPORT 8-BIT MODE • TIMER3 HAS PRESCALER OPTIONS OF 1:1,1:2,1:4 AND 1:8 • TIMER3 FLAG (TMR31F) BIT GOES HIGH WHEN TMR3H:TMR3L OVERFLOWS FROM FFFF TO 0000H
  • 32. PIR2(PERIPHERAL INTERRUPT FLAG REGISTER 2) CONTAINS TMR31F FLAG
  • 34. CONCLUSION • THE PIC18 CAN HAVE UPTO 4 OR MORE TIMERS/COUNTERS DEPENDING ON FAMILY MEMBERS • TIMERS: GENERATE TIME DELAYS(USING CRYSTAL) • COUNTERS: EVENT COUNTER(USING PULSE OUTSIDE) • TIMERS ARE ACCESSED AS TWO 8-BIT REGISTERS, TMRLx and TMRHx • CAN BE USED AS 8-BIT OR 16-BIT • EACH TIMER HAS ITS OWN TIMER CONTROL REGISTER