江偉
摘要:單片機的系統(tǒng)軟件設計主要有語言和環(huán)境的開發(fā),軟件資源分配和芯片端口地址和系統(tǒng)主程序模塊等幾個板塊。本次設計采用單片機進行控制,由溫度檢測電路、顯示電路、A/D傳換電路、執(zhí)行機構、控制電路和單片微處理器等組成。用單片機作為控制器,可對執(zhí)行機構發(fā)出指令,實現(xiàn)溫度參數(shù)調(diào)節(jié),具有上下位機直接設置溫度范圍,溫度實時顯示等功能,能夠較好地對培養(yǎng)溶液進行實時的控制。
關鍵詞:系統(tǒng)軟件;溫度監(jiān)控;微處理器;參數(shù)調(diào)節(jié)
一、開發(fā)語言和開發(fā)環(huán)境
本設計中采用匯編語言編程,匯編語言就是用助記符、符號和數(shù)字等來表示指令的程序語言,容易理解和記憶,與機器語言是一一對應的。它是為了彌補機器語言不易記憶,不易查錯和不易修改而產(chǎn)生的一種低級語言。
所謂程序設計就是用計算機能夠識別的語言,把需要解決的問題的步驟描述出來單片機不像其他微型計算機有自己的系統(tǒng)軟件,所有的單片機程序均需要用戶自己設定程序。到目前為止,雖然已經(jīng)有絕大部分的單片機都能夠在一些高級語言環(huán)境下編程,但匯編語言也有許多優(yōu)點是其他高級語言所不具有的。
如:程序結構緊湊、占用的內(nèi)存和CPU資源少;程序簡短、執(zhí)行速度快;與計算機內(nèi)部硬件結構緊密、能充分發(fā)揮硬件的作用;實時性強、適用于實時檢測控制系統(tǒng)。
二、軟件資源分配和芯片端口地址
在系統(tǒng)軟件設計中,充分考慮了與硬件電路有機結合,利用8051單片機的優(yōu)異特性實現(xiàn)對溫度檢測控制。系統(tǒng)采用模塊化設計,在主程序下分成若干彼此獨立的功能模塊,如溫度采集模塊,鍵盤輸入模塊,顯示輸出模塊,繼電器控制執(zhí)行機構輸出模塊,串行口通訊模塊等。由硬件接線圖可以得到如下地址:
1.8155H既可以用來做擴展的I/0口使用,也可以用作RAM使用,在本系統(tǒng)中,8155H用作I/0口來使用,各端口地址如下:
控制口地址:7EOOH
PA端口地址:7E01H
PB端口地址:7E02H
PC端口地址:7E03H
2.通過鍵盤設定的溫度上限放在:46H,下限放在:47H。
3.ADC0809通道0為溫度轉(zhuǎn)換口,其地址為:7FF8H。
4.ADC0809的轉(zhuǎn)換結果存放在:40H。
轉(zhuǎn)換的數(shù)字量再經(jīng)過處理得到溫度值所對應的BCD碼,最終結果存放在:42H。再將個位和十位依次分離,放要顯示的結果到內(nèi)存單元。
溫度十位放在:30H:
個位存放在:31H
三、系統(tǒng)主程序模塊
在本設計中,溫度上、下限的設定值可以通過鍵盤設置,也可以通過PC機設置,從而實現(xiàn)對培養(yǎng)容器的遠程控制。因此,在系統(tǒng)初始化完成后,根據(jù)條件選擇所需要的過程即可。
四、初始化子程序模塊
程序初始化是對系統(tǒng)中所使用到的模塊進行初始設置,其目的就是為了讓硬件模塊符合在控制軟件中的使用要求。在此系統(tǒng)中,用到了兩次中斷。一次是在A/D轉(zhuǎn)換結束后采用了一次中斷,用來讀取轉(zhuǎn)換結果和啟動下一次轉(zhuǎn)換,還有就是PC上位機遠程控制用到了另一個中斷。
五、顯示子程序模塊
顯示選用2位動態(tài)顯示,2位顯示溫度,均不用顯示小數(shù)點。由于位信號開始為1110,即數(shù)碼管對應的位信號是低電平時表示該位選通并顯示出來。
因此,在依次顯示4位數(shù)碼管時,只需要將R2中的位選通信號依次左移,直到R2左移為0000,說明此時4位數(shù)碼管均已顯示,然后返回主程序即可。
六、溫度值與顯示碼轉(zhuǎn)換子程序模塊
從溫度傳感器AD590采集過來的實際溫度值經(jīng)過ADC0809轉(zhuǎn)換后,只是得到了與此溫度相對應的數(shù)字量,因此,根據(jù)實際溫度與數(shù)字量之間的線性關系可以得到實際溫度值。
然后先需要將此溫度轉(zhuǎn)換為BCD碼存入單片機,再將此碼分離得到要顯示溫度的十位和個位放入指定的內(nèi)存單元即可。
七、執(zhí)行機構控制子程序模塊
溫度參數(shù)采集過來后經(jīng)過一系列轉(zhuǎn)換后存入單片機,與由鍵盤設定的溫度上、下限比較。
單片機可以根據(jù)比較的結果對電流繼電器線圈發(fā)出相應的信號(從單片機出來的電流很小,必須經(jīng)過三極管放大才能取驅(qū)動電流繼電器線圈),并通過電流繼電器銜鐵的吸合去控制相應的電流繼電器進行動作。
銜鐵是否吸合可以通過單片機I/0口的高低電平去控制,然后通過繼電器去控制諸如降溫泵、加熱器等執(zhí)行機構去操作,以此來調(diào)節(jié)培養(yǎng)容器溫度的狀態(tài),使其控制在設定的范圍之內(nèi)。
由于培養(yǎng)容器溫度變化不是特別快,系統(tǒng)要求的精度也不是特別高,可以不用控制算法去精確計算,只用高低電平來控制即可。