超聲波傳感器測液位_第1頁
超聲波傳感器測液位_第2頁
超聲波傳感器測液位_第3頁
超聲波傳感器測液位_第4頁
超聲波傳感器測液位_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第一章超聲波測油罐液位的總體方案超聲波測液位原理我們一般把聲波頻率超過20kHz的聲波稱為超聲波,超聲波是機械波的一種,即是機械振動在彈性介質(zhì)中的一種傳播過程,它的特征是頻率高、波長短、繞射現(xiàn)象小,另外方向性好,能夠成為射線而定向傳播。超聲波在液體、固體中衰減很小,因而穿透能力強,尤其是在對光不透明的固體中,超聲波可穿透幾十米的長度,碰到雜質(zhì)或界面就會有顯著的反射,超聲波測量物位就是利用了它的這一特征。超聲波測液位的原理是利用超聲波的發(fā)射和接受,根據(jù)超聲波傳播的時間來計算出傳播距離。實用的測距方法有兩種,一種是在被測距離的兩端,一端發(fā)射,另一端接收的直接波方式,適用于身高計;一種是發(fā)射波被物體反射回來后接收的反射波方式,適用于測距儀。此次設(shè)計采用反射波方式。測距儀的分辨率取決于對超聲波傳感器的選擇。超聲波傳感器是一種采用壓電效應的傳感器,常用的材料是壓電陶瓷。由于超聲波在空氣中傳播時會有相當?shù)乃p,衰減的程度與頻率的高低成正比;而頻率高分辨率也高,故短距離測量時應選擇頻率高的傳感器,而長距離的測量時應用低頻率的傳感器。在超聲波檢測技術(shù)中,不管那種超聲波儀器,都必須把電能轉(zhuǎn)換超聲波發(fā)射出去,再接收回來變換成電信號,完成這項功能的裝置就叫超聲波換能器,也稱探頭。將超聲波換能器置于被測液體上方,向下發(fā)射超聲波,超聲波穿過空氣介質(zhì),在遇到水面時被反射回來,又被換能器所接收并轉(zhuǎn)換為電信號,電子檢測部分檢測到這一信號后將其變成液位信號進行顯示并輸出。由超聲波在介質(zhì)中傳播原理可知,若介質(zhì)壓力、溫度、密度、濕度等條件一定,則超聲波在該介質(zhì)中傳播速度是一個常數(shù)。因此,當測出超聲波由發(fā)射到遇到液面反射被接收所需要的時間,則可換算出超聲波通過的路程,即得到了液位的數(shù)據(jù)。發(fā)射器發(fā)出的超聲波以速度U在空氣中傳播,在到達液面時被反射返回,由接收器接收,其往返時間為t,傳感器距油罐底的距離為h,由公式:s=h一v*t/2即可算出油罐液位高度。在測距時由于溫度變化,可通過溫度傳感器自動探測環(huán)境溫度,確定計算距離時的波速V,較準確地得出該環(huán)境下的超聲波經(jīng)過得路程,提高了測量精確度。下表列出了幾種不同溫度下的聲速。在使用時,如果溫度變化不大,則可認為聲速是基本不變的。如果測距精度要求很高,則應通過溫度補償?shù)姆椒右孕U?/p>

表1-1超聲波波速與溫度的關(guān)系表溫度(°C)-30-20-100102030100聲速(m/s)313319325323338344349386系統(tǒng)總體框圖AT89C51通過TO的方式2實現(xiàn)P1.0輸出脈沖寬度為25us、載波為40kHz的超聲波脈沖串。采用CX20106A紅外檢波接收和超聲波接收芯片接收超聲波,超聲波接收器將接收到的超聲波信號送到單片機的INT0口,啟動中斷程序測得時間為t,再由軟件進行判別、計算,得出距離數(shù)并送四位共陰數(shù)碼管動態(tài)掃描顯示,顯示電路采用簡單實用的4位共陰LED數(shù)碼管,段碼直接由8255a的PA0口輸出信號驅(qū)動,位碼用PNP三極管8050驅(qū)動。若此值超過了設(shè)定的液位上下限,聲光報警電路就會啟動進行報警??傮w設(shè)計電路如圖1-1所示。第二章超聲波測油罐液位硬件電路系統(tǒng)硬件電路主要由單片機AT89C51,傳感器:超聲波傳感器和溫度傳感器DS18B20,I/O口擴展芯片8255a,顯示電路,聲光報警電路,485總線等。2.1AT89C51單片機性能及引腳功能AT89C51是一種帶4K字節(jié)FLASH存儲器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低電壓、高性能CMOS8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。外形及引腳排列如圖2-1所示:23斗567823斗567813小122143119189亠1P10POOP11P01P12P02P13P03P14P04P15P05P16P06P17P07INT1P20INTOP21P22T1P23TOP24P25EA/VPP26P27XIX2RESETRXDTXDRDALE/PWRPSEN圖2-1AT89C51引腳圖39383736353433322122232425262728 1011賀29C——其管腳說明:VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P0口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示:口管腳備選功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INTO(外部中斷0)P3.3/INT1(外部中斷1)P3.4TO(記時器0外部輸入)P3.5T1(記時器1外部輸入)P3.6/WR(外部數(shù)據(jù)存儲器寫選通)P3.7/RD(外部數(shù)據(jù)存儲器讀選通)P3口同時為閃爍編程和編程校驗接收一些控制信號。RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地

