📄 1.c
字号:
#include <reg51.h>
#define uint unsigned int
sbit P0_0=P0^0; //左1传感器输入端口初始化
sbit P0_1=P0^1; //左2传感器输入端口初始化
sbit P0_2=P0^2; //右2传感器输入端口初始化
sbit P0_3=P0^3; //右1传感器输入端口初始化
sbit P0_6=P0^6; //取物传感器输入端口初始化
sbit P1_0=P1^0; //取物驱动芯片始能端初始化
sbit P1_2=P1^2; //out3端口初始化
sbit P1_3=P1^3; //out4端口初始化
sbit P1_6=P1^6; //避障传感器输入端口初始化
sbit P2_0=P2^0; //寻线驱动芯片始能端初始化
sbit P2_1=P2^1; //寻线驱动芯片始能端初始化
sbit P2_2=P2^2; //out1端口初始化
sbit P2_3=P2^3; //out2端口初始化
sbit P2_4=P2^4; //out3端口初始化
sbit P2_5=P2^5; //out4端口初始化
void delay(uint j) //延时子程序
{
uint k;
for(k=0;k<j;k++);
}
void turnleft() //左转子程序
{
P2_0=0;
P2_1=1;
P2_2=0;
P2_3=0;
P2_4=1;
P2_5=0;
}
void turnright() //右转子程序
{
P2_0=1;
P2_1=0;
P2_2=1;
P2_3=0;
P2_4=0;
P2_5=0;
}
void go() //直走程序
{
P2_0=1;
P2_1=1;
P2_2=1;
P2_3=0;
P2_4=1;
P2_5=0;
}
void back() //后退子程序
{
P2_0=1;
P2_1=1;
P2_2=0;
P2_3=1;
P2_4=0;
P2_5=1;
}
void stop() //停止子程序
{
P2_0=0;
P2_1=0;
P2_2=0;
P2_3=0;
P2_4=0;
P2_5=0;
}
void in() //取物杆收回子程序
{
P1_0=1;
P1_2=1;
P1_3=0;
}
void out() //取物杆放开子程序
{
P1_0=1;
P1_2=0;
P1_3=1;
}
void getthing() //取物子程序
{
stop();
in();
delay(20000);
delay(15000);
out();
delay(18000);
delay(13000);
P1_0=0;
P1_2=0;
P1_3=0;
}
void alongline() // 寻线程序
{
if(P0_0==1||P0_1==1) //左边传感器检测到白线
{
turnleft();
}
else if(P0_2==1||P0_3==1) //右边传感器检测到白线
{
turnright();
}
else
{
go();
}
}
void arounding() //避障子程序
{
back();
delay(500000);
delay(500000);
in();
delay(20000);
delay(15000);
P1_0=0;
P1_2=0;
P1_3=0;
turnright();
delay(50000);
delay(20000);
delay(20000);
stop();
delay(50000);
go();
delay(200000);
delay(245000);
stop();
delay(50000);
turnleft();
delay(50000);
delay(25000);
delay(25000);
stop();
delay(50000);
go();
delay(500000);
delay(500000);
delay(500000);
delay(500000);
delay(500000);
delay(500000);
while(1)
{stop();}
}
void main() //主程序
{
TMOD=0x02; //用于T0,工作模式2
TH0=0x1a;
TL0=0x1a;
EA=1; //开中断
ET0=1; //允许TF0中断
TR0=1; //启动关闭控制位
while(1)
{
if(P0_6==0)
getthing();
else if(P1_6==0)
arounding();
else
alongline();
}
}
void Pwm()interrupt 1 //定时中断调速子程序
{
unsigned int i;
P2_0=0;
P2_1=0;
for(i=2;i>0;i--);
P2_0=1;
P2_1=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -