单片机小白,最近使用STC15F104E单片机的板子,不知为何使用不了定时器1,但在51单片机的板子上就可以使用同样的代码。而且,同样的代码改成定时器0(将开关TR1,ET1 改成ET0,TR0,interrupt 3 改成 interrupt 1,TMOD值改成0x01)也可以使用定时器0,到底是哪里出错了呢?求各位大佬帮助
#include <reg52.h>
sbit led=P3^3; //输出口
float num=0;
static float a=0.4;
void main()
{
TMOD=0x10;//定时器1方式1
TH1=(65536-45872)/256; //装入50ms中断的初值
TL1=(65536-45872)%256;
EA=1;
ET1=1;
TR1=1;
while(1);
}
void Timer1() interrupt 3 //生成50ms*100=5s周期,占空比为0.4*100=40%的PWM波
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
num++;
if(num<=a*100)
{
led=0;
}
else if(num>=100)
{
led=1;
num=0;
}
else
{
led=1;
}
}
|