超聲波液位計研發的探討 三十四
由于超聲波信號的幅值是隨著距離的增加呈指數規律衰減的,因此,隨著液位的變化,接收電壓信號幅度會在幾mV 變化到幾V 之間波動,其幅值變化達上百倍。如果硬件電路中放大增益過小,會導致超聲波回波信號較小,單片機最終得不到接收信號;放大增益過大,距離近時將得到已經飽和的接收信號,因此,采用固定增益的電路來處理這種信號是不可能的,必須對電路的增益進行程序控制。具體的硬件電路已經在2-4-3 節中詳細介紹過。軟件流程圖如圖3.4 所示。
開始
設定初始距離
P5.0 腳置“1”
延時1ms
增益調整
P5.0 腳置“0”
有回波?
計算液位,根據液位值
確定增益的增減
發射激勵脈沖
§3-5 溫度補償程序設計
本課題采用的主控芯片是C8051F020,它的內部集成了溫度傳感器部分,這不僅簡化了外部硬件電路的設計和成本,還可實時的采集環境溫度,程序流程圖如圖3.5 所示,其中T 為攝氏溫度。
§3-6 顯示程序的設計
顯示模塊的控制需要三根I/O 數據線,分別為STR、CLK、DATA,DATA 為數據發送端,每個CLK 脈沖發送一位數據,一個字節對應一位LED 模塊,由高向低順次移位。在本程序中,43H、44H 為顯示單元寄存器,每個字節存儲兩位LED 顯示數據,R0 為循環次數寄存器,因為每位LED 的驅動方式相同,這里,我只介紹一位顯示的程序設計。
這是發送43H 存儲值高8 位的程序設計,在發送低8 位時,只需將高8 位屏蔽,然后送入寄存器A 中,其余步驟相同,這里就不一一敘述。在沒有鎖存脈沖STR 以前,所有數據的移動都是在CD4094 內部寄存器中完成,它的I/O 口還是保持上一個STR 脈沖鎖存的數據輸出,待四位數據發送完畢,發送STR 脈沖,將顯示數據送到CD4094 輸出口。
超聲波液位計