位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。AT89C51的復位電路和震蕩電路如圖2-2所示。345§僅VPXIX2Rli&ETrrmINTITOT1n.on.iru345§僅VPXIX2Rli&ETrrmINTITOT1n.on.iruFl.Iri.5ri.6ri<3S3^36:上:VI333221222321252(5嚴r16■J301110RDWKPSEHALE示rwRXD7?p012345672r2.2.2fc2fc2.2.2.PPPPPPPP圖2-2復位電路和震蕩電路芯片擦除:整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復編程以前,該操作必須被執(zhí)行。

此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止。串口通訊單片機的結(jié)構(gòu)和特殊寄存器,這是你編寫軟件的關(guān)鍵。至于串口通信需要用到那些特殊功能寄存器呢,它們是SCON,TCON,TMOD,SCON等,各代表什么含義呢?SBUF數(shù)據(jù)緩沖寄存器這是一個可以直接尋址的串行口專用寄存器。有朋友這樣問起過“為何在串行口收發(fā)中,都只是使用到同一個寄存器SBUF?而不是收發(fā)各用一個寄存器?!睂嶋H上SBUF包含了兩個獨立的寄存器,一個是發(fā)送寄存,另一個是接收寄存器,但它們都共同使用同一個尋址地址一99H。CPU在讀SBUF時會指到接收寄存器,在寫時會指到發(fā)送寄存器,而且接收寄存器是雙緩沖寄存器,這樣可以避免接收中斷沒有及時的被響應,數(shù)據(jù)沒有被取走,下一幀數(shù)據(jù)已到來,而造成的數(shù)據(jù)重疊問題。發(fā)送器則不需要用到雙緩沖,一般情況下我們在寫發(fā)送程序時也不必用到發(fā)送中斷去外理發(fā)送數(shù)據(jù)。操作SBUF寄存器的方法則很簡單,只要把這個99H地址用關(guān)鍵字sfr定義為一個變量就可以對其進行讀寫操作了,如sfrSBUF=0x99;當然你也可以用其它的名稱。通常在標準的reg51.h或at89x51.h等頭文件中已對其做了定義,只要用#include引用就可以了。SCON串行口控制寄存器通常在芯片或設(shè)備中為了監(jiān)視或控制接口狀態(tài),都會引用到接口控制寄存器oSCON就是51芯片的串行口控制寄存器。它的尋址地址是98H,是一個可以位尋址的寄存器,作用就是監(jiān)視和控制51芯片串行口的工作狀態(tài)。51芯片的串口可以工作在幾個不同的工作模式下,其工作模式的設(shè)置就是使用SCON寄存器。它的各個位的具體定義如下:SM0SM1SM2RENTB8RB8TIRISMO、SM1為串行口工作模式設(shè)置位,這樣兩位可以對應進行四種模式的設(shè)置。串行口工作模式設(shè)置。SM0SM1模式功能波特率000同步移位寄存器fosc/120118位UART可變1029位UARTfosc/32或fosc/641139位UART可變在這里只說明最常用的模式1,其它的模式也就一一略過,有興趣的朋友可以找相關(guān)的硬件資料查看。表中的fosc代表振蕩器的頻率,也就是晶振的頻率。UART為(UniversalAsynchronousReceiver)的英文縮寫。

SM2在模式2、模式3中為多處理機通信使能位。在模式0中要求該位為0。REM為允許接收位,REM置1時串口允許接收,置0時禁止接收。REM是由軟件置位或清零。如果在一個電路中接收和發(fā)送引腳P3.0,P3.1都和上位機相連,在軟件上有串口中斷處理程序,當要求在處理某個子程序時不允許串口被上位機來的控制字符產(chǎn)生中斷,那么可以在這個子程序的開始處加入REM=0來禁止接收,在子程序結(jié)束處加入REM=1再次打開串口接收。大家也可以用上面的實際源碼加入REM=0來進行實驗。TB8發(fā)送數(shù)據(jù)位8,在模式2和3是要發(fā)送的第9位。該位可以用軟件根據(jù)需要置位或清除,通常這位在通信協(xié)議中做奇偶位,在多處理機通信中這一位則用于表示是地址幀還是數(shù)據(jù)幀。RB8接收數(shù)據(jù)位8,在模式2和3是已接收數(shù)據(jù)的第9位。該位可能是奇偶位,地址/數(shù)據(jù)標識位。在模式0中,RB8為保留位沒有被使用。在模式1中,當SM2=0,RB8是已接收數(shù)據(jù)的停止位。TI發(fā)送中斷標識位。在模式0,發(fā)送完第8位數(shù)據(jù)時,由硬件置位。其它模式中則是在發(fā)送停止位之初,由硬件置位。TI置位后,申請中斷,CPU響應中斷后,發(fā)送下一幀數(shù)據(jù)。在任何模式下,TI都必須由軟件來清除,也就是說在數(shù)據(jù)寫入到SBUF后,硬件發(fā)送數(shù)據(jù),中斷響應(如中斷打開),這時TI=1,表明發(fā)送已完成,TI不會由硬件清除,所以這時必須用軟件對其清零。RI接收中斷標識位。在模式0,接收第8位結(jié)束時,由硬件置位。其它模式中則是在接收停止位的半中間,由硬件置位。RI=1,申請中斷,要求CPU取走數(shù)據(jù)。但在模式1中,SM2=1時,當未收到有效的停止位,則不會對RI置位。同樣RI也必須要靠軟件清除。常用的串口模式1是傳輸10個位的,1位起始位為0,8位數(shù)據(jù)位,低位在先,1位停止位為1。它的波特率是可變的,其速率是取決于定時器1或定時器2的定時值(溢出速率)。AT89C51和AT89C2051等51系列芯片只有兩個定時器,定時器0和定時器1,而定時器2是89C52系列芯片才有的。波特率在使用串口做通訊時,一個很重要的參數(shù)就是波特率,只有上下位機的波特率一樣時才可以進行正常通訊。波特率是指串行端口每秒內(nèi)可以傳輸?shù)牟ㄌ匚粩?shù)。有一些初學的朋友認為波特率是指每秒傳輸?shù)淖止?jié)數(shù),如標準9600會被誤認為每秒種可以傳送9600個字節(jié),而實際上它是指每秒可以傳送9600個二進位,而一個字節(jié)要8個二進位,如用串口模式1來傳輸那么加上起始位和停止位,每個數(shù)據(jù)字節(jié)就要占用10個二進位,9600波特率用模式1傳輸時,每秒傳輸?shù)淖止?jié)數(shù)是9600F10=960字節(jié)。51芯片的串口工作模式0的波特率是固定的,為fosc/12,以一個12M的晶振來計算,那么它的波特率可以達到1M。模式2的波特率是固定在fosc/64或fosc/32,具體用那一種就取決于PCON寄存器中的SMOD位,如SMOD為0,波特率

為focs/64,SM0D為1,波特率為focs/32。模式1和模式3的波特率是可變的,取決于定時器1或2(52芯片)的溢出速率。那么我們怎么去計算這兩個模式的波特率設(shè)置時相關(guān)的寄存器的值呢?可以用以下的公式去計算。波特率=(2SM0DF32)X定時器1溢出速率上式中如設(shè)置了PCON寄存器中的SMOD位為1時就可以把波特率提升2倍。通常會使用定時器1工作在定時器工作模式2下,這時定時值中的TL1做為計數(shù),TH1做為自動重裝值,這個定時模式下,定時器溢出后,TH1的值會自動裝載到TL1,再次開始計數(shù),這樣可以不用軟件去干預,使得定時更準確。在這個定時模式2下定時器1溢出速率的計算公式如下:溢出速率=(計數(shù)速率)/(256-TH1)上式中的“計數(shù)速率”與所使用的晶體振蕩器頻率有關(guān),在51芯片中定時器啟動后會在每一個機器周期使定時寄存器TH的值增加一,一個機器周期等于十二個振蕩周期,所以可以得知51芯片的計數(shù)速率為晶體振蕩器頻率的1/12,一個12M的晶振用在51芯片上,那么51的計數(shù)速率就為1M。通常用11.0592M晶體是為了得到標準的無誤差的波特率,那么為何呢?計算一下就知道了。如我們要得到9600的波特率,晶振為11.0592M和12M,定時器1為模式2,SMOD設(shè)為1,分別看看那所要求的TH1為何值。代入公式:11.0592M9600=(2/32)*((11.0592/12)/(256—TH1))TH1=25012M9600=(2/32)*((11.0592/12)/(256—TH1))TH1~249.49上面的計算可以看出使用12M晶體的時候計算出來的TH1不為整數(shù),而TH1的值只能取整數(shù),這樣它就會有一定的誤差存在不能產(chǎn)生精確的9600波特率。當然一定的誤差是可以在使用中被接受的,就算使用11.0592M的晶體振蕩器也會因晶體本身所存在的誤差使波特率產(chǎn)生誤差,但晶體本身的誤差對波特率的影響是十分之小的,可以忽略不計。傳感器部分人們?yōu)榱藦耐饨绔@取信息,必須借助于感覺器官。而單靠人們自身的感覺器官,在研究自然現(xiàn)象和規(guī)律以及生產(chǎn)活動中它們的功能就遠遠不夠了。為適應這種情況,就需要傳感器。因此可以說,傳感器是人類五官的延長,又稱之為電五官。新技術(shù)革命的到來,世界開始進入信息時代。在利用信息的過程中,首先要解決

