以下是使用51单片机控制测速的程序,求教高手指出其中的错误。非常感谢!!!
#include<reg51.h>
sbit SHURU =P1^0; /* 这是输入引脚 */
/* 三个选择引脚 */
sbit CHOSE1=P2^0;
sbit CHOSE2=P2^1;
sbit CHOSE3=P2^2;
int time=0;
/* 定义中断 */
void timer(void)interrupt 1
{ time=time+1;
TH0=0xFE;
TL0=0x0C;
}
float sudu(unsigned int n) /*计算速度的公式*/
{ float s;
s=n*2; /*1毫秒走的路程,2为假设的距离*/
float timers;
timers=time*0.0001;
float v;
v=s/timers;
return(v);
}
/* 主函数 */
main()
{ TMOD=0x01;
TH0=0xFE;
TL0=0x0C;
TR0=1;
ET0=1;
EA=1;
unsigned int n;
n=0;
/* unsigned int timers;
timers=0;
float v;
v=0; */ /*初始化原变量*/
/* 无限循环 */
while(1)
{
/*if 引导在50毫秒是计算一个速度*/
if (SHURU==1&&time!==50)
{n=n+1;
} /*记录脉冲次数 */
elseif(time==50)
{
v=sudu(n);
time=0;
n=0;
}
/* 调用显示函数显示速度 */
}
}
问题补充:这是通过光电门感应电动车轮子上的一个障碍物来输出高低电平,但在经Keil uVISION2进行编译时,总是无法编译,那位高手可以帮忙看一下这个程序,第一次编,就要用了。我也没分,只能谢谢了,万分感谢,