多點(diǎn)溫度巡檢系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)_第1頁
多點(diǎn)溫度巡檢系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)_第2頁
多點(diǎn)溫度巡檢系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)_第3頁
多點(diǎn)溫度巡檢系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)_第4頁
多點(diǎn)溫度巡檢系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、shandong畢業(yè)設(shè)計(jì)說明書多點(diǎn)溫度巡檢系統(tǒng)設(shè)計(jì)學(xué) 院: 電氣與電子工程學(xué)院 專 業(yè): 電子信息工程 學(xué)生姓名: 學(xué) 號: 0911043049 指導(dǎo)教師: 2013 年 5 月摘要摘 要隨著社會(huì)的進(jìn)步和工業(yè)技術(shù)的發(fā)展,人們越來越重視溫度因素,許多產(chǎn)品對溫度范圍要求嚴(yán)格,而目前市場上普遍存在的溫度檢測儀器大都是單點(diǎn)測量,同時(shí)有溫度信息傳遞不及時(shí)、精度不夠的缺點(diǎn),不利于工業(yè)控制者根據(jù)溫度變化及時(shí)做出決定。在這樣的形式下,開發(fā)一種能夠同時(shí)測量多點(diǎn),并且實(shí)時(shí)性高、精度高,能夠綜合處理多點(diǎn)溫度信息的測量系統(tǒng)就很有必要。本課題以at89c51單片機(jī)系統(tǒng)為核心,能對多點(diǎn)的溫度進(jìn)行實(shí)時(shí)巡檢。ds18b20

2、是一種可組網(wǎng)的高精度數(shù)字式溫度傳感器,由于其具有單總線的獨(dú)特優(yōu)點(diǎn),可以使用戶輕松地組建起傳感器網(wǎng)絡(luò),并可使多點(diǎn)溫度測量電路變得簡單、可靠。本文結(jié)合實(shí)際使用經(jīng)驗(yàn),分別介紹了ds18b20數(shù)字溫度傳感器溫度檢測電路、鍵盤輸入控制電路、蜂鳴器報(bào)警電路和串口通信電路與單片機(jī)的硬件連接。通過軟件編程實(shí)現(xiàn)將檢測電路檢測到的信號傳到數(shù)碼管電路顯示以及可以實(shí)現(xiàn)對溫度的實(shí)時(shí)報(bào)警,而且通過串口通信電路可以傳至上位機(jī)實(shí)現(xiàn)通信。關(guān)鍵詞: 溫度檢測 單片機(jī) 多點(diǎn)溫度巡檢iabstractabstractas the industry and the society developing, the temperature

3、 becomes more and more important and a lot of products are sensitive to temperature. however, temperature measuring apparatus in the market now only can check and measure the temperature of one point, at the same time, the temperature information is not real time and the precision is low. it takes a

4、 great of troubles for the industry-controllers to make decision .in this situation, design and implement one applicable system which can watch measure and control the temperature and the measuring results is real time and the precision is great is more essential. in order to meeting this applicatio

5、n, this paper talk about the multiple-points temperature measuring system.this system based on single chip computer, can inspect and control multiple temperatures in real time. as a kind of high-accuracy digital net temperature sensor,ds18 b20 can be used building a sensor net easily. it can al

6、so make the net simple and reliable with it's special 1-wire interface .this paper introduces the application of ds18b20 with single chip processor.keywords: temperature detection single chip microcomputer multipoint temperature checkingii目錄目 錄摘 要iabstractii目 錄iii第一章 引言11.1 課題背景11.1.1 國外研究背景11.1

7、.2 國內(nèi)研究背景11.1.3 發(fā)展方向11.2 本課題任務(wù)21.3 方案選擇21.3.1 方案一21.3.2 方案二31.3.3 方案三31.4 方案比較4第二章 硬件電路設(shè)計(jì)12.1 電源電路12.2 單片機(jī)電路12.2.1 硬件特性22.2.2 單片機(jī)引腳功能介紹22.2.3 時(shí)鐘電路42.2.4 復(fù)位電路52.3 溫度采集電路62.4 顯示電路92.4.1 數(shù)碼管92.4.2 max7219串行驅(qū)動(dòng)顯示器102.5 鍵盤電路112.6 報(bào)警電路132.7 串行口通信模塊142.7.1 rs232接口簡介142.7.2 max232簡介152.7.3 串行口通信電路16第三章 軟件部分1

8、3.1 軟件語言和編譯工具的選擇13.2 軟件設(shè)計(jì)的原則23.3 軟件的實(shí)現(xiàn)23.3.1 傳感器程序33.3.2 顯示電路編程83.3.3 鍵盤程序設(shè)計(jì)103.3.4 報(bào)警電路程序123.3.5 串口通訊程序13第四章 調(diào)試與總結(jié)1參考文獻(xiàn)1致謝及聲明1附錄:整機(jī)電路1iv第一章 引言第一章 引言1.1 課題背景21世紀(jì),科學(xué)技術(shù)的發(fā)展日新月異,科技的進(jìn)步帶動(dòng)了測量技術(shù)的發(fā)展。溫度時(shí)國際單位制七個(gè)基本量之一,也是在生產(chǎn)、科研、生活中必不可少的重要的測量和控制的物理量。自18世紀(jì)工業(yè)革命以來,工業(yè)發(fā)展對是否能掌握溫度有著絕對的聯(lián)系。在冶金、鋼鐵、石化、水泥、玻璃、醫(yī)藥等等行業(yè),可以說幾乎80%的

9、工業(yè)部門都不得不考慮著溫度的因素。在我們的日常生活、生產(chǎn)中帶來重大影響,因此,對于溫度的檢測就十分重要。隨著科學(xué)技術(shù)的發(fā)展,對于溫度的測量,一般使用各式各樣的溫度傳感器對溫度進(jìn)行采集。因此,溫度傳感器也成為自動(dòng)檢測、總動(dòng)控制系統(tǒng)和計(jì)量檢測系統(tǒng)等不可或缺的器具,且應(yīng)用遍及各個(gè)領(lǐng)域。1.1.1 國外研究背景國外對溫度檢測技術(shù)研究較早,始于20世紀(jì)70年代。先是采用模擬式的組合儀表,采集現(xiàn)場信息并進(jìn)行指示、記錄和控制,80年代末出現(xiàn)了分布式控制系統(tǒng),目前正開發(fā)和研制計(jì)算機(jī)數(shù)據(jù)采集控制系統(tǒng)的多因子綜合控制系統(tǒng)?,F(xiàn)在世界各國的溫度檢測技術(shù)發(fā)展很快,一些國家在實(shí)現(xiàn)自動(dòng)化的基礎(chǔ)上正向著完全自動(dòng)化、無人化的方

10、向發(fā)展。1.1.2 國內(nèi)研究背景我國對于溫度檢測技術(shù)的研究較晚,始于20世紀(jì)80年代。近年來,我國引進(jìn)了多達(dá)16個(gè)國家和地區(qū)的工廠環(huán)境控制系統(tǒng),在總體上,正從消化吸收、簡單應(yīng)用階段向?qū)嵱没?、綜合性應(yīng)用階段過渡和發(fā)展,對推動(dòng)工廠溫度自動(dòng)檢測產(chǎn)生了積極的作用。與此同時(shí),我國的溫度測控設(shè)施計(jì)算機(jī)應(yīng)用以單片機(jī)控制的單參數(shù)單回路系統(tǒng)居多,尚無真正意義上的多參數(shù)綜合控制系統(tǒng)。在生產(chǎn)實(shí)際中仍然有許多問題困擾著我們,比如環(huán)境控制水平落后,軟硬件資源不能共享和可靠性差等缺點(diǎn)。與發(fā)達(dá)國家相比,還存在較大的差距。1.1.3 發(fā)展方向隨著電子技術(shù)、計(jì)算機(jī)技術(shù)的飛速發(fā)展,對現(xiàn)場溫度的測量也由過去的刻度溫度計(jì)、指針溫度計(jì)

11、向數(shù)字顯示的智能溫度計(jì)發(fā)展,而且,對測量的精度要求也越來越高。下面來簡單介紹一下溫度檢測的發(fā)展趨勢。第一,檢測范圍擴(kuò)大。現(xiàn)在工業(yè)上通用的溫度檢測范圍為-2003000,而今后要求能測超高溫與超低溫。尤其是液化氣體的極低溫度檢測更為迫切,如10k以下的溫度檢測是當(dāng)前重點(diǎn)研究課題。第二,測溫對象擴(kuò)大。溫度檢測技術(shù)將會(huì)由點(diǎn)測溫發(fā)展到線、面,甚至立體的測量。應(yīng)用范圍己經(jīng)從工業(yè)領(lǐng)域延伸到環(huán)境保護(hù)、家用電器、汽車工業(yè)及航天工業(yè)領(lǐng)域。第三,新材料及工藝的開發(fā)。近來已經(jīng)開發(fā)的炭化硅薄膜熱敏電阻溫度檢測器,厚膜、薄膜鉑電阻溫度檢測器,硅單晶熱敏電阻溫度檢測器等都是新型的溫度檢測產(chǎn)品。第四,向智能化方向的發(fā)展。新

12、型產(chǎn)品不僅要具有檢測功能,又要具有判斷和指令等多功能,采用微機(jī)向智能化方向發(fā)展,向機(jī)電一體化方向發(fā)展。1.2 本課題任務(wù)本課題靈感來自于日常生產(chǎn)實(shí)際中對溫度巡檢的需要,整個(gè)系統(tǒng)由單片機(jī)控制,要能夠接收傳感器的數(shù)據(jù)并顯示出來,可以從鍵盤輸入命令,系統(tǒng)根據(jù)命令,選擇對應(yīng)的傳感器,并由驅(qū)動(dòng)電路驅(qū)動(dòng)溫度顯示。設(shè)計(jì)具有多個(gè)測溫點(diǎn)檢測的溫度巡檢電路,能夠循環(huán)數(shù)字顯示不同的測溫點(diǎn)的溫度值,對不同的測溫點(diǎn)的一定時(shí)間內(nèi)的溫度值可以查詢并數(shù)字顯示出來,當(dāng)溫度越限時(shí),能夠?qū)崿F(xiàn)自動(dòng)報(bào)警。溫度測量范圍為0100,溫度測量精度為0.5,各測量點(diǎn)溫度值顯示到0.5,時(shí)間顯示到分鐘。1.3 方案選擇溫度測量的方案多種多樣,在

13、溫度采集方面,大致有傳統(tǒng)的分立式傳感器、模擬集成傳感器以及新興的智能型傳感器。對于控制系統(tǒng)可以采用單片機(jī)、arm、pc等等。1.3.1 方案一方案一采用模擬分立元件,如電容、電感或晶體管等非線形元件,實(shí)現(xiàn)多點(diǎn)溫度的測量及顯示,該方案設(shè)計(jì)電路簡單易懂,操作簡單,且價(jià)格便宜,但采用分立元件分散性大,不便于集成數(shù)字化,而且測量誤差大。同時(shí)也不便于建立通訊機(jī)制,不便于同其他主機(jī)進(jìn)行信息交流。1.3.2 方案二方案二采用at89c51單片機(jī),以其為核心,通過ad590溫度傳感器采集溫度信號,硬件設(shè)計(jì)成本低,但需多個(gè)a/d轉(zhuǎn)換電路,采集的信號為模擬信號,經(jīng)放大電路放大后,送到a/d轉(zhuǎn)換器轉(zhuǎn)換成數(shù)字信號,然

14、后傳送到單片機(jī)進(jìn)行處理,如下圖。此技術(shù)雖已成熟,但a/d轉(zhuǎn)換電路的設(shè)計(jì)比較繁瑣,而且對a/d轉(zhuǎn)換的要求高,處理速度慢,而且使用ad590溫度傳感器進(jìn)行溫度檢測必須對冷端進(jìn)行溫度補(bǔ)償,以減少誤差。總之,此技術(shù)相當(dāng)成熟,但硬件電路設(shè)計(jì)相對復(fù)雜。方案二系統(tǒng)框圖如圖1-1:圖1-1 方案二系統(tǒng)框圖1.3.3 方案三此方案采用分布式的思想,由一臺(tái)上位機(jī)(pc計(jì)算機(jī)),下位機(jī)(at89c51單片機(jī))組成,下位機(jī)采用多個(gè)ds18b20溫度傳感器實(shí)現(xiàn)對多點(diǎn)溫度的多點(diǎn)檢測,組成兩級分布式的多點(diǎn)溫度巡回檢測系統(tǒng)。ds18b20檢測到的信號直接就是數(shù)字信號,無需進(jìn)行處理,抗干擾性好、設(shè)計(jì)靈活、方便,而且適合在惡劣的

15、環(huán)境下進(jìn)行現(xiàn)場溫度測量。該系統(tǒng)采用 rs-232串行通訊標(biāo)準(zhǔn),通過上位機(jī)(pc)控制下位機(jī)(單片機(jī))進(jìn)行現(xiàn)場溫度采集。溫度值既可以送回主控pc進(jìn)行數(shù)據(jù)處理,由顯示器顯示。也可以由下位機(jī)單獨(dú)工作,實(shí)時(shí)顯示當(dāng)前各點(diǎn)的溫度值,對各點(diǎn)進(jìn)行控制。本系統(tǒng)可以應(yīng)用在大型工業(yè)及民用常溫多點(diǎn)監(jiān)測場合。如糧食倉儲(chǔ)系統(tǒng)、樓宇自動(dòng)化系統(tǒng)、溫控制程生產(chǎn)線之溫度影像檢測、醫(yī)療與健診的溫度測試、空調(diào)系統(tǒng)的溫度檢測、石化、機(jī)械等。系統(tǒng)框圖如圖1-2:圖1-2 方案三系統(tǒng)框圖1.4 方案比較通過上方幾個(gè)方案的介紹?;跀?shù)字式溫度計(jì)ds18b20的溫度測量儀的硬軟件開發(fā)過程,ds18b20將溫度信號直接轉(zhuǎn)換為數(shù)字信號,實(shí)現(xiàn)了與單

