標(biāo)題:
51單片機(jī)白底黑線尋跡車決賽程序
[打印本頁]
作者:
Taliban
時間:
2017-11-11 14:20
標(biāo)題:
51單片機(jī)白底黑線尋跡車決賽程序
使用的12C5A60S2單片機(jī),白底黑線尋跡,自己想出來的信號判斷方法,讓你扔掉靠多個if else判斷路況的寫法
單片機(jī)源程序如下:
#ifndef _CONTROL_H
#define _CONTROL_H
extern uchar temp1;
extern uchar temp2;//temp2左側(cè)燈數(shù)據(jù)變量
uchar i;
int v=230;//直線跑時的速度 方案1:255 方案2:230
//方案一
/*
int code table1[]={0,255,255,255};//1.普通彎道左輪速度 2.銳角彎道左輪速度 3.直角彎道左輪速度
int code table2[]={0,80,140,130};//1.普通彎道左輪速度 2.銳角彎道左輪倒轉(zhuǎn) 3.直角彎道左輪倒轉(zhuǎn)
int code table3[]={0,255,255,250};//1.普通彎道右輪速度 2.銳角彎道右輪速度 3.直角彎道右輪速度
int code table4[]={0,80,140,130};//1.普通彎道右輪倒轉(zhuǎn) 2.銳角彎道右輪倒轉(zhuǎn) 3.直角彎道右輪倒轉(zhuǎn)
*/
//方案二
int code table1[]={0,230,230,230};//1.普通彎道左輪速度 2.銳角彎道左輪速度 3.直角彎道左輪速度
int code table2[]={0, 70,140,140}; //1.普通彎道左輪倒轉(zhuǎn) 2.銳角彎道左輪倒轉(zhuǎn) 3.直角彎道左輪倒轉(zhuǎn)
int code table3[]={0,230,230,230};//1.普通彎道右輪速度 2.銳角彎道右輪速度 3.直角彎道右輪速度
int code table4[]={0, 70,140,140}; //1.普通彎道右輪倒轉(zhuǎn) 2.銳角彎道右輪倒轉(zhuǎn) 3.直角彎道右輪倒轉(zhuǎn)
void control()
{
detect();
if(temp1>temp2)//左拐情形
{
i=temp1-temp2;
switch(i)
{
case 1 : PWM_SET(0,table2[i],0,table3[i]);break; //普通彎道
case 2 : PWM_SET(1,table2[i],0,table3[i]);break; //銳角彎道
case 3 : PWM_SET(1,table2[i],0,table3[i]);delayms(40);break;//直角彎道
default : break;
}
while(led3);
}
else if(temp1<temp2)//右拐
{
i=temp2-temp1;
switch(i)
{
case 1 : PWM_SET(0,table1[i],0,table4[i]);break;
case 2 : PWM_SET(0,table1[i],1,table4[i]);break;
case 3 : PWM_SET(0,table1[i],1,table4[i]);delayms(40);break;
default : break;
}
while(led3);
}
else
{
if(!temp1)//直走和停止
{
PWM_SET(0,v,0,v-2);
delayms(66);
detect();
if(!temp1&&!temp2)
{
PWM_SET(0,0,0,0);
while(1);
}
else
{
PWM_SET(0,v,0,v-2);
}
}
else
{
PWM_SET(0,v,0,v-2);
}
}
}
/**********************************************
根據(jù)兩側(cè)燈讀回的數(shù)據(jù)值來進(jìn)行電機(jī)控制
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
源程序如下:
#include<12c5a60s2.h>
#include<stdio.h>
#include<sbitdef.h>
#include<yanshi.h>
#include<pwm.h>
#include<zhuanquan.h>
#include<detect.h>
#include<lanya.h>
#include<xunji.h>
uchar flag=0;
void main()
{
flag=0;
PWM_clock_init();
lanyainit();
while(1)
{
if(!flag)
{
xunji1();
lanya();
}
else
{
xunji2();
}
}
}
復(fù)制代碼
所有資料51hei提供下載:
決賽程序.zip
(28.89 KB, 下載次數(shù): 28)
2017-11-11 14:18 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1