AT89S51 마이크로 프로세서 타이머 /카운터 (1)

AT89S51 마이크로프로세서 내부에는 2개의 16비트 타이머/카운터가 있어 시간 주기를 측정 또는

외부핀을 이용하여 입력되는 펄스를 측정할수 있으며 트리거 되는 펄스들을 카운트 할 수 있습니다.

또 주기적으로 인터럽트를 발생시킬 때에도 사용됩니다.

8051 에서 타이머/카운터란 1머신사이클(시스템클록을 1/12것)을 세는 것을 타이머, 외부핀

(T0 P3.4)(T1 P3.5) 핀에 입력되는 클럭을 세는것을 카운터라합니다.ㅣ 

타이머/카운터는 SFR의 8비트*2 =>TH(8비트), TL(8비트) 가 T0와  T1에서 각각 사용되며

이 레지스터들은 클록이 입력될 때마다 UP(+1)카운터를 합니다.

이 TH,TL 레지스터가 오버플로(0xff =>0x00)으로 되면 TCON레지스터에 있는 TF(timer control)이 "1"

이 됩니다. 

※ 타이머/카운터 1은 시리얼 포트의 비동기 통신 모드에 있어 보레이트 발생기로 동작할수 있습니다. 

타이머의 사용방법은 ?

=> TMOD(timer mode register)와 TCON(timer control register)의 설정에 의해 결정됩니다.

AT89S51의 타이머/카운터에서 사용되는 핀

 사용되는 핀

      기능 

 T0 (P3.4)

     타이머/카운터 0의 카운터 입력

 T1 (P3.5)

     타이머/카운터 1의 카운터 입력

사용되는 레지스터에 대해 알아봅니다.

1. TMOD(Timer Mode)

상위 4비트는 타이머/카운터 1, 하위 4비트는 타이머/카운터 0 을 제어합니다.

비트 설명 :  GATE :외부인터럽트 단자(T0,T1)핀을 이용하여 정지/동작 제어

                 C/T(timer/countor select) 타이머로 사용할것인지 카운터로 사용할 것인지 모드 결정

                 M1,M0 : 타이머/카운터의 동작모드 결정                

2.TCON(Timer Control)

상위의 4비트만 사용하며 하위 4비트는 인터럽드에 사용됩니다.

비트설명 :TF1,TF0 (timer overflow flag) 타이머 카운터의  TH,TL 이 오버플로 되면 "1"이 됩니다.

              TR1, TR0 (timer run control) 타이머 카운터의 동작(TR1=1), 정지(TR1=0)를 제어합니다.

3. 시정수 레지스터 TH(timer control high), TL(timer control low  

이들 각각의 레지스터들은 모드에 따라 각각 사용되기도 하고 쌍으로 사용되기도 합니다.

AT89s51의 타이머/카운터는 클럭이 입력될 때마다 +1씩 증가하는 업카운터입니다. 

Posted by it is