SlideShare uma empresa Scribd logo
1 de 52
Baixar para ler offline
8051 Timers / Counters
  José Borges ,Patrício Lima, Marcos Brito, Marek Mastyło, Jakub Nyk




                           GROUP 4
                          DEEC –MPIN
                             FEUP
                           April, 2010




                                                       April 10
Outlines


1.   Introduction
2.   8051 Timer/Counter
3.   Operating Modes
4.   Timer Vs Counter
5.   T/C and Interruptions
6.   Application Examples
7.   Conclusion



                             April 10        2
Introduction


 General Function:
  •   Calculating the amounts of time between
      events
  •   Counting events
  •   Generating baud rate for serial port




                                  April 10       3
Introduction

 Applications:
  •       Communication
      ̵     Generating rectangular pulses (signal
            modulation)
      ̵     Watchdog timers
  •       Manufacturing Industry
      -     Counting objects
      -     Measuring intervals
  •       Etc


                                           April 10       4
Introduction


 8051 contains two 16-bits timers
  •   T0
  •   T1
 Two different types of timer:
  •   Interval timer
  •   Counter
 Maximum value is 65536
 Initial state can be set by user


                                     April 10       5
Timer/Counter
                                     Special Function Registers


   Timers/Counters can be operated by user with
    special function registers
   T0 and T1 share two SFRs: TMOD and TCON
   Each timer has also two registers dedicated to
    itself: TH0/TL0 and TH1/TL1




                                       April 10            6
Timer/Counter
                          Special Function Registers-TMOD


 TMOD (Timer Mode Register) is a non-bit-
  addressable, 8-bit register:




                          Reference:
                          http://fivedots.coe.psu.ac.th/~cj/asm/slides/mcs51/timer2.pdf




                                                April 10                                  7
Timer/Counter
                                 Special Function Registers-TMOD


 Lower 4 bits are for Timer0
 Upper 4 bits are for Timer1
 GATE bit is used for choice of internal or
  external control:
  •   GATE=0 is for internal control, start and stop are
      controlled by software
  •   GATE=1 is for external control, start and stop are
      controlled by software and and external source
 C/T bit decides about timer type: interval timer
  or counter


                                         April 10           8
Timer/Counter
                         Special Function Registers-TMOD


 M0 and M1 bits are used to set timer
  mode (the same for Timer0 and Timer1)
 8051 delivers 4 timer modes:
    M1    M0   Mode     Description
     0     0   Mode 0     13-bit timer

     0     1   Mode 1     16-bit timer

     1     0   Mode 2   8-bit auto reload

     1     1   Mode 3   Split timer mode



                                   April 10         9
Timer/Counter
                             Special Function Registers-TCON


 TCON (Timer Control Register) is a bit-
  addressable, 8-bit register where 4 upper bits
  are responsible for timers/counters:




                            Reference:

                            http://fivedots.coe.psu.ac.th/~cj/asm/slides/mcs51/timer2.pdf




                                                     April 10                               10
Timer/Counter
                            Special Function Registers-TCON


 TR0 and TR1 are set by user to turn on (or turn
  off) Timer0 or Timer1:
  •   TR=0 – turn off
  •   TR=1 – turn on
 TF0 and TF1 are Timer Flags informing about
  overflow (then TF=1 and interrupt could be
  activate if it’s set, should be cleaned)




                                    April 10          11
Timer/Counter
                                            Special Function Registers-TCON


 Equivalent instructions for TCON:
  •   Timer0:
      -   SETB   TR0   =   SETB    TCON.4
      -   CLR    TR0   =   CLR     TCON.4
      -   SETB   TF0   =   SETB    TCON.5
      -   CLR    TF0   =   CLR     TCON.5
  •   Timer1
      -   SETB   TR1   =   SETB   TCON.6
      -   CLR    TR1   =   CLR    TCON.6
      -   SETB   TF1   =   SETB   TCON.7
      -   CLR    TF1   =   CLR    TCON.7




                                                    April 10          12
Timer/Counter
                                 Special Function Registers-TL/TH


   TH0 and TL0 are upper and lower registers of Timer0
   TH1 and TL1 are upper and lower registers of Timer1
   They help to set initial value of timer/counter




                                         April 10           13
Timer Vs Counter
                                                      Differences


 Timer
  •   Counts machine cycles
 Counters:
  •   Counts events as a result of falling slope of external
      input signal put on a pin
 Timer mode and counter mode are relative to
  machine cycle




                                          April 10          14
Timer Vs Counter
                                                    Differences


 Timer
  •   Input from internal system clock
 Counters:
  •   Show the number of events on registers
  •   External input from T0 input pin (P3.4) for Counter
      0
  •   External input from T1 input pin (P3.5) for Counter
      1
  •   External input from Tx input pin.
  •   We use Tx to denote T0 or T1


                                         April 10           15
