找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机定时器初值应该为多少

查看数: 927 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2024-9-16 10:08

正文摘要:

Fsys是时钟频率,为16Mhz,我给它设成了12分频,为1.33MHz,请问定时50us,定时器的初始值应该为多少

回复

ID:1123322 发表于 2024-9-16 15:42
12分频后频率为1.33MHz
时钟周期为1/1.33 = 0.75us
定时器计数为50/0.75 = 66.66≈66
  1. #include <REGX52.H>
  2. #include <intrins.h>

  3. sbit LED1 = P1^0;

  4. int main(void)
  5. {       
  6.         TMOD &= 0x0F;               
  7.         TMOD |= 0x20;               
  8.         TL1 = (255-66);               
  9.         TH1 = (255-66);               
  10.         EA = 1;
  11.         ET1 = 1;
  12.         TF1 = 0;               
  13.         TR1 = 1;               
  14.        
  15.         LED1 = 0;
  16.         while(1)
  17.         {
  18.                 ;
  19.         }
  20.        
  21. }

  22. void Time1(void) interrupt 3 //中断函数
  23. {
  24.         LED1 = !LED1;
  25. }
复制代码


我使用keil仿真了一下,应该是没有问题

算这个,我建议使用STC-ISP去计算这个,可以省去不少麻烦
ID:161164 发表于 2024-9-16 14:48
12分频后得时钟周期是1/1.33 us
50us / 1/1.33 = 50*1.33 = 66.7
TL1 = 256 - 66;
TH1 = 256 - 66;
ID:1109793 发表于 2024-9-16 13:48
  1. void Timer1_Init(void)                //50微秒@16MHz
  2. {
  3.         AUXR |= 0x40;                        //定时器时钟1T模式
  4.         TMOD &= 0x0F;                        //设置定时器模式
  5.         TL1 = 0xE0;                                //设置定时初始值
  6.         TH1 = 0xFC;                                //设置定时初始值
  7.         TF1 = 0;                                //清除TF1标志
  8.         TR1 = 1;                                //定时器1开始计时
  9. }
复制代码
ID:1109793 发表于 2024-9-16 13:48
  1. void Timer0_Init(void)                //50微秒@16MHz
  2. {
  3.         AUXR |= 0x80;                        //定时器时钟1T模式
  4.         TMOD &= 0xF0;                        //设置定时器模式
  5.         TL0 = 0xE0;                                //设置定时初始值
  6.         TH0 = 0xFC;                                //设置定时初始值
  7.         TF0 = 0;                                //清除TF0标志
  8.         TR0 = 1;                                //定时器0开始计时
  9. }
复制代码
ID:1109793 发表于 2024-9-16 13:47
不是那个工具软件可以帮你算吗?

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表