標題:
四路紅外線避障實驗源碼
[打印本頁]
作者:
1183953327
時間:
2018-3-18 10:59
標題:
四路紅外線避障實驗源碼
四路紅外線避障實驗單片機源程序如下:
#include <REGX51.H>
#include <INTRINS.H>
// 演示如何控制智能車底盤前進 后退 左右轉(zhuǎn)動和停止
//接線說明
//51 單片機的P1口和智能車底板的J1口對應關(guān)系
//P10 -> EN12
//P11 -> EN34
//P12 -> IN1
//P13 -> IN2
//P14 -> IN3
//P15 -> IN4
//P34 -> SHCP
//P35 -> STCP
//P36 -> OE
//P37 -> DAT
//51 單片機的P3 、P2口和智能車底板的J2口對應關(guān)系
//P30 -> OUT1
//P31 -> OUT2
//P32 -> OUT3
//P25 -> OUT4
sbit SHCP = P3^4;
sbit STCP = P3^5;
sbit OE = P3^6;
sbit DAT = P3^7;
sbit EN12 = P1^0;
sbit EN34 = P1^1;
sbit IN1 = P1^2;
sbit IN2 = P1^3;
sbit IN3 = P1^4;
sbit IN4 = P1^5;
sbit OUT1 = P3^0;
sbit OUT2 = P3^1;
sbit OUT3 = P3^2;
sbit OUT4 = P2^5;
void Delay(int n)
{
int i;
for(;n > 0;n--)
for(i=0;i<0xffff;i++)
;
}
void front(void)
{
EN12 = 1;
EN34 = 1;
IN1 = 0;
IN2 = 1;
IN3 = 0;
IN4 = 1;
}
void back(void)
{
EN12 = 1;
EN34 = 1;
IN1 = 1;
IN2 = 0;
IN3 = 1;
IN4 = 0;
}
void left(void)
{
EN12 = 1;
EN34 = 1;
IN1 = 1;
IN2 = 0;
IN3 = 0;
IN4 = 1;
}
void right(void)
{
EN12 = 1;
EN34 = 1;
IN1 = 0;
IN2 = 1;
IN3 = 1;
IN4 = 0;
}
void stop(void)
{
EN12 = 0;
EN34 = 0;
}
void adjust_speed(char num)
{
char dat,i;
dat = num;
OE = 0;
SHCP = 0;
STCP = 0;
for(i =0;i<8;i++)
{
if(dat & 0x80)
{
DAT =1;
}
else
{
DAT = 0;
}
_nop_();
_nop_();
SHCP = 1;
_nop_();
_nop_();
SHCP = 0;
dat <<=1;
}
STCP = 1;
OE = 0;
}
void main(void)
{
adjust_speed(150);
while(1)
{
if(OUT4)
{
right();
Delay(1);
}
if(OUT3)
{
left();
Delay(1);
}
if(OUT2)
{
right();
Delay(1);
}
if(OUT1)
{
left();
Delay(1);
}
if((OUT4 == 0) &&(OUT3 == 0) && (OUT2 == 0) &&(OUT1 == 0))
{
front();
}
}
}
復制代碼
所有資料51hei提供下載:
四路紅外線避障實驗.rar
(28.41 KB, 下載次數(shù): 8)
2018-3-18 10:59 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1