Timer Modes
                                                Mode 0


 Mode 0 is identical for Timer0 and Timer1
 Timers work as 13-bit counters, an interrupt is
  generated when counter overflows. It takes
  8192 input pulses to generate the next
  interrupt
 Timers use 8 bits of THi and 5 lower bits of TLi
 After timer overflows TFi (Timer Flag in TCON)
  is set, an interrupt occurs

        Where i=0,1



                                    April 10         16
Timer Modes
                                                                                       Mode 0


 Structure of Timer1 in mode 0:




                           Reference:
                            Tomasz Starecki; Mikrokontrolery 8051 w praktyce, Twarda
                           oprawa, 2002. ISBN: 83-910067-4-3, Pic. 3.1




                                                  April 10                               17
Timer Modes
                                                    Mode 1


 Similar to mode 0
 Timers use 8 bits of THi and 8 bits of TLi
 Timer is a 16-bit counter, it takes 65536 input
  pulses to generate the next interrupt
 Improved capacity




                                    April 10          18
Timer Modes
                                                                                      Mode 1


 Structure of Timer0 in mode 1:




                           Reference:
                           Tomasz Starecki; Mikrokontrolery 8051 w praktyce, Twarda
                           oprawa, 2002. ISBN: 83-910067-4-3, Pic. 3.1




                                                  April 10                              19
Timer Modes
                                                 Mode 2


 Timers are 8-bit auto reload
 Timer is operated by TLi, when TLi overflows
  TFi is set
 TLi is auto reloaded with Thi value when
  overflows
 THi is never modified when TLi overflows




                                  April 10         20
Timer Modes
                                                                                  Mode 2


 Structure of Timer1 in mode 2:




                           Reference:
                           Tomasz Starecki; Mikrokontrolery 8051 w praktyce, Twarda
                           oprawa, 2002. ISBN: 83-910067-4-3, Pic. 3.1




                                               April 10                               21
Timer Modes
                                                        Mode 3


   Split-timer mode
   Timer1 can be put in other modes
   Timer0 operates TL0 and TH0 as two separate 8-bit
    timers/counters
   TL0 works as a 8-bit timer/counter
   TH0 is a 8-bit timer which counts machine cycles
   Timer0 is operated with TF0 and TR0, TF1 and TR1
    are not used




                                        April 10          22
Timer Modes
                                                                                      Mode 3


 Structure of Timer1 in mode 3:




                           Reference:
                           Tomasz Starecki; Mikrokontrolery 8051 w praktyce, Twarda
                           oprawa, 2002. ISBN: 83-910067-4-3, Pic. 3.1




                                                  April 10                              23
Timer Modes
                                                       Example


   Choose mode 1 for Timer:
           MOV TMOD,#01H
   Set the value of TH0 and TL0:
           MOV TH0,#FFH
           MOV TL0,#FCH
   Clear Timer flag and start the timer:
           CLR TF0
           SETB TR0




                                            April 10      24
Timer Modes
                                                                                                  Example

   The 8051 starts to count up by incrementing the TH0-TL0
            TH0-TL0= FFFCH,FFFDH,FFFEH,FFFFH,0000H




                                     Reference:
                                     http://www.iau-neyshabur.ac.ir/nokhodchian/5-timer(part%201).ppt




                                                            April 10                                    25
How does a timer count?


 Timer/Counter counts up
 It is incremented by microcontroller
  •   Timer is incremented every machine cycle
  •   Coutner is incremented when event is detected




                                     April 10         26
How does a timer count?


 A single machine cycle consists of 12
  crystal pulses, thus timer will count:



        11 059 000 / 12 = 921 583 per second




                                 April 10      27
How does a timer count?


 Example: How many times will the timer be
  incremented in 0.05 seconds?

             0.05 * 921 583 = 46 079.15 times


 Accuracy is not perfect




                                   April 10     28
How does a timer count?


 Timer/Counter counts up
 It is incremented by microcontroller
  •   Timer is incremented every machine cycle
  •   Coutner is incremented when event is detected




                                     April 10         29
How does a timer count?


 A single machine cycle consists of 12
  crystal pulses, thus timer will count:



   11 059 000 / 12 = 921 583 per second




                                  April 10   30
How does a timer count?


 Example: How many times will the timer be
  incremented in 0.05 seconds?

  0.05 * 921 583 = 46 079.15 times


 Accuracy is not perfect




                                     April 10   31
Timer/ Counter
                                           and Interruptions

 Timer/ Counter can be configured to start an