的就是要獲取準確可靠的信息,而傳感器是獲取自然和生產(chǎn)領(lǐng)域中信息的主要途徑與手段。在現(xiàn)代工業(yè)生產(chǎn)尤其是自動化生產(chǎn)過程中,要用各種傳感器來監(jiān)視和控制生產(chǎn)過程中的各個參數(shù),使設(shè)備工作在正常狀態(tài)或最佳狀態(tài),并使產(chǎn)品達到最好的質(zhì)量。因此可以說,沒有眾多的優(yōu)良的傳感器,現(xiàn)代化生產(chǎn)也就失去了基礎(chǔ)。在基礎(chǔ)學科研究中,傳感器更具有突出的地位?,F(xiàn)代科學技術(shù)的發(fā)展,進入了許多新領(lǐng)域:例如在宏觀上要觀察上千光年的茫茫宇宙,微觀上要觀察小到nm的粒子世界,縱向上要觀察長達數(shù)十萬年的天體演化,短到s的瞬間反應。此外,還出現(xiàn)了對深化物質(zhì)認識、開拓新能源、新材料等具有重要作用的各種極端技術(shù)研究,如超咼溫、超低溫、超咼壓、超咼真空、超強磁場、超弱磁碭等等。顯然,要獲取大量人類感官無法直接獲取的信息,沒有相適應的傳感器是不可能的。許多基礎(chǔ)科學研究的障礙,首先就在于對象信息的獲取存在困難,而一些新機理和高靈敏度的檢測傳感器的出現(xiàn),往往會導致該領(lǐng)域內(nèi)的突破。一些傳感器的發(fā)展,往往是一些邊緣學科開發(fā)的先驅(qū)。傳感器早已滲透到諸如工業(yè)生產(chǎn)、宇宙開發(fā)、海洋探測、環(huán)境保護、資源調(diào)查、醫(yī)學診斷、生物工程、甚至文物保護等等極其之廣泛的領(lǐng)域??梢院敛豢鋸埖卣f,從茫茫的太空,到浩瀚的海洋,以至各種復雜的工程系統(tǒng),幾乎每一個現(xiàn)代化項目,都離不開各種各樣的傳感器。由此可見,傳感器技術(shù)在發(fā)展經(jīng)濟、推動社會進步方面的重要作用,是十分明顯的。世界各國都十分重視這一領(lǐng)域的發(fā)展。相信不久的將來,傳感器技術(shù)將會出現(xiàn)一個飛躍,達到與其重要地位相稱的新水平。傳感器工作原理的分類物理傳感器應用的是物理效應,諸如壓電效應,磁致伸縮現(xiàn)象,離化、極化、熱電、光電、磁電等效應。被測信號量的微小變化都將轉(zhuǎn)換成電信號?;瘜W傳感器包括那些以化學吸附、電化學反應等現(xiàn)象為因果關(guān)系的傳感器,被測信號量的微小變化也將轉(zhuǎn)換成電信號。向傳感器提供±15V電源,激磁電路中的晶體振蕩器產(chǎn)生400Hz的方波,經(jīng)過TDA2030功率放大器即產(chǎn)生交流激磁功率電源,通過能源環(huán)形變壓器T1從靜止的初級線圈傳遞至旋轉(zhuǎn)的次級線圈,得到的交流電源通過軸上的整流濾波電路得到±5V的直流電源,該電源做運算放大器AD822的工作電源;由基準電源AD589與雙運放AD822組成的高精度穩(wěn)壓電源產(chǎn)生±4.5V的精密直流電源,該電源既作為電橋電源,又作為放大器及V/F轉(zhuǎn)換器的工作電源。當彈性軸受扭時,應變橋檢測得到的mV級的應變信號通過儀表放大器AD620放大成1.5v±1v的強信號,再通過V/F轉(zhuǎn)換器LM131變換成頻率信號,通過信號環(huán)形變壓器T2從旋轉(zhuǎn)的初級線圈傳遞至靜止次級線圈,再經(jīng)過外殼上的信號處理電路濾波、整形即可得到與彈性軸承受的扭矩成正比的頻率信號,該信號為TTL電平,既可提供給專用二次儀表或頻率計顯示也可直接送計算機處理。由于該旋轉(zhuǎn)變壓器動一靜環(huán)之間只有零點幾毫米的間隙,加之傳感器軸上部分都密封在金屬外殼之內(nèi),形成有效的屏蔽,因此具有很強的抗干擾能力。有些傳感器既不能劃

分到物理類,也不能劃分為化學類。大多數(shù)傳感器是以物理原理為基礎(chǔ)運作的?;瘜W傳感器技術(shù)問題較多,例如可靠性問題,規(guī)模生產(chǎn)的可能性,價格問題等,解決了這類難題,化學傳感器的應用將會有巨大增長。本設(shè)計傳感器有超聲波傳感器和溫度傳感器DS18B20組成,其中超聲波傳感器又分為超聲波發(fā)射電路和超聲波接收電路,發(fā)射電路由五個反相器組成,接收電路由CX20106a組成。2.2.1超聲波傳感器超聲波發(fā)射電路:超聲波發(fā)射電路原理圖如圖2-3所示。發(fā)射電路主要由反相器74LS04和超聲波發(fā)射換能器T構(gòu)成,單片機P1.0端口輸出的40kHz的方波信號一路經(jīng)一級反向器后送到超聲波換能器的一個電極,另一路經(jīng)兩級反向器后送到超聲波換能器的另一個電極,用這種推換形式將方波信號加到超聲波換能器的兩端,可以提高超聲波的發(fā)射強度。輸出端采兩個反向器并聯(lián),用以提高驅(qū)動能力。上位電阻R2O、R21一方面可以提高反向器74LS04輸出高電平的驅(qū)動能力,另一方面可以增加超聲波換能器的阻尼效果,縮短其自由振蕩時間。U13A U13EU13A U13E圖2-3超聲波發(fā)射電路壓電式超聲波換能器是利用壓電晶體的諧振來工作的。超聲波換能器內(nèi)部有兩個壓電晶片和一個換能板。當它的兩極外加脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時,壓電晶片會發(fā)生共振,并帶動共振板振動產(chǎn)生超聲波,這時它就是一個超聲波發(fā)生器;反之,如果兩電極問未外加電壓,當共振板接收到超聲波時,將壓迫壓電晶片作振動,將機械能轉(zhuǎn)換為電信號,這時它就成為超聲波接收換能器。超聲波發(fā)射換能器與接收換能器在結(jié)構(gòu)上稍有不同,使用時應分清器件上的標志。超聲波接收電路:集成電路CX20106A是一款紅外線檢波接收的專用芯片,常用于電視機紅外遙控接收器??紤]到紅外遙控常用的載波頻率38kHz與測距的超聲波頻率40kHz較為接近,可以利用它制作超聲波檢測接收電路(如圖2-5)。實驗證明用CX20106A接收超聲波(無信號時輸出高電平),具有很好的靈敏度和較強的抗干擾能力。適當更改電容C4的大小,可以改變接收電路的靈敏度和抗干擾能力。其內(nèi)部結(jié)構(gòu)圖如圖2-4所示:前置電路將接收到的信號,轉(zhuǎn)換成CX2010可以接收的標準數(shù)字信號,送到CX20106的①腳,CX20106的總放大增益約為80dB,其⑦腳輸出的控制脈沖序列信號幅度在3.5~5V范圍內(nèi)。總增益大小由②腳外接的Rl、C1決定,R1越小或C1越大,增益越高。但取值過大時將造成頻率響應變差,C1為luF。采用峰值檢波方式檢波電容C2為3.3uF°R2為帶通濾波器中心頻率f0的外部電阻。積分電容C3取330pF。經(jīng)CX20106處理后的脈沖信號由⑦腳輸出給AT89c51進行譯碼處理。使用CX20106A集成電路對接收探頭受到的信號進行放大、濾波。其總放大增益80db。以下是CX20106A的引腳注釋。圖2-5由CX20106組成的超聲波接收電路1腳:超聲信號輸入端,該腳的輸入阻抗約為40kQ。腳:該腳與地之間連接RC串聯(lián)網(wǎng)絡(luò),它們是負反饋串聯(lián)網(wǎng)絡(luò)的一個組成部分,改變它們的數(shù)值能改變前置放大器的增益和頻率特性。增大電阻R1或減小C1,將使負反饋量增大,放大倍數(shù)下降,反之則放大倍數(shù)增大。但C1的改變會影響到頻率特性,一般在實際使用中不必改動,推薦選用參數(shù)為R1=4.7Q,C1=1pF。腳:該腳與地之間連接檢波電容,電容量大為平均值檢波,瞬間相應靈敏度低;若容量小,則為峰值檢波,瞬間相應靈敏度高,但檢波輸出的脈沖寬度變動大,易造成誤動作,推薦參數(shù)為3.3》f。腳:接地端。5腳:該腳與電源間接入一個電阻,用以設(shè)置帶通濾波器的中心頻率fO,阻值越大,中心頻率越低。例如,取R=200kQ時,fO~42kHz,若取R=220kQ,則中心頻率fO~38kHz。6腳:該腳與地之間接一個積分電容,標準值為330pF,如果該電容取得太大,會使探測距離變短。7腳:遙控命令輸出端,它是集電極開路輸出方式,因此該引腳必須接上一個上拉電阻到電源端,推薦阻值為22kQ,沒有接受信號是該端輸出為高電平,有信號時則產(chǎn)生下降。8腳:電源正極,4.5?5V。注意事項:對于CX20106的調(diào)試并不是像某些書上講的那樣十分簡單,雖然外圍器件少,但要做到穩(wěn)定需要注意細節(jié)部分(比如2腳的阻容調(diào)試-即增益),另外若有示波器觀察實際波形將在調(diào)試中很有幫助;當CX20106A接收到40KHz(發(fā)射頻率和解制必須一致)信號時,會在第7腳產(chǎn)生一個低電平下降脈沖,這個信號可以接到單片機的外部中斷引腳作為中斷信號輸入用于計算時間差。在實際調(diào)試的時候只關(guān)心芯片的7腳在收到信號是是否有一個下降沿產(chǎn)生。在本電路的調(diào)試中,如果一直發(fā)射超聲波,在7腳將會有周期的低電平產(chǎn)生。不會像通常認為的那樣,即一直發(fā)射信號時,7腳一直為低電平。這是剛用CX20106時的一個常見錯誤。只要通過單片機來來計算發(fā)射信號時到收到信號是產(chǎn)生下降沿這段時間的長度,再通過數(shù)學計算,轉(zhuǎn)化為距離,然后在顯示器上顯示。溫度傳感器DS18B20DS18B20是美國DALLAS公司繼DS1820之后推出的增強型單總線數(shù)字溫度傳感器,它在測溫精度、轉(zhuǎn)換時間、傳輸距離、分辨率等方面較DS1820有了很大的改進,這給用戶帶來了更方便的使用和更令人滿意的效果。DS18B20的存儲器包括高速暫存器RAM和可電擦除RAM,可電擦除RAM又包括溫度觸發(fā)器TH和TL,以及一個配置寄存器。存儲器能完整的確定一線端口的通訊,數(shù)字開始用寫寄存器的命令寫進寄存器,接著也可以用讀寄存器的命令來確認這些數(shù)字。當確認以后就可以用復制寄存器的命令來將這些數(shù)字轉(zhuǎn)移到可電擦除RAM中。當修改過寄存器中的數(shù)時,這個過程能確保數(shù)字的完整性DS18B20的主要特性1、 適應電壓范圍更寬,電壓范圍:3.0?5.5V,在寄生電源方式下可由數(shù)據(jù)線供電2、 獨特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊3、 DS18B20支持多點組網(wǎng)功能,多個DS18B20可以并聯(lián)在唯一的三線上,實現(xiàn)組網(wǎng)多點測溫4、 DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)5、 溫范圍一55°C?+125°C,在-10?+85°C時精度為土0.5°C6、 可編程的分辨率為9?12位,對應的可分辨溫度分別為0.5°C、0.25°C、0.125C和0.0625C,可實現(xiàn)高精度測溫7、 在9位分辨率時最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快8、 測量結(jié)果直接輸出數(shù)字溫度信號,以〃一線總線〃串行傳送給CPU,同時可傳

