8051 마이크로 컨트롤러 및 해당 애플리케이션의 타이머 및 카운터

문제를 제거하기 위해 도구를 사용해보십시오





많은 마이크로 컨트롤러 애플리케이션 펄스 트레인의 주파수와 같은 외부 이벤트를 계산하고 컴퓨터 작업 사이에 정확한 내부 시간 지연을 생성해야합니다. 이 두 작업은 모두 소프트웨어 기술로 구현할 수 있지만 계산을위한 소프트웨어 루프와 타이밍은 정확한 결과를 제공하지 않으며 오히려 더 중요한 기능이 수행되지 않습니다. 이러한 문제를 방지하기 위해 마이크로 컨트롤러의 타이머와 카운터는 간단하고 저렴한 애플리케이션을위한 더 나은 옵션입니다. 이 타이머와 카운터는 다음과 같이 사용됩니다. 8051 마이크로 컨트롤러의 인터럽트 .

두 개의 16 비트 타이머와 카운터가 있습니다. 8051 마이크로 컨트롤러 : 타이머 0과 타이머 1. 두 타이머는 모두 하위 바이트는 TL에 저장되고 상위 바이트는 TH에 저장되는 16 비트 레지스터로 구성됩니다. 타이머는 카운터로 사용할 수있을뿐만 아니라 카운터에 대한 클럭 펄스의 소스에 따라 달라지는 타이밍 작업에도 사용할 수 있습니다.




타이머 및 카운터

타이머 및 카운터

8051 마이크로 컨트롤러의 카운터 및 타이머에는 활성화 및 구성에 사용되는 TMOD (타이머 모드 레지스터) 및 TCON (타이머 제어 레지스터)의 두 가지 특수 기능 레지스터가 포함되어 있습니다. 타이머 및 카운터 .



타이머 모드 제어 (TMOD) : TMOD는 타이머 또는 카운터 및 타이머 모드를 선택하는 데 사용되는 8 비트 레지스터입니다. 하위 4 비트는 타이머 0 또는 카운터 0의 제어 동작에 사용되고 나머지 4 비트는 타이머 1 또는 카운터 1의 제어 동작에 사용됩니다.이 레지스터는 SFR 레지스터에 있으며 SFR 레지스터의 주소는 89 번째입니다.

타이머 모드 제어 (TMOD)

타이머 모드 제어 (TMOD)

문: 게이트 비트가 '0'으로 설정되어 있으면 같은 방식으로 '소프트웨어'타이머를 시작하고 중지 할 수 있습니다. 게이트가 '1'로 설정되면 하드웨어 타이머를 수행 할 수 있습니다.

C / T : C / T 비트가 '1'이면 카운터 모드로 작동하며 C +를 설정할 때도 유사합니다.
= / T 비트가 '0'이면 타이머 모드로 동작합니다.


모드 선택 비트 : M1 및 M0은 타이머 작동을 선택하는 데 사용되는 모드 선택 비트입니다. 타이머를 작동하는 4 가지 모드가 있습니다.

모드 0 : 이것은 타이머 작동이 '8192'펄스로 완료됨을 의미하는 13 비트 모드입니다.

모드 1 : 이것은 16 비트 모드로, 타이머 작동이 '65535'의 최대 클럭 펄스로 완료됨을 의미합니다.

모드 2 : 이 모드는 8 비트 자동 다시로드 모드로, 타이머 작동이 '256'클럭 펄스만으로 완료됨을 의미합니다.

모드 3 : 이 모드는 분할 타이머 모드로 T0에 값을로드하고 자동으로 T1을 시작합니다.

모드 선택 비트

모드 선택 비트

모드 선택 8051의 타이머 및 카운터 값

타이머 및 카운터의 모드 선택 값

타이머 및 카운터의 모드 선택 값

타이머 제어 레지스터 (TCON) : TCON은 마이크로 컨트롤러의 카운터 및 타이머 작동을 제어하는 ​​데 사용되는 또 다른 레지스터입니다. 이것은 4 개의 상위 비트가 타이머와 카운터를 담당하고 하위 비트가 인터럽트를 담당하는 8 비트 레지스터입니다.

타이머 제어 레지스터 (TCON)

타이머 제어 레지스터 (TCON)

TF1 : TF1은‘timer1’플래그 비트를 나타냅니다. 타이머 1에서 시간 지연을 계산할 때마다 TH1과 TL1은 자동으로 최대 값 인 'FFFF'에 도달합니다.

예 : while (TF1 == 1)

TF1 = 1 일 때마다 플래그 비트를 지우고 타이머를 중지합니다.

TR1 : TR1은 타이머 1 시작 또는 중지 비트를 나타냅니다. 이 타이머 시작은 소프트웨어 명령 또는 하드웨어 방법을 통해 수행 할 수 있습니다.

예 : gate = 0 (소프트웨어 명령을 통해 타이머 1 시작)
TR1 = 1 (시작 타이머)

