基于單片機(jī)的除氧器壓力控制系統(tǒng)設(shè)計(jì)_第1頁
基于單片機(jī)的除氧器壓力控制系統(tǒng)設(shè)計(jì)_第2頁
基于單片機(jī)的除氧器壓力控制系統(tǒng)設(shè)計(jì)_第3頁
基于單片機(jī)的除氧器壓力控制系統(tǒng)設(shè)計(jì)_第4頁
基于單片機(jī)的除氧器壓力控制系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、基于單片機(jī)的除氧器壓力控制系統(tǒng)設(shè)計(jì)摘 要隨著鍋爐參數(shù)的提高和容量的增大,鍋爐的用水量也將進(jìn)一步增大,這給除氧器的除氧控制提高了難度。除氧器是鍋爐以及供熱系統(tǒng)的關(guān)鍵設(shè)備之一,在鍋爐的給水處理過程中,除氧是非常關(guān)鍵的環(huán)節(jié),所以對除氧器內(nèi)的壓力,就能更好的控制除氧器的出水的含氧量。本設(shè)計(jì)針對除氧器壓力進(jìn)行討論與設(shè)計(jì)研究,采用單片機(jī)來對除氧器內(nèi)壓力進(jìn)行精確控制,同時(shí),本設(shè)計(jì)對系統(tǒng)的人機(jī)交互以及與上位機(jī)的連接都做了研究,極大的增強(qiáng)了系統(tǒng)的自動(dòng)化程度以及減小了人工勞動(dòng)的繁瑣。關(guān)鍵詞:除氧器 壓力控制 單片機(jī) 鍋爐abstractincreasing boiler parameters and improv

2、e the capacity of the boiler, the water will be further increased, which increase the difficulty to control the deaerator deaerator. the deaerator is one of the key equipment of boiler and heating system, the water treatment process of boiler deaerator, which is the key link, so the deaerator pressu

3、re, oxygen content control of deaerator can better effluent. the design of the study and design of the deaerator pressure, using single-chip microcomputer to control the pressure inside the deaerator, at the same time, the design of the connection of human-computer interaction system and pc are stud

4、ied, greatly enhance the automation degree of the system and reduces the labor.key words: deaerator pressure control micro control unit boiler 目 錄摘 要abstract目 錄contents第1章 緒論11.1 設(shè)計(jì)背景與研究意義11.2 國內(nèi)外研究現(xiàn)狀及發(fā)展21.2.1除氧器壓力控制技術(shù)發(fā)展21.2.2單片機(jī)技術(shù)發(fā)展21.3設(shè)計(jì)目標(biāo)3第2章 壓力控制系統(tǒng)實(shí)現(xiàn)方案42.1 系統(tǒng)總體任務(wù)42.2系統(tǒng)實(shí)現(xiàn)方案4第3章 系統(tǒng)的硬件選擇和設(shè)計(jì)73.1系統(tǒng)的硬

5、件電路設(shè)計(jì)73.1.1 a/d-d/a轉(zhuǎn)換模塊設(shè)計(jì)83.1.2通訊傳輸模塊設(shè)計(jì)113.1.3 時(shí)間模塊設(shè)計(jì)123.1.4 單片機(jī)接口擴(kuò)展133.1.5主控模塊設(shè)計(jì)153.1.6 線性穩(wěn)壓電源的設(shè)計(jì)183.1.7 顯示與鍵盤模塊設(shè)計(jì)193.1.8 看門狗電路設(shè)計(jì)21第4章 系統(tǒng)軟件設(shè)計(jì)244.1 系統(tǒng)軟件相關(guān)介紹244.1.1 系統(tǒng)主程序流程圖244.1.2 系統(tǒng)初始化254.1.3 顯示與a/d轉(zhuǎn)換的數(shù)據(jù)處理264.1.4 按鍵部分軟件設(shè)計(jì)294.1.5 通信協(xié)議及通信模塊軟件設(shè)計(jì)304.1.6 時(shí)間模塊軟件設(shè)計(jì)32第5章 系統(tǒng)軟件仿真345.1 系統(tǒng)仿真軟件相關(guān)介紹345.1.1 matla

6、b簡介345.2 matlab仿真軟件相關(guān)操作355.2.1 matlab仿真設(shè)計(jì)355.2.2 單片機(jī)電路設(shè)計(jì)355.2.3 matlab對串口的編程365.2.4 matlab與單片機(jī)測控系統(tǒng)的軟件設(shè)計(jì)375.2.5 matlab仿真程序流程37第6章 經(jīng)濟(jì)與社會效益分析39結(jié) 論40致 謝41參考文獻(xiàn)42附錄144附錄253contentschinese abstractienglish abstractiichinese directoryiiienglish directorychapter one the introduction11.1 project background an

7、d research significance11.2 domestic and foreign research present situation and development21.2.1 deaerator pressure control technology development21.2.2 single-chip technology development21.3 research design goals3 chapter two pressure control system implementation scheme42.1 the system overall mis

8、sion42.2 system implementation scheme4 chapter three hardware selection and design of the system73.1 hardware circuit design of the system73.1.1 a/d-d/a conversion module design83.1.2 communication module design113.1.3 time module design123.1.4 single chip microcomputer interface extension133.1.5 ma

9、ster control module design153.1.6 the design of linear regulated power supply183.1.7 display and the keyboard module design193.1.8 watchdog circuit design21 chapter four system software simulation244.1 related system software is introduced244.1.1 the system main program flow chart244.1.2 system init

10、ialization254.1.3 display and a/d conversion of data processing264.1.4 key part of the software design294.1.5 communication and software design of communication module304.1.6 time module software design32 chapter five system software simulation345.1 system simulation software related introduction345

11、.1.1 introduction of the matlab345.2 matlab simulation software related operations355.2.1 the matlab simulation355.2.2 single-chip microcomputer circuit design355.2.3 matlab to programming of the serial port365.2.4 matlab with the single chip microcomputer measurement375.2.5 matlab simulation proces

12、s37chapter six analysis of economic and social benefits39conclusion40acknowlegement41references42the appendix one44the appendix two53第1章 緒論1.1 設(shè)計(jì)背景與研究意義單片機(jī)應(yīng)用發(fā)展迅速而廣泛。在控制系統(tǒng)中,單片機(jī)既可作為處理器,也可以作為控制系統(tǒng)的前端機(jī),完成模擬量的采集與開關(guān)量的輸入、處理和控制計(jì)算。隨著科技的發(fā)展壓力測量控制技術(shù)趨于智能化、微型化、可視化。本設(shè)計(jì)思想是采用單片機(jī)作為處理器與控制器,對除氧器壓力進(jìn)行控制,并要求具有一定的智能化,可操作性與穩(wěn)