送CRC校驗碼,具有極強的抗干擾糾錯能力9、負壓特性:電源極性接反時,芯片不會因發(fā)熱而燒毀,但不能正常工作。DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64為光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。DS18B20的內(nèi)部結(jié)構(gòu)如圖2-5:電源檢測電源檢測圖2-5DS18B20內(nèi)部結(jié)構(gòu)圖其外形和管腳如下圖2-5所示。GNDI/OUDDPR-35封裝DS18B201 2 3GNDI/OUDDPR-35封裝DS18B201 2 3VccNCNCNC圖2-6DS18B20管腳及封裝圖DQ為數(shù)字信號輸入/輸出端;GND為電源地;VDD為外接供電電源輸入端(在寄生電源接線方式時接地)。DS18B20的測溫原理為:內(nèi)部計數(shù)器對一個受溫度影響的振蕩器的脈沖計數(shù),低溫時振蕩器的脈沖可以通過門電路,而當?shù)竭_某一設(shè)置高溫時,振蕩器的脈沖無法通過門電路。計數(shù)器設(shè)置為—55°C時的值,如果計數(shù)器到達0之前門電路未關(guān)閉,則溫度寄存器的值將增加,這表示當前溫度高于一55°C。同時,計數(shù)器復位在當前溫度值上,電路對振蕩器的溫度系數(shù)進行補償,計數(shù)器重新開始計數(shù)直到回零。如果門電路仍然未關(guān)閉,則重復以上過程。溫度轉(zhuǎn)換所需時間不超過750ms,得到的溫度值的位數(shù)因分辨率不同而不同[2]。DS18B20同AT89C52單片機的接口電路只需占用單片機一根口線,與智能儀器或智能測控系統(tǒng)中的其它單片機或DSP的接口也可采用類似的方式。在DS1820中,轉(zhuǎn)換溫度值是以9位二進制形式表示的,而輸出溫度則是以16位符號擴展的二進制補碼讀數(shù)形式提供。采用的辦法是將低八位用補碼表示,第九位以符號擴展形式擴展至其它七位。2.3可編程并行接口芯片8255A所謂可編程,實際上就是具有可選擇性。例如,選擇芯片中的哪一個或哪幾個數(shù)據(jù)端口與外設(shè)連接;選擇端口中的哪一位或哪幾位作輸入,哪一位或哪幾位作輸出;選擇端口與CPU之間采用哪種方式傳送數(shù)據(jù)等,均可由用戶在程序中寫入方式字或控制字來進行指定。因此,它們具有廣泛的適應性及很高的靈活性,在微機系統(tǒng)中得到廣泛應用。由于我們現(xiàn)在常用的微機系統(tǒng)均以并行方式處理數(shù)據(jù),所以,并行接口也是最常用的接口電路。2.3.1并行接口的特點并行接口有以下幾方面的特點:(1) 并行接口是在多根數(shù)據(jù)線上,以數(shù)據(jù)字節(jié)(字)為單位與輸入/輸出設(shè)備或被控對象傳送信息的,如打印機接口、A/D、D/A轉(zhuǎn)換器接口、IEEE—488接口、開關(guān)量接口、控制設(shè)備接口等。在實際應用中,凡在CPU與外設(shè)之間同時需要兩位以上信息傳送時,就要采用并行口。并行口適用于近距離傳送的場合。由于各種I/O設(shè)備和被控對象多為并行數(shù)據(jù)線連接,CPU用并行口來組成應用系統(tǒng)很方便,故使用十分普遍。(2) 并行傳送的信息,不要求固定的格式,這與串行傳送的信息有數(shù)據(jù)格式的要求不同。例如,異步串行通信的格式是一個數(shù)據(jù),它包括起始位、數(shù)據(jù)位、校驗位和停止位。(3) 從并行接口的電路結(jié)構(gòu)來看,并行口有硬線連接接口和可編程接口之分。硬線連接接口的工作方式及功能用硬線連接來設(shè)定,用軟件編程序的方法不能加以改變;如果接口的工作方式及功能可以用軟件編程序的方法加以改變,則就叫可編程接口。8255A及其特征Intel8086/8088系列的可編程外設(shè)接口電路(ProgrammablePeripheralInterface)簡稱PPI,型號為8255(改進型為8255A及8255A-5),具有24條輸入/輸出引腳、可編程的通用并行輸入/輸出接口電路。它是一片使用單一+5V電源的40腳雙列直插式大規(guī)模集成電路。8255A的通用性強,使用靈活,通過它CPU可直接與外設(shè)相連接。本系統(tǒng)由于只有一個外部擴展芯片,因此用74LS138譯碼器時,只要使A,B,C口都為高電平即可。8255A是40引腳雙列直插式芯片,片內(nèi)有A,B,C3個8位I/O端口,可提供24條可編程的輸入/輸出端口線。Inter8255A的基本特性如下:(1)具有兩個8位(A口和B口)和兩個4位(C口高/低四位)并行輸入/輸出端口,C口可按位操作。(2)具有3種工作方式:方式0——基本輸入/輸出(A,B,C口均有);方式1——選通輸入/輸出(A,B口具有);方式2——雙向選通輸入/輸出(A口具有)。(3) 可用程序設(shè)置各種工作方式并查詢各種工作狀態(tài)。(4) 在方式1和方式2時,C口作A口、B口的聯(lián)絡(luò)線。(5)內(nèi)部有控制寄存器、狀態(tài)寄存器和數(shù)據(jù)寄存器供CPU訪問。(6)有中斷申請能力,但無中斷管理能力(7)40根引腳,+5V供電,與TTL電平兼容。8255A內(nèi)部結(jié)構(gòu)8255A的內(nèi)部結(jié)構(gòu)如圖2-7所示。(JAVA動畫圖說明)它由以下4個部分組成:

