T0은 주파수 발생기로 사용한다.T1 샘플링 외부 펄스

1274 단어 51 단편기
타이머/계수기가 계수기 모드에서 작업할 때 입력 신호가 1–>0의 하락으로 바뀔 때 계수기의 값이 1을 추가한다.계수의 펄스는 입출력의 대응 관계에서 발생합니다.
이름:
I/O
T0
P3.4
T1
P3.5
T2
P1.0
  • 한 번의 마이너스 변동을 확인하려면 2개의 기계 주기, 즉 24개의 진동 주기가 필요하기 때문에 외부 입력 계수 펄스의 최고 주파수는 진동기 주기의 1/24이다.12MHz의 크리스털을 사용하면 최대 주파수는 500kHz이다.(50KHz는 더 이상 오르지 마세요)
  • 절차.
  • 프로그램 현상: 타이머 T0은 주파수 발생기로 사용되고 2.5KHz(주기 400us, 200us 중단), 50%가 공백을 차지하는 주파수를 출력한다.타이머 T1은 외부 펄스를 샘플링하고 2500개의 펄스로 계산하면 LED 램프를 거꾸로 한다.
  • 프로그램 설명: LED가 P2^0에 연결되어 있음;PWM 펄스는 P1^7 포트에 연결됩니다.카운터 T1 샘플링 포트 P3.5;
  • 
    #include "reg52.h"
    
    sbit Led0 = P2^0; //LED 
    sbit PWM = P1^7;  //PWM 
    
    void Init()
    {
        TMOD = 0x52;    // T1 16     T0 8         
        
        TH1 = (65536 - 2500)/256;
        TL1 = (65536 - 2500)%256;     //   2500    , 1S
        TH0 = (256 - 200);
        TL0 = (256 - 200);     // 12M  ,  200us
        
        EA = 1;
        ET0 = 1;  //  T0、T1  
        
        ET1 = 1;
        TR0 = 1;    //     、   
        TR1 = 1;
        
        PWM = 1;  //    
    }
    
    void main()
    {
        Init(); //   
        
        while(1);
    }
    
    void Timer0() interrupt 1
    {
        PWM = ~PWM;     //    400us,  2.5KHz,   50%
    }
    
    void Timer1() interrupt 3
    {
        TH1 = (65536 - 2500)/256;
        TL1 = (65536 - 2500)%256;     //   2500    , 1S
        Led0 = ~Led0;     // 
    }
    

    좋은 웹페이지 즐겨찾기