16、片機(jī)的直接接口,從而省去了信號調(diào)理電路。該儀器電路簡單、功能可靠、測量效率高,很好地彌補(bǔ)了傳統(tǒng)溫度測量方法的不足。與方案一相比,在功能、性能、可操作性等方面都有較大的提升。而且方案一不便于通信。與方案二相比,硬件電路簡單,易于操作,而且直接側(cè)得數(shù)字信號,無需再處理,測量較精確,適于在惡劣情況下工作,具有更高的性價(jià)比,更大的市場。所以本設(shè)計(jì)采用第三種方案。第 1 頁第二章 硬件電路設(shè)計(jì)第二章 硬件電路設(shè)計(jì)本課題研究的多點(diǎn)測溫系統(tǒng)是以單片機(jī)和單總線數(shù)字溫度傳感器ds18b20為核心,充分利用單片機(jī)優(yōu)越的內(nèi)部和外部資源及數(shù)字溫度傳感器ds18b20的優(yōu)越性能構(gòu)成一個(gè)完備的測溫系統(tǒng),實(shí)現(xiàn)對溫度的多點(diǎn)測

17、量。整個(gè)系統(tǒng)由單片機(jī)控制,能夠接收傳感器的溫度數(shù)據(jù)并顯示出來,可以從鍵盤輸入命令,系統(tǒng)根據(jù)命令,選擇對應(yīng)的溫度傳感器,并由驅(qū)動(dòng)電路驅(qū)動(dòng)溫度顯示。本課題設(shè)計(jì)了一種合理、可行的單片機(jī)監(jiān)控軟件,完成測量和顯示的任務(wù)。由于單片機(jī)具有強(qiáng)大的運(yùn)算和控制功能,使得整個(gè)系統(tǒng)具有模塊化、硬件電路簡單以及操作方便等優(yōu)點(diǎn)。2.1 電源電路要使單片機(jī)工作首先要有電源電路給單片機(jī)提供合適的電源。如圖2-1:圖2-1 單片機(jī)電源電路先將220v 50hz的交流電源經(jīng)變壓器降壓變?yōu)?v的交流電源,然后經(jīng)過由四個(gè)二極管組成的全橋整流電路變?yōu)橹绷麟娫矗?jīng)過全橋整流的電源不穩(wěn)定,需要進(jìn)行穩(wěn)壓。所以采取集成電路元件三端穩(wěn)壓器lm7

18、805穩(wěn)壓,得到符合要求的5v直流電源。2.2 單片機(jī)電路單片機(jī)是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器cpu隨機(jī)存儲(chǔ)器ram、只讀存儲(chǔ)器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),在工業(yè)控制領(lǐng)域的廣泛應(yīng)用。從上世紀(jì)80年代,由當(dāng)時(shí)的4位、8位單片機(jī),發(fā)展到現(xiàn)在的32位300m的高速單片機(jī)。首先,先系統(tǒng)介紹一下單片機(jī)的硬件特性、引腳功能。2.2.1 硬件特性1、主流單片機(jī)包括cpu、4kb容量的rom、128 b容量的ram

19、、 2個(gè)16位定時(shí)/計(jì)數(shù)器、4個(gè)8位并行口、全雙工串口行口、adc/dac、spi、i2c、isp、iap。2、系統(tǒng)結(jié)構(gòu)簡單,使用方便,實(shí)現(xiàn)模塊化;3、單片機(jī)可靠性高,可工作到106 107小時(shí)無故障;4、處理功能強(qiáng),速度快。5、低電壓,低功耗,便于生產(chǎn)便攜式產(chǎn)品6、控制功能強(qiáng)7、環(huán)境適應(yīng)能力強(qiáng)。2.2.2 單片機(jī)引腳功能介紹stc89c51單片機(jī)的40個(gè)引腳中有2個(gè)專用于主電源引腳,2個(gè)外接晶振的引腳,4個(gè)控制或與其它電源復(fù)用的引腳,以及32條輸入輸出i/o引腳,如圖2-2。下面按引腳功能分為4個(gè)部分?jǐn)⑹鰝€(gè)引腳的功能。(1)電源引腳vcc和vssvcc(40腳):接+5v電源正端;vss(2

20、0腳):接+5v電源正端。(2)外接晶振引腳xtal1和xtal2圖2-2 單片機(jī)引腳圖xtal1(19腳):接外部石英晶體的一端。在單片機(jī)內(nèi)部,它是一個(gè)反相放大器的輸入端,這個(gè)放大器構(gòu)成采用外部時(shí)鐘時(shí),對于hmos單片機(jī),該引腳接地;對于choms單片機(jī),該引腳作為外部振蕩信號的輸入端。xtal2(18腳):接外部晶體的另一端。在單片機(jī)內(nèi)部,接至片內(nèi)振蕩器的反相放大器的輸出端。當(dāng)采用外部時(shí)鐘時(shí),對于hmos單片機(jī),該引腳作為外部振蕩信號的輸入端。對于chmos芯片,該引腳懸空不接。(3)控制信號或與其它電源復(fù)用引腳 控制信號或與其它電源復(fù)用引腳有rst/vpd、ale/p、psen和ea/v

21、pp等4種形式。(a)rst/vpd(9腳):rst即為reset,vpd為備用電源,所以該引腳為單片機(jī)的上電復(fù)位或掉電保護(hù)端。當(dāng)單片機(jī)振蕩器工作時(shí),該引腳上出現(xiàn)持續(xù)兩個(gè)機(jī)器周期的高電平,就可實(shí)現(xiàn)復(fù)位操作,使單片機(jī)復(fù)位到初始狀態(tài)。當(dāng)vcc發(fā)生故障,降低到低電平規(guī)定值或掉電時(shí),該引腳可接上備用電源vpd(+5v)為內(nèi)部ram供電,以保證ram中的數(shù)據(jù)不丟失。(b)ale/ prog(30腳):當(dāng)訪問外部存儲(chǔ)器時(shí),ale(允許地址鎖存信號)以每機(jī)器周期兩次的信號輸出,用于鎖存出現(xiàn)在p0口的低(c)psen(29腳):片外程序存儲(chǔ)器讀選通輸出端,低電平有效。當(dāng)從外部程序存儲(chǔ)器讀取指令或常數(shù)期間,每個(gè)

22、機(jī)器周期pesn兩次有效,以通過數(shù)據(jù)總線口讀回指令或常數(shù)。當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器期間,pesn信號將不出現(xiàn)。(d)ea/vpp(31腳):ea為訪問外部程序儲(chǔ)器控制信號,低電平有效。當(dāng)ea端保持高電平時(shí),單片機(jī)訪問片內(nèi)程序存儲(chǔ)器4kb(ms52子系列為8kb)。若超出該范圍時(shí),自動(dòng)轉(zhuǎn)去執(zhí)行外部程序存儲(chǔ)器的程序。當(dāng)ea端保持低電平時(shí),無論片內(nèi)有無程序存儲(chǔ)器,均只訪問外部程序存儲(chǔ)器。對于片內(nèi)含有eprom的單片機(jī),在eprom編程期間,該引腳用于接21v的編程電源vpp。 (4)輸入/輸出(i/o)引腳p0口、p1口、p2口及p3口(a).p0口(39腳22腳):p0.0p0.7統(tǒng)稱為p0口。當(dāng)不接

