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

正文內(nèi)容

基于51單片機(jī)的超聲波測(cè)距系統(tǒng)計(jì)-資料下載頁(yè)

2024-12-07 09:35本頁(yè)面

【導(dǎo)讀】汽車倒車、機(jī)器人避障、工業(yè)測(cè)井、水庫(kù)液位測(cè)量等需要自動(dòng)進(jìn)行非接觸測(cè)距的工作。其原理,學(xué)以致用。設(shè)計(jì)出超聲波測(cè)距儀的硬件結(jié)構(gòu)電路。利用超聲波方法測(cè)量物體間的距離。超聲波是指頻率在20kHz以上的聲波,它屬于機(jī)械波的范疇。被介質(zhì)吸收而發(fā)生衰減等。路、發(fā)射電路、接收電路、顯示電路和電源電路,另外還有復(fù)位電路和LED控制電路等。整個(gè)電路采用模塊化設(shè)計(jì),由信號(hào)發(fā)射和接收、供電、溫度測(cè)量、顯示等模塊。發(fā)射探頭的信號(hào)經(jīng)放大和檢波后發(fā)射出去,單片機(jī)的計(jì)時(shí)器開始計(jì)時(shí),超聲波被。溫度測(cè)量后送到單片機(jī),通過(guò)程序?qū)λ俣冗M(jìn)行校正,結(jié)合兩者實(shí)現(xiàn)超聲波測(cè)。軟件程序主要由主程序、預(yù)置子程序、發(fā)射子程序、接收子程序、顯示子程。還有實(shí)現(xiàn)數(shù)據(jù)正確顯示在LED上。此外供電電源也會(huì)使測(cè)量差生很大的誤差。的過(guò)程中考慮了這些因素,并給出了一些解決方案。

  

