我第一次寫程序 總感覺哪里寫錯了 能幫我看一下嗎QUQ
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit PWM=P2^0;// P2.0輸出pwm
uchar time; // 定義占空比的變量
uint time_tick;
uint x;
void main()
{
TMOD=0x01;//定時器0工作方式1
TH0=0xff;//(65536-10)/256;//賦初值定時
TL0=0xf7;//(65536-10)%256;//0.01ms
EA=1;//開總中斷
ET0=1;//開定時器0中斷
TR0=1;//啟動定時器0
while(1)
{
}
}
void tim0() interrupt 1
{
TR0=0;//賦初值時,關閉定時器
TH0=0xff;//(65536-10)/256;//賦初值定時
TL0=0xf7;//(65536-10)%256;//0.01ms
TR0=1;//打開定時器
time++;
time_tick++;
if(time_tick>=50000)
{ x++;
time_tick=0;
}
if(x=<1800)
{if(time>=100) //1khz
time=0;
if(time<=30) //占空比%30,可改
PWM=1;
else PWM=0;}
if(x>=1800&&x<3600)
{if(time>=100) //1khz
time=0;
if(time<=60) //占空比%60,可改
PWM=1;
else PWM=0;
}
if(x>=3600&&x<5400)
{if(time>=100) //1khz
time=0;
if(time<=90) //占空比%90,可改
PWM=1;
else PWM=0;
}
if(x>=5400)
{ x=0;}
}
|