13、定性。除氧器采用單片機(jī)控制具有以下明顯優(yōu)勢:(1)直觀而集中的顯示除氧器內(nèi)各運(yùn)行參數(shù)。能顯示壓力、溫度等的狀態(tài)。(2)在運(yùn)行中可以方便的隨時(shí)修改各種參數(shù)的控制值,并修改系統(tǒng)的控制參數(shù)??梢苑奖愕母淖儔毫Φ纳舷拗?、下限值。(3)作為除氧器壓力控制裝置,其主要任務(wù)是保證除氧器的安全、穩(wěn)定、經(jīng)濟(jì)運(yùn)行,減輕操作人員的勞動(dòng)強(qiáng)度。在采用單片機(jī)控制的除氧器壓力控制系統(tǒng)中,有十分周到的安全機(jī)制,可以設(shè)置報(bào)警。杜絕由于人為疏忽造成的重大事故。綜合以上各種優(yōu)點(diǎn)可以預(yù)見采用單片機(jī)控制除氧器壓力系統(tǒng)是行業(yè)的大勢所趨。單片機(jī)是在一塊芯片上集成了所需cpu、存儲器、輸入、輸出等相關(guān)部件。單片機(jī)問世以來,性能不斷的提高和完

14、善,體積小、速度快、功耗低等的特點(diǎn)使它的應(yīng)用領(lǐng)域日益廣泛。單片機(jī)在控制領(lǐng)域得到了大量廣泛的應(yīng)用。使用單片控制除氧器壓力是很好的選擇。在現(xiàn)代社會中,隨著工業(yè)的發(fā)展,居民生活區(qū)的集中熱力供應(yīng)量的需求也越來越大,蒸汽鍋爐的容量不斷提高,對操作過程要求更加嚴(yán)格,除氧器的壓力控制直接影響設(shè)備的安全和使用壽命。傳統(tǒng)壓力控制不能進(jìn)行遠(yuǎn)距離集中控制,自動(dòng)化程度很低,調(diào)節(jié)精度比較差等等缺點(diǎn),而且單靠人工操作不能適應(yīng),控制系統(tǒng)改造的必要性隨著科學(xué)技術(shù)的不斷進(jìn)步而提高,被控對象的復(fù)雜程度越來越高,人們對控制精度的要求也不斷提高。隨著單片機(jī)技術(shù)以及自動(dòng)控制技術(shù)的發(fā)展,利用單片機(jī)及其外圍芯片實(shí)現(xiàn)除氧器壓力控制已經(jīng)成為可

15、能,而且也成為一種發(fā)展的趨勢,單片機(jī)不僅具有體積小,安裝方便,功能較齊全等優(yōu)點(diǎn),而且擁有很高的性價(jià)比,因此應(yīng)用前景廣泛,將保證除氧器正常供水,維持穩(wěn)定系統(tǒng),保證安全經(jīng)濟(jì)運(yùn)行。本設(shè)計(jì)即是用單片機(jī)實(shí)現(xiàn)的一種除氧器壓力控制系統(tǒng)。1.2 國內(nèi)外研究現(xiàn)狀及發(fā)展1.2.1除氧器壓力控制技術(shù)發(fā)展由于單片機(jī)問世已久,眾多企業(yè)在單片機(jī)測控裝置研究、生產(chǎn)、應(yīng)用中,取得了很大的成績,總結(jié)了很多經(jīng)驗(yàn)。目前國內(nèi)外對除氧器壓力控制的方法一般采用單沖量控制。單沖量控制用于除氧器給水流量較小時(shí)的情況。除氧器工作在給水流量較小時(shí),單沖量控制方式有上限輸出。一般情況下,單沖量控制方式的輸出上限為滿狀態(tài)輸出的50%。由于給水流量較

16、小時(shí)除氧器壓力受其影響變化的擾動(dòng)也就很小,因此采用單沖量系統(tǒng)既滿足調(diào)節(jié)品質(zhì)的要求,又可以減小整個(gè)給誰全程調(diào)節(jié)的參數(shù)的整定1。1.2.2單片機(jī)技術(shù)發(fā)展目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能ic卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更不用說自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械以及各種智能機(jī)械了。因此,單片機(jī)的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計(jì)算機(jī)應(yīng)用與智能化控制的科學(xué)家

17、、工程師。單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,大致可分為幾個(gè)范疇,在智能儀器儀表上的應(yīng)用,在工業(yè)控制中的應(yīng)用,在家用電器中的應(yīng)用,在計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用,在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用,在各種大型電器中的模塊化應(yīng)用,在汽車設(shè)備領(lǐng)域中的應(yīng)用等等2。未來單片機(jī)技術(shù)將向多功能、高性能、高速度、低電壓、低功耗、外圍電路內(nèi)裝化及片內(nèi)儲存器容量增加的方向發(fā)展。所以本課題將采用單片機(jī)來實(shí)現(xiàn)對除氧器內(nèi)壓力的控制。1.3設(shè)計(jì)目標(biāo)本課題的研究對象為除氧器的壓力,對其壓力進(jìn)行控制?;舅枷胧且詥纹瑱C(jī)作為控制器,通過單片機(jī)、壓力傳感器和數(shù)模轉(zhuǎn)換器等硬件系統(tǒng)和軟

18、件方法設(shè)計(jì)實(shí)現(xiàn)具有壓力報(bào)警和控制的雙重功能,同時(shí)也具有壓力顯示的功能。系統(tǒng)的硬件部分包括以下幾個(gè)部分:單片機(jī)作為核心控制器、壓力采集部分、鍵盤顯示部分、a/d變換部分、報(bào)警部分、壓力控制等部分組成。第2章 壓力控制系統(tǒng)實(shí)現(xiàn)方案2.1 系統(tǒng)總體任務(wù)本文主要設(shè)計(jì)的系統(tǒng)實(shí)現(xiàn)的功能有:(1)當(dāng)除氧器內(nèi)壓力低于控制壓力值時(shí),開啟給水水閥對除氧器進(jìn)行加水。(2)當(dāng)除氧器內(nèi)壓力高于控制壓力值時(shí),停止對除氧器內(nèi)進(jìn)行加水。(3)當(dāng)由于某種特殊原因,壓力高于控制點(diǎn)壓力時(shí),仍然沒有關(guān)閉給水水閥,則達(dá)到上限壓力值時(shí),進(jìn)行報(bào)警,關(guān)閉給水水閥。(4)設(shè)計(jì)消除報(bào)警按鈕,當(dāng)有報(bào)警時(shí)操作人員在知道的情況下可以按下消除報(bào)警并去做

19、相應(yīng)的處理工作。(5)設(shè)計(jì)緊急停止按鈕,在遇到緊急情況是可以停止系統(tǒng)的運(yùn)行。(6)設(shè)計(jì)實(shí)驗(yàn)按鈕,在系統(tǒng)啟動(dòng)之前進(jìn)行調(diào)試實(shí)驗(yàn),確保系統(tǒng)可以正常運(yùn)行及報(bào)警。(7)安裝溫度、壓力傳感器,可以進(jìn)行溫度與壓力值的顯示。2.2系統(tǒng)實(shí)現(xiàn)方案根據(jù)上面對系統(tǒng)任務(wù)的簡單描述,將系統(tǒng)功能進(jìn)行細(xì)分,此系統(tǒng)從整體看可以分為五部分:調(diào)節(jié)閥控制部分,信號采集部分,通信部分,數(shù)據(jù)處理部分,人機(jī)交互部分。調(diào)節(jié)閥控制部分主要完成對調(diào)節(jié)閥的控制,從而控制除氧器內(nèi)壓力值大小。信號采集部分則用于采集壓力等相關(guān)參量。通信部分主要完成與上位機(jī)的通信任務(wù)。數(shù)據(jù)處理部分主要完成pid運(yùn)算和數(shù)據(jù)運(yùn)算功能,而人機(jī)交互部分用來顯示除氧器運(yùn)行狀態(tài)和相

20、應(yīng)的按鍵控制。在穩(wěn)定除氧器內(nèi)壓力時(shí),可行性較大的方式主要有二種:因?yàn)闇y量壓力范圍最高值在100kpa,壓力比較小,比較好實(shí)現(xiàn)壓力的控制。本方案就通過控制檢測壓力即測量壓力,并通過pid運(yùn)算等控制系統(tǒng)輸出,從而實(shí)現(xiàn)壓力的控制。圖2-1 方案一第二種是考慮到除氧器內(nèi)本身存在的壓力和溫度對除氧器內(nèi)壓力的影響。由于除氧原理多采用加熱式除氧,所以計(jì)算實(shí)際壓力值時(shí)應(yīng)當(dāng)考慮到水溫變化與當(dāng)前壓力的變化,所以要對實(shí)際壓力值進(jìn)行一定的補(bǔ)償計(jì)算3。圖2-2方案二經(jīng)過二個(gè)方案比較后發(fā)現(xiàn)方案一比方案二少了一個(gè)前饋,。所以當(dāng)系統(tǒng)運(yùn)行在不同狀態(tài)時(shí)時(shí),除氧器內(nèi)的壓力會隨著溫度和當(dāng)前壓力的變化而變化。如果只對單一量進(jìn)行補(bǔ)償,系

21、統(tǒng)的穩(wěn)定性和抗干擾能力就會相對差一些,所以選擇方案二來設(shè)計(jì)系統(tǒng)的控制。在方案二中,當(dāng)除氧器內(nèi)的實(shí)際壓力和水溫都在不斷變化時(shí),單片機(jī)輸出的調(diào)節(jié)信號也會發(fā)生相應(yīng)變化,調(diào)節(jié)閥接到信號后也會自動(dòng)變化,控制除氧器給水水量的大小,從而實(shí)現(xiàn)除氧器內(nèi)壓力穩(wěn)定的目的。第3章 系統(tǒng)的硬件選擇和設(shè)計(jì)系統(tǒng)方案選擇完畢之后,希望實(shí)現(xiàn)系統(tǒng)應(yīng)有的功能,須選擇合適的硬件和設(shè)計(jì)才能完成設(shè)計(jì)意圖。3.1系統(tǒng)的硬件電路設(shè)計(jì)基于單片機(jī)的除氧器壓力控制系統(tǒng)有單片機(jī)、調(diào)節(jié)閥、差壓變送器、上位機(jī)等構(gòu)成。系統(tǒng)采用一臺單個(gè)單片機(jī)來對調(diào)節(jié)閥控制,實(shí)現(xiàn)調(diào)節(jié)閥控制給水水量的大小來實(shí)現(xiàn)除氧器內(nèi)壓力的穩(wěn)定。通過差壓變送器采樣來自除氧器內(nèi)的壓力,配合壓力

22、傳感器的壓力補(bǔ)償,將數(shù)據(jù)傳送回單片機(jī)進(jìn)行pid運(yùn)算,發(fā)出控制信號,控制調(diào)節(jié)閥。單片機(jī)連接上位機(jī),上位機(jī)裝有監(jiān)控軟件,對除氧器內(nèi)壓力進(jìn)行監(jiān)控。整個(gè)系統(tǒng)結(jié)構(gòu)框圖如圖3-1所示4。 圖3-1 整體方框圖3.1.1 a/d-d/a轉(zhuǎn)換模塊設(shè)計(jì)a/d是指模/數(shù)轉(zhuǎn)換器,是模/數(shù)轉(zhuǎn)換器的縮寫。是將連續(xù)的模擬量(如象元的灰階、電壓、電流等)通過取樣轉(zhuǎn)換成離散的數(shù)字量。盡管adc芯片的品種、型號很多,其內(nèi)部功能強(qiáng)弱、轉(zhuǎn)換速度快慢、轉(zhuǎn)換精度高低有很大差別,但從外特性看,無論哪種芯片,都必不可少地要包括以下四種基本信號引腳端:模擬信號輸入端(單極性或雙極性);數(shù)字量輸出端(并行或串行);轉(zhuǎn)換啟動(dòng)信號輸入端;轉(zhuǎn)換結(jié)束

23、信號輸出端。除此之外,各種不同型號的芯片可能還會有一些其他各不相同的控制信號端。這里,我們選用adc0809。adc0809是帶有8位a/d轉(zhuǎn)換器、8路多路開關(guān)以及微處理機(jī)兼容的控制邏輯的cmos組件。它是逐次逼近式a/d轉(zhuǎn)換器,可以和單片機(jī)直接接口,由一個(gè)8路模擬開關(guān)、一個(gè)地址鎖存與譯碼器、一個(gè)a/d轉(zhuǎn)換器和一個(gè)三態(tài)輸出鎖存器組成5。多路開關(guān)可選通8個(gè)模擬通道,允許8路模擬量分時(shí)輸入,共用a/d轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。三態(tài)輸出鎖器用于鎖存a/d轉(zhuǎn)換完的數(shù)字量,當(dāng)oe端為高電平時(shí),才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)6。adc0809對輸入模擬量要求:信號單極性,電壓范圍是05v,若信號太小,必須進(jìn)

24、行放大;輸入的模擬量在轉(zhuǎn)換過程中應(yīng)該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。adc0809是單路8位輸入a/d轉(zhuǎn)換器,轉(zhuǎn)換時(shí)間小于。量化間隔:(3-1)絕對量化誤差:(3-2)相對量化誤差:(3-3)在壓力傳感器誤差與參考電壓誤差不大的情況下,adc0809是完全滿足設(shè)計(jì)誤差要求的7。在本設(shè)計(jì)中,單片機(jī)通過鎖存器74hc373鎖存,再經(jīng)過io擴(kuò)展芯片8255輸出端與adc0809通信,其啟動(dòng)信號直接由單片機(jī)輸出控制。片選信號由單片機(jī)輸出給8255,從而接受adc0809的數(shù)據(jù)或向其發(fā)送數(shù)據(jù)。本設(shè)計(jì)當(dāng)中的單片機(jī)adc0809模數(shù)轉(zhuǎn)換器如圖3-2所示。圖3-2 adc0809數(shù)

