久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
自己寫的51單片機智能車程序 不懂得可以問我
[打印本頁]
作者:
HandsomeV
時間:
2019-3-18 20:46
標(biāo)題:
自己寫的51單片機智能車程序 不懂得可以問我
不涉及路口判斷
單片機源程序如下:
#include<reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
//占空比標(biāo)志
u8 ZKB_QZ,ZKB_QY,ZKB_HZ,ZKB_HY,Q_Z,Q_Y,H_Z,H_Y;
//電機控制端口 P1
sbit IN1=P1^0; //前 左 反轉(zhuǎn)
sbit IN2=P1^1; //前 左 正轉(zhuǎn)
sbit IN3=P1^2; //前 右 正轉(zhuǎn)
sbit IN4=P1^3; //前 右 反轉(zhuǎn)
sbit IN11=P1^4; //后 右 反轉(zhuǎn)
sbit IN22=P1^5; //后 右 正轉(zhuǎn)
sbit IN33=P1^6; //后 左 正轉(zhuǎn)
sbit IN44=P1^7; //后 左 反轉(zhuǎn)
//紅外傳感器 P3
sbit hw_left=P3^7;
sbit hw_mid=P3^6;
sbit hw_right=P3^5;
//PWM調(diào)速端口 P0
sbit PWM_QZ=P0^1; //前 左
sbit PWM_QY=P0^2; //前 右
sbit PWM_HZ=P0^3; //后 左
sbit PWM_HY=P0^4; //后 右
//延時函數(shù)
void delay(u16 num)
{
u16 x,y;
for(x=num;x>0;x--)
for(y=110;y>0;y--)
{
;
}
}
//定時器 初始化函數(shù)
void Z_D()
{
TMOD=0x01;
TH0=(65536-100)/256;
TL0=(65536-100)%256 ;
EA=1;
ET0=1;
TR0=1;
PWM_QZ=1;
PWM_QY=1;
PWM_HZ=1;
PWM_HY=1;
}
//中斷服務(wù)函數(shù)
void time_service(void) interrupt 1
{
Q_Z++,Q_Y++,H_Z++,H_Y++; //進入中斷自加
//前 右
if(Q_Y<ZKB_QY) //如果小于設(shè)定值,使能端置1,否則置0
{
PWM_QY=1;
}
else {PWM_QY=0;}
if(Q_Y==40) //如果i加到40;使能端取反,i置0
{
PWM_QY=~PWM_QY;
Q_Y=0;
}
//前 左
if(Q_Z<ZKB_QZ) //如果小于設(shè)定值,使能端置1,否則置0
{
PWM_QZ=1;
}
else {PWM_QZ=0;}
if(Q_Z==40) //如果i加到40;使能端取反,i置0
{
PWM_QZ=~PWM_QZ;
Q_Z=0;
}
//后 右
if(H_Y<ZKB_HY) //如果小于設(shè)定值,使能端置1,否則置0
{
PWM_HY=1;
}
else {PWM_HY=0;}
if(H_Y==40) //如果i加到40;使能端取反,i置0
{
PWM_HY=~PWM_HY;
H_Y=0;
}
//后 左
if(H_Z<ZKB_HZ) //如果小于設(shè)定值,使能端置1,否則置0
{
PWM_HZ=1;
}
else {PWM_HZ=0;}
if(H_Z==40) //如果i加到40;使能端取反,i置0
{
PWM_HZ=~PWM_HZ;
H_Z=0;
}
//定時器0重裝初值
TH0=(65536-100)/256;
TL0=(65536-100)%256;
}
//前進
void go()
{
ZKB_QZ=13;
ZKB_QY=8;
ZKB_HZ=15;
ZKB_HY=8;
IN2=1; //前 左 正轉(zhuǎn)
IN3=1; //前 右 正轉(zhuǎn)
IN22=0; //后 右 正轉(zhuǎn)
IN33=0; //后 左 正轉(zhuǎn)
IN1=0; //前 左 反轉(zhuǎn)
IN4=0; //前 右 反轉(zhuǎn)
IN11=1; //后 右 反轉(zhuǎn)
IN44=1; //后 左 反轉(zhuǎn)
}
//后退
void back()
{
ZKB_QZ=6;
ZKB_QY=6;
ZKB_HZ=6;
ZKB_HY=6;
IN2=0; //前 左 正轉(zhuǎn)
IN3=0; //前 右 正轉(zhuǎn)
IN22=1; //后 右 正轉(zhuǎn)
IN33=1; //后 左 正轉(zhuǎn)
IN1=1; //前 左 反轉(zhuǎn)
IN4=1; //前 右 反轉(zhuǎn)
IN11=0; //后 右 反轉(zhuǎn)
IN44=0; //后 左 反轉(zhuǎn)
}
//右轉(zhuǎn)
void right()
{
do
{
ZKB_QZ=15;
ZKB_QY=35;
ZKB_HZ=15;
ZKB_HY=35;
IN2=0; //前 左 反轉(zhuǎn)
IN3=1; //前 右 反轉(zhuǎn)
IN22=0; //后 右 反轉(zhuǎn)
IN33=1; //后 左 反轉(zhuǎn)
IN1=1; //前 左 正轉(zhuǎn)
IN4=0; //前 右 正轉(zhuǎn)
IN11=1; //后 右 正轉(zhuǎn)
IN44=0; //后 左 正轉(zhuǎn)
}
while(hw_mid==1);
}
//左轉(zhuǎn)
void left()
{
do
{
ZKB_QZ=15;
ZKB_QY=35;
ZKB_HZ=15;
ZKB_HY=35;
IN2=1; //前 左 反轉(zhuǎn)
IN3=0; //前 右 反轉(zhuǎn)
IN22=1; //后 右 反轉(zhuǎn)
IN33=0; //后 左 反轉(zhuǎn)
IN1=0; //前 左 正轉(zhuǎn)
IN4=1; //前 右 正轉(zhuǎn)
IN11=0; //后 右 正轉(zhuǎn)
IN44=1; //后 左 正轉(zhuǎn)
}
while(hw_mid==1);
}
void stop() //停止函數(shù)
{
IN2=0; //前 左 正轉(zhuǎn)
IN3=0; //前 右 正轉(zhuǎn)
IN22=0; //后 右 正轉(zhuǎn)
IN33=0; //后 左 正轉(zhuǎn)
IN1=0; //前 左 反轉(zhuǎn)
IN4=0; //前 右 反轉(zhuǎn)
IN11=0; //后 右 反轉(zhuǎn)
IN44=0; //后 左 反轉(zhuǎn)
}
void go_rignt()
{
ZKB_QZ=5;
ZKB_QY=5;
ZKB_HZ=5;
ZKB_HY=5;
IN2=1; //前 左 反轉(zhuǎn)
IN3=0; //前 右 反轉(zhuǎn)
IN22=1; //后 右 反轉(zhuǎn)
IN33=0; //后 左 反轉(zhuǎn)
IN1=0; //前 左 正轉(zhuǎn)
IN4=1; //前 右 正轉(zhuǎn)
IN11=0; //后 右 正轉(zhuǎn)
IN44=1; //后 左 正轉(zhuǎn)
}
void go_left()
{
ZKB_QZ=5;
ZKB_QY=5;
ZKB_HZ=5;
ZKB_HY=5;
IN2=0; //前 左 反轉(zhuǎn)
IN3=1; //前 右 反轉(zhuǎn)
IN22=0; //后 右 反轉(zhuǎn)
IN33=1; //后 左 反轉(zhuǎn)
IN1=1; //前 左 正轉(zhuǎn)
IN4=0; //前 右 正轉(zhuǎn)
IN11=1; //后 右 正轉(zhuǎn)
IN44=0; //后 左 正轉(zhuǎn)
}
void huigui()
{
u8 num;
for(num=2;num>0;num--)
{
if(hw_left==0 & hw_mid==1 & hw_right==1)
{
go_rignt();
}
if(hw_left==1 & hw_mid==1 & hw_right==0)
{
go_left();
}
}
}
void X_J() //循跡函數(shù)
{
u8 P_D; //定義判斷
//未檢測到黑線
if(hw_left==1 & hw_mid==1 & hw_right==1)
{
P_D=0;
}
//中間檢測到黑線
if(hw_left==1 & hw_mid==0 & hw_right==1)
{
P_D=1;
}
//左面檢測到黑線
if(hw_left==0 & hw_mid==1 & hw_right==1)
{
P_D=2;
}
//右面檢測到黑線
if(hw_left==1 & hw_mid==1 & hw_right==0)
{
P_D=3;
}
//全部都檢測到黑線后退
if(hw_left==0 & hw_mid==0 & hw_right==0)
{
P_D=4;
}
//中間和左面檢測到黑線
if(hw_left==0 & hw_mid==0 & hw_right==1)
{
P_D=5;
}
//中間和右面檢測到黑線
if(hw_left==1 & hw_mid==0 & hw_right==0)
{
P_D=6;
}
switch (P_D)
{
case 0: huigui();break; //情況0,停止
case 1: go(); break; //情況1,前進
case 2: left(); break; //情況2,左轉(zhuǎn)
case 3: right(); break; //情況3,右轉(zhuǎn)
case 4: back(); break; //情況4,后退
case 5: left(); break; //情況5,左轉(zhuǎn)
case 6: right(); break; //情況6,右轉(zhuǎn)
}
}
//主函數(shù)
void main()
{
Z_D();
delay(5);
while(1)
{
X_J();
}
}
復(fù)制代碼
所有資料51hei提供下載:
main.zip
(1.73 KB, 下載次數(shù): 17)
2019-3-18 20:46 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
陳軍123
時間:
2019-5-20 16:21
有原理圖哇?
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产免费视频
|
www.亚洲一区
|
日韩一区二区三区视频
|
91一区二区三区
|
色婷婷av99xx
|
干狠狠
|
中文字幕高清av
|
综合色在线
|
久久精品伊人
|
日韩成人在线看
|
91激情视频
|
91影院在线观看
|
韩日在线视频
|
国产精品久久一区二区三区
|
玖玖玖在线观看
|
久久久久久久久久久久久久国产
|
www.五月婷婷.com
|
免费在线看黄
|
影视一区
|
国产精品久久午夜夜伦鲁鲁
|
日韩福利
|
日韩图区
|
欧美精品一区二区在线观看
|
欧美精品一区二区三区四区 在线
|
亚洲精品观看
|
一区二区三区日韩精品
|
久久久久久久久淑女av国产精品
|
www.伊人.com
|
国产精品精品视频一区二区三区
|
亚洲视频手机在线
|
亚洲欧美日韩精品
|
天天搞天天搞
|
欧美黄色片在线观看
|
草草草影院
|
亚洲视频中文字幕
|
天堂亚洲网
|
日韩国产一区二区三区
|
caoporon
|
欧美精品a∨在线观看不卡 国产精品久久国产精品
|
亚洲 成人 在线
|
男女下面一进一出网站
|