1、 #define left C #define right D #define up A #define down B #define stop F char code str = 收到指令,向前!n; char code str1 = 收到指令,向后! char code str2 = 收到指令,向左! char code str3 = 收到指令,向右! char code str4 = 收到指令,停止! bit flag_REC=0; bit flag =0; unsigned char i=0; unsigned char dat=0; unsigned char buff5=0; /接
2、收缓冲字节 void delay(unsigned int k) unsigned int x,y; for(x=0;xk;x+) for(y=0;y=2) i=0;flag=0;flag_REC=1 ; / 停止接收/以上修改sbit LeftLed=P20; /定义前方左侧指示灯端口sbit RightLed=P07; /定义前方右侧指示灯端口sbit FontLled=P17;sbit LeftIR=P35; /定义前方左侧红外探头端口sbit RightIR=P36; /定义前方右侧红外探头端口sbit FontIR=P37; /定义前方正前方红外探头端口sbit M1A=P00; /
3、定义左侧电机驱动A端sbit M1B=P01; /定义左侧电机驱动B端sbit M2A=P02; /定义右侧电机驱动A端sbit M2B=P03; /定义右侧电机驱动B端sbit B1=P04; /定义语音识识别传感器端口sbit SB1=P06; /定义蜂鸣器端口sbit IRIN=P33; /定义红外接收端口/修改(超声波)#define TX P1_3#define RX P1_2#define Forward_L_DATA 180/当前进不能走直线的时候,请调节这两个参数,理想的时候是100,100,最大256,最小0。0的时候最慢,256的时候最快#define Forward_R_
4、DATA 180 /例如小车前进的时候有点向左拐,说明右边马达转速过快,那可以取一个值大一点,另外一个值小一点,例如 200 190 /直流电机因为制造上的误差,同一个脉宽下也不一定速度一致的,需要自己手动调节sbit L293D_IN1=P00;sbit L293D_IN2=P01;sbit L293D_IN3=P02;sbit L293D_IN4=P03;sbit L293D_EN1=P04;sbit L293D_EN2=P05;sbit BUZZ=P06;void Delay400Ms(void);/延时400毫秒函数unsigned char disbuff4=0,0,0,0;/用于分
5、别存放距离的值0.1mm、mm、cm和m的值void Count(void);/距离计算函数unsigned int time=0;/用于存放定时器时间值unsigned long S=0;/用于存放距离的值/报错bit cflag =0; /量程溢出标志位bit turn_right_flag; /* /函数名称:Delay1ms(unsigned int i) /函数功能:延时i*1ms的子程序(对应于22.1184Mhz晶振) /形式参数:unsigned int i /行参说明:无 /返回参数:/使用说明:i为要延时的时间长度,单位是MS,最大可以延时65536 ms /* void
6、Delay1ms(unsigned int i) unsigned char j,k;do j = 10; do k = 50; _nop_(); while(-k); while(-j);while(-i); Delay10us(unsigned char i) 延时i*10us的子程序(对应于22.1184Mhz晶振) i为要延时的时间长度,单位是US,最大可以延时250 ms void Delay10us(unsigned char i) unsigned char j;unsigned char code LedShowData=0x03,0x9F,0x25,0x0D,0x99, /定义数码管显示数据 0x49,0x41,0x1F,0x01,0x19;/0,1,2,3,4,5,6,7,8,9unsigned char code RecvData=0x
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1