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

正文內(nèi)容

基于單片機(jī)的超聲波測距畢業(yè)設(shè)計論文-資料下載頁

2025-06-27 19:44本頁面
  

【正文】 (2) 延時(該時間要求的不是很嚴(yán)格,但是盡可能的短一點)(3) 數(shù)據(jù)線拉到低電平“0”。(4) 延時750微秒(該時間的時間范圍可以從480到960微秒)。(5) 數(shù)據(jù)線拉到高電平“1”。(6) 延時等待(如果初始化成功則在15到60毫秒時間之內(nèi)產(chǎn)生一個由DS18B20所返回的低電平“0”。據(jù)該狀態(tài)可以來確定它的存在,但是應(yīng)注意不能無限的進(jìn)行等待,不然會使程序進(jìn)入死循環(huán),所以要進(jìn)行超時控制)。(7) 若CPU讀到了數(shù)據(jù)線上的低電平“0”后,還要做延時,其延時的時間從發(fā)出的高電平算起(第(5)步的時間算起)最少要480微秒。(8) 將數(shù)據(jù)線再次拉高到高電平“1”后結(jié)束。DS18B20的寫操作(1) 數(shù)據(jù)線先置低電平“0”。(2) 延時確定的時間為15微秒。(3) 按從低位到高位的順序發(fā)送字節(jié)(一次只發(fā)送一位)。(4) 延時時間為45微秒。(5) 將數(shù)據(jù)線拉到高電平。(6) 重復(fù)上(1)到(6)的操作直到所有的字節(jié)全部發(fā)送完為止。(7) 最后將數(shù)據(jù)線拉高。DS18B20的讀操作(1)將數(shù)據(jù)線拉高“1”。(2)延時2微秒。(3)將數(shù)據(jù)線拉低“0”。(4)延時15微秒。(5)將數(shù)據(jù)線拉高“1”。(6)延時15微秒。(7)讀數(shù)據(jù)線的狀態(tài)得到1個狀態(tài)位,并進(jìn)行數(shù)據(jù)處理。(8)延時30微秒。開始初始化初始化寫命令:跳過讀序列號操作(0XCC)寫命令:啟動溫度轉(zhuǎn)換(0X44)溫度轉(zhuǎn)換結(jié)束?寫命令:讀溫度寄存器(0XBE)寫命令:跳過讀序列號操作(0XCC)寫EEPROM,存儲結(jié)果根據(jù)讀寫操作,其流程圖如63 N Y 圖63 DS18B20初始化流程圖具體的各部分C程序如下:void dsreset(void) //send reset and initialization mand{ uint i。 DS=0。 i=103。 while(i0)i。 DS=1。 i=4。 while(i0)i。}bit tmpreadbit(void) //read a bit{ uint i。 bit dat。 DS=0。i++。 //i++ for delay DS=1。i++。i++。 dat=DS。 i=8。while(i0)i。 return (dat)。}uchar tmpread(void) //read a byte date{ uchar i,j,dat。 dat=0。 for(i=1。i=8。i++) {j=tmpreadbit()。dat=(j7)|(dat1)。//讀出的數(shù)據(jù)最低位在最前面,這樣剛好一個字節(jié)在DAT里 } return(dat)。}void tmpwritebyte(uchar dat) //write a byte to ds18b20{ uint i。 uchar j。 bit testb。 for(j=1。j=8。j++) { testb=datamp。0x01。 dat=dat1。 if(testb) //write 1 { DS=0。 i++。i++。 DS=1。 i=8。while(i0)i。 } else { DS=0。 //write 0 i=8。while(i0)i。 DS=1。 i++。i++。 } }}void tmpchange(void) //DS18B20 begin change{ dsreset()。 delay(1)。 tmpwritebyte(0xcc)。 // address all drivers on bus tmpwritebyte(0x44)。 // initiates a single temperature conversion}uint tmp() //get the temperature{ float tt。 uchar a,b。 dsreset()。 delay(1)。 tmpwritebyte(0xcc)。 tmpwritebyte(0xbe)。 a=tmpread()。 b=tmpread()。 temp=b。 temp=8。 //two byte pose a int variable temp=temp|a。 tt=temp*。 temp=tt*10+。 return temp。}void readrom() //read the serial{ uchar sn1,sn2。 dsreset()。 delay(1)。 tmpwritebyte(0x33)。 sn1=tmpread()。 sn2=tmpread()。}結(jié) 論本設(shè)計介紹了一種基于單片機(jī)的超聲波測距系統(tǒng)的原理和設(shè)計。給出了硬件和軟件的設(shè)計方案。超聲波測距的原理是利用超聲波的發(fā)射和接受,根據(jù)超聲波傳播的時間來計算出傳播距離。實用的測距方法有兩種,一種是在被測距離的兩端,一端發(fā)射,另一端接收的直接波方式,適用于身高計;一種是發(fā)射波被物體反射回來后接收的反射波方式,適用于測距儀。此次設(shè)計采用反射波方式。超聲波測距儀硬件電路的設(shè)計主要包括單片機(jī)系統(tǒng)及顯示電路、超聲波發(fā)射檢測接收電路,溫度補(bǔ)償電路四部分。單片機(jī)采用AT89C51或其兼容系列。采用12MHz高精度的晶振,以獲得較穩(wěn)定時鐘頻率,減小測量誤差。,利用外中斷0口監(jiān)測超聲波接收電路輸出的返回信號。顯示電路采用簡單實用3位共陽LED數(shù)碼管,段碼位碼都用74HC573芯片驅(qū)動驅(qū)動。本設(shè)計所設(shè)計的超聲波測距系統(tǒng)具有測量精度較高、速度快、控制簡單方便等優(yōu)點。測距范圍從4cm到80cm,測量精度在177。3cm內(nèi)。測距系統(tǒng)在許多工業(yè)現(xiàn)場和自動控制場合,都有很重要的作用。但由于經(jīng)驗不足,電路硬件、軟件部分都有不夠完善的地方,在今后的學(xué)習(xí)中會進(jìn)一步改進(jìn)??傮w來說,最重要的是在本設(shè)計的設(shè)計過程中我學(xué)到了很多知識,從中受益匪淺。了解了超聲波傳感器的原理,也掌握了單片機(jī)的開發(fā)過程和利用單片機(jī)設(shè)計電路的方法。對一塊電路板的設(shè)計、焊板、調(diào)試、改進(jìn)等整個過程,有了更深入的理解和掌握。這些對我今后的學(xué)習(xí)和工作都會有很大幫助的。致 謝經(jīng)過兩個多月的忙碌和工作,本次畢業(yè)設(shè)計已經(jīng)接近尾聲,作為一個本科生的畢業(yè)設(shè)計,由于經(jīng)驗的匱乏,難免有許多考慮不周全的地方,如果沒有導(dǎo)師的督促指導(dǎo),以及同學(xué)們的支持,想要完成這個設(shè)計是非常困難的。 本設(shè)計從選題的確定、說明書的寫作、修改到最后定稿得到了我的指導(dǎo)老師李志剛的悉心指導(dǎo)。特別是他每周都會詢問我的寫作進(jìn)程,檢查我所查找的資料,并對這些資料進(jìn)行評價,有不足之處他會不厭其煩的為我指出來,并為我指點迷津,幫助我開拓思路,精心點撥,熱忱鼓勵。他嚴(yán)肅的教學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益求精的工作作風(fēng)深深地感染和激勵著我。在此,謹(jǐn)向田老師致以誠摯的謝意和崇高的敬意。時光匆匆如流水,轉(zhuǎn)眼便是大學(xué)畢業(yè)時節(jié)。隨著離校日期已日趨臨近,畢業(yè)設(shè)計的的完成也隨之進(jìn)入了尾聲。在這里向熱情幫助我的老師、同學(xué)和朋友表示誠摯的謝意!參考文獻(xiàn)[1][J].,5:2932[2][J]. ,4(3):810[3].何希才,[M].北京:機(jī)械工業(yè)出版社,2004:138152[4][M].北京:清華大學(xué)出版社,2004:2746[5]吳斌方,劉民,[J].,19(6):2628[6]譚洪濤,[J].,18:9496[7]趙占林,[J].,12(6):144145[8]蘇煒,龔壁建,[J].,23(6):811[9]羅忠輝,[J]. ,1:109[10][J].,6:5859[11]Yusuke Moritake, Hiroomi Recognition System Using Two Ultrasonic Sensors and Combinational Logic Circuit[M]. Electronics and Communications in ,88(7):3342附錄A超聲波測距系統(tǒng)電路圖附錄Binclude define uchar unsigned chardefine uint unsigned intdefine ulong unsigned longsbit Trig =P1^0。 sbit Echo =P3^2。sbit test =P1^1。 //測試燈引腳sbit dula =P2^6。 //段碼選通引腳sbit wela =P2^7。 //位碼選通引腳sbit DS =P2^2。 //測溫引腳uchar code table[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6}。uchar code table1[]={0xfd,0x61,0xdb,0xf3,0x67,0xb7,0xbf,0xe1,0xff,0xf7}。uchar flag,outeH,outeL。bit succeed_flag。void delay(uint count) //延時程序{ uint i。 while(count) { i=200。 while(i0) i。 count。 }}void delay_20us() //延時20us { uchar bt 。 for(bt=0。bt100。bt++)。 }void display(uint distance_date) //距離顯示子程序{ uchar dm,cm,mm。 dm=distance_date/100。 //計算分米位 cm=distance_date%100/10。 //計算厘米位 mm=distance_date%10。 //計算毫米位 dula=0。 P0=table[dm]。 dula=1。 dula=0。 wela=0。 P0=0x7f。 wela=1。 wela=0。 delay(2)。 dula=0。 P0=table1[cm]。 dula=1。 dula=0。 wela=0。 P0=0xbf。 wela=1。 wela=0。 delay(2)。dula=0。 P0=table[mm]。 dula=1。 dula=0。 wela=0。 P0=0xdf。 wela=1。 wela=0。 delay(2)。} void dsreset(void) //send reset and initialization mand{ uint i。 DS=0。 i=103。 while(i0)i。 DS=1。 i=4。 while(i0)i。}bit tmpreadbit(void) //read a bit{ uint i。 bit dat。 DS=0。i++。 //i++ for delay DS=1。i++。i++。 dat=DS。 i=8。while(i0)i。 return (dat)。}uchar tmpread(void) //read a byte date{ uchar i,j,dat。 dat=0。 for(i=1。i=8。i++) { j=tmpreadbit()。 dat=(j7)|(dat1)。 //讀出的數(shù)據(jù)最低位在最前面,這樣剛好一個字節(jié)在DAT里 } return(dat)。}void tmpwritebyte(uchar dat) //write a byte to ds18b20{ uint i。 uchar j。 bit testb。 for(j=1。j=8。j++) { testb=datamp。0x01。 dat=dat1。 if(testb) //write 1 { DS=0。 i++。i++。 DS=1。 i=8。while(i0)i
點擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1