圖2-78255a內(nèi)部結(jié)構(gòu)圖數(shù)據(jù)總線緩沖器這是一個三態(tài)雙向8位緩沖器,它是8255A與CPU系統(tǒng)數(shù)據(jù)總線的接口。所有數(shù)據(jù)的發(fā)送與接收,以及CPU發(fā)出的控制字和8255A來的狀態(tài)信息都是通過該緩沖器傳送的。讀寫控制邏輯讀寫控制邏輯由讀信號RD,寫領(lǐng)帶WR,選片信號CS以及端口選擇信號A1A0等組成。讀寫控制邏輯控制了總線的開放與關(guān)閉和信息傳送的方向,以便把CPU的控制命令或輸出數(shù)據(jù)送到相應的端口;或把外設(shè)的信息或輸入數(shù)據(jù)從相應的端口送到CPU。數(shù)據(jù)端口A、B、C8255A包括3個8位輸入/輸出端口(POPT)。每個端口都有一個數(shù)據(jù)輸入寄存器和一個數(shù)據(jù)輸出寄存器,輸入時端口有三態(tài)緩沖器的功能,輸出時端口有數(shù)據(jù)鎖存器功能。在實際應用中,PC口的8位可以分為兩個4位端口(方式0下),也可以分成一個5位端口和一個3位端口(方式1下)來使用。A組和B組控制電路控制A、B和C3個端口的工作方式,A組控制A口和C口的上半部(PC7?PC4),B組控制B口和C口的下半部(PC3?PC0)的工作方式和輸入/輸出。A組、B組的控制寄存器還接收按位控制命令,以實現(xiàn)對PC口的按位置位/復位操作。2.3.48255A的引腳及其功能、工作方式8255A是一個單+5V電源供電,40個引腳的雙列直插式組件,其外部引線如圖2-8所示。D0PAOD1PAID2PA2D0PAOD1PAID2PA2D3PA3D4PA4D5PA5D6PA6D7PA7RDPEDWRPEIAOPE2AlPE?RESETPE4CSPETPEEPE7PCDPCIPC219PC3PC4PC5PC6PC734333277302928方354T匚4039383718772077222324251417亙T777To-圖2-88255a引腳圖(1)外部引線作為接口電路的8255A具有面向主機系統(tǒng)總線和面向外設(shè)兩個方向的連接能力,它的引腳正是為了滿足這種連接要求而設(shè)置的。面向系統(tǒng)總線的信號線有:D7?DO:雙向數(shù)據(jù)線。CPU通過它向8255A發(fā)送命令、數(shù)據(jù);8255A通過它向CPU回送狀態(tài)、數(shù)據(jù)。CS:選片信號線,該信號低電平有效,由系統(tǒng)地址總線經(jīng)I/O地址譯碼器產(chǎn)生。CPU通過發(fā)高位地址信號使它變成低電平時,才能對8255A進行讀寫操作。當CS為高電平時,切斷CPU與芯片的聯(lián)系。A1,A0:芯片內(nèi)部端口地址信號線,與系統(tǒng)地址總線低位相連。該信號用來尋址8255A內(nèi)部寄存器。兩位地址,可形成片內(nèi)4個端口地址。RD:讀信號線,該信號低電平有效。CPU通過執(zhí)行IN指令,發(fā)讀信號將數(shù)據(jù)或狀態(tài)信號從8255A讀至CPU。WR:寫信號線,該信號低電平有效。CPU通過執(zhí)行OUT指令,發(fā)寫信號,將命令代碼或數(shù)據(jù)寫入8255A。RESET:復位信號線,該信號高電平有效。它清除控制寄存器并將8255A的A、B、C3個端口均置為輸入方式;輸出寄存器和狀態(tài)寄存器被復位,并且屏蔽中斷請求;24條面向外設(shè)的信號線呈現(xiàn)高阻懸浮狀態(tài)。這種狀態(tài)一直維持,直到用方式命令才能改變,使其進入用戶所需的工作方式。面制I/O設(shè)備的信號線有:PAO?PA7:端口A的輸入/輸出線PBO?PB7:端口B的輸入/輸出線PCO?PC7:端口C的輸入/輸出線這24根信號線均可用來連接I/O設(shè)備,通過它們可以傳送數(shù)字量信息或開關(guān)量信息。8255a有三種工作方式,分別為方式0、方式1、方式2。方式0是一種基本輸入或輸出方式,它適用于無需握手信號的簡單輸入輸出應用場合,端口A、B、C都可作為輸入或輸出數(shù)據(jù)使用,輸出有鎖存而輸入無鎖存。方式1也稱選通的輸入/輸出方式。在這種方式下,無論是輸入還是輸出都通過應答關(guān)系實現(xiàn),這時端口A或B用作數(shù)據(jù)口,端口C的一部分引腳用作握手信號線與中斷請求線。?若端口A工作于方式1,則B可工作于方式0;?若端口B工作于方式1,則A可工作于方式0或余下的13位可工作于方式0;?若端口A和B同時工作于方式1,端口C余下的兩位還可用于傳送數(shù)據(jù)或控制信號。方式2也稱選通的雙向I/O方式,僅適用于端口A,這時A口的PA7-PA0作為雙向的數(shù)據(jù)總線,端口C有5條引腳用作A的握手信號線和中斷請求線,而B口和C口余下的3位仍可工作于方式0或1。它可以認為是方式1輸出和輸入的組合但有以下不同:(1)當CPU將數(shù)據(jù)寫入A口時,盡管OBF變?yōu)橛行В珨?shù)據(jù)并不出現(xiàn)在PA7-PA0上,只有外設(shè)發(fā)出ACKA信號時,數(shù)據(jù)才進入PA7-PA0。(2)輸出和輸入引起的中斷請求信號都通過同一引腳輸出,CPU必須通過查詢OBF和IBF狀態(tài)才能確定是輸入引起的中斷請求還是輸出引起的中斷請求。(3)ACKA和STBA信號信號不能同時有效,否則將出現(xiàn)數(shù)據(jù)傳送“沖突”。電源電路直流穩(wěn)壓電源又稱直流穩(wěn)壓器。它的供電電壓大都是交流電壓,當交流供電電壓的電壓或輸出負載電阻變化時,穩(wěn)壓器的直接輸出電壓都能保持穩(wěn)定。穩(wěn)壓器的參數(shù)有電壓穩(wěn)定度、紋波系數(shù)和響應速度等。前者表示輸入電壓的變化對輸出電壓的影響。紋波系數(shù)表示在額定工作情況下,輸出電壓中交流分量的大??;后者表示輸入電壓或負載急劇變化時,電壓回到正常值所需時間。直流穩(wěn)壓電源分連續(xù)導電式與開關(guān)式兩類。前者由工頻變壓器把單相或三相交流電壓變到適當值,然后經(jīng)整流、濾波,獲得不穩(wěn)定的直流電源,再經(jīng)穩(wěn)壓電路得到穩(wěn)定電壓(或電流)。這種電源線路簡單、紋波小、相互干擾小,但體積大、耗材多,效率低(常低于40%?60%)。后者以改變調(diào)整元件(或開關(guān))的通斷時間比來調(diào)節(jié)輸出電壓,從而達到穩(wěn)壓。這類電源功耗小,效率可達85%左右,但缺點是紋波大、相互干擾大。所以,80年代以來發(fā)展迅速。從工作方式上可分為:可控整流型。用改變晶閘管的導通時間來調(diào)整輸出電壓。斬波型。輸入是不穩(wěn)定的直流電壓,以改變開關(guān)電路的通斷比得到單向脈動直流,再經(jīng)濾波后得到穩(wěn)定直流電壓。變換器型。不穩(wěn)定直流電壓先經(jīng)逆變器變換成高頻交流電,再經(jīng)變壓、整流、濾波后,從所得新的直流輸出電壓取樣,反饋控制逆變器工作頻率,達到穩(wěn)定輸出直流電壓的目的。本系統(tǒng)中只需要設(shè)計一種級別的電源即可,即傳感器和系統(tǒng)其他芯片使用的+5V的電源??紤]本次設(shè)計的實際要求使系統(tǒng)穩(wěn)定的工作,提高產(chǎn)品的性價比,電源電路的設(shè)計如圖2-9所示。如圖所示電路為輸出電壓+5V、輸出電流1.5A的穩(wěn)壓電源。它由電源變壓器B橋式整流電路D1?D4,濾波電容Cl、C3,防止自激電容C2、C3和一只固定式三端穩(wěn)壓器(7805)極為簡捷方便地搭成的。220V交流市電通過電源變壓器變換成交流低壓,再經(jīng)過橋式整流電路D1?D4和濾波電容C1的整流和濾波,在固定式三端穩(wěn)壓器LM7805的Vin和GND兩端形成一個并不十分穩(wěn)定的直流電壓(該電壓常常會因為市電電壓的波動或負載的變化等原因而發(fā)生變化)。此直流電壓經(jīng)過LM7805的穩(wěn)壓和C3的濾波便在穩(wěn)壓電源的輸出端產(chǎn)生了精度高、穩(wěn)定度好的直流輸出電壓。本穩(wěn)壓電源可作為TTL電路或單片機電路的電源。三端穩(wěn)壓器是一種標準化、系列化的通用線性穩(wěn)壓電源集成電路,以其體積小、成本低、性能好、工作可靠性高、使用簡捷方便等特點,成為目前穩(wěn)壓電源中應用最為廣泛的一種單片式集成穩(wěn)壓器件。圖2-9電源電路電源電路的具體設(shè)計如上圖,+5v電源是這樣實現(xiàn)的:220v的交流電壓通過TF1變壓器經(jīng)過變壓輸出15v電壓,然后通過4個IN4007晶閘管整流,再并聯(lián)兩個電容,最后接到LM7805的Vin端,由LM7805的Vout輸出+5v電壓,即為該系統(tǒng)所需電壓。使用LM7805需要注意的事項有一下三點:輸入輸出壓差不能太大,太大則轉(zhuǎn)換效率急速降低,而且容易擊穿損壞;2.輸出電流不能太大,l.5A是其極限值。大電流的輸出,散熱片的尺寸要足夠大,否則會導致高溫保護或熱擊穿;輸入輸出壓差也不能太小,大小效率很差。聲光報警電路聲光報警裝置能幫助值班人員正確地判斷運行設(shè)備的故障情況,以便及時排除故障,保證設(shè)備的安全運行。實驗表明,在用聲音或燈光報警時,連續(xù)的聲響或常亮的燈光往往不易引起人們的警覺,只有斷續(xù)的聲音或閃爍的燈光,才能取得最佳報警效果。由門控振蕩器組成的聲光報警電路如圖2-10所示。由與非門CD4011構(gòu)成的兩級門控振蕩器。其中上面兩個組成低頻振蕩器,震蕩頻率fl=lHz,周期約為Is。R5為下拉電阻,常態(tài)下使輸入為0V。僅當輸入為高電平信號時電路才起振,B0端交替輸出的高、低電平經(jīng)過VT1,使發(fā)光二極管LED閃爍發(fā)光,閃光周期也是Is。下面兩個與非門組成音頻振蕩器,振蕩頻率為lKHz。僅當B0為1時,第二級振蕩器才起振,通過達林頓管級輸出變壓器,驅(qū)動揚聲器發(fā)出斷續(xù)的“嘀、嘀、??”報警聲。Q.-ITU圖2-10聲光報警電路LED顯示電路LED的靜態(tài)顯示雖然有編程容易、管理簡單等優(yōu)點,但是靜態(tài)顯示所要占的I/O口資源很多,所以在顯示的LED點較多的情況下,一般都采用動態(tài)顯示方式。在多位7段LED顯示中,為了簡化電路,降低成本,則將所有位的段選線并聯(lián)在一起,剛好由8個I/O口來控制8個段。而公共端(共陽極/共陰極)則分別由相應的I/O口控制,以實現(xiàn)各個位的分時選通。由于所有的段選線并聯(lián)到同一個I/O,由這個I/O口來控制,因此,若是所有的4位7段LED都選通的話,4位7段LED將會顯示相同的字符。要使各個位的7段LED顯示不同的字符,就必須采用動態(tài)掃描方法來輪流點亮每一位7段LED,即在每一瞬間只選通一位7段LED進行顯示單獨的字符。在此段點亮時間內(nèi),段選控制I/O口輸出要顯示的相應字符的段選碼,而位選控制I/O口則輸出位選信號,向要顯示的位送出選通電平(共陰極則送出低電平,共陽極則送出高電平),使得該位顯示相應字符。這樣將四位7段LED輪流去點亮使得每位分時顯示該位應顯示的字符。由于人眼的視覺暫留時間為0.1秒,當每位顯示的間隔未超過33ms時,并在顯示時保持直到下一位顯示,則由于人眼的視覺暫留效果眼睛看上去就像是4位7段LED都在點亮。設(shè)計時,要注意每位顯示的間隔時間,由于一位7段LED的熄滅時間不能超過100ms,也就是說點亮其它位所用的時間不能超過100ms,這樣當有N位的7段LED用來顯示時,每一位間隔的時間t就必須符合下面的式子:t=100ms/(NT)比如,現(xiàn)在使用4位,也就是N=4,則由式子可以算出t=33ms,就是每一位的間隔時間不能超過33ms。當然時間可以也設(shè)得短一些,比如5ms或1ms也可以。本系統(tǒng)采用動態(tài)掃描顯示電路,由于單片機的I/O口數(shù)量有限,因此需要通過8255a進行I/O口的擴展,由于所有6位選線皆由一個I/O口控制,因此,在每一瞬間,6位LED會顯示相同的字符。要想每位顯示不同的字符,就必須采用掃描方法輪流點亮各位LED,即在每一瞬間只使某一位顯示字符。在此瞬間,段選控制I/O口輸出相應字符段選碼(字型碼),而位選則控制I/O口在該顯示相應字符。如此輪流,使每位分時顯示該位應顯示字符,根據(jù)人眼視覺特性,當LED所加信號頻率大于50Hz時,人眼不能感覺其變化,所以每位顯示的間隔不能超過20ms,也就是說要在20ms之內(nèi)分時的點亮所有LED,LED越多所分的時間越短,亮度就會不足;如果增加點亮時間,又會使掃描頻率下降,有閃爍感容易造成人眼的彼勞,這種方式就是我們大家常用的動態(tài)掃描方式,這種掃描方式僅適用于LED不超過10個時的場合。本系統(tǒng)通過擴展的8255a的PA口來控制四個數(shù)碼管的段選信號,PB0-PB3來控制其位選信號,其連接圖如圖2-11所示。RP01234567DDDDDDDDAI0A1A2A3A4A5A6A7PPPPPPPPM51236RD阪AOAlRESET>5sPEOPEIPB2PE:3PB4PB5PE:6PB7PCOPCIPC2PCSPC4.^.^-4%|^.*-了RP01234567DDDDDDDDAI0A1A2A3A4A5A6A7PPPPPPPPM51236RD阪AOAlRESET>5sPEOPEIPB2PE:3PB4PB5PE:6PB7PCOPCIPC2PCSPC4.^.^-4%|^.*-了*-1:=r丁丁丁丁丁丁丁■f-f-f-c-f-f-c-i:llj213r22r31r440r539n538r737rlI2r3I4r5rfr7IS161514131211-109DP¥i■:DPY'ifDPYg23242514IJ16I?圖2-11LED動態(tài)掃描顯示電路的連接RS-485總線RS485總線作為一種簡易、廉價的通信技術(shù),其收發(fā)器采用平衡驅(qū)動和差分接收,具有抑制共模干擾的能力。RS485接收器靈敏度可達±200mV,因而大大提高了通信距離。在100kb/s速率下電纜長度可達1200m,如果通信距離縮短,最大速率更可達10Mb/s。RS485總線上允許帶多個驅(qū)動器和接收器,最新的收發(fā)器可帶128個節(jié)點,用于構(gòu)建多點通信網(wǎng)絡(luò)。由于RS485總線具有設(shè)備簡單、價格低廉、能進行長距離通信的特點,故在工程中得到了廣泛應用。由于本設(shè)計需要同時測量多個油罐的液位,因此,本設(shè)計選用了485來進行多機通訊,如圖2-12所示。為了實現(xiàn)總線與單片機系統(tǒng)的隔離,在8031的異步通信口與75176之間采用光耦隔離。由于應用系統(tǒng)中,主機與分機相隔較遠,通信線路的總長度往往超過400米,而分機系統(tǒng)上電或復位又常常不在同一個時刻完成。如果在此時某個75176的DE端電位為“1”那么它的485總線輸出將會處于發(fā)送狀態(tài),也就是占用了通信總線,這樣其它的分機就無法與主機進行通信。這種情況尤其表現(xiàn)在某個分機出現(xiàn)異常情況下(死機),會使整個系統(tǒng)通信崩潰。因此在電路設(shè)計時,應保證系統(tǒng)上電復位時75176的DE端電位為“0”由于8031在復位期間,/O口輸出高電平,故下圖電路的接法有效地解決復位期間分機“咬”總線的問題。圖2-12 RS-485通訊電路圖2.7.1RS-485接口標準傳輸方式:差分傳輸介質(zhì):雙絞線標準節(jié)點數(shù):32最遠通信距離:1200m共模電壓最大、最小值:+12V、-7V差分輸入范圍:-7V到+12V接收器輸入靈敏度:±200mV接收器輸入阻抗:$12kQ2.7.2節(jié)點數(shù)及半雙工和全雙工通信1.節(jié)點數(shù)所謂節(jié)點數(shù),即每個RS485接口芯片的驅(qū)動器能驅(qū)動多少個標準RS485負載。根據(jù)規(guī)定,標準RS485接口的輸入阻抗為$12kQ,相應的標準驅(qū)動節(jié)點數(shù)為32。為適應更多節(jié)點的通信場合,有些芯片的輸入阻抗設(shè)計成1/2負載($24kQ)、1/4負載($48kQ)甚至1/8負載($96kQ),相應的節(jié)點數(shù)可增加到64、128和256。2.半雙工和全雙工RS-485接口可連接成半雙工和全雙工兩種通信方式。半雙工通信的芯片有SN75176、SN75276、SN75LBC184、MAX485、MAX487、MAX1487、MAX3082、MAX1483等;全雙工通信的芯片有SN75179、SN75180、MAX488-MAX491、MAX1482等。根據(jù)本設(shè)計的要求,需要測量20個點的液位,因此選用半雙工通用芯片SN75176,在由單片機構(gòu)成的多機串行通信系統(tǒng)中,一般采用主從式結(jié)構(gòu):從機不主動發(fā)送命令或數(shù)據(jù),一切都由主機控制。并且在一個多機通信系統(tǒng)中,只有一臺單機作為主機,各臺從機之間不能相互通訊,即使有信息交換也必須通過主機轉(zhuǎn)發(fā)。采用RS-485構(gòu)成的多機通訊原理框圖,如圖2-13所示。

