求教,在我的程序、硬件都没改变的情况下,本来测试可.....
求教,在我的程序、硬件都没改变的情况下,本来测试可用的程序执行起来效果却不一样了呢我做的是个小车,要求功能有循线,超声波避障,循光入库,语音播报,我本来写的循线和超声波避障已经是测试可用了的,然后我就把源程序复制了一份,然后开始写循光,结果总是错误,检查硬件没有问题,就下载了个开始写的循线和超声波避障,结果不能被正确执行,期间也换了一块单片机试过,也是一样的效果,下载单独的循线是可以正常执行的,表示从没遇到过这种情况,求教啊
下附程序,是循线和超声波避障
#include <AT89x51.H>
#include <intrins.h>
#include "main.h"
#include "ceju.h"
unsigned char Statusflag=1;//×Ü״̬±ê־λ
void zuozhuan()
{zuo0 = 1;zuo1 = 0;you0 = 0;you1 = 1;}
void youzhuan()
{zuo0 = 0;zuo1 = 1;you0 = 1;you1 = 0;}
void qianjin()
{zuo0= 0;zuo1= 1;you0 = 0;you1 = 1;}
void tingche()
{zuo0 = 0;zuo1 = 0;you0 = 0;you1 = 0;}
/*******************ÑÏß***********************/
void xunxian()
{
qianjin();
if((a==0)&&(b==0))
{
qianjin();
}
if((a==0)&&(b==1))
{
youzhuan();
}
if((a==1)&&(b==0))
{
zuozhuan();
}
}
void delayhaomiao(unsigned int ms) //@11.0592MHz
{
unsigned char i, j;
while(--ms)
{
_nop_();
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
}
}
void main()
{
ceju_test();//²â¾àº¯Êý³õʼ»¯
qianjin();
while(Statusflag==1)
{
xunxian();
ceju();
if(S<=100)
Statusflag=2;
}
while(Statusflag==2)
{
zuozhuan();
delayhaomiao(1700); //´ËʱÊý¾Ý¹©±àÒ룬ʵ¼ÊÐèÒªÐë¸ù¾ÝС³µÇé¿ö¸ü¸Ä
qianjin();
delayhaomiao(3000); //´ËʱÊý¾Ý¹©±àÒ룬ʵ¼ÊÐèÒªÐë¸ù¾ÝС³µÇé¿ö¸ü¸Ä
youzhuan();
delayhaomiao(1700); //´ËʱÊý¾Ý¹©±àÒ룬ʵ¼ÊÐèÒªÐë¸ù¾ÝС³µÇé¿ö¸ü¸Ä
qianjin();
Statusflag=1;
}
}
好奇怪啊,为什么呐 奇怪了, 自己写的程序却不会自己调试。 软件没坏就是硬件问题,或者软件配置问题。
页:
[1]