【正文】
主從單片機之間的通訊采用中斷方式,在從單片機接到停止測量命令后結(jié)束測量過程,等待主單片機發(fā)送新的命令。 開始初始化調(diào)鍵盤子程序 , 參數(shù)設(shè)置調(diào)主從單片機數(shù)據(jù)發(fā)送子程序向從單片機發(fā)開始測量指令是否有中斷調(diào)數(shù)據(jù)處理子程序調(diào)顯示子程序NY 圖 主單片機主程序流程 圖 從單片機軟件設(shè)計 從單片機的軟件流程圖 從單片機部分是完成流量測量電路的控制、測量數(shù)據(jù)的采集、檢驗和傳輸,其軟件流程圖如圖: 開始初始化是否有中斷開始測量調(diào)主從單片機數(shù)據(jù)發(fā)送子程序向主單片機發(fā)送測量數(shù)據(jù)NY 圖 從單片機主程序流程圖 系統(tǒng)進(jìn)行測量前,先要進(jìn)行自檢,檢查系統(tǒng)各部分工作是否正常,接著與主單片機進(jìn)行通訊,接收主單片機傳送來的參數(shù),并將參數(shù)存放在存儲器中,以便測量時使用。 主單片機軟件設(shè)計 主單片機軟件部分主要由以下幾個功能模 塊組成: 參數(shù)處理程序、 、計算子程序、鍵盤處理子程序、顯示子程序、串行通信子程序等。 連接方式如圖 所示: P1.INT0P1.TXDTXDRRINT0主單片機從單片機 圖 主從單片機 串行 通信示意圖 第五章 系統(tǒng)軟件設(shè)計 軟件系統(tǒng)結(jié)構(gòu)總述 整個系統(tǒng)的功能是由硬件電路配合軟件來實現(xiàn)的, 當(dāng)硬件基本定型 后,軟件的功能也就基本上確定下來了。當(dāng)外部數(shù)據(jù)引腳 TXD 上的時鐘信號到達(dá)后,串行口在該 機器周期的第 5 節(jié)拍的后半段對 RXD 上的數(shù)據(jù)進(jìn)行一次采集,并且將該數(shù)據(jù)送入接收緩沖寄存器。當(dāng) SBUF 內(nèi)的8 位數(shù)據(jù)發(fā)送完成后,串行口將置位 TI,申請串行口中斷,并且只有在 TI 被軟件清除后才能夠進(jìn)行下一個字節(jié)的發(fā)送。這種工作方式導(dǎo)致速度比較慢,但是在數(shù)據(jù)傳輸不太多的情況下,串行通信是非常方便的,通信速率可達(dá) 1MB/s。 本設(shè)計的接口連接方式是主從串行通信連接方式。 主單片機與從單片機 的通信接口 主從單片機通信的作用 主從單片機進(jìn)行通信主要有兩個作用,一是主單片機要把鍵盤中輸入的參數(shù)傳遞給從單片機用于傳播時間的計算;二是主單片機從從單片機中讀出傳播時間的數(shù)據(jù),用于計算流速、流量 和 顯示等。 看門狗電路 由于程序在運行過程中會因為受到干擾導(dǎo)致失控,引起程序亂飛,或陷入“死循環(huán)”,此時最直接的抗干擾方法是采用硬件“看門狗”電路。 本設(shè)計顯示電路部分如圖 所示 : 圖 顯示電路部分電路圖 鍵盤電路 鍵盤是人機對話的重要組成部分 , 本設(shè)計中 使 用了 10 個數(shù)字鍵和 6 個 功能 鍵: 選擇修改管道直徑、選擇修改夾角 、 增一 鍵、 減一 鍵、 確認(rèn)開始 鍵 和修改鍵 。 它的優(yōu)點是軟件不必動態(tài)掃描,送出段碼后可鎖存,直到需更改顯示字符,軟件簡單, 占用 單片機 時間較少,工作可靠 , 同時由于始終保持顯 示所以亮度較好 。 靜態(tài)顯示: 所謂靜態(tài)顯示 , 就是在同一時刻只顯示 1 種字符 , 或者說被顯示的字符在同一時刻是穩(wěn)定不變的。為此 , 一般采用查表的方法 , 由待顯示的字符通過查表得到其對應(yīng)的顯示段碼。因此只能利用人眼對視覺的殘留效應(yīng) , 采用動態(tài)掃描顯示的方法 , 逐個地循環(huán)點亮各位數(shù)碼管 , 每位顯示 1ms 左右,使人看起來就好像 在同時顯示不同的字符一樣。對于這種接口電路來說 , 其顯示方法有靜態(tài)顯示和動態(tài)顯示兩種。 對于多位數(shù)碼 管 來說 ,為了簡化線路、降低成本 , 往往采用以軟件為主的接口方法 , 即不使用專門的硬件譯碼器 , 而采用軟件程序進(jìn)行譯碼。 十六進(jìn)制數(shù)及空白字符與 P 的顯示段碼如表 所示: 表 顯示段碼 字型 共陽極段碼 共陰極段碼 字型 共陽極段碼 共陰極段碼 0 C0H 3FH 9 90H 6FH 1 F9H 06H A 88H 77H 2 A4H 5BH b 83H 7CH 3 B0H 4FH C C6H 39H 4 99H 66H d A1H 5EH 5 92H 6DH E 86H 79H 6 82H 7DH F 84H 71H 7 F8H 07H 空白 FFH 00H 8 80H 7FH P 8CH 73H 共陰極 LED 結(jié)構(gòu)及靜態(tài)顯示原理 在單片機系統(tǒng)中 , 通常用 LED 數(shù)碼管來顯示各種數(shù)字或符號 。發(fā)光二極管通常需要十幾到幾十毫安的驅(qū)動電流才能正常發(fā)光,因此,由微型機發(fā)出的顯示信號必須經(jīng)過驅(qū)動電路才能使顯示器正常工作。 主單片機的作用及選擇 主單片機選用另一片 AT89C51,主要實現(xiàn)對數(shù)據(jù)的處理和整個流量計的控制。 圖 計數(shù)電路 從單片機的作用及選擇 從單片機是信號采集及控制電路的核心,它既要接收主單片機發(fā)來的命令,使測量模塊的各部分協(xié)調(diào)工作,同時又要向主單片機回送測量數(shù)據(jù)和該部分的狀態(tài)信息。由于需要分辨 10ns 左右的微小時間差 ,所以高頻方波發(fā)生器選用 100MHz、頻率穩(wěn)定度為 1 108/日的溫度補償晶振。單片機通過 和 別使能兩片 74LS245,從 P0口讀入其中的計數(shù)值。 圖 計數(shù)電路原理概述 單片機晶振頻率取為 12MHz,通過 、 通斷 ,進(jìn)而控制超聲波順流發(fā)射或逆流發(fā)射 ,而 則對各計數(shù)器清零 , 發(fā)出啟動信號。最上方接換能器 T1及 T2,下方接發(fā)射和接收電路,通過控制 K2 和 K3 來控制 T1及 T2 哪個為發(fā)射,哪個為接收。當(dāng) EA /VPP 引腳接地(即低電平)時,將從外部程序存儲器讀取指令碼;當(dāng) EA /VPP 引腳接高電平時,將從內(nèi)部程序存儲器讀取指令 ; XTAL1: 片內(nèi)晶振電路 反 相 放大器 輸入 端; XTAL2: 片內(nèi)晶振電路 反 相 放大器 輸 出端 。在由外部程序存儲器取指期間,每個機器周期兩次 PSEN 有效。另外,該引腳被略微拉高。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個 ALE 脈沖。在平時, ALE 端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的 1/6。 高電平有效 ; ALE:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的 低 位字節(jié)。在讀寫外部存儲器時, P2 口輸出高 8 位地址A15~ A8; P3 口: 內(nèi) 部 帶 有弱上 拉電阻的雙向 I/O 口,作 為 輸入 引腳使用前 , 先向 P3 口鎖存器寫入 1,使 P3 口引腳被上拉為高電平。 如圖 所示: 1 2 3 4 5 6ABCD654321DCBAT i t l eN um be r R e vi s i o nS iz eBD a t e : 15 Jun 20 08 S h e e t of F il e : C : \ D oc um e n t s a nd S e t ti ng s \ l e no vo \桌面 \ gg gg \主機部分 .D D BD r a w n B y:E A / V P31X119X218R E S E T9RD17WR16I N T 012I N T 113T014T115P 101P 112P 123P 134P 145P 156P 167P 178P 0039P 0138P 0237P 0336P 0435P 0534P 0633P 0732P 2021P 2122P 2223P 2324P 2425P 2526P 2627P 2728P S E N29A L E / P30T X D11R X D10U?80 51 圖 AT89C51 它的引腳功能如下: VCC:供電電壓 ; GND:接地 ; P0 口: 作為 I/O 口 使用時, P0 口 是 漏級開路雙向口 , 向口鎖存器 寫 入 1, I/O 引腳 將懸空,可作高阻輸入引腳;在讀寫外部存儲器時, P0 口作為“低 8 位地址 /數(shù)據(jù)”總線使用; P1 口:內(nèi)部 帶 有弱上 拉電阻的雙向 I/O 口,作 為 輸入 引腳使用前 , 先向 P1 口鎖存器寫入 1,使 P1 口引腳被上拉為高電平。由于將多功能 8 位 CPU 和閃爍存儲器組合在單個芯片中, ATMEL 的AT89C51 是一種高效微控制器。 單片機的可擦除只讀存儲器可以反復(fù)擦除 1000 次 以上 。 4040CMOS12 級二進(jìn)制計數(shù)分頻器 4040 為二進(jìn)制計數(shù)分頻器,其芯片如圖 所示 。 當(dāng) “ /LDA” 為高電平時,在 時鐘端 CLK1和 CLK2脈沖 下降沿作用下進(jìn)行計數(shù)操作。芯片如圖 所示: 1 2 3 4 5 6ABCD654321DCBAT i t l eN um be r R e vi s i o nS iz eBD a t e : 15 Jun 20 08 S h e e t of F il e : C : \ D oc um e n t s a nd S e t ti ng s \ l e no vo \桌面 \ gg gg \主機部分 .D D BD r a w n B y:A02A13A24A35A46A57A68A79B018B117B216B315B414B513B612B711E19D I R174 L S 24 5 圖 74LS245 芯片功能表如表 所示: 表 74LS245 功能表 /E DIR 方向 L L B 到 A L H A 到 B H 無 Isolation 計數(shù)器 74S196 74S196 為可預(yù)置的二-五-十進(jìn)制計數(shù)器 ,芯片如圖 所示: 1 2 3 4 5 6ABCD654321DCBAT itleN um be r R e vi s io nS iz eBD a te : 15 Jun 20 08 S h e e t of F ile : C :\D oc um e n ts a nd S e tting s \le no vo \桌面 \gg gg \主機部分 .D D BD r a w n B y:L D AC L K 2C L K 1DADBDCDDC L R74 S 1 96 圖 計數(shù)器 74S196 異步清除端 “ /CLR” 為低電平時 , 不管時鐘端 CLK1和 CLK2狀態(tài)如何, 即可完成清除功能。 芯片資料 總線收發(fā)器 74LS245 74LS245 為三態(tài)輸出的八組總線收發(fā)器 。當(dāng)完成所定的多脈沖個數(shù)后,分頻器產(chǎn)生一個信號,關(guān)斷高頻方波,使計數(shù)器停止計數(shù)。當(dāng)聲循環(huán)次數(shù) N 足夠大 ,由于統(tǒng)計作用 ,上述兩次聲循環(huán)的固有電聲延遲 (包括超聲波經(jīng)過換能器透聲斜楔、管壁等所需的時間以及電信號滯后的時間 )之和相等 ,所以可得單次正逆發(fā)射傳播時間差 。當(dāng)聲循環(huán) N 次 ,分頻器滿并產(chǎn)生一信號 ,關(guān)斷高頻方波 ,使計數(shù)器停止計數(shù) ,同時單片機斷開 K1 停止聲循環(huán) ,讀取鎖存器中的順流發(fā)射聲循環(huán)計數(shù)值 ,再使開關(guān) K1閉合 ,K2合向上邊 ,觸發(fā)換能器 T2發(fā) 射。具體工作過程是 :單片機先對各計數(shù)器請零 ,使開關(guān) K1閉合 ,K2合向下邊 ,然后控制同步電路發(fā)出一同步啟動脈沖 ,觸發(fā)超聲波換能器 T1發(fā)射第一個超聲脈沖波 ,同時使計數(shù)電路開始對頻率為 f 的高頻方波進(jìn)行計數(shù)。這一級放大電路采用放大器 INA128。 帶通濾波電路 MAX275 帶通濾波器電路如圖 所示: 圖 MAX275 帶通濾波器電路 二級放大電路 超聲接收換能 器 接收到的信號經(jīng)過一級放大器后,信號還比較小,再經(jīng)過帶通濾波器,信號又有一定程度的衰減,因此,還需要再進(jìn)行放大。 本系統(tǒng)采用 MAX410 芯片構(gòu)成第一級放大電路, MAX41O 是一種低電壓、低噪聲、精密放大器, 性能優(yōu)良,可以用來作為前級放大,其電路 如圖 所示 : 圖 一級放大電路 超聲接收換能器接收到的信號,經(jīng)電阻從 MAX41O的 3 腳輸入,放大后的信號由MAX410 的 6 腳輸出,輸出的信號分兩路,一路反饋到 ICICD4046 的 14 腳用來完成鎖相,另一路送帶通濾波器進(jìn)行后續(xù)處理。因此,對接收信號的調(diào)理是非常必要和重要的。發(fā)射電路如圖 所示 : 圖 超聲波發(fā)射電路 超聲波發(fā)射電路采用了單脈沖發(fā)射電路,它由脈沖發(fā)生、放大電路構(gòu)成,單片機發(fā)出的方波信號經(jīng)三極管放大和變壓器升壓,達(dá)到足夠功率后推動換能器產(chǎn)生超聲波,這