interruption routine




                             Reference:
                             Philips Semiconductors – Family 8051




                                                     April 10       32
How a timer
                          interruption occurs
 Some Special Registers are used
  • ET0 and ET1 from Interruption Enable
    Register
  • PT0 and T1 from Interruption Priority
    Register
  • TF0 and TF1 from T/C Control Register




April 10                         April 10   33
                                             33
How a timer
                                 interruption occurs
 Timer/counter interruption process :
       • ET bit must be set

       • TR bit must be set to run the timer

       • The interruption is initialized when overflow
           occurs




April 10                                  April 10       34
                                                          34
How a timer
                             interruption occurs

 In this point the Timer overflow Flag is cleared
  by hardware




                              Reference:
                              Philips Semiconductors – Family 8051




                                                      April 10       35
Software overflow
                                       detection
 How the overflow can be detected if
  interruption is not enable?
  • In some cases ,it’s not necessary to enable an
    interruption
  • In this case the overflow is detected by software
  • A routine is necessary to check constantly the
    overflow occurrence




                                       April 10         36
Software overflow
                                 detection

• The overflow occurs when the TF is high

• TF must be cleared to by software to turn ON
  the timer




                                April 10         37
Software overflow
                                             detection
 Delay routine example without enable
  interruption:
                 cseg at 0000h
                 jmp main
                 …
                 main:
                 …
                 …
                       setb tr0
                       acall delay50ms
                 …
                 …
                 delay50ms:
                       mov TL0,#low(46080)
                       mov TH0,#high(46080)
                       clr TF0
                       jnb TF0,$
                       ret




                                              April 10   38
Application Example
                                              Digital Clock


 Circuit schematic
  •   Interface with LCD
   display and serial port.




                                   April 10           39
Application Example
                                              Digital Clock


 Interruption configuration
  •   IE
                                   mov IE,#10010010b

                                   Or
                                   setb EA
                                   setb ES
                                   setb ET0




                               April 10                40
Application Example
                                              Digital Clock


 Interruption configuration
  •   TCON
                                   orl TCON,#00101000b

                                   Or
                                   setb TR0
                                   setb TR1




                               April 10                  41
Application Example
                                              Digital Clock


 Interruption configuration
  •   TMOD
                                   mov TMOD,#00100001b

                                   Not bit adressable




                               April 10                  42
Application Example
                                              Digital Clock


 Interruption configuration
  •   SCON
                                   mov SCON,#01110000b

                                   Or
                                   setb SM1
                                   setb SM2
                                   setb REN




                               April 10                  43
Application Example
                                                                  Digital Clock


 Interruption configuration
  •   Serial port baud rate
                                                       mov TH1,#0xFD
  •   TH1 = TL1=253                                    mov TH1, TL1



                            11.0592𝑀𝐻𝑧
      𝑏𝑎𝑢𝑑 𝑟𝑎𝑡𝑒 = 2 ∗
                        32 ∗ 12 ∗ 256 − 253
               𝑏𝑎𝑢𝑑 𝑟𝑎𝑡𝑒 = 19200




                                                   April 10               44
Application Example
                                               Digital Clock


 Interruption configuration
  Problem :
  •   8051 only count up to 65536
      us

  How we count 1 second ?




                                    April 10           45
Application Example
                                                        Digital Clock


 Interruption configuration
                                          TIMER   equ    65536-46080
  Solution :
                                          mov TL0,#high(TIMER)
  •    Count 20*50ms                      mov TH0,#low(TIMER)



                     12
      50000𝑢𝑠 =            ∗ 𝐶𝑖𝑐𝑙𝑒𝑠
                11.0592𝑀ℎ𝑧
              𝑐𝑖𝑐𝑙𝑒𝑠 = 46080




                                      April 10                   46
Application Example
                                               Digital Clock


 Interruption configuration

      mov   IE,#10010010b
      mov   TMOD,#00100001b
      orl   TCON,#00101000b
      mov   SCON,#01110000b
      mov   TH1,#0xFD
      mov   TH1, TL1
      mov   TL0,#high(TIMER)
      mov   TH0,#low(TIMER)




                                    April 10           47
Application Example
                                                                                            Digital Clock


                                                       DIGITAL CLOCK




                                                         VDD
                                                         VSS

                                                         VEE


                                                               RW
                                                               RS



                                                                       D0
                                                                       D1
                                                                       D2
                                                                       D3
                                                                       D4
                                                                       D5
                                                                       D6
                                                                       D7
                                                               E
                                                        1
                                                        2
                                                        3

                                                               4
                                                               5
                                                               6

                                                                     7
                                                                     8
                                                                     9
                                                                    10
                                                                    11
                                                                    12
                                                                    13
                                                                    14
                   mov           IE,#10010010b  GND
                                                VDD



                   mov           TMOD,#00100001b
                                          RXD

                                           TXD

