《基于單片機(jī)的四足機(jī)器人.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于單片機(jī)的四足機(jī)器人.doc(29頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
.
—-可編輯修改,可打印——
別找了你想要的都有!
精品教育資料
——全冊(cè)教案,,試卷,教學(xué)課件,教學(xué)設(shè)計(jì)等一站式服務(wù)——
全力滿足教學(xué)需求,真實(shí)規(guī)劃教學(xué)環(huán)節(jié)
最新全面教學(xué)資源,打造完美教學(xué)模式
深圳大學(xué)期末考試試卷
開(kāi)/閉卷
開(kāi)卷
A/B卷
N/A
課程編號(hào)
1303270001
1303270002
課程名稱
EDA技術(shù)與實(shí)踐(2)
學(xué)分
2.0
命題人(簽字) 審題人(簽字) 2015 年 10 月 20 日
題號(hào)
一
二
三
四
五
六
七
八
九
十
基本題總分
附加題
得分
評(píng)卷人
設(shè)計(jì)考試題目:完成一個(gè)集成電路或集成系統(tǒng)設(shè)計(jì)項(xiàng)目
基本要求: 2-3位同學(xué)一組, 完成一個(gè)完整的集成電路設(shè)計(jì)項(xiàng)目或是一個(gè)集成系統(tǒng)設(shè)計(jì)項(xiàng)目。
規(guī)格說(shuō)明:
1. 題目自定。
1) 集成電路設(shè)計(jì)項(xiàng)目
i. 若為IC設(shè)計(jì)項(xiàng)目需要完成IC設(shè)計(jì)的版圖。
ii. 若采用FPGA實(shí)現(xiàn)數(shù)字集成電路設(shè)計(jì),需要進(jìn)行下板測(cè)試。
2) 集成系統(tǒng)設(shè)計(jì)項(xiàng)目,需使用FPGA開(kāi)發(fā)板或嵌入式開(kāi)發(fā)板,完成一個(gè)完整的集成系統(tǒng)作品。
3) 作品需要課堂現(xiàn)場(chǎng)演示,最后提交報(bào)告,每個(gè)小組單獨(dú)一份報(bào)告,但需闡述各個(gè)成員的工作。
2. 評(píng)分標(biāo)準(zhǔn):
評(píng)價(jià)
好
較好
一般
未完成
完成度
40
30
25
15
演示效果
30
25
20
15
報(bào)告評(píng)分
30
25
20
15
2015年第二學(xué)期,建議作品內(nèi)容:
· 完成一個(gè)行走機(jī)器人,基本要求
o 2-8只腳
o 能行走
o 可以用單片機(jī),嵌入式,F(xiàn)PGA方案
一、 設(shè)計(jì)目的:
通過(guò)設(shè)計(jì)一個(gè)能夠走動(dòng)的機(jī)器人來(lái)增加對(duì)動(dòng)手能力,和對(duì)硬件電路設(shè)計(jì)的能力,增強(qiáng)軟件流程設(shè)計(jì)的能力和對(duì)設(shè)計(jì)流程實(shí)現(xiàn)電路功能的能力,在各個(gè)方面提升自己對(duì)電子設(shè)計(jì)的能力。
二、 設(shè)計(jì)儀器和工具:
本設(shè)計(jì)是設(shè)計(jì)一個(gè)能走動(dòng)的機(jī)器人,使用到的儀器和工具分別有:sg90舵機(jī)12個(gè)、四腳機(jī)器人支架一副、單片機(jī)最小系統(tǒng)一個(gè)、電容電阻若干、波動(dòng)開(kāi)關(guān)一個(gè)、超聲遙控模塊一對(duì)、杜邦線若干、充電寶一個(gè)。
三、 設(shè)計(jì)原理:
本次設(shè)計(jì)的機(jī)器人是通過(guò)51單片機(jī)控制器來(lái)控制整個(gè)電路的。其中,舵機(jī)的控制是通過(guò)產(chǎn)生一個(gè)周期為20毫秒的高電平帶寬在0.5到2.5ms之間的pwm信號(hào)來(lái)控制。12路Pwm信號(hào)由單片機(jī)的定時(shí)器來(lái)產(chǎn)生。51單片機(jī)產(chǎn)生12路pwm信號(hào)的原理是:以20毫秒為周期,把這20毫秒分割成8個(gè)2.5ms,因?yàn)椋總€(gè)pwm信號(hào)的高電平時(shí)間最多為2.5ms,然后在前六個(gè)2.5ms中分別輸出兩個(gè)pwm信號(hào)的高電平,例如,在第一個(gè)2.5ms中輸出第一個(gè)和第二個(gè)pwm信號(hào)的高電平時(shí),首先開(kāi)始時(shí),把信號(hào)S1、S2都置1,然后比較兩個(gè)高電平時(shí)間,先定時(shí)時(shí)間短的高電平時(shí)間,把高電平時(shí)間短的那個(gè)信號(hào)置0,再定時(shí)兩個(gè)高電平時(shí)間差,到時(shí)把高電平時(shí)間長(zhǎng)的按個(gè)信號(hào)置0,然后,定時(shí)(2.5-較長(zhǎng)那個(gè)高電平時(shí)間),在第二個(gè)2.5ms開(kāi)始時(shí),把S3、S4置1,接下來(lái)和上面S1、S2一樣,以此類推,在六個(gè)2.5ms 中輸出12路pwm信號(hào)來(lái)控制舵機(jī)。原理圖如圖1.
第一個(gè)2.5ms
0 2.5
通過(guò)超聲模塊來(lái)控制機(jī)器人前進(jìn)、后退、向前的左轉(zhuǎn)、向前的右轉(zhuǎn)、向后的左轉(zhuǎn)、向后的右轉(zhuǎn)幾個(gè)動(dòng)作。
控制模塊電路,D0,D1,D2,D3分別為超聲接受模塊的輸出,輸出為高電平,要加NPN作為開(kāi)關(guān)。
四、 設(shè)計(jì)步驟:
1、 設(shè)計(jì)好硬件電路,焊接51單片機(jī)的最小系統(tǒng)和各個(gè)硬件電路。
2、 設(shè)計(jì)好軟件的流程圖,如圖2。
3、 寫(xiě)產(chǎn)生12路控制舵機(jī)的pwm信號(hào)的程序并在proteus中測(cè)試,如 圖3。
4、 設(shè)計(jì)出行走步態(tài),四腳機(jī)器人的步態(tài)是采用對(duì)角的相互前進(jìn)來(lái)實(shí)現(xiàn)的,如圖4。
5、 寫(xiě)出流程圖中各個(gè)模塊的軟件,包括前進(jìn)函數(shù)、后退函數(shù)、左轉(zhuǎn)和
右轉(zhuǎn)的函數(shù),并逐個(gè)燒到單片機(jī)中測(cè)試。
6、 按流程圖把各個(gè)函數(shù)組合到主函數(shù)中,完成所有軟件的編寫(xiě),并燒 到單片機(jī)中測(cè)試,并不斷的調(diào)試。
開(kāi)始
初始化
掃描控制按鍵
處理控制按鍵
機(jī)器人行走
結(jié)束
圖2.流程圖
開(kāi)始
圖3.在proteus里測(cè)試并調(diào)試pwm信號(hào)
初始狀態(tài):
先邁一對(duì)腳 邁另一對(duì)并
另一對(duì)支撐 身體前進(jìn)
圖4,行走步態(tài)
五、 遇到的問(wèn)題及解決:
1、 此設(shè)計(jì)的pwm信號(hào)輸出使用定時(shí)器來(lái)產(chǎn)生每個(gè)信號(hào)的高電平和低電平,每次定時(shí)時(shí)間到,都會(huì)會(huì)關(guān)掉定時(shí)器并執(zhí)行中斷函數(shù),在此過(guò)程中會(huì)消耗一定的時(shí)間,等到給定時(shí)器賦值下一次定時(shí)時(shí)間并開(kāi)始定時(shí)時(shí),就會(huì)產(chǎn)生一定的時(shí)間延時(shí),造成每次高電平時(shí)間都會(huì)變長(zhǎng)一點(diǎn),且總的加起來(lái)會(huì)使20ms周期變長(zhǎng),因此,需要稍微減小高電平的定時(shí)時(shí)間,并結(jié)合proteus仿真確定最準(zhǔn)確值。
2、 由于機(jī)器人的四個(gè)腳都是自己組裝的,可能會(huì)有存在不平衡和對(duì)稱,當(dāng)對(duì)角的兩只腳同時(shí)向前邁同一個(gè)角度時(shí),會(huì)使機(jī)器人向一個(gè)方向偏轉(zhuǎn)而不沿直線前進(jìn),這時(shí)要結(jié)合實(shí)際測(cè)試來(lái)調(diào)整機(jī)器人的各個(gè)腳的前邁角度來(lái)使機(jī)器人平衡的沿直線前進(jìn),比如,一只腳邁多點(diǎn),另一邊的腳邁少點(diǎn)。
六、心得與體會(huì):
通過(guò)這次設(shè)計(jì),我更加的熟悉基本的硬件電路和軟件的設(shè)計(jì),特別是軟件的流程圖設(shè)計(jì)。更加熟悉軟硬件電路結(jié)合的測(cè)試與調(diào)試。
六、實(shí)驗(yàn)實(shí)物圖:
設(shè)計(jì)代碼:
#include
#define uchar unsigned char
#define uint unsigned int
uint pwm[12],p_min1,p_max1,p_min2,p_max2,p_min3,p_max3,p_min4,p_max4,p_min5,p_max5,
p_min6,p_max6,p1,p2,p3,p4,p5,p6,p11,p21,p31,p41,p51,p61;//高電平帶寬
sbit s0=P2^0;//12路輸出信號(hào)
sbit s1=P2^1;
sbit s2=P2^2;
sbit s3=P2^3;
sbit s4=P2^4;
sbit s5=P2^5;
sbit s6=P2^6;
sbit s7=P2^7;
sbit s8=P0^6;
sbit s9=P0^4;
sbit s10=P0^2;
sbit s11=P0^0;
sbit up=P1^0;
sbit right=P1^4;
sbit left=P1^2;
sbit down=P1^6;
uchar s_num,f,b,r,l,back_flag;forward_flag;
void back();//后退
void forward(); //前進(jìn)
void back_right(); //后右轉(zhuǎn) 、前左轉(zhuǎn)
void back_left(); //后左轉(zhuǎn)、前右轉(zhuǎn)
void scan_key();//遙控監(jiān)控
void labor_init();//機(jī)器人的初始狀態(tài)
void delay(uint i) //延時(shí)函數(shù),延時(shí)一秒
{
uint j;
for(i;i>0;i--)
for(j=110;j>0;j--);
}
void init(void)//中斷初始函數(shù)
{
TMOD=0x01;
TR0=1;
ET0=1;
EA=1;
}
void rate(uint p[12])//pwm的排序函數(shù)
{
p_min1=(p[0]<=p[1]?(p[0]):(p[1]))-40;
p_max1=p[0]>p[1]?(p[0]):(p[1]);
p_min2=(p[2]<=p[3]?p[2]:p[3])-64;
p_max2=p[2]>p[3]?p[2]:p[3];
p_min3=(p[4]<=p[5]?p[4]:p[5])-64;
p_max3=p[4]>p[5]?p[4]:p[5];
p_min4=(p[6]<=p[7]?p[6]:p[7])-64;
p_max4=p[6]>p[7]?p[6]:p[7];
p_min5=(p[8]<=p[9]?p[8]:p[9])-64;
p_max5=p[8]>p[9]?p[8]:p[9];
p_min6=(p[10]<=p[11]?p[10]:p[11])-64;
p_max6=p[10]>p[11]?p[10]:p[11];
p1=p_max1-p_min1-21;
p2=p_max2-p_min2-42;
p3=p_max3-p_min3-42;
p4=p_max4-p_min4-42;
p5=p_max5-p_min5-42;
p6=p_max6-p_min6-42;
p11=2400-p_max1;
p21=2400-p_max2;
p31=2400-p_max3;
p41=2400-p_max4;
p51=2400-p_max5;
p61=15500-p_max6;
TH0=-p_min1/256;
TL0=-p_min1%256;
s_num=0;
s0=1;
s1=1;
init();
}
void scan_key()
{
if(P1!=0xff)
{
delay(5);
if(up==0)
{
f=0;
}
if(down==0)
b=0;
if(right==0)
r=0;
if(left==0)
l=0;
}
}
void time0() interrupt 1 //中斷產(chǎn)生12路pwm信號(hào)
{
TR0=0;
switch(s_num)
{
case 0:if(pwm[0]<=pwm[1])
{
if(pwm[0]==pwm[1])
{s0=0;s1=0;s_num++;TH0=-(p1-0)/256;TL0=-(p1-0)%256;break;}
else
s0=0;
}
else
s1=0;
TH0=-p1/256;
TL0=-p1%256;
s_num++;
break;
case 1:if(pwm[0]>pwm[1])
s0=0;
else
s1=0;
TH0=-p11/256;
TL0=-p11%256;
s_num++;
break;
case 2:s2=1;
s3=1;
TH0=-p_min2/256;
TL0=-p_min2%256;
s_num++;
break;
case 3:if(pwm[2]<=pwm[3])
{
if(pwm[2]==pwm[3])
{s2=0;s3=0;s_num++;TH0=-p2/256;TL0=-p2%256;break;}
else
s2=0;
}
else
s3=0;
TH0=-p2/256;
TL0=-p2%256;
s_num++;
break;
case 4:if(pwm[2]>pwm[3])
s2=0;
else
s3=0;
TH0=-p21/256;
TL0=-p21%256;
s_num++;
break;
case 5:s4=1;
s5=1;
TH0=-p_min3/256;
TL0=-p_min3%256;
s_num++;
break;
case 6:if(pwm[4]<=pwm[5])
{
if(pwm[4]==pwm[5])
{s4=0;s5=0;s_num++;TH0=-p3/256;TL0=-p3%256;break;}
else
s4=0;
}
else
s5=0;
TH0=-p3/256;
TL0=-p3%256;
s_num++;
break;
case 7:if(pwm[4]>pwm[5])
s4=0;
else
s5=0;
TH0=-p31/256;
TL0=-p31%256;
s_num++;
break;
case 8:s6=1;
s7=1;
TH0=-p_min4/256;
TL0=-p_min4%256;
s_num++;
break;
case 9:if(pwm[6]<=pwm[7])
{
if(pwm[6]==pwm[7])
{s6=0;s7=0;s_num++;TH0=-p4/256;TL0=-p4%256;break;}
else
s6=0;
}
else
s7=0;
TH0=-p4/256;
TL0=-p4%256;
s_num++;
break;
case 10:if(pwm[6]>pwm[7])
s6=0;
else
s7=0;
TH0=-p41/256;
TL0=-p41%256;
s_num++;
break;
case 11:s8=1;
s9=1;
TH0=-p_min5/256;
TL0=-p_min5%256;
s_num++;
break;
case 12:if(pwm[8]<=pwm[9])
{
if(pwm[8]==pwm[9])
{s8=0;s9=0;s_num++;TH0=-p5/256;TL0=-p5%256;break;}
else
s8=0;
}
else
s9=0;
TH0=-p5/256;
TL0=-p5%256;
s_num++;
break;
case 13:if(pwm[8]>pwm[9])
s8=0;
else
s9=0;
TH0=-p51/256;
TL0=-p51%256;
s_num++;
break;
case 14:s10=1;
s11=1;
TH0=-p_min6/256;
TL0=-p_min6%256;
s_num++;
break;
case 15:if(pwm[10]<=pwm[11])
{
if(pwm[10]==pwm[11])
{s10=0;s11=0;s_num++;TH0=-p6/256;TL0=-p6%256;break;}
else
s10=0;
}
else
s11=0;
TH0=-p6/256;
TL0=-p6%256;
s_num++;
break;
case 16:if(pwm[10]>pwm[11])
s10=0;
else
s11=0;
TH0=-p61/256;
TL0=-p61%256;
s_num++;
break;
case 17:
s0=1;
s1=1;
s_num=0;
TH0=-p_min1/256;
TL0=-p_min1%256;
break;
}
scan_key();
TR0=1;
}
void motor_init1()//給所有信號(hào)都設(shè)高電平時(shí)間為1.5毫秒
{
uchar i;
for(i=0;i<12;i++)
pwm[i]=1500;
}
void labor_init()//機(jī)器人的初始狀態(tài)
{
motor_init1();
l=1;
f=1;
r=1;
b=1;
back_flag=0;
forward_flag=0;
rate(pwm);
//delay(200);
while(1)
{
if(r==0)
{
r=1;
back_right();
}
if(l==0)
{
l=1;
back_left();
}
if(f==0)
{
f=1;
forward();
}
if(b==0)
{
b=1;
back();
}
}
}
void back()
{
back_flag=1;
forward_flag=0;
motor_init1();
pwm[8]=pwm[8]+300;
pwm[9]=pwm[9]-250;
pwm[2]=pwm[2]+150;
pwm[3]=pwm[3]-150;
pwm[7]=pwm[7]+50;
//pwm[0]=pwm[0]-80;
//pwm[5]=pwm[5]+80;
//pwm[11]=pwm[11]-30;
rate(pwm);
delay(500);
pwm[3]=pwm[3]+320;
pwm[8]=pwm[8]-200;
pwm[4]=pwm[4]+600;
pwm[5]=pwm[5]+600;
pwm[6]=pwm[6]+600;
pwm[7]=pwm[7]+600;
rate(pwm);
delay(300);
pwm[4]=pwm[4]-600;
pwm[5]=pwm[5]-600;
pwm[6]=pwm[6]-600;
pwm[7]=pwm[7]-600;
rate(pwm);
delay(300);
while(1)
{
if(r==0)
{
r=1;
back_right();
}
if(l==0)
{
l=1;
back_left();
}
if(f==0)
{
f=1;
forward();
}
if(b==0)
b=1;
pwm[3]=pwm[3]-320;
pwm[8]=pwm[8]+200;
pwm[2]=pwm[2]-270;
pwm[9]=pwm[9]+320;
pwm[1]=pwm[1]-600;
pwm[0]=pwm[0]-600;
pwm[10]=pwm[10]-600;
pwm[11]=pwm[11]-600;
rate(pwm);
delay(300);
pwm[1]=pwm[1]+600;
pwm[0]=pwm[0]+600;
pwm[10]=pwm[10]+600;
pwm[11]=pwm[11]+600;
rate(pwm);
delay(500);
pwm[2]=pwm[2]+270;
pwm[9]=pwm[9]-320;
pwm[3]=pwm[3]+320;
pwm[8]=pwm[8]-200;
pwm[4]=pwm[4]+600;
pwm[5]=pwm[5]+600;
pwm[6]=pwm[6]+600;
pwm[7]=pwm[7]+600;
rate(pwm);
delay(300);
pwm[4]=pwm[4]-600;
pwm[5]=pwm[5]-600;
pwm[6]=pwm[6]-600;
pwm[7]=pwm[7]-600;
rate(pwm);
delay(500);
if(P1!=0xff)
forward();
}
}
void back_right()
{
motor_init1();
pwm[8]=pwm[8]+50;
pwm[9]=pwm[9]-50;
//pwm[2]=pwm[2]+150;
//pwm[3]=pwm[3]-150;
pwm[7]=pwm[7]+100;
//pwm[0]=pwm[0]-80;
//pwm[5]=pwm[5]+80;
//pwm[11]=pwm[11]-30;
rate(pwm);
delay(300);
pwm[3]=pwm[3]-70;
pwm[8]=pwm[8]-70;
pwm[4]=pwm[4]+600;
pwm[5]=pwm[5]+600;
pwm[6]=pwm[6]+600;
pwm[7]=pwm[7]+600;
rate(pwm);
delay(300);
pwm[4]=pwm[4]-600;
pwm[5]=pwm[5]-600;
pwm[6]=pwm[6]-600;
pwm[7]=pwm[7]-600;
rate(pwm);
delay(300);
while(1)
{
if(r==0)
{
if(back_flag==1)
{
r=1;
back_right();
}
if(forward_flag==1)
{
r=1;
back_left();
}
}
if(l==0)
{
if(back_flag==1)
{
l=1;
back_left();
}
if(forward_flag==1)
{
l=1;
back_right();
}
}
if(f==0)
{
f=1;
forward();
}
if(b==0)
{
b=1;
back();
}
pwm[3]=pwm[3]+70;
pwm[8]=pwm[8]+70;
pwm[2]=pwm[2]-70;
pwm[9]=pwm[9]-70;
pwm[1]=pwm[1]-600;
pwm[0]=pwm[0]-600;
pwm[10]=pwm[10]-600;
pwm[11]=pwm[11]-600;
rate(pwm);
delay(300);
pwm[1]=pwm[1]+600;
pwm[0]=pwm[0]+600;
pwm[10]=pwm[10]+600;
pwm[11]=pwm[11]+600;
rate(pwm);
delay(500);
pwm[2]=pwm[2]+70;
pwm[9]=pwm[9]+70;
pwm[3]=pwm[3]-70;
pwm[8]=pwm[8]-70;
pwm[4]=pwm[4]+600;
pwm[5]=pwm[5]+600;
pwm[6]=pwm[6]+600;
pwm[7]=pwm[7]+600;
rate(pwm);
delay(300);
pwm[4]=pwm[4]-600;
pwm[5]=pwm[5]-600;
pwm[6]=pwm[6]-600;
pwm[7]=pwm[7]-600;
rate(pwm);
delay(300);
}
}
void back_left()
{
motor_init1();
pwm[8]=pwm[8]+50;
pwm[9]=pwm[9]-50;
//pwm[2]=pwm[2]+150;
//pwm[3]=pwm[3]-150;
pwm[6]=pwm[6]+50;
pwm[7]=pwm[7]+100;
//pwm[0]=pwm[0]-80;
//pwm[5]=pwm[5]+80;
//pwm[11]=pwm[11]-30;
rate(pwm);
delay(300);
pwm[3]=pwm[3]+70;
pwm[8]=pwm[8]+70;
pwm[4]=pwm[4]+600;
pwm[5]=pwm[5]+600;
pwm[6]=pwm[6]+600;
pwm[7]=pwm[7]+600;
rate(pwm);
delay(300);
pwm[4]=pwm[4]-600;
pwm[5]=pwm[5]-600;
pwm[6]=pwm[6]-600;
pwm[7]=pwm[7]-600;
rate(pwm);
delay(300);
while(1)
{
if(r==0)
{
if(back_flag==1)
{
r=1;
back_right();
}
if(forward_flag==1)
{
r=1;
back_left();
}
}
if(l==0)
{
if(back_flag==1)
{
l=1;
back_left();
}
if(forward_flag==1)
{
l=1;
back_right();
}
}
if(f==0)
{
f=1;
forward();
}
if(b==0)
{
b=1;
back();
}
pwm[3]=pwm[3]-70;
pwm[8]=pwm[8]-70;
pwm[2]=pwm[2]+70;
pwm[9]=pwm[9]+70;
pwm[1]=pwm[1]-600;
pwm[0]=pwm[0]-600;
pwm[10]=pwm[10]-600;
pwm[11]=pwm[11]-600;
rate(pwm);
delay(300);
pwm[1]=pwm[1]+600;
pwm[0]=pwm[0]+600;
pwm[10]=pwm[10]+600;
pwm[11]=pwm[11]+600;
rate(pwm);
delay(500);
pwm[2]=pwm[2]-70;
pwm[9]=pwm[9]-70;
pwm[3]=pwm[3]+70;
pwm[8]=pwm[8]+70;
pwm[4]=pwm[4]+600;
pwm[5]=pwm[5]+600;
pwm[6]=pwm[6]+600;
pwm[7]=pwm[7]+600;
rate(pwm);
delay(300);
pwm[4]=pwm[4]-600;
pwm[5]=pwm[5]-600;
pwm[6]=pwm[6]-600;
pwm[7]=pwm[7]-600;
rate(pwm);
delay(300);
}
}
void forward()
{
forward_flag=1;
back_flag=0;
motor_init1();
pwm[2]=pwm[2]-150;
pwm[3]=pwm[3]+220;
pwm[8]=pwm[8]+10;
pwm[11]=pwm[11]-20;
rate(pwm);
delay(500);
pwm[3]=pwm[3]-300;
pwm[8]=pwm[8]+300;
pwm[4]=pwm[4]+600;
pwm[5]=pwm[5]+600;
pwm[6]=pwm[6]+600;
pwm[7]=pwm[7]+600;
rate(pwm);
delay(300);
pwm[4]=pwm[4]-600;
pwm[5]=pwm[5]-600;
pwm[6]=pwm[6]-600;
pwm[7]=pwm[7]-600;
rate(pwm);
delay(300);
while(1)
{
if(r==0)
{
r=1;
back_left();
}
if(l==0)
{
l=1;
back_right();
}
if(b==0)
{
b=1;
back();
}
if(f==0)
f=1;
pwm[3]=pwm[3]+300;
pwm[8]=pwm[8]-300;
pwm[2]=pwm[2]+300;
pwm[9]=pwm[9]-280;
pwm[1]=pwm[1]-600;
pwm[0]=pwm[0]-600;
pwm[10]=pwm[10]-600;
pwm[11]=pwm[11]-600;
rate(pwm);
delay(300);
pwm[1]=pwm[1]+600;
pwm[0]=pwm[0]+600;
pwm[10]=pwm[10]+600;
pwm[11]=pwm[11]+600;
rate(pwm);
delay(500);
pwm[2]=pwm[2]-300;
pwm[9]=pwm[9]+280;
pwm[3]=pwm[3]-300;
pwm[8]=pwm[8]+300;
pwm[4]=pwm[4]+600;
pwm[5]=pwm[5]+600;
pwm[6]=pwm[6]+600;
pwm[7]=pwm[7]+600;
rate(pwm);
delay(300);
pwm[4]=pwm[4]-600;
pwm[5]=pwm[5]-600;
pwm[6]=pwm[6]-600;
pwm[7]=pwm[7]-600;
rate(pwm);
delay(500);
if(P1!=0xff)
back();
}
}
void main(void)
{
labor_init();
}
29
.
鏈接地址:http://www.szxfmmzy.com/p-1178000.html