Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
8051 Timers / Counters  José Borges ,Patrício Lima, Marcos Brito, Marek Mastyło, Jakub Nyk                           GROUP...
Outlines1.   Introduction2.   8051 Timer/Counter3.   Operating Modes4.   Timer Vs Counter5.   T/C and Interruptions6.   Ap...
Introduction General Function:  •   Calculating the amounts of time between      events  •   Counting events  •   Generat...
Introduction Applications:  •       Communication      ̵     Generating rectangular pulses (signal            modulation)...
Introduction 8051 contains two 16-bits timers  •   T0  •   T1 Two different types of timer:  •   Interval timer  •   Cou...
Timer/Counter                                     Special Function Registers   Timers/Counters can be operated by user wi...
Timer/Counter                          Special Function Registers-TMOD TMOD (Timer Mode Register) is a non-bit-  addressa...
Timer/Counter                                 Special Function Registers-TMOD Lower 4 bits are for Timer0 Upper 4 bits a...
Timer/Counter                         Special Function Registers-TMOD M0 and M1 bits are used to set timer  mode (the sam...
Timer/Counter                             Special Function Registers-TCON TCON (Timer Control Register) is a bit-  addres...
Timer/Counter                            Special Function Registers-TCON TR0 and TR1 are set by user to turn on (or turn ...
Timer/Counter                                            Special Function Registers-TCON Equivalent instructions for TCON...
Timer/Counter                                 Special Function Registers-TL/TH   TH0 and TL0 are upper and lower register...
Timer Vs Counter                                                      Differences Timer  •   Counts machine cycles Count...
Timer Vs Counter                                                    Differences Timer  •   Input from internal system clo...
Timer Modes                                                Mode 0 Mode 0 is identical for Timer0 and Timer1 Timers work ...
Timer Modes                                                                                       Mode 0 Structure of Tim...
Timer Modes                                                    Mode 1 Similar to mode 0 Timers use 8 bits of THi and 8 b...
Timer Modes                                                                                      Mode 1 Structure of Time...
Timer Modes                                                 Mode 2 Timers are 8-bit auto reload Timer is operated by TLi...
Timer Modes                                                                                  Mode 2 Structure of Timer1 i...
Timer Modes                                                        Mode 3   Split-timer mode   Timer1 can be put in othe...
Timer Modes                                                                                      Mode 3 Structure of Time...
Timer Modes                                                       Example   Choose mode 1 for Timer:           MOV TMOD,...
Timer Modes                                                                                                  Example   Th...
How does a timer count? Timer/Counter counts up It is incremented by microcontroller  •   Timer is incremented every mac...
How does a timer count? A single machine cycle consists of 12  crystal pulses, thus timer will count:        11 059 000 /...
How does a timer count? Example: How many times will the timer be  incremented in 0.05 seconds?             0.05 * 921 58...
How does a timer count? Timer/Counter counts up It is incremented by microcontroller  •   Timer is incremented every mac...
How does a timer count? A single machine cycle consists of 12  crystal pulses, thus timer will count:   11 059 000 / 12 =...
How does a timer count? Example: How many times will the timer be  incremented in 0.05 seconds?  0.05 * 921 583 = 46 079....
Timer/ Counter                                           and Interruptions Timer/ Counter can be configured to start anin...
How a timer                          interruption occurs Some Special Registers are used  • ET0 and ET1 from Interruption...
How a timer                                 interruption occurs Timer/counter interruption process :       • ET bit must ...
How a timer                             interruption occurs In this point the Timer overflow Flag is cleared  by hardware...
Software overflow                                       detection How the overflow can be detected if  interruption is no...
Software overflow                                 detection• The overflow occurs when the TF is high• TF must be cleared t...
Software overflow                                             detection Delay routine example without enable  interruptio...
Application Example                                              Digital Clock Circuit schematic  •   Interface with LCD ...
Application Example                                              Digital Clock Interruption configuration  •   IE        ...
Application Example                                              Digital Clock Interruption configuration  •   TCON      ...
Application Example                                              Digital Clock Interruption configuration  •   TMOD      ...
Application Example                                              Digital Clock Interruption configuration  •   SCON      ...
Application Example                                                                  Digital Clock Interruption configura...
Application Example                                               Digital Clock Interruption configuration  Problem :  • ...
Application Example                                                        Digital Clock Interruption configuration      ...
Application Example                                               Digital Clock Interruption configuration      mov   IE,...
Application Example                                                                                            Digital Clo...
Application Example                        Counter w/ Ext. Enabler                  +1            0            1    10    ...
Application Example Leds equ P1 overflow equ R0                                                    Counter w/ Ext. Enabler...
Application Example                                                                 Digital Clock Reference:  •   http://...
Thank you!             April 10   52
Upcoming SlideShare
Loading in …5
×

8051 Timers / Counters

38,909 views

Published on

Published in: Education

8051 Timers / Counters

  1. 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. 2. Outlines1. Introduction2. 8051 Timer/Counter3. Operating Modes4. Timer Vs Counter5. T/C and Interruptions6. Application Examples7. Conclusion April 10 2
  3. 3. Introduction General Function: • Calculating the amounts of time between events • Counting events • Generating baud rate for serial port April 10 3
  4. 4. Introduction Applications: • Communication ̵ Generating rectangular pulses (signal modulation) ̵ Watchdog timers • Manufacturing Industry - Counting objects - Measuring intervals • Etc April 10 4
  5. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 32. Timer/ Counter and Interruptions Timer/ Counter can be configured to start aninterruption routine Reference: Philips Semiconductors – Family 8051 April 10 32
  33. 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 RegisterApril 10 April 10 33 33
  34. 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 occursApril 10 April 10 34 34
  35. 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. 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. 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. 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. 39. Application Example Digital Clock Circuit schematic • Interface with LCD display and serial port. April 10 39
  40. 40. Application Example Digital Clock Interruption configuration • IE mov IE,#10010010b Or setb EA setb ES setb ET0 April 10 40
  41. 41. Application Example Digital Clock Interruption configuration • TCON orl TCON,#00101000b Or setb TR0 setb TR1 April 10 41
  42. 42. Application Example Digital Clock Interruption configuration • TMOD mov TMOD,#00100001b Not bit adressable April 10 42
  43. 43. Application Example Digital Clock Interruption configuration • SCON mov SCON,#01110000b Or setb SM1 setb SM2 setb REN April 10 43
  44. 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. 45. Application Example Digital Clock Interruption configuration Problem : • 8051 only count up to 65536 us How we count 1 second ? April 10 45
  46. 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. 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. 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 TXDC133p C2 33p orl TCON,#00101000b RTS CTSX1 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. 49. Application Example Counter w/ Ext. Enabler +1 0 1 10 0 101 April 10 49
  50. 50. Application Example Leds equ P1 overflow equ R0 Counter w/ Ext. Enablercseg at 00h jmp maincseg at 1bh Initialization jmp Timer1 ;Counter/ Timer 1 Int.cseg at 40hTimer1: Counter inc overflow ;Do a Task Leds = TL1 Interrupt TF1 retimain: 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 countLed: mov Leds,TL1 ; shows the value with Leds of the actual count jmp Led end April 10 50
  51. 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. 52. Thank you! April 10 52

×