23、外部存儲(chǔ)器與不擴(kuò)展i/o接口時(shí),它可作為準(zhǔn)雙向8位輸入/輸出接口。當(dāng)接有外部程序存儲(chǔ)器或擴(kuò)展i/o口時(shí),p0口為地址/數(shù)據(jù)分時(shí)復(fù)用口。它分時(shí)提供8位雙向數(shù)據(jù)總線。對于片內(nèi)含有eprom的單片機(jī),當(dāng)eprom編程時(shí),從p0口輸入指令字節(jié),而當(dāng)檢驗(yàn)程序時(shí),則輸出指令字節(jié)。(b).p1口(1腳8腳):p1.0p1.7統(tǒng)稱為p1口,可作為準(zhǔn)雙向i/o接口使用。對于mcs52子系列單片機(jī),p1.0和p1.1還有第2功能:p1.0口用作定時(shí)器/計(jì)數(shù)器2的計(jì)數(shù)脈沖輸入端t2;p1.1用作定時(shí)器/計(jì)數(shù)器2的外部控制端t2ex。對于eprom編程和進(jìn)行程序校驗(yàn)時(shí),p0口接收輸入的低8位地址。(c).p2口(21

24、腳28腳):p2.0p2.7統(tǒng)稱為p2口,一般可作為準(zhǔn)雙向i/o接口。當(dāng)接有外部程序存儲(chǔ)器或擴(kuò)展i/o接口且尋址范圍超過256個(gè)字節(jié)時(shí),p2口用于高8位地址總線送出高8位地址。對于eprom編程和進(jìn)行程序校驗(yàn)時(shí),p2口接收輸入的8位地址。(d).p3口(10腳17腳):p3.0p3.7統(tǒng)稱為p3口。它為雙功能口,可以作為一般的準(zhǔn)雙向i/o接口,也可以將每1位用于第2功能,而且p3口的每一條引腳均可獨(dú)立定義為第1功能的輸入輸出或第2功能。p3口的第2功能見下表1:引腳第2功能p3.0rxd(串行口輸入端0)p3.1txd(串行口輸出端)p3.2int0(部中斷0請求輸入端,低電平有效)p3.3i

25、nt1(中斷1請求輸入端,低電平有效)p3.4t0(時(shí)器/計(jì)數(shù)器0計(jì)數(shù)脈沖端)p3.5t1(時(shí)器/計(jì)數(shù)器1數(shù)脈沖端)p3.6wr(部數(shù)據(jù)存儲(chǔ)器寫選通信號輸出端,低電平有效)p3.7rd(部數(shù)據(jù)存儲(chǔ)器讀選通信號輸出端,低電平有效)表1 單片機(jī)p3.0-p3.7管腳含義2.2.3 時(shí)鐘電路單片機(jī)在工作時(shí)通常用內(nèi)部振蕩和外部振蕩方式對電路提供穩(wěn)定的時(shí)鐘信號。在引腳xtal1和xtax2外接晶體振蕩器,就夠成了內(nèi)部振蕩方式。由于單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖。晶振通常選用6mhz、12mhz或24mhz。內(nèi)部振蕩器方式如下。電容器c1、c2起穩(wěn)定振

26、蕩頻率、快速起振的作用,電容值一般為5-30pf。內(nèi)部振蕩方式所得的時(shí)鐘信號比較穩(wěn)定。外部振蕩方式是把已有的時(shí)鐘信號引入單片機(jī)內(nèi),這種方式適于用于用來使單片機(jī)的時(shí)鐘與外部信號保持一致。本次設(shè)計(jì)采用了內(nèi)部震蕩的方式。時(shí)鐘電路如圖2-3:圖2-3 時(shí)鐘電路2.2.4 復(fù)位電路單片機(jī)在工作的時(shí)候,總會(huì)有自身因素、外界條件或者是編程漏洞和失誤造成單片機(jī)“死機(jī)”或者是“程序飛走”等現(xiàn)象,這就需要對單片機(jī)進(jìn)行復(fù)位重啟。復(fù)位操作完成單片機(jī)片內(nèi)電路的初始化,使單片機(jī)從一種確定的狀態(tài)開始運(yùn)行。當(dāng)89c51單片機(jī)的復(fù)位引腳rst出現(xiàn)5ms以上的高電平時(shí),單片機(jī)就完成了復(fù)位操作,如果rst持續(xù)為高電平,單片機(jī)就處于

27、循環(huán)復(fù)位狀態(tài),而無法執(zhí)行程序,因此要求單片機(jī)復(fù)位后能脫離復(fù)位狀態(tài)。復(fù)位操作通常有上電和開關(guān)復(fù)位。上電復(fù)位要求接通電源后,自動(dòng)實(shí)現(xiàn)復(fù)位操作。開關(guān)復(fù)位要求在電源接通的條件下,在單片機(jī)運(yùn)行期間,如果發(fā)生死機(jī),用按鈕開關(guān)操作使單片機(jī)復(fù)位。當(dāng)單片機(jī)已在運(yùn)行之中時(shí),按下復(fù)位鍵也能使rst持續(xù)一段時(shí)間的高電平,從而實(shí)現(xiàn)上電且開關(guān)復(fù)位的操作。單片機(jī)的復(fù)位操作使單片機(jī)進(jìn)入初始化過程,其中包括是程序計(jì)數(shù)器pc=0000h,p0-p3=ffh,sp=07h,其他寄存器處于零,程序從0000h地址單元開始執(zhí)行,單片機(jī)復(fù)位后不改變片內(nèi)ram區(qū)中的內(nèi)容。單片機(jī)復(fù)位電路如下頁圖2-4:圖2-4 復(fù)位電路圖2-4 復(fù)位電路2

28、.3 溫度采集電路ds18b20獨(dú)特的單線接口方式,ds18b20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與ds18b20的雙向通訊。測溫范圍 55+125,固有測溫誤差0.5。支持多點(diǎn)組網(wǎng)功能,多個(gè)ds18b20可以并聯(lián)在唯一的三線上,最多只能并聯(lián)8個(gè),實(shí)現(xiàn)多點(diǎn)測溫,如果數(shù)量過多,會(huì)使供電電源電壓過低,從而造成信號傳輸?shù)牟环€(wěn)定。在使用中不需要任何外圍元件,測量結(jié)果以912位數(shù)字量方式串行傳送。ds18b20的三種測溫電路:寄生電源供電方式圖2-5 寄生電源供電方式在寄生電源供電方式下,ds18b20從單線信號線上汲取能量:在信號線dq處于高電平期間把能量儲(chǔ)存在內(nèi)部 電容里,在信號線處

