STC12C5A60S2筆記7(定時器)


1. 基本特性

STC12C5A60S2單片機集成了兩個16位定時/計數器。

  1)寄存器

    1.1)TMOD 定時器工作方式控制寄存器,包括13位寄存器、16位寄存器、8位寄存器等;

    1.2)TCON 定時器控制寄存器,主要包括定時器啟動控制位等;

    1.3)AUXR 輔助寄存器,用以設置分頻;默認12分頻

    1.4)TH0/1:定時器高8位寄存器

    1.5)TL0/1:定時器低8位寄存器

 

  2)定時器計算

  N = 2n - Tc/Tu,其中n為定時器的位數,Tu為單位時間及系統時鍾周期,分頻倍數/晶振頻率,Tc為要設置的時間。例子:

  15位定時器,12分頻,定時50ms,晶振為6MHZ,則N = 216 - (50*10-3)/(12/6000000) = 9E 58H,此時最大定時為131ms。

  則TH設置為9E,而TL設置為8H

 

2. 典型例子

 

#include<reg51.h>

#define uint unsigned int

sbit P00 = P0^0;
uint i = 40;

void Timer_Routine(void) interrupt 1
{
    TL0  = 0x3C;
    TH0  = 0xB0;

    i--;

    if(0 == i){
       P00  = !P00;
       i = 40;
    }        
}

void main(void)
{
    TMOD = 0x01; //16位定時器
    TL0  = 0x3C; //50ms定時
    TH0  = 0xB0;

    i = 40;

    ET0 = 1; //允許T0中斷
    EA  = 1; //開放中斷
    TR0 = 1;

    while(1);
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM