山東省廣播電影電視局蒙山轉播臺 馮 晗
本系統基于AT89S51和模數轉換芯片ADC0809的數據采集系統,主要從硬件電路設計、溫濕度環境數據采集程序設計2個方面進行了詳細闡述,其中硬件電路設計部分結合具體芯片,詳細的介紹了數據采集系統各部分硬件接口電路的設計。設計中利用51單片機控制A/D轉換器構成采樣模塊,實現對信號的采集,采樣后的數據經A/D轉換,通過數碼管顯示出來,從而使值班員直觀、準確的判斷出機房溫濕度數據的變化。
(1)機房溫濕度數據模擬信號產生:利用溫濕度探頭做為模擬數據信號發生器,經頻率電壓變換后,將溫度和數據數據輸出相應1-5V直流電壓。
(2)數據采集器:數據采集器的第1路輸入溫濕度對應的1-5V直流電壓,第2-7路分別輸入來自直流源的5,4,3,2,1,0V直流電壓(各路輸入可由分壓器產生,不要求精度),第8路備用。將溫濕度模擬信號量分別轉換成8位二進制數字信號,再經并/串變換電路,用串行碼送入傳輸線路。
(3)主控器:主控器通過串行傳輸線路對各路數據進行采集和顯示。采集方式包括循環采集(即1路、2路……8路、……1路)和選擇采集(任選一路)二種方式。顯示部分能同時顯示溫濕度和相應的數據。

圖1 原理及數據流程圖

圖2 5V穩壓電源電路

圖3 串口轉并口部分電路
根據設計要求,首先從整體上規劃好整個系統的功能和性能,然后再對系統進行劃分,將比較復雜的系統分解為多個相對獨立的子系統,特別注意對各個子系統與系統、子系統與子系統之間的接口關系進行精心設計以及技術指標的合理分解。然后再由子系統到部件、部件到具體元器件的選擇和調試。各部件或子系統各自完成后再進行系統聯調,直到完成總體目標。具體原理及數據流程圖如圖1所示。
電源部分電路由變壓器、電橋、三端穩壓器7805、濾波電容和整流二極管、電阻分壓組成。電路的優點是:直流電源輸入范圍寬從7.5V—24V都可以可靠工作,電路具有短路保護作用,紋波系數小,電壓穩定為5V。如圖2所示。

圖4

圖5 主控器總體電路