29、于低電平期間消耗電容上的電能工作,直到高電平到來再給寄生電源(電容)充電。獨(dú)特的寄生電源方式有三個(gè)好處:進(jìn)行遠(yuǎn)距離測溫時(shí),無需本地電源;可以在沒有常規(guī)電源的條件下讀取rom;電路更加簡潔,僅用一根i/o口實(shí)現(xiàn)測溫。要想使ds18b20進(jìn)行精確的溫度轉(zhuǎn)換,i/o線必須保證在溫度轉(zhuǎn)換期間提供足夠的能量,由 于每個(gè)ds18b20在溫度轉(zhuǎn)換期間工作電流達(dá)到1ma,當(dāng)幾個(gè)溫度傳感器掛在同一根i/o線上進(jìn)行多點(diǎn)測溫時(shí),只靠4.7k上拉電阻就無法提供足夠的 能量,會(huì)造成無法轉(zhuǎn)換溫度或溫度誤差極大。寄生電源供電方式如圖2-5。因此,寄生電源供電方式只適應(yīng)于單一溫度傳感器測溫情況下使用,不適宜采用電池供電系統(tǒng)中

30、。并 且工作電源vcc必須保證在5v,當(dāng)電源電壓下降時(shí),寄生電源能夠汲取的能量也降低,會(huì)使溫度誤差變大。寄生電源強(qiáng)上拉供電方式圖2-6 寄生電源強(qiáng)拉供電方式改進(jìn)的寄生電源供電方式如圖2-6。為了使ds18b20在動(dòng)態(tài)轉(zhuǎn)換周期中獲得足夠的電流供應(yīng),當(dāng)進(jìn)行溫度轉(zhuǎn)換或拷貝到 e2存儲(chǔ)器操作時(shí),用mosfet把i/o線直接拉到vcc就可提供足夠的電流,在發(fā)出任何涉及到拷貝到e2存儲(chǔ)器或啟動(dòng)溫度轉(zhuǎn)換的指令后,必須在最 多10s內(nèi)把i/o線轉(zhuǎn)換到強(qiáng)上拉狀態(tài)。在強(qiáng)上拉方式下可以解決電流供應(yīng)不走的問題,因此也適合于多點(diǎn)測溫應(yīng)用,缺點(diǎn)就是要多占用一根i/o口線進(jìn)行強(qiáng)上拉切換。ds18b20的外部電源供電方式圖2

31、-7 外部電源供電方式在外部電源供電方式下,ds18b20工作電源由vdd引腳接入,此時(shí)i/o線不需要強(qiáng)上拉,不存在電源電流不足的問題,可以保證 轉(zhuǎn)換精度,同時(shí)在總線上理論可以掛接任意多個(gè)ds18b20傳感器,組成多點(diǎn)測溫系統(tǒng)。注意:在外部供電的方式下,ds18b20的gnd引腳不能懸空 ,否則不能轉(zhuǎn)換溫度,讀取的溫度總是85。外部電源供電方式如圖2-7。外部電源供電方式是ds18b20最佳的工作方式,工作穩(wěn)定可靠,抗干擾能力強(qiáng),而且電路也比較簡單,可以開發(fā)出穩(wěn)定可靠的多點(diǎn)溫度監(jiān)控系統(tǒng)。站長推薦大家在開發(fā)中使用外部電源供電方式,畢竟比寄生電源方式只多接一根vcc引線。在外接電源方式下, 可以充

32、分發(fā)揮ds18b20寬電源電壓范圍的優(yōu)點(diǎn),即使電源電壓vcc降到3v時(shí),依然能夠保證溫度量精度。外部供電方式的多點(diǎn)溫度電路圖如圖2-8.圖2-8 外部供電方式的多點(diǎn)測溫電路圖本設(shè)計(jì)采用一線制數(shù)字溫度傳感器ds18b20來作為本課題的溫度傳感器。主要考慮到以下幾個(gè)方面:系統(tǒng)的特性:測溫范圍為-55+125 ,測溫精度為士0.5;溫度轉(zhuǎn)換精度912位可變,能夠直接將溫度轉(zhuǎn)換值以16位二進(jìn)制數(shù)碼的方式串行輸出;12位精度轉(zhuǎn)換的最大時(shí)間為750ms;可以通過數(shù)據(jù)線供電,具有超低功耗工作方式。系統(tǒng)成本:由于計(jì)算機(jī)技術(shù)和微電子技術(shù)的發(fā)展,新型大規(guī)模集成電路功能越來越強(qiáng)大,體積越來越小,而價(jià)格也越來越低。一

33、支ds18b20的體積與普通三極管相差無幾,價(jià)格只有十元人民幣左右。系統(tǒng)復(fù)雜度:由于ds18b20是單總線器件,微處理器與其接口時(shí)僅需占用1個(gè)i/o端口且一條總線上可以掛接幾十個(gè)ds18b20,測溫時(shí)無需任何外部元件,因此,與模擬傳感器相比,可以大大減少接線的數(shù)量,降低系統(tǒng)的復(fù)雜度,減少電路的復(fù)雜程度。系統(tǒng)的調(diào)試和維護(hù):由于引線的減少,使得系統(tǒng)接口大為簡化,給系統(tǒng)的調(diào)試帶來方便。同時(shí)因?yàn)閐s18b20是全數(shù)字元器件,故障率很低,抗干擾性強(qiáng),因此,減少了系統(tǒng)的日常維護(hù)工作。2.4 顯示電路本設(shè)計(jì)采用max7219驅(qū)動(dòng)6個(gè)數(shù)碼管顯示器,組成顯示電路。2.4.1 數(shù)碼管圖2-9 數(shù)碼管按發(fā)光二極管單

34、元連接方式可分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(com)的數(shù)碼管,共陽數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極com接到+5v,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮,當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(com)的數(shù)碼管,共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極com接到地線gnd上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時(shí),相應(yīng)字段就點(diǎn)亮,當(dāng)某一字段的陽極為低電平時(shí),相應(yīng)字段就不亮。數(shù)碼管圖示如圖2-9。數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)

35、數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類。靜態(tài)顯示驅(qū)動(dòng)靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的i/o端口進(jìn)行驅(qū)動(dòng),或者使用如bcd碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡單,顯示亮度高,缺點(diǎn)是占用i/o端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5×8=40根i/o端口來驅(qū)動(dòng),要知道一個(gè)89s51單片機(jī)可用的i/o端口才32個(gè)呢:),實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。動(dòng)態(tài)顯示驅(qū)動(dòng)數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃"a,b,c,d,e,f

36、,g,dp"的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極com增加位選通控制電路,位選通由各自獨(dú)立的i/o線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是哪個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對位選通com端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會(huì)亮。通過分時(shí)輪流控制各個(gè)數(shù)碼管的的com端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯

37、示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的i/o端口,而且功耗更低。2.4.2 max7219串行驅(qū)動(dòng)顯示器本設(shè)計(jì)采用max7219串行l(wèi)ed驅(qū)動(dòng)顯示器,此顯示器具有接口簡單占用資源少、控制靈活方便、led級聯(lián)擴(kuò)展便利的優(yōu)點(diǎn)。max7219是串行輸出共陰極顯示驅(qū)動(dòng)芯片,每片可驅(qū)動(dòng)8個(gè)led,具有級聯(lián)功能可控制更多的led 。max7219為24引腳芯片,除與led顯示相連的線外,與微控制器只需3根連線相接:芯片端管腳分別為clk.dinload,其中clk為時(shí)鐘輸入端,din為數(shù)據(jù)輸入端,load為鎖存信號。max7219的工作時(shí)序?yàn)椋簳r(shí)鐘的上升沿max7219把d

38、in引腳數(shù)據(jù)移入內(nèi)部移位寄存器, 在時(shí)鐘下降沿max7219把數(shù)據(jù)移向dout端, 而load的上升沿則鎖存最后移入的16位串行數(shù)據(jù)。對max7219的控制操作很方便,其片內(nèi)具有8個(gè)位寄存器和6個(gè)控制寄存器位寄存器對應(yīng)led的具體內(nèi)容,控制寄存器決定led的工作方式??刂萍拇嫫鞣謩e為:不工作方式寄存器、譯碼方式寄存器、亮度控制寄存器、掃描個(gè)數(shù)寄存器、關(guān)閉寄存器顯示測試寄存器寄存器的操作格式為2字節(jié)的串行數(shù)據(jù),第一個(gè)字節(jié)為寄存器地址,第二個(gè)字節(jié)為控制命令或待顯示數(shù)據(jù)。寄存器的地址分配及功能如下所示:不工作寄存器(0x00):用于max7219級聯(lián)控制。位寄存器(0x01-0x08):8位led待

39、顯示內(nèi)容。譯碼方式寄存器(0x0g):決定譯碼方式,分b碼和不譯碼兩種。亮度控制寄存器(0x0a):led段電流控制。掃描個(gè)數(shù)寄存器(0x0b):決定顯示多少個(gè)led 。關(guān)閉寄存器(0x0c):決定正常工作方式或關(guān)閉led顯示。顯示測試寄存器(0x0d):決定正常工作方式或顯示測試。max7219是在脈沖控制下工作的,因此其抗干擾就更為重要。一般在其電源和地之間接一十幾f 的電容。另外,當(dāng)max72l9和其他串行芯片共用i/o引腳時(shí),最好在其外邊加一上拉電阻。p1口內(nèi)部有上拉電阻,如不在其外部接上拉電阻,有時(shí)出現(xiàn)驅(qū)動(dòng)能力不足的現(xiàn)象。要用max7219控制多于8個(gè)的led時(shí),可以將多個(gè)max72

40、19級聯(lián)使用。各芯片的clk和load端并接在一起。上一級max7219的dout端接下一級的d 端。級聯(lián)顯示時(shí),如欲控制次級的max7219,只需向前幾級的max7219的不工作方式寄存器送空操作數(shù):本級則送欲顯示的數(shù)據(jù)。另外,需注意,load信號只需執(zhí)行一次清o和置位,分別在整個(gè)過程的始末。即:級聯(lián)調(diào)用wrtwobyte()程序時(shí),應(yīng)將程序里的load清o和置位語句屏蔽掉。只在級聯(lián)顯示的開始和最后分別將load置o和1。顯示電路電路圖如圖2-10所示:圖2-10 顯示電路電路圖2.5 鍵盤電路鍵盤是電子設(shè)備常見的輸入裝置,作為人們與電子設(shè)備交流的重要途徑,一旦出錯(cuò),將影響到電子設(shè)備的整體使

41、用,所以鍵盤電路雖然簡單,但鍵盤的穩(wěn)定性、可靠性,應(yīng)引起足夠的重視。鍵盤是計(jì)算機(jī)系統(tǒng)中不可缺少的輸入設(shè)備。單片機(jī)的鍵盤電路主要有矩陣掃描和單鍵電路兩種,其中以使用 + 條l/0 線實(shí)現(xiàn)× 的矩陣掃描式鍵盤電路最為常用,4×4的矩陣掃描式鍵盤如圖所示。當(dāng)按鍵少時(shí)可接成線性鍵盤;當(dāng)按鍵較多時(shí),可以將鍵盤接成矩陣形式,這種形式節(jié)省口線。矩陣鍵盤按鍵的狀態(tài)同樣需要變成數(shù)字量1和0。開關(guān)的一端通過電阻接vcc,開關(guān)另一段的接地是通過程序輸出數(shù)字0實(shí)現(xiàn)的。矩陣鍵盤每個(gè)按鍵都有它的行值和列值,行值和列值的組合就是這個(gè)這個(gè)按鍵的編碼。矩陣行線和列線分別通過兩個(gè)并行接口和cpu通信,其中,一

42、個(gè)輸出掃描碼,使按鍵逐行動(dòng)態(tài)接地,另一個(gè)并行口輸入按鍵狀態(tài)。由行掃描值和列回饋信號共同形成鍵編碼。鍵盤一般采用行列掃描方式來設(shè)計(jì)。行列掃描是指:把鍵盤按鍵排列成n行×m列的n×m行列點(diǎn)陣,使用軟件或硬件的方法對其行、列分別進(jìn)行掃描,從而判斷是否有鍵按下,并獲得掃描碼。當(dāng)無鍵按下時(shí),行線與列線斷開,所有列線均為高電平。當(dāng)有一個(gè)鍵按下時(shí),則與此鍵對應(yīng)的行線與列線接通。如此行線為低電平,則此列線也為低電平。為確定是否有鍵按下,cpu先通過并行輸出口使所有的行線為低電平,然后通過并行輸入口讀入列信號,若為全“1”,則沒有鍵按下,若有一個(gè)為“0”,則表示有一個(gè)鍵已按下。若有一個(gè)為“0

43、”,則表示有一個(gè)鍵已按下。為消去按下時(shí)的抖動(dòng)現(xiàn)象,程序延遲20ms后再判斷具體是哪一個(gè)鍵按下先將第一行置為低電平,然后讀入列信號,若有一個(gè)為“0”,則按下的鍵在此行;若為全“1”,則按下的鍵不在此行,再將下一行置為低電平,并測試列信號。如果在最后一行也為低電平時(shí)仍未找到按下的鍵,則認(rèn)為剛才有鍵按下的情況為誤動(dòng)作。對找到的鍵,進(jìn)行分析并處理。當(dāng)按鍵時(shí)間較為短促時(shí),系統(tǒng)判斷不到有鍵按下。經(jīng)測試,按鍵在按下或釋放時(shí),通常伴隨著幾ms到十幾ms的觸點(diǎn)抖動(dòng),然后才能穩(wěn)定下來。在觸點(diǎn)抖動(dòng)期間檢測按鍵的通斷狀態(tài),會(huì)導(dǎo)致一次按鍵或釋放被錯(cuò)誤地認(rèn)為是多次操作。所以,當(dāng)檢測到有鍵按下或釋放時(shí),應(yīng)通過軟件延時(shí)20

