|
第二部分:具體實現方案 一、硬件組成: (一)、硬件結構框圖如下:  ( 二)、各部分硬件電路實現 (1)、基于AT89S52的主控電路圖
 主控電路以 89C52為核心擴展32K RAM;單片機使用6M晶振,P0口外接上拉電阻,增大了帶負載能力;A12~A15接74LS138譯碼器,輸出作外部片選信號。 擴展了幾個接口用于其它部分于單片機的通信 ( 2)前端信號處理 INA126構成的放大器及濾波電路:  通過調節 300)this.width=300" border=0>的阻值來改變放大倍數。微弱信號Vi1和Vi2被分別放大后從INA126的第6腳輸出。A/D轉換器ICL7135的輸入電壓變化范圍是-2V~+2V,傳感器的輸出電壓信號在0~20mv左右,因此放大器的放大倍數在200~300左右,可將 300)this.width=300" border=0>接成 300)this.width=300" border=0>的滑動變阻器。 由于 ICL7135對高頻干擾不敏感,所以濾波電路主要針對工頻及其低次諧波引入的干擾。因為壓力信號變化十分緩慢,所以濾波電路可以把頻率做得很低。 ( 3)A/D轉換器 基于 ICL7135的A/D轉換器實現電路:  基準源選用芯片 MC1403 2.5V分壓得到:  由于 ICL7135內部沒有振蕩器,所以需要外接。但A/D轉換器精度與時鐘頻率的漂移無關。正向積分時間T1和反向積分時間T2按相同比例增加并不影響測量的結果。ICL7135的時鐘頻率典型值為200kHz最高允許為1200kHz,時鐘頻率越高,轉換速度越快。每輸出一位BCD碼的時間為200個時鐘周期,選通脈沖位于數據脈沖的中部,如果時鐘頻率太高,則數據的接受程序還沒有接受完畢,數據就已經消失了。考慮到此系統頻率要求不是太高,且單片機的工作頻率也不是很高,因此我們取時鐘頻率的典型值:200kHz。由于頻率比較低,對時鐘漂移要求不高,我們采用阻容方式實現了基本的振蕩電路。如下:  振蕩頻率約為 160kHz。 此外 ICL7135外部還需要外接積分電阻、積分電容,但A/D轉換器精度與外接的積分電阻、積分電容的精度無關,故可以降低對元件質量的要求。不過積分電容和積分電容的介質損耗會影響到A/D轉換器的精度,所以應采用介質損耗較小的聚丙乙烯電容 ICL7135還需要外接基準電源,這是因為芯片內部的基準源一般容易受到溫度的影響,而基準電源的變化會直接影響轉換精度。所以當精度要求較高時,應采用外接基準源。一般接其典型值1V。 (4) 、人機交互界面 (a) 、鍵盤接口圖:  鍵盤控制芯片 ZLG7289 控制鍵盤的掃描,當監測到有鍵按下后 ZLG7289 的 9 腳便產生一個低電平通知單片機,單片機可以采用查詢或者中斷方式將數據通過 P1.5 以串行方式讀入。因為查詢方式會浪費大量的時間 , 所以本系統采用的是中斷方式。 (b) 、 LCD 顯示接口電路  . LCD 復位信號通過反相器接到單片機的 RESET 上,上電或手動復位時將隨單片機同時復位。由于復位后并行口輸出高電平, LCD 處于選中狀態,此時 LCD 將輸出內部狀態字,將會影響數據總線上的數據傳輸。所以外接一個反相器。
二、軟件組成: (一)、流程圖 主程序流程如圖所示:  中斷服務程序流程圖如下: 
( 2)、軟件說明 由于涉及到大量數據的運算,程序不宜采用匯編語言, C語言大大縮短了開發時間,且程序可讀性非常好。 程序中對 AD采入的數據進行了數字濾波,進一步減小AD讀入數據的誤差。 7289鍵盤控制采用中斷方式,加快了程序的執行效率。 詳細的操作過程見使用說明。 |