各位大佬帮忙看一下,为什么逻辑分析仪的P24产生的脉冲频率不对(按道理应该产生频率1KHz,逻辑分析仪出来脉冲频率是48Hz),而且不管怎么修改定时器初值,中断的时间都没有变化,Xtal(MHz):12.0已填,Debug里面Use Simulator和Limit Speed to Real-Time也勾选了。烦请大佬帮忙看一下问题出在哪里。
#include <stc15.h>
#define uchar unsigned char
uchar key,num;
void Timer0_Init() //100微秒@12.000MHz
{
AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //设置定时器0,模式:16位自动重载
TL0 = 0x9C; //设置定时初值
TH0 = 0xFF; //设置定时初值
TR0 = 1; //定时器0开始计时
ET0 = 1;//开定时器0中断标志位
EA = 1;//开总中断
}
void Timer0_ISR() interrupt 1
{
num++;
if(num >= 10)
num=0;
if(num<key)
P24=1;
else
P24=0;
}
void main()
{
key=5;
Timer0_Init();
while(1);
}
按道理应该产生频率1KHz,占空比50%,逻辑分析仪出来的占空比是对的,但脉冲频率是48Hz。
更多回帖