44、ms左右,避開觸點(diǎn)抖動(dòng)的影響。去抖時(shí)間既不能太短也不能太長:如果時(shí)間太短,無法起到去抖作用;如果時(shí)間太長,超過了鍵按下的持續(xù)時(shí)間,則會(huì)判不到按鍵。軟件去抖時(shí)間不宜太短也不宜太長,定為20ms 。本設(shè)計(jì)使用行列掃描方式,其電路原理圖如圖2-11所示:圖2-11 鍵盤電路本課題使用行列掃描方式,在單片機(jī)的p1口上連接上4*4的鍵盤,單片機(jī)掃描鍵盤,如果有鍵按下,單片機(jī)會(huì)根據(jù)鍵碼執(zhí)行相應(yīng)的程序,使整個(gè)系統(tǒng)的功能更加完善。2.6 報(bào)警電路圖2-12 報(bào)警電路為了實(shí)現(xiàn)多點(diǎn)溫度檢測報(bào)警系統(tǒng),本課題采用at89c51單片機(jī)作為主控制器,采用掃描的方式對多點(diǎn)ds18b20溫度傳感器獲取對應(yīng)該位置的溫度值,經(jīng)處

45、理后通過串口可以立即發(fā)送到上位機(jī),如溫度不在設(shè)定的范圍內(nèi),給出報(bào)警信號。如圖2-12所示:2.7 串行口通信模塊2.7.1 rs232接口簡介rs232是目前異步串行通信中應(yīng)用最廣泛的標(biāo)準(zhǔn)總線,適用于數(shù)據(jù)中斷設(shè)備(dte和數(shù)據(jù)通信設(shè)備(dec)ela rs232是目前最常用的串行接口標(biāo)準(zhǔn),用于計(jì)算機(jī)與計(jì)算機(jī)之間,計(jì)算機(jī)與單片機(jī)的數(shù)據(jù)通信。此標(biāo)準(zhǔn)的目的是定義數(shù)據(jù)終端設(shè)備(dte)之間的電氣特性。rs232提供了單片機(jī)與單片機(jī)、單片機(jī)與pc機(jī)之間串行數(shù)據(jù)通信的標(biāo)準(zhǔn)接口。但rs232規(guī)定的邏輯電平與單片機(jī)的邏輯電平是不一致的。因此在應(yīng)用中,必須把微處理器的信號電平(ttl電平)轉(zhuǎn)換為rs232電平,

46、或者對二者進(jìn)行逆轉(zhuǎn)換。選用電平轉(zhuǎn)換芯片max232來實(shí)現(xiàn)的。(1)rs-232通訊協(xié)議特性由于mcs51單片機(jī)的串口采用ttl電平,信號幅值低易受干擾,只能在很近的距離內(nèi)實(shí)現(xiàn)通訊鑒于mcs51單片機(jī)串行接口的弱點(diǎn),在單片機(jī)系統(tǒng)串行通訊中廣泛采用標(biāo)準(zhǔn)接口許多儀器儀表出廠時(shí)配有串行接口或附件模塊銷售在標(biāo)準(zhǔn)串行接口中rs-232由于使用方便、線少而得到廣泛地應(yīng)用,多年來不但沒有被淘汰,相反使用更加廣泛rs-232c接口引腳信號定義如表2。引腳號(9針)引腳號(25針)信號方向功能18dcdin數(shù)據(jù)載波檢測23rxdin接收數(shù)據(jù)32txdout發(fā)送數(shù)據(jù)420dtrout數(shù)據(jù)終端裝置(dte)就緒57g

47、nd信號公共參考地66dsrin數(shù)據(jù)通訊裝置(dce)就緒74rtsout請求發(fā)送85ctsin清除發(fā)送922riin振鈴指示表2 rs-232c接口引腳信號定義由于pc機(jī)串行口使用的是rs- 232c邏輯電平,而at89c51單片機(jī)串行口的輸入輸出均為ttl電平,因此,當(dāng)pc機(jī)與單片機(jī)通信時(shí)必須進(jìn)行電平轉(zhuǎn)換。常見的電平轉(zhuǎn)換方法有以下3種:使用mc1488和mc1489電平轉(zhuǎn)換器。由于mc1488和mc1489需要15v或12v供電,所以使用不方便,而且工作穩(wěn)定性和可靠性也不高。使用2個(gè)三極管構(gòu)成準(zhǔn)rs- 232c電平轉(zhuǎn)換器。采用此方法串行通信只能工作于半雙工狀態(tài),而且程序設(shè)計(jì)復(fù)雜。使用雙向電

48、平轉(zhuǎn)換集成芯片。此方法優(yōu)點(diǎn)是只需單一個(gè)+5v 電源供電,可靠性高,無需增加程序設(shè)計(jì)的復(fù)雜性,常用的芯片有icl232,max232,tsc232等。本文采用最后一種方法,芯片選用max232。2.7.2 max232簡介max232芯片是maxim 公司生產(chǎn)的,包含兩路接收器和驅(qū)動(dòng)器的ic片max232芯片內(nèi)部有一個(gè)電源電壓轉(zhuǎn)換器,可以把輸入的+5v 電壓變換為rs-232輸出電平所需的一1o+ 10v 電壓所以采用此芯片接口串行通信系統(tǒng)只需單一的+5v電源就可以了對于沒有一12+12v 的場合,其適應(yīng)性更強(qiáng)加之其價(jià)格適中,硬件接口簡單,所以被廣泛采用max232芯片的引腳結(jié)構(gòu)如圖2-13-1

49、和圖2-13-2所示 圖2-13-1 max232 組成框圖 圖2-13-2 max232引腳圖圖中上半部分電容c1,c2,c3,c4及v+,v-是電源變換電路部分在實(shí)際應(yīng)用中,器件對電源噪聲很敏感,因此vcc必須對地加去耦電容,其值為0.1f。電容c1,c2,c3,c4取同樣數(shù)值的膽電解電容取10f/16v。用于提高抗干擾能力,在連接時(shí)必須盡量靠近器件圖中下半部分為發(fā)送和接收部分實(shí)際應(yīng)用中,t1in,t2in 可直接連接ttl/cmos電平的mcs51的單片機(jī)的串行發(fā)送端txd;r1out,r2out 可直接連接ttl/cmos電平的mcs51的單片機(jī)的串行接收端rxd/txd;t1out,

50、t2out可直接連接pc機(jī)的rs-232串口的接收端rxd/txd;riin,r2in可直接連接pc機(jī)的r 232串口的發(fā)送端txd2.7.3 串行口通信電路在設(shè)計(jì)硬件接口電路時(shí),應(yīng)充分考慮到電路的電氣特性、邏輯電平以及驅(qū)動(dòng)能力的匹配問題,若匹配得不好,將會(huì)導(dǎo)致通信失敗。如前所述,本文采用max232作為pc機(jī)與單片機(jī)的串行通信接口芯片。硬件連接時(shí),可從max232中的2路發(fā)送器和接收器中任選一路,只要注意發(fā)送與接收的引腳對應(yīng)關(guān)系即可。接口電路如圖2-14所示。圖2-14 串行口通信電路第 38 頁第三章 軟件部分第三章 軟件部分3.1 軟件語言和編譯工具的選擇程序設(shè)計(jì)語言是實(shí)現(xiàn)人機(jī)交換信息的

51、最基本工具,可分為機(jī)器語言、匯編語言和高級語言。機(jī)器語言用二進(jìn)制編碼表示每一條指令,是計(jì)算機(jī)能直接識別和執(zhí)行的語言。用機(jī)器語言編寫的程序成為機(jī)器語言程序或者指令程序(機(jī)器碼程序)。因?yàn)闄C(jī)器只能識別和執(zhí)行這種機(jī)器碼程序,所以又稱它為目標(biāo)程序。用機(jī)器語言編寫程序不易記憶、不易查錯(cuò)、不易修改。為了克服機(jī)器語言的上述缺點(diǎn),可采用有一定含義的符號,即指令助記符來表示,一般都采用某些有關(guān)的英文單詞的縮寫。這樣就出現(xiàn)了另一種程序語言匯編語言。匯編語言是用助記符、符號和數(shù)字等來表示指令的程序語言,容易理解和記憶,它與機(jī)器語言指令是一一對應(yīng)的。匯編語言不像高級語言(如basic)那樣通用型強(qiáng),而是屬于某種計(jì)算機(jī)

