欢迎来到天天文库
浏览记录
ID:42610755
大小:33.50 KB
页数:3页
时间:2019-09-18
《智能小车两驱程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#includeunsignedintduty;//sbitEN1=P2^3;//一号电机的使能端,即PWM波输出sbitEN2=P2^2;//二号电机的使能端,即PWM波输出sbitM1_1=P1^7;//一号电机out1sbitM1_2=P1^6;//一号电机out2sbitM2_1=P1^5;//二号电机out1sbitM2_2=P1^4;//二号电机out2sbitFound1=P3^3;//左侧红外对管黑线识别信号输入端sbitFound2=P3^2;//右侧红外对管黑线识别信号输入端sbitFound3=P3^1
2、;//中间红外对管黑线识别信号输入端voidsl1(intduty);//调入自行定义的函数voidsl2(intduty);//调入自行定义的函数//main()//主函数{intduty;//P1=0x50;while(1){if(Found3==1){sl1(10);sl2(10);}elsebreak;}for(duty=0;duty<49;duty++)//循环体结构,让占空比逐步增加,提高电压,加快电机转动速率,让小车加速运动if(duty<50){//判断体结构,当占空比未达到最大值是,执行循环体,sl1(duty);//sl2
3、(duty);}else//if(Found1==1){//当小车达到规定的最大占空比时,是否接收到左侧红外对管是否接收到黑线识别信号sl1(50);sl2(40);}//如果有黑线识别信号,降低小车右侧的占空比,降低小车电压,左侧的占空比保持不变,进行右转else//if(Found2==1){//当左侧未接收到红外对管黑线识别信号,而右侧接收到红外对管黑线识别信号,降低小车左侧的占空比,降低小车电压,右侧占空比保持不变,进行左转sl1(40);sl2(50);}else////当左右两侧均未接收到红外对管黑线识别信号时,执行循环体结构,保
4、持小车左右两侧占空比不变,保持小车左右两侧电机转速一致{//sl1(50);sl2(50);}////while(Found3==1)//如果在执行中,左前、右前红外对管再次接收到黑线识别信号,执行下一步{for(duty=50;duty>49;duty=duty-10)//循环体结构,当左前、右前红外对管再次接收到黑线识别信号,执行降低小车两侧的占空比,使其电压降低,保证小车减速if(duty>=10){//当小车左右两侧的占空比未达到一个很小的数时,左右两侧电机继续按照所输入的占空比运行sl1(duty);sl2(duty);}else/
5、/当小车左右两侧的占空比达到一个很小的数时,小车左右两侧电机的输入电压全部变为,小车停止运转P1=0x00;}}voidsl1(intduty)//对小车左侧的电机的占空比在主函数中运行到的步骤进行定义{//inti;//加入变量ifor(i=0;i<100;i++)if(i
此文档下载收益归作者所有