大神帮我看下我的智能车代码哪里出错,很急,按下按键1实现蓝牙遥控功能,按下按键2则实现魔幻手功能,以下是我的代码,但是遥控也遥控不了,也实现不了魔幻手功能,不知道哪里出错,希望大家指点指点 #include<reg52.h> #define uint unsigned int #define uchar unsigned char sbit EX=P2^0; sbit TX=P2^1; sbit a1=P1^0;//电机控制口 sbit a2=P1^1; sbit a3=P1^2; sbit a4=P1^3; sbit key1=P3^2; sbit key2=P3^3; uchar a;//接收蓝牙模块发送的数据 uchar flag; uint time,distance,valA; unsigned long S=0; void delayxms(uint z)//调节电机转速 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void delay20us()//短延时函数,用于起声波传感器延时 { uchar a; for(a=0;a<150;a++); } void delaym(int z)//延时函数,调节电机转速 { int i,j; for(i=2;i>0;i--) for(j=z;j>0;j--); } void qingj()//前进 { a1=1; a2=0; a3=1; a4=0; } void hout()//后退 { a1=0; a2=1; a3=0; a4=1; } void youz()//右转 { a1=0; a2=0; a3=1; a4=0; delayxms(9); a1=0; a2=0; a3=0; a4=0; delayxms(1); } void zuoz()//左转 { a1=1; a2=0; a3=0; a4=0; delayxms(9); a1=0; a2=0; a3=0; a4=0; delayxms(1); } void tingz()//停止 { a1=0; a2=0; a3=0; a4=0; } void lanya() { TMOD=0x20;//定时器1工作方式2,8位自动重装 TH1=0xFd; //11.0592M晶振,9600波特率 TL1=0xFd; SCON=0x50;//串口方式1 SM0 SM1 01 允许接收 PCON=0x00;//SMOD=0 16分频 TR1=1;//打开定时器1 ES=1;//打开串口中断 EA=1;//开总中断 //以上跟串口通信初始化有关 } void chao() { TMOD=0x01;//设T0为方式1,GATE=1; EA=1;//开启总中断 TH0=0; TL0=0; ET0=1;//允许T0中断 } void keyscan() { if(key1==0) delayxms(10); if(key1==0) { lanya(); while(!key1); } if(key2==0) delayxms(10); if(key2==0) { chao(); while(!key2); } } void chaoshengbo() { TX=1;//初始化Trig引脚,启动一次模块 delay20us(); TX=0; // for(valA=100;valA>0;valA--)//for循环是防止发射信号对回响信号的影,响根据实际情况是否用 // { if(EX==1)//判断Exho是否为高电平 { TR0=1; //开启计数 while(EX); //当RX为1计数并等待 TR0=0; //关闭计数 time=TH0*256+TL0; //计算整个距离的时间 TH0=0; TL0=0; TX=0; S=((time*2)/100)-3; //计算距离,算出来是CM 3是盲区 (time*1.7)/100; } // } } void main(void) { keyscan(); while(1) { if(key1==0) { if(a=='A') qingj();//前进 else if(a=='B') hout();//后退 else if(a=='C') zuoz();//左转 else if(a=='D') youz();//右转 else tingz();//停止 } if(key2==0) { chaoshengbo();//超声波初始化 if(S>=20) qingj(); else hout(); } } } void zd0() interrupt 1 //T0中断用来计数器溢出,超过测距范围 { flag=1; //中断溢出标志 EX=0; } void serial() interrupt 4//中断子函数 { RI=0;//清0 a=SBUF; } |
腾飞的龙 发表于 2016-1-24 21:23
程序肯定不行,再好好找找别的程序试试。你那个蓝牙不是程序只是初始化。
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |