[畢業(yè)設(shè)計(jì)精品]單片機(jī)控制的多點(diǎn)測溫系統(tǒng)_第1頁
[畢業(yè)設(shè)計(jì)精品]單片機(jī)控制的多點(diǎn)測溫系統(tǒng)_第2頁
[畢業(yè)設(shè)計(jì)精品]單片機(jī)控制的多點(diǎn)測溫系統(tǒng)_第3頁
[畢業(yè)設(shè)計(jì)精品]單片機(jī)控制的多點(diǎn)測溫系統(tǒng)_第4頁
[畢業(yè)設(shè)計(jì)精品]單片機(jī)控制的多點(diǎn)測溫系統(tǒng)_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、畢 業(yè) 論 文題 目單片機(jī)控制的多點(diǎn)測溫系統(tǒng)學(xué)生姓名 學(xué) 號 專 業(yè)電子信息工程班 級 指導(dǎo)教師 2011 年 4 月基于單片機(jī)多點(diǎn)測溫系統(tǒng)的設(shè)計(jì)摘 要溫度是工業(yè)生產(chǎn)中常見的和最基本的工藝參數(shù)之一, 任何物理變化和化學(xué)變化的過程都與溫度密切相關(guān), 在許多生產(chǎn)過程中常常需要測量和控制幾十以至幾百個(gè)點(diǎn)的數(shù)據(jù)。如果用常規(guī)模擬儀表來完成這些任務(wù), 由于檢測點(diǎn)太多會使儀表臺數(shù)相應(yīng)增多, 系統(tǒng)可靠性隨之下降, 維修困難。測量不精確是其主要方面,在這樣的形式下,就需要一種能同時(shí)對多點(diǎn)溫度進(jìn)行測量,并能夠進(jìn)行數(shù)據(jù)傳輸。本課題用本課題以at89c51單片機(jī)系統(tǒng)為核心,ds18b20智能傳感器作為檢測儀,通過系統(tǒng)

2、總線及通信協(xié)議將采集的數(shù)據(jù)傳送到主控機(jī),進(jìn)行進(jìn)一步的存檔、處理。主控機(jī)負(fù)責(zé)控制指令的發(fā)送,控制各個(gè)從機(jī)進(jìn)行溫度采集,收集測量數(shù)據(jù),并對測量結(jié)果(包括歷史數(shù)據(jù))進(jìn)行整理、顯示和存儲。主控機(jī)與各從機(jī)之間能夠相互聯(lián)系、相互協(xié)調(diào),從而達(dá)到系統(tǒng)整體統(tǒng)一、和諧的效果,進(jìn)而達(dá)到對多點(diǎn)進(jìn)行溫度監(jiān)控的目的的系統(tǒng)。關(guān)鍵詞:at89c51單片機(jī);ds18b20智能傳感器;溫度測量imanagement system for book storageabstractthe temperature is common in the industrial and technological parameters of t

3、he most basic, any physical and chemical the process of change in temperature is closely related, in many of the process often requires gaging and controls and hundreds of the data. if you use a regular instrument to finish the task, because detection point too much will the instrument number of uni

4、ts corresponding number system reliability continue to decline, the maintenance of difficulties. no accurate survey is the main aspects, in such form, a kind of energy for more temperature measurement is made and can be used for data transmission. this issue with this subject in a monolithic integra

5、ted circuits at89c51 system at the core, as intelligent sensors ds18b20 ignition-coil through systerm bus and communications protocol would collect data to master, any record, processing. master machine instructions. responsible for controlling the control of the different from taking the collection

6、, data collection measures and the measurement (include historical data) for the display and storage. master machine and from the interrelations between, harmony and achieve a unified system, harmony, and reach for more for the purpose of the monitoring system.keywords: at89c51 microcontroller;smart

7、 sensords18b20;temperature measurement目 錄摘 要iabstractii目 錄iii第一章 引言11.1 單片機(jī)發(fā)展的概述11.2 課題意義11.3 開發(fā)工具的選擇2第二章 所用開發(fā)工具簡介32.1 keil 簡介32.2 protues 簡介62.3 c51與c語言的異同8第三章 系統(tǒng)總體論證分析93.1 系統(tǒng)分析93.2 系統(tǒng)整體目標(biāo)103.3系統(tǒng)的實(shí)現(xiàn)方案10第四章 系統(tǒng)硬件電路的設(shè)計(jì)124.1 系統(tǒng)硬件電路的構(gòu)成及測量原理124.1.1 系統(tǒng)硬件電路設(shè)計(jì)124.2 51單片機(jī)實(shí)驗(yàn)板及相關(guān)信息134.2.1 單片機(jī)控制電路134.3 溫度采集模塊17

8、4.3.1 ds18b20介紹174.3.2 ds18b20內(nèi)部結(jié)構(gòu)和工作原理194.4 系統(tǒng)詳細(xì)設(shè)計(jì)204.4.1 鍵盤模塊204.4.2 液晶顯示模塊214.4.3 數(shù)碼管驅(qū)動模塊22第五章 系統(tǒng)軟件程序設(shè)計(jì)245.1 程序設(shè)計(jì)開發(fā)環(huán)境245.2 軟件程序設(shè)計(jì)245.3 相關(guān)程序的簡單介紹255.3.1 ds18b20測溫程序設(shè)計(jì)255.3.2 數(shù)碼管顯示程序285.4 keil與protues連調(diào)295.5 誤差分析31結(jié)束語32參考文獻(xiàn)33附錄134致 謝3635本科生畢業(yè)設(shè)計(jì)(論文)第一章 引言1.1 單片機(jī)發(fā)展的概述單片機(jī)也叫做嵌入式微處理控制器,是指在一塊芯片上集成了微處理器(c

9、pu)、存儲器、并行輸入/輸出接口、定時(shí)器/計(jì)數(shù)器和中斷控制器等部件。由于單片機(jī)具有體積小、成本低、性能穩(wěn)定等優(yōu)點(diǎn),其開發(fā)應(yīng)用已在工業(yè)測控、機(jī)電一體化、智能儀表、家用電航空航天及辦公自動化等各個(gè)領(lǐng)域中占據(jù)了重要的地位。美國intel公司于1980年在mcs-48單片機(jī)的基礎(chǔ)上推出了mcs-51系列單片機(jī)。該系列單片機(jī)與前者相比,其結(jié)構(gòu)更先進(jìn),功能更強(qiáng)大,并在原有基礎(chǔ)上增加了更多的電路單元和指令。它有四個(gè)8位并行端口,一個(gè)全雙工串口,兩個(gè)16位定時(shí)/計(jì)數(shù)器,5個(gè)中斷源,兩種省電模式;多達(dá)111條指令,有單獨(dú)的乘除法指令,各有一個(gè)獨(dú)立的64k程序存儲器和數(shù)據(jù)存儲器空間等。最初的mcs-51系列單片

