標題:
51單片機3紅外傳感器2輪驅(qū)動避障小車
[打印本頁]
作者:
snow-moon
時間:
2020-1-8 09:28
標題:
51單片機3紅外傳感器2輪驅(qū)動避障小車
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit c0=P2^0;//c0右避障---紅外傳感器
sbit c1=P2^1;//c1左避障
sbit c2=P2^2;//c2中間避障
sbit D1A=P1^0;//右輪電機輸出
sbit D1B=P1^1;
sbit D2A=P1^2;//左輪電機輸出
sbit D2B=P1^3;
int t=0;
int PWM_T1=0;//右輪電機占空比
int PWM_T2=0;//左輪電機占空比
//延時函數(shù)
void delay_ms(int x)
{
int i,j;
for(i=0;i<x;i++)
for(j=0;j<110;j++);
}
/********************************************
主程序
********************************************/
void main(void)
{
D1B=0;
D2B=0;
TMOD=0x02;//定時器0,工作模式2,8位定時模式
TH0=210; //寫入預置初值(取值1-255,數(shù)值越大PWM頻率越高)
TL0=210; //寫入預置值(取值1-255,數(shù)值越大PWM頻率越高)
TR0=1; //啟動定時器
ET0=1; //允許定時器0中斷
EA=1; //允許總中斷
PWM_T1=150;
PWM_T2=150;
delay_ms(10);
while(1)
{
if(c0==0&&c1==1)
{
PWM_T1=0;
PWM_T2=100;
delay_ms(10);
}
if(c0==1&&c1==0)
{
PWM_T1=100;
PWM_T2=0;
delay_ms(10);
}
if(c2==0)
{
PWM_T1=0;
PWM_T2=0;
delay_ms(10);
}
if(c2==1)
{
PWM_T1=100;
PWM_T2=100;
delay_ms(10);
}
if(c0==1&&c1==1)
{
PWM_T1=100;
PWM_T2=100;
delay_ms(10);
}
if(c0==0&&c1==0)
{
PWM_T1=0;
PWM_T2=0;
delay_ms(10);
}
}
}
//部分程序見附件
避障.zip
2020-1-8 09:24 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
856 Bytes, 下載次數(shù): 18, 下載積分: 黑幣 -5
作者:
snow-moon
時間:
2020-1-8 09:31
定時器中斷模擬PWM調(diào)速在附件
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1