STC15定时器设置


要做一个STC15的定时器,产生定时中断,按照STC-ISP软件中的定时器计算器来生成定时器,工作只完成了一半,无法产生定时中断,又是百度又是手册,最终找出教科书,终于使定时中断开始工作,写下来给遇到同样问题的朋友参考。

1. 采用STC-ISP生成定时器

用STC官网提供的STC-ISP下载软件可以做许多事情。其中之一是有定时器计算器的功能。通过定时器计算器,可以选择:

  • 系统时钟
  • 定时长度
  • 选择定时器
  • 定时模式
  • 定时器时钟

在这里选择了15系列的定时器4作为定时器,定时器模式只有16位自动重载模式,定时器时钟1T (FOSC)

生成的程序如下:

void Timer4Init(void)  //1毫秒@11.0592MHz
{
 T4T3M |= 0x20;  	//定时器时钟1T模式
 T4L = 0xCD;  		//设置定时初值
 T4H = 0xD4;  		//设置定时初值
 T4T3M |= 0x80;  	//定时器4开始计时
}

有了这个程序后,设置一个中断程序

// Interrupt Routine of timer4
void timer4_ISR (void) interrupt TIMER4_VECTOR
{
 static uint16 ui;
 static uint16 ccdInt;
 ui++;
 ccdInt++;
 if ( ui > 20 )
 {
  ui = 0;
  Time0flag_20ms = 1;
 }
 if ( ccdInt > 500 )
 {
  	ccdInt = 0;
  	P55 = !P55;
 }
 
}

再在主程序中简单的设置,程序就应该运行了。


main()
{
	Timer4Init();
	while(1);
}

但下载运行后啥也没有发生,该闪亮的LED不闪亮!

打开定时器4中断允许

通过查看手册,注意到EI2这个寄存器,各位的定义如下:

B7B6B5B4B3B2B1B0
命名ET4ET3ES4ES3ET2ESPIES2
T4中断允许T3中断允许UART4UART3T2中断允许SPIUART2

在头文件中有
#define ET4 0x40

所以,在初始化程序中增加
EI2 |= ET4;
IE2 |= ET4;
设置IE2寄存器的B6位为1,定时器4中断允许。这样就可以自动调用中断程序了。错,这里的坑还没有结束。

打开总中断开关

再查找,总中断还没有使能,中断程序还是不能执行。

在主程序中各项初始化完成后,打开总的中断,程序正常工作。主程序中增加EA = 1;指令,中断程序定时打开和关闭指示LED。

终于让定时器开始工作了,希望能给遇到同样问题的朋友有所帮助。

博友说的对,应该是IE2.

  • 6
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
STC15定时器的定时时间计算可以通过以下的步骤进行: 1. 确定定时器工作的时钟频率:STC15单片机内部有一个主时钟源,其频率可以通过设置相关寄存器来选择。假设我们选择的时钟频率为f。 2. 确定定时器的工作模式:STC15定时器有多种工作模式可选,包括定时器模式和计数器模式。在这里我们以定时器模式为例。 3. 设置定时器的计数值:定时时间可以通过设定定时器的计数值来确定。STC15定时器的计数值是16位的,可以通过两个8位的数据寄存器THx和TLx来设置。假设我们要设置的定时时间为T。 4. 计算定时器的计数值:定时器的计数值可以通过以下公式来计算: 计数值 = (定时时间 / 定时器的周期) - 1 其中,定时器的周期可以通过以下公式来计算: 定时器的周期 = 1 / (定时器的时钟频率) 将上述公式代入到计数值的公式中,可以得到: 计数值 = (定时时间 × 定时器的时钟频率) - 1 注意,这个计数值应该是一个整数,并且不能超过16位寄存器的范围。 5. 将计数值设置定时器的计数寄存器中:将计算得到的计数值设置到THx和TLx寄存器中,即可完成定时器定时时间的设置。 需要注意的是,STC15定时器计时的精度与所设置的时钟频率有关,时钟频率越高,计时的精度越高。另外,还需要根据具体的需求来选择合适的工作模式和计数值,以满足定时要求。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值