25、模轉(zhuǎn)換器數(shù)模轉(zhuǎn)換器,又稱d/a轉(zhuǎn)換器,簡稱dac,它是把數(shù)字量轉(zhuǎn)變成模擬的器件。d/a轉(zhuǎn)換器基本上由4個(gè)部分組成,即權(quán)電阻網(wǎng)絡(luò)、運(yùn)算放大器、基準(zhǔn)電源和模擬開關(guān)。這里我們采用dac0832。d/a轉(zhuǎn)換器由8位輸入鎖存器、8位dac寄存器、8位d/a轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成。dac0832是8分辨率的d/a轉(zhuǎn)換集成芯片。dac0832有三種工作方式,分別為直通方式,單緩沖方式和雙緩沖方式。本設(shè)計(jì)采用了單緩沖的工作方式,輸入寄存器和dac寄存器共用一個(gè)地址,同時(shí)選通輸出,輸入數(shù)據(jù)在控制信號作用下,直接進(jìn)入dac寄存器中。和同時(shí)進(jìn)行,并且與單片機(jī)的端相連接,單片機(jī)對dac0832執(zhí)行一次寫操作,將數(shù)

26、據(jù)直接寫入dac寄存器中。本設(shè)計(jì)當(dāng)中的單片機(jī)dac0832數(shù)模轉(zhuǎn)換器連接如圖3-3所示8。 圖3-3 dac0832數(shù)模轉(zhuǎn)換器3.1.2 通訊傳輸模塊設(shè)計(jì)通訊模塊是單片機(jī)與上位機(jī)進(jìn)行數(shù)據(jù)通訊的處理芯片及其外圍電路。目前單片機(jī)與上位機(jī)通訊采用兩種方式,一種是常見的usb接口;第二種是采用美國電子工業(yè)協(xié)會eia(electronic industry association)制定的一種串行物理接口解決方案。采用usb接口設(shè)計(jì)作為備用接口。usb設(shè)計(jì)采用器件max232來實(shí)現(xiàn)。max232芯片是美信(maxim)公司專為rs-232標(biāo)準(zhǔn)串口設(shè)計(jì)的單電源電平轉(zhuǎn)換芯片,使用+5v單電源供電,是一種把電腦

27、的串行口rs232信號電平(-10 ,+10v)轉(zhuǎn)換為單片機(jī)所用到的ttl信號點(diǎn)平(0 ,+5)的芯片。其中max232通信原理圖如圖3-4所示9。 圖3-4 max232通信原理圖本設(shè)計(jì)提供的usb物理接頭使單片機(jī)和上位機(jī)之間可以通過usb線進(jìn)行連接。整個(gè)usb轉(zhuǎn)串口線不需要外接電源,直接使用usb供電即可。3.1.3 時(shí)間模塊設(shè)計(jì)通過單片機(jī)的定時(shí)器,可以設(shè)計(jì)時(shí)間功能,然而單片機(jī)自身的產(chǎn)生時(shí)間數(shù)據(jù)大大占用了系統(tǒng)的資源,降低了工作效率,甚至影響了其他功能的實(shí)現(xiàn),因此在本設(shè)計(jì)方案中,采用了外部芯片提供時(shí)間信號,用以系統(tǒng)記錄時(shí)間信息。ds1302因其較小的體積,占用i/o口資源少等特點(diǎn),是常用的時(shí)

28、間芯片。此次設(shè)計(jì)采用dip-8封裝。ds1302中vcc1為后備電源,vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。ds1302由vcc1或vcc2兩者中電壓較大者供電。當(dāng)vcc2大于vcc10.2v時(shí),vcc2供電,當(dāng)vcc2小于vcc1時(shí),ds1302由vcc1供電。本設(shè)計(jì)中直接把芯片的2腳接高電平,由其給芯片供電。x1和x2是振蕩源接口,外接32.768khz晶振。rst是復(fù)位/片選線,通過把rst輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳輸。rst輸入有兩種功能:首先rst接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,rst提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)rs

29、t為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對ds1302進(jìn)行操作。如果傳送過程中rst置為低電平,則會終止此次傳輸,i/o引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在vcc2.5v之前,rst必須保持低電平。只有在sclk為低電平時(shí),才能將rst置為高電平。i/o為串行數(shù)據(jù)輸入輸出端。sclk始終是輸入端,用來輸入串行時(shí)鐘信號。根據(jù)ds1302的特點(diǎn),設(shè)計(jì)電路如圖3-5所示10。圖3-5 ds1302時(shí)間模塊在實(shí)際應(yīng)用中,起控制、輸入輸出的三個(gè)端口上拉較弱,容因產(chǎn)生信號串?dāng)_,因此加上了上拉電阻,加強(qiáng)信號的穩(wěn)定性。3.1.4 單片機(jī)接口擴(kuò)展因?yàn)楸驹O(shè)計(jì)中有鍵盤輸入控制與顯示器等設(shè)備,而單片機(jī)接口數(shù)量有限,為解決

30、這一問題,我們選擇常見的可編程并行i/o接口芯片8255。8255是intel公司生產(chǎn)的可編程并行i/o接口芯片,有3個(gè)8位并行i/o口。具有3個(gè)通道3種工作方式的可編程并行接口芯片(40引腳)。 其各口功能可由軟件選擇,使用靈活,通用性強(qiáng)。下面簡單介紹一下8255的各個(gè)接口功能。d0d7:三態(tài)雙向數(shù)據(jù)總線,8255與cpu數(shù)據(jù)傳送的通道,當(dāng)cpu執(zhí)行輸入輸出指令時(shí),通過它實(shí)現(xiàn)8位數(shù)據(jù)的讀/寫操作,控制字和狀態(tài)信息也通過數(shù)據(jù)總線傳送。pa0pa7:端口a輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器,一個(gè)8位的數(shù)據(jù)輸入鎖存器。工作于三種方式中的任何一種。pb0pb7:端口b輸入輸出線,一個(gè)8位的

31、i/o鎖存器,一個(gè)8位的輸入輸出緩沖器。pc0pc7:端口c輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器,一個(gè)8位的數(shù)據(jù)輸入緩沖器。端口c可以通過工作方式設(shè)定而分成2個(gè)4位的端口,每個(gè)4位的端口包含一個(gè)4位的鎖存器,分別與端口a和端口b配合使用,可作為控制信號輸出或狀態(tài)信號輸入端口。其設(shè)計(jì)圖如圖3-6所示11。4圖3-6 8255擴(kuò)口8255a有三種工作方式,分別是方式0:基本輸入輸出方式;方式1:選通輸入輸出方式;方式2:雙向輸入輸出方式。在本設(shè)計(jì)當(dāng)中,我們使用8255a的方式0這種工作方式,即基本輸入輸出方式。這種工作方式的基本特點(diǎn)是任何一個(gè)端口可以作為輸入口,也可以作為輸出口,各個(gè)端口之

