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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于spce061a單片機(jī)的自主移動(dòng)機(jī)器人小車(chē)設(shè)計(jì)(參考版)

2025-06-09 02:08本頁(yè)面
  

【正文】 //恢復(fù)系統(tǒng)時(shí)鐘設(shè)置 //此處延時(shí)結(jié)束 } //對(duì) 6 次測(cè)距的結(jié)果進(jìn)行處理 if(uiTemp_buf[5]==0) { //如果緩沖區(qū)中的最小的測(cè)距值為 0,則采用中間 4個(gè)數(shù)據(jù)進(jìn)行平均 uiResoult = uiTemp_buf[1]+uiTemp。 //調(diào)用延時(shí)程序 *P_Watchdog_Clear = 0x0001。i5。 //將之前的系統(tǒng)時(shí)鐘的設(shè)置用變量保存 *P_SystemClock = 0x000b。 //退出排序 } i。 } else { uiTemp_buf[i] = uiTemp。 while(i) //以下為排序的代碼 { if(uiTempuiTemp_buf[i1]) { uiTemp_buf[i] = uiTemp_buf[i1]。 //進(jìn)行一次測(cè)量,測(cè)量類(lèi)型由 type 決定 if(uiMeasure_Index==0) //如果為本次測(cè)量的第一次測(cè)距,則直接保存在緩沖區(qū)第一個(gè)單元 uiTemp_buf[0] = uiTemp。uiMeasure_Index6。 unsigned int uiSystem_Clock。 } unsigned int measure_Times(unsigned int type) //組合進(jìn)行共 6 次的測(cè)距程序,包括對(duì) 6次測(cè)量結(jié)果的取平均值處理 { unsigned int uiResoult=0,uiMeasure_Index=0,i。 *P_TimerB_Ctrl = 0x0006。//對(duì)計(jì)數(shù)值進(jìn)行處理,得出距離值 } if(*P_TimerB_Data10000) //如計(jì)數(shù)值大于 10000,表示超時(shí) { Exit_flag = 0。 //exit Counter_buf = Counter_buf+uiRes_Add。 //打開(kāi)總中斷使能 EXT1_IRQ_flag = 0。//打開(kāi)外部中斷 *P_INT_Clear = 0xffff。 while(*P_TimerB_DatauiWait_Timer) //等待一定時(shí)間,以避開(kāi)余波的干擾 自主移動(dòng)機(jī)器人小 車(chē)設(shè)計(jì) 33 { *P_Watchdog_Clear = 0x0001。 *P_TimerB_Data = 0x0000。 Delay_ult(uiSend_Timer)。 } *P_TimerB_Data = 0xfed2。 uiWait_Timer = LOW_WAIT_DELAY2。 uiRes_Add = LONG_RES_ADD2。 //清除掉中斷發(fā)生標(biāo)志 if(type) //根據(jù) type 即測(cè)距類(lèi)型,選擇不同的測(cè)距參數(shù) { uiSend_Timer = LONG_SEND_TIMER2。 //關(guān)掉外部中斷 __asm(IRQ OFF)。 *P_INT_Ctrl = *P_INT_Ctrl_Newamp。 unsigned int uiSend_Timer,uiWait_Timer,uiRes_Add。 //通知測(cè)距程序,外部中斷已發(fā)生 } unsigned int measure2_ult(unsigned int type) //補(bǔ)充進(jìn)行一次遠(yuǎn)距的測(cè)量,以保證能夠獲取測(cè)量結(jié)果 { unsigned int Exit_flag = 1。 //關(guān)掉外部中斷 *P_INT_Clear = 0xffff。 *P_INT_Ctrl = *P_INT_Ctrl_Newamp。 } void EXT1_IRQ_ult(void) //超聲波測(cè)距模組的測(cè)距程序的EXT1 中斷服 務(wù)程序 { Counter_buf = *P_TimerB_Data。 //關(guān)掉總中斷 自主移動(dòng)機(jī)器人小 車(chē)設(shè)計(jì) 32 *P_SystemClock = uiSystem_Clock。(~0x0100)。 *P_Watchdog_Clear = 0x0001。//再進(jìn)行一次補(bǔ)充的測(cè)距,將會(huì)加長(zhǎng) 40KHz 信號(hào)發(fā)射的量 *P_TimerB_Ctrl = 0x0006。//對(duì)計(jì)數(shù)值進(jìn)行處理,得出距離值 } if(*P_TimerB_Data10000) //如計(jì)數(shù)值大于 10000,表示超時(shí) { Exit_flag = 0。 //退出標(biāo)示 Counter_buf = Counter_buf+uiRes_Add。 //打開(kāi)總中斷使能 EXT1_IRQ_flag = 0。 *P_INT_Clear = 0xffff。 } *P_INT_Clear = 0x0100。 *P_TimerB_Ctrl = 0x0001。 //等待發(fā)送 *P_TimerB_Ctrl = 0x0006。 *P_TimerB_Ctrl = 0x03c0。 uiRes_Add = LOW_RES_ADD。 } else { uiSend_Timer = LOW_SEND_TIMER。 uiWait_Timer = LONG_WAIT_DELAY。 //將當(dāng)前的系統(tǒng)時(shí)鐘設(shè)置暫時(shí)保存起來(lái) *P_SystemClock = 0x0088。 unsigned int uiSystem_Clock。 unsigned int uiResoult。 unsigned int measure_ult(unsigned int type) // 超聲波測(cè)距模組的測(cè)距程序,完成一次測(cè)距 { unsigned int Exit_flag = 1。 return uiTemp。 ulTemp = ulTemp1。 ulTemp = (unsigned long)Counter*33500。 } } unsigned int Resoult_ult(unsigned int Counter) //計(jì)算距離 { unsigned int uiTemp。itimers。 //外部中斷標(biāo)志變量,用于 EXT1 的IRQ 中斷程序和測(cè)距程序同步 void Delay_ult(unsigned int timers) { unsigned int i。 測(cè)距程序 include define LONG_SEND_TIMER 1000 //中距測(cè)距時(shí)的 40KHz 信號(hào)發(fā)射時(shí)長(zhǎng) define LONG_SEND_TIMER2 3000 //中距測(cè)距的補(bǔ)充測(cè)距時(shí)的 40KHz 信號(hào)發(fā)射時(shí)長(zhǎng) define LONG_WAIT_DELAY 600 //中距測(cè)距的防余波干擾延時(shí)時(shí)長(zhǎng) define LONG_WAIT_DELAY2 1500 //中距測(cè)距的補(bǔ)充測(cè)距時(shí)的防余波干擾延時(shí)時(shí)長(zhǎng) define LONG_RES_ADD 0x00B0 //中距測(cè)距的結(jié)果補(bǔ)償值 define LONG_RES_ADD2 0x0220 //中距測(cè)距的補(bǔ)充測(cè)距時(shí)的結(jié)果補(bǔ)償值 define LOW_SEND_TIMER 250 //短距測(cè)距時(shí)的 40KHz 信號(hào)發(fā)射時(shí)長(zhǎng) define LOW_SEND_TIMER2 1000 //短距測(cè) 距的補(bǔ)充測(cè)距時(shí)的 40KHz信號(hào)發(fā)射時(shí)長(zhǎng) define LOW_WAIT_DELAY 180 //短距測(cè)距的防余波干擾延時(shí)時(shí)長(zhǎng) define LOW_WAIT_DELAY2 400 //短距測(cè)距的補(bǔ)充測(cè)距時(shí)的防余波干擾延時(shí)時(shí)長(zhǎng) define LOW_RES_ADD 0x0034 //短距測(cè)距的結(jié)果補(bǔ)償值 define LOW_RES_ADD2 0x00B0 //短距測(cè)距的補(bǔ)充測(cè)距時(shí)的結(jié)果補(bǔ)償值 unsigned int Counter_buf。 retf。 [P_INT_Ctrl] = r1。 _OffTime2Hz: .proc r1 = [P_INT_Ctrl] r1 amp。 //開(kāi)中斷 retf .endp。 [P_INT_Ctrl] = r1。 .ENDP .public _RunTime2Hz。 [P_Watchdog_Clear]=R1。 .CODE .public _Clear_WatchDog。 .external _sum。 //清中斷 pop r1,r4 from [sp]。 L_4Hz: r1 = 0x0008。 //設(shè)置中斷標(biāo)識(shí) r1 = 0 [_sum] = r1 pop r1,r4 from [sp]。 loop0: r1 = 0x0001。 [_sum]=r1 //保存時(shí)基信號(hào)量 pop r1,r4 from [sp]。 cmp r1,4。 [P_INT_Clear] = r1。 jnz L_4Hz。 r1 =0x0008。 .public _IRQ5。 .external _sum。 // EXT1_IRQ_ult()。 //前進(jìn) } } 2.中斷程序 : include include void IRQ3(void)__attribute__((ISR))。 //前進(jìn) while(1) } } else *P_TimerA_Ctrl=0x006。 *P_TimerA_Ctrl=0x006。 *P_IOA_Data=0x0400。 *P_IOA_Data=0x0800。 *P_IOA_Data=0x0400。 //倒車(chē) delay2s(0)。 自主移動(dòng)機(jī)器人小 車(chē)設(shè)計(jì) 27 } else if(Back_data=20) //判斷 是否小于 20cm,小于則進(jìn)行倒車(chē) { *P_TimerA_Ctrl=0x006。 //測(cè)距 if(Back_data==0) //判斷是否為 0,為 0 停車(chē) { *P_TimerA_Ctrl=0x006。 *P_TimerA_Data=0xff9f。 Clear_WatchDog()。 *P_IOA_Data=0x0000。 //裝距離 *P_IOA_Dir=0x1f00。 //結(jié)束中斷 } void delay2s(int timer)。//清看門(mén)狗 } INTflag = 0。 RunTime2Hz()。 void delay2s(int timer) //設(shè)置基頻為 2HZ 的中斷,就是一次定時(shí) 0。 void OffTime2Hz(void)。 //2hz 計(jì)數(shù)器 1次為 0。 北京航空航天大學(xué)出版社, 2021 自主移動(dòng)機(jī)器人小 車(chē)設(shè)計(jì) 26 附 錄 程序附錄 1.主程序: include include unsigned char INTflag。 自主移動(dòng)機(jī)器人小 車(chē)設(shè)計(jì) 24 致 謝 自主移動(dòng)機(jī)器人小 車(chē)設(shè)計(jì) 25 參考文獻(xiàn) [1]王衛(wèi)平 .電子產(chǎn)品制造技術(shù) [M].北京:清華大學(xué)出版社, , — 430 [2]羅亞非 .凌陽(yáng) 16位單片機(jī)應(yīng)用基礎(chǔ) [M].北京:北京航空 航天大學(xué)出版社, [3]李學(xué)海 .16位語(yǔ)音型單篇機(jī) SPCE061A實(shí)用教程 — 提高篇 [M]..北京:人民郵電出版社, [4]胡文金 .單片機(jī)應(yīng)用技術(shù)實(shí)訓(xùn)教程 [M].重慶:重慶大學(xué)出版社, , — 315 [5]黃智偉 .全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽制作實(shí)訓(xùn) [M].北京:北京航空航天大學(xué)出版社, , — 25 [6]周堅(jiān) .單片機(jī) C語(yǔ)言輕松入門(mén) [M].北京:北京航空航天大學(xué)出版社, [7]及力 .P
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1