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

正文內(nèi)容

畢業(yè)設計-基于單片機的倒車雷達設計(編輯修改稿)

2025-01-08 18:49 本頁面
 

【文章內(nèi)容簡介】 17 DS18B20 或從 DS18B20 送出 因此從中央處理器到 DS18B20 僅需連接一條線 和地 讀 寫和完成溫度變換所需的電源可以由數(shù)據(jù)線本身提供 而不需要外部電源其擁有以下等特性 獨特的單線接口 只需 1 個接口引腳即可通信 多點 multidrug 能力使分布式溫度檢測應用得以簡化 不需要外部元件 可用數(shù)據(jù)線供電 不需備份電源 測量范圍從 55 至 +125 增量值為 等效的華氏溫度范圍是 67F 至 257F 增 量值為 以 9 位數(shù)字值方式讀出溫度 在 1 秒 典型值 內(nèi)把溫度變換為數(shù)字 用戶可定義的 非易失性的溫度告警設置 告警搜索命令識別和尋址溫度在編定的極限之外的器件 溫度告警情況 應用范圍包括恒溫控制 工業(yè)系統(tǒng) 消費類產(chǎn)品 溫度計或任何熱敏系統(tǒng) 引腳 說 明 GND 地 DQ 數(shù)字 輸 入 輸 出 VDD 可 選 的 VDD NC 空引腳 DNC 不 連 接 圖 DS18B20溫度溫度計 沈陽理工大學學士學位論文 18 4 系統(tǒng)軟件 設計 系統(tǒng)軟件的設計 ,它所需要完成的主要是針對系統(tǒng)功能的實現(xiàn)及數(shù)據(jù)的處理和應用。 超聲波 測距 時 序 超聲波 測距 時序圖如圖 所示 。 圖 超聲波 測距 時序圖 以上時序圖表明你只需要提供一個 10uS 以上脈沖觸發(fā)信號,該模塊內(nèi)部將發(fā)出 8 個 40kHz 周期電平并檢測回波。一旦檢測到有回波信號則輸出回響信號 , 回響信號的脈沖寬度與所測的距離成正比。由此通過發(fā)射信號到收到的回響信號 時間間隔可以計算得 到距離。 注: 此模塊不宜帶電連接,若要帶電連接,則先讓模塊的 GND 端先連接,否則會影響 模塊的正常工作。 測距時,被測物體的面積不少于 平方米且平面盡量要求平整,否則影響測量的結果 主 程序 設計 主程序是單片機程序的主體,整個單片機端系統(tǒng)軟件的功能的實現(xiàn)都是在其中完成的, 主程序流程 圖如圖 所示 。 沈陽理工大學學士學位論文 19 圖 主程序流程 圖 主程序 如下 void main(void) { unsigned int valA,tempe=0,tempe1=0。 unsigned char TempCyc。 //play = 0。 Delay400Ms()。 //啟動等待,等 LCM 講入工作狀態(tài) LCMInit()。 //LCM 初始化 // Delay5Ms()。 //延時片刻 (可不要 ) // DisplayListChar(0, 0, mcustudio)。 // DisplayListChar(0, 1, )。 // ReadDataLCM()。//測試用句無意義 for (TempCyc=0。 TempCyc10。 TempCyc++) Delay400Ms()。 //延時 //DisplayListChar(0, 1, Cls)。 TMOD=0x01。 //設 T0 為方式 1, GATE=1; TH0=0。 TL0=0。 系統(tǒng)初始化 發(fā)送超聲波脈沖 等待反射超聲波脈沖 LCD 顯示結果 計算距離 開始 沈陽理工大學學士學位論文 20 ET0=1。 //允許 T0 中斷 EA=1。 //開啟總中斷 Init_DS18B20()。 while(1) { // tempe=ReadTemperature()。 //讀溫度 tempe=ReadTemperature()。 //讀溫度 WriteCommandLCM(0x80,1)。 WriteDataLCM(39。T39。)。 WriteCommandLCM(0x81,1)。 WriteDataLCM(39。=39。)。 WriteCommandLCM(0x82,1)。 WriteDataLCM(tempe/100+0x30)。 WriteCommandLCM(0x83,1)。 WriteDataLCM(tempe/10tempe/100*10+0x30)。 WriteCommandLCM(0x84,1)。 WriteDataLCM(39。.39。)。 WriteCommandLCM(0x85,1)。 WriteDataLCM(tempe(tempe/100)*100(tempe/10tempe/100*10)*10+0x30)。 WriteCommandLCM(0x86,1)。 WriteDataLCM(39。C39。)。 //////////////// tempe1=ReadTemperature1()。 //讀溫度 WriteCommandLCM(0x88,1)。 WriteDataLCM(39。T39。)。 WriteCommandLCM(0x89,1)。 WriteDataLCM(39。=39。)。 沈陽理工大學學士學位論文 21 WriteCommandLCM(0x8a,1)。 WriteDataLCM(tempe1/100+0x30)。 WriteCommandLCM(0x8b,1)。 WriteDataLCM(tempe1/10tempe1/100*10+0x30)。 WriteCommandLCM(0x8c,1)。 WriteDataLCM(39。.39。)。 WriteCommandLCM(0x8d,1)。 WriteDataLCM(tempe1(tempe1/100)*100(tempe1/10tempe1/100*10)*10+0x30)。 WriteCommandLCM(0x8e,1)。 WriteDataLCM(39。C39。)。 //delayms(60)。 delayms(6)。 RX=1。 StartModule()。 for(valA=7510。valA0。valA) { if(RX==1) { Timer_Count()。 } } } } 超聲波發(fā)射子程序設計 由于使用超聲波發(fā)射模塊, 只需要提供一個 10uS 以上脈沖觸發(fā)信號,該模塊內(nèi)部將發(fā)出 8 個 40kHz 周期電平并檢測回波。 其程序如下。 void StartModule() //啟動模塊 沈陽理工大學學士學位論文 22 { 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。 } 超聲波接收 中斷 程序設計 超聲波接受中斷程序流程圖如圖 所示。 沈陽理工大學學士學位論文 23 圖 超聲波接收中斷程序流程圖 其程序如下。 void zd0() interrupt 1 //T0 中斷用來計數(shù)器溢出 ,超過測距范圍 { flag=1。 //中斷溢出標志 RX=0。 } void Timer_Count(void) { TR0=1。 //開啟計數(shù) while(RX)。 //當 RX 為 1 計數(shù)并等待 TR0=0。 //關閉計數(shù) Conut()。 //計算 沈陽理工大學學士學位論文 24 } void Conut(void) { time=TH0*256+TL0。 TH0=0。 TL0=0。 S=(time*)/10。 //算出來是 MM if(S500) { beep = 0。 delayms(10)。 beep = 1。 delayms(10)。 // beep=0。 // delayms(10)。 //beep =1。 //delayms(1)。 } else { beep = 1。 } if((S=7000)||flag==1) //超出測量范圍顯示“ ” { flag=0。 DisplayOneChar(0, 1, ASCII[11])。 沈陽理工大學學士學位論文 25 DisplayOneChar(1, 1, ASCII[10])。 //顯示點 DisplayOneChar(2, 1, ASCII[11])。 DisplayOneChar(3, 1, ASCII[11])。 DisplayOneChar(4, 1, ASCII[11])。 DisplayOneChar(5, 1, ASCII[12])。 //顯示 M } else { disbuff[0]=S/1000。 disbuff[1]=S/100%10。 disbuff[2]=S/10%10。 disbuff[3]=S%10。 DisplayOneChar(0, 1, ASCII[disbuff[0]])。 DisplayOneChar(1, 1, ASCII[10])。 //顯示點 DisplayOneChar(2, 1, ASCII[disbuff[1]])。 DisplayOneChar(3, 1, ASCII[disbuff[2]])。 DisplayOneChar(4, 1, ASCII[disbuff[3]])。 DisplayOneChar(5, 1, ASCII[12])。 //顯示 M } } 顯示子 程序設計 LCD 流程圖 如圖 所示。 開 始L C D 初 始 化寫 入 地 址寫 入 數(shù) 據(jù)檢 查 忙 碌 標 志01 圖 LCD 顯示流程 沈陽理工大學學士學位論文 26 LCD 初始化 : void init_LCM(void) { write_inst(0x30)。 //設定功能 write_inst(0x38)。 //設定兩列 write_inst(0x08)。 //關閉顯示 write_inst(0x01)。 //清除顯示屏 write_inst(0x06)。 //設定輸入模式 write_inst(0x0e)。 //開啟顯示 } 程序主要作用是清空顯示屏,確定 8 位數(shù)據(jù)傳輸模式。 write_inst(0x01)指令作用為清空顯示屏,并將光標移至左上角。 write_inst(0x30)指令為功能設定指令,使 DL=1,即數(shù)據(jù)長度為 8 位。
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1