32、間沒有規(guī)定的必然聯(lián)系。各個(gè)端口的輸入或者輸出,可以有不同的組合。3.1.5 主控模塊設(shè)計(jì)主控模塊即是整個(gè)系統(tǒng)的控制與主要數(shù)據(jù)運(yùn)算單元。本設(shè)計(jì)采用單片機(jī)來作為主控模塊的主要組成部分。單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器cpu隨機(jī)存儲器ram、只讀存儲器rom、多種i/o口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、a/d轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。根據(jù)性價(jià)比以及被控對象接口數(shù)量,運(yùn)算要求等方面的綜合考慮,我們選用stc公司的stc89c51型單片機(jī)。圖3.1stc89c5

33、1型單片機(jī)工作電壓5.5v3.4v,其工作頻率范圍為0.40mhz,完全能夠滿足控制系統(tǒng)的設(shè)計(jì)要求。stc89c51單片機(jī)有40個(gè)引腳,采用雙列直插(dip)方式封裝。單片機(jī)最小系統(tǒng)一般應(yīng)該包括單片機(jī)、晶振電路、復(fù)位電路。晶振采用12mhz晶振,保證單片機(jī)有所需的機(jī)器周期。復(fù)位電路采用常用的按鍵復(fù)位。本設(shè)計(jì)當(dāng)中的單片機(jī)最小系統(tǒng)如圖3-7所示12。圖3-7 單片機(jī)最小系統(tǒng)對于單片機(jī)最小系統(tǒng)的各個(gè)部分,都有相應(yīng)的電容電阻等的元件,選擇正確的阻值大小與電容大小是單片機(jī)最小系統(tǒng)正常運(yùn)行的關(guān)鍵所在。晶振計(jì)算:為了對cpu時(shí)序進(jìn)行分析,首先要為它定義一種能夠度量各時(shí)序信號出現(xiàn)時(shí)間的尺度。最常用的尺度包括時(shí)

34、鐘周期、機(jī)器周期和指令周期。時(shí)鐘周期又稱振蕩周期,由單片機(jī)片內(nèi)振蕩電路osc產(chǎn)生,常定義為時(shí)鐘脈沖頻率的倒數(shù)。機(jī)器周期定義為實(shí)現(xiàn)特定功能所需的時(shí)間,對于此款單片機(jī)來說,機(jī)器周期由十二個(gè)時(shí)鐘周期t構(gòu)成。指令周期定義為執(zhí)行一條指令所需的時(shí)間。為了方便我們編程以及定時(shí)的準(zhǔn)確性,我們采用12mhz晶振作為單片機(jī)的晶振源。計(jì)算如下:(3-4)此時(shí)單片機(jī)的機(jī)器周期為,如此方便計(jì)算與編程。復(fù)位電路rc計(jì)算:單片機(jī)復(fù)位電路可以正常引導(dǎo)單片機(jī)到正確的程序執(zhí)行位置,復(fù)位電路不正常會導(dǎo)致程序錯(cuò)亂甚至不能運(yùn)行。此單片機(jī)復(fù)位電路為按鍵式高電平復(fù)位,即正常工作時(shí)復(fù)位引腳為低電平,按下復(fù)位按鍵時(shí),復(fù)位腳為高電平并維持兩個(gè)機(jī)

35、器周期(24個(gè)振蕩周期)或以上。假設(shè)高電平復(fù)位有效,舍去充放過程中較低的電平,一般的單片機(jī)復(fù)位脈沖寬度為0.71ms,rc計(jì)算公式為:;(3-5);這里我們?nèi)〗?jīng)驗(yàn)值電容為,電容為。計(jì)算延時(shí)時(shí)間:根據(jù)rc計(jì)算公式,計(jì)算出延時(shí)時(shí)間為,滿足單片機(jī)的按鍵復(fù)位要求13。3.1.6 線性穩(wěn)壓電源的設(shè)計(jì)穩(wěn)壓電源通常分為線性穩(wěn)壓電源和開關(guān)穩(wěn)壓電源。線性穩(wěn)壓電源是比較早使用的一類直流穩(wěn)壓電源。線性穩(wěn)壓直流電源的特點(diǎn)是:輸出電壓比輸入電壓低;反應(yīng)速度快,輸出紋波較小;工作產(chǎn)生的噪聲低:效率較低,產(chǎn)生的熱量大。線性穩(wěn)壓電源一般由電源變壓器、整流、濾波電路及穩(wěn)壓電路組成,其基本流程為變壓,蒸餾,濾波,穩(wěn)壓,輸出。本設(shè)

36、計(jì)中電源變壓器t的作用是將電網(wǎng)220v的交流電壓變換成整流濾波電路所需要的交流電壓ui。變壓器的副邊與原邊的功率比為p2/p1=,式中為變壓器的效率。采用變壓器,將市電220v/50hz變?yōu)?5v/50hz的交流電,然后通過整流電路,將交流電壓ui變換成脈動(dòng)的直流電壓。這里我們采用的整流電路為全波整流電路,以此來保證輸出電壓有效值。然后將此脈動(dòng)直流電壓進(jìn)行濾波處理,即通過電容將脈動(dòng)直流電壓的文波減小或者消除,此時(shí)電壓基本穩(wěn)定,再通過穩(wěn)壓電路來穩(wěn)定輸出電壓。同時(shí),本設(shè)計(jì)涉及到傳感器以及調(diào)節(jié)閥, 需要用到放大器,所以,我們通過7812和7912芯片來輸出12v與-12v電源。滿足設(shè)計(jì)全局的供電需求

37、。這里,將15v輸出電壓變?yōu)?2v電壓,我們采用的是lm7812芯片。用lm7812三端穩(wěn)壓ic來組成穩(wěn)壓電源所需的外圍元件極少,電路內(nèi)部還有過流、過熱及調(diào)整管的保護(hù)電路,使用起來可靠、方便,而且價(jià)格便宜。相應(yīng)的使用7912來輸出-12v電壓14。7805在測試條件下輸出電壓最小值為4.8/4.75v,最大值為5.2/5.25v,典型值為5v,輸出峰值電流為2.2a,滿足系統(tǒng)設(shè)計(jì)要求。輸出+5v電壓可以給單片機(jī)等工作模塊供電。其設(shè)計(jì)圖如圖3-8所示。圖3-8 線性電源3.1.7 顯示與鍵盤模塊設(shè)計(jì)顯示模塊設(shè)計(jì):本設(shè)計(jì)采用12864液晶進(jìn)行顯示。該點(diǎn)陣的成本相對較低,適用于各類儀器,小型設(shè)備的顯

