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

正文內(nèi)容

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

2024-10-02 15:42 本頁(yè)面
 

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