10、機(jī)主要包括8031、8051、8751三個(gè)品種,其實(shí)他們早已被性能更加優(yōu)良、與之兼容的產(chǎn)品所取代。現(xiàn)在所說的c51單片機(jī)泛指與其兼容的所有采用mcs-51內(nèi)核的單片機(jī)。1.2 課題意義隨著生活質(zhì)量的提高,家庭工業(yè)生產(chǎn)和工藝制造等隨處可見溫度控制的身影,農(nóng)業(yè)生產(chǎn)中的溫室大棚溫度控制,尤其在工業(yè)生產(chǎn)及現(xiàn)代化國防建設(shè)中,溫度控制都起著重要的作用。而單片機(jī)以其功能強(qiáng)、體積小、可靠性高、造價(jià)低和開發(fā)周期短等優(yōu)點(diǎn),為自動化和各個(gè)測控領(lǐng)域中廣泛應(yīng)用的器件。 采用單片機(jī)來對溫度進(jìn)行控制,不僅具有控制方便、簡單和靈活性大、高精度等優(yōu)點(diǎn),而且可以大幅度提高被控溫度的技術(shù)指標(biāo),從而能夠大大提高產(chǎn)品的質(zhì)量和數(shù)量。單片

11、機(jī)的應(yīng)用控制已出現(xiàn)在生產(chǎn)生活各個(gè)領(lǐng)域,其功能強(qiáng)、體積小、可靠性高、造價(jià)低和開發(fā)周期短等優(yōu)點(diǎn),成為自動化和各個(gè)測控領(lǐng)域中廣泛應(yīng)用的器件。第二章 引言 在當(dāng)前節(jié)能降耗的大背景下,通過對溫度進(jìn)行測量、監(jiān)控可以改善各種設(shè)備和系統(tǒng)的能源消耗不合理的狀況,減少能源的浪費(fèi)。隨著科技的進(jìn)步及發(fā)展,溫度傳感器就有測量精度高、功能多樣化等特點(diǎn)。而溫度傳感器正從原有的模擬化、集成化朝著數(shù)字化,智能化方向跨越式發(fā)展。隨著現(xiàn)在地球“溫室效應(yīng)”的加劇,溫度已然成為人們越來越普遍關(guān)注的問題。目前市場主要使用單點(diǎn)和多點(diǎn)兩種溫度測量儀表。單點(diǎn)溫測儀表,主要采用傳統(tǒng)的模擬集成溫度傳感器,其中又以熱電阻、熱電偶等傳感器的測量精度高

12、,測量范圍大,而得到了普遍的應(yīng)用。其測溫范圍大都在-200一800之間,分辨率12位,最小分辨溫度在 0.0010.01之間,自帶led顯示模塊,顯示4位到16位不等。而有的儀表還具有存儲功能,可存儲幾百到幾千組數(shù)據(jù)。該類儀表可很好的滿足單個(gè)用戶單點(diǎn)測量的需要。多點(diǎn)溫度測量儀表,雖然相對與單點(diǎn)測量精度有一定的差距,實(shí)現(xiàn)了多路溫度的測控,但價(jià)格昂貴。針對目前市場的現(xiàn)狀,本課題提出了一種可滿足要求、可擴(kuò)展的并且性價(jià)比高的單片機(jī)多路測溫系統(tǒng)。1.3 開發(fā)工具的選擇本系統(tǒng)開發(fā)使用的工具為keil uvision2,protues7.5 sp2。本科生畢業(yè)設(shè)計(jì)(論文)第二章 所用開發(fā)工具簡介2.1 ke

13、il 簡介keil uvision2是美國keil software公司出品的51系列兼容單片機(jī)c語言軟件開發(fā)系統(tǒng),使用接近于傳統(tǒng)c語言的語法來開發(fā),與匯編相比,c語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用,而且大大的提高了工作效率和項(xiàng)目開發(fā)周期,還能嵌入?yún)R編,可以在關(guān)鍵的位置嵌入,使程序達(dá)到接近于匯編的工作效率。 keil c51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全windows界面,能在很短的時(shí)間內(nèi)就能學(xué)會使用keil c51來開發(fā)您的單片機(jī)應(yīng)用程序 。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會到keil c51生成的目標(biāo)代碼效率非常之

14、高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級語言的優(yōu)勢。 keil使用簡單介紹keil使用“工程”(project)的概念,對工程(而不能對單一的源程序)進(jìn)行編譯/匯編、連接等操作。首先新建工程(project-new project),如圖2.1.1所示 圖2.1.1 keil工程新建文件保存類型為.uv2,如下圖所示:圖2.1.2 保存工程點(diǎn)擊保存后在跳出來的對話框中選擇ateml下面的89c51單片機(jī)。如圖2.1.3所示。 圖2.1.3 單片機(jī)類型選擇此時(shí)的工程管理窗口的文件頁(files)上會出現(xiàn)“target1”,點(diǎn)擊前面的+,接著選擇source gro

15、up1,右鍵單擊會彈出快捷菜單,然后選擇“add file to group source group1”這一命令,如圖2.1.4所示。出現(xiàn)了一個(gè)對話框,需要尋找并加入源文件,源文件后綴為.c或.asm,如圖2.1.5所示。打開空白c文件就可以開始編寫程序了。圖2.1.4 添加源文件圖2.1.5 源文件2.2 protues 簡介 protues軟件是英國labcenter electronics公司出版的eda工具軟件。它不僅具有其它eda工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。雖然目前國內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。

16、proteus是世界上著名的eda工具,從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到pcb設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、pcb設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺,其處理器模型支持8051、hc11、pic10/12/16/18/24/30/dspic33、avr、arm、8086和msp430等,2010年即將增加cortex和dsp系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持iar、keil和mplab等多種編譯器。 下面介紹一下proteus的編輯環(huán)境。(1)工作界面proteus isis的工作界面是一種

