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

正文內(nèi)容

基于51的避障循跡重力感應(yīng)遙控的智能小車設(shè)計c語言_畢業(yè)設(shè)計論文(編輯修改稿)

2024-10-04 10:26 本頁面
 

【文章內(nèi)容簡介】 腳 (Sync pin)支援視頻電子影相穩(wěn)定技術(shù)與 GPS 可程式控制的中斷 (interrupt)支援姿勢識別、搖攝、畫面放大縮小、滾動、快速下降中斷、highG 中斷、零動作感應(yīng)、觸擊感應(yīng)、搖動感應(yīng)功能。 VDD 供電電壓為 177。5%、 177。5%、 177。5%; VDDIO 為 177。 5% 陀螺儀運作電流: 5mA,陀螺儀待命電流: 5μA;加速器運作電流: 350μA,加速器省電模式電流: 20μA@10Hz 高達 400kHz 快速模式的 I2C,或最高至 20MHz 的 SPI 串 行主機接口 (serial host interface) 內(nèi)建頻率產(chǎn)生器在所有溫度范圍 (full temperature range)僅有 177。1%頻率變化。 使用者親自測試 10,000 g 碰撞容忍度 為可攜式產(chǎn)品量身訂作的最小最薄包裝 ( QFN) 符合 RoHS 及環(huán)境標(biāo)準(zhǔn) 6 效果圖 6 軟件設(shè)計 編譯語言的選取 目前, STC89C52 單片機的開發(fā)多為支持兩種語言,一種是匯編語言,另一種是 C 語言,而這兩種語言各有 其優(yōu)缺點。 匯編語言:效率高,對硬件的可操控性更強,體積小,但不易維護,可移植性很差。 C 語言 :效率比較低,硬件可操控性比較差,目標(biāo)代碼體積大,但容易維護,可移植性很好。 而在本設(shè)計里面,程序需要接近底層,但程序要解決的問題繁多,邏輯關(guān)系也比較復(fù)雜,代碼量也比較大,又考慮到產(chǎn)品以后需要升級,各方面綜合考慮,主要以 C51 語言來編寫本設(shè)計的程序是最佳選擇。 軟件調(diào)試平臺 Keil for C51 是美國 Keil Software 公司出品的 C 語言軟件開發(fā)系統(tǒng),與匯編相比, C 語言在功能上、結(jié)構(gòu)性、可讀性、可維護 性上有明顯的優(yōu)勢,因而易學(xué)易用。 Keil C51 軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全 Windows 界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到 Keil for C51 生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。下面詳細介紹 Keil for C51 開發(fā)系統(tǒng)各部分功能和使用。 C51 開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的源程序要變?yōu)镃51 可以執(zhí)行的機器碼有兩種方法,一種是手工匯編,另一種是機器匯編,目前已 極少使用手工匯編的方法了。隨著 C51 開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機的開發(fā)軟件也在不斷發(fā)展, Keil軟件 除了致力于單片機的編程開發(fā)平臺外,還針對 目前最流行 C51開發(fā) 項目出品了 Keil for 51 軟件 平臺以及支持在線調(diào)試的串口燒寫。 從近年來各仿真機廠商紛紛宣布全面支持 Keil 即可看出。 Keil 提供了包括 C 編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境( uVision2)將這些部份組合在一起。 小車端程序 文件一 include include include ..\header\ include ..\header\ void R_S_Byte(uchar R_Byte) { SBUF = R_Byte。 while( TI == 0 )。 //查詢法 TI = 0。 } /**********定時器初始化程序 ***************/ void T0T1_init() { EA=1。 ET1=1。 ET0=1。 TMOD=0x11。//定時器 0 負責(zé) 小車速度控制 定時器 1 負責(zé) 超聲波測距和舵機控制 TH0=(65536500)/256。 TL0=(65536500)%256。 TH1=(65536500)/256。 TL1=(65536500)%256。 TL1=0。 TH1=0。 TR0=1。 TR1=1。 } void StartModule(void)//超聲波測距子函數(shù) { TX=1。 //啟動一次模塊 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 TX=0。 } void Conut(void)//通過超聲波測量的數(shù)據(jù)計算距離 { if(csflag==0) { time=TH1*256+TL1。 TH1=0。 TL1=0。 S=(time*)/10。 //算出來是 mm // if(S499) 。 } else { csflag=0。 S=600。//如果定時器溢出則距離 S=600 } if(jd==3) {middleS=S。 }// 測量正前方 else if(jd==2) {leftS=S。}//測量左前方 else if(jd==4) {rightS=S。}//測量右前方 } /**********************接收遙控器的狀態(tài)標(biāo)志 **********************/ void RX_STATE(void) { uchar RxBuf[4]。 uchar SIGN=0。 if(nRF24L01_RxPacket(RxBuf))//如果收到遙控器的數(shù)據(jù)則進入 { led2=~led2。 R_S_Byte(RxBuf[0])。 SIGN=RxBuf[2]。//判斷傾斜的方向 X_SIAN=0:前方 X_SIAN=1:下方 STATE=RxBuf[3]。 LED_FLAG=(SIGNamp。0x04)2。//判斷小車燈光控制位 CONTROL_MODE_FLAG=(STATEamp。0xf0)4。//讀取當(dāng)前狀態(tài)標(biāo)志 if(LED_FLAG) LED1=1。 else if(LED_FLAG==0) LED1=0。 } } void delay_RX(uint z)//避障模式下當(dāng)出現(xiàn) while 循環(huán)時用的延時函數(shù) , { uint x,y。 for(x=110。x0。x) { for(y=z。y0。y)。 RX_STATE()。//掃描無線模塊接收到的新指令 } } void measured(unsigned char fs)//測距函數(shù) jd=3 測量正前方 jd=2 測量左前方 jd=4 測量右前方 { TH1 = (65536500)/256。 TL1 = (65536500)%256。 //12MZ 晶振, mode=0。 jd=fs。 count2=0。 TR1=1。 delay_RX(500)。 TR1=0。 mode=1。 TH1=0。 TL1=0。 StartModule()。 while(!RX)。 //當(dāng) RX 為零時等待 TR1=1。 //開啟計數(shù) while(RX)。 //當(dāng) RX 為 1 計數(shù)并等待 TR1=0。 //關(guān)閉計數(shù) Conut()。 } /********************避障模式子函數(shù) ***********************/ void csbmode(void) { unsigned char temp。 TR1=0。 mode=1。 TH1=0。 TL1=0。 StartModule()。 while(!RX)。 //當(dāng) RX 為零時等待 TR1=1。 //開啟計數(shù) while(RX)。 //當(dāng) RX 為 1 計數(shù)并等待 TR1=0。 //關(guān)閉計數(shù) Conut()。//測量前方距離 delay_RX(80)。 speed1=16。speed2=16。 while(middleS500 amp。amp。CONTROL_MODE_FLAG==3) //當(dāng)前方空間大于 300mm時保持 { IN1_1=0。IN1_2=1。IN2_1=0。IN2_2=1。//小車前進 TR1=0。 mode=1。 TH1=0。 TL1=0。 StartModule()。 while(!RX)。 //當(dāng) RX 為零時等待 TR1=1。 //開啟計數(shù) while(RX)。 //當(dāng) RX 為 1 計數(shù)并等待 TR1=0。 //關(guān)閉計數(shù) Conut()。 delay_RX(2)。 } IN1_1=0。IN1_2=0。IN2_1=0。IN2_2=0。//小車停止 speed1=0。speed2=0。 measured(2)。 measured(4)。 TH1 = (65536500)/256。 //舵 機 復(fù)位 TL1 = (65536500)%256。 //12MZ 晶振, mode=0。 jd=3。 count2=0。 TR1=1。 delay_RX(500)。 TR1=0。 if(leftS250||rightS250) { temp=middleS。 speed1=20。speed2=20。 IN1_1=1。IN1_2=0。IN2_1=1。IN2_2=0。//小車后退 while((middleStemp)200amp。amp。CONTROL_MODE_FLAG==3) { speed1=20。speed2=20。 delay_RX(2)。 TR1=0。 mode=1。 TH1=0。 TL1=0。 StartModule()。 while(!RX)。 //當(dāng) RX 為零時等待 TR1=1。 //開啟計數(shù) while(RX)。 //當(dāng) RX 為 1 計數(shù)并等待 TR1=0。 //關(guān)閉計數(shù) Conut()。 } speed1=20。speed2=20。 if(leftSrightS) { IN1_1=1。IN1_2=0。IN2_1=0。IN2_2=1。 } else { IN1_1=0。IN1_2=1。IN2_1=1。IN2_2=0。 } delay_RX(500)。 speed1=0。speed2=0。 IN1_1=0。IN1_2=0。IN2_1=0。IN2_2=0。//小車停止 measured(2)。 measured(4)。 TH1 = (65536500)/256。 //舵 機 復(fù)位 TL1 = (65536500)%256。 //12MZ 晶振, mode=0。 jd=3。 count2=0。 TR1=1。 delay_RX(500)。 TR1=0。 } if(leftSrightS) { speed1=0。speed2=0。 IN1_1=1。IN1_2=0。IN2_1=0。IN2_2=1。 while(middleS600amp。amp。CONTROL_MODE_FLAG==3) { speed1=17。speed2=17。 delay_RX(5)。 TR1=0。 mode=1。 TH1=0。 TL1=0。 StartModul
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1