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