|
二驅,兩個傳感器
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit left1=P2^0;
- sbit left2=P2^1;
- sbit right1=P2^2;
- sbit right2=P2^3;
-
- sbit left_red=P2^4; //白線位置
- sbit right_red=P2^5; //白線位置
- void delay(uint z)
- {
- uchar i;
- while(z--)
- {for(i=0;i<121;i++);}
- }
- void straight() //走直線函數
- {
- left1=1;
- left2=0;
- right1=1;
- right2=0;
- }
- void turn_left() //左轉彎函數
- {
- left1=1;
- left2=1;
- right1=1;
- right2=0;
- }
- void turn_right() //右轉彎函數
- {
- left1=1;
- left2=0;
- right1=1;
- right2=1;
- }
- void turn_back() //后退(反轉)函數
- {
- left1=0;
- left2=1;
- right1=0;
- right2=1;
- }
- void infrared() //循跡
- {
- uchar flag;
- if((left_red==1)&(right_red==1))
- {flag=0;}
- else
- if((left_red==0)&(right_red==1))
- {flag=1;}
- else
- if((left_red==1)&(right_red==0))
- {flag=2;}
- else
- if((left_red==0)&(right_red==0))
- {flag=3;}
- switch (flag)
- {
- case 0: straight();
- break;
- case 1: turn_left();
- break;
- case 2: turn_right();
- break;
- case 3: turn_back();
- break;
- default:
- break;
- }
- }
- void main(void)
- {
- delay(1);
- while(1)
- {
- infrared();
- // straight();
- }
- }
復制代碼
|
-
-
新建文本文檔.rar
2018-6-20 09:21 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
589 Bytes, 下載次數: 9, 下載積分: 黑幣 -5
|