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

正文內容

基于51單片機超聲波測距設計-資料下載頁

2024-11-17 22:09本頁面

【導讀】劣條件下,測量距離存在不可克服的缺陷,超聲波測距能很好的解決此類的問題。計;對系統(tǒng)進行誤差分析。單片機系統(tǒng)概述……………本設計任務主要內容……………超聲波的基本理論……………………DS18B20溫度采集程序………………DXP原理圖的繪制…………………

  

【正文】 20的工作流程是 ,初始化 ? ROM 操作指令 ? 存儲器操作指令 ? 數(shù)據(jù)傳輸 。其工作時序包括:初始化時序、寫時序和讀時序。 其流程圖如下所示: 發(fā) 起 S k i p r o m 命 令發(fā) 起 C o n v e r T 命令延 時 1 S 等 待 溫 度 轉換 完 成初 始 化 1 8 B 2 0初 始 化 1 8 B 2 0開 始應 答 脈 沖應 答 脈 沖發(fā) 起 R e a d S c r a t c h p a d 命 令讀 取 第 1 、 2 字 節(jié)即 溫 度 數(shù) 據(jù) 本科 畢業(yè)設計論文 36 (1)DS18B20的初始化 DS18B20的初始化的實質是使 DS18B20復位,主要是通過判斷存在脈沖的形式來實現(xiàn)的。首先主機發(fā)復位脈沖,即寬度范圍為 StS ?? 960480 ?? 的負脈沖,拉高 15~90 S? 以延時等待,然后通過輸入 /輸出線讀存在脈沖, 為低說明存在,復位成功;否則說明不存在,復位失敗,必須對 DS18B20重新初始化。 void Init_18B20(void)//初始化 18B20 { DQ = 1。 //DQ 復位 Delay(10)。 DQ = 0。 //單片機將 DQ 拉低 Delay(80)。 //480us DQ = 1。 //拉高總線 Delay(10)。 //稍做延時后 如果 x=0則初始化成功 x=1則初始化失敗 if(DQ) flag=0。 else flag=1。 Delay(20)。 } (2)字節(jié)寫入 DS18B20程序 字節(jié)寫入的時序是拉低輸入 /輸出線至少 15 S? 以作為起始信號,按從低位到高位的順序取出欲寫入字節(jié)中的 1位數(shù)據(jù),寫入輸入 /輸出線,延時等待 15 S? 后 本科 畢業(yè)設計論文 37 將輸入 /輸出線拉高作為停止信號,以等待下一位的寫入。寫入程序如下: /********************字節(jié)寫入函數(shù) *****************************/ void WriteOneChar(unsigned char dat)//寫一個字節(jié) { unsigned char i = 0。 for (i = 8。 i 0。 i) { DQ = 0。 DQ = datamp。0x01。 //寫入命令 Delay(5)。 DQ = 1。 dat=1。 //移位為寫入下一位準備 } } (3)字讀 DS18B20程序 讀取過程結合下面函數(shù)說明 /********************字讀函數(shù) *****************************/ uchar ReadOneChar(void)//讀一個字節(jié) { uchar i = 0。 uchar dat = 0。 本科 畢業(yè)設計論文 38 for (i = 8。 i 0。 i) { DQ = 0。 // 給脈沖信號 dat = 1。 DQ = 1。 // 給脈沖信號 if(DQ) dat |= 0x80。 //拼裝處理 Delay(15)。 } return (dat)。 } 從上面可以看出, 16位數(shù)據(jù)同樣是從低位到高位被逐一讀取的,而且讀取的溫度為補碼的形式,使用前必須進行補碼轉換。 (4)DS18B20溫度讀取函數(shù) /*****************讀取溫度函數(shù) *******************/ uint wd(void) { unsigned int a = 0, b = 0, t = 0。 Init_18B20()。 //初始化 DS18B20 WriteOneChar(0xCC)。 //跳過讀序號列號的操作 本科 畢業(yè)設計論文 39 WriteOneChar(0xBE)。 //讀取溫度寄存器 a = ReadOneChar()。 //讀取一個字節(jié) b = ReadOneChar()。 t = b。 t = 8。 t = t | a。 //字節(jié)合并 return (t)。 //返回結果給調用 } 距離計算程序 距離計算中,實行了溫度補償和夾角補償。程序如下: /**************************************** 距離計算函數(shù) ****************************************/ void puter(void) //距離計算函數(shù) { float c,d,s。 uint t。 if(temp0x8000) //溫度大于 0 c=+*temp*。 本科 畢業(yè)設計論文 40 else //溫度小于 0 c=*temp*。 t=jsh*256+jsl120。 //計數(shù)時間 d=(c*t*)/2。 d*=d。 //直角三角形勾股定理 s=。 //補償 distance=sqrt(s)。 //開方運算 } 數(shù)據(jù)轉換程序 經(jīng)過求的數(shù) 據(jù)原碼無法直接用于顯示,必須轉換為 LCD 所接受的 BCD 碼的形式,而且在溫度補償和距離計算中沒有考慮小數(shù)點的存在,而實際顯示必須考慮小數(shù)和有效位數(shù),這樣就必須對數(shù)據(jù)進行取舍。 /************************************** 數(shù)據(jù)轉換函數(shù) **************************************/ void hextobcd(void) //轉化成 2進制 { float tp。 unsigned long int tmp。 fuhao=0。 if(temp0x8000) 本科 畢業(yè)設計論文 41 tp=temp*。 else //溫度小于 0,求補碼得到原碼 { bm()。 tp=temp*。 fuhao=1。 } tp*=10。 tmp=tp。 num[12]=tmp/100。 //數(shù)據(jù)轉換后放到顯示數(shù)組里面 if(fuhao) num[12]=num[12]|0x80。 //最高位加上負號 num[13]=tmp/10(tmp/100)*10。 tmp=distance。 num[25]=tmp/1000。 tmp%=1000。 num[26]=tmp/100。 tmp%=100。 num[27]=tmp/10。 tmp%=10。 num[28]=tmp/1。 } 本科 畢業(yè)設計論文 42 LCD 顯示程序 LCD 液晶顯示程序分為液晶初始化、讀忙、寫指令和寫數(shù)據(jù)操作,液晶顯示器是一塊慢器件,所以在執(zhí)行每條指令之前必須確定模塊忙標志為低電平(不忙),否側此指令無效。液晶顯示 流程圖 如下: 寫 命 令 函 數(shù)寫 數(shù) 據(jù) 函 數(shù)延 時初 始 化開 始檢 查 忙 信 號N O 在程序中,我們將測量的各種結果存放到一個數(shù)組 num[]中,然后通過這個數(shù)組的數(shù)據(jù)到預先存放字符的數(shù)組中去 按 num[]中的數(shù)據(jù)的順序去讀取出預存在 numcode[]中的字符然后送到 LCD 中顯示,注意 LCD 的顯示必須做一系列的初始化和忙標志的判讀操作。 基于 Proteus 的軟件仿真 Proteus 是一款功能強大的軟件,其 ISIS 用來做仿真十分方便,尤其是單片機系統(tǒng)的仿真,我們在本設計的開發(fā)初期,用 Proteus 來仿真我們的設計,以便驗證我們的設計,對設計的正確性做出分析。首先在軟件中找到我們設計 本科 畢業(yè)設計論文 43 用的元件,然后連接好電路圖,設置好各個元件的參數(shù)值,特別注意液晶顯示屏的連接需要接上拉電阻。 圖 Proteus 仿真 用 Proteus 繪制好電路圖后導入程序文件(用 Keil 編譯過后的 HEX 文件),然后就可以執(zhí)行仿真,我們在仿真的時候 ,由于在軟件中沒有 CX20206模型,所以 ,則程序開始就認為返回信號獲得了,所以顯示了一個最小測量值 111mm,而溫度為 18176。 C,通過調節(jié)DS18B20模型的溫度可以測試顯示溫度是否正確,從圖中可以看出顯示的溫度就是 DS18B20的預設溫度值。下面我們在來看看 發(fā)射信號的產(chǎn)生。由于是頻率比較高的信號( 40KHz),所以不能通過二極管來觀察到,所以在仿真的時候 ,這時必須用示波器來查看,如圖: 本科 畢業(yè)設計論文 44 圖 波形 從上圖看出, ,由于軟件是間隔 60MS 發(fā)送一次 40KHz的信號,所以可以看到這樣的尖脈沖信號產(chǎn)生。軟件仿真說明我們的軟件設計非常成功。 本科 畢業(yè)設計論文 45 第五章 PCB 設計 軟件和硬件設計完成后就可以開始制作樣機,首先是元件的選擇,通過找 資料和比較,本設計采用 Atmel 公司的 AT89S52單片機,液晶顯示采用 YB1602A;超聲波發(fā)送采用 TI 公司的 74F04,接收采用索尼公司的紅外接收芯片 CX20206,超聲波發(fā)射接收頭采用 40T, 40R。電源采用 LM7805穩(wěn)壓。溫度傳感器采用DALLS 公司的 : 圖 DALLS 的 DS18B20 本科 畢業(yè)設計論文 46 Altium Designer 原理圖的繪制 Altium Desinger6是 Protel 的最新高端版本,其功能強大,集成原理圖設 計,PCB 設計,信號完整性分析, SPICE 仿真, FPGA 設計等。 Altium dedsigner6操作更加容易,功能更加完善。我們采用它來做我們的原理圖和 PCB 設計。首先繪制原理圖。 繪制原理圖時注意:連線簡潔,在同一圖紙上元件線路多則使用網(wǎng)絡標號來表示, 而多張圖紙使用端口 Port 來連接他們: 連線要清楚的表示連接關系,當連接線路比較多而且集中時可以使用總線 來連接它們。繪制完成后對所有元件做一個編號操作和編譯檢查。 元件封裝的建立 在繪制完成原理圖后接下來就是確定元件的封裝。元件的封裝必 須按照元件實務來確定其大小,比如焊盤大小、外輪廓的大小等,繪制封裝過程中注意焊盤 必須設置成多層上,元件的外輪廓繪制在 Top OverLay,通常第一焊盤設置成方形。建立之后必須和原理圖元件關聯(lián)起來。一些典型的元件封裝如下: 圖 典型元件封裝 本科 畢業(yè)設計論文 47 PCB 的電磁兼容設計 電磁兼容是指系統(tǒng)能在規(guī)定的電磁環(huán)境中正常工作而且不對該環(huán)境中其他設備產(chǎn)生過量的電磁干擾。為了提高系統(tǒng)的電磁兼容能力,必須從設計初始開始就對電磁兼容給予足夠的重視,電磁兼容可以從 3個要素考慮 .即電磁干擾源、電磁干擾可能的傳播途徑、極易接收電磁干擾的敏感器件很電路入手。在 PCB設計中基本的原則如下: 1 抑制干擾源 (1) 繼電器線圈加續(xù)流
點擊復制文檔內容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1