38、示領(lǐng)域。壓力控制系統(tǒng)中的溫度壓力等等參數(shù)將通過12864液晶進(jìn)行顯示,同時(shí),系統(tǒng)的運(yùn)行狀態(tài)也將通過液晶顯示。考慮到液晶屏有可能損壞,本文將液晶屏連接接頭做成插頭形式,方便更換與維護(hù)。其具體硬件連接如圖3-9。圖3-9顯示模塊按鍵設(shè)計(jì):因?yàn)槌跗鲏毫刂葡到y(tǒng)目的之一是減少人工勞動(dòng)的繁瑣,基本上是全自動(dòng)運(yùn)行,不需要過多的人工控制,所以設(shè)計(jì)按鍵較少。鍵盤在單片機(jī)應(yīng)用系統(tǒng)中是一個(gè)很關(guān)鍵的部件,它能實(shí)現(xiàn)向單片機(jī)輸入數(shù)據(jù)、發(fā)送命令等功能,是人工干預(yù)單片機(jī)系統(tǒng)的主要手段??紤]到本設(shè)計(jì)實(shí)際需要的按鍵較少,故采用獨(dú)立式鍵盤接口電路即可。設(shè)計(jì)按鍵分別執(zhí)行功能為:1、當(dāng)除氧器壓力過高時(shí)報(bào)警,消除報(bào)警;2、 當(dāng)壓力控

39、制系統(tǒng)運(yùn)行之前,實(shí)驗(yàn)按鈕測試保證所需報(bào)警等功能完好運(yùn)行;3、系統(tǒng)緊急關(guān)閉按鈕;4、設(shè)定值增量按鈕,即“+”按鈕;5、設(shè)定值減量按鈕,即“-”按鈕;6、系統(tǒng)預(yù)留按鈕;按鍵的處理可以采用中斷方式,也可以采用查詢方式。鍵盤工作方式的選取原則是既要保證能及時(shí)響應(yīng)按鍵操作,又要不過多占用單片機(jī)的工作時(shí)間。所以選擇中斷方式處理按鍵。按鍵設(shè)計(jì)如圖3-10所示。圖3-10按鍵設(shè)計(jì)3.1.8 看門狗電路設(shè)計(jì)看門狗電路它實(shí)質(zhì)上是一個(gè)可由cpu復(fù)位的定時(shí)器,它的定時(shí)時(shí)間是固定不變的,一旦定時(shí)時(shí)間到,電路就產(chǎn)生復(fù)位信號或中斷信號。當(dāng)程序正常運(yùn)行時(shí),在小于定時(shí)時(shí)間隔內(nèi),單片機(jī)輸出一信號刷新定時(shí)器,定時(shí)器處于不斷的重新定

40、時(shí)過程,因此看門狗電路就不會產(chǎn)生復(fù)位信號或中斷信號,反之,當(dāng)程序因出現(xiàn)干擾而“跑飛”時(shí),單片機(jī)不能刷新定時(shí)器,產(chǎn)生復(fù)位信號或產(chǎn)生中斷信號使單片機(jī)復(fù)位或中斷,在中斷程序中使其返回到起始程序,恢復(fù)正常。本設(shè)計(jì)采用max831l看門狗電路監(jiān)控單片機(jī)的工作,如果單片機(jī)工作不正常,看門狗電路在規(guī)定時(shí)是內(nèi)得不到刷新復(fù)位,就輸出信號強(qiáng)制單片機(jī)復(fù)位重新啟動(dòng)工作,保證儀器正常工作。本設(shè)計(jì)利用了max831l的手動(dòng)復(fù)位輸入端。只要程序一旦跑飛引起程序“死機(jī)”,端電平由高到低,當(dāng)變低超過140ms,將引起max831產(chǎn)生一個(gè)200ms的復(fù)位脈沖。同時(shí)使看門狗定時(shí)器清0和使腳變成高電平。也可以隨時(shí)使用手動(dòng)復(fù)位按扭使m

41、ax831l產(chǎn)生復(fù)位脈沖,由于為產(chǎn)生復(fù)位脈沖端要求低電平至少保持140ms以上,故可以有效地消除開關(guān)抖動(dòng)。該電路可以適時(shí)地監(jiān)控電源故障(掉電、電壓降低等)。圖中ri的一端接未經(jīng)穩(wěn)壓的直流電源。電源正常時(shí),確保r9上的電壓高于1.26v,即保證max831l的pfi輸入端電平高于1.26v。當(dāng)電源發(fā)生故障,pfi輸入端的電平低于1.25v時(shí),電源故障輸出端電平由高變低,引起單片機(jī)中斷,cpu響應(yīng)中斷,執(zhí)行相應(yīng)的中斷服務(wù)程序,保護(hù)數(shù)據(jù),斷開外部用電電路等。程序正常運(yùn)行時(shí),由主程序在小于1.6s的時(shí)間間隔內(nèi)周期性地從p1.7端向max831l的p1.7輸入端發(fā)送一個(gè)脈沖信號,以消除芯片內(nèi)部的看門狗定

42、時(shí)器。實(shí)現(xiàn)指令為:若超過1.6s該輸入端收不到脈沖信號,則內(nèi)部看門狗定時(shí)器溢出,8號引腳由高電平變?yōu)榈碗娖健R餸ax831l產(chǎn)生一個(gè)200ms的復(fù)位脈沖。同時(shí)使看門狗定時(shí)器清零和使8號引腳變成高電平15。需要引起注意的是,整個(gè)單片機(jī)系統(tǒng)完成復(fù)位后,在pc指針的指針下整個(gè)程序?qū)?000h地址處重新開始初始化運(yùn)行,而這在很多情況下是不允許的(如連續(xù)的工藝流程),為此必須采取相應(yīng)的措施。首先在對單片機(jī)系統(tǒng)完成復(fù)位后,程序應(yīng)該先判斷是開機(jī)運(yùn)行(冷啟動(dòng))還是運(yùn)行過程中“死機(jī)”之后的重新加載運(yùn)行(熱啟動(dòng))。因此一般情況下在這兩種啟動(dòng)方式下,系統(tǒng)程序在進(jìn)入主流程在進(jìn)入主流程前所要做的工作往往不同。如冷啟

43、動(dòng)后,系統(tǒng)程序在初始化程序往往要進(jìn)行系統(tǒng)資源的自檢以及將各外圍設(shè)備修改設(shè)置,只是對單片機(jī)系統(tǒng)本身的一些資源進(jìn)行必要的設(shè)置工作。其次,在大多數(shù)情況下,我們總可以把一個(gè)連續(xù)的過程分解開來,把它變成一個(gè)個(gè)獨(dú)立的子過程(狀態(tài))組成的連續(xù)過程。在主程序運(yùn)行過程中,適時(shí)保存相應(yīng)狀態(tài)和該狀態(tài)下的相關(guān)參數(shù)。其設(shè)計(jì)如圖3-11所示16。圖3-11 看門狗電路這樣當(dāng)程序運(yùn)行出現(xiàn)“死機(jī)”,在max831l作用下系統(tǒng)復(fù)位和初始化后,將首先查詢事先保存的狀態(tài)參數(shù),然后根據(jù)此參數(shù)決定程序的流向。同時(shí)把該狀態(tài)下事先保存的參數(shù)取出,對系統(tǒng)外圍設(shè)備進(jìn)行必要的恢復(fù)設(shè)置工作和引導(dǎo)程序繼續(xù)運(yùn)行。第4章 系統(tǒng)軟件設(shè)計(jì)4.1 系統(tǒng)軟件相