17、標(biāo)準(zhǔn)的windows界面,如圖4.2.1所示。包括:繪圖工具欄、標(biāo)題欄、預(yù)覽窗口、對象選擇器窗口、預(yù)覽對象方位控制按鈕、主菜單、標(biāo)準(zhǔn)工具欄、圖形編輯窗口、狀態(tài)欄、對象選擇按鈕、仿真進(jìn)程控制按鈕。圖2.2.1 proteus isis的工作界面(2) 主菜單proteus包括file、 edit、view等12個(gè)菜單欄,如圖5.2所示。每個(gè)菜單欄又有自己的菜單,proteus的菜單欄完全符合windows操作風(fēng)格。圖2.2.2 proteus isis的菜單欄(3) 工具欄工具欄包括菜單欄下面的標(biāo)準(zhǔn)工具欄和右邊的繪圖工具欄,標(biāo)準(zhǔn)工具欄的內(nèi)容與菜單欄的內(nèi)容一一對應(yīng),繪圖工具欄有豐富的操作工具,選擇

18、不同的按紐會得到不同的工具。2.3 c51與c語言的異同c語言編屬于高級語言,具有可移植性,能夠結(jié)構(gòu)化編程。使用標(biāo)準(zhǔn)c語言的程序,幾乎都可以不作改變移植到不同的微機(jī)平臺上,對于嵌入式等的微控制芯片,屬于標(biāo)準(zhǔn)c語言的部分也很少需要修改,而且程序很容易讀懂。c語言編寫程序結(jié)構(gòu)清晰,移植性好,容易維護(hù)和修改。匯編語言針對不同的操作系統(tǒng)平臺,不同的微控制器,指令都是完全不同的,即使指令相似,也不具有可移植性。但是匯編語言是針對專門的控制器的,所以運(yùn)行速度可以精確到一個(gè)指令周期。匯編語言的程序讀懂需要借助微控制器的指令手冊以及各個(gè)寄存器的說明,所以很難讀懂。匯編語言編寫代碼實(shí)時(shí)性強(qiáng),能夠直接控制硬件的工

19、作狀態(tài),但是不具有可移植性,維護(hù)和修改困難。而軟件keil正是利用了c語言這一優(yōu)點(diǎn),并融入豐富的庫函數(shù),來實(shí)現(xiàn)51單片機(jī)的各種應(yīng)用程序的先決條件。c51數(shù)據(jù)類型與標(biāo)準(zhǔn)c數(shù)據(jù)類型的最大不同之處:位型圖2.1 c51的數(shù)據(jù)類型本科生畢業(yè)設(shè)計(jì)(論文)第三章 系統(tǒng)總體論證分析3.1 系統(tǒng)分析本系統(tǒng)硬件設(shè)計(jì)包含兩部分內(nèi)容:一是系統(tǒng)擴(kuò)展,即單片機(jī)內(nèi)部的資源,包括存儲器(rom和ram)、輸入輸出接口、定時(shí)器/計(jì)數(shù)器、串行口、中斷系統(tǒng)等不能滿足應(yīng)用系統(tǒng)的要求時(shí),必須進(jìn)行外部擴(kuò)展,選擇適當(dāng)?shù)男酒?,設(shè)計(jì)相應(yīng)的電路;二是系統(tǒng)的配置,即按照系統(tǒng)功能要求配置外圍設(shè)備,如鍵盤、顯示器等,并設(shè)計(jì)合適的接口電路。系統(tǒng)擴(kuò)展及

20、其模塊設(shè)計(jì)的注意事項(xiàng):(1) 盡量選取標(biāo)準(zhǔn)、典型、模塊化的電路,提高系統(tǒng)設(shè)計(jì)的成功率。(2) 硬件結(jié)構(gòu)應(yīng)結(jié)合軟件設(shè)計(jì)一并統(tǒng)籌考慮??紤]的思路是:軟件能實(shí)現(xiàn)的功能盡可能由軟件完成,這樣能夠簡化硬件結(jié)構(gòu)。但同時(shí)要考慮到軟件實(shí)現(xiàn)時(shí)的延時(shí)以及cpu的時(shí)間占用問題。(3) 整個(gè)系統(tǒng)中的有關(guān)器件要盡可能做到匹配,比如選擇cmos芯片單片機(jī)構(gòu)成低功耗系統(tǒng)時(shí),系統(tǒng)中的所有芯片都應(yīng)該選擇低功耗的器件;選擇晶振頻率較高時(shí),存儲器的存取時(shí)間有限,就該選擇允許存取速度較高的芯片。(4) 可靠性及抗干擾性設(shè)計(jì)是硬件系統(tǒng)設(shè)計(jì)不可缺少的部分,主要包括芯片、器件選擇、去耦合濾波等。(5) 單片機(jī)外接電路較多時(shí),應(yīng)考慮其帶載能

21、力(驅(qū)動能力)。驅(qū)動能力不足時(shí),系統(tǒng)便會不可靠工作,解決的辦法是增設(shè)驅(qū)動器或減少芯片功耗。(6) 系統(tǒng)硬件設(shè)計(jì)在滿足系統(tǒng)功能要求的基礎(chǔ)上,應(yīng)適當(dāng)留有余地,以備以后修改、擴(kuò)展之需。綜上所述,硬件設(shè)計(jì)如下:本系統(tǒng)采用目前較為普及的at89c51單片機(jī)作為系統(tǒng)的核心。它不但便于實(shí)現(xiàn)設(shè)計(jì)的要求指標(biāo),同時(shí)還具有較高的性能/價(jià)格比。其他元器件的選擇也比較固定,電路設(shè)計(jì)方面也與教科書中內(nèi)容相近。從整體系統(tǒng)來看地址譯碼方法也只能采用地址譯碼法。但在鍵盤接口、存儲器擴(kuò)展、總線驅(qū)動器、可靠性設(shè)計(jì)等方面還需要多加考慮。(1) 鍵盤接口由于要求頻率任意可調(diào),即要求按鍵數(shù)較多,于是采用矩陣式鍵盤以節(jié)省i/o口。矩陣式鍵

22、盤適用于按鍵數(shù)量較多的場合,系統(tǒng)采用了行列式鍵盤設(shè)計(jì)即矩陣鍵盤,用i/o線組成行、列結(jié)構(gòu),按鍵設(shè)置在行列的交點(diǎn)上,44的行列結(jié)構(gòu)可構(gòu)成16個(gè)鍵的鍵盤。按鍵的識別方法有兩種,一種為掃描法,另一種為反轉(zhuǎn)法。此設(shè)計(jì)采用了行列式及與之相適應(yīng)的行列掃描法。 (2) 為增加對數(shù)碼管顯示器的驅(qū)動能力及穩(wěn)定性,在它與at89c51之間采用了max7221顯示驅(qū)動芯片實(shí)現(xiàn)穩(wěn)定驅(qū)動。 (3)可靠性方面在使用本系統(tǒng)時(shí),可能會受到多種干擾的影響,這將直接影響到系統(tǒng)的穩(wěn)定性,為此,本系統(tǒng)適當(dāng)加入去耦電容,制版時(shí)使在電路板周圍的地線形成環(huán)形抗干擾填充區(qū)。以減少干擾,保證精度。 3.2 系統(tǒng)整體目標(biāo) 本系統(tǒng)的實(shí)現(xiàn)目標(biāo) :

23、(1)實(shí)時(shí)巡檢功能 本系統(tǒng)能檢測多路溫度,檢測溫度允許范圍099。同時(shí)根據(jù)檢測環(huán)境,檢測點(diǎn)數(shù)能夠擴(kuò)展。 (2)巡檢循環(huán) 應(yīng)用8位led顯示,通過按鍵的控制,可以在屏幕中不斷跳轉(zhuǎn)顯示檢測的當(dāng)前溫度值。(3) 系統(tǒng)統(tǒng)一設(shè)置溫度修正值,并顯示當(dāng)前的溫度、時(shí)間等信息,人機(jī)界面有好。 3.3 系統(tǒng)的實(shí)現(xiàn)方案溫度測量是通過ds18b20對溫度進(jìn)行采集,并存儲在可擦寫的eprom中,但接受到主控機(jī)的命令后,將采集的溫度送至51單片機(jī)的p1口,再通過串口送至液晶顯示器上將溫度顯示出來,并達(dá)到輪循的效果由于該溫度控制采用數(shù)字輸出形式,因此不需要a/d轉(zhuǎn)換器。單片機(jī)主要是對溫度傳感器ds18b20進(jìn)行編程,由于a

24、t89系列單片機(jī)與mcs一51系列單片機(jī)兼容,所以,本系統(tǒng)中的單片機(jī)選用at89c51。圖3.2系統(tǒng)框圖 以at89c51單片機(jī)系統(tǒng)作為核心,對多點(diǎn)的溫度進(jìn)行實(shí)時(shí)控制巡檢。各檢測單元能對溫度進(jìn)行實(shí)時(shí)或定時(shí)采集,測量結(jié)果利用單片機(jī)的串行口,總線和通信協(xié)議將采集到的數(shù)據(jù)傳送至主控機(jī),通過主控機(jī)把傳送到的數(shù)據(jù)進(jìn)行分析、存檔、處理。主控機(jī)控制各個(gè)檢測單元進(jìn)行溫度采集,同時(shí)收集測量數(shù)據(jù),并對測量結(jié)果(包括歷史數(shù)據(jù))進(jìn)行整理、顯示和打印。主控機(jī)與各檢測單元之間相互作用、相互聯(lián)系,相互協(xié)調(diào),從而使系統(tǒng)具有整體統(tǒng)一和諧的控制效果。主控系統(tǒng)主要由單片機(jī)實(shí)施功能。其包括的功能有:溫度值的讀取與存儲、時(shí)鐘芯片時(shí)間值

25、的讀取與存儲、led液晶的顯示以及關(guān)于是否進(jìn)行聲光報(bào)警的判斷。還有就是單片機(jī)與pc機(jī)之間的通信、數(shù)據(jù)的傳輸也是靠單片機(jī)實(shí)現(xiàn)的。從機(jī)系統(tǒng)的主要功能就是將外界的模擬信號變?yōu)榭梢詡鬏數(shù)臄?shù)字信號。而溫度傳感器ds18b20本身包括寄生電源、溫度傳感器,64位激光rom單線接口、存放中間數(shù)據(jù)的高速暫存器(內(nèi)含便箋式ram)、存儲與控制邏輯、用于存儲用戶設(shè)定的溫度上下限值的th和tl觸發(fā)器、結(jié)構(gòu)寄存器,8位循環(huán)冗余校驗(yàn)碼(crc)發(fā)生器等八部分。它通過程序語言可實(shí)現(xiàn)9位至12位的數(shù)字值讀數(shù)方式,并在環(huán)境為93.7ms和750ms之間內(nèi),將溫度值轉(zhuǎn)化9位和12位的數(shù)字量。而且ds18b20與單片機(jī)之間的通信

26、是利用 one wire方式,只要在編程方面多注意這個(gè)傳感器的時(shí)序問題,能大大簡化這個(gè)系統(tǒng)的硬件規(guī)模,并且能準(zhǔn)確地讀取溫度信號,進(jìn)而進(jìn)行后續(xù)處理。所以ds18b2o就作為一個(gè)從機(jī)系統(tǒng)完成其重要的功能,其可使系統(tǒng)結(jié)構(gòu)更趨簡單,同時(shí),可靠性更高。 第四章 系統(tǒng)硬件電路的設(shè)計(jì)4.1 系統(tǒng)硬件電路的構(gòu)成及測量原理4.1.1 系統(tǒng)硬件電路設(shè)計(jì) 圖4.1.1 理想型的系統(tǒng)硬件結(jié)構(gòu)系統(tǒng)的硬件部分的原理圖由上下兩級計(jì)算機(jī)組成,分別稱之為上位機(jī)和下位機(jī)。系統(tǒng)硬件結(jié)構(gòu)如圖所示。其中上位機(jī)是普通的pc機(jī),主要完成數(shù)據(jù)管理及對下位機(jī)的控制,而下位機(jī)是以at89c51單片機(jī)為核心的單片機(jī)控制系統(tǒng)。下位機(jī)主要由五個(gè)部分組

27、成,第一部分為單片機(jī)控制系統(tǒng),它是以at89c51單片機(jī)為核心的微型計(jì)算機(jī)系統(tǒng),是整個(gè)測量系統(tǒng)的核心部分它控制各個(gè)部分按一定的要求進(jìn)行工作。第二部分為鍵盤與顯示接口電路部分,完成各種命令、參數(shù)的輸人以及各種狀態(tài)、數(shù)據(jù)的顯示輸出,構(gòu)成人機(jī)對話通道。第三部分是多通道測量電路部分,在單片機(jī)的控制下完成對多路通道的定時(shí)檢測。第四部分為通信接口電路部分主要用于信號變換。由于單片機(jī)的通信規(guī)范與機(jī)的通信規(guī)范不一致,所以需要進(jìn)行信號變換,使上位機(jī)與下位機(jī)之間能進(jìn)行正常通信。第五部分為電源部分,它為整個(gè)單片機(jī)測量系統(tǒng)提供幾種電壓的直流能源同時(shí)也為溫度傳感器提供恒流電源。 4.2 51單片機(jī)實(shí)驗(yàn)板及相關(guān)信息4.2

28、.1 單片機(jī)控制電路單片機(jī)(microcontroller,又稱微處理器)是在一塊硅片上集成了各種部件的微型機(jī),這些部件包括中央處理器cpu、數(shù)據(jù)存儲器ram、程序存儲器rom、定時(shí)器/計(jì)數(shù)器和多種uo接口電路。圖4.2.1 at89c51基本結(jié)構(gòu) at89c51的中央處理器由運(yùn)算器和控制邏輯構(gòu)成,其中包括若干特殊功能寄存器(sfr)。算.術(shù)邏輯單元alu能對數(shù)據(jù)進(jìn)行加、減、乘、除等算術(shù)運(yùn)算;“與、“或”、“異或”等邏輯運(yùn)算以及位操作運(yùn)算??刂七壿嬛饕ǘ〞r(shí)和控制邏輯、指令寄存器、譯碼器以及地址指針dp雙和程序寄存器pc等。 at89c51是一種帶4k字節(jié)閃存可編程可擦除只讀存儲器(fper

29、om flash program- -mable and erasable read only memory)的低電壓、高性能cmos 8位微處理器,俗稱單片機(jī)。其片內(nèi)含 4k bytes 的可反復(fù)擦寫的只讀程序存儲器(eprom)和 128 bytes 的隨機(jī)存取數(shù)據(jù)存儲器(ram),四個(gè)8位并行i/o口,一個(gè)全雙工串行口,兩個(gè)16位定時(shí)/計(jì)數(shù)器,5個(gè)中斷源,提供兩個(gè)中斷優(yōu)先級,21個(gè)特殊功能寄存器,可尋址各64kb的外部程序存儲器和數(shù)據(jù)存儲器,有位尋址功能和較強(qiáng)的布爾數(shù)據(jù)處理能力,有兩種軟件可選的低功耗運(yùn)行方式(空閑和掉電方式)。器件采用 atmel 公司的高密度、非易失性存儲技術(shù)生產(chǎn),

30、兼容標(biāo)準(zhǔn) mcs-51 指令系統(tǒng),片內(nèi)置通用 8 位中央處理器(cpu)和 flash 存儲單元,功能強(qiáng)大 at89c51 單片機(jī)可為您提 供許多高性價(jià)比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域。at89c51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。 at89c51具有pdip(雙列直插式)、tqfp(薄四方扁平式)、plcc(特殊引腳式)三種封裝形式,由于在實(shí)驗(yàn)開發(fā)中使用pdip較多故選取此類封裝的單片機(jī)作說明。 圖4.2.2 at89c51的pdip封裝引腳圖at89c51的引腳除了vcc和gnd之外,按其功能可分為以下三類:1) 時(shí)鐘電路引腳xtal1和xtal2:xtal

31、1和xtal2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動器件,xtal2應(yīng)不接。由于輸入至內(nèi)部時(shí)鐘信號要通過一個(gè)二分頻觸發(fā)器,因此對外部時(shí)鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。 2) i/o端口引腳:1 p0口:p0口為一個(gè)8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當(dāng)p0口的管腳第一次寫1時(shí),被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時(shí),p0 口作為原碼輸入口,當(dāng)fiash進(jìn)行校驗(yàn)時(shí),p0輸出原碼,此時(shí)p0外部必須被拉高。2 p1口:p

32、1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗(yàn)時(shí),p1口作為低八位地址接收。3 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)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時(shí),p2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)

33、部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時(shí),p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗(yàn)時(shí)接收高八位地址信號和控制信號。4 p3口:p3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個(gè)ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。p3口也可作為at89c51的一些特殊功能口,如下表所示: 引 腳特殊功能(第二功能) p3.0rxd串行數(shù)據(jù)輸入口 p3.1txd串行數(shù)據(jù)輸出口 p3.2int0 外部中斷0輸入 p3.3int1 外部中斷1輸入 p3.4t0記時(shí)器

34、0外部計(jì)數(shù)脈沖輸入 p3.5t1記時(shí)器1外部計(jì)數(shù)脈沖輸入 p3.6wr外部數(shù)據(jù)存儲器寫選通 p3.7rd外部數(shù)據(jù)存儲器讀選通表4.2.1 p3口的第二功能3)控制類引腳:1 rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持rst腳兩個(gè)機(jī)器周期的高電平時(shí)間。圖4.2.3 復(fù)位電路2 ale/prog:當(dāng)訪問外部存儲器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時(shí),ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時(shí),將跳過一個(gè)ale脈沖。如想禁止

35、ale的輸出可在sfr8eh地址上置0。此時(shí), ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。3 :外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個(gè)機(jī)器周期兩次有效。但在訪問外部數(shù)據(jù)存儲器時(shí),這兩次有效的信號將不出現(xiàn)。4 ea/vpp:當(dāng)/ea保持低電平時(shí),則在此期間外部程序存儲器(0000h-ffffh),不管是否有內(nèi)部程序存儲器。注意加密方式1時(shí),將內(nèi)部鎖定為reset;當(dāng)端保持高電平時(shí),此間內(nèi)部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。圖4.2.4 51單片機(jī)實(shí)驗(yàn)

36、板4.3 溫度采集模塊4.3.1 ds18b20介紹溫度由dallas公司所生產(chǎn)的一線式數(shù)字溫度傳感器ds18b20采集。ds18b20的測溫范圍位- 55125c,測試的分辨率能夠達(dá)到0.0625c,測試的溫度用符號擴(kuò)展位16位形式串行輸出。cpu只需一根端口線就可以與多個(gè)ds18b20進(jìn)行通信,占用的微處理器的端口較少,進(jìn)而可以節(jié)省大量的引線與邏輯電路。ds18b20的內(nèi)部是一個(gè)9字節(jié)的高速存儲器,存儲器用來存儲所設(shè)定的溫度值。其中它的前兩個(gè)字節(jié)是將要測得的溫度數(shù)據(jù),第一字節(jié)所存儲的是溫度的低八位,第二字節(jié)會是溫度的高八位,第三和第四字節(jié)將是溫度的上限th與溫度的下限tl的易失性拷貝,第五

37、字節(jié)會是結(jié)構(gòu)存儲器的易失性拷貝,此三字節(jié)的內(nèi)容在每一次的上電復(fù)位時(shí)均會被刷新,第六、七、八三個(gè)字節(jié)是用于內(nèi)部的計(jì)算,而第九字節(jié)為冗余校驗(yàn)字節(jié),用于保證通信的準(zhǔn)確性。當(dāng)溫度轉(zhuǎn)換命令發(fā)出轉(zhuǎn)換命令后,經(jīng)過轉(zhuǎn)換的溫度值將會以二字節(jié)補(bǔ)碼的形式存放在此存儲器的第一和第二字節(jié)中。單片機(jī)能夠通過單線接口讀到數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在前,高位在后,其中的高五位是符號位,中間的七位是整數(shù)位,最低四位將會是小數(shù)位。 圖4.3.1 ds18b20實(shí)物圖和仿真圖ds18b20現(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性,適合于惡劣環(huán)境的現(xiàn)場溫度測量。初始化時(shí)序、讀時(shí)序、寫時(shí)序,每一條命令和數(shù)據(jù)的傳輸都是

38、從單片機(jī)寫時(shí)序開始的,如要求ds18b20回送數(shù)據(jù),那么在進(jìn)行寫命令后,單片機(jī)需要啟動讀時(shí)序才能夠完成數(shù)據(jù)的接收。命令和數(shù)據(jù)的傳輸都是低位在先。其與單片機(jī)接口時(shí)僅需占用一個(gè)i/o端口。其特性如下:(1)只要求一個(gè)端口即可實(shí)現(xiàn)通信。(2)在ds18b20中的每個(gè)器件上都會有獨(dú)一無二的序列號。(3)測量的溫度范圍是55到125之間。(4)在實(shí)際的應(yīng)用中不需要任何外部元器件即可實(shí)現(xiàn)測溫。 (5)內(nèi)部有溫度上限和下限的報(bào)警設(shè)置。 (6)用戶可以從9位到12位來選擇數(shù)字溫度計(jì)的分辨率。 (7)支持多點(diǎn)測溫的功能,若干個(gè)ds18b20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)思維多點(diǎn)測溫。(8)電源極性接反時(shí),芯片

39、不會因?yàn)榘l(fā)熱而燒毀,但不能正常的工作。如果需要控制多個(gè)ds18b20進(jìn)行溫度采集時(shí),只需將ds18b20的i/o口都連到一起。如下圖所示。圖4.3.2 多個(gè)ds18b20與單片機(jī)連接 表4.3.3 ds18b20引腳說明 ds18b20的引腳功能為:dq為數(shù)字信號的輸入/輸出端;gnd為電源接地標(biāo)志;vcc為外接供電電源的輸入端。本設(shè)計(jì)使用單片機(jī)at89c51的p1.0口與ds18b20的單總線端口dq相連。4.3.2 ds18b20內(nèi)部結(jié)構(gòu)和工作原理 圖4.3.4 ds18b20內(nèi)部結(jié)構(gòu)圖表4.3.5 ds18b20的溫度數(shù)據(jù)表ds18b20內(nèi)部結(jié)構(gòu)主要是由四部分組成:64位光刻rom、溫度

40、傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器th和tl以及配置寄存器。ds18b20在出廠時(shí)的默認(rèn)設(shè)置為12位,最高位為符號位,溫度值共11位。單片機(jī)在讀取數(shù)據(jù)時(shí)可以一次讀取2個(gè)字節(jié)共16位,前5位為符號位,當(dāng)前5位為1時(shí),當(dāng)讀取的溫度為負(fù)值時(shí),讀到的數(shù)值要取反加1再乘以0.0625才是它的實(shí)際溫度值。而當(dāng)前5位為0時(shí),讀取的溫度為正值,讀到的數(shù)值直接乘以0.0625便是實(shí)際的溫度值。根據(jù)ds18b20的通訊協(xié)議,主機(jī)控制ds18b20完成溫度轉(zhuǎn)換必須經(jīng)過三個(gè)步驟:在每一次的讀寫之前都需要對ds18b20進(jìn)行復(fù)位;并且在復(fù)位成功后還要發(fā)送一條rom指令;最后再發(fā)送ram指令。只有這樣才能夠?qū)s18b20進(jìn)

41、行預(yù)定的操作。復(fù)位成功后會要求主cpu將數(shù)據(jù)線下拉500微秒左右,然后將會釋放,ds18b20在收到信號后將會等待1660微秒左右,然后將發(fā)出60240微秒的存在低脈沖,此時(shí)主cpu收到此信號才能夠表示復(fù)位成功。 對ds18b20的設(shè)計(jì),需要注意以下問題: (1)對系統(tǒng)結(jié)構(gòu)簡單的單線數(shù)字溫度傳感器ds18b20進(jìn)行操作,需要用較為復(fù)雜的程序完成。編制程序時(shí)必須嚴(yán)格按芯片數(shù)據(jù)手冊提供的有關(guān)操作順序進(jìn)行,讀、寫時(shí)間片程序要嚴(yán)格按要求編寫。尤其在使用ds18b20的高測溫分辨力時(shí),對時(shí)序及電氣特性參數(shù)要求更高。 (2)有多個(gè)測溫點(diǎn)時(shí),應(yīng)考慮系統(tǒng)能實(shí)現(xiàn)傳感器出錯自動指示,進(jìn)行自動ds18b20序列號和

42、自動排序,以減少調(diào)試和維護(hù)工作量。 (3)ds18b20在三線制應(yīng)用時(shí),應(yīng)將其三線焊接牢固;在兩線應(yīng)用時(shí),應(yīng)將vcc與gnd接在一起,焊接牢固并通過單總線給 ds18b20供電。若vcc脫開未接,傳感器只送85.0的溫度值。 (4)實(shí)際應(yīng)用時(shí),要注意單線的驅(qū)動能力,不能掛接過多的ds1sb20,同時(shí)還應(yīng)注意最遠(yuǎn)接線距離。另外還應(yīng)根據(jù)實(shí)際情況選擇其接線拓?fù)浣Y(jié)構(gòu)。 (5)實(shí)際應(yīng)用中發(fā)現(xiàn),如果掛接25個(gè)以上的ds18b20就有可能產(chǎn)生功耗問題。此外單總線長度也不宜超過80m,否則也會影響到數(shù)據(jù)的傳輸。實(shí)際工作中多采用分組的方式,用單片機(jī)的多個(gè)i/o來驅(qū)動多路ds18b20,還可以使用一個(gè)mosfet

43、將i/o口線直接和電源相連,起到上拉的作用。4.4 系統(tǒng)詳細(xì)設(shè)計(jì)4.4.1 鍵盤模塊(1)鍵盤模塊的主要功能本系統(tǒng)一共用到4個(gè)按鍵。分別為單片機(jī)的復(fù)位上翻、下翻以及修正/確定功能。圖4.4.1 鍵盤電路類似原理圖 鍵盤可以分為兩種:非編碼式鍵盤和編碼式鍵盤。非編碼式鍵盤是利用按鍵直接與單片機(jī)進(jìn)行連接而成的,這種鍵盤通常使用的按鍵數(shù)量較少,使用這種鍵盤,系統(tǒng)的功能通常比較簡單,需要完成的任務(wù)較少,同時(shí)可以降低系統(tǒng)的成本、簡化電路的設(shè)計(jì)。非編碼式鍵盤的接口電路需要根據(jù)設(shè)計(jì)者的需要自行決定,按鍵信息是通過單片機(jī)的接口軟件來獲取。編碼式鍵盤是較多按鍵和專用驅(qū)動芯片組合而成的,當(dāng)某個(gè)按鍵按下時(shí),它能夠處

44、理按鍵抖動、連擊等問題,直接輸出按鍵的編碼,無需系統(tǒng)軟件的干預(yù)。鍵盤的工作方式有三種:編碼掃描工作方式、中斷工作方式和定時(shí)掃描工作方式。本文的鍵盤設(shè)置包括四個(gè)按鍵:啟動鍵、溫度的增加鍵、溫度的降低鍵和確認(rèn)鍵。通過這四個(gè)鍵的整體配合,可以方便快捷的調(diào)節(jié)溫度的值,從而可以根據(jù)設(shè)置的溫度的上下限值觀察報(bào)警燈的工作狀態(tài),使調(diào)節(jié)的過程安全可靠。如下為此次電路的相關(guān)的按鍵的電路圖:圖4.4.2 鍵盤電路 4.4.2 液晶顯示模塊圖4.4.3數(shù)碼管顯示器本次試驗(yàn)所用的液晶顯示器為7seg-mpx8-cc-blue,共陰極數(shù)碼管顯示器。它左下側(cè)的abcdefg dp是led數(shù)碼管顯示器的i/o口,是段選信號,

45、右下側(cè)的12345678是它的位選信號,就是從左到右分別是第一位到第八位,段選信號與位選信號分別接到單片機(jī)的不同輸出口。 4.4.3 數(shù)碼管驅(qū)動模塊 max7221是maxim(美信)公司專為led顯示驅(qū)動而設(shè)計(jì)生產(chǎn)的串行接口八位led顯示驅(qū)動芯片.該芯片包含有七段譯碼器、位和段驅(qū)動器、多路掃描器、段驅(qū)動電流調(diào)節(jié)器、亮度脈寬調(diào)節(jié)器及多個(gè)特殊功能寄存器。該芯片采用串行接口方式,可以很方便地和單片機(jī)相連,未經(jīng)擴(kuò)展最多可用于8位數(shù)碼顯示或64段碼顯示.經(jīng)實(shí)際使用發(fā)現(xiàn),該芯片具有占用單片機(jī)i/o口少(僅三線)、顯示多樣、可靠性高、簡單實(shí)用、編程靈活方便的特點(diǎn). 圖4.4.4 max7221引腳名稱功能

46、介紹din 串行數(shù)據(jù)輸入端,數(shù)據(jù)存入內(nèi)部16位移位寄存器dig0dig7 8位共陰極數(shù)碼管的控制輸入端,顯示關(guān)閉時(shí)輸出高電平gnd 接地端,4和9腳都要接地 cs 片選輸入 當(dāng)cs=0時(shí),串行數(shù)據(jù)存入移位寄存器 當(dāng)cs為上升沿時(shí)鎖存最后16位數(shù)據(jù)clk 串行時(shí)鐘輸入端,最高頻率10mhz, 在時(shí)鐘上升沿?cái)?shù)據(jù)移位存入內(nèi)部移位寄存器,當(dāng)時(shí)鐘下降沿時(shí),數(shù)據(jù)由dout輸出, clk輸入僅當(dāng)cs=0時(shí)有效segasegg,segdp 數(shù)碼管七段驅(qū)動和小數(shù)點(diǎn)驅(qū)動端, 關(guān)閉顯示時(shí)各段驅(qū)動輸出為高電平。iset 連接到vdd的電阻連接端,用來模擬設(shè)定各段驅(qū)動電流。vdd 5v正電壓輸入端。dout 串行數(shù)據(jù)輸

47、出端,數(shù)據(jù)由din輸入, 經(jīng)16.5個(gè)時(shí)鐘延遲后由dout引腳輸出,此引腳用來擴(kuò)展max7221。表4.4.1 max7221引腳介紹 max7221功能: 串行數(shù)據(jù)輸入輸出時(shí)cs必須為低電平,串行數(shù)據(jù)由din送入一個(gè)16位的數(shù)據(jù)包,并在每個(gè)時(shí)鐘上升沿時(shí)存入內(nèi)部16位移位寄存器.數(shù)據(jù)經(jīng)16.5個(gè)周期后,在時(shí)鐘的下降沿由dout引腳輸出,見表3.2。d0d7包含數(shù)據(jù),d8d11包含寄存器地址,d12d15為未定義位,芯片最先接收d15位控制寄存器的地址圖見表3.4。表4.4.2 16位數(shù)據(jù)d0d15的排列表4.4.3 d15位控制寄存器的地址第五章 系統(tǒng)軟件程序設(shè)計(jì)5.1 程序設(shè)計(jì)發(fā)開環(huán)境介紹

48、本系統(tǒng)采用c語言軟件開發(fā),而keil軟件是目前最為流行的開發(fā)mcs-51內(nèi)核單片機(jī)的軟件。keil c51 是美國 keil software 公司出品的 51 系列兼容單片機(jī) c 語言軟件開發(fā)系統(tǒng),與匯編相比,c 語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而便于學(xué)習(xí)使用。keil 軟件提供了豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試的工具,包括c編譯器、宏匯編、連接器、庫管理和功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(vision)將這些部分綜合在一起。另外,比較重要的是,當(dāng)看到編譯后生成的匯編代碼,就可以體會到keil c51 生成的目標(biāo)代碼,其效率之高,多數(shù)