C1
33p
             C2
             33p
                   orl           TCON,#00101000b
                                           RTS

                                           CTS
X1
                   mov
                    U1
                   19
                         XTAL1
                                 SCON,#01110000b
                                    AD[0..7]

11.0592MHz
                   mov
                   18
                         XTAL2   TH1,#0xFD
                                     A[8..15]


                                                  30

                   mov           TH1, TL1
                                       ALE
                                                  31
                                        EA
                   9                              29
                         RST          PSEN



                   mov
                   1
                   2
                         P1.0
                                 TL0,#high(TIMER)
                                   P3.0/RXD
                                                  10
                                                  11
                         P1.1      P3.1/TXD
                   3                              12

                   mov           TH0,#low(TIMER)
                         P1.2      P3.2/INT0
                   4                              13
                         P1.3      P3.3/INT1
                   5                              14
                         P1.4        P3.4/T0
                   6                              15
                         P1.5        P3.5/T1
                   7                              16
                         P1.6       P3.6/WR
                   8                              17
                         P1.7       P3.7/RD


                        8051




                                                                                 April 10           48
Application Example
                        Counter w/ Ext. Enabler



                  +1




            0
            1
    1
0
        0
        1
0
1




                       April 10           49
Application Example
 Leds equ P1
 overflow equ R0
                                                    Counter w/ Ext. Enabler
cseg at 00h
      jmp main
cseg at 1bh                                       Initialization

      jmp Timer1       ;Counter/ Timer 1 Int.
cseg at 40h
Timer1:
                                                                            Counter
      inc overflow      ;Do a Task                Leds = TL1                Interrupt
                                                                               TF1
      reti
main:
                                                                   Return
      mov IE,#88H       ;Enables the Timer1
      mov TMOD,#0E0h    ;Gate =1, Counter selected, Mode 2                  Do a Task

      mov TH1,#00h      ;With 00h it counts 255 times
      mov TL1,#00h
      setb TR1          ;Begin to count
Led:
      mov Leds,TL1     ; shows the value with Leds of the actual count
      jmp Led
      end



                                                  April 10                              50
Application Example
                                                                 Digital Clock

 Reference:
  •   http://www.8052.com/tuttimer.phtml

  •   http://www.8052.com/tutlcd2.php

  •   http://www.8051projects.net/lcd-
      interfacing/introduction.php

  •   ISIS Proteus -
      http://www.labcenter.co.uk/download/prodemo_d
      ownload.cfm#professional

  •   Philips Semiconductors - 80C51 Family




                                                      April 10           51
Thank you!




             April 10   52

Mais conteúdo relacionado

Mais procurados

8085 microprocessor ramesh gaonkar
8085 microprocessor   ramesh gaonkar8085 microprocessor   ramesh gaonkar
8085 microprocessor ramesh gaonkarSAQUIB AHMAD
 
Addressing modes of 8051
Addressing modes of 8051Addressing modes of 8051
Addressing modes of 8051SARITHA REDDY
 
Microcontroller-8051.ppt
Microcontroller-8051.pptMicrocontroller-8051.ppt
Microcontroller-8051.pptDr.YNM
 
8051 microcontroller
8051 microcontroller8051 microcontroller
8051 microcontrollerJhemi22
 
Flag register 8086 assignment
Flag register 8086 assignmentFlag register 8086 assignment
Flag register 8086 assignmentZia3130
 
8051 Microcontroller ppt
8051 Microcontroller ppt8051 Microcontroller ppt
8051 Microcontroller pptRahul Kumar
 
Architecture of 8051 microcontroller))
Architecture of 8051 microcontroller))Architecture of 8051 microcontroller))
Architecture of 8051 microcontroller))Ganesh Ram
 
3.programmable interrupt controller 8259
3.programmable interrupt controller 82593.programmable interrupt controller 8259
3.programmable interrupt controller 8259MdFazleRabbi18
 
Interfacing with peripherals: analog to digital converters and digital to ana...
Interfacing with peripherals: analog to digital converters and digital to ana...Interfacing with peripherals: analog to digital converters and digital to ana...
Interfacing with peripherals: analog to digital converters and digital to ana...NimeshSingh27
 
Memory organization of 8051
Memory organization of 8051Memory organization of 8051
Memory organization of 8051Muthu Manickam
 
8086 pin diagram description
8086 pin diagram description8086 pin diagram description
8086 pin diagram descriptionAkhil Singal
 

Mais procurados (20)

Interrupt 8085
Interrupt 8085Interrupt 8085
Interrupt 8085
 
