久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
智能四路循跡小車過直角的單片機源程序
[打印本頁]
作者:
稻草君
時間:
2017-10-25 22:23
標題:
智能四路循跡小車過直角的單片機源程序
單片機源程序如下:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define Right_moto_pwm P3^0; //ENA
#define Left_moto_pwm P3^1; //ENB
///////////////////////////
sbit P22=P2^2; // 左前車輪
sbit P23=P2^3; // 左后車輪
sbit P24=P2^4; //右前車輪
sbit P25=P2^5; //右后車輪
////////////////////////////////
sbit P10=P1^0;// 紅1外
sbit P11=P1^1; //紅2外
sbit P12=P1^2; // 紅3外
sbit P13=P1^3;//紅4外
/////////////////////////////////
sbit P20=P3^0;
sbit P21=P3^1;
uchar pwm_val_left =0;
double push_val_left =0; //左電機占空比N/10
double pwm_val_right =0;
uchar push_val_right=0; //右電機占空比N/10
bit Right_moto_stp=1;
bit Left_moto_stp =1;
double time=0;
int flag=0;
void stop(void)
{
P22=1;
P23=1;
P24=1;
P25=1;
}
void run(void)
{
push_val_left =16;//PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度
push_val_right =16;//} //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度
P22=0;
P23=1;
P24=0;
P25=1;
}
void run1(void)
{
push_val_left =7;
push_val_right =7;
P22=0;
P23=1;
P24=0;
P25=1;
}
void left(void) //左轉
{
push_val_left =20;
push_val_right =20;
P22=1;
P23=1;
P24=0;
P25=1;
}
void left1(void) //左轉
{
push_val_left =20;
push_val_right =19;
P22=1;
P23=0;
P24=0;
P25=1;
}
void right(void) //右轉
{
push_val_left =18;
push_val_right =18;
P22=0;
P23=1;
P24=1;
P25=1;
}
void right1(void) //右轉
{
push_val_left =20;
push_val_right =19;
P22=0;
P23=1;
P24=1;
P25=0;
}
void pwm_out_left_moto(void) //左電機調速,調節push_val_left的值改變電機轉速,占空比
{ //右轉
if(Left_moto_stp)
{
{if(pwm_val_left<=push_val_left)
{
P21=1; //ENB
}
else
{P21=0;}
}
{if(pwm_val_left>=20)
{pwm_val_left=0;}
}
}
else
{P21=0;}
}
/////////////////////////////////////////////////
void pwm_out_right_moto(void) //右電機調速,調節push_val_left的值改變電機轉速,占空比
{ //左轉
if(Right_moto_stp)
{
if(pwm_val_right<=push_val_right)
{P20=1;}
else
{P20=0;}
if(pwm_val_right>=20)
{pwm_val_right=0;}
}
else
{P20=0;}
}
void xunji()
{
if(P10==0&&P11==0&&P12==0&&P13==0)
{
if(flag==1)
run1();
else
run();
}
else
if((P10==1&&P11==1&&P12==0&&P13==0)||(P10==1&&P11==1&&P12==1&&P13==0)||(P10==1&&P11==0&&P12==0&&P13==0)||(P10==0&&P11==1&&P12==0&&P13==0)) //zuozhuan
{ if(flag==1)
left1(); //zuozhuan
else
left();
}
else
if((P10==0&&P11==0&&P12==0&&P13==1)||(P10==0&&P11==0&&P12==1&&P13==0)||(P10==0&&P11==0&&P12==1&&P13==1)||(P10==0&&P11==1&&P12==1&&P13==1))
{ if(flag==1) //youzhuan
right1();
else
right();
}
else
if((P10==1&&P11==0&&P12==1&&P13==0)||(P10==0&&P11==1&&P12==0&&P13==1)||(P10==0&&P11==1&&P12==1&&P13==0)||(P10==1&&P11==0&&P12==0&&P13==1)||(P10==1&&P11==1&&P12==0&&P13==1)||(P10==1&&P11==0&&P12==1&&P13==1))
{
run1();
}
else
if(P10==1&&P11==1&&P12==1&&P13==1)
{
if(flag==1)
run1();
else
stop();
}
}
void timer0()interrupt 1 using 2
{
TR1=0;
TH0=0xFC; //2Ms定時
TL0=0x30;
pwm_val_left++;
pwm_val_right++;
pwm_out_left_moto();
pwm_out_right_moto();
//xunji();
if(P10==0&&P11==0&&P12==0&&P13==0)
{
if(flag==1)
run1();
else
run();
}
else
if((P10==1&&P11==1&&P12==0&&P13==0)||(P10==1&&P11==1&&P12==1&&P13==0)||(P10==1&&P11==0&&P12==0&&P13==0)||(P10==0&&P11==1&&P12==0&&P13==0)) //zuozhuan
{ if(flag==1)
left1(); //zuozhuan
else
left();
}
else
if((P10==0&&P11==0&&P12==0&&P13==1)||(P10==0&&P11==0&&P12==1&&P13==0)||(P10==0&&P11==0&&P12==1&&P13==1)||(P10==0&&P11==1&&P12==1&&P13==1))
{ if(flag==1) //youzhuan
right1();
else
right();
}
else
if((P10==1&&P11==0&&P12==1&&P13==0)||(P10==0&&P11==1&&P12==0&&P13==1)||(P10==0&&P11==1&&P12==1&&P13==0)||(P10==1&&P11==0&&P12==0&&P13==1)||(P10==1&&P11==1&&P12==0&&P13==1)||(P10==1&&P11==0&&P12==1&&P13==1))
{
run1();
}
else
if(P10==1&&P11==1&&P12==1&&P13==1)
{
if(flag==1)
run1();
else
stop();
}
TR1=1;
}
void timer1() interrupt 3
{
TR1=1 ;
TH1=0xFC; //2Ms定時
TL1=0x30;
time++;
if(time<23000)
{
flag=0;
}
if(time>23000&&time<53000)
{
flag=1;
}
if(time>53000)
flag=0;
}
/***************************************************/
void main(void)
{
TMOD=0X21;
TH0= 0xFC; //2ms定時
TL0= 0x30;
TH1= 0xFC; //2ms定時
TL1= 0x30;
TR0= 1;
ET0= 1;
ET1= 1;
EA = 1;
while(1) /*無限循環*/
{
// xunji();
if(P10==1&&P11==1&&P12==1&&P13==1&&flag==0)//全滅
{
stop();
}
}
}
復制代碼
作者:
逗比不逗_
時間:
2018-4-25 20:15
本帖最后由 逗比不逗_ 于 2018-4-29 14:46 編輯
不錯哦
作者:
haide1998
時間:
2024-5-5 09:30
路過學習,謝謝分享!
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产精品国产三级国产aⅴ无密码
|
天天看天天操
|
亚洲天堂一区
|
91高清视频在线
|
国内自拍视频在线观看
|
一区二区亚洲
|
久草99
|
精品一区二区三区四区在线
|
亚洲乱码一区二区三区在线观看
|
69堂永久69tangcom
|
欧美精选一区二区
|
久久99精品久久久久久国产越南
|
国产精品乱码一区二区三区
|
视频在线观看亚洲
|
一区二区三区四区免费在线观看
|
精品自拍视频在线观看
|
国产高清在线精品一区二区三区
|
欧美一区二区三区在线免费观看
|
久久久女
|
三级在线视频
|
国产高清精品一区二区三区
|
av在线免费播放
|
拍拍无遮挡人做人爱视频免费观看
|
久久躁日日躁aaaaxxxx
|
超碰激情
|
91精品国产色综合久久不卡98口
|
91亚洲视频在线
|
在线观看免费观看在线91
|
99伊人
|
一区二区三区精品
|
亚洲另类视频
|
欧洲一级黄
|
玖玖国产
|
久草视频观看
|
亚洲精品成人av久久
|
国产精品成人一区二区三区
|
欧美性a视频
|
草久网
|
国产区免费视频
|
91久久久久久久久久久久久
|
欧美久久久久
|