版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
...wd......wd......wd...單片機(jī)溫度控制系統(tǒng)的設(shè)計(jì)摘要溫度是表征物體冷熱程度的物理量,是工農(nóng)業(yè)生產(chǎn)過(guò)程中一個(gè)很重要而普遍的參數(shù)。由于溫度測(cè)量的普遍性,溫度傳感器的數(shù)量在各種傳感器中居首位。溫度控制的開(kāi)展引入單片機(jī)后,可以降低對(duì)某些硬件電路的要求?;趩纹瑱C(jī)的溫度控制系統(tǒng),可以實(shí)現(xiàn)對(duì)溫度的準(zhǔn)確控制。本文以溫室為研究對(duì)象,以AT89C51單片機(jī)為核心所實(shí)現(xiàn)的溫度控制系統(tǒng)具有自動(dòng)完成數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)轉(zhuǎn)換控制、鍵盤終端處理及顯示的功能。當(dāng)實(shí)際溫度低于設(shè)定值,PTC進(jìn)展加熱,反之PTC就停頓加熱。實(shí)際溫度超上限或者低下限時(shí),系統(tǒng)自動(dòng)報(bào)警。溫度控制采用的是雙位控制,簡(jiǎn)單易行,在精度要求不是特別高的溫室,可行度很高。最后對(duì)系統(tǒng)進(jìn)展調(diào)試并在PROTEUS里仿真,結(jié)果說(shuō)明該系統(tǒng)原理可行。又在一個(gè)小空間進(jìn)展試驗(yàn),誤差在1℃左右,結(jié)果符合預(yù)期。運(yùn)行穩(wěn)定、控制效果好、性價(jià)比高。關(guān)鍵詞:?jiǎn)纹瑱C(jī),溫度控制,DS18B20,溫室目錄摘要IAbstractI目錄II第一章緒論11.1課題研究背景及意義11.2國(guó)內(nèi)外研究現(xiàn)狀11.2.1國(guó)外研究現(xiàn)狀11.2.2國(guó)內(nèi)研究現(xiàn)狀11.2.3總的開(kāi)展階段21.3課題研究的內(nèi)容2第二章硬件系統(tǒng)總體方案設(shè)計(jì)32.1硬件系統(tǒng)總體設(shè)計(jì)方案一32.2硬件系統(tǒng)總體設(shè)計(jì)方案二42.3硬件系統(tǒng)的方案選擇4第三章控制系統(tǒng)硬件設(shè)計(jì)63.1單片機(jī)63.2數(shù)字溫度計(jì)DS18B2093.2.1DS18S20數(shù)字溫度計(jì)的主要特性93.34X4鍵盤93.4數(shù)碼管103.5光電耦合器123.6雙向晶閘管133.7PTC加熱器143.8反相器7406153.9雙四輸入與門74LS21163.9蜂鳴器16第四章控制系統(tǒng)軟件設(shè)計(jì)174.1主程序模塊設(shè)計(jì)174.1.1主程序流程圖174.2溫度采集模塊程序設(shè)計(jì)184.2.1DS18B20的時(shí)序184.2.3讀溫度子程序流程圖204.3溫度設(shè)定模塊程序設(shè)計(jì)214.3.1中斷服務(wù)子程序214.3.2鍵盤掃描子程序214.4溫度顯示模塊設(shè)計(jì)234.4.1設(shè)定值顯示子程序234.4.2實(shí)際值顯示子程序244.5溫度控制模塊設(shè)計(jì)254.5.1雙位控制算法設(shè)計(jì)254.5.2溫度控制子程序流程圖254.6報(bào)警模塊程序設(shè)計(jì)26第五章結(jié)果分析275.1PROTEUS仿真275.1.1鍵盤設(shè)定溫度仿真275.1.2溫度采集仿真285.1.3整體仿真285.2實(shí)際運(yùn)行結(jié)果29第六章總結(jié)與展望316.1總結(jié)316.2展望31附錄程序33第一章緒論1.1課題研究背景及意義溫度是表征物體冷熱程度的物理量,是工農(nóng)業(yè)生產(chǎn)過(guò)程中一個(gè)很重要而普遍的參數(shù)。溫度的測(cè)量及控制對(duì)保證產(chǎn)品質(zhì)量、提高生產(chǎn)效率、節(jié)約能源、生產(chǎn)安全、促進(jìn)國(guó)民經(jīng)濟(jì)的開(kāi)展起到非常重要的作用。由于溫度測(cè)量的普遍性,溫度傳感器的數(shù)量在各種傳感器中居首位。而且隨著科學(xué)技術(shù)和生產(chǎn)的不斷開(kāi)展,溫度傳感器的種類還是在不斷增加豐富來(lái)滿足生產(chǎn)生活中的需要。在單片機(jī)溫度測(cè)量系統(tǒng)中的關(guān)鍵是測(cè)量溫度、控制溫度和保持溫度,溫度測(cè)量是工業(yè)對(duì)象中主要的被控參數(shù)之一。溫度控制采用單片機(jī)設(shè)計(jì)的全數(shù)字儀表,是常規(guī)儀表的的升級(jí)產(chǎn)品。溫度控制的開(kāi)展引入單片機(jī)后,可以降低對(duì)某些硬件電路的要求,但依然需要重視測(cè)試電路本身的重要性,尤其是直接獲取被測(cè)信號(hào)的傳感器局部,仍應(yīng)給以充分的重視,有時(shí)提高整臺(tái)儀器的性能的關(guān)鍵仍然在于測(cè)試電路尤其是傳感器的改良?,F(xiàn)在傳感器也正在受著微電子技術(shù)的影響,不斷開(kāi)展變化。傳感器正朝著小型、固態(tài)、多功能和集成化的方向開(kāi)展?;趩纹瑱C(jī)的溫度控制系統(tǒng),可以實(shí)現(xiàn)對(duì)溫度的準(zhǔn)確控制,使得在某些場(chǎng)合下人們對(duì)溫度上下的要求得以實(shí)現(xiàn)。對(duì)人們的生產(chǎn)和生活影響巨大,比方,在我國(guó)的北方,冬天溫度極低,但引入溫室大棚后,冬天的時(shí)候人們也能吃到新鮮的蔬菜;鋼鐵廠里煉鐵,對(duì)溫度的要求更高,這就使得溫度控制變得極為有意義,而在我們的日常生活中,空調(diào)讓冬天不冷夏天不熱,確實(shí)讓我們感受到溫度控制對(duì)我們生活質(zhì)量的提高也有著極大的作用??傊?,現(xiàn)代工業(yè)設(shè)計(jì),工程建設(shè)及日常生活中溫度控制都起著重要的作用。1.2國(guó)內(nèi)外研究現(xiàn)狀1.2.1國(guó)外研究現(xiàn)狀國(guó)外對(duì)溫度控制技術(shù)研究較早,始于20世紀(jì)70年代。先是采用模擬式的組合儀表,采集現(xiàn)場(chǎng)信息并進(jìn)展指示、記錄和控制。80年代末出現(xiàn)了分布式控制系統(tǒng)。目前正開(kāi)發(fā)和研制計(jì)算機(jī)數(shù)據(jù)采集控制系統(tǒng)的多因子綜合控制系統(tǒng)。990年代中期,智能溫控儀問(wèn)世,它是微電子技術(shù)、計(jì)算機(jī)技術(shù)和自動(dòng)測(cè)試技術(shù)的結(jié)晶。目前,國(guó)際上已開(kāi)發(fā)出多種智能溫控器系列產(chǎn)品。智能溫控器內(nèi)部都包含溫度傳感器、A/D轉(zhuǎn)換器、信號(hào)處理器和接口電路。有的產(chǎn)品還有多路選擇器、中央控制器〔CPU〕、隨機(jī)存儲(chǔ)器〔RAM〕和只讀存儲(chǔ)器〔ROM〕。現(xiàn)在世界各國(guó)的溫度測(cè)控技術(shù)開(kāi)展很快,一些國(guó)家在實(shí)現(xiàn)自動(dòng)化的根基上正向著完全自動(dòng)化、無(wú)人化的方向開(kāi)展。1.2.2國(guó)內(nèi)研究現(xiàn)狀我國(guó)對(duì)于溫度測(cè)控技術(shù)的研究較晚,始于20世紀(jì)80年代。我國(guó)工程技術(shù)人員在吸收興旺國(guó)家溫度測(cè)控技術(shù)的根基上,才掌握了溫度室內(nèi)微機(jī)控制技術(shù),該技術(shù)僅限于對(duì)溫度的單項(xiàng)環(huán)境因子的控制。我國(guó)溫度測(cè)控設(shè)施計(jì)算機(jī)應(yīng)用,在總體上正從消化吸收、簡(jiǎn)單應(yīng)用階段向?qū)嵱没?、綜合性應(yīng)用階段過(guò)渡和開(kāi)展。在技術(shù)上,以單片機(jī)控制的單參數(shù)單回路系統(tǒng)居多,尚無(wú)真正意義上的多參數(shù)綜合控制系統(tǒng),與興旺國(guó)家相比,存在較大差距。我國(guó)溫度測(cè)量控制現(xiàn)狀還遠(yuǎn)遠(yuǎn)沒(méi)有到達(dá)工廠化的程度,生產(chǎn)實(shí)際中仍然有許多問(wèn)題困擾著我們,存在著裝備配套能力差,產(chǎn)業(yè)化程度低,環(huán)境控制水平落后,軟硬件資源不能共享和可靠性差等缺點(diǎn)。1.2.3總的開(kāi)展階段總的來(lái)說(shuō),溫控器被廣泛應(yīng)用于工農(nóng)業(yè)生產(chǎn)、科學(xué)研究和生活等領(lǐng)域,數(shù)量日漸上升。近百年來(lái),溫控器的開(kāi)展大致經(jīng)歷了三個(gè)階段:1.模擬溫度控制器;2.集成溫度控制器;3.能溫度控制器,目前,國(guó)際上新型溫控器正從模擬式向數(shù)字式、由集成化向智能化、網(wǎng)絡(luò)化的方向開(kāi)展。1.3課題研究的內(nèi)容本文所要研究的課題是基于單片機(jī)的溫度控制系統(tǒng)的設(shè)計(jì),控制對(duì)象為溫室,主要目標(biāo)是實(shí)現(xiàn)溫度的設(shè)定值顯示、實(shí)際值實(shí)時(shí)測(cè)量及顯示,溫度超上限和低下限不安全報(bào)警。單片機(jī)連接的溫度調(diào)節(jié)裝置由軟件與硬件電路配合來(lái)實(shí)現(xiàn)溫度實(shí)時(shí)控制,顯示可由軟件控制并在數(shù)碼管中顯示。對(duì)比采集到溫度與設(shè)定值及上下限的大小,然后做出相應(yīng)的反響,控制執(zhí)行機(jī)構(gòu)是否降溫或升溫,判斷警報(bào)與否。第二章硬件系統(tǒng)總體方案設(shè)計(jì)本次畢業(yè)設(shè)計(jì)以51系列單片機(jī)為核心對(duì)溫度進(jìn)展控制,使被控對(duì)象的溫度穩(wěn)定在某一指定數(shù)值上,允許有1℃的誤差〔不包括元件本身的制造引起的誤差〕,鍵盤輸入設(shè)定溫度值,LED數(shù)碼管顯示溫度值〔實(shí)際的或設(shè)定的〕。基于上述要求,提出以下兩種方案,下文是對(duì)兩種方案的具體論述。2.1硬件系統(tǒng)總體設(shè)計(jì)方案一方案一如圖2-1所示,此方案選用DS18B20芯片進(jìn)展溫度采集及模擬量與數(shù)字量之間的轉(zhuǎn)換,并直接輸出數(shù)字量,無(wú)需信號(hào)放大,且只占用一根口線,然后將其送數(shù)碼管顯示。4X4矩陣式鍵盤,首先要對(duì)其進(jìn)展鍵盤掃描,判斷是否有鍵按下,如有鍵按下,要判斷是那個(gè)鍵按下,確定鍵值,然后對(duì)其進(jìn)展輸入,把最后設(shè)定的溫度值送給數(shù)碼管進(jìn)展顯示。如果對(duì)一個(gè)溫度值已經(jīng)設(shè)定完畢后,無(wú)需再按任何鍵即有效,如果溫度值設(shè)定得不合理,可對(duì)溫度進(jìn)展重新設(shè)定,溫度的上下限可由軟件編程設(shè)定,這樣就完成了對(duì)溫度的總體設(shè)置。對(duì)于數(shù)碼管顯示模塊,采用了動(dòng)態(tài)顯示的方法,在程序的設(shè)計(jì)中也相應(yīng)的采用動(dòng)態(tài)顯示方法對(duì)其進(jìn)展編寫。首先把設(shè)定的〔或采集到〕數(shù)據(jù)的十進(jìn)制數(shù)進(jìn)展字節(jié)拆分,分別求出要顯示個(gè)位數(shù)、十位數(shù)、百位數(shù)〔顯示實(shí)際溫度時(shí),還要求出十分位〕,然后將其送至數(shù)碼管顯示。顯示設(shè)定值還是實(shí)際值,可由按鍵進(jìn)展切換。對(duì)于溫度控制模塊,首先是把采集的數(shù)據(jù)和設(shè)定的溫度上下限進(jìn)展對(duì)比,如低于下限值或高于上限值,蜂鳴器警報(bào),再把實(shí)際溫度和設(shè)定的溫度對(duì)比,決定加熱與否以及加熱時(shí)間的控制。單片機(jī)軟件編程靈活、自由度大,可用軟件編程實(shí)現(xiàn)各種控制算法和邏輯控制,不需要向外擴(kuò)展存儲(chǔ)器,可使系統(tǒng)整體構(gòu)造更為簡(jiǎn)單。信號(hào)的傳遞路線短,可以提高系統(tǒng)精度。DS18B20DS18B20單片機(jī)鍵盤設(shè)定溫度雙向可控硅光電耦合器加熱裝置報(bào)警數(shù)碼管顯示圖2-1方案一框圖2.2硬件系統(tǒng)總體設(shè)計(jì)方案二方案二如圖2-2所示,采用AT89C51作為控制核心,以使用最為普遍的器件ADC0809作模數(shù)轉(zhuǎn)換,控制上使用電阻絲進(jìn)展加熱。此方案簡(jiǎn)易可行,器件的價(jià)格廉價(jià),且ADC0809是8位的模數(shù)轉(zhuǎn)換,測(cè)溫范圍是0-800℃,誤差為0.5%,即分辨率為1/200,而ADC0809的分辨率為1/256,故能滿足此題目的精度要求。系統(tǒng)要有溫度設(shè)定局部,由于8051的接口不夠的問(wèn)題,所以對(duì)其進(jìn)展接口擴(kuò)展,采用最常用的8255并行接口芯片對(duì)其擴(kuò)展,采用4×4矩陣式鍵盤接在8255的A口和B口,鍵盤中有0到15之間十六個(gè)數(shù)字鍵,對(duì)溫度的顯示采用三個(gè)數(shù)碼管對(duì)其進(jìn)展顯示,分別是百位、十位、個(gè)位。且系統(tǒng)設(shè)置報(bào)警裝置,使用戶能夠?qū)崟r(shí)知道溫度是否在所設(shè)定所的范圍內(nèi)??刂齐娐肪植坎捎肕OC3041控制可控硅的通斷以實(shí)現(xiàn)對(duì)溫室溫度的控制。AD590AD590放大電路單片機(jī)模數(shù)轉(zhuǎn)換鍵盤設(shè)定溫度82555A雙向可控硅光電耦合器數(shù)碼管顯示加熱裝置報(bào)警圖2-2方案二框圖2.3硬件系統(tǒng)的方案選擇兩種方案的區(qū)別在于溫度的采集局部,由上可知,DS18B20相對(duì)于AD590在此系統(tǒng)的優(yōu)勢(shì)相當(dāng)明顯,節(jié)約單片機(jī)的I/O口線,數(shù)據(jù)傳送路徑短,準(zhǔn)確度高,節(jié)約成本,應(yīng)選用方案一。此方案以單片機(jī)為該系統(tǒng)的控制核心。溫度的檢測(cè)局部使用了DS18B20、AT89C51單片機(jī)及數(shù)碼管的硬件電路完成對(duì)室溫的實(shí)時(shí)檢測(cè)與顯示,通過(guò)4×4鍵盤設(shè)定溫室的溫度,對(duì)比溫度的設(shè)定值與實(shí)測(cè)值的大小,然后由單片機(jī)發(fā)出信號(hào),控制光電耦合器和雙向可控硅導(dǎo)通與否,由此控制PTC加熱器的通斷,實(shí)現(xiàn)對(duì)溫室溫度的恒溫控制。因?yàn)闇厥业臏囟炔▌?dòng)對(duì)比小,故不必采用軟件濾波對(duì)溫度進(jìn)展平滑控制。報(bào)警局部采用一個(gè)3V的有源蜂鳴器,發(fā)出不安全警報(bào)。此單片機(jī)溫度控制系統(tǒng)具有微型化、低功耗、高性能、易配微處理器等優(yōu)點(diǎn),可以進(jìn)展多點(diǎn)測(cè)溫,DS18B20可以直接將溫度轉(zhuǎn)化成串行數(shù)字信號(hào)供微機(jī)處理,而且每片DS18B20都有唯一的產(chǎn)品號(hào),可以一并存入其ROM中,以便在構(gòu)成大型溫度測(cè)控系統(tǒng)時(shí)在單線上連接多個(gè)DS18B20芯片,當(dāng)然一個(gè)I/O口能掛接多少片DS18B20,因單片機(jī)的不同而異。從DS18B20讀出或?qū)懭隓S18B20信息僅需要一根口線,其讀寫及溫度變換功率來(lái)源于數(shù)據(jù)總線,該總線本身也可以向所連接的DS18B20供電,不需要外部電源,同時(shí)DS18B20能提供9-12位溫度讀數(shù),出廠默認(rèn)是12位,無(wú)需任何外圍硬件即可方便地構(gòu)成溫度檢測(cè)系統(tǒng)。單片機(jī)具體實(shí)現(xiàn)的功能如下:1、連續(xù)測(cè)量溫室的溫度值,控制數(shù)碼管顯示溫室的實(shí)際溫度;2、控制鍵盤設(shè)定溫室的溫度值,并用數(shù)碼管顯示。設(shè)定范圍為室溫至125℃;實(shí)現(xiàn)溫室的恒溫控制,比方設(shè)定值為50℃,則應(yīng)使實(shí)際值與50℃相接近。第三章控制系統(tǒng)硬件設(shè)計(jì)基于上章的分析,我選擇了方案一,方案一的原理圖如圖3-1所示。本章主要介紹介紹控制系統(tǒng)中所使用到的各種元器件。圖3-1系統(tǒng)原理圖3.1單片機(jī)將運(yùn)算器、控制器、存儲(chǔ)器和各種輸入/輸出接口等計(jì)算機(jī)的主要部件集成在一塊芯片上,就能得到一個(gè)單芯片的微型計(jì)算機(jī)。它雖然只是一個(gè)芯片,但在組成和功能上已經(jīng)具有了計(jì)算機(jī)系統(tǒng)的特點(diǎn),因此稱之為單片微型計(jì)算機(jī)(Single-ChipMicrocomputer),簡(jiǎn)稱單片機(jī)。因?yàn)槠潴w積小、功耗低、價(jià)格低廉、抗干擾能力強(qiáng)且可靠性高,適合應(yīng)用于工業(yè)過(guò)程控制、智能儀器儀表和測(cè)控系統(tǒng)的前端裝置。本次畢業(yè)設(shè)計(jì)所采用的是AT89C51。以下簡(jiǎn)述本次畢業(yè)設(shè)計(jì)所用到的與其相關(guān)的知識(shí)。1、主要特性:〔1〕與MCS-51兼容〔2〕4K字節(jié)可編程閃爍存儲(chǔ)器,壽命為1000次寫/擦循環(huán),數(shù)據(jù)可保存時(shí)間為10年〔3〕全靜態(tài)工作:0Hz-24Hz〔4〕三級(jí)程序存儲(chǔ)器鎖定〔5〕128X8位內(nèi)部RAM〔6〕4個(gè)I/O口,共32根可編程口線〔7〕兩個(gè)16位定時(shí)器/計(jì)數(shù)器〔8〕5個(gè)中斷源〔9〕可編程串行通道〔10〕低功耗的閑置和掉電模式〔11〕片內(nèi)振蕩器和時(shí)鐘電路2、管腳說(shuō)明:AT89C51的管腳布置如圖3-2所示VCC:供電電壓。GND:接地。P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的低八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)展校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為低八位地址接收。P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1〞時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)展存取時(shí),P2口輸出地址的高八位。在給出地址“1〞時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)展讀寫時(shí),P2口輸出其特殊功能存放器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1〞后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流〔ILL〕這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下所示:P3口管腳備選功能P3.0RXD〔串行輸入口〕P3.1TXD〔串行輸出口〕P3.2/INT0〔外部中斷0〕P3.3/INT1〔外部中斷1〕P3.4T0〔記時(shí)器0外部輸入〕P3.5T1〔記時(shí)器1外部輸入〕P3.6/WR〔外部數(shù)據(jù)存儲(chǔ)器寫選通〕P3.7/RD〔外部數(shù)據(jù)存儲(chǔ)器讀選通〕P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的低8位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想制止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。微處理器在外部執(zhí)行狀態(tài)ALE制止,置位無(wú)效。PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指令期間,每個(gè)機(jī)器周期兩次PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的PSEN信號(hào)將不出現(xiàn)EA/VPP:當(dāng)EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器〔0000H-FFFFH〕,不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),EA將內(nèi)部鎖定為RESET;當(dāng)EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源〔VPP〕。圖3-2AT89C51管腳3.2數(shù)字溫度計(jì)DS18B20在傳統(tǒng)的模擬信號(hào)遠(yuǎn)距離傳送的測(cè)量系統(tǒng)中,需要很好的解決引線誤差補(bǔ)償問(wèn)題、多點(diǎn)切換誤差問(wèn)題和放大電路的零點(diǎn)誤差問(wèn)題等技術(shù)。另外考慮到一般的測(cè)量現(xiàn)場(chǎng)的電磁環(huán)境非常的惡劣,各種干擾信號(hào)較強(qiáng),模擬信號(hào)很容易受到干擾而產(chǎn)生測(cè)量誤差,影響測(cè)量精度。因此,在溫度測(cè)量系統(tǒng)中,采用抗干擾能力較強(qiáng)的新型數(shù)字溫度傳感器是解決這些問(wèn)題的最有效的方案。在實(shí)際的溫度測(cè)量過(guò)程中被廣泛應(yīng)用,同時(shí)也取得了良好的測(cè)量效果。3.2.1DS18S20數(shù)字溫度計(jì)的主要特性1、DS18S20的適應(yīng)電壓范圍更寬,其范圍為:3.0-5.5V,而且它能夠直接由數(shù)據(jù)線獲取電源(寄生電源),無(wú)需外部工作電源。2、DS18S20提供了9-12位攝氏溫度測(cè)量,具有非易失性、上下觸發(fā)門限用戶可編程的報(bào)警功能。3、DS18S20通過(guò)1-Wire總線與中央微處理器通信,僅需要單根數(shù)據(jù)線(或地線)。同時(shí),在使用過(guò)程中,它不需要任何的外圍的元件,全部的傳感元件和轉(zhuǎn)換電路集成在形狀如一只三極管的集成電路內(nèi)。4、DS18S20具有-55°C至+125°C的工作溫度范圍,在-10°C至+85°C溫度范圍內(nèi)精度為±0.5°C。5、每片DS18B20具有唯一的64位序列碼,這些序列碼允許多片DS18B20在同一條1-Wire總線上工作,因而,可方便地使用單個(gè)微處理器控制分布在大范圍內(nèi)的多片DS18S20器件。6、DS18S20的測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以“一線總線〞串行傳送給CPU,同時(shí)還可以傳送給CRC校驗(yàn)碼,它具有極強(qiáng)的抗干擾糾錯(cuò)的能力。7、DS18S20具有負(fù)載特性,當(dāng)電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀,但是不能正常的工作。3.34×4鍵盤用于計(jì)算機(jī)系統(tǒng)的鍵盤通常有兩類:一類是編碼鍵盤,即鍵盤上閉合鍵的識(shí)別由專用硬件來(lái)實(shí)現(xiàn):另一類是非編碼鍵盤,即鍵盤上閉合鍵的識(shí)別由軟件來(lái)完成。本次畢業(yè)設(shè)計(jì)采用的是4×4矩陣鍵盤,矩陣鍵盤由行線與列線組成,按鍵位于行列線的穿插點(diǎn)上。如圖3-3所示,一個(gè)4×4的行列構(gòu)造可以構(gòu)成一個(gè)含有16個(gè)按鍵的鍵盤,顯然,在按鍵數(shù)量較多時(shí),矩陣鍵盤較之獨(dú)立式鍵盤要節(jié)省很多的I/O口線。本次畢業(yè)設(shè)計(jì)中鍵盤的設(shè)計(jì)思路如下:對(duì)P1賦值使P1=0xff,然后令第一行即P1.0等于零,如果第一行有按鍵按下,則P1.4至P1.7的值會(huì)發(fā)生變化:如果第一個(gè)按鍵按下,則P1.4等于0;如果第二個(gè)按鍵按下,則P1.5等于0;如果第三個(gè)按鍵按下,則P1.6等于0;如果第四個(gè)按鍵按下,則P1.7等于0。按此規(guī)律,直至第四行掃描完成。圖3-3為鍵盤的原理圖在此系統(tǒng)中,鍵盤用于設(shè)定溫度值,只是CPU的工作內(nèi)容之一。CPU對(duì)鍵盤的響應(yīng)取決于鍵盤的工作方式,鍵盤的工作方式應(yīng)根據(jù)實(shí)際運(yùn)用系統(tǒng)中CPU的工作狀況而定,其選擇的原則是既要保證CPU能及時(shí)響應(yīng)按鍵操作,又不要過(guò)多占用CPU的工作時(shí)間。通常,鍵盤的工作方式有3種,即編程掃描、定時(shí)掃描和中斷掃描,本次畢業(yè)設(shè)計(jì)采用中斷掃描。采用編程掃描或定時(shí)掃描,無(wú)論是否有鍵按下,CPU都要定時(shí)掃描,而按鍵按下不是經(jīng)常發(fā)生的事件,這樣CPU對(duì)鍵盤會(huì)時(shí)常進(jìn)展空掃描。為進(jìn)一步提高CPU的工作效率,應(yīng)選用中斷掃描,其工作過(guò)程如下:當(dāng)無(wú)鍵按下,CPU處理自己的工作,當(dāng)鍵盤上有鍵按下時(shí)才產(chǎn)生一個(gè)外部中斷請(qǐng)求,CPU響應(yīng)鍵盤中斷請(qǐng)求,在中斷服務(wù)子程序中掃描并判別鍵盤上閉合的鍵號(hào),求出輸入的數(shù)值。CPU對(duì)鍵盤上閉合鍵的鍵號(hào)進(jìn)展確定,可以根據(jù)行線和列線的狀態(tài)確定;也可以預(yù)先在程序存儲(chǔ)器中放入鍵盤鍵值表,本次畢業(yè)設(shè)計(jì)采用前者。3.4數(shù)碼管在單片機(jī)應(yīng)用系統(tǒng)中通常使用的是七段LED,這種顯示器的構(gòu)造如圖2-1所示,共有8個(gè)發(fā)光二極管,其中7個(gè)發(fā)光二極管七段字形“8〞,一個(gè)發(fā)光二極管構(gòu)成小數(shù)點(diǎn)。本次畢業(yè)設(shè)計(jì)用的是四位共陰極數(shù)碼管,數(shù)碼管的發(fā)光二極管陰極接地,當(dāng)某個(gè)發(fā)光二極管的陽(yáng)極為高電平,即邏輯“1〞時(shí),發(fā)光二極管點(diǎn)亮。如圖3-4所示,P0口接一個(gè)5V的上拉電阻,P0.0-P0.7依次與數(shù)碼管的A-DP相接,構(gòu)成數(shù)碼管的段選,P2.0-P2.3依次與1-4相接,構(gòu)成數(shù)碼管的位選。圖3-4數(shù)碼管顯示原理圖LED顯示器工作原理:點(diǎn)亮顯示器有靜態(tài)和動(dòng)態(tài)兩種方法。所謂靜態(tài)顯示,就是當(dāng)顯示某一字符時(shí),相應(yīng)的發(fā)光二極管恒定的導(dǎo)通或截止,如上圖中七段顯示器的a、b、c、d、e、f導(dǎo)通,g截止,則顯示“0〞。這種顯示方式每一位顯示器都需要有一個(gè)8位輸出口控制,其優(yōu)點(diǎn)是顯示穩(wěn)定,無(wú)閃爍,缺點(diǎn)是占用口線多,適用于顯示位數(shù)較少的場(chǎng)合。當(dāng)顯示位數(shù)較多時(shí),一般采用動(dòng)態(tài)顯示方法。所謂動(dòng)態(tài)顯示就是一位一位的輪流點(diǎn)亮各位顯示器,對(duì)于每一位顯示器來(lái)說(shuō)每隔一段時(shí)間點(diǎn)亮一次。由于循環(huán)顯示的頻率高較高時(shí),利用人眼的暫留特性,看不出閃爍現(xiàn)象,顯示器的點(diǎn)亮既跟點(diǎn)亮?xí)r的導(dǎo)通電流有關(guān),也跟點(diǎn)亮?xí)r間和間隔時(shí)間有關(guān),調(diào)整電流和時(shí)間的參數(shù),可實(shí)現(xiàn)亮度較高較穩(wěn)定的顯示。假設(shè)顯示的位數(shù)不大于8位,則控制顯示器的公共電極只需一個(gè)I/O口控制各位顯示器,所顯示的字形也只需一個(gè)I/O口。LED數(shù)碼管分為共陽(yáng)極和共陰極,不同的共極方式,顯示同樣的字符,數(shù)碼管的段選是不同的,如下表1為七段共陰極LED字型碼。表1七段共陰極LED段字型碼顯示字符dpGfedcba共陰極0001111113FH10000011006H2010110115BH3010011114FH40110011066H5011011016DH6011111017DH70000011107H8011111117FH9011011116FH3.5光電耦合器光電隔離器件從大的方面來(lái)看,可粗略的分為光耦合器及應(yīng)用光耦合器或其他電子器件制成或應(yīng)用光耦合器制成的器件。光耦合器因可實(shí)現(xiàn)輸入與輸出電位上的嚴(yán)格隔離,所以在電力電子設(shè)備中晶閘管的門極控制與全控型器件的驅(qū)動(dòng)及信號(hào)傳輸實(shí)現(xiàn)輸入輸出的隔離等方面都得到了廣泛的應(yīng)用,光電耦合器雖種類較多,內(nèi)部構(gòu)造有所不同,其速度也有差異,但其基本特性和參數(shù)定義卻有共同點(diǎn)。在光電耦合器內(nèi)部,由于發(fā)光二極管和光敏管之間的耦合電容很小,所以共模輸入電壓通過(guò)極間耦合電容對(duì)電流Ic的影響很小,因而共模抑制比很高。光電耦合器中光敏管的集電極電流與發(fā)光二極管的注入電流之比稱之為電流傳輸比。對(duì)于微小變量輸出電流與注入電流之比叫微變電流傳輸。對(duì)于線性度對(duì)比好的光耦合器,以上兩者近似相等。光耦合器的發(fā)光二極管和光敏晶體管之間額隔離電阻〔絕緣電阻〕較大,隔離電壓為500~4000V,有的可達(dá)10KV,隔離電容小于2pF。光耦合器與晶體管一樣,可以線性工作,也可開(kāi)關(guān)狀態(tài)工作。在電源的驅(qū)動(dòng)電路中,光耦合器一般用來(lái)傳送脈沖信號(hào),所以光耦合器工作在開(kāi)關(guān)狀態(tài)。在高頻工作時(shí),應(yīng)考慮光耦合器的響應(yīng)時(shí)間。發(fā)光二極管電阻Ri的大小影響光耦合器的響應(yīng)時(shí)間,Ri越小,光耦合器響應(yīng)的時(shí)間越短,所以,在實(shí)際應(yīng)用中,在光耦合器允許的集電極電流范圍內(nèi),盡量減小負(fù)載電阻,以提高光耦合器的響應(yīng)速度。MOC3041是直流輸入雙向晶閘管輸出的光耦合器。該器件有輸入、輸出兩局部組成,它的輸入端有兩個(gè)引腳,輸入極是一個(gè)砷化鎵紅外發(fā)光二極管,工作時(shí)該二極管發(fā)出足夠的紅外光,觸發(fā)輸出局部,它的輸出端也有兩個(gè)引腳組成,輸出極為具有過(guò)零觸發(fā)的光控雙向晶閘管,當(dāng)紅外發(fā)光二極管中通過(guò)5~15mA的正向電流時(shí),發(fā)出紅外光,輸出極的雙向晶閘管的光敏基極受到紅外光的照射,而觸發(fā)雙向晶閘管,使輸出端電壓接近0時(shí)導(dǎo)通,即輸入與輸出端有光耦合,器件導(dǎo)通后,其輸出端電壓降至很低,當(dāng)電流小于雙向晶閘管維持電流100μA時(shí),雙向晶閘管關(guān)斷。如圖3-5所示,單片機(jī)的P3.0通過(guò)7406反相器接在MOC3041的陰極〔管腳2〕,當(dāng)P3.0口置1時(shí),MOC3041的管腳2被置零,又5/330=0.015A,即MOC的觸發(fā)電流小于但約等于15Am,MOC3041的紅外發(fā)光二級(jí)管發(fā)出足夠的紅光,觸發(fā)輸出局部。當(dāng)P3.0置0時(shí),MOC3041的管腳2被置1,處于高電平,此時(shí),MOC3041的紅外發(fā)光二極管處于截至狀態(tài),輸出局部不被觸發(fā)。MOC3041相關(guān)參數(shù)如下:〔1〕、隔離電壓:7500Vac〔2〕、輸出類型:過(guò)零檢測(cè)〔3〕、輸入電流:60mA〔4〕、輸出電壓:400V〔5〕、針腳數(shù):6〔7〕、光電耦合器類型:三端雙向可控驅(qū)動(dòng)器〔8〕、關(guān)態(tài)電壓:400V〔9〕、功耗:250mW〔10〕、工作溫度范圍:-40°C至+85°C〔11〕、正向電壓Vf最大:1.5V〔12〕、電壓,Vf典型值:1.25V〔13〕、觸發(fā)電流,If最大:15mA3.6雙向晶閘管在溫度控制系統(tǒng)中,主電路一般使用晶閘管組成開(kāi)關(guān)電路,通過(guò)控制晶閘管的導(dǎo)通時(shí)間來(lái)控制加熱時(shí)間,因此本系統(tǒng)中,主電路采用了雙向晶閘管,在交流電壓的正半周期使其沿某方向?qū)ǎ谪?fù)半周期則逆向?qū)?。主要參?shù)的選?。贺?fù)載為220V,120W的PTC加熱器負(fù)載電流有效值為負(fù)載電流峰值為×因?yàn)楫?dāng)雙向晶閘管全開(kāi)時(shí),單方向的電流為交流半個(gè)周期的電流,所以而流過(guò)雙向晶閘管的電流的平均值晶閘管額定電壓的選擇:晶閘管的額定電壓應(yīng)為正常工作峰值電壓的2-3倍?!痢了匀=600V。晶閘管額定電流的選擇:晶閘管通態(tài)平均電流為實(shí)際正常平均值的1.5-2.0倍。=2.0×=2.0×0.49=0.98A所以晶閘管的額定電流可取8A。根據(jù)計(jì)算的數(shù)據(jù)選擇雙向晶閘管的型號(hào)為BTA08-600C。主要參數(shù)為:通態(tài)電流IT(RMS)=8A浪涌電流ITSM=80A正向耐壓VDRM>600V反向耐壓VRRM>600V觸發(fā)電流IGT<25mA通態(tài)壓降VTM<1.55V晶閘管的過(guò)流,過(guò)壓保護(hù)采用了一般的阻容保護(hù)電路,其參數(shù)為:=50×0.1×〔×220〕×=0.0484w圖3-5光電耦合器控制可控硅原理圖3.7PTC加熱器加熱裝置是對(duì)溫室進(jìn)展加熱,使溫度穩(wěn)定在設(shè)定的溫度值。本系統(tǒng)采用PTC加熱器進(jìn)展加熱。PTC是PositiveTemperatureCoefficient的縮寫,意思是正的溫度系數(shù),泛指正溫度系數(shù)很大的半導(dǎo)體材料或元器件。通常我們提到的PTC是指正溫度系數(shù)熱敏電阻,簡(jiǎn)稱PTC熱敏電阻。圖3-6是其電阻隨溫度變化的曲線,PTC熱敏電阻是一種典型具有溫度敏感性的半導(dǎo)體電阻,超過(guò)一定的溫度(居里溫度)時(shí),它的電阻值隨著溫度的升高呈階躍性的增高。陶瓷材料通常用作高電阻的優(yōu)良絕緣體,而陶瓷PTC熱敏電阻是以鈦酸鋇為基,摻雜其它的多晶陶瓷材料制造的,具有較低的電阻及半導(dǎo)特性。通過(guò)有目的的摻雜一種化學(xué)價(jià)較高的材料作為晶體的點(diǎn)陣元來(lái)到達(dá)的:在晶格中鋇離子或鈦酸鹽離子的一局部被較高價(jià)的離子所替代,因而得到了一定數(shù)量產(chǎn)生導(dǎo)電性的自由電子。對(duì)于PTC熱敏電阻效應(yīng),也就是電阻值階躍增高的原因,在于材料組織是由許多小的微晶構(gòu)成的,在晶粒的界面上,即所謂的晶粒邊界(晶界)上形成勢(shì)壘,阻礙電子越界進(jìn)入到相鄰區(qū)域中去,因此而產(chǎn)生高的電阻,這種效應(yīng)在溫度低時(shí)被抵消:在晶界上高的介電常數(shù)和自發(fā)的極化強(qiáng)度在低溫時(shí)阻礙了勢(shì)壘的形成并使電子可以自由地流動(dòng)。而這種效應(yīng)在高溫時(shí),介電常數(shù)和極化強(qiáng)度大幅度地降低,導(dǎo)致勢(shì)壘及電阻大幅度地增高,呈現(xiàn)出強(qiáng)烈的PTC效應(yīng)。圖3-6PTC電阻溫度曲線PTC型陶瓷加熱器采用PTC陶瓷發(fā)熱組件與波紋鋁條經(jīng)高溫膠粘組成。該類型PTC加熱器有熱電阻小、換熱效率高的優(yōu)點(diǎn),是一種自動(dòng)恒溫、省電的電加熱器。它的顯著特點(diǎn)有加熱器本體的設(shè)計(jì)加熱溫度在200攝氏度以下的多檔次,任何情況下本體不發(fā)紅且有保護(hù)隔離層,任何應(yīng)用場(chǎng)合均不需要石棉等隔熱材料進(jìn)展降溫處理,可放心使用不存在對(duì)人體燙傷和引發(fā)火災(zāi)的問(wèn)題。對(duì)比電熱管和電阻絲加熱產(chǎn)品,本產(chǎn)品是靠材料自身的特性,根據(jù)環(huán)境溫度的改變來(lái)調(diào)節(jié)自身的熱功率輸出,所以它能將加熱器的電能消耗優(yōu)化控制在最小,同時(shí)高發(fā)熱效率的材料也大幅提升了電能的利用效率。本次畢業(yè)設(shè)計(jì)我所選用的PTC加熱器的主要參數(shù)有電壓:220V,功率120w,長(zhǎng)40mm,寬40mm,厚7mm。屬于小功率類型,用其加熱時(shí)恒溫發(fā)熱、無(wú)明火、熱轉(zhuǎn)換率高、受電源電壓影響小。3.8反相器7406在本系統(tǒng)中,兩次運(yùn)用了7406反向器,一次是在單片機(jī)的P3.0口與MOC3041的管腳2之間,作用是使P3.0被置1時(shí),MOC3041的管腳2被置0,且與真實(shí)的0更接近,MOC3041的光敏二級(jí)管導(dǎo)通;當(dāng)P3.0被置0時(shí),MOC3041的管腳被置1,且更接近5V,使MOC3041的光敏二級(jí)管真正能夠處于截至狀態(tài)。另一處是與蜂鳴器的陰極相接,作用和上述的類似。我所采用的型號(hào)是SN7406N,14管腳,6路獨(dú)立反向驅(qū)動(dòng),,VCC的范圍為4.75-5.25V。圖3-7反相器7406管腳3.9雙四輸入與門74LS2174LS21是雙輸入四與門,Y=ABCD,我所使用的型號(hào)是SN74LS21N,14管腳,VCC的范圍為4.75-5.25V,推薦使用5V。在此系統(tǒng)中,按鍵未按下時(shí),P3.2始終為高電平,當(dāng)有鍵按下時(shí),通過(guò)74LS21的作用,輸出低電平,使P3.2的高電平變?yōu)榈碗娖剑|發(fā)外部中斷0,在中斷程序里掃描鍵盤,并計(jì)算輸入的溫度的設(shè)定值。使用中斷的好處是使CPU在有鍵按下時(shí)才掃描鍵,提高了CPU的效率。圖3-8四輸入與門74LS21管腳3.9蜂鳴器本次畢業(yè)設(shè)計(jì)的警報(bào)局部是通過(guò)一個(gè)有源的3V蜂鳴器來(lái)實(shí)現(xiàn)的,當(dāng)實(shí)際溫度超上限或低下限時(shí)進(jìn)展不安全報(bào)警,其長(zhǎng)腳為正極,短腳為負(fù)極,正極與5V電壓相接,負(fù)極通過(guò)一個(gè)7406與P3.1相接。第四章控制系統(tǒng)軟件設(shè)計(jì)為了實(shí)現(xiàn)系統(tǒng)的溫度檢測(cè)和控制,并能夠?qū)崟r(shí)顯示,整個(gè)系統(tǒng)由如下幾個(gè)主要模塊組成,主程序模塊、溫度采集模塊、溫度設(shè)定模塊、溫度顯示模塊,報(bào)警模塊,溫度控制模塊等幾個(gè)模塊組成。本章將對(duì)如上所表達(dá)的幾個(gè)模塊分別進(jìn)展介紹,并闡述程序的編寫思路和所實(shí)現(xiàn)的功能。4.1主程序模塊設(shè)計(jì)主程序的主要設(shè)計(jì)思想是圍繞題目基本要求而展開(kāi)的,系統(tǒng)按鍵設(shè)定溫度產(chǎn)生外部中斷0,轉(zhuǎn)入中斷服務(wù)程序,在中斷服務(wù)程序中獲取設(shè)定的溫度值,之后在主程序進(jìn)展數(shù)據(jù)存儲(chǔ)、調(diào)用數(shù)碼管顯示、報(bào)警控制、溫度控制等子程序模塊。所以主程序主要是對(duì)系統(tǒng)的初始化和調(diào)用各子程序模塊。4.1.1主程序流程圖圖4-1為主程序流程圖圖4-1主程序流程圖4.2溫度采集模塊程序設(shè)計(jì)溫度的采集是數(shù)字溫度計(jì)DS18B20通過(guò)單片機(jī)進(jìn)展嚴(yán)格的時(shí)序控制來(lái)完成的,在空間不是很大的范圍內(nèi),采用一片DS18B20進(jìn)展單點(diǎn)測(cè)溫即可實(shí)現(xiàn)對(duì)溫度的較為準(zhǔn)確的控制。4.2.1DS18B20的時(shí)序DS18B20的時(shí)序可分為三個(gè)局部:初始化時(shí)序、寫時(shí)序和讀時(shí)序。只有遵守嚴(yán)格的時(shí)序,DS18B20才能進(jìn)展溫度的采集。4.2.2.1初始化時(shí)序DS18B20的所有通信都是由復(fù)位脈沖組成的初始化序列開(kāi)場(chǎng)。該初始化序列由主機(jī)發(fā)出,后跟由DS18B20發(fā)出的存在脈沖〔presencepulse〕。圖4-2闡述了這一點(diǎn),當(dāng)發(fā)出應(yīng)答復(fù)位脈沖的存在脈沖后,DS18B20通知主機(jī)它在總線上并且準(zhǔn)備好操作了。在初始化步驟中,總線上的主機(jī)通過(guò)拉低單總線至少480μs來(lái)產(chǎn)生復(fù)位脈沖。然后總線主機(jī)釋放總線并進(jìn)入接收模式。當(dāng)總線釋放后,5kΩ的上拉電阻把單總線上的低電平拉回高電平。當(dāng)DS18B20檢測(cè)到上升沿后等待15到60μs,然后以拉低總線60-240μS的方式發(fā)出存在脈沖,主機(jī)將總線拉低最短480μS,之后釋放總線。由于5kΩ上拉電阻的作用,總線恢復(fù)到高電平。至此,初始化和存在時(shí)序完畢。4.2.2.2寫時(shí)序如圖4-3所示,所有的寫時(shí)隙必須至少有60μs的持續(xù)時(shí)間。相鄰兩個(gè)寫時(shí)隙必須要有最少1μs的恢復(fù)時(shí)間。所有的寫時(shí)隙〔寫0和寫1〕都由拉低總線產(chǎn)生。為產(chǎn)生寫1時(shí)隙,在拉低總線后主機(jī)必須在15μs內(nèi)釋放總線〔拉低的電平要持續(xù)至少1us〕。由于上拉電阻的作用,總線電平恢復(fù)為高電平,直到完成寫時(shí)隙。為產(chǎn)生寫0時(shí)隙,在拉低總線后主機(jī)持續(xù)拉低總線即可,直到寫時(shí)隙完成后釋放總線〔持續(xù)時(shí)間60-120μs〕。寫時(shí)隙產(chǎn)生后,DS18B20會(huì)在產(chǎn)生后的15到60μs的時(shí)間內(nèi)采樣總線,以此來(lái)確定寫0還是寫1。4.2.2.3讀時(shí)序如圖4-4所示,DS18B20只有在主機(jī)發(fā)出讀時(shí)隙時(shí)才能發(fā)送數(shù)據(jù)到主機(jī)。因此,主機(jī)必須在BE〔讀存儲(chǔ)器〕命令,B4〔讀電源〕命令后立即產(chǎn)生讀時(shí)隙以使DS18B20提供相應(yīng)的數(shù)據(jù)。另外,在44〔溫度轉(zhuǎn)換〕命令,B8〔recall〕命令后也要產(chǎn)生讀時(shí)隙。所有的讀時(shí)隙必須至少有60μs的持續(xù)時(shí)間。相鄰兩個(gè)讀時(shí)隙必須要有最少1μs的恢復(fù)時(shí)間。所有的讀時(shí)隙都由拉低總線,持續(xù)至少1μs后再釋放總線〔由于上拉電阻的作用,總線恢復(fù)為高電平〕產(chǎn)生。DS18B20輸出的數(shù)據(jù)在下降沿產(chǎn)生1后5μs內(nèi)有效。因此,釋放總線和主機(jī)采樣總線等動(dòng)作要在15μs內(nèi)完成。圖4-2DS18B20復(fù)位時(shí)序圖圖4-3DS18B20寫時(shí)序圖圖4-4DS18B20讀時(shí)序圖4.2.3讀溫度子程序流程圖讀溫度子程序是在單片機(jī)的控制下,形成嚴(yán)格的時(shí)序,完成溫度的轉(zhuǎn)換并作數(shù)據(jù)的相應(yīng)處理。溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開(kāi)場(chǎng)命令,本次畢業(yè)設(shè)計(jì)采用12位分辨率,轉(zhuǎn)換所需的時(shí)間約為750ms。因?yàn)槭菃吸c(diǎn)測(cè)溫,不需要CRC校驗(yàn)。圖4-5為讀溫度子程序流程圖圖4-5讀溫度子程序流程圖4.3溫度設(shè)定模塊程序設(shè)計(jì)溫度設(shè)定模塊是用來(lái)設(shè)定溫度的,通過(guò)4X4鍵盤輸入想要控制的溫度值。本次畢業(yè)設(shè)計(jì)通過(guò)中斷進(jìn)展掃描。4.3.1中斷服務(wù)子程序系統(tǒng)中中斷采用的是外部中斷0,外部中斷0的初始化子程序在主程序開(kāi)場(chǎng)時(shí)即被調(diào)用,當(dāng)鍵盤上有鍵按下時(shí),即產(chǎn)生一個(gè)外部中斷0,執(zhí)行中斷子程序,獲取輸入的設(shè)定值,之后中斷回。圖4-6為中斷服務(wù)子程序的流程圖圖4-6中斷服務(wù)子程序流程圖4.3.2鍵盤掃描子程序鍵盤的掃描是中斷掃描,假設(shè)有鍵按下,則從第一行開(kāi)場(chǎng)掃描,直到確定按鍵的行與列,確定鍵值,并返回鍵值。圖4-7為鍵盤掃描子程序流程圖圖4-7鍵盤掃描子程序流程圖4.4溫度顯示模塊設(shè)計(jì)溫度顯示模塊要顯示的溫度有設(shè)定值與實(shí)際值,通過(guò)P3.5的電平的上下來(lái)控制,而P3.5電平的上下由與其相連的開(kāi)關(guān)的通斷來(lái)控制。4.4.1設(shè)定值顯示子程序設(shè)定的數(shù)值范圍為自然狀態(tài)下室溫-125℃且為整數(shù),所以四位七段的數(shù)碼管的左數(shù)第一位的位選信號(hào)始終被置零,P0口進(jìn)展段選,P2口的低四位依次進(jìn)展千、百、十、個(gè)位的數(shù)碼管的位選。圖4-8為設(shè)定值顯示子程序的流程圖圖4-8設(shè)定值顯示子程序4.4.2實(shí)際值顯示子程序?qū)嶋H值是一個(gè)溫室自然狀態(tài)下的室溫-125℃之間的數(shù),其帶有一位小數(shù),四位八段的數(shù)碼管從左至右依次是百位、十位、個(gè)位、十分位。數(shù)碼管的段選口還是P0口,P2口的低四位依次是百位、十位、各位、十分位數(shù)碼管的位選口線。圖4-9為實(shí)際值顯示子程序的流程圖。圖4-9實(shí)際值顯示子程序流程圖4.5溫度控制模塊設(shè)計(jì)溫度控制模塊簡(jiǎn)單的說(shuō)就是要實(shí)現(xiàn)溫度的控制,實(shí)際溫度高于設(shè)定值,降溫;實(shí)際溫度低于設(shè)定值,加熱。系統(tǒng)中加熱的裝置為PTC加熱器。4.5.1雙位控制算法設(shè)計(jì)溫室環(huán)境是一個(gè)復(fù)雜分布式參數(shù)系統(tǒng),由于其本身的復(fù)雜性和外界大氣候較強(qiáng)的影響,要使自控系統(tǒng)將其控制到一定的指標(biāo)上存在一定的難度,但由于溫室內(nèi)作物對(duì)于各種參數(shù)變化不是很敏感,因此,沒(méi)有必要將各種參數(shù)進(jìn)展準(zhǔn)確控制,只要控制在一段適宜的范圍內(nèi)即可,又考慮到本智能終端的通用性,本次畢業(yè)設(shè)計(jì)采用實(shí)現(xiàn)起來(lái)對(duì)比簡(jiǎn)單的雙位控制算法。雙位控制又稱為繼電器接觸控制,理想的雙位控制規(guī)律的數(shù)學(xué)表達(dá)式為:雙位控制規(guī)律是測(cè)量值大于(或小于)給定值時(shí),控制器的輸出為最大(或最小)值,即系統(tǒng)只有兩個(gè)輸出值,在此系統(tǒng)中,P3.0就相當(dāng)于一個(gè)雙位控制器。其只有“1〞和“0〞這兩種狀態(tài)。執(zhí)行機(jī)構(gòu)也只有“開(kāi)"和“關(guān)"兩個(gè)極限工作位置。給定溫度的設(shè)定值,當(dāng)被控溫室的溫度低于設(shè)定值時(shí),P3.0置1,PTC加熱器工作,而當(dāng)溫室內(nèi)的溫度高于設(shè)定值時(shí),P3.0置0,關(guān)閉PTC加熱器,從而實(shí)現(xiàn)溫度的控制。雙位控制對(duì)象特性好、負(fù)荷變化較小、過(guò)程滯后小、允許被控制參數(shù)在一定的范圍內(nèi)波動(dòng),可以適用于溫室系統(tǒng)的控制。4.5.2溫度控制子程序流程圖圖4-10為溫度控制子程序流程圖圖4-10溫度控制子程序流程圖4.6報(bào)警模塊程序設(shè)計(jì)報(bào)警模塊的工作很簡(jiǎn)單,就是判斷實(shí)際溫度超上限或低下限報(bào)警。圖4-11為報(bào)警控制子程序流程圖圖4-11報(bào)警控制子程序流程圖第五章結(jié)果分析5.1PROTEUS仿真總體電路原理圖設(shè)計(jì)好后,在KEIL3里用C語(yǔ)言編出相應(yīng)的程序,程序調(diào)試在沒(méi)有問(wèn)題后,接著就對(duì)程序進(jìn)展仿真,總體思路是:由局部到整體。首先進(jìn)展鍵盤設(shè)定溫度值并用數(shù)碼管顯示的仿真,再進(jìn)展DS18B20采集溫度并用數(shù)碼管顯示的仿真,這兩個(gè)關(guān)鍵局部完成后,就進(jìn)展總體程序的仿真。5.1.1鍵盤設(shè)定溫度仿真將4×4鍵盤的掃描程序編好后,在PROTEUS里進(jìn)展仿真,發(fā)現(xiàn)當(dāng)我按下某個(gè)按鍵時(shí),數(shù)碼管的百位,十位,各位顯示的都是那個(gè)鍵的值,比方我按下3的時(shí)候,這三個(gè)位的數(shù)碼管都是3,思考了許久,我初步判斷原因可能是是按鍵按下后,因?yàn)殒I盤一直處于按下的狀態(tài),而按鍵掃描程序掃描按鍵的速度非???,以至于我按下一次,鍵盤掃描了好些次,如此想后,我就設(shè)定一個(gè)標(biāo)志位,按鍵按下置1,鍵抬起置0,但效果依舊不佳;最后,我在掃描每行鍵的最后都加上一個(gè)判斷按鍵是否釋放的程序,如釋放,再讀取鍵值,如此之后,就能正確輸入按鍵的值,比方,我要輸入123,就只需要依次按下1、2、3。如圖5-1所示,鍵盤設(shè)定初值32℃并用數(shù)碼管顯示圖5-1鍵盤設(shè)定溫度32℃仿真5.1.2溫度采集仿真根據(jù)DS18B20的時(shí)序圖編好程序并在KEIL3里檢查好語(yǔ)法沒(méi)有錯(cuò)誤后,鏈接到PROTEUS里進(jìn)展仿真。開(kāi)場(chǎng)在PROTEUS里設(shè)定改變溫度的步長(zhǎng)為1℃,在軟件里也就相應(yīng)的將采集到的溫度設(shè)置為整數(shù),上下限與這個(gè)整數(shù)相差為一度。這樣會(huì)使誤差加大,之后將仿真的步長(zhǎng)改為0.1℃,程序也做出相應(yīng)的的修改,使實(shí)際溫度保存一位小數(shù)。仿真能夠獲取實(shí)際溫度,這個(gè)實(shí)際溫度可從DS18B20的仿真模型中設(shè)置。如圖5-2所示,PROTEUS仿真溫度采集,獲取當(dāng)前的環(huán)境溫度為28.7℃。圖5-2溫度采集仿真5.1.3整體仿真因?yàn)閷?shí)際溫度保存一位小數(shù),在仿真的時(shí)候,就出現(xiàn)了一個(gè)錯(cuò)誤,比方,我設(shè)定的溫度為28攝氏度時(shí),在正確的情況下,蜂鳴器會(huì)在實(shí)際溫度小于27℃和大于29℃報(bào)警,但是仿真出來(lái)的結(jié)果是小于27℃時(shí),蜂鳴器報(bào)警,但是當(dāng)溫度大于29℃時(shí)蜂鳴器并未報(bào)警,直至實(shí)際大于30℃時(shí)蜂鳴器才會(huì)報(bào)警。仔細(xì)檢查程序后,我發(fā)現(xiàn)在讀溫度子程序模塊中,我讀取的是實(shí)際溫度的10倍并取整,然后在我將其與實(shí)際值對(duì)比之前,又讓其除以10,所得值賦給一個(gè)整形數(shù),這樣就出現(xiàn)了這樣種情況,比方,我最初測(cè)得的實(shí)際值是27.8℃,10倍變?yōu)?78℃,這是為了方便顯示,為了判斷是否報(bào)警,我要將其與設(shè)定值對(duì)比,又設(shè)定值是個(gè)整形數(shù),因此,將此數(shù)縮小10倍,賦給一個(gè)整形數(shù)后實(shí)際溫度就變?yōu)?7℃。如此實(shí)際溫度就當(dāng)于自減了1℃,故要到實(shí)際值為30℃時(shí)才能報(bào)警。實(shí)際溫度比設(shè)定小1℃能報(bào)警,又是因?yàn)?,只有?shí)際值比設(shè)定值小1℃才會(huì)報(bào)警,實(shí)際溫度等于設(shè)定的下限并不會(huì)報(bào)警,因此,〔27.0-27.9〕℃賦值給整形數(shù)始終是27℃,只有當(dāng)實(shí)際溫度小于27℃時(shí),實(shí)際值才會(huì)小于下限〔設(shè)定值28-1〕,蜂鳴器才會(huì)警報(bào)。找出問(wèn)題的所在后,我將設(shè)定值擴(kuò)大10倍,再與實(shí)際值的10倍對(duì)比,這樣就很好的解決了這個(gè)問(wèn)題。仿真總體完畢。由上可知,在仿真調(diào)試過(guò)程中,我遇到了很大的麻煩。在仿真的過(guò)程中,有時(shí)會(huì)感覺(jué)程序和硬件都沒(méi)有一點(diǎn)問(wèn)題,但是就是不能實(shí)現(xiàn)系統(tǒng)所要實(shí)現(xiàn)的功能,因?yàn)樗辉试S軟件和硬件有一點(diǎn)問(wèn)題,哪怕是細(xì)小的一點(diǎn)問(wèn)題都不允許。舉一個(gè)最簡(jiǎn)單的例子,就拿數(shù)碼管顯示程序的調(diào)試仿真來(lái)說(shuō),PROTEUS里單片機(jī)的I/O口可以直接驅(qū)動(dòng)動(dòng)態(tài)顯示的數(shù)碼管,但在實(shí)際中卻是不可以的。因?yàn)樵赑ROTEUS中加熱裝置和實(shí)際出入大,所以在PROTEUS里進(jìn)展加熱仿真就是成功也沒(méi)有太大的實(shí)際意義,所以我只進(jìn)展了系統(tǒng)中兩個(gè)重要局部的軟件仿真,以及這兩局部合起來(lái)的一個(gè)總體仿真。5.2實(shí)際運(yùn)行結(jié)果仿真結(jié)果符合預(yù)期后,我就著手實(shí)物的制作,將所用到的元件焊接在電路板后,就開(kāi)場(chǎng)測(cè)試系統(tǒng)性能。第一次因?yàn)楹附蛹夹g(shù)不過(guò)關(guān),數(shù)碼管顯示時(shí)好時(shí)壞,為了求得個(gè)良好的結(jié)果,我又重新將元件焊接在另一塊板子上,積累了上次焊接的經(jīng)歷后,第二次的焊接效果比之前好了很多,數(shù)碼管顯示正常。由于是動(dòng)態(tài)顯示,數(shù)碼管的亮度不是很高。加熱裝置我選擇的是PTC加熱器,其功率為120W,很小,只能在對(duì)比小的空間內(nèi)才能進(jìn)展溫度控制。在實(shí)際的試驗(yàn)中,DS18B20在以此加熱器為圓心,以半徑20CM為圓,高度不超過(guò)15CM圓柱范圍內(nèi),控制效果良好,誤差較小。以下簡(jiǎn)述實(shí)際試驗(yàn)的一些情況。首先,給單片機(jī)上電后,設(shè)定溫度為29℃,這個(gè)值就是我的期望值了,與此同時(shí),軟件中相應(yīng)的把系統(tǒng)能容忍的溫度上下限分別定為30℃和28℃,按下溫度的切換鍵,顯示當(dāng)前溫度為27.6℃,低于溫控系統(tǒng)要求的下限,產(chǎn)生報(bào)警。因?yàn)閷?shí)際溫度小于設(shè)定溫度,PTC加熱,一小段時(shí)間后,警報(bào)解除,說(shuō)明溫度已進(jìn)入溫度控制系統(tǒng)的上下限之間,又過(guò)了一段時(shí)間〔時(shí)間長(zhǎng)短由DS18B20離PTC加熱器的距離而變,但當(dāng)系統(tǒng)穩(wěn)定后,時(shí)間的差異性變小〕,實(shí)際溫度到達(dá)29℃,PTC關(guān)斷,其余溫使溫度繼續(xù)上升,但沒(méi)有觸發(fā)警報(bào),一段時(shí)間后,溫度又降到29度,比29℃稍低一點(diǎn),PTC就會(huì)加熱,因?yàn)镻TC的加熱很快,冷卻較慢,實(shí)際溫度在PTC關(guān)斷后,下降超過(guò)設(shè)定值的幅度很小,即使再小,PTC也會(huì)進(jìn)展加熱,如此循環(huán),經(jīng)過(guò)屢次長(zhǎng)時(shí)間的試驗(yàn),實(shí)際溫度28.8℃<T<29.8℃,誤差為1℃左右,又由于DS18B20的誤差為±0.5℃,累計(jì)的最大誤差為2℃,這個(gè)誤差在本系統(tǒng)中是可以容忍的。故本次畢業(yè)設(shè)計(jì)總體來(lái)說(shuō)是成功的。圖5-3,為本次畢業(yè)設(shè)計(jì)的實(shí)物顯示設(shè)定溫度圖5-4,為本次畢業(yè)設(shè)計(jì)的實(shí)物顯示實(shí)際溫度圖5-3系統(tǒng)運(yùn)行顯示設(shè)定溫度圖5-4系統(tǒng)運(yùn)行顯示實(shí)際溫度第六章總結(jié)與展望6.1總結(jié)無(wú)論仿真還是在實(shí)際試驗(yàn)中,本系統(tǒng)都到達(dá)了預(yù)期的要求。本次畢業(yè)設(shè)計(jì)主要完成的工作有:硬件電路圖設(shè)計(jì)、軟件編程與仿真調(diào)試、硬件制作等。以下是具體的總結(jié):(1)以AT89C51單片機(jī)為核心進(jìn)展系統(tǒng)設(shè)計(jì),輸入通道采用DS18B20芯片,完成溫度的采集以及輸出數(shù)字量;輸出通道采用光電耦合器控制雙向可控硅作為開(kāi)關(guān)管理PTC加熱器的通斷。通過(guò)雙位控制調(diào)節(jié)可實(shí)現(xiàn)對(duì)溫度的自動(dòng)控制。由于輸入端與輸出端有光電隔離,能夠有效地抑制干擾;(2)在溫度控制系統(tǒng)中采用雙位控制算法,將單片機(jī)的某個(gè)口線作為雙位控制器,通過(guò)置“0〞或置“1〞控制輸出通道的通斷。(3)采用C51進(jìn)展編程,通用性強(qiáng)。在原理圖設(shè)計(jì)過(guò)程中使用了PROTEUS仿真,這些都節(jié)約了設(shè)計(jì)的時(shí)間,而且便于編寫、調(diào)試、修改和增刪,系統(tǒng)軟件的編制采用了模塊化的設(shè)計(jì)方法。〔4〕制作硬件的時(shí)候采用雙面的焊接板,輔于焊錫膏,焊接可靠,在完成時(shí),用萬(wàn)用表對(duì)焊接件進(jìn)展“虛焊〞與短路測(cè)試。減少硬件調(diào)試不成功尋找因素的麻煩。〔5〕根據(jù)溫控空間的大小選擇加熱裝置功率的大小?!?〕使用溫度計(jì)對(duì)18B20所測(cè)得的溫度進(jìn)展校正,可使結(jié)果更接近真實(shí)情況。6.2展望本系統(tǒng)使用的AT89C51屬于與C51系列兼容的8位單片機(jī),這種單片機(jī)共4個(gè)I/O口,32根口線,資源較少,運(yùn)用于較復(fù)雜的系統(tǒng)中需要擴(kuò)展,而且擴(kuò)展的空間也極為有限。隨著工業(yè)的開(kāi)展,對(duì)象的復(fù)雜程度不斷加深,雙位控制的缺陷也逐漸暴露出來(lái),而另一方面隨著智能控制如模糊控制、神經(jīng)網(wǎng)絡(luò)控制等先進(jìn)控制技術(shù)的迅速開(kāi)展,它們與常規(guī)PID控制相結(jié)合,揚(yáng)長(zhǎng)避短,發(fā)揮各自的優(yōu)勢(shì),形成所謂的智能PID控制。結(jié)合上面的論述,今后還需要做進(jìn)一步的研究和解決的問(wèn)題有:(1)硬件方面,采用性能更優(yōu)良的單片機(jī)對(duì)系統(tǒng)的硬件進(jìn)展重新設(shè)計(jì);(2)控制算法方面,如要用于準(zhǔn)確控制,雙位控制不是好的選擇,嘗試采用現(xiàn)在得到快速開(kāi)展的智能控制方法,如模糊控制、神經(jīng)網(wǎng)絡(luò)控制和模糊PID控制等等;〔3〕在按鍵方面,采用4×4鍵盤,占用了I/O口的十二根口線,對(duì)于資源本身就少的89C51單片機(jī)來(lái)說(shuō),不是很經(jīng)濟(jì),在復(fù)雜的系統(tǒng)中,按鍵應(yīng)盡可能少占用I/O口。附錄程序#include<reg52.h>#include<intrins.h>typedefunsignedcharuchar;typedefunsignedintuint;#defineuintunsignedint#defineucharunsignedcharsbitDATA=P3^7;//DS18B20接入口sbitP10=P1^0;sbitP11=P1^1;sbitP12=P1^2;sbitP13=P1^3;sbitP30=P3^0;sbitbeep=P3^1;sbitP35=P3^5;uintupper,lower,count=0,settemp=0;ucharbai,shi,ge,fen;uchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};/*延時(shí)子函數(shù)子程序μs級(jí)*/voiddelayo(uintnumo){ while(numo--);}/*************DS18b20溫度傳感器函數(shù)*********************/Init_DS18B20(void) //初始化DS18B20{ ucharx=0; DATA=1;//但總線復(fù)位 delayo(10);//延時(shí)60μs左右 DATA=0;//拉低總線 delayo(80);//延時(shí)大于480μs DATA=1;//拉高總線 delayo(20); x=DATA;//稍延時(shí)后,假設(shè)x=0則初始化成功,假設(shè)x=1則初始化失敗 delayo(30);}//讀一個(gè)字節(jié)ReadOneChar(void){ uchari=0; uchardat=0; for(i=8;i>0;i--) { DATA=0;//發(fā)脈沖信號(hào) dat>>=1; DATA=1;//發(fā)脈沖信號(hào) if(DATA) dat|=0x80; delayo(8); } return(dat);}//寫一個(gè)字節(jié)WriteOneChar(uchardat){ uchari=0; for(i=8;i>0;i--) { DATA=0; DATA=dat&0x01; delayo(10); DATA=1; dat>>=1; } delayo(8);}//讀取溫度10倍uintReadTemperature(void){ uchara=0; ucharb=0; intt=0; uinttt=0; Init_DS18B20(); WriteOneChar(0xCC);//跳過(guò)讀序號(hào)列號(hào)的操作 WriteOneChar(0x44);//啟動(dòng)溫度轉(zhuǎn)換 Init_DS18B20(); WriteOneChar(0xCC);//跳過(guò)讀序號(hào)列號(hào)的操作 WriteOneChar(0xBE);//讀取溫度存放器等〔共可讀9個(gè)存放器〕前兩個(gè)就是溫度 a=ReadOneChar();//讀取溫度低位 b=ReadOneChar();//讀取溫度高位 t=b; tt=(t*256+a)*0.625;//讀數(shù)結(jié)果擴(kuò)大十倍 return(tt);}voiddisplayreal(uintaa)//顯示實(shí)際溫度{ P0=0x00; P2=0xfb;//顯示小數(shù)點(diǎn) P0=0X80; delayo(250); P0=0x00; P2=0xfe; bai=aa/1000;//顯示百位 P0=table[bai]; delayo(250); P0=0x00; P2=0xfd; shi=aa/100%10;//顯示十位 P0=table[shi]; delayo(250); P0=0x00; P2=0xfb; ge=aa/10%10;//顯示個(gè)位 P0=table[ge]; delayo(250); P0=0x00; P2=0xf7; fen=aa%10;//顯示十分位 P0=table[fen]; delayo(250);}//*****************延時(shí)子程序ms級(jí)***************************voiddelay(uinti){uintj;for(;i>0;i--)for(j=0;j<125;j++);}//**************蜂鳴器警報(bào)程序***********************voidbuzzer(uintaa,uintbb,uintcc){ if(aa>bb||aa<cc)//實(shí)際溫度超上限或低下限報(bào)警 {beep=1; //delay(10);} else beep=0;}//***********溫度控制子程序***********************voidcontrol(uintkk,yy){if(kk>yy)//實(shí)際值大于設(shè)定值 P30=0;//停頓加熱else//實(shí)際值小于設(shè)定值 P30=1;//加熱 }//**************矩陣鍵盤掃描子程序***********************uintkeyscan(){uchartemp,keynum;P1=0xff;//P1口輸出高電平P10=0;//**************掃描第一行**********************temp=P1;//讀取P1口狀態(tài)temp&=0xf0;//讀取有或無(wú)鍵按下時(shí)temp的狀態(tài)if(temp!=0xf0)//判斷是否有鍵按下{delay(10);//有鍵按下時(shí)去抖 temp=P1;//讀取P1口狀態(tài) temp&=0xf0;//讀取有無(wú)鍵按下時(shí)temp的狀態(tài) if(temp!=0xf0)//再次確認(rèn)是否有鍵按下 { temp=P1;//有鍵按下,讀P1口狀態(tài) temp&=0xf0;//取按鍵按下時(shí)的數(shù)據(jù) switch(temp)//確定鍵值 { case0xe0:keynum=0;break; case0xd0:keynum=1;break; case0xb0:keynum=2;break; case0x70:keynum=3;break; } while(temp!=0xf0)//等待按鍵釋放 { temp=P1;//按鍵未釋放讀取P1口狀態(tài) temp&=0xf0;//為while判斷提供判斷數(shù)據(jù) } }}P1=0xff;P11=0;//**************掃描第二行**********************temp=P1
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 標(biāo)準(zhǔn)版2024建設(shè)工程設(shè)計(jì)合同
- 2024年聘用副總經(jīng)理合同書
- 無(wú)勞動(dòng)合同證明的獲取途徑分析
- 2024年承包魚塘合同范本
- 抵押短期借款合同格式
- 加工協(xié)議書撰寫要點(diǎn)
- 柴油發(fā)動(dòng)機(jī)控制柜技術(shù)規(guī)格書
- 土地流轉(zhuǎn)合同補(bǔ)充協(xié)議2024年
- 建筑工程合同履約中的安全控制
- 業(yè)務(wù)經(jīng)理聘請(qǐng)合同
- 北京市第四中學(xué)2024-2025學(xué)年七年級(jí)上學(xué)期期中生物學(xué)試題(含答案)
- 體育教師先進(jìn)個(gè)人事跡材料
- 2025屆江蘇省蘇州市第一中學(xué)物理高三第一學(xué)期期末學(xué)業(yè)水平測(cè)試模擬試題含解析
- 企業(yè)財(cái)務(wù)管理數(shù)字化轉(zhuǎn)型實(shí)施方案
- 第九課+發(fā)展中國(guó)特色社會(huì)主義文化+課件高中政治統(tǒng)編必修四哲學(xué)與文化
- 牙用漂白凝膠市場(chǎng)環(huán)境與對(duì)策分析
- 2024年山東省濟(jì)南市中考英語(yǔ)試題卷(含答案)
- 人教版七年級(jí)道德與法治上冊(cè) 期中復(fù)習(xí)知識(shí)梳理
- 3.1 農(nóng)業(yè)區(qū)位因素及其變化 課件 高一地理人教版(2019)必修第二冊(cè)
- 建筑施工企業(yè)(安全管理)安全生產(chǎn)管理人員安全生產(chǎn)考試參考題及答案
- 鍋爐應(yīng)急預(yù)案演練方案
評(píng)論
0/150
提交評(píng)論