找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2374|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

一個用超聲波和紅外做的跟蹤小車,不知道哪里的問題 求大神

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:192545 發(fā)表于 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空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表