49、語句生成的匯編代碼很緊湊,便于理解。在開發(fā)大型軟件時(shí)更可體現(xiàn)出高級語言的優(yōu)勢特點(diǎn)。5.2 軟件程序設(shè)計(jì) 程序主要由主控機(jī)程序和從機(jī)程序(傳感器ds18b20)兩部分構(gòu)成。主程序主要實(shí)現(xiàn)系統(tǒng)的初始化顯示數(shù)據(jù),設(shè)定從機(jī)相關(guān)信息及通信的處理。系統(tǒng)的初始化包括寄存器的初始化(控制寄存器、堆棧、中斷寄存器等),通信的初始化(串口的初始化,max7221的初始化,通信緩沖區(qū)的初始化),液晶的初始化,輸出端口的初始化,采集數(shù)據(jù)的初始化。顯示數(shù)據(jù)包括數(shù)據(jù)轉(zhuǎn)換(主要實(shí)現(xiàn)將各類參數(shù)、測量數(shù)據(jù)、等轉(zhuǎn)換成液晶顯示所需的數(shù)據(jù)類型)和顯示屏的刷新(包括刷新采集數(shù)據(jù)屏和根據(jù)按下的鍵更改顯示屏)。通信的處理主要針對主控機(jī)與從

50、機(jī)的信息交換與處理。主機(jī)總體流程圖如下圖5.2.1 流程圖從機(jī)響應(yīng)主機(jī)程序?qū)嶋H上是傳感器ds18b20的工作流程。從機(jī)程序(傳感器ds18b20)主要由溫度信號采集程序和響應(yīng)主機(jī)命令程序。如圖5.2.1所示,從機(jī)在工作過程中,檢測到主機(jī)發(fā)送來的命令時(shí),將停止溫度信號采集程序,轉(zhuǎn)而去響應(yīng)主機(jī)的請求。當(dāng)不滿足查詢條件時(shí),從機(jī)將自動開中斷,繼續(xù)采集溫度信號。從機(jī)在工作過程中,檢測到主機(jī)發(fā)送來的命令時(shí),將停止溫度信號采集程序,轉(zhuǎn)而去響應(yīng)主機(jī)的請求。主機(jī)命令或請求有以下四種:報(bào)警查詢、設(shè)置從機(jī)時(shí)間以及顯示巡檢溫度。當(dāng)不滿足查詢條件時(shí),從機(jī)將自動開中斷,繼續(xù)采集溫度信號。 5.3 相關(guān)程序的簡單介紹5.3

51、.1 ds18b20測溫程序設(shè)計(jì)1、ds18b20的控制指令如下: cch跳過rom。忽略64位rom地址,直接向ds18b20發(fā)送溫度變換命令。 55h匹配rom,發(fā)出此命令后發(fā)出64位rom編碼,訪問單總線上與該編碼相 對應(yīng)的ds18b20并使之做出響應(yīng)。 33h讀rom中的編碼。如果主機(jī)只對一個(gè)ds18b20進(jìn)行操作(即本設(shè)計(jì)這樣的情況),只需用跳過rom(cch)命令就可進(jìn)行溫度轉(zhuǎn)換和讀取操作。如下: 44h溫度轉(zhuǎn)換。啟動ds18b20進(jìn)行溫度轉(zhuǎn)換,結(jié)果存入內(nèi)部9字節(jié)的ram中。 beh讀暫存器。讀內(nèi)部ram中9字節(jié)的溫度數(shù)據(jù)。 4eh寫暫存器。發(fā)出向內(nèi)部ram的第2、3字節(jié)寫上下限溫

52、度數(shù)據(jù)命令,隨后傳送兩字節(jié)的數(shù)據(jù)。2、工作時(shí)序及相應(yīng)程序: 初始化: 先將數(shù)據(jù)線置高電平1; 延時(shí); 數(shù)據(jù)線拉到低電平0; 延時(shí); 數(shù)據(jù)線拉到高電平1; 延時(shí)等待; 數(shù)據(jù)線再次拉到高電平1。 具體的程序應(yīng)用如下:void init_ds18b20() /初始化dq=1; /復(fù)位delay(2); /稍作延時(shí)dq=0;delay(85); /延時(shí)大于480us(520us)dq=1;delay(8);/ /這個(gè)時(shí)間不能太長,否則就過了檢測信號的時(shí)間了 寫數(shù)據(jù): 數(shù)據(jù)線置低電平1;/本系統(tǒng)是寫0與寫1同時(shí)完成 延時(shí)15us; 按從低位到高位的順序發(fā)送數(shù)據(jù); 延時(shí)45 us; 將數(shù)據(jù)線拉到高電平1;

53、 重復(fù)步驟,直到發(fā)送完整個(gè)字節(jié); 再次將數(shù)據(jù)線拉高到1。 讀數(shù)據(jù): 將數(shù)據(jù)線拉高到1; 延時(shí)3us; 將數(shù)據(jù)線拉低到0; 延時(shí)1us; 將數(shù)據(jù)線拉高到1; 延時(shí)2us; 讀數(shù)據(jù)線的狀態(tài)得到一個(gè)狀態(tài)位,并進(jìn)行數(shù)據(jù)處理; 延時(shí)30us; 重復(fù)步驟,直到讀取完一個(gè)字節(jié)。在編寫具體的程序時(shí),首先要對ds18b20進(jìn)行復(fù)位初始化,其次編寫讀一位數(shù)據(jù)函數(shù)、讀一個(gè)字節(jié)數(shù)據(jù)函數(shù)、寫一個(gè)字節(jié)數(shù)據(jù)函數(shù)、溫度的獲取轉(zhuǎn)換程序、讀溫度程序等子程序。3、 crc檢驗(yàn)/*uchar code crctable256= /crc檢驗(yàn)碼 0,94,188,226,97,63,221,131,194,156,126,32,163

54、,253,31,65,/ 0 157,195,33,127,252,162,64,30,95,1,227,189,62,96,130,220,/ 1 35,125,159,193,66,28,254,160,225,191,93,3,128,222,60,98,/ 2 190,224,2,92,223,129,99,61,124,34,192,158,29,67,161,255,/ 3 70,24,250,164,39,121,155,197,132,218,56,102,229,187,89,7,/ 4 219,133,103,57,186,228,6,88,25,71,165,251,120,38,196,154,/ 5 101,59,217,135,4,90,184,230,167,249,27,69,198,152,122,36,/ 6 248,166

溫馨提示

  • 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

提交評論