44、關(guān)介紹8051系類單片機(jī)共擁有111條系統(tǒng)指令,可實(shí)現(xiàn)51種基本操作。然而匯編語言指令卻有程序的可讀性低,程序開發(fā)人員的開發(fā)時(shí)間長與開發(fā)難度大,程序移植性差等缺點(diǎn)。c語言是一種編譯型程序設(shè)計(jì)語言。它兼顧了多種高級語言的特點(diǎn),并具備匯編語言的功能。用c語言來編寫目標(biāo)系統(tǒng)軟件,會大大縮短開發(fā)周期,增加軟件的可讀性,便于改進(jìn)和擴(kuò)充。用c語言進(jìn)行51系列單片機(jī)程序設(shè)計(jì)是單片機(jī)開發(fā)與應(yīng)用的必然趨勢。keil c51開發(fā)工具套件可用于匯編c語言程序、匯編源程序,鏈接和定位目標(biāo)文件和庫,創(chuàng)建hex文件以及調(diào)試目標(biāo)程序17。本設(shè)計(jì)使用keil c51 vision4為開發(fā)編譯環(huán)境,使用c語言編寫程序,實(shí)現(xiàn)各模

45、塊功能設(shè)計(jì)。4.1.1 系統(tǒng)主程序流程圖系統(tǒng)主程序的功能主要是完成對單片機(jī)的初始化,設(shè)置警戒壓力的上下限值,實(shí)時(shí)顯示壓力值以及鍵盤掃描等工作。主程序流程圖如圖4-1所示。系統(tǒng)啟動(dòng)cpu初始化參數(shù)設(shè)定按鍵輸入按鍵處理采樣子程序顯示實(shí)時(shí)壓力數(shù)據(jù)處理子程序控制調(diào)節(jié)閥顯示開關(guān)是否是圖4-1 主程序流程圖4.1.2 系統(tǒng)初始化該模塊在系統(tǒng)上電開機(jī)時(shí)將系統(tǒng)端口、數(shù)據(jù)存儲區(qū)、標(biāo)志位、指針、地址等賦予有含義的值。具體分為以下幾個(gè)模塊列表描述。如表4.1:表4.1 初始化參數(shù)及含義模塊變量/端口初始值功能控制端口初始化adrd/p1.31a/d轉(zhuǎn)換芯片數(shù)據(jù)讀入控制,初始為不讀入adwr/p1.40a/d轉(zhuǎn)換芯片

46、轉(zhuǎn)換控制,初始為停止e/p1.50通信接收發(fā)送控制,初始為接收dis/p1.60顯示數(shù)據(jù)鎖存控制,初始為保持relay/p1.71繼電器控制,初始狀態(tài)為斷開波特率發(fā)生器初始化tmod0x22單片機(jī)片內(nèi)定時(shí)/計(jì)數(shù)器工作在方式二scon0x40串行口為8位uart工作方式th10xf4波特率設(shè)置為4800bpstl10xf4ie0禁止定時(shí)器中斷tr11啟動(dòng)定時(shí)器ren1允許串行口接收數(shù)據(jù)數(shù)據(jù)參數(shù)初始化xmark0x7531數(shù)據(jù)存儲狀態(tài)標(biāo)志字節(jié)指針numtab0x0001數(shù)據(jù)存儲區(qū)指針uplq0xcf高壓力警戒值,初始值downlq0x10低壓力警戒值,初始值4.1.3 顯示與a/d轉(zhuǎn)換的數(shù)據(jù)處理系

47、統(tǒng)中,顯示輸出的要求為壓縮bcd碼,而a/d轉(zhuǎn)換輸入的數(shù)據(jù)是8位16進(jìn)制碼,因此在實(shí)現(xiàn)顯示之前需要編碼的轉(zhuǎn)換。對8位a/d轉(zhuǎn)換器而言,其十六進(jìn)制、相對滿偏電壓比率、相對電壓幅值的關(guān)系對應(yīng)如表4.2:表4.2 a/d轉(zhuǎn)換幅值數(shù)據(jù)關(guān)系對照表十六進(jìn)制二進(jìn)制滿刻度比率相對電壓幅值vref=2.5v高四位低四位高四位電壓低四位電壓f111115/1615/2564.8000.320e111014/1614/2564.4800.280d110113/1613/2564.1600.260c110012/1612/2563.8400.240b101111/1611/2563.5200.220a101010/1

48、610/2563.2000.200910019/169/2562.8800.180010008/168/2562.5600.160701117/167/2562.2400.140601106/166/2561.9200.120501015/165/2561.6000.100401004/164/2561.2800.080300113/163/2560.9600.060200102/162/2560.6400.040100011/161/2560.3200.020000000/160/2560.0000.000設(shè)輸入8位二進(jìn)制數(shù)據(jù)為,的商即為以分米為單位的壓力數(shù)據(jù),余數(shù)為以厘米為單位的數(shù)據(jù),由于

49、顯示位數(shù)僅為2位,最低位為分米,固使用“二舍三入”的辦法保留分米單位的整數(shù)倍數(shù)據(jù)。為了將這個(gè)數(shù)據(jù)轉(zhuǎn)換為為壓縮bcd碼,再將,得到的商左移四位(相當(dāng)于乘以16)為壓縮bcd碼高四位,余數(shù)為壓縮bcd碼低四位,二者相加,就是最終的結(jié)果。對于adc0809的工作流程,如圖4.2所示18。綜上,電壓幅值與壓力在數(shù)值上是相等的。為了通過lcd直觀顯示壓力,進(jìn)行轉(zhuǎn)換的思路如下:圖4-2 adc0809的工作流程圖4.1.4 按鍵部分軟件設(shè)計(jì)由于使用的按鍵較少,所以本文采用了獨(dú)立式鍵盤,即每個(gè)按鍵單獨(dú)占用一根口線。在程序查詢方式下,通過i/o端口讀入按鍵狀態(tài),當(dāng)有按鍵按下時(shí),相應(yīng)的端口變?yōu)榈碗娖?,這樣通過讀

50、入i/o口狀態(tài)判斷是否有按鍵按下。圖4-3 查詢式鍵盤的程序流程圖4.1.5 通信協(xié)議及通信模塊軟件設(shè)計(jì)通信協(xié)議為了使pc上位機(jī)與設(shè)備實(shí)現(xiàn)有意義的通信,設(shè)計(jì)了簡單的通信協(xié)議。通信波特率設(shè)計(jì)為4800bps,過高的波特率在沒有檢糾錯(cuò)方式的情況下易發(fā)生數(shù)據(jù)的丟失,過低的波特率會使傳輸變慢。傳送以字節(jié)為單位,發(fā)送命令與數(shù)據(jù)。通信協(xié)議命令控制字如表4.3。軟件設(shè)計(jì)上,系統(tǒng)以查詢的方式檢測上位機(jī)的命令控制字,并及時(shí)進(jìn)入各響應(yīng)函數(shù)予以響應(yīng)19 。表4.3 通信協(xié)議上位機(jī)命令控制字含義下位機(jī)命令控制字含義0x00請求聯(lián)機(jī)檢測0xf0響應(yīng)聯(lián)機(jī)檢測成功0x01讀系統(tǒng)時(shí)間0xf1響應(yīng)寫時(shí)間指令,發(fā)送7字節(jié)時(shí)間數(shù)據(jù)