52、所獨(dú)有,與計(jì)算機(jī)的內(nèi)部硬件結(jié)構(gòu)密切相關(guān)。用匯編語言編寫的程序稱為匯編語言程序。以上兩種語言都是低級語言。盡管匯編語言有不少優(yōu)點(diǎn),但它仍存在著機(jī)器語言的某些缺陷:與cpu的硬件結(jié)構(gòu)密切相關(guān),不同的cpu其匯編語言是不同的。這使得匯編語言程序不能移植,使用不便;其次,要使用匯編語言進(jìn)行程序設(shè)計(jì)必須了解所使用cpu硬件的結(jié)構(gòu)與性能,對程序設(shè)計(jì)人員有較高的要求。為此,又出現(xiàn)了對單片機(jī)進(jìn)行編程的高級語言,如plm,c等。 keil c51是美國keil software公司出品的51系列兼容單片機(jī)c語言軟件開發(fā)系統(tǒng),與匯編相比,c語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯

53、編語言后再使用c來開發(fā),體會(huì)更加深刻。 keil c51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到keil c51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級語言的優(yōu)勢。經(jīng)分析綜合得知,本課題采用c語言進(jìn)行編程。3.2 軟件設(shè)計(jì)的原則在單片機(jī)應(yīng)用開發(fā)中代碼使用效率、單片機(jī)的抗干擾性以及軟件可靠性是實(shí)際工程設(shè)計(jì)的重點(diǎn)。單片機(jī)應(yīng)用軟件系統(tǒng)設(shè)計(jì)包括功能模塊劃分、程序流程確立、模塊接口設(shè)計(jì)以及程序代碼編寫。我們依據(jù)系統(tǒng)的功能要求,將整體軟件系統(tǒng)分割成若干個(gè)獨(dú)立的程

54、序模塊。這些程序模塊可以是幾條語句的集合、功能函數(shù)或程序文件。隨后,根據(jù)個(gè)程序模塊的實(shí)現(xiàn)功能寫出流程,一般需要寫出具體的實(shí)現(xiàn)功能描述。程序代碼通常采用匯編語言或高級語言(c語言)編寫。本課題采用c語言編程,在此必須注意以下問題:(1)提高程序代碼效率必須熟悉當(dāng)前使用的c語言編譯器,試驗(yàn)每條c語言編譯以后對應(yīng)的匯編語言的語句行數(shù),這樣就可以很明確的知道代碼效率。(2)減少程序錯(cuò)誤我們在編寫程序時(shí),要注重考慮如下方面。1物理參數(shù) 2資源參數(shù) 3應(yīng)用參數(shù) 4過程參數(shù)(3)單片機(jī)的抗干擾性防止干擾最有效的方法是去除干擾源、隔離干擾路徑。單片機(jī)干擾最常見的現(xiàn)象就是復(fù)位,導(dǎo)致程序運(yùn)行異常。設(shè)計(jì)系統(tǒng)是一般需

55、要添加一個(gè)“看門狗”監(jiān)控模塊,在系統(tǒng)出現(xiàn)不可逆轉(zhuǎn)的干擾時(shí),監(jiān)控模塊將重啟系統(tǒng),并從斷點(diǎn)處繼續(xù)執(zhí)行。(4)系統(tǒng)的可靠性1要測試單片機(jī)軟件功能的完善性。2上電、掉電測試。3系統(tǒng)耗損測試。3.3 軟件的實(shí)現(xiàn)系統(tǒng)軟件設(shè)計(jì)主要包括系統(tǒng)程序和流程圖,根據(jù)整個(gè)系統(tǒng)的要求,完成溫度的測量與控制必須經(jīng)過以下幾個(gè)步驟:單片機(jī)接受傳感器的溫度信號,并通過max7219驅(qū)動(dòng)顯示出來,單片機(jī)掃描鍵盤,接受控制信號,并將溫度顯示出來,若溫度不在范圍內(nèi)則發(fā)出報(bào)警。系統(tǒng)主程序框圖如圖3-1.圖3-1 系統(tǒng)主程序流程圖3.3.1 傳感器程序(1)dsl8b20編程簡介每一片單總線芯片內(nèi)部都有一個(gè)全球惟一的64 位編碼,在多路測

56、溫時(shí)就是通過匹配每個(gè)芯片的rom編碼(id),來搜尋該路的溫度。ds18b20有9個(gè)可擦寫的內(nèi)部寄存器,稱為便箋式ram。所有的串行通訊,讀寫每一個(gè)bit位數(shù)據(jù)都必須嚴(yán)格遵守器件的時(shí)序邏輯來編程,同時(shí)還必須遵守總線命令序列,對單總線的ds18b20芯片來說,訪問每個(gè)器件都要遵守下列命令序列:首先是初始化;其次執(zhí)行rom 命令;最后就是執(zhí)行功能命令(r0m命令和功能命令后面以表格形式給出)。如果出現(xiàn)序列混亂,則單總線器件不會(huì)響應(yīng)主機(jī)。當(dāng)然,搜索rom 命令和報(bào)警搜索命令,在執(zhí)行兩者中任何一條命令之后,要返回初始化?;趩慰偩€上的所有傳輸過程都是以初始化開始的,初始化過程由主機(jī)發(fā)出的復(fù)位脈沖和從機(jī)響應(yīng)的應(yīng)答脈沖組成。應(yīng)答脈沖使主機(jī)知道,總線上有從機(jī)設(shè)備,且準(zhǔn)備就緒。每次訪問任何單總線器件,必須嚴(yán)格遵守這個(gè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論