标题:
红外避障小车程序框架
[打印本页]
作者:
xiaosizhu1995
时间:
2016-10-16 20:42
标题:
红外避障小车程序框架
红外避障.rar
(795 Bytes, 下载次数: 52)
2016-10-16 20:41 上传
点击文件名下载附件
11
下载积分: 黑币 -5
#include<reg52.h> #include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit IN3=P0^1; //右轮
sbit IN4=P0^2;
sbit ENB=P0^0; //使能端A
sbit IN1=P1^1; //左轮
sbit IN2=P1^2;
sbit ENA=P1^0; //使能端B
sbit left_ir=P3^2;
sbit right_ir=P3^3;
uchar t;
uchar speedL,speedR;
void init()
{
TMOD=0x01; //8位自动重装
TH0=(65536-20000)/256; //发生依次中断需要20ms
TL0=(65536-20000)%256;
ET0=1;
EA=1;
TR0=1;
}
void forward(uchar speed1,uchar speed2) //左右轮都正转==前进 //speed>=0&&speed<=100; time=speed*200us
{
speedL=speed1;
ENA=1;
IN1=0;
IN2=1;
speedR=speed2;
ENB=1;
IN3=1;
IN4=0;
}
void backward(uchar speed3,uchar speed4) //左右轮都反转==后退
{
speedL=speed3;
ENA=1;
IN1=1;
IN2=0;
speedR=speed4;
ENB=1;
IN3=0;
IN4=1;
}
void turn_right(uchar speed5,uchar speed6) //右转
{
speedL=speed5;
ENA=1;
IN1=0; //左轮正转
IN2=1;
speedR=speed6; //右轮反转
ENB=1;
IN3=0;
IN4=1;
}
void turn_left(uchar speed7,uchar speed8) //左转
{
speedL=speed7; //左轮反转
ENA=1;
IN1=1;
IN2=0;
speedR=speed8; //右轮正转
ENB=1;
IN3=1;
IN4=0;
}
void main()
{
init();
while(1)
{
if(left_ir==0&&right_ir==0)
{
backward(30,50);
}
else if(left_ir==0)
{
turn_right(30,30);
}
else if(right_ir==0)
{
turn_left(30,30);
}
else
{
forward(30,30);
}
}
}
void Timer0() interrupt 1
{
if(ENA==1)
{
TH0=(65536-speedL)/256;
TL0=(65536-speedL)%256;
ENA=0;
}
if(ENB==1)
{
TH0=(65536-speedR)/256;
TL0=(65536-speedR)%256;
ENB=0;
}
if(ENA==0)
{
TH0=(65536-20000+speedL)/256;
TL0=(65536-20000+speedL)%256;
ENA=1;
}
if(ENB==0)
{
TH0=(65536-20000+speedR)/256;
TL0=(65536-20000+speedR)%256;
ENB=1;
}
}
复制代码
作者:
eason丶
时间:
2017-7-12 13:01
真心不错,终于找到了
作者:
HJHJH
时间:
2017-7-13 23:41
棒,顶你
作者:
lvyanf
时间:
2017-7-14 20:49
红外避障小车程序框架
作者:
仰望天空的猪
时间:
2017-11-30 11:44
不错,顶一手
作者:
龙川江
时间:
2018-3-20 09:44
很棒!
作者:
mydpj
时间:
2018-4-30 04:03
请问有注释吗
作者:
黑人盘子
时间:
2018-5-12 00:18
看起来不错的 学学咯
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1