这是我用延时写的pwm输出控制舵机的程序,但是写好了没有任何反应,各位帮忙看一下是怎么回事啊,keil编译还一直警告说我的四个延时没有被调用,明明调用了啊。
单片机源程序如下:
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
void delay(uint i) //i=1时,大约延时10us
{
while(i--);
}
sbit pwm=P1^7;
void Delay600us() //@11.0592MHz
{
unsigned char i, j;
_nop_();
i = 2;
j = 15;
do
{
while (--j);
} while (--i);
}
void Delay19400us() //@11.0592MHz
{
unsigned char i, j;
_nop_();
i = 35;
j = 197;
do
{
while (--j);
} while (--i);
}
void Delay17500us() //@11.0592MHz
{
unsigned char i, j;
i = 32;
j = 93;
do
{
while (--j);
} while (--i);
}
void Delay2500us() //@11.0592MHz
{
unsigned char i, j;
i = 5;
j = 120;
do
{
while (--j);
} while (--i);
}
void main()
{
while(1);
{
pwm=1;
Delay2500us();
pwm=0;
Delay17500us();
delay(1000);
pwm=1;
Delay600us();
pwm=0;
Delay19400us();
}
}
|