圖6 程序流程圖
AD轉換部分電路由集成電路0809完成,ADC0809是一種典型的A/D轉換器,具有8路模擬輸入端口,地址線(23~25腳)可決定對哪一路模擬輸入作A/D轉換。第22腳ALE為地址鎖存控制,當輸入為高電平是,對地址信號進行鎖存;6腳START為測試控制,當輸入一個2us寬高電平脈沖時,就A/D轉換;7腳EOC為A/D轉換結束標志,當A/D轉換結束是,EOC輸出高電平;9腳OE為A/D轉換數據輸出允許控制,當OE為高電平時,A/D轉換數據從端口輸出;10腳CP為0809的時鐘輸入端,利用單片機30腳的六分頻晶振信號再通過74LS74二分頻得到。單片機的P1、P3端口作四位LED數碼管顯示控制,PO端口作A/D轉換數據讀入用,P2端口用作0809的A/D轉換控制。ADC0809由一個8位A/D轉換器、一個8路模擬量開關、8路模擬量地址鎖存/譯碼器和一個三態數據輸出鎖存器組成。A/D轉換器的主要技術指標是分辨率、轉換誤差、轉換速度。
(1)MCS-51與ADC0809的接口
ADC0809時鐘信號由單片機的ALE信號2分頻獲得。ADC0809通道地址由P0口的低3位直接與ADC0809的A、B、C相連。轉換后的N個數據順序存放到起始地址為data_addr數據存區。
串口轉并口部分電路由芯片74LS165組成,與0809的連接電路如圖3。
(2)ADC0809的時鐘頻率500KHZ的產生
從單片機ALE引腳產生的1MHZ頻率,通過D觸發器后變為500KHZ,然后輸入到0809中的CLK引腳中。而D觸發器在74LS74芯片可以找到。如圖4。
主控器由AT89S51及其外圍電路組成。其外圍電路有復位電路、時鐘源電路等等。
(1)復位電路設計
復位電路具有上電自動復位作用。必要時可按復位鍵手動復位,提高了復位電路的抗干擾能力。
(2)時鐘源設計
時鐘源電路的X1和X2之間跨接晶體振蕩器和微調電容,構成一個穩定的自激振蕩器,這就是單片機的時鐘電路,時鐘電路產生的振蕩脈沖經過觸發器進行二分頻之后,才成為單片機的時鐘脈沖信號。
主控器總體電路如圖5所示。
1)P0口接上拉電阻的作用是保證其工作電壓。
2)P1.5、P1.6、P1.7是外界往單片機里面寫程序的3個引腳。
3)由硬件設定,一般P0.2為輸入74164的數據線,P0.3為輸入74164的時鐘線。
4)ALE引腳置5V(即置1)是為了使單片機執行程序時從內部ROM開始查詢再到外部RAM,如果為置0時則只從外面的RAM查詢。
5)從7615中傳送過來的串行數據輸入MC-51時,可以從P0,P1,P2,P3中的任意空閑引腳中輸入。
這個電路主要是用74LS164完成,與顯示的數碼管相連。這部分主要將數據通過串行變為并行,然后顯示到數碼管中。由于80C51單片機輸出的數據是串行的,需要把它變為并行的才能在數碼管顯示,那么就要用到74164芯片作為轉換器件。74164的作用是將串行數據轉換為并行數據。這樣74164輸出的并行數據輸進到數碼管里面就可以顯示了。具體的顯示時間長短則要看程序設計的延時時間的長短。如果要顯示多個數字,則要85C51單片機的時鐘線控制。
系統上電時,將70H~77H內存單元清零,P2口清零。
在剛上電室,因70H~77H內存單元的數據為0,則每一通道的數碼管顯示值都為000。當進行一次測量后,將顯示出每一通道的A/D轉換值。每個通道的數據顯示時間在1s左右。主程序在調用顯示程序和測試程序之間循環。
采用動態掃描方法實現四位數碼管的數值顯示,即溫度與相對應數據,濕度與相對應數據。測量所得A/D轉換數據放在70H~77H內存單元中。測量數據在顯示時需要經過轉換成為十進制BCD碼放在70H~77H中,其中7BH存放通道標志數。寄存器R3用來作8路循環控制,R0用作顯示數據地址指針。
模數轉換測量子程序是用來控制對08098路模擬輸入電壓的A/D轉換,并將對應的數值移入70H~77H內存單元,其程序流程圖如圖6所示。
當上機位發送一個命令幀之后,立即轉到線程串口監視線程,等待下機位的應答幀。上機位接收到正確應答后會繼續發送下一幀輪詢命令,而不會向下機位發送任何表示正確的命令。當在超時時間內沒有接收到下機位的應答幀時,上位機的行為會繼續向下機位發送輪詢幀。
在通信過程中,下機位一直處于接收狀態,隨時準備接收上機位發來的命令幀,當下機位接收到一個個命令幀后,首先按照通信協議的規定去執行相應命令,然后應答。命令執行成功時,返回“命令已成功執行”的信道信息;命令執行失敗時不做任何應答,返回繼續等待接收下一個命令幀。
以上原理工作進行之后,要進行實際測試。首先設計出正確的電路原理圖,然后進行PCB板布線。對PCB板行電路檢測,檢查PCB板上是否有斷路、短路。完成對PCB裸板的測試之后,焊接元器件。電路焊接完成后,沒有加電的情況下對電路進行測試,對照電路原理圖和PCB圖以檢測電路中是否有虛焊、漏焊。完成上述這些基本的檢測之后,給電路上電,對各部分電路分別進行檢測。上電后,首先對AT89S51單片機電路的測試進行測試,因為它控制整個電路板的運行。AT89S51的電壓輸入端,測試電壓為+3.376V,說明驅動其電壓正常。按照原理圖進行電路連線,對數據采集電路的測試注意將單片機和ADSC0809共地,用一個可變電壓作為輸入量輸入到ADC0809中,將經過單片機處理后的信號用數碼管顯示出來。檢查電路連接正確后,將編寫好的數據采集程序植入單片機中。把經A/D轉換后溫濕度探頭的數據量,經編譯后,在數碼管上能正確的顯示出來。當外界溫濕度不斷變化時,數碼管上顯示的數字也跟隨著不斷變化。這樣,具有溫濕度數據采集功能的系統完成。
這套溫濕度數據采集系統,能準確的監測機房內溫濕度變化,對于氣候惡劣的高海拔無線發射臺有很強的實用性。
[1]薛瑞福,馬國琳編.數字電子電路(第一版)[M].高等教育出版社,1983.
[2]皇甫正賢編著.數字集成電路基礎[M].南京:南京大學出版社,2002.
[3]施良駒編著.集成電路應用集錦[M].北京:電子工業出版社,1988.
[4]周仲編著.集成電路應用350例[M].北京:電子工業出版社,1988.
[5]郭天祥.新概念51單片機C語言教程[M].北京:電子工業出版社,2009.
[6]閻石.數字電子技術基礎(第4版)[M].北京:高等教育出版社,1997.