TF0 : TF0은 'timer0'플래그 비트를 나타냅니다. 타이머 1에서 시간 지연을 계산할 때마다 TH0과 TL0은 자동으로 최대 값 인 'FFFF'에 도달합니다.

예 : while (TF0 == 1)
TF0 = 1 일 때마다 플래그 비트를 지우고 타이머를 중지합니다.

TR0 : TR0은 'timer0'시작 또는 중지 비트를 나타냅니다.이 타이머 시작은 소프트웨어 명령 또는 하드웨어 방법을 통해 수행 할 수 있습니다.

예 : gate = 0 (소프트웨어 명령을 통해 타이머 1 시작)
TR0 = 1 (시작 타이머)

8051 마이크로 컨트롤러에 대한 시간 지연 계산

8051 마이크로 컨트롤러는 11.0592MHz 주파수에서 작동합니다.

주파수 11.0592MHz = 12 pules

1 클럭 펄스 = 11.0592MHz / 12

F = 0.921MHz

시간 지연 = 1 / F

T = 1 / 0.92MHz

T = 1.080506 us ( '1'주기 동안)

1000us = 1MS

1000ms = 1 초

지연 프로그램 계산 절차

1. 먼저 다른 모드에서‘Timer0’과‘Timer1’에 대한 TMOD 레지스터 값을로드해야합니다. 예를 들어 mode1에서 timer1을 작동하려면“TMOD = 0x10”으로 설정해야합니다.

2. 모드 1에서 타이머를 작동 할 때마다 타이머는 65535의 최대 펄스를 사용합니다. 그런 다음 계산 된 시간 지연 펄스를 최대 펄스에서 빼고 나중에 16 진수 값으로 변환해야합니다. 이 값은 timer1 상위 비트와 하위 비트에로드되어야합니다. 이 타이머 작동은 마이크로 컨트롤러에 내장 된 C .

예 : 500us 시간 지연

500us / 1.080806us

461 펄스

P = 65535-461

P = 65074

65074는 16 진수 = FE32로 변환됩니다.

TH1 = 0xFE

TL1 = 0x32

3. timer1“TR1 = 1”을 시작합니다.

4. 플래그 비트 'while (TF1 == 1)'을 모니터링합니다.

5. 플래그 비트 'TF1 = 0'을 지 웁니다.

6. 타이머“TR1 = 0”

예제 프로그램 :

프로그램 -1

프로그램 -1

프로그램 -2

프로그램 -2

프로그램 -3

프로그램 -3

8051의 카운터

C / T 비트를 높게 유지하여 카운터를 사용할 수 있습니다 (예 : TMOD 레지스터의 논리 '1'). 더 나은 이해를 위해 타이머 1을 카운터로 사용하는 하나의 프로그램을 제공했습니다. 여기서 LED는 8051 포트 2에 연결되고 스위치는 timer1 핀 P3.5에 연결되어 있으므로 스위치를 누르면 값이 계산됩니다. 그렇지 않으면 입력으로이 카운터 핀에 외부 적으로 연결된 센서가이 카운팅 작업을 수행합니다.

카운터 프로그램

카운터 프로그램

8051의 타이머 및 카운터 응용

8051 디지털 카운터

8051이있는 디지털 카운터는 위에서 설명한대로 마이크로 컨트롤러를 프로그래밍하고 여기에 센서 시스템을 연결하여 얻을 수 있습니다. 이 물체 카운터는 근처의 장애물을 감지하는 IR 센서를 사용하여 마이크로 컨트롤러의 핀 06. 물체가 센서를 통과하면 마이크로 컨트롤러는 IR 센서로부터 인터럽트 신호를 받고 7- 세그먼트 디스플레이에 표시되는 카운트를 증가시킵니다.

8051 디지털 카운터

8051 디지털 카운터

8051 마이크로 컨트롤러를 사용한 시간 지연 회로

아래 그림은 효과적인 방식으로 LED를 전환하기 위해 타이머 작동을 구현하는 방법을 보여줍니다. LED 세트에 대한 시간 지연 작동은 위에서 설명한 방식으로 마이크로 컨트롤러에서 프로그래밍됩니다. 여기에서 LED 세트는 공통 공급 시스템으로 포트 2에 연결됩니다. 시간 지연에 따라이 회로가 켜질 때 마이크로 컨트롤러의 프로그램 적절하게 이러한 LED가 켜집니다.

시간 지연 회로

시간 지연 회로

이것은 기본 프로그래밍 및 애플리케이션 회로가있는 8051 마이크로 컨트롤러 타이머 및 카운터에 관한 것입니다. 이 기사의 정보가 개념을 더 잘 이해하는 데 충분한 데이터를 제공했을 수 있기를 바랍니다. 또한 8051 및 회로 프로그래밍에 대한 기술적 의문이 있으시면 아래에 의견을 보내주십시오.

사진 크레딧 :