找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2102|回复: 0
打印 上一主题 下一主题
收起左侧

一个用超声波和红外做的跟踪小车,不知道哪里的问题 求大神

[复制链接]
跳转到指定楼层
楼主
ID:192545 发表于 2017-4-22 23:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一个用超声波和红外做的跟踪小车,不知道哪里的问题麻烦大神看下
TX是超声波上的Trio
RX是超声上的Erio
R、L、C是红外传感器的out口


#include <reg52.h>
#include <intrins.h>
#include <stdio.h>


#define uchar unsigned char
#define uint unsigned int
**it RX = P1 ^ 1;
**it TX = P1 ^ 2;
**it o1 = P2 ^ 6;
**it o2 = P2 ^ 5;
**it o3 = P1 ^ 4;
**it o4 = P1 ^ 3;
**it R=P3^3;
**it C=P3^4;
**it L=P3^5;







unsigned int time=0;
unsigned int timer=0;
float S=0;
bit flag=0;



void Ceju(void)
{
time=TH0*256+TL0;
TH0=0;
TL0=0;
S=(time*1.7)/100;
if(flag==1)
{
flag=0;
}
if (S >=30&&S<=100)
o1 = 1, o2 = 0, o3 = 1, o4 = 0;
if(S<30)
o1=1,o2=1,o3=1,o4=1;
}


void delayms(unsigned int ms)
{
unsigned char i=100,j;
for(;ms;ms--)
{
while(--i)
{
j=10;
while(--j);
}
}
}


void zd0() interrupt 1
{
flag=1;
}


void StartModule()
{
TX=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
TX=0;
}
void Left()
{o1=0;o2=0;o3=1;o4=0;}
void Right()
{o1=1;o2=0;o3=0;o4=0;}
void Stop()
{o1=1;o2=1;o3=1;o4=1;}




void main(void)
{
o1=0;
o2=0;
o3=0;
o4=0;
TMOD = 0x21;
SCON = 0x50;
TH1 = 0xFD;
TL1 = 0xFD;
TH0 = 0;
TL0 = 0;
TR0 = 1;
ET0 = 1;
TR1 = 1;
TI = 1;


EA = 1;


while (1)
{
StartModule();
while (!RX);
TR0 = 1;
while (RX);
TR0 = 0;
Ceju();
delayms(11);
if (C == 1 && L == 1 && R == 1)
{
Ceju();
delayms(100);
}
if (R == 0)
{
Right();
delayms(100);
}
if (L == 0)
{
Left();
delayms(100);
}
if (C == 0)
{
Stop();
delayms(100);
}
}
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表