|
#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;//右輪電機(jī)輸出
sbit D1B=P1^1;
sbit D2A=P1^2;//左輪電機(jī)輸出
sbit D2B=P1^3;
int t=0;
int PWM_T1=0;//右輪電機(jī)占空比
int PWM_T2=0;//左輪電機(jī)占空比
//延時(shí)函數(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;//定時(shí)器0,工作模式2,8位定時(shí)模式
TH0=210; //寫入預(yù)置初值(取值1-255,數(shù)值越大PWM頻率越高)
TL0=210; //寫入預(yù)置值(取值1-255,數(shù)值越大PWM頻率越高)
TR0=1; //啟動(dòng)定時(shí)器
ET0=1; //允許定時(shí)器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);
}
}
}
//部分程序見(jiàn)附件
|
-
-
避障.zip
2020-1-8 09:24 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
856 Bytes, 下載次數(shù): 18, 下載積分: 黑幣 -5
|