久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
我的單片機pwm尋跡小車源程序
[打印本頁]
作者:
俁戈
時間:
2017-10-23 20:40
標題:
我的單片機pwm尋跡小車源程序
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit Z1=P2^0; //左電機前進
sbit Z2=P2^1; //左電機后退
sbit Y1=P2^2; //右電機前進
sbit Y2=P2^3; //右電機后退
sbit ENA=P0^0;
sbit ENB=P0^1;
sbit L1=P1^0; //左1
sbit L2=P1^1; //左2
sbit R1=P1^2; //右1
sbit R2=P1^3; //右2
double a=0;
int aa=0,d=0,c=0;
uchar b,bb;
uchar pwm_val_left =0;
double push_val_left =0; //左電機占空比N/10
uchar pwm_val_right =0;
double push_val_right=0; //右電機占空比N/10
bit Right_moto_stp=1;
bit Left_moto_stp =1;
void run1(void) //前進函數
{
push_val_left =5.5; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度
push_val_right =5.5; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度
Z1=0;Z2=1;
Y1=0;Y2=1;
}
void run(void) //前進函數
{
push_val_left =20; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度
push_val_right =20; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度
Z1=0;Z2=1;
Y1=0;Y2=1;
}
void run2(void) //前進函數
{
push_val_left =9; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度
push_val_right =9; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度
Z1=0;Z2=1;
Y1=0;Y2=1;
}
void left(void) //直角左轉函數
{
push_val_left =18;
push_val_right =18;
Z1=1;Z2=0;
Y1=0;Y2=1;
}
void left1(void) //左轉函數
{
push_val_left =16;
push_val_right =16;
Z1=1;Z2=0;
Y1=0;Y2=1;
}
void left2(void) //小左轉函數
{
push_val_left =19;
push_val_right =19;
Z1=1;Z2=1;
Y1=0;Y2=1;
}
void right(void) //直角右轉函數
{
push_val_left =18;
push_val_right =18;
Z1=0;Z2=1;
Y1=1;Y2=0;
}
void right1(void) //右轉函數
{
push_val_left =16;
push_val_right =16;
Z1=0;Z2=1;
Y1=1;Y2=0;
}
void right2(void) //小右轉函數
{
push_val_left =19;
push_val_right =19;
Z1=0;Z2=1;
Y1=1;Y2=1;
}
void stop(void)
{
Z1=1;Z2=1;
Y1=1;Y2=1;
}
void pwm_out_left_moto(void) //左電機調速,調節push_val_left的值改變電機轉速,占空比
{
if(Left_moto_stp)
{
{if(pwm_val_left<=push_val_left)
{ ENB=1;}
else
{ENB=0;}
}
{if(pwm_val_left>=20)
{pwm_val_left=0;}
}
}
else
{ENB=0;}
}
void pwm_out_right_moto(void) //右電機調速,調節push_val_left的值改變電機轉速,占空比
{
if(Right_moto_stp)
{
if(pwm_val_right<=push_val_right)
{ENA=1;}
else
{ENA=0;}
if(pwm_val_right>=20)
{pwm_val_right=0;}
}
else
{ENA=0;}
}
void xunji()
{
if(L1==1&&L2==1&&R1==1&&R2==1)
a++;
if(L1==0&&L2==0&&R1==0&&R2==0)
{run();aa++;}
if((L1==1&&L2==0&&R1==0&&R2==0)||(L1==1&&L2==1&&R1==1&&R2==0)||(L1==1&&L2==1&&R1==0&&R2==0))
left1();
if((L1==0&&L2==0&&R1==0&&R2==1)||(L1==0&&L2==1&&R1==1&&R2==1)||(L1==0&&L2==0&&R1==1&&R2==1))
right1();
if(L1==0&&L2==1&&R1==0&&R2==0) left2();
if(L1==0&&L2==0&&R1==1&&R2==0) right2();
if((L1==1&&L2==1&&R1==1&&R2==1)&&a>=100)
{
stop(); a=0;
}
if(aa>=13000) { bb=1; aa=0; }
while(bb==1)
{
if(L1==0&&L2==0&&R1==0&&R2==0) run2();
if((L1==1&&L2==0&&R1==0&&R2==0)||(L1==1&&L2==1&&R1==1&&R2==0)||(L1==1&&L2==1&&R1==0&&R2==0))
left1();
if((L1==0&&L2==0&&R1==0&&R2==1)||(L1==0&&L2==1&&R1==1&&R2==1)||(L1==0&&L2==0&&R1==1&&R2==1))
right1();
if(L1==0&&L2==1&&R1==0&&R2==0) {left2();aa++;}
if(L1==0&&L2==0&&R1==1&&R2==0) {right2();aa++;}
while(aa>=700)
{
if(L1==0&&L2==0&&R1==0&&R2==0)
run();
if((L1==1&&L2==0&&R1==0&&R2==0)||(L1==1&&L2==1&&R1==1&&R2==0)||(L1==1&&L2==1&&R1==0&&R2==0))
left1();
if((L1==0&&L2==0&&R1==0&&R2==1)||(L1==0&&L2==1&&R1==1&&R2==1)||(L1==0&&L2==0&&R1==1&&R2==1))
right1();
if(L1==0&&L2==1&&R1==0&&R2==0) {left2();}
if(L1==0&&L2==0&&R1==1&&R2==0) right2();
if(L1==1&&L2==1&&R1==1&&R2==1) a++;
if((a>=60))
{
b=1;
}
while(b==1)
{
if(L1==0&&L2==0&&R1==0&&R2==0)
run1();
if((L1==1&&L2==0&&R1==0&&R2==0)||(L1==1&&L2==1&&R1==1&&R2==0)||(L1==1&&L2==1&&R1==0&&R2==0))
left();
if((L1==0&&L2==0&&R1==0&&R2==1)||(L1==0&&L2==1&&R1==1&&R2==1)||(L1==0&&L2==0&&R1==1&&R2==1))
right();
if(L1==0&&L2==1&&R1==0&&R2==0) {left2(); c++;}
if(L1==0&&L2==0&&R1==1&&R2==0) {right2();d++;}
while(c+d>=15000)
{
if(L1==0&&L2==0&&R1==0&&R2==0) run();
if((L1==1&&L2==0&&R1==0&&R2==0)||(L1==1&&L2==1&&R1==1&&R2==0)||(L1==1&&L2==1&&R1==0&&R2==0))
left1();
if((L1==0&&L2==0&&R1==0&&R2==1)||(L1==0&&L2==1&&R1==1&&R2==1)||(L1==0&&L2==0&&R1==1&&R2==1))
right1();
if(L1==0&&L2==1&&R1==0&&R2==0) left2();
if(L1==0&&L2==0&&R1==1&&R2==0) right2();
if(L1==1&&L2==1&&R1==1&&R2==1) stop();
}
if((L1==1&&L2==1&&R1==1&&R2==1))
{
stop(); a=0;
}
}
}
}
// if((a>=60))
// {
// b=1;
// }
// while(b==1)
// {
// if(L1==0&&L2==0&&R1==0&&R2==0)
// run1();
// if((L1==1&&L2==0&&R1==0&&R2==0)||(L1==1&&L2==1&&R1==1&&R2==0)||(L1==1&&L2==1&&R1==0&&R2==0))
// left();
// if((L1==0&&L2==0&&R1==0&&R2==1)||(L1==0&&L2==1&&R1==1&&R2==1)||(L1==0&&L2==0&&R1==1&&R2==1))
// right();
// if(L1==0&&L2==1&&R1==0&&R2==0) {left2(); c++;}
// if(L1==0&&L2==0&&R1==1&&R2==0) {right2();d++;}
//
// while(c+d>=15000)
// {
// if(L1==0&&L2==0&&R1==0&&R2==0) run();
// if((L1==1&&L2==0&&R1==0&&R2==0)||(L1==1&&L2==1&&R1==1&&R2==0)||(L1==1&&L2==1&&R1==0&&R2==0))
// left1();
// if((L1==0&&L2==0&&R1==0&&R2==1)||(L1==0&&L2==1&&R1==1&&R2==1)||(L1==0&&L2==0&&R1==1&&R2==1))
// right1();
// if(L1==0&&L2==1&&R1==0&&R2==0) left2();
// if(L1==0&&L2==0&&R1==1&&R2==0) right2();
// if(L1==1&&L2==1&&R1==1&&R2==1) stop();
// }
//
// if((L1==1&&L2==1&&R1==1&&R2==1))
// {
// stop(); a=0;
// }
//
// }
}
/***********TIMER0中斷服務子函數產生PWM信號**********/
void timer0()interrupt 1 using 2
{
TH0=0XFC; //2Ms定時
TL0=0X30;
pwm_val_left++;
pwm_val_right++;
pwm_out_left_moto();
pwm_out_right_moto();
}
/***************************************************/
void main(void)
{
TMOD=0X01;
TH0= 0XFC; //2ms定時
TL0= 0X30;
TR0= 1;
ET0= 1;
EA = 1;
while(1) /*無限循環*/
{
xunji();
}
}
復制代碼
作者:
平淡是真963
時間:
2017-10-24 22:52
樓主能分享一下電路圖嗎?
作者:
TYM
時間:
2017-11-16 15:42
樓主有電路圖嗎
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
欧美综合一区
|
婷婷精品
|
99热这里只有精品8 激情毛片
|
夜夜艹
|
色黄爽
|
国产一区不卡
|
日韩亚洲视频
|
国产精品欧美一区喷水
|
aaaaaaa片毛片免费观看
|
日韩成人一区二区
|
夜夜草导航
|
一级黄a
|
一区二区三区视频免费看
|
精品欧美一区二区久久久伦
|
中文字幕国产一区
|
欧美五月婷婷
|
天天拍天天草
|
成人免费在线观看
|
国产高清在线精品
|
天天看天天爽
|
国产精品一区在线观看你懂的
|
久久久av中文字幕
|
久久久久国产一区二区三区四区
|
国产精品免费观看视频
|
国产一区h
|
国产精品1区2区3区 一区中文字幕
|
久草热视频
|
亚洲一区二区三区在线
|
国产中文字幕在线
|
国产福利资源在线
|
精品三区
|
欧美成人精品激情在线观看
|
亚洲一区二区三区免费在线观看
|
午夜影院网站
|
免费一级黄色
|
亚洲欧美精品在线
|
看a网站
|
亚洲精品日韩一区二区电影
|
色橹橹欧美在线观看视频高清
|
欧美一区二区三区在线视频
|
人人种亚洲
|