完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
|
|
看看好不好你呢
|
|
|
|
|
|
#include
***it P1_0 = P1^0; ***it P1_1 = P1^1; ***it P1_2 = P1^2; ***it P1_3 = P1^3; ***it P1_4 = P1^4; ***it P1_5 = P1^5; ***it P1_6 = P1^6; ***it P1_7 = P1^7; ***it P2_0 = P2^0; ***it P2_1 = P2^1; ***it P2_2 = P2^2; ***it P2_3 = P2^3; ***it P2_4 = P2^4; ***it P2_5 = P2^5; ***it P2_6 = P2^6; ***it P2_7 = P2^7; ***it P3_2 = P3^2; ***it P3_3 = P3^3; ***it P3_4 = P3^4; ***it P3_5 = P3^5; ***it P3_6 = P3^6; ***it P3_7 = P3^7; #define uchar unsigned char #define uint unsigned int #define Left_1_led P3_2 //P3_2接四路寻迹模块接口第一路输出信号即中控板上面标记为OUT1 #define Right_1_led P3_3 //P3_3接四路寻迹模块接口第二路输出信号即中控板上面标记为OUT2 #define Left_2_led P3_4 //P3_4接四路寻迹模块接口第三路输出信号即中控板上面标记为OUT3 #define Right_2_led P3_5 //P3_5接四路寻迹模块接口第四路输出信号即中控板上面标记为OUT4 #define Left_moto_go {P1_0=1,P1_1=0,P1_2=1,P1_3=0;} //左边两个电机向后转 #define Left_moto_back {P1_0=0,P1_1=1,P1_2=0,P1_3=1;} //左边两个电机向前走 #define Left_moto_Stop {P1_0=0,P1_1=0,P1_2=0,P1_3=0;} //左边两个电机停转 #define Right_moto_go {P1_4=1,P1_5=0,P1_6=1,P1_7=0;} //右边两个电机向前走 #define Right_moto_back {P1_4=0,P1_5=1,P1_6=0,P1_7=1;} //右边两个电机向前走 #define Right_moto_Stop {P1_4=0,P1_5=0,P1_6=0,P1_7=0;} //右边两个电机停转 /*********************************延时函数 ***************************************/ void delay(uint k) { uint x,y; for(x=0;x } /**********************************前进**************************************/ void run(void) { Left_moto_go ; Right_moto_go ; } /**********************************后退**************************************/ void back(void) { Left_moto_back; //左边两个电机反式开始转 Right_moto_back; //右边两个电机反转 } /**********************************左转**************************************/ void leftrun(void) { Right_moto_go; //右边两个电机正转 Left_moto_back; //左边两个电机反式开始转 } /**********************************右转**************************************/ void rightrun(void) { Left_moto_go; //左边两个电机正转 Right_moto_back; //右边两个电机反转 } /**********************************停止**************************************/ void stop(void) { Left_moto_Stop; //右边两个电机正转 Right_moto_Stop; //左边两个电机反式开始? } /**********************************遥控模块**************************************/ void remotecontrol() { if(P2_0 == 1) { delay(10);//延时去抖动 if(P2_0==1) { run(); } } if(P2_1 == 1) { delay(10);//延时去抖动 if(P2_1==1) { back(); } } if(P2_2 == 1) { delay(10);//延时去抖动 if(P2_2==1) { leftrun(); } } if(P2_3 == 1) { delay(10);//延时去抖动 if(P2_3==1) { rightrun(); } } } /***********************************循迹模块***********************************/ void track() { if(Left_1_led==0&&Right_1_led==0) //有信号为0 没有信号为1 run(); else { if(Left_1_led==0&&Right_1_led==1) //右边检测到黑线 { rightrun(); } if(Right_1_led==0&&Left_1_led==1) //左边检测到黑线 { leftrun(); } if(Right_1_led==1&&Left_1_led==1) //左边检测到黑线 { stop(); } } } /***********************************避障***************************************/ void bar() { if(Left_2_led==1&&Right_2_led==1) //有信号为0 没有信号为1 run(); else { if(Left_2_led==1&&Right_2_led==0) //右边检测到障碍 { leftrun(); } if(Right_2_led==1&&Left_2_led==0) //左边检测到障碍 { rightrun(); } if(Right_2_led==0&&Left_2_led==0) //左右边都检测到障碍 { rightrun(); } } } /**********************************主函数**************************************/ void main(void) { while(1) /*无限循环*/ { if(P2_4 == 0) { delay(10);//延时去抖动 if(P2_4==0) { stop(); while(P2_5&P2_6) { remotecontrol(); } } } if(P2_5 == 0) { delay(10);//延时去抖动 if(P2_5==0) { while(P2_4&P2_6) { track(); } } } if(P2_6 == 0) { delay(10);//延时去抖动 if(P2_6==0) { while(P2_4&P2_5) { bar(); } } } } } |
|
|
|
|
|
我只想说呵呵。。。。。。。
|
|
|
|
|
|
顶顶顶顶顶顶,非常好
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
请问一个迭代法图形二值化的程序代码把宽改成240之后整个屏幕不显示是什么原因?
2649 浏览 0 评论
2637 浏览 1 评论
1876 浏览 1 评论
2028 浏览 2 评论
2594 浏览 2 评论
684浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 08:15 , Processed in 1.154322 second(s), Total 116, Slave 97 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号