freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于單片機的智能循跡小車畢業(yè)論文-資料下載頁

2025-06-23 23:46本頁面
  

【正文】 98N電機驅動模塊PCB圖附錄B 程序代碼/智能循跡小車的C程序/include/*********************第一部分*********************/ //以下是電機驅動芯片L298N 管腳位聲明 sbit PWM1=P1^0。 //電機A/B使能端 sbit PWM2=P1^1。 sbit IN1=P1^2。 //電機控制端 sbit IN2=P1^3。sbit IN3=P1^4。 sbit IN4=P1^5。 sbit RP1=P2^0。 //傳感器管腳位聲明sbit RP2=P2^1。 sbit RP3=P2^2。 sbit RP4=P2^3。int count1,count2。 //用于中斷計數//延時函數,延時z秒void delay(int z) { int x,y。 for(x=z。x0。xp for(y=124。y0。y)。 } /*********************第二部分 電機控制子函數*********************/void forward1() //電機1前進 { IN1=0。 IN2=1。 } void forward2() //電機2前進 { IN3=0。 IN4=1。 }void back1() //電機1后退{ IN1=1。 IN2=0。 } void back2() //電機2后退{ IN3=1。 IN4=0。 } /*********************電機的速度控制 用PWM調速*********************/void speed(int t1,int sd1,int t2,int sd2) { if(t1sd1) //電機1 PWM調速 PWM1=1。 else PWM1=0。 if(t2sd2) //電機2 PWM調速PWM2=1。 else PWM2=0。 }/**************電機的前進、左轉、右轉控制***************/void turn(int t1,int sd1,int t2,int sd2){ forward1()。 forward2()。 speed(t1,sd1,t2,sd2)。 } /*********************電機的后退控制*********************/void back(int t1,int sd1,int t2,int sd2) { back1()。 back2()。 speed(t1,sd1,t2,sd2)。 } /*********************第三部分 主函數*********************/void main() { int num=0。TMOD=0x01。 //中斷模式設置 EA=1。 TH0=(655361000)/256。 //定時 1ms TL0=(655361000)%256。 ET0=1。 TR0=1。 turn(count1,250,count2,250)。 //使小車沖上黑色軌道 delay(350)。 //延時等待小車沖上黑色軌道while(1) { if(RP1==1amp。amp。RP2==1amp。amp。RP3==1amp。amp。RP4==1) back(count1,50,count2,50)。 //1111 當四個LED都沒檢測到黑線時,小車后退 if(RP1==1amp。amp。RP2==0amp。amp。RP3==0amp。amp。RP4==1) turn(count1,200,count2,200)。 //1001 當第二、第三個LED檢測到黑線時,小車前進if(RP1==0amp。amp。RP2==1amp。amp。RP3==1amp。amp。RP4==0)turn(count1,150,count2,150)。 // 0110 當第一、第四個LED檢測到黑線時,小車減速前進 /*********************小車左轉*********************/if(RP1==0amp。amp。RP2==1amp。amp。RP3==1amp。amp。RP4==1) turn(count1,0,count2,150)。 // 0111 當只有第一個LED檢測到黑線時,小車左轉if(RP1==1amp。amp。RP2==0amp。amp。RP3==1amp。amp。RP4==1)turn(count1,80,count2,150)。 // 1011 當第二個LED檢測到黑線時,小車偏左轉 if(RP1==0amp。amp。RP2==0amp。amp。RP3==1amp。amp。RP4==1) turn(count1,0,count2,100)。 // 0011 當第一、二個LED檢測到黑線時,小車左轉if(RP1==0amp。amp。RP2==0amp。amp。RP3==0amp。amp。RP4==1) turn(count1,0,count2,200)。 // 0001 當第一、二、三個LED檢測到黑線時,小車左大轉 /*********************小車右轉*********************/if(RP1==1amp。amp。RP2==1amp。amp。RP3==0amp。amp。RP4==1)turn(count1,150,count2,80)。 // 1101 當第三個LED檢測到黑線時,小車偏右轉if(RP1==1amp。amp。RP2==1amp。amp。RP3==1amp。amp。RP4==0) turn(count1,180,count2,0)。 // 1110 當第四個LED檢測到黑線時,小車右轉 if(RP1==1amp。amp。RP2==1amp。amp。RP3==0amp。amp。RP4==0) turn(count1,100,count2,0)。 // 1100 當第三、四個LED檢測到黑線時,小車右轉 if(RP1==1amp。amp。RP2==0amp。amp。RP3==0amp。amp。RP4==0)turn(count1,200,count2,0)。 // 1000當第二、三、四個LED檢測到黑線時,小車右大轉 /****************小車檢測到全黑情況的處理****************/if(RP1==0amp。amp。RP2==0amp。amp。RP3==0amp。amp。RP4==0) { if(num==0){ back1()。 // 0000 當四個LED第一次檢測到黑線時,左輪后退右輪前進,小車左轉 forward2()。 delay(100)。 //延時100ms,等待小車轉過彎道} if(num0 amp。amp。 num6) { turn(count1,200,count2,200)。 // 0000 當四個LED再次檢測到黑線的次數小于6次時 //即到達黑線時小車前進速度大于后退速度 } if(num=6){ PWM1=0。 PWM2=0。 //當四個LED第六次檢測到黑線時,小車停止} num++。 } } /*************第四部分 中斷服務函數*************/ void time0()interrupt 1 { TH0=(655361000)/256。 //定時1ms TL0=(655361000)%256。 count1++。 count2++。 if(count1=500) //周期是500ms count1=0。 if(count2=500) //周期是500ms count2=0。 }附錄C 硬件實物圖自動循跡小車TCRT5000 循跡傳感器模塊L298N 電機驅動模塊單片機電路39
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1