51、0x02設(shè)置系統(tǒng)時(shí)間0xf2響應(yīng)度時(shí)間指令,接收7字節(jié)時(shí)間數(shù)據(jù)0x03讀當(dāng)前壓力值0xf3響應(yīng)讀當(dāng)前壓力指令,發(fā)送1字節(jié)壓力數(shù)據(jù)0x04讀記錄數(shù)據(jù)0xf4響應(yīng)讀記錄數(shù)據(jù)指令,發(fā)送2字節(jié)數(shù)據(jù)量及相應(yīng)數(shù)據(jù)0x05讀壓力上下限0xf5響應(yīng)讀壓力上下限指令,發(fā)送2字節(jié)壓力上下限數(shù)據(jù)0x06設(shè)置壓力上下限0xf6響應(yīng)設(shè)置壓力上下限指令,接收2字節(jié)壓力上下限數(shù)據(jù)0x07讀當(dāng)前壓力及電機(jī)狀態(tài)0xf7響應(yīng)讀當(dāng)前壓力及電機(jī)狀態(tài)指令,發(fā)送2字節(jié)壓力數(shù)據(jù)及電機(jī)狀態(tài)通信模塊的控制該模塊在控制上設(shè)計(jì)兩個(gè)函數(shù),一個(gè)是發(fā)送函數(shù),另一個(gè)是接收函數(shù)。由于采用半雙工的通信方式,需要控制變量e的置位與復(fù)位轉(zhuǎn)換發(fā)送與接收的狀態(tài)。發(fā)送

52、的過程:置e為1,使系統(tǒng)處于發(fā)送數(shù)據(jù)狀態(tài);將數(shù)據(jù)寫入串行通信緩沖區(qū)sbuf;等待,直到發(fā)送完畢,將e清0,返回接收狀態(tài)。接收過程:清零e,使系統(tǒng)處于接收狀態(tài);等待,直到接收完畢,讀串行通信緩沖區(qū)sbuf;繼續(xù)保持接收狀態(tài)20。圖4-4 通訊檢測流程圖4.1.6 時(shí)間模塊軟件設(shè)計(jì)ds1302內(nèi)部寄存器的定義直接影響著軟件的設(shè)計(jì),大概可分為時(shí)間控制寄存器和內(nèi)部ram寄存器。其中:ch: 時(shí)鐘停止位寄存器2的第7位12/24小時(shí)標(biāo)志ch=0 振蕩器工作允許bit7=1,12小時(shí)模式ch=1 振蕩器停止bit7=0,24小時(shí)模式wp: 寫保護(hù)位寄存器2的第5位:am/pm定義wp=0 寄存器數(shù)據(jù)能夠?qū)?/p>

53、入 ap=1 下午模式wp=1 寄存器數(shù)據(jù)不能寫入 ap=0 上午模式tcs: 涓流充電選擇ds:二極管選擇位tcs=1010 使能涓流充電 ds=01 選擇一個(gè)二極管tcs=其它 禁止涓流充電 ds=10 選擇兩個(gè)二極管ds=00 或11, 即使tcs=1010, 充電功能也被禁止rs: 涓流充電電阻選擇位由于ds1302數(shù)據(jù)傳輸方式為串行移位輸入輸出。地址、數(shù)據(jù)的寫操作流程是相同的。地址沒有讀操作。無論是讀還是寫,二者結(jié)構(gòu)類似。讀寫的核心是產(chǎn)生sclk移位信號與移位,讀操作是將數(shù)據(jù)從ds1302的i/o口移入單片機(jī),寫操作是將數(shù)據(jù)從單片機(jī)移入ds1302時(shí)鐘芯片。我們最終處理的對象是時(shí)間數(shù)

54、據(jù)或狀態(tài)數(shù)據(jù),在獲取數(shù)據(jù)時(shí),首先寫入地址,然后讀取數(shù)據(jù);寫入數(shù)據(jù)時(shí),先寫入地址,再輸出數(shù)據(jù)。完成時(shí)間的模塊軟件的設(shè)計(jì)21。表4.4 rs狀態(tài)標(biāo)志及含義rs位電阻典型值00無無01r12k10r24k11r38k第5章 系統(tǒng)軟件仿真5.1 系統(tǒng)仿真軟件相關(guān)介紹5.1.1 matlab簡介matlab是矩陣實(shí)驗(yàn)室(matrixlaboratory)之意。除具備卓越的數(shù)值計(jì)算能力外,它還提供了專業(yè)水平的符號計(jì)算,文字處理,可視化建模仿真和實(shí)時(shí)控制等功能。matlab的基本數(shù)據(jù)單位是矩陣,它的指令表達(dá)式與數(shù)學(xué),工程中常用的形式十分相似,故用matlab來解算問題要比用c,fortran等語言完成相同的

55、事情簡捷得多。matlab控制系統(tǒng)仿真軟件是當(dāng)今國際控制界公認(rèn)的標(biāo)準(zhǔn)計(jì)算軟件,matlab擁有更豐富的數(shù)據(jù)類型和結(jié)構(gòu)、更友善的面向?qū)ο蟆⒏涌焖倬嫉膱D形可視、更廣博的數(shù)學(xué)和數(shù)據(jù)分析資源、更多的應(yīng)用開發(fā)工具。特別是simulink這一個(gè)交互式操作的動(dòng)態(tài)系統(tǒng)建模、仿真、分析集成環(huán)境的出現(xiàn),使人們有可能考慮許多以前不得不做簡化假設(shè)的非線性因素、隨機(jī)因素,從而即使學(xué)生沒有對非線性動(dòng)態(tài)系統(tǒng)進(jìn)行分析研究的數(shù)學(xué)基礎(chǔ),仍可通過仿真來認(rèn)知非線性對系統(tǒng)動(dòng)態(tài)的影響。時(shí)至今日,經(jīng)過mathworks公司的不斷完善,matlab已經(jīng)發(fā)展成為適合多學(xué)科,多種工作平臺的功能強(qiáng)大大大型軟件。在國外,matlab已經(jīng)經(jīng)受了多年考驗(yàn)。在歐美等高校,matlab已經(jīng)成為線性代數(shù),自動(dòng)控制理論,數(shù)理統(tǒng)計(jì),數(shù)字信號處理,時(shí)間序列分析,動(dòng)態(tài)系統(tǒng)仿真等高級課程的基本教學(xué)工具;成為攻讀學(xué)位的大學(xué)生,碩士生,博士生必須掌握的基本技能。在設(shè)計(jì)研究單位和工業(yè)部門,ma

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論