STC15F系列单片机的定时器频率

本文为转载文章!
在迷离与定时器计数加1对应时间的时候,看到这篇好文章,转载已方便日后查阅!感谢作者!!!

公式:N=65536-(Fosc/FD/(Freq));

 

      N      : 定时器16位计数器   

      Fosc: 晶振频率,系统频率

      FD    : 分频(Frequency division),通过分频可增大计数器的定时范围

      Freq : 频率(Freq=1000000(微秒)/TIME(微秒),TIME:所定时间)

 

 

例:22.1184HZ晶振,T0作为定时器,定时每5ms进一次定时器,那么换算一下频率就是200HZ。

代码:


   
   
   
   
  1. #define FOSC 22118400L //系统频率
  2. #define T0_TIM (65536-(Fosc/1/200))

   
   
   
   
  1. void tm0_init() //定时器0初始化函数
  2. {
  3. AUXR |= 0x80; //定时器0为1T模式
  4. // AUXR &= 0x7f; //定时器0为12T模式
  5. TMOD = 0x00; //设置定时器为模式0(16位自动重装载)
  6. TL0 = T0_TIM% 256; //初始化计时值
  7. TH0 = T0_TIM/ 256;
  8. TR0 = 1; //定时器0开始计时
  9. ET0 = 1; //使能定时器0中断
  10. EA = 1;
  11. }

 


   
   
   
   
  1. void tm0_isr() interrupt 1 using 1
  2. {
  3. //定时器到执行这里
  4. }

 

 

 

 

你可能感兴趣的:(STC15)