【正文】 C CV C CV C C12345678161514131211109R e s P a c k 4V C CY1Y2Y3Y1 Y2 Y3X2X3X4X5X6X7X8X1X2X3X4X5X6X7X8X1X2X3X4X5X6X7X8X1X2X3X4X5X6X7X8X1 圖 35 顯示部分電路圖 中北大學(xué)畢業(yè)論文 20 針對(duì)以上 3 個(gè)問(wèn)題,實(shí) 際考慮節(jié)約單片機(jī)的接口資源以及減少硬件芯片成本投入,本單元電路設(shè)計(jì)如圖 35 所示,采用 3 位共陰極數(shù)碼顯示管,顯示字符由單片機(jī) P2 口送至鎖存器 74HC574 鎖存,再經(jīng)顯示驅(qū)動(dòng)芯片 ULN2O03 驅(qū)動(dòng)數(shù)碼管顯示, 分別控制每一位的動(dòng)態(tài)顯示。 74HC574 為三態(tài)輸出 D 型上升沿觸發(fā)器,圖 36 為其引腳圖,在輸入使能端 OE 有效時(shí),當(dāng)時(shí)鐘脈沖 CK 有上升沿跳變,觸發(fā)器發(fā)生翻轉(zhuǎn),將鎖存的 8 路輸入數(shù)據(jù) (即單片機(jī) P2 口送出的字符數(shù)據(jù) )送出顯示。其功能表,如表 31 所 示。 OE 1 20 Vcc 1B 1 16 1C 1D 2 19 1Q 2B 2 15 2C 2D 3 18 2Q 3B 3 14 3C 3D 4 17 3Q 4B 4 13 4C 4D 5 16 4Q 5B 5 12 5C 5D 6 15 5Q 6B 6 11 6C 6D 7 14 6Q 7B 7 10 7C 7D 8 13 7Q 8B 8 9 COM 8D 9 12 8Q 9D 10 11 CLK 圖 36 74HC574引腳圖 圖 37 ULN2021引腳圖 表 31 74HC574功能表 INPUTS OUTPUT Q OE CLK D L ↑ H L ↑ L L H or L X H X X H L Q0 Z ULN2021 為顯示驅(qū)動(dòng)芯片,抬升單片機(jī)的輸出電流,提高負(fù)載驅(qū)動(dòng)能力。其引腳如圖 37 所示,其內(nèi)部含七對(duì)達(dá)林頓放大管,其主要功能 :當(dāng)輸入為高電平時(shí),輸出為低電平 。輸入為低電平時(shí),輸出為高電平。本課題讓單片機(jī) 經(jīng)此芯片提升驅(qū)動(dòng)能力從而控制數(shù)碼管的位選,實(shí)現(xiàn)數(shù)據(jù)動(dòng)態(tài)掃描 輸出。 由于聲音的速度在不同的溫度下有所不同,為提高系統(tǒng)的精度,采用了溫度補(bǔ)償功能。這里采用的主要元器件是是美國(guó) Dallas 半導(dǎo)體公司生產(chǎn)的單總線數(shù)字溫度傳感器DS18B20,其具有精度高、智能化、體積小、線路簡(jiǎn)單等特點(diǎn)。將 DS18B20 數(shù)據(jù)線與單片機(jī)的 口相連,就可以實(shí)現(xiàn)溫度測(cè)量,如圖 38 所示。 中北大學(xué)畢業(yè)論文 21 LCD 顯示部分 本設(shè)計(jì)顯示部分采用字符型 TC1602 液晶顯示所測(cè)距離值。 TC1602 顯示的容量為 2行 16 個(gè)字。液晶顯示屏有微功耗、體積小、顯示內(nèi) 容豐富、超薄輕巧、使用方便等諸多優(yōu)點(diǎn),與數(shù)碼管相比,顯得更專業(yè)、美觀。使用時(shí),可將 P0 與 LCD 的數(shù)據(jù)線相連, P2口與 LCD 的控制線相連,如圖所示 。 其中, TC1602 第 4 腳 RS 為寄存器選擇,第 5 腳 RW 為讀寫信號(hào)線,第 6 腳 E 為使能端。第 7~ 14 腳: D0~ D7 為 8 位雙向數(shù)據(jù)線。這里要注意的是,為了布線方便,單片機(jī)端的 D0~ D7 是接到 LCD/ 602 的 D1~ D0,正好相反,因此在編寫軟件時(shí)需要做處理,使讀取正確。 圖 38 DS18B20 溫度測(cè)量電路 圖 39 TC1602 液晶顯示電路 中北大學(xué)畢業(yè)論文 22 報(bào)警部分 采用一個(gè)蜂鳴器,由 輸出一定頻率 的信號(hào),在連接到蜂鳴器之前,經(jīng)過(guò)一個(gè)三極管 9012 的放大。報(bào)警部分的連線,如圖 310 所示 。 圖 310報(bào)警電路 本章小結(jié) 本章主要介紹了基于單片機(jī)的超聲測(cè)距系統(tǒng)的具體硬件設(shè)計(jì)電路。對(duì)其中主要硬件單元 :發(fā)射電路、接收電路、檢測(cè)電路以及顯示電路的設(shè)計(jì)給出原理圖并進(jìn)行了分析計(jì)算。 中北大學(xué)畢業(yè)論文 23 第 4章 軟件設(shè)計(jì)和測(cè)量結(jié)果分析 系統(tǒng)軟件設(shè)計(jì) 系統(tǒng)程序結(jié)構(gòu): (1)DS18B20溫度傳感器接口模塊,分為初始化程序、寫入命令以及讀取子程序等部分; (2)基于 YB1602 的顯示模塊,分為初始化子程序、寫 入子程序以及顯示子程序; (3)溫度補(bǔ)償與距離計(jì)算模塊、分為超聲波發(fā)送控制程序、接收處理程序、溫度補(bǔ)償子程序等; (4)本次設(shè)計(jì)使用 C 語(yǔ)言編寫程序, C 語(yǔ)言相比匯編有許多的優(yōu)勢(shì);編譯器使用 Keil ? Version2 進(jìn)行程序編譯, Keil 功能強(qiáng)大使用方便。 主程序,分為系統(tǒng)初始化、按鍵處理以及各個(gè)子程序的調(diào)度管理等部分。 如圖 41 所示描述了各個(gè)模塊的關(guān)系: 圖 41 系統(tǒng)軟件方框圖 系統(tǒng)主程序: 中北大學(xué)畢業(yè)論文 24 本設(shè)計(jì)主程序的思想如下: (1)溫度為兩位顯示,距離為四位 顯示單位為 mm; (2)溫度每隔 900ms 采樣一次, DS18B20在 12位精度下轉(zhuǎn)換周期為 750ms ,故 900ms 滿足該速度要求;超聲波每隔 60ms 發(fā)送一次。 (3)按鍵 S 為測(cè)量啟動(dòng)鍵; (4)系統(tǒng)采用 AT89S52的內(nèi)時(shí)鐘: 12MHz; (5)沒(méi)有使用看門狗功能; (6)超聲波發(fā)送一定時(shí)間后才開始啟動(dòng)檢測(cè),避免直達(dá)信號(hào)造成誤判。所以系統(tǒng)最小測(cè)量約為 112mm; 系統(tǒng)主程序如下: void main(void) { uchar i,j。 for(i=0。i255。i++) for(j=0。j255。j++)。 //延時(shí),等待系統(tǒng)外圍復(fù)位完成 sys_init()。 //初始化 display()。 //顯示 sta_flag=0。 //標(biāo)準(zhǔn)復(fù)位 waitforstarting: //檢測(cè)按鍵 while(START)。 for(i=0。i20。i++) delay1ms()。 if(START) 中北大學(xué)畢業(yè)論文 25 goto waitforstarting。 BUZZER=0。 //蜂鳴器鳴音一次提示按鍵按下 i=100000。 while(i)。 BUZZER=1。 i=100000。 while(i)。 TR0=1。 //啟動(dòng)定時(shí)器 0 ET0=1。 testtemp()。 //啟動(dòng)溫度轉(zhuǎn)換 while(1) { if(sta_flag) //60MS 到了,超聲波已經(jīng)發(fā)送 { while(0==CSBIN)。 //等待超聲波返回 TR1=0。 jsh=TH1。 //停止計(jì)數(shù) jsl=TL1。 if(15==count) //1S 到,檢測(cè)溫度 { temp=wd()。 count=0。 中北大學(xué)畢業(yè)論文 26 testtemp()。 //重新啟動(dòng)轉(zhuǎn)換 display()。 //刷新顯示 } puter()。 //計(jì)算距離 hextobcd()。 //轉(zhuǎn)化成 BCD 碼 sta_flag=0。 //標(biāo)志清零 } } } void sys_init(void) { uchar i。 for(i=0。i29。i++) //顯示清零 { num[i]=0。} TMOD=0x11。 TH0=0x15。 TL0=0xA0。 P0=0。 CNT=0。 //超聲波發(fā)送關(guān)閉 CSBIN=1。 EA=1。 //開放總中斷 Init_LCD()。 中北大學(xué)畢業(yè)論文 27 } 外部中斷子程序 如圖所示,中斷服務(wù)程序是響應(yīng)單片機(jī)的外部中斷。在系統(tǒng)主 程序中,發(fā)射的 4OKHz脈沖信號(hào)遇到障礙物反射后,經(jīng)接收檢測(cè)電路產(chǎn)生外中斷信號(hào)至單片機(jī)。在中斷服務(wù)程序中,首先進(jìn)行必要的現(xiàn)場(chǎng)保護(hù),再把進(jìn)入中斷服務(wù)程序處的計(jì)數(shù)值讀出并對(duì)該數(shù)據(jù)進(jìn)行處理,計(jì)算得到相應(yīng)的距離值,同時(shí)轉(zhuǎn)換為十進(jìn)制,最后送到 P2 口顯示輸出。 RECEIVE: PUSH PSW ;中斷現(xiàn)場(chǎng)保護(hù) PUSH A CLR EXO ;關(guān)閉外部中斷 INTO MOV R0, TL0 ;讀取時(shí)間 MOV R1, TH0 LCALL MULD ;調(diào)用乘法子程序計(jì)算機(jī)距離 LCALL ADJ ;調(diào)用十進(jìn)制調(diào)整子程序 LCALL DISP SETB EX0 ;打開外部中斷 INT0 POP A POP PSW RETI 定時(shí)器中斷子程序 定時(shí)器中斷子程序流程圖如圖 42 所示。由于 51 單片機(jī)是 16 位定時(shí)器,最大計(jì)時(shí)時(shí)間為 65536us,當(dāng)測(cè)量的距離很遠(yuǎn)的時(shí)候,定時(shí)器就會(huì)發(fā)生溢出 。所以必須對(duì)溢出中斷進(jìn)行相應(yīng)的設(shè)置才能使得單片機(jī)正常工作。同時(shí)由于電路的測(cè)量距離有 限最遠(yuǎn)為 5 米,當(dāng)測(cè)量距離超出 5 米時(shí),接收探頭就不能檢測(cè)回波,即不能產(chǎn)出外部中斷更不可能關(guān)閉定時(shí)器。程序如下 : TIME0: PUSH PSW ;中斷現(xiàn)場(chǎng)保護(hù) PUSH A CLR EX0 CLR TR0 MOV TL0, 00H MOV TH0, 00H SETB TR0 SETB EX0 中北大學(xué)畢業(yè)論文 28 LCALL PULSE ;調(diào)用發(fā)射脈沖子程序 POP A POP PSW RETI 圖 42 定時(shí)中斷子程序流程 實(shí)現(xiàn)重要功能的程序分析 實(shí)現(xiàn)溫度讀取功能 uint Read_Temperature(void) //讀取溫度 ,返回整數(shù)值 { uint c。 reset()。 //復(fù)位 18b20 芯片 tu=0。 //先置位溫度正負(fù)標(biāo)示為正 if(r) { write(0xCC)。 // 跳過(guò)多傳感器識(shí)別 skio rom write(0xBE)。 //發(fā)讀內(nèi)部 9字節(jié)內(nèi)容指令 c=read()。 //讀兩個(gè)字 reset()。 //讀完兩個(gè)字節(jié)后復(fù)位 write(0xCC)。 // 跳過(guò)多傳感器識(shí)別 skio rom write(0x44)。 // 發(fā)啟動(dòng)溫度變換指令 定時(shí)中斷 關(guān)閉定時(shí)器 定時(shí)器初始化 發(fā)射脈沖串 打開定時(shí)器 返回 中北大學(xué)畢業(yè)論文 29 if(c0x1000){c=c+1。tu=1。} //若溫度小于 0,tu=1 c=4。 //去掉低四位即為整數(shù)溫度值,無(wú)需 * return c。 } else{return r。 } //返回 0XFF 表示未檢測(cè)到 18B20 芯片 } 實(shí)現(xiàn)根據(jù)溫度轉(zhuǎn)化聲速 int C_speed(void) //根據(jù)溫度查算聲速值 { uchar y。 y=Read_Temperature()。 //采溫度 if(r){ //若溫度有變化則按溫度值取聲速 { T_C=y。
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1