sử dụng timer

Upload: nguyensycuong88

Post on 07-Apr-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/6/2019 s dng timer

    1/9

    EE2801-L23P01

    Using The PIC Timers

    EE2801 -- Lecture 23

  • 8/6/2019 s dng timer

    2/9

    EE2801-L23P02

    The PIC 16F874 Timers

    T h e r e a r e a t o t a l o f f o u r t i m e r s t h a t a r e a v a i l a b l e i n t h e P I C . T h e s e a r e :

    T h e W a t c h d o g t i m e r i s a s a f e t y d e v i c e . I t h a s i t s o w n i n d e p e n d e n t R C o s c i l l a t o r a n d , ,

    w h e n e n a b l e d i t t i m e s o u t a f t e r 7 t o 3 3 m s . I f i t i s a l l o w e d t o t i m e o u t , i t r e s e t s t h e P I C b y

    p e r f o r m i n g a w a t c h d o g t i m e r r e s e t .

    A n 8 - b i t c o u n t e r / t i m e r w h i c h c a n b e d r i v e n b y e i t h e r a n i n t e r n a l o r e x t e r n a l c l o c k . A

    p r e s c a l e r a l l o w s d i v i d i n g t h e i n p u t c l o c k u s i n g 8 s e l e c t a b l e d i v i s o r s . S o m e p a r t s o f T i m e r 0

    a r e s h a r e d w i t h t h e W a t c h d o g T i m e r .

    A 1 6 b i t c o u n t e r / t i m e r w i t h 4 s e l e c t a b l e p r e s c a l e r d i v i s o r s . T i m e r 1 c a n b e d r i v e n b y a n

    i n t e r n a l o r e x t e r n a l c l o c k a n d h a s t h e a b i l i t y t o s y n c h r o n i z e a n e x t e r n a l c l o c k t o t h e i n t e r n a l

    P I C c l o c k .

    A n 8 b i t c o u n t e r / t i m e r w i t h a p r e s c a l e r a n d a p o s t s c a l e r . T h e t i m e r r o l l o v e r p o i n t i s

    p r o g r a m m a b l e . T h i s t i m e r m a y b e u s e d t o d r i v e t h e b a u d c l o c k f o r s e r i a l o u t p u t .

    The Watchdog timer (WDT)

    Timer 0 (TMR0)

    Timer 1 (TMR1)

    Timer 2 (TMR2)

  • 8/6/2019 s dng timer

    3/9

    EE2801-L23P03

    Timer 0 And The WDT

    B y i n s p e c t i n g t h e b l o c k d i a g r a m o f T i m e r 0 , w e c a n s e e t h e f e a t u r e s t h a t a r e a v a i l a b l e . W e

    c a n u s e b o t h T i m e r 0 a n d t h e W a t c h d o g c o n c u r r e n t l y , b u t t h e r e a r e r e s t r i c t i o n s !

    OSC

  • 8/6/2019 s dng timer

    4/9

    EE2801-L23P04

    The Timer 1 Block Diagram

    T i m e r 1 p r o v i d e s a 1 6 - b i t r e g i s t e r f o r c r e a t i n g l a r g e r c o u n t s o r d i v i s o r s t h a n T i m e r 0 . T h e r e

    a r e s i m i l a r i t i e s b e t w e e n t h e b l o c k d i a g r a m s , b u t a s w e c a n s e e , t h e o p t i o n s a r e d i f f e r e n t f o r

    T i m e r 1 . A g a i n , w e c a n o n l y f i g u r e t h i s o u t f r o m t h e b l o c k d i a g r a m !

    (1)(2)

    (2)

  • 8/6/2019 s dng timer

    5/9

    EE2801-L23P05

    Timer 2 Characteristics

    Y o u s h o u l d b e s t a r t i n g t o s e e a t r e n d . A l l o f t h e s e t i m e r s p r o v i d e s i m i l a r f e a t u r e s w i t h

    s l i g h t l y d i f f e r e n t v a r i a t i o n s . A s y o u m i g h t e x p e c t , s e t t i n g u p a n y o f t h e s e t i m e r s i s v e r y

    s i m i l a r .

    Comparator

    TMR2Sets flag

    TMR2 reg

    output (1)

    Reset

    Postscaler

    Prescaler

    PR2 reg

    2

    FOSC/4

    1:1 1:16

    1:1, 1:4, 1:16

    EQ

    4

    bit TMR2IF

    to

    T2OUTPS3:T2OUTPS0

    T2CKPS1:T2CKPS0

  • 8/6/2019 s dng timer

    6/9

    The Timer 1 Control Register (T1CON)

    EE2801-L23P06

    E a c h t i m e r h a s a c o n t r o l r e g i s t e r t h a t i s u s e d t o s e t u p t h e b e h a v i o r o f t h e t i m e r . R e f e r r i n g

    t o t h e t i m e r b l o c k d i a g r a m , y o u c a n s e e v i s u a l l y w h a t p a t h s a r e b e i n g s e t w h e n y o u p u t

    v a l u e s i n t o a t i m e r c o n t r o l r e g i s t e r . I n a d d i t i o n t o t h e c o n t r o l r e g i s t e r , T i m e r 1 a l s o h a s a l o w

    a n d h i g h b y t e r e g i s t e r t o s e t t h e c o u n t ( T M R 1 H a n d T M R 1 L ) .

    T 1 C O N : T I M E R 1 C O N T R O L R E G I S T E R ( A D D R E S S 1 0 h )

    U - 0 U - 0 R / W - 0 R / W - 0 R / W - 0 R / W - 0 R / W - 0 R / W - 0

    T 1 C K P S 1 T 1 C K P S 0 T 1 O S C E N T 1 S Y N C T M R 1 C S T M R 1 O N

    R = R e a d a b l e b i t

    W = W r i t a b l e b i t

    U = U n i m p l e m e n t e d b i t ,

    r e a d a s 0

    - n = V a l u e a t P O R r e s e t

    b i t 7 b i t 0

    b i t 7 - 6 : U n i m p l e m e n t e d : R e a d a s ' 0 '

    b i t 5 - 4 : T 1 C K P S 1 : T 1 C K P S 0 : T i m e r 1 I n p u t C l o c k P r e s c a l e S e l e c t b i t s

    = 1 : 8 P r e s c a l e v a l u e

    = 1 : 4 P r e s c a l e v a l u e

    = 1 : 2 P r e s c a l e v a l u e

    = 1 : 1 P r e s c a l e v a l u e

    b i t 3 : T 1 O S C E N : T i m e r 1 O s c i l l a t o r E n a b l e C o n t r o l b i t

    = O s c i l l a t o r i s e n a b l e d

    = O s c i l l a t o r i s s h u t o f f ( T h e o s c i l l a t o r i n v e r t e r i s t u r n e d o f f t o e l i m i n a t e p o w e r d r a i n )

    b i t 2 : T 1 S Y N C

    : T i m e r 1 E x t e r n a l C l o c k I n p u t S y n c h r o n i z a t i o n C o n t r o l b i t

    T M R 1 C S = 1

    = D o n o t s y n c h r o n i z e e x t e r n a l c l o c k i n p u t

    = S y n c h r o n i z e e x t e r n a l c l o c k i n p u t

    T M R 1 C S = 0

    T h i s b i t i s i g n o r e d . T i m e r 1 u s e s t h e i n t e r n a l c l o c k w h e n T M R 1 C S = 0 .

    b i t 1 : T M R 1 C S : T i m e r 1 C l o c k S o u r c e S e l e c t b i t

    = E x t e r n a l c l o c k f r o m p i n R C 0 / T 1 O S O / T 1 C K I ( o n t h e r i s i n g e d g e )

    = I n t e r n a l c l o c k ( F O S C / 4 )

    b i t 0 : T M R 1 O N : T i m e r 1 O n b i t

    = E n a b l e s T i m e r 1

    = S t o p s T i m e r 1

  • 8/6/2019 s dng timer

    7/9

    EE2801-L23P07

    The Other Registers Associated With Timer 0

    F r o m t h e P I C d a t a s h e e t , w e a l s o c a n f i n d o u t e x a c t l y w h a t o t h e r r e g i s t e r s a r e a s s o c i a t e d

    w i t h t h e o p e r a t i o n o f T i m e r 1 ( w h i c h w e m i g h t h a v e t o w o r r y a b o u t ) :

    T A B L E 6 - 2 : R E G I S T E R S A S S O C I A T E D W I T H T I M E R 1 A S A T I M E R / C O U N T E R

    A d d r e s s N a m e B i t 7 B i t 6 B i t 5 B i t 4 B i t 3 B i t 2 B i t 1 B i t 0

    V a l u e o n :

    P O R ,

    B O R

    V a l u e o n

    a l l o t h e r

    r e s e t s

    0 B h , 8 B h ,

    1 0 B h ,

    1 8 B h

    I N T C O N G I E P E I E T 0 I E I N T E R B I E T 0 I F I N T F R B I F

    0 0 0 0 0 0 0 x 0 0 0 0 0 0 0 u

    0 C h P I R 1 P S P I F

    A D I F R C I F T X I F S S P I F C C P 1 I F T M R 2 I F T M R 1 I F

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    8 C h P I E 1 P S P I E

    A D I E R C I E T X I E S S P I E C C P 1 I E T M R 2 I E T M R 1 I E

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    0 E h T M R 1 L H o l d i n g r e g i s t e r f o r t h e L e a s t S i g n i f i c a n t B y t e o f t h e 1 6 - b i t T M R 1 r e g i s t e r

    x x x x x x x x u u u u u u u u

    0 F h T M R 1 H H o l d i n g r e g i s t e r f o r t h e M o s t S i g n i f i c a n t B y t e o f t h e 1 6 - b i t T M R 1 r e g i s t e r

    x x x x x x x x u u u u u u u u

    1 0 h T 1 C O N T 1 C K P S 1 T 1 C K P S 0 T 1 O S C E N T 1 S Y N C T M R 1 C S T M R 1 O N

    - - 0 0 0 0 0 0 - - u u u u u u

    L e g e n d :

    x

    = u n k n o w n ,

    u

    = u n c h a n g e d ,

    -

    = u n i m p l e m e n t e d r e a d a s ' 0 ' . S h a d e d c e l l s a r e n o t u s e d b y t h e T i m e r 1 m o d u l e .

    N o t e 1 : B i t s P S P I E a n d P S P I F a r e r e s e r v e d o n t h e P I C 1 6 F 8 7 3 / 8 7 4 ; a l w a y s m a i n t a i n t h e s e b i t s c l e a r .

  • 8/6/2019 s dng timer

    8/9

    EE2801-L23P08

    An Example Of Using Timer 1

    ; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    ; P I C e x a m p l e p r o g r a m t o s e t u p t i m e r 1 . T h i s r o u t i n e w i l l

    ; s e t t h e t i m e r t o c o u n t s e c o n d s ( a s s u m i n g a 4 M h z c l o c k f o r

    ; F o s c ) . T h e s e c o n d s a r e d i s p l a y e d i n b i n a r y o n t h e P o r t D

    ; L E D s .

    ;

    ; P r o f . W . M i c h a l s o n , E C E D e p t , W P I , F e b r u a r y 2 0 0 0

    ; t m r 1 . a s m ; V e r s i o n 1 . 0

    ; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    i n c l u d e p 1 6 f 8 7 7 . i n c

    c o u n t e q u 0 x 2 0 ; C o u n t e r v a r i a b l e

    o r g 0 x 0 0 0 ; S t a r t p r o g r a m a t a d d r e s s 0 0 0

    n o p ; R e q u i r e d f o r d e b u g g e r

    ; I n i t i a l i z e P O R T D t o b e a l l o u t p u t s .

    ;

    S t a r t b s f S T A T U S , R P 0 ; G o t o B A N K 1 b y s e t t i n g

    b c f S T A T U S , R P 1 ; R P 1 , R P 0 = 0 1 .

    c l r f T R I S D ; S e t P o r t D f o r o u t p u t .

    b c f S T A T U S , R P 0 ; G o b a c k t o b a n k 0 !

    c l r f P O R T D ; W r i t e 0 s t o P o r t D .

    c l r f c o u n t ; I n i t i a l i z e c o u n t t o 0 .

  • 8/6/2019 s dng timer

    9/9

    EE2801-L23P09

    An Example Of Using Timer 1 (Continued)

    ; S e t u p t i m e r 1

    b c f T 1 C O N , T M R 1 O N ; T u r n T i m e r 1 o f f .

    b s f T 1 C O N , T 1 C K P S 1 ; S e t p r e s c a l e r f o r d i v i d e

    b s f T 1 C O N , T 1 C K P S 0 ; b y 8 .

    b c f T 1 C O N , T 1 O S C E N ; D i s a b l e t h e R C o s c i l l a t o r .

    b c f T 1 C O N , T M R 1 C S ; U s e t h e F o s c / 4 s o u r c e .

    c l r f T M R 1 L ; S t a r t t i m e r a t 0 0 0 0 h

    c l r f T M R 1 H ;

    b s f T 1 C O N , T M R 1 O N ; S t a r t t h e t i m e r

    ; W a i t i n a l o o p u n t i l t h e t i m e r f i n i s h e s

    t i m e 1 b t f s s P I R 1 , 0 ; D i d t i m e r o v e r f l o w ?

    g o t o t i m e 1 ; W a i t i f n o t .

    ; T i m e r o v e r f l o w e d , i n c r e m e n t c o u n t e r a n d d i s p l a y

    b c f P I R 1 , 0 ; C l e a r t h e f l a g

    i n c f c o u n t , F ; B u m p t h e c o u n t e r

    m o v f c o u n t , W ; G e t t h e c o u n t

    m o v w f P O R T D ; S e n d t o P o r t D .

    b c f T 1 C O N , 0 ; T u r n t h e t i m e r o f f .

    m o v l w 8 0 h ; S t a r t t i m e r a t 8 0 0 0 h

    m o v w f T M R 1 H

    c l r f T M R 1 L

    b s f T 1 C O N , 0 ; T u r n t h e t i m e r o n .

    g o t o t i m e 1

    E n d