這是我用延時寫的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();
}
}
|