欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機尋聲小車源程序
[打印本頁]
作者:
礦泉水小強
時間:
2018-4-13 21:05
標題:
單片機尋聲小車源程序
單片機源程序如下:
#include<reg52.h>
typedef unsigned int uint;
typedef unsigned char uchar;
int a=0;
sbit IN1=P1^0; //定義電機驅動信號輸出端
sbit IN2=P1^1; //定義電機驅動信號輸出端
sbit IN3=P1^2; //定義電機驅動信號輸出端
sbit IN4=P1^3; //定義電機驅動信號輸出端
sbit IN5=P1^4; //定義電機驅動信號輸出端
sbit IN6=P1^5; //定義電機驅動信號輸出端
sbit IN7=P1^6; //定義電機驅動信號輸出端
sbit IN8=P1^7; //定義電機驅動信號輸出端
sbit out1=P3^2;//定義尋聲模塊信號左輸入端 //可有可無中斷自動觸發
sbit out2=P3^3;//定義尋聲模塊信號右輸入端
char L_pwm,R_pwm,t;
void L_qian()
{
IN1=1;
IN2=0;
IN3=1;
IN4=0;
}
void R_qian()
{
IN5=1;
IN6=0;
IN7=1;
IN8=0;
}
void L_ting()
{
IN1=0;
IN2=0;
IN3=0;
IN4=0;
}
void R_ting()
{
IN5=0;
IN6=0;
IN7=0;
IN8=0;
}
void L_hou()
{
IN1=0;
IN2=1;
IN3=0;
IN4=1;
}
void R_hou()
{
IN5=0;
IN6=1;
IN7=0;
IN8=1;
}
void zuozhuan()interrupt 0
{
if(a==0)
{ L_pwm=0;R_pwm=40;a=1;}
else a=0;
}
void youzhuan()interrupt 2
{
if(a==0)
{ L_pwm=40;R_pwm=0;a=1;}
else a=0;
}
void timer0() interrupt 1
{ TH1 = 0x0FE;
TL1 = 0x33;
if(L_pwm>=0)if(t<L_pwm) L_qian(); //當L_pwm為0時根據我們的思維:電機不應該轉。將0代入左邊
else L_ting(); //L_pwm,發現不管t取0~39范圍內何值時,都不會執行L_qian(),
else if(t<~L_pwm) L_hou(); //當L_pwm為0時根據我們的思維:電機不應該轉。將0代入左邊
else L_ting(); //L_pwm,發現不管t取0~39范圍內何值時,都不會執行L_qian(),
if(R_pwm>=0)if(t<R_pwm) R_qian(); //當L_pwm為0時根據我們的思維:電機不應該轉。將0代入左邊
else R_ting(); //L_pwm,發現不管t取0~39范圍內何值時,都不會執行L_qian(),
else if(t<~R_pwm) R_hou(); //當L_pwm為0時根據我們的思維:電機不應該轉。將0代入左邊
else R_ting(); //L_pwm,發現不管t取0~39范圍內何值時,都不會執行L_qian(),
t++;
t%=40;//使每個pwm周期內t的取值都是0~39變化
}
復制代碼
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1