stc12c5a60s2定时器计多少个数为一秒

如题所述

定时器12T的模式下以12MHz晶振为例,定时器每1us自动加1 ,最高定时65536us

一般采用定时50ms 然后在中断定义一个变量,每中断一次+1。到20之后就是1秒的延时。

void Timer0Delay1s(void) interrupt 1

{

        static unsigned char cont;

        TH0=(65536-50000)/256;

        TL0=(65536-50000)%256;

        if(cont++==20)

        {       

                cont=0;

                //在这里添加你的代码

        }

}


另外附一张AUXR寄存器的功能图:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-15
如果是默认时钟源的话,也就是你没有写任何代码去修改寄存器配置,那么STC12C5A60S2也是默认时钟源=晶振频率/12,那么机器周期=1/时钟源=12/Fosc。STC12C5A60S2是一个指令周期等于一个机器周期吧,也就是执行一条指令需要12/Fosc秒,假如晶振频率为12MHz,那么执行一条指令需要1uS。1S = 1 000 000 uS,所以计数个数为1百万个。
辅助寄存器AUXR的T0x12和T1x12可以设置定时器的时钟源是否为12分频。建议你多查看这款MCU的DATASHEET。
以上字字手打,希望对你有帮助本回答被网友采纳
第2个回答  2012-09-17
12m晶振12T模式下1US 计数值累加1