8085 microprocessor ramesh gaonkar
8085 microprocessor   ramesh gaonkar8085 microprocessor   ramesh gaonkar
8085 microprocessor ramesh gaonkar
 
Addressing modes of 8051
Addressing modes of 8051Addressing modes of 8051
Addressing modes of 8051
 
ARM Architecture
ARM ArchitectureARM Architecture
ARM Architecture
 
dual-port RAM (DPRAM)
dual-port RAM (DPRAM)dual-port RAM (DPRAM)
dual-port RAM (DPRAM)
 
Microcontroller-8051.ppt
Microcontroller-8051.pptMicrocontroller-8051.ppt
Microcontroller-8051.ppt
 
8051 microcontroller
8051 microcontroller8051 microcontroller
8051 microcontroller
 
Adc interfacing
Adc interfacingAdc interfacing
Adc interfacing
 
Flag register 8086 assignment
Flag register 8086 assignmentFlag register 8086 assignment
Flag register 8086 assignment
 
8051 Microcontroller ppt
8051 Microcontroller ppt8051 Microcontroller ppt
8051 Microcontroller ppt
 
Architecture of 8051 microcontroller))
Architecture of 8051 microcontroller))Architecture of 8051 microcontroller))
Architecture of 8051 microcontroller))
 
3.programmable interrupt controller 8259
3.programmable interrupt controller 82593.programmable interrupt controller 8259
3.programmable interrupt controller 8259
 
Serial Communication in 8051
Serial Communication in 8051Serial Communication in 8051
Serial Communication in 8051
 
Interfacing with peripherals: analog to digital converters and digital to ana...
Interfacing with peripherals: analog to digital converters and digital to ana...Interfacing with peripherals: analog to digital converters and digital to ana...
Interfacing with peripherals: analog to digital converters and digital to ana...
 
Memory organization of 8051
Memory organization of 8051Memory organization of 8051
Memory organization of 8051
 
Interrupts of microprocessor 8085
Interrupts of microprocessor  8085Interrupts of microprocessor  8085
Interrupts of microprocessor 8085
 
8086 pin diagram description
8086 pin diagram description8086 pin diagram description
8086 pin diagram description
 
Memory interfacing of microcontroller 8051
Memory interfacing of microcontroller 8051Memory interfacing of microcontroller 8051
Memory interfacing of microcontroller 8051
 
Intel 8051 - pin description
Intel 8051  - pin descriptionIntel 8051  - pin description
Intel 8051 - pin description
 
ARM- Programmer's Model
ARM- Programmer's ModelARM- Programmer's Model
ARM- Programmer's Model
 

Semelhante a 8051 Timers / Counters

Semelhante a 8051 Timers / Counters (20)

Timers
TimersTimers
Timers
 
TIMERS.pptx
TIMERS.pptxTIMERS.pptx
TIMERS.pptx
 
Timer And Counter in 8051 Microcontroller
Timer And Counter in 8051 MicrocontrollerTimer And Counter in 8051 Microcontroller
Timer And Counter in 8051 Microcontroller
 
8051 timers
8051 timers8051 timers
8051 timers
 
8051 ch9
8051 ch98051 ch9
8051 ch9
 
lecture 12 counter_microcontroller2.ppt
lecture 12 counter_microcontroller2.pptlecture 12 counter_microcontroller2.ppt
lecture 12 counter_microcontroller2.ppt
 
8051 timer counter
8051 timer counter8051 timer counter
8051 timer counter
 
Programming 8051 Timers
Programming 8051 Timers Programming 8051 Timers
Programming 8051 Timers
 
8051 timer
8051 timer8051 timer
8051 timer
 
timer counter (1).pptx
timer counter (1).pptxtimer counter (1).pptx
timer counter (1).pptx
 
8051e
8051e8051e
8051e
 
8051 Microcontroller Timer
8051 Microcontroller Timer8051 Microcontroller Timer
8051 Microcontroller Timer
 
Timers of 8051
Timers of 8051Timers of 8051
Timers of 8051
 
8051 timers--2
   8051 timers--2   8051 timers--2
8051 timers--2
 
Timers
TimersTimers
Timers
 
AVRTIMER.pptx
AVRTIMER.pptxAVRTIMER.pptx
AVRTIMER.pptx
 
8051 Timers
8051 Timers8051 Timers
8051 Timers
 
4.Timer_1.ppt
4.Timer_1.ppt4.Timer_1.ppt
4.Timer_1.ppt
 
Micro c lab7(timers)
Micro c lab7(timers)Micro c lab7(timers)
Micro c lab7(timers)
 
PIC timer programming
PIC timer programmingPIC timer programming
PIC timer programming
 

Último

Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxMaryGraceBautista27
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxnelietumpap1
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxGrade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxChelloAnnAsuncion2
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 

Último (20)

Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptx
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptx
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxGrade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 

8051 Timers / Counters

  • 1. 8051 Timers / Counters José Borges ,Patrício Lima, Marcos Brito, Marek Mastyło, Jakub Nyk GROUP 4 DEEC –MPIN FEUP April, 2010 April 10
  • 2. Outlines 1. Introduction 2. 8051 Timer/Counter 3. Operating Modes 4. Timer Vs Counter 5. T/C and Interruptions 6. Application Examples 7. Conclusion April 10 2
  • 3. Introduction  General Function: • Calculating the amounts of time between events • Counting events • Generating baud rate for serial port April 10 3
  • 4. Introduction  Applications: • Communication ̵ Generating rectangular pulses (signal modulation) ̵ Watchdog timers • Manufacturing Industry - Counting objects - Measuring intervals • Etc April 10 4
  • 5. Introduction  8051 contains two 16-bits timers • T0 • T1  Two different types of timer: • Interval timer • Counter  Maximum value is 65536  Initial state can be set by user April 10 5
  • 6. Timer/Counter Special Function Registers  Timers/Counters can be operated by user with special function registers  T0 and T1 share two SFRs: TMOD and TCON  Each timer has also two registers dedicated to itself: TH0/TL0 and TH1/TL1 April 10 6
  • 7. Timer/Counter Special Function Registers-TMOD  TMOD (Timer Mode Register) is a non-bit- addressable, 8-bit register: Reference: http://fivedots.coe.psu.ac.th/~cj/asm/slides/mcs51/timer2.pdf April 10 7
  • 8. Timer/Counter Special Function Registers-TMOD  Lower 4 bits are for Timer0  Upper 4 bits are for Timer1  GATE bit is used for choice of internal or external control: • GATE=0 is for internal control, start and stop are controlled by software • GATE=1 is for external control, start and stop are controlled by software and and external source  C/T bit decides about timer type: interval timer or counter April 10 8
  • 9. Timer/Counter Special Function Registers-TMOD  M0 and M1 bits are used to set timer mode (the same for Timer0 and Timer1)  8051 delivers 4 timer modes: M1 M0 Mode Description 0 0 Mode 0 13-bit timer 0 1 Mode 1 16-bit timer 1 0 Mode 2 8-bit auto reload 1 1 Mode 3 Split timer mode April 10 9
  • 10. Timer/Counter Special Function Registers-TCON  TCON (Timer Control Register) is a bit- addressable, 8-bit register where 4 upper bits are responsible for timers/counters: Reference: http://fivedots.coe.psu.ac.th/~cj/asm/slides/mcs51/timer2.pdf April 10 10
  • 11. Timer/Counter Special Function Registers-TCON  TR0 and TR1 are set by user to turn on (or turn off) Timer0 or Timer1: • TR=0 – turn off • TR=1 – turn on  TF0 and TF1 are Timer Flags informing about overflow (then TF=1 and interrupt could be activate if it’s set, should be cleaned) April 10 11
  • 12. Timer/Counter Special Function Registers-TCON  Equivalent instructions for TCON: • Timer0: - SETB TR0 = SETB TCON.4 - CLR TR0 = CLR TCON.4 - SETB TF0 = SETB TCON.5 - CLR TF0 = CLR TCON.5 • Timer1 - SETB TR1 = SETB TCON.6 - CLR TR1 = CLR TCON.6 - SETB TF1 = SETB TCON.7 - CLR TF1 = CLR TCON.7 April 10 12
  • 13. Timer/Counter Special Function Registers-TL/TH  TH0 and TL0 are upper and lower registers of Timer0  TH1 and TL1 are upper and lower registers of Timer1  They help to set initial value of timer/counter April 10 13
  • 14. Timer Vs Counter Differences  Timer • Counts machine cycles  Counters: • Counts events as a result of falling slope of external input signal put on a pin  Timer mode and counter mode are relative to machine cycle April 10 14
  • 15. Timer Vs Counter Differences  Timer • Input from internal system clock  Counters: • Show the number of events on registers • External input from T0 input pin (P3.4) for Counter 0 • External input from T1 input pin (P3.5) for Counter 1 • External input from Tx input pin. • We use Tx to denote T0 or T1 April 10 15
  • 16. Timer Modes Mode 0  Mode 0 is identical for Timer0 and Timer1  Timers work as 13-bit counters, an interrupt is generated when counter overflows. It takes 8192 input pulses to generate the next interrupt  Timers use 8 bits of THi and 5 lower bits of TLi  After timer overflows TFi (Timer Flag in TCON) is set, an interrupt occurs Where i=0,1 April 10 16
  • 17. Timer Modes Mode 0  Structure of Timer1 in mode 0: Reference: Tomasz Starecki; Mikrokontrolery 8051 w praktyce, Twarda oprawa, 2002. ISBN: 83-910067-4-3, Pic. 3.1 April 10 17
  • 18. Timer Modes Mode 1  Similar to mode 0  Timers use 8 bits of THi and 8 bits of TLi  Timer is a 16-bit counter, it takes 65536 input pulses to generate the next interrupt  Improved capacity April 10 18
  • 19. Timer Modes Mode 1  Structure of Timer0 in mode 1: Reference: Tomasz Starecki; Mikrokontrolery 8051 w praktyce, Twarda oprawa, 2002. ISBN: 83-910067-4-3, Pic. 3.1 April 10 19
  • 20. Timer Modes Mode 2  Timers are 8-bit auto reload  Timer is operated by TLi, when TLi overflows TFi is set  TLi is auto reloaded with Thi value when overflows  THi is never modified when TLi overflows April 10 20
  • 21. Timer Modes Mode 2  Structure of Timer1 in mode 2: Reference: Tomasz Starecki; Mikrokontrolery 8051 w praktyce, Twarda oprawa, 2002. ISBN: 83-910067-4-3, Pic. 3.1 April 10 21
  • 22. Timer Modes Mode 3  Split-timer mode  Timer1 can be put in other modes  Timer0 operates TL0 and TH0 as two separate 8-bit timers/counters  TL0 works as a 8-bit timer/counter  TH0 is a 8-bit timer which counts machine cycles  Timer0 is operated with TF0 and TR0, TF1 and TR1 are not used April 10 22
  • 23. Timer Modes Mode 3  Structure of Timer1 in mode 3: Reference: Tomasz Starecki; Mikrokontrolery 8051 w praktyce, Twarda oprawa, 2002. ISBN: 83-910067-4-3, Pic. 3.1 April 10 23
  • 24. Timer Modes Example  Choose mode 1 for Timer:  MOV TMOD,#01H  Set the value of TH0 and TL0:  MOV TH0,#FFH  MOV TL0,#FCH  Clear Timer flag and start the timer:  CLR TF0  SETB TR0 April 10 24
  • 25. Timer Modes Example  The 8051 starts to count up by incrementing the TH0-TL0  TH0-TL0= FFFCH,FFFDH,FFFEH,FFFFH,0000H Reference: http://www.iau-neyshabur.ac.ir/nokhodchian/5-timer(part%201).ppt April 10 25
  • 26. How does a timer count?  Timer/Counter counts up  It is incremented by microcontroller • Timer is incremented every machine cycle • Coutner is incremented when event is detected April 10 26
  • 27. How does a timer count?  A single machine cycle consists of 12 crystal pulses, thus timer will count: 11 059 000 / 12 = 921 583 per second April 10 27
  • 28. How does a timer count?  Example: How many times will the timer be incremented in 0.05 seconds? 0.05 * 921 583 = 46 079.15 times  Accuracy is not perfect April 10 28
  • 29. How does a timer count?  Timer/Counter counts up  It is incremented by microcontroller • Timer is incremented every machine cycle • Coutner is incremented when event is detected April 10 29
  • 30. How does a timer count?  A single machine cycle consists of 12 crystal pulses, thus timer will count: 11 059 000 / 12 = 921 583 per second April 10 30
  • 31. How does a timer count?  Example: How many times will the timer be incremented in 0.05 seconds? 0.05 * 921 583 = 46 079.15 times  Accuracy is not perfect April 10 31
  • 32. Timer/ Counter and Interruptions  Timer/ Counter can be configured to start an interruption routine Reference: Philips Semiconductors – Family 8051 April 10 32
  • 33. How a timer interruption occurs  Some Special Registers are used • ET0 and ET1 from Interruption Enable Register • PT0 and T1 from Interruption Priority Register • TF0 and TF1 from T/C Control Register April 10 April 10 33 33
  • 34. How a timer interruption occurs  Timer/counter interruption process : • ET bit must be set • TR bit must be set to run the timer • The interruption is initialized when overflow occurs April 10 April 10 34 34
  • 35. How a timer interruption occurs  In this point the Timer overflow Flag is cleared by hardware Reference: Philips Semiconductors – Family 8051 April 10 35
  • 36. Software overflow detection  How the overflow can be detected if interruption is not enable? • In some cases ,it’s not necessary to enable an interruption • In this case the overflow is detected by software • A routine is necessary to check constantly the overflow occurrence April 10 36
  • 37. Software overflow detection • The overflow occurs when the TF is high • TF must be cleared to by software to turn ON the timer April 10 37
  • 38. Software overflow detection  Delay routine example without enable interruption: cseg at 0000h jmp main … main: … … setb tr0 acall delay50ms … … delay50ms: mov TL0,#low(46080) mov TH0,#high(46080) clr TF0 jnb TF0,$ ret April 10 38
  • 39. Application Example Digital Clock  Circuit schematic • Interface with LCD display and serial port. April 10 39
  • 40. Application Example Digital Clock  Interruption configuration • IE mov IE,#10010010b Or setb EA setb ES setb ET0 April 10 40
  • 41. Application Example Digital Clock  Interruption configuration • TCON orl TCON,#00101000b Or setb TR0 setb TR1 April 10 41
  • 42. Application Example Digital Clock  Interruption configuration • TMOD mov TMOD,#00100001b Not bit adressable April 10 42
  • 43. Application Example Digital Clock  Interruption configuration • SCON mov SCON,#01110000b Or setb SM1 setb SM2 setb REN April 10 43
  • 44. Application Example Digital Clock  Interruption configuration • Serial port baud rate mov TH1,#0xFD • TH1 = TL1=253 mov TH1, TL1 11.0592𝑀𝐻𝑧 𝑏𝑎𝑢𝑑 𝑟𝑎𝑡𝑒 = 2 ∗ 32 ∗ 12 ∗ 256 − 253 𝑏𝑎𝑢𝑑 𝑟𝑎𝑡𝑒 = 19200 April 10 44
  • 45. Application Example Digital Clock  Interruption configuration Problem : • 8051 only count up to 65536 us How we count 1 second ? April 10 45
  • 46. Application Example Digital Clock  Interruption configuration TIMER equ 65536-46080 Solution : mov TL0,#high(TIMER) • Count 20*50ms mov TH0,#low(TIMER) 12 50000𝑢𝑠 = ∗ 𝐶𝑖𝑐𝑙𝑒𝑠 11.0592𝑀ℎ𝑧 𝑐𝑖𝑐𝑙𝑒𝑠 = 46080 April 10 46
  • 47. Application Example Digital Clock  Interruption configuration mov IE,#10010010b mov TMOD,#00100001b orl TCON,#00101000b mov SCON,#01110000b mov TH1,#0xFD mov TH1, TL1 mov TL0,#high(TIMER) mov TH0,#low(TIMER) April 10 47
  • 48. Application Example Digital Clock DIGITAL CLOCK VDD VSS VEE RW RS D0 D1 D2 D3 D4 D5 D6 D7 E 1 2 3 4 5 6 7 8 9 10 11 12 13 14 mov IE,#10010010b GND VDD mov TMOD,#00100001b RXD TXD C1 33p C2 33p orl TCON,#00101000b RTS CTS X1 mov U1 19 XTAL1 SCON,#01110000b AD[0..7] 11.0592MHz mov 18 XTAL2 TH1,#0xFD A[8..15] 30 mov TH1, TL1 ALE 31 EA 9 29 RST PSEN mov 1 2 P1.0 TL0,#high(TIMER) P3.0/RXD 10 11 P1.1 P3.1/TXD 3 12 mov TH0,#low(TIMER) P1.2 P3.2/INT0 4 13 P1.3 P3.3/INT1 5 14 P1.4 P3.4/T0 6 15 P1.5 P3.5/T1 7 16 P1.6 P3.6/WR 8 17 P1.7 P3.7/RD 8051 April 10 48
  • 49. Application Example Counter w/ Ext. Enabler +1 0 1 1 0 0 1 0 1 April 10 49
  • 50. Application Example Leds equ P1 overflow equ R0 Counter w/ Ext. Enabler cseg at 00h jmp main cseg at 1bh Initialization jmp Timer1 ;Counter/ Timer 1 Int. cseg at 40h Timer1: Counter inc overflow ;Do a Task Leds = TL1 Interrupt TF1 reti main: Return mov IE,#88H ;Enables the Timer1 mov TMOD,#0E0h ;Gate =1, Counter selected, Mode 2 Do a Task mov TH1,#00h ;With 00h it counts 255 times mov TL1,#00h setb TR1 ;Begin to count Led: mov Leds,TL1 ; shows the value with Leds of the actual count jmp Led end April 10 50
  • 51. Application Example Digital Clock  Reference: • http://www.8052.com/tuttimer.phtml • http://www.8052.com/tutlcd2.php • http://www.8051projects.net/lcd- interfacing/introduction.php • ISIS Proteus - http://www.labcenter.co.uk/download/prodemo_d ownload.cfm#professional • Philips Semiconductors - 80C51 Family April 10 51
  • 52. Thank you! April 10 52