《尋跡小車程序》由會(huì)員分享,可在線閱讀,更多相關(guān)《尋跡小車程序(14頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、精選優(yōu)質(zhì)文檔-傾情為你奉上尋跡小車程序下面是我最開始做尋跡小車的時(shí)候?qū)懙膶ほE小車代碼,代碼非常簡單里面的注釋比較少,如果看不懂的話可以留言。#include#define uchar unsigned char#define uint unsigned intuchar a1,a2;uint PWM1,PWM2;/電機(jī)驅(qū)動(dòng)sbit ENA=P25;sbit ENB=P24;sbit z1=P21;sbit z2=P20;sbit y1=P23;sbit y2=P22;/尋跡sbit x1=P10;sbit x2=P11;sbit x3=P12;sbit x4=P13;/*void delay(
2、uchar z)uchar x,y;for(x=z;x0;x-)for(y=110;y0;y-); */void zhixing() /直行 z1=1; z2=0; PWM2=20; /控制左電機(jī) y1=1; y2=0; PWM1=18;/控制右電機(jī) void zuotiao_s() /向左小調(diào)z1=1;z2=0;PWM2=22; /25y1=1;y2=0;PWM1=20;void youtiao_s()/向右小調(diào)z1=1;z2=0;PWM2=24; /28y1=1;y2=0;PWM1=18;/20void zuotiao_b() /向左大調(diào)z1=0;z2=1;/PWM2=0;PWM2=18;
3、y1=1;y2=0;/PWM1=70;PWM1=35;void youtiao_b() /向右大調(diào)z1=1;z2=0;/PWM2=70;PWM2=35;y1=0;y2=1;/PWM1=0;PWM1=15;void zuozhuan()/向左轉(zhuǎn)z1=0;z2=1;PWM2=50;PWM2=25;y1=1;y2=0;PWM1=50;PWM1=30;void youzhuan()/向右轉(zhuǎn)z1=1;z2=0;PWM2=50;PWM2=25;y1=0;y2=1;PWM1=50;PWM1=25; /*void stop() /停止z1=0;z2=0;y1=0;y2=0;*/void time0init()
4、TH0=(65536-100)/256;TL0=(65536-100)%256;EA=1;TR0=1;ET0=1;void time0 () interrupt 1TH0=(65536-100)/256;TL0=(65536-100)%256;a1+;a2+;if(a1100)a1=0;if(a2100)a2=0;if(a1PWM1)ENA=1;if(a2PWM1)ENA=0;if(a2PWM2)ENB=0;void main()time0init();while(1) if(x1=0&x2=1&x3=1&x4=0) zhixing();else if(x1=0&x2=0&x3=1&x4=0)
5、 youtiao_s();else if(x1=0&x2=1&x3=0&x4=0)zuotiao_s();else if(x1=0&x2=0&x3=0&x4=1)youtiao_b();/delay(6);else if(x1=0&x2=0&x3=1&x4=1) youtiao_b(); / delay(6);else if(x1=1&x2=0&x3=0&x4=0) zuotiao_b();/ delay(6);else if(x1=1&x2=1&x3=0&x4=0) zuotiao_b();else if(x1=1&x2=0&x3=1&x4=0) while(!x4) zuozhuan(); else if(x1=0&x2=1&x3=1&x4=1)while(!x1)youzhuan(); else if(x1=0&x2=1&x3=0&x4=1)while(!x1) youzhuan(); else if(x1=1&x2=1&x3=1&x4=0)while(!x4)zuozhuan(); else if(x1=1&x2=1&x3=1&x4=1) zhixing(); else if(x1=1&x2=0&x3=0&x4=1)zuotiao_s();elsezhixing(); 專心-專注-專業(yè)