久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機紅外避障小車程序
[打印本頁]
作者:
wzd
時間:
2020-5-25 11:51
標題:
單片機紅外避障小車程序
紅外避障小車
單片機源程序如下:
/******************************************************************
***名稱:小車紅外避障參考程序(PWM)*******************************
***晶振:11.0592MHZ*************************************************
******************************************************************/
/******************************************************************
************************* 頭文件 **********************************
******************************************************************/
#include<AT89X52.H>
/******************************************************************
************************電機驅動定義*******************************
******************************************************************/
#define LS {P1_1=0,P1_2=0;} //左電機停轉
#define Lg {P1_1=1,P1_2=0;} //左電機正轉
#define Lb {P1_1=0,P1_2=1;} //左電機反轉
#define RS {P1_4=0,P1_5=0;} //右電機停轉
#define Rg {P1_4=1,P1_5=0;} //右電機正轉
#define Rb {P1_4=0,P1_5=1;} //右電機反轉
#define Lp P1_0 //PWM信號端
#define Rp P1_3 //PWM信號端
#define Ll P3_4 //左傳感器
#define Rl P3_5 //右傳感器
sbit BUZZ = P2^3; //蜂鳴器引腳
/******************************************************************
**********************PWM調速相關變量******************************
******************************************************************/
unsigned char pwm_val_left =0; //變量定義
unsigned char push_val_left =0; //左電機占空比N/20
unsigned char pwm_val_right =0;
unsigned char push_val_right=0; //右電機占空比N/20
bit Rs=1;
bit Ls =1;
unsigned int time=0;
/******************************************************************
**********************延時函數*************************************
******************************************************************/
void delay(unsigned int k)
{
unsigned int x,y;
for(x=0;x<k;x++)
for(y=0;y<2000;y++);
}
/******************************************************************
******************************小車前進*****************************
******************************************************************/
void front_run(void)
{
push_val_left=10;
push_val_right=10.1;
Lg;
Rg;
}
/******************************************************************
******************************小車后退*****************************
******************************************************************/
void back_run(void)
{
push_val_left=10;
push_val_right=10.1;
Lb;
Rb;
}
/******************************************************************
******************************小車左轉*****************************
******************************************************************/
void left_run(void)
{
push_val_left=12;
push_val_right=12;
Rg;
Lb;
}
/******************************************************************
******************************小車右轉******************************
******************************************************************/
void right_run(void)
{
push_val_left=12;
push_val_right=12;
Lg;
Rb;
}
/******************************************************************
******************************小車停*******************************
******************************************************************/
void stop(void)
{
push_val_left=15;
push_val_right=15;
LS;
RS;
}
/******************************************************************
****************************左電機調速*****************************
******************************************************************/
void pwm_out_left_moto(void)
{
if(Ls)
{
if(pwm_val_left<=push_val_left)
{
Lp=1;
}
else
{
Lp=0;
}
if(pwm_val_left>=20)
pwm_val_left=0;
}
else
{
Lp=0;
}
}
/******************************************************************
***************************右電機調速******************************
******************************************************************/
void pwm_out_right_moto(void)
{
if(Rs)
{
if(pwm_val_right<=push_val_right)
{
Rp=1;
}
else
{
Rp=0;
}
if(pwm_val_right>=20)
pwm_val_right=0;
}
else
{
Rp=0;
}
}
/******************************************************************
************************定時器0初始化******************************
******************************************************************/
void timer0_Init(void)
{
TMOD=0X01;
TH0= 0XFc; //1ms定時
TL0= 0X18;
TR0= 1;
ET0= 1;
EA = 1; //開總中斷
}
/******************************************************************
*******************定時器0中斷服務子程序***************************
******************************************************************/
void timer0()interrupt 1 using 2
{
TH0=0XFc;
TL0=0X18;
time++;
pwm_val_left++;
pwm_val_right++;
pwm_out_left_moto();
pwm_out_right_moto();
}
/******************************************************************
**************************主函數***********************************
******************************************************************/
void main(void)
{
unsigned char i;
stop(); //小車停轉
timer0_Init();
while(1)
{
if(Ll==1&&Rl==1) //前方無障礙
front_run(); //前進
else
{
if(Ll==1&&Rl==0) //右前方右障礙
{
left_run(); //左轉
delay(40);
}
if(Rl==1&&Ll==0) //左前方右障礙
{
right_run(); //右轉
delay(40);
}
if(Rl==0&&Ll==0) //前方有障礙
{
back_run(); //后退
delay(40);
right_run(); //右轉
delay(90);
}
}
}
}
/******************************************************************
******************************結束*********************************
*******************************************************************/
復制代碼
所有資料51hei提供下載:
XC.zip
(32.23 KB, 下載次數: 24)
2020-5-25 11:48 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
admin
時間:
2020-5-29 01:02
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
a在线免费观看
|
亚洲成人一级
|
亚洲国产日韩欧美
|
韩国毛片一区二区三区
|
亚洲午夜精品视频
|
国产综合久久久久久鬼色
|
一区二区三区四区免费在线观看
|
欧美亚洲另类丝袜综合网动图
|
日韩在线视频一区
|
国产精品久久一区
|
午夜电影网站
|
日本特黄a级高清免费大片 成年人黄色小视频
|
欧美一区永久视频免费观看
|
精品国产乱码久久久久久中文
|
亚洲啪啪
|
亚洲欧洲成人av每日更新
|
蜜桃视频在线观看免费视频网站www
|
欧美四虎
|
少妇一级淫片aaaaaaaaa
|
欧美激情综合色综合啪啪五月
|
国产成人亚洲精品
|
一区二区三区不卡视频
|
综合久久99
|
国产91在线 | 中日
|
操操操操操
|
国色天香综合网
|
国产乱码精品1区2区3区
|
久久免费精品视频
|
天天插日日操
|
狠狠干网
|
另类 综合 日韩 欧美 亚洲
|
欧美寡妇偷汉性猛交
|
成人精品系列
|
九九国产
|
精品日本中文字幕
|
久久久久亚洲国产
|
最新免费视频
|
国产精品mv在线观看
|
亚洲一区二区三区在线视频
|
日韩在线视频网址
|
欧美一区二区免费
|