2端終口32接325235325235口32接3252352端終口32接325235325235口32接3252354:85接口RS232/RS485轉(zhuǎn)換器232接口485接口RS232/RS485轉(zhuǎn)換器232接口3252354:85RS232/RS485232接口轉(zhuǎn)換器接口485RS232/RS485232接口轉(zhuǎn)換器接口232終?127接口圖2-13采用RS-485構(gòu)成的多級通信原理框圖2.7.3使用485通訊要遵循的原則復位時,主從機都應該處于接收狀態(tài)。SN75176芯片的發(fā)送和接收功能轉(zhuǎn)換是由芯片的RE*,DE端控制的。RE*=1,DE=1時,SN75176發(fā)送狀態(tài);RE*=O,DE=O時,SN75176處于接收狀態(tài)。一般使用單片機的一根口線連接RE*,DE端。在上電復位時,由于硬件電路穩(wěn)定需要一定的時間,并且單片機各端口復位后處于高電平狀態(tài),這樣就會使總線上各個分機處于發(fā)送狀態(tài),加上上電時各電路的不穩(wěn)定,可能向總線發(fā)送信息。因此,如果用一根口線作發(fā)送和接收控制信號,應該將接口線反向后接入SN75176的控制端,使上電時SN75176處于接收狀態(tài)。另外,在主從機軟件上也應附加若干處理措施,如:上電時或正式通訊之前,對串行口做幾次空操作,清除端口的非法數(shù)據(jù)和命令??刂贫薘E*,DE的信號的有效脈寬應該大于發(fā)送或接收一幀信號的寬度。在RS-232,RS-422等全雙工通訊過程中,發(fā)送和接收信號分別在不同的物理鏈路上傳輸,發(fā)送端始終為發(fā)送端,接收端始終為接收端,不存在發(fā)送、接收控制信號切換問題。在RS485半雙工通訊中,由于SN75176的發(fā)送和接收都由同一器件完成,并且發(fā)送和接收使用同一物理鏈路,必須對控制信號進行切換。控制信號何時為高電平,何時為低電平,一般以單片機的TI,RI信號作參考。發(fā)送時,檢測TI是否建立起來,當TI為高電平后關(guān)閉發(fā)送功能轉(zhuǎn)為接收功能;接收時,檢測RI是否建立起來,當RI為高電平后,接收完畢,又可以轉(zhuǎn)為發(fā)送。總線上所連接的各單機的發(fā)送控制信號在時序上完全隔開。為了保證發(fā)送和接收信號的完整和正確,避免總線上信號的碰撞,對總線的使用權(quán)必須進行分配才能避免競爭,連接到總線上的單機,其發(fā)送控制信號在時間上要完全隔離??傊?,發(fā)送和接收控制信號應該足夠?qū)?,以保證完整地接收一幀數(shù)據(jù),任意兩個單機的發(fā)送控制信號在時間上完全分開,避免總線爭端。RS485總線缺點RS485總線的通訊容量較少,理論上最多僅容許接入32個設(shè)備,不適于以樓宇為結(jié)點的多用戶容量要求。RS485總線的通訊速率低,常用波特率為9600bps。而且其速率與通訊距離有直接關(guān)系,當達到數(shù)百米以上通訊距離時,其可靠通訊速率<1200bps。RS485芯片功耗較大,靜態(tài)功耗達到2-3mA,工作電流(發(fā)送)達到20mA,若加上偏置電阻及終端電阻,工作電流會更大。增加了線路電壓降,不利于遠程布線。RS485總線構(gòu)成的網(wǎng)絡(luò)只能以串行布線,不能構(gòu)成星形等任意分支。串行布線對于小區(qū)實際布線設(shè)計及施工造成很大難度,不遵循串行布線規(guī)則又將大大降低通訊的穩(wěn)定性。RS485總線自身的電氣性能決定了其在實際工程應用中穩(wěn)定性較差,在多節(jié)點、長距離場合需對網(wǎng)絡(luò)進行阻抗匹配等調(diào)試,增添工程復雜性。RS485總線通常不帶隔離,當網(wǎng)絡(luò)上某一節(jié)點出現(xiàn)故障會導致系統(tǒng)整體或局部的癱瘓,而且又難以判斷其故障位置。74LS138譯碼器74LS138為3線-8線譯碼器,共有54/74S138和54/74LS138兩種線路結(jié)構(gòu)型式。由于本設(shè)計需要用的一片I/O口擴展芯片8255A,因此要想選中此芯片就必須給片選信號CS/有效電平,因此需要用到74LS138譯碼器來進行選中信號。其工作原理如下:當一個選通端(E1)為高電平,另兩個選通端(E2)和/(E3))為低電平時,可將地址端(A0、Al、A2)的二進制編碼在Y0至Y7對應的輸出端以低電平譯出。比如:A0A1A2=110時,則Y6輸出端輸出低電平信號。利用E1、E2和E3可級聯(lián)擴展成24線譯碼器;若外接一個反相器還可級聯(lián)擴展成32線譯碼器。若將選通端中的一個作為數(shù)據(jù)輸入端時。74LS138共有16根引腳,其引腳圖如2-14所示:74LS138有三個附加的控制端、和。當、時,輸出為高電平(S=1),譯碼器處于工作狀態(tài)。否則,譯碼器被禁止,所有的輸出端被封鎖在高電平。這三個控制端也叫做“片選”輸入端,利用片選的作用可以將多篇連接起來以擴展譯碼器的功能。帶控制輸入端的譯碼器又是一個完整的數(shù)據(jù)分配器。如果把作為“數(shù)據(jù)”輸入端(在同一個時間),而將作為“地址”輸入端,那么從送來的數(shù)據(jù)只能通過所指定的一根輸出線送出去。這就不難理解為什么把叫做地址輸入了。例如當A2A1AO=1O1時,門的輸入端除了接至輸出端的一個以外全是高電平,因此的數(shù)據(jù)以反碼的形式從輸出,而不會被送到其他任何一個輸出端上。74LS138的作用:利用Gl、/(G2A)和/(G2B)可級聯(lián)擴展成24線譯碼器;若外接一個反相器還可級聯(lián)擴展成32線譯碼器。若將選通端中的一個作為數(shù)據(jù)輸入端時,74LS138還可作數(shù)據(jù)分配器??┧{EXE疏只吒16151413121110974LS1381.2345678嗎4禺務爲弘Egnd圖2-1474LS138引腳圖用與非門組成的3線-8線譯碼器74LS138的內(nèi)部電路如圖2-15所示:

無論從邏輯圖還是功能表我們都可以看到74LS138的八個輸出管腳,任何時刻要么全為高電平1—芯片處于不工作狀態(tài),要么只有一個為低電平0,其余7個輸出管腳全為高電平1。如果出現(xiàn)兩個輸出管腳在同一個時間為0的情況,說明該芯片已經(jīng)損壞。3線-8線譯碼器74LS138的功能表如表2-1所示:

表2-1 74LS138功能表輸入輸出S1S2/+S3/A2A1A0Y0/Y1/Y2/Y3/Y4/Y5/Y6/Y7/0XXXX11111111X1XXX1111111110000011111111000110111111100101101111110011111011111010011110111101011111101110110111111011011111111110第三章系統(tǒng)軟件的設(shè)計通過學習51系列單片機,我們知道匯編語言有執(zhí)行效率高,速度快,編寫的程序代碼短,與硬件結(jié)合緊密等特點。尤其在進行I/O口管理是,使用匯編語言快捷、直觀。但匯編語言比高級語言難度大,可讀性差,不便于移植,應用系統(tǒng)設(shè)計的周期長,調(diào)試和排錯也比較難,開發(fā)的時間長。C語言是一種計算機程序設(shè)計語言。它既具有高級語言的特點,又具有匯編語言的特點。它可以作為工作系統(tǒng)設(shè)計語言,編寫系統(tǒng)應用程序,也可以作為應用程序設(shè)計語言,編寫不依賴計算機硬件的應用程序。因此,它的應用范圍廣泛,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到C語言,具體應用比如單片機以及嵌入式系統(tǒng)開發(fā)。而C語言作為一種高級程序設(shè)計語言,在程序設(shè)計時相對來說比較容易,支持多種數(shù)據(jù)類型,功能豐富,表達能力強,應用靈活、方便,應用面廣,目標程序效率高,可移植性好,而且能夠直接對計算機硬件進行操作。既有高級語言的特點,也具有匯編語言的特點,能夠?qū)τ布苯釉L問,能夠按地址方式訪問存儲器或I/O端口?,F(xiàn)在,采用C語言編寫程序進行單片機應用系統(tǒng)開發(fā)已經(jīng)成為主流。當然,采用C語言編寫的應用程序必須由單片機的C語言編譯器轉(zhuǎn)換生成單片機可執(zhí)行且與匯編語言一一對應的代碼程序。超聲波測距儀的軟件設(shè)計主要由主程序、超聲波發(fā)生子程序、超聲波接收中斷子程序、超限報警子程序及顯示子程序組成。其主要程序流程圖如圖3-1所示。主程序首先是對系統(tǒng)環(huán)境初始化,設(shè)置定時器TO工作模式為16位定時計數(shù)器模式。置位總中斷允許位EA并給顯示端口P0和P1清0。然后調(diào)用超聲波發(fā)生子程序送出一個超聲波脈沖,為了避免超聲波從發(fā)射器直接傳送到接收器引起的直射波觸發(fā),需要延時約0.1ms(這也就是超聲波測距儀會有一個最小可測距離的原因)后,才打開外中斷0接收返回的超聲波信號。由于采用的是12MHz的晶振,計數(shù)器每計一個數(shù)就是1“s,當主程序檢測到接收成功的標志位后,將計數(shù)器T0中的數(shù)(即超聲波來回所用的時間)經(jīng)單片機計算處理,測得超聲波傳感器與油罐底之間的距離即可得油罐的液位高度。

