亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
循跡+pwm調速的小車源程序
[打印本頁]
作者:
17805591357
時間:
2017-10-27 22:28
標題:
循跡+pwm調速的小車源程序
小車的單片機源程序如下:
#include<reg52.h>
////////////電機轉動
sbit P30=P2^0;
sbit P31=P2^1;
sbit P32=P2^2;
sbit P33=P2^3;
/////////pwm調試使能端
sbit ENA=P0^0;
sbit ENB=P0^1;
////////////四路循跡
sbit P10=P1^7;
sbit P11=P1^6;
sbit P12=P1^5;
sbit P13=P1^4;
////////////////
#define Right_moto_pwm P0^0 //接驅動模塊ENA使能端輸入PWM信號調節速度
void delay(unsigned int t); //函數聲明
#define Left_moto_pwm P0^1 //接驅動模塊ENB使能端輸入PWM信號調節速度
void Init_Timer0(void);//定時器初始化
///////////////定義電機轉動方向
#define Left_moto_back {P30=1,P31=0;} //左電機后退
#define Left_moto_go {P30=0,P31=1;} //左電機前進
#define Left_moto_stop {P30=1,P31=1;} //左電機停轉
#define Right_moto_back {P32=1,P33=0;} //右電機后退
#define Right_moto_go {P32=0,P33=1;} //右電機前轉
#define Right_moto_stop {P32=1,P33=1;} //右電機停轉
//////////////////////////////
#define uchar unsigned char
#define uint unsigned int
/////////////////////////////
uchar pwm_val_left =0;
uchar push_val_left =0; //左電機占空比N/10
uchar pwm_val_right =0;
uchar push_val_right=0; //右電機占空比N/10
bit Right_moto_stp=1;
bit Left_moto_stp =1;
uint num,i,d,j=0;
/****************************************************************
********/
void run(void) //前進函數
{
push_val_left =17; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度
push_val_right =17; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度
Left_moto_go ; //左電機前進
Right_moto_go ; //右電機前進
}
void run1(void)//前進函數1
{
push_val_left =4.8; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度
push_val_right =4.8; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度
Left_moto_go ; //左電機前進
Right_moto_go ; //右電機前進
}
void run2(void)//前進函數1
{
push_val_left =21; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度
push_val_right =21; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度
Left_moto_go ; //左電機前進
Right_moto_go ; //右電機前進
}
/****************************************************************
********/
void left(void) //左轉函數
{
push_val_left =19;
push_val_right =19;
Right_moto_go; //右電機繼續
Left_moto_stop; //左電機停走
}
void left1(void) //左轉函數 1
{
push_val_left =20;
push_val_right =20;
Right_moto_go; //右電機繼續
Left_moto_stop; //左電機停走
}
/*************************************** *********************************/
void right(void) //右轉函數
{
push_val_left =19;
push_val_right =19;
Right_moto_stop; //右電機停走
Left_moto_go; //左電機繼續
}
void right1(void) //右轉函數1
{
push_val_left =20;
push_val_right =20;
Right_moto_stop; //右電機停走
Left_moto_go; //左電機繼續
}
///////////////////////////////////////////////////////////////停止
void stop(void)
{
Right_moto_stop; //右電機停走
Left_moto_stop; //左電機停走
//run();
//
//Delayms(100);
}
///////////////////////////////////////////
void zzhijiao()
{
push_val_left =19;
push_val_right =19;
Left_moto_go ; //左電機前進
Right_moto_back ;
}
///////////////////////////////////////
void yzhijiao()
{
push_val_left =19;
push_val_right =19;
Left_moto_back ; //左電機前進
Right_moto_go ;}
/*************************PWM調 制 電 機 轉 速
********************************/
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()
{
uchar a=0,b=0;
if( P10==1&&P11==1&&P12==1&&P13==1)
{
i++;
}
if( P10==0&&P11==0&&P12==0&&P13==0)
{
run();
}
if( P10==0&&P11==0&&P12==1&&P13==0||P10==0&&P11==0&&P12==0&&P13==1)
{
right();
}
if( P10==0&&P11==1&&P12==0&&P13==0||P10==1&&P11==0&&P12==0&&P13==0)
{
left();
}
if( P10==1&&P11==1&&P12==1&&P13==1&&i>=500) //600
{
j++;
}
while(j==2)
{
if( P10==0&&P11==0&&P12==0&&P13==0)
{
run1();
}
if( P10==0&&P11==0&&P12==1&&P13==0||P10==0&&P11==0&&P12==0&&P13==1)
{
right();
}
if( P10==1&&P11==1&&P12==0&&P13==0||P10==1&&P11==1&&P12==1&&P13==0)
{
yzhijiao();
a++;
}
if( P10==0&&P11==0&&P12==1&&P13==1||P10==0&&P11==1&&P12==1&&P13==1)
{
zzhijiao();
d++;
}
if( P10==0&&P11==1&&P12==0&&P13==0||P10==1&&P11==0&&P12==0&&P13==0)
{ left();}
if(a+d>=2400)
{
if( P10==0&&P11==0&&P12==0&&P13==0)
{
run2();
}
if( P10==0&&P11==0&&P12==1&&P13==0||P10==0&&P11==0&&P12==0&&P13==1)
{
right1();
}
if( P10==0&&P11==1&&P12==0&&P13==0||P10==1&&P11==0&&P12==0&&P13==0)
{
left1();
}
if( P10==1&&P11==1&&P12==1&&P13==1) //600
{
stop();
}
}
}
}
/***********TIMER0中斷服務子函數產生PWM信號**********/
void Init_Timer0()interrupt 1 using 2
{
TH0=0XFC; //2Ms定時
TL0=0X30;
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
循跡小車.rar
(24.16 KB, 下載次數: 489)
2017-10-27 22:27 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
我是大副
時間:
2017-10-30 22:36
收藏額 謝謝樓主
作者:
kikiikllll
時間:
2018-1-16 22:25
完全解決燃眉之急
作者:
想依吾
時間:
2018-5-25 14:28
代碼非常清楚,解決了我對于pwm調速的疑問
作者:
xmm丶
時間:
2018-11-6 20:07
十分感謝 , 寫的非常清楚明了 謝謝謝謝
作者:
hakuyachigira
時間:
2018-12-1 14:48
剛好需要 謝謝樓主
作者:
hakuyachigira
時間:
2018-12-1 16:29
val是什么意思呢
作者:
eqwe
時間:
2018-12-4 10:44
謝謝源代碼,,。
作者:
zhylok
時間:
2018-12-29 15:46
厲害了
作者:
weiwuji
時間:
2019-2-21 11:22
代碼寫的很可以,謝謝大佬相助
作者:
1501575623
時間:
2019-4-11 20:37
真好啊
作者:
osn
時間:
2019-4-12 14:06
非常好
作者:
20171594i51
時間:
2019-4-12 15:50
請問具體的單片機型號是什么
作者:
whb1997
時間:
2019-4-22 14:43
不錯啊啊啊
作者:
遠和仔
時間:
2019-5-15 17:18
厲害
作者:
dasdad
時間:
2019-5-24 20:34
真不錯
作者:
ljzhang
時間:
2019-6-1 10:13
謝謝樓主,非常有用
作者:
chupeng1234
時間:
2019-11-3 21:02
謝謝,幫到我不少!
作者:
17805591357
時間:
2020-3-1 12:56
嫌的無聊,曬曬
作者:
chendaying
時間:
2021-7-24 08:08
謝謝樓主,非常有用,學習了!
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1