|
这下面是我编写的一个红外线避障智能小车的程序,下载附件是全部程序,谢谢。- #include<reg51.h>
- #define uint unsigned int
- #define uchar unsigned char
- sbit z=P0^0;//定义红外避障检测端口
- sbit q=P0^4;
- sbit y=P0^2;
- sbit mz=P1^5;//定义电机Mz电平输出端口
- sbit IN1=P1^6;
- sbit IN2=P1^7;
- sbit my=P1^2;//定义电机My电平输出端口
- sbit IN3=P1^3;
- sbit IN4=P1^4;
- void delayms(uint);//声明延时函数
- main()//主函数
- {
- uint i=0;//初始值设定
- mz=1;
- my=1;
- while(1)//无限循环
- {
- if(z==0&&q==1&&y==1)//表示z方有障碍物 进行y转向
- {
- for(i=0;i<5;i++)
- {
- mz=1;
- IN1=1;
- IN2=0;
- my=0;
- delayms(100);//状态保持100ms
- mz=0;
- my=0;
- delayms(2);//状态保持2ms
- }
- }
- if(z==1&&q==0&&y==1)//表示前方有障碍物 进行y转向
- {
- for(i=0;i<5;i++)
- {
- mz=1;
- IN1=1;
- IN2=0;
- my=0;
- delayms(100);//状态保持100ms
- mz=0;
- my=0;
- delayms(2);//状态保持2ms
- }
- }
- if(z==1&&q==1&&y==0)//表示y方有障碍物 进行z转向
- {
- for(i=0;i<5;i++)
- {
- mz=0;
- my=1;
- IN3=1;
- IN4=0;
- delayms(100);//状态保持100ms
- mz=0;
- my=0;
- delayms(2);//状态保持2ms
- }
- }
- if(z==0&&q==0&&y==1)//表示z前方有障碍物 进行y转向
- {
- for(i=0;i<5;i++)
- {
- mz=1;
- IN1=1;
- IN2=0;
- my=0;
- delayms(100);//状态保持100ms
- mz=0;
- my=0;
- delayms(2);//状态保持2ms
- }
- }
- if(z==1&&q==0&&y==0)//表示y前方有障碍物 进行z转向
- {
- for(i=0;i<5;i++)
- {
- mz=0;
- my=1;
- IN3=1;
- IN4=0;
- delayms(100);//状态保持100ms
- mz=0;
- my=0;
- delayms(2);//状态保持2ms
- }
- }
复制代码
|
评分
-
查看全部评分
|