久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
倆路pwm調速循跡小車 單片機源程序
[打印本頁]
作者:
132455
時間:
2019-5-31 09:40
標題:
倆路pwm調速循跡小車 單片機源程序
倆路pwm調速循跡小車
單片機源程序如下:
/********** 循跡程序 ************************/
// P0.0和P0.1-----右電機
// P0.2和P0.3-----左電機
// P1.0-----------右1光電管
// P1.1-----------左1光電管
/*****************************************************/
#include<reg52.h>//包含必要頭文件
#define uchar unsigned char
#define uint unsigned int
void Init_Timer0(void);//定時器初始化
sbit P10=P1^0; //定義單片機控制左邊電機的引腳
sbit P11=P1^1; //定義單片機控制左邊電機的引腳
sbit P12=P1^2; //定義單片機控制右邊電機的引腳
sbit P13=P1^3; //定義單片機控制右邊電機的引腳
sbit ENA=P3^0;
sbit ENB=P3^1;
#define Right_moto_pwm P3^0 //接驅動模塊ENA使能端輸入PWM信號調節速度
#define Left_moto_pwm P3^1 //接驅動模塊ENB使能端輸入PWM信號調節速度
#define Left_moto_back {P10=0,P11=1;} //左電機后退
#define Left_moto_go {P10=1,P11=0;} //左電機前進
#define Left_moto_stop {P10=1,P11=1;} //左電機停轉
#define Right_moto_back {P12=0,P13=1;} //右電機后退
#define Right_moto_go {P12=1,P13=0;} //右電機前轉
#define Right_moto_stop {P12=1,P13=1;} //右電機停轉
sbit y1=P2^0; //定義單片機連接循跡板右邊第一個光電管的引腳
sbit z1=P2^1; //定義單片機連接循跡板左邊第一個光電管的引腳
int pwm_val_left =0;
int push_val_left =0; //左電機占空比N/10
int pwm_val_right =0;
int push_val_right=0; //右電機占空比N/10
bit Right_moto_stp=1;
bit Left_moto_stp =1;
void delay(int z) //pwm中使用的延時函數
{
int i,j;
for(i=2;i>0;i--)
for(j=z;j>0;j--);
}
void qian() //左右輪協同前進子函數
{
push_val_left =7.5; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度
push_val_right =7; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度
Left_moto_go ; //左電機前進
Right_moto_go ; //右電機前進
}
void you() //左右輪協同 右轉子函數
{
push_val_left =7; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度
push_val_right =7; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度
Left_moto_go ; //左電機前進
Right_moto_back ; //右電機前進
}
void zuo() //左右輪協同 左轉子函數
{
push_val_left =7; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度
push_val_right =7; //PWM 調節參數1-20 1為最慢20是最快 改這個值可以改變其速度
Left_moto_back ; //左電機前進
Right_moto_go ; //右電機前進
}
void ting() //左右輪都停止轉動
{
Right_moto_stop; //右電機停走
Left_moto_stop; //左電機停走
}
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 main() //主函數
{
TMOD |=0X01;
TH0= 0XFC; //2ms定時
TL0= 0X30;
TR0= 1;
ET0= 1;
EA = 1;
z1=1;
y1=1;
while(1) //單片機不間斷監測 (是個死循環)
{
qian(); //調用前進函數,使小車光電管不滿足以下幾個條件時都處于前進狀態
while(y1==1&z1==0)
{
you(); //
//zuo();
}
while(y1==0&z1==1)
{
zuo(); //
//you();
}
while(y1==1&z1==1)
{
ting(); // 停止
}
while(y1==0&z1==0) //判斷當左邊和右光電管都遇到黑線時
{
qian(); //調用前進函數
}
}
}
void Init_Timer0()interrupt 1 using 2
{
TH0=0XFC; //2Ms定時
TL0=0X30;
pwm_val_left++;
pwm_val_right++;
pwm_out_left_moto();
pwm_out_right_moto();
}
復制代碼
所有資料51hei提供下載:
pwm調速正常慢速1.zip
(23.5 KB, 下載次數: 15)
2019-5-31 09:37 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
9999国产精品欧美久久久久久
|
中文字幕一级毛片视频
|
亚洲欧美一区二区三区视频
|
欧美日韩在线播放
|
精品久久久久久久
|
国内精品久久久久久久
|
日韩一二区在线
|
久久不卡
|
操操操av
|
中文字幕高清
|
欧美专区日韩
|
亚洲视频在线观看免费
|
亚洲精品美女视频
|
成人av在线大片
|
国产精品一区二区三区免费观看
|
我爱操
|
亚洲视频免费观看
|
亚洲视频一区在线播放
|
91精品国产91综合久久蜜臀
|
xx视频在线
|
91视频网址
|
拍真实国产伦偷精品
|
美女黄网站
|
亚洲精品一区中文字幕乱码
|
欧美日韩国产精品一区二区
|
亚洲成人午夜电影
|
色综合久久久久
|
免费在线观看av网址
|
精品一区二区三区在线视频
|
免费视频一区二区
|
成人免费视频网站在线看
|
日韩欧美视频在线
|
久久高清
|
成人在线免费观看视频
|
欧美国产免费
|
成人午夜影院
|
请别相信他免费喜剧电影在线观看
|
久久久久久九九九九九九
|
日韩成人影院在线观看
|
天天影视亚洲综合网
|
欧美精品乱码久久久久久按摩
|