其程序如下:#include<reg51.h>#include<absacc.h>#defineucharunsignedchar#defineunitunsignedint#definePAXBYTE[0x0000]//A口地址#definePBXBYTE[0x0001]//B口地址#definePCXBYTE[0x0002]//C口地址#definePCTXBYTE[0x0003]//控制口地址sbits40kHz=p1A0;//==========================================units,t,h; //s為測量距離(單位:mm),t為測量時間,h為超聲波傳感器與油罐底之間的距離uchard[4]; //顯示緩存uchar temperature;uchar ultrasonic_counter;uchar temperature;uchar ultrasonic_counter;uchar sign_failure;uchar sign_complete;//當前溫度值,單位為攝氏度//發(fā)送超聲波的周期數(shù)寄存器//測量失敗標志//測量完成標志//voiddelay(){ucharI;for(I=0;I<4;I++){d[0]=s%10;d[1]=s/10%10;d[2]=s/100%10;d[3]=s/100%10;}}//==========================================voiddisplay(unitt) //循環(huán)掃描t遍{ucharI;ucharcodeBCD_7[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};//BCD——7[10]為滅的譯碼for(;t>0;t--){for(I=0;I<4,I++){P0=BCD_7[d[I]];

P2|=0x10<<I;delay();P2=0x0f;}}}//==========================================voidmeasure(){sign_failure=0;voidmeasure(){sign_failure=0;sign_complete=0;TH1=TL1=0;TH0=(256-12);TL0=(256-13);ultrasonic_counter=0;TR0=1;TR1=1;while(ultrasonic_counter<16);TR0=0;while(sign_complete==0){if(sign_failure)(650536ms*314m/s=20.5m),測量失敗//超聲波測距子函數(shù)//測量開始,清測量失敗標志//測量開始,清測量完成標志//發(fā)送超聲波的周期數(shù)寄存器清0//開始發(fā)射超聲波//計時開始//等待發(fā)送完8個脈沖//關(guān)閉T0//等待測量完成//若T2溢出也未能檢測到回波{TR1=0;return;}}TR2=0;s=h-t*0.157; //s=h-314000*(t*0.000001)/2,h為超聲波傳感器與油罐底的距離;}//==========================================voidmain(){ucharI;TOMD=0x02;T2CON=0X09;EA=1;ET0=1;//TO工作在方式2的定時器模式//T1工作在捕獲狀態(tài)//開總中斷//使能定時器O中斷ET1=1; //使能定時器1中斷EX0=1;s=0;for(I=0;I<4;I++)d[i]=0;while(1){measure();wdbuchang();display(120);baojing();}}//==========================================voidT0_ISR(){if(TH0==(256-12))TH0=256-13; 〃半周期12us,半周期13uselseTH0=256-12;s40kHz=!s40kH

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論