簡易數(shù)字溫度計-單片機(jī)設(shè)計.doc_第1頁
簡易數(shù)字溫度計-單片機(jī)設(shè)計.doc_第2頁
簡易數(shù)字溫度計-單片機(jī)設(shè)計.doc_第3頁
簡易數(shù)字溫度計-單片機(jī)設(shè)計.doc_第4頁
簡易數(shù)字溫度計-單片機(jī)設(shè)計.doc_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片微機(jī)原理及應(yīng)用課程設(shè)計任務(wù)書一、設(shè)計題目、內(nèi)容及要求設(shè)計題目:簡易數(shù)字溫度計設(shè)計內(nèi)容:(1)可以測量50到100攝氏度內(nèi)的溫度(2)用液晶顯示溫度,精確到小數(shù)點(diǎn)后兩位;(2)測量誤差在0.5攝氏度以內(nèi)。設(shè)計要求:(1)根據(jù)任務(wù)要求設(shè)計硬件電路; (2)設(shè)計電路原理圖、仿真結(jié)果電路圖; (3)畫出程序流程圖,編寫程序;(4)書寫設(shè)計說明書。二、設(shè)計原始資料1李群芳,肖看.單片機(jī)原理、接口及應(yīng)用.清華大學(xué)出版社,2005。32Proteus軟件,Wave/Keil軟件三、要求的設(shè)計成果(課程設(shè)計說明書、設(shè)計實(shí)物、圖紙等)設(shè)計結(jié)果能正確仿真演示;課程設(shè)計說明書一份(包括總體設(shè)計、方案論證、硬件電

2、路、系統(tǒng)程序流程圖、程序清單)四、進(jìn)程安排周一 查閱資料,設(shè)計電路原理圖、編寫程序周二 利用proteus完成硬件電路繪制周三 程序調(diào)試周四 書寫課程設(shè)計說明書周五 課程設(shè)計答辯五、主要參考資料1何利民。單片機(jī)中級教程.機(jī)械工業(yè)出版社,2002。42丁元杰.單片微機(jī)原理及應(yīng)用(第二版).機(jī)械工業(yè)出版社,2005.23張有德,趙志英.單片微型機(jī)原理、應(yīng)用于實(shí)驗(yàn).復(fù)旦大學(xué)出版社,2000.4指導(dǎo)教師(簽名):教研室主任(簽名):目 錄1 引言12 開發(fā)和仿真軟件簡介22。1 開發(fā)軟件Keil C51 uVision222。2 仿真軟件Proteus ISIS33 總體設(shè)計方案論證53.1 開發(fā)方案

3、舉例53。1.1 熱敏電阻53。1。2 數(shù)字溫度芯片DS162153。2 數(shù)據(jù)通信技術(shù)64 系統(tǒng)各部分電路的選擇和設(shè)計74.1 系統(tǒng)的工作原理74。2 AT89C51簡介74.2.1 概述74。2。2 AT89C51引腳功能84。2。3 復(fù)位電路的設(shè)計94.3數(shù)字溫度傳感器104。3。1 DS1621的技術(shù)指標(biāo)104.3。2 DS1621的工作原理114.4 單片機(jī)和DS1621接口電路114。5 七段LED數(shù)碼顯示電路125 系統(tǒng)軟件設(shè)計145.1 編程語言選擇145.2 主程序的設(shè)計145。3 溫度采集模塊設(shè)計155。4 溫度計算模塊設(shè)計155。5 串行總線編程166 軟硬件調(diào)試結(jié)果分析1

4、77 總結(jié)18參考文獻(xiàn)19附錄A 多點(diǎn)溫度采集系統(tǒng)電路原理圖20附錄B C語言源代碼211 引言隨著人們生活水平的不斷提高,單片機(jī)控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便也是不可否定的,其中數(shù)字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。在信息采集(傳感器技術(shù))、信息傳輸(通信技術(shù))和信息處理(計算機(jī)技術(shù))三大信息技術(shù)中,傳感器屬于信息技術(shù)的前沿尖端產(chǎn)品,尤其是溫度傳感器技術(shù),在我國各領(lǐng)域已經(jīng)引用的非常廣泛,可以說是滲透到社會的每一個領(lǐng)域,人民的生活與環(huán)境的溫度息

5、息相關(guān),在工業(yè)生產(chǎn)過程中需要實(shí)時測量溫度,在農(nóng)業(yè)生產(chǎn)中也離不開溫度的測量,因此研究溫度的測量方法和裝置具有重要的意義.測量溫度的關(guān)鍵是溫度傳感器,溫度傳感器的發(fā)展經(jīng)歷了三個發(fā)展階段:傳統(tǒng)的分立式溫度傳感器,模擬集成溫度傳感器,智能集成溫度傳感器.目前的智能溫度傳感器(亦稱數(shù)字溫度傳感器)是在20世紀(jì)90年代中期問世的,它是微電子技術(shù)、計算機(jī)技術(shù)和自動測試技術(shù)(ATE)的結(jié)晶,特點(diǎn)是能輸出溫度數(shù)據(jù)及相關(guān)的溫度控制量,適配各種微控制器(MCU).社會的發(fā)展使人們對傳感器的要求也越來越高,現(xiàn)在的溫度傳感器正在基于單片機(jī)的基礎(chǔ)上從模擬式向數(shù)字式,從集成化向智能化、網(wǎng)絡(luò)化的方向飛速發(fā)展,并朝著高精度、多

6、功能、總線標(biāo)準(zhǔn)化、高可靠性及安全性、開發(fā)虛擬傳感器和網(wǎng)絡(luò)傳感器、研制單片測溫系統(tǒng)等高科技的方向迅速發(fā)展。本次課程設(shè)計的內(nèi)容是開發(fā)一個基于AT89C51單片機(jī)的測溫系統(tǒng),并采用了數(shù)字溫度傳感器DS1621和串行總線通信系統(tǒng),重點(diǎn)對傳感器在單片機(jī)下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進(jìn)行了詳細(xì)研究,對各部分的電路也一一進(jìn)行了設(shè)計,該系統(tǒng)可以方便的實(shí)現(xiàn)對三路溫度的采集、傳輸、處理和顯示,并可設(shè)定上下限報警溫度。它使用起來相當(dāng)方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點(diǎn),適合于我們?nèi)粘I詈凸?、農(nóng)業(yè)生產(chǎn)中的溫度測量,也可以當(dāng)作溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴(kuò)展。本次課程

7、設(shè)計,利用Keil和Proteus軟件設(shè)計和仿真該智能數(shù)字多點(diǎn)測溫系統(tǒng)。過程中所用到的主要電路由我們自主設(shè)計制作,通過查閱資料和借助指導(dǎo)老師最終設(shè)計出結(jié)構(gòu)合理、美觀,主要電氣指標(biāo)良好,性能穩(wěn)定可靠的電路。以培養(yǎng)我們嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度,正確的設(shè)計思想,科學(xué)的設(shè)計方法和良好的工作作風(fēng),掌握一定的專業(yè)技能及綜合運(yùn)用基礎(chǔ)理論、基本知識的能力。2 開發(fā)和仿真軟件簡介2。1 開發(fā)軟件Keil C51 uVision2Keil uVISION2 是眾多單片機(jī)應(yīng)用開發(fā)軟件中優(yōu)秀的軟件之一,它支持眾多不同公司的MCS51 架構(gòu)的芯片,它集編輯,編譯,仿真等于一體,同時還支持、PLM、匯編和C語言的程序設(shè)計,界面友好

8、,易學(xué)易用,在調(diào)試程序,軟件仿真方面也有很強(qiáng)大的功能。Keil C51集成開發(fā)環(huán)境主要由菜單欄、工具欄、源文件編輯窗口、工程窗口和輸出窗口五部分組成。工具欄為一組快捷工具圖標(biāo),主要包括基本文件工具欄、建造工具欄和調(diào)試工具欄,基本文件工具欄包括新建、打開、拷貝、粘貼等基本操作.建造工具欄主要包括文件編譯、目標(biāo)文件編譯連接、所有目標(biāo)文件編譯連接、目標(biāo)選項和一個目標(biāo)選擇窗口.調(diào)試工具欄位于最后,主要包括一些仿真調(diào)試源程序的基本操作,如單步、復(fù)位、全速運(yùn)行等。在工具欄下面,默認(rèn)有三個窗口.左邊的工程窗口包含一個工程的目標(biāo)(target)、組(group)和項目文件。右邊為源文件編輯窗口,編輯窗口實(shí)質(zhì)上

9、就是一個文件編輯器,我們可以在這里對源文件進(jìn)行編輯、修改、粘貼等.下邊的為輸出窗口,源文件編譯之后的結(jié)果顯示在輸出窗口中,會出現(xiàn)通過或錯誤(包括錯誤類型及行號)的提示.如果通過則會生成“HEX”格式的目標(biāo)文件,用于仿真或燒錄芯片?;经h(huán)境如圖2-1所示:本文為互聯(lián)網(wǎng)收集,請勿用作商業(yè)用途個人收集整理,勿做商業(yè)用途圖2-1 Keil C51軟件的運(yùn)行界面MCS51單片機(jī)軟件Keil C51開發(fā)過程為:建立一個工程項目,選擇芯片,確定選項。建立匯編源文件或C源文件。用項目管理器生成各種應(yīng)用文件.檢查并修改源文件中的錯誤。編譯連接通過后進(jìn)行軟件模擬仿真或硬件在線仿真。2.2 仿真軟件Proteus

10、ISISProteus軟件是來自英國Labcenter electronics公司的EDA工具軟件.該軟件有十幾年的歷史,在全球廣泛使用,除了其具有和其它EDA工具一樣的原理布圖、PCB自動或人工布線及電路仿真的功能外,其革命性的功能是,他的電路仿真是互動的,針對微處理器的應(yīng)用,還可以直接在基于原理圖的虛擬原型上編程,并實(shí)現(xiàn)軟件源碼級的實(shí)時調(diào)試,如有顯示及輸出,還能看到運(yùn)行后輸入輸出的效果,配合系統(tǒng)配置的虛擬儀器如示波器、邏輯分析儀等,為用戶建立了完備的電子設(shè)計開發(fā)環(huán)境.Proteus ISIS的工作界面是一種標(biāo)準(zhǔn)的Windows界面。主要包括:標(biāo)題欄、主菜單、標(biāo)準(zhǔn)工具欄、繪圖工具欄、狀態(tài)欄、

11、對象選擇按鈕、預(yù)覽對象方位控制按鈕、仿真進(jìn)程控制按鈕、預(yù)覽窗口、對象選擇器窗口、圖形編輯窗口。主要功能是在圖形編輯窗口做出所需的電路圖.軟件的應(yīng)用設(shè)計界面如圖2-2所示:圖2-2 Proteus軟件的運(yùn)行界面Proteus還提供了諸多資源,如下所述:Proteus可提供的仿真元器件資源:仿真數(shù)字和模擬、交流和直流等數(shù)千種元器件,有30多個元件庫。Proteus可提供的仿真儀表資源 :示波器、邏輯分析儀、虛擬終端、SPI調(diào)試器、 信號發(fā)生器、模式發(fā)生器、交直流電壓表、交直流電流表.理論上同一種儀器可以在一個電路中隨意的調(diào)用。除了現(xiàn)實(shí)存在的儀器外,Proteus還提供了一個圖形顯示功能,可以將線路

12、上變化的信號,以圖形的方式實(shí)時地顯示出來,其作用與示波器相似,但功能更多.這些虛擬儀器儀表具有理想的參數(shù)指標(biāo),例如極高的輸入阻抗、極低的輸出阻抗.這些都盡可能減少了儀器對測量結(jié)果的影響。Proteus可提供的調(diào)試手段Proteus提供了比較豐富的測試信號用于電路的測試。這些測試信號包括模擬信號和數(shù)字信號。3 總體設(shè)計方案論證3.1 開發(fā)方案舉例該系統(tǒng)主要由溫度測量和數(shù)據(jù)采集兩部分電路組成,實(shí)現(xiàn)的方法有很多種,下面將列出兩種在日常生活中和工農(nóng)業(yè)生產(chǎn)中經(jīng)常用到的實(shí)現(xiàn)方案.3。1。1 熱敏電阻由于本設(shè)計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測溫度變化的電壓或電流采集過來,進(jìn)行

13、A/D轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設(shè)計需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩.熱敏電阻的外觀如圖3-1所示。圖31 熱敏電阻外觀圖3.1.2 數(shù)字溫度芯片DS1621 采用數(shù)字溫度芯片DS1621 測量溫度,輸出信號全數(shù)字化。便于單片機(jī)處理及控制,省去傳統(tǒng)的測溫方法的很多外圍電路。且該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測溫元件,此元件線形較好。在0100攝氏度時,最大線形偏差小于1攝氏度.DS1621 的最大特點(diǎn)之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計DS1621和微控制器AT89C51構(gòu)成的溫度測量裝置,它直接輸出溫度的數(shù)字信號,可直

14、接與計算機(jī)連接。這樣,測溫系統(tǒng)的結(jié)構(gòu)就比較簡單,體積也不大。采用51 單片機(jī)控制,軟件編程的自由度大,可通過編程實(shí)現(xiàn)各種各樣的算術(shù)算法和邏輯控制,而且體積小,硬件實(shí)現(xiàn)簡單,安裝方便??刂乒ぷ?還可以與PC 機(jī)通信上傳數(shù)據(jù),另外AT89S51 在工業(yè)控制上也有著廣泛的應(yīng)用,編程技術(shù)及外圍功能電路的配合使用都很成熟。該系統(tǒng)利用AT89C51芯片控制溫度傳感器DS1621進(jìn)行實(shí)時溫度檢測并顯示,能夠?qū)崿F(xiàn)快速測量環(huán)境溫度,并可以根據(jù)需要設(shè)定上下限報警溫度。該系統(tǒng)擴(kuò)展性非常強(qiáng),它可以在設(shè)計中加入時鐘芯片DS1302以獲取時間數(shù)據(jù),在數(shù)據(jù)處理同時顯示時間,并可以利用AT24C16芯片作為存儲器件,以此來對

15、某些時間點(diǎn)的溫度數(shù)據(jù)進(jìn)行存儲,利用鍵盤來進(jìn)行調(diào)時和溫度查詢,獲得的數(shù)據(jù)可以通過MAX232芯片與計算機(jī)的RS232接口進(jìn)行串口通信,方便的采集和整理時間溫度數(shù)據(jù)。從以上兩種方案,很容易看出,采用方案二,電路比較簡單,軟件設(shè)計也比較簡單,故采用了方案二。測溫電路的總體設(shè)計方框圖如圖3-2所示,控制器采用單片機(jī)AT89C51,溫度傳感器采用DS1621,用5位LED數(shù)碼管以串口傳送數(shù)據(jù)實(shí)現(xiàn)溫度顯示。圖3-2 測溫電路的總體設(shè)計方框圖3.2 數(shù)據(jù)通信技術(shù)目前,常用的微機(jī)和外設(shè)之間數(shù)據(jù)傳輸?shù)拇锌偩€有I2C總線、SPI總線等,其中,I2C總線采用同步串行雙線(一根時鐘線,一根數(shù)據(jù)線)方式,而SPI總線

16、采用同步串行三線(時鐘線,輸入線,數(shù)據(jù)輸入線)方式。這兩種總線需要至少兩根或兩根以上的信號線。I2C是PHILIPS公司推出的一種串行總線.它是目前使用較廣泛的芯片間的串行擴(kuò)展總線。該總線用兩條連線實(shí)現(xiàn)全雙工同步數(shù)據(jù)傳送。它可以使具有I2C總線的單片機(jī)直接與具有I2C總線接口的各種擴(kuò)展器件連接。本次課程設(shè)計就采用這種通信方式。美國達(dá)拉斯半導(dǎo)體公司推出了一項特有的單線技術(shù).該技術(shù)于上述總線不同,它采用單根信號線,即可傳輸時鐘,又能傳輸數(shù)據(jù),而且數(shù)據(jù)傳輸時是雙向的,因而這種單線技術(shù)具有線路簡單,硬件開銷少,成本低廉,便于擴(kuò)展的優(yōu)點(diǎn)。4 系統(tǒng)各部分電路的選擇和設(shè)計4。1 系統(tǒng)的工作原理本溫度數(shù)據(jù)采集

17、系統(tǒng)的主要功能是測量溫度,并顯示溫度測量結(jié)果,并附帶了單片機(jī)和PC機(jī)之間通訊接口.系統(tǒng)結(jié)構(gòu)包括單片機(jī)部分、溫度傳感器、顯示電路、通訊接口電路等幾個部分。圖4-1為系統(tǒng)的總體結(jié)構(gòu)框圖。圖4-1 測溫系統(tǒng)的總體結(jié)構(gòu)框圖系統(tǒng)工作原理是:電路在上電后,最先單片機(jī)利用模擬總線I2C對DS1621進(jìn)行尋址,單片機(jī)在接收到DS1621應(yīng)答后,單片機(jī)將設(shè)置/狀態(tài)寄存器的值通過I2C總線寫入該寄存器,之后DS1621在單片機(jī)控制下進(jìn)行溫度測量,然后DS1621把所采集的溫度(50攝氏度100攝氏度,精度為0。5攝氏度)傳輸給單片機(jī),最后單片機(jī)把溫度數(shù)據(jù)送到LED上顯示。系統(tǒng)中附帶的串行接口以供備用.系統(tǒng)詳細(xì)的電

18、路原理圖可見附錄部分.4。2 AT89C51簡介4.2.1 概述對于單片機(jī)的選擇,可以考慮使用8031與8051系列,由于8031沒有內(nèi)部RAM,系統(tǒng)又需要大量內(nèi)存存儲數(shù)據(jù),因而不適用.所以,我們選用51系列單片機(jī)AT89C51.AT89C51是美國ATMEL公司生產(chǎn)的低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4KB的可編程的Flash只讀程序存儲器,兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳,并集成了 Flash 程序存儲器,既可在線編程(ISP),也可用傳統(tǒng)方法進(jìn)行編程,因此,低價位AT89C51單片機(jī)可應(yīng)用于許多高性價比的場合,可靈活應(yīng)用于各種控制領(lǐng)域,對于簡單的測溫系統(tǒng)已經(jīng)足夠.單片機(jī)AT89C51

19、具有低電壓供電和體積小等特點(diǎn),四個端口只需要兩個口就能滿足電路系統(tǒng)的設(shè)計需要,很適合便攜手持式產(chǎn)品的設(shè)計使用系統(tǒng)可用二節(jié)電池供電。AT89C51的主要特性如下:與MCS-51 兼容; 4K字節(jié)可編程閃爍存儲器;三級程序存儲器鎖定;128×8位內(nèi)部RAM; 32根可編程I/O線;兩個16位定時器/計數(shù)器; 5個中斷源;可編程串行通道; 片內(nèi)振蕩器和時鐘電路。4.2.2 AT89C51引腳功能單片機(jī)芯片AT89C51為40引腳雙列直插式封裝。其各個引腳功能介紹如下,芯片AT89C51的引腳排列和邏輯符號如圖4-2 所示。各引腳分別為:VCC:供電電壓GND:接地P0口P0口為一個8位漏級

20、開路雙向I/O口,每個管腳可吸收8TTL門電流。當(dāng)P1口的管腳寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FLASH編程時,P0口作為原碼輸入口,當(dāng)FLASH進(jìn)行校驗(yàn)時,P0輸出原碼,此時P0外部電位必須被拉高。P1口P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流P1口管腳寫入”1"后,電位被內(nèi)部上拉為高可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時,P1口作為第八位地址接收。P2口圖42 AT89C51的引腳排列圖P2口為一個內(nèi)部上拉電阻的8

21、位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流當(dāng)P2口被寫”1"時,其管腳電位被內(nèi)部上拉電阻拉高,且作為輸入。作為輸入時P2口的管腳電位被外部拉低,將輸出電流,這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址"1”時,它利用內(nèi)部上拉的優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容.P2口在FLASH編程和校驗(yàn)時接收高八位地址信號和控制信號。P3口P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流.當(dāng)P3口寫入”1"后,它們被內(nèi)部上

22、拉為高電平,并用作輸入。作為輸入時,由于外部下拉為低電平,P3口將輸出電流(ILL),也是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,同時P3口同時為閃爍編程和編程校驗(yàn)接收一些控制信號。RST:復(fù)位輸入端。當(dāng)振蕩器復(fù)位時,要保持RST兩個機(jī)器周期的高電平時間。PSEN外部程序存儲器的選通信號。在由外部程序存儲器取址期間,每個機(jī)器周期PSEN兩次有效.但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的PSEN信號將不出現(xiàn).EA/VPP當(dāng)EA保持低電平時,訪問外部ROM;注意加密方式1時,EA將內(nèi)部鎖定為RESET;當(dāng)EA端保持高電平時,訪問內(nèi)部ROM.在FLASH編程期間,此引腳也用于施加

23、12V編程電源(VPP)。4。2。3 復(fù)位電路的設(shè)計單片機(jī)的復(fù)位電路如圖43所示.該復(fù)位電路采用手動復(fù)位與上電復(fù)位相結(jié)合的方式.當(dāng)按下按鍵S1時,VCC通過R2電阻給復(fù)位輸入端口一個高電平,實(shí)現(xiàn)復(fù)位功能,即手動復(fù)位.上電復(fù)位就是VCC通過電阻R2和電容C構(gòu)成回路,該回路是一個對電容C1充電和放電的電路,所以復(fù)位端口得到一個周期性變化的電壓值,并且有一定時間的電壓值高于CPU復(fù)位電壓,實(shí)現(xiàn)上電復(fù)位功能。圖4-3 單片機(jī)的復(fù)位電路4.3數(shù)字溫度傳感器4.3.1 DS1621的技術(shù)指標(biāo)DS1621是美國DALLAS公司生產(chǎn)的一種功能較強(qiáng)的數(shù)字式溫度傳感器和恒溫控制器。數(shù)字接口電路簡單,與I2C總線兼

24、容,且可以使用一片控制器控制多達(dá)8片的DS1621。其數(shù)字溫度輸出達(dá)9位,精度為0。5攝氏度。DS1621可工作在最低2。7V電壓下,適用于低功耗應(yīng)用系統(tǒng). DS1621的引腳排列圖如圖4-4所示,引腳功能描述如表41所示。圖4-4 DS1621的引腳排列圖表41 DS1621的引腳功能表引腳符號功能描述1SDA2線I2C 串行數(shù)據(jù)輸入/輸出2SCL2線I2C 串行時鐘端3TOUT溫度上下限超出輸出4GND地5A2A0片選地址輸入A2A06VDD電源端(+2。75。5V)4.3.2 DS1621的工作原理圖4-5 DS1621的構(gòu)成原理框圖斜坡累加電路重預(yù)置比較器計數(shù)溫度低敏感振蕩器重預(yù)置電路

25、溫度寄存器溫度低敏感振蕩器計數(shù)器=0DS1621的構(gòu)成原理框圖如圖4-5所示,在測量溫度時使用了獨(dú)有的在線溫度測量技術(shù)。它通過在一個由對溫度高度敏感的振蕩器決定的計數(shù)周期內(nèi)對溫度低敏感的振蕩器時鐘脈沖的計數(shù)值的計算來測量溫度。DS1621在計數(shù)器中預(yù)置了一個初值,它相當(dāng)于50攝氏度.如果計數(shù)周期結(jié)束之前計數(shù)器達(dá)到0,已預(yù)置了此初值的溫度寄存器中的數(shù)字就會增加,從而表明溫度高于55攝氏度.與此同時,計數(shù)器斜坡累加電路被重新預(yù)置一個值,然后計數(shù)器重新對時鐘計數(shù),直到計數(shù)值為0。通過改變增加的每1 內(nèi)的計數(shù)器的計數(shù),斜坡累加電路可以補(bǔ)償振蕩器的非線性誤差,以提高精度,任意溫度下計數(shù)器的值和每一斜坡累

26、加電路的值對應(yīng)的計數(shù)次數(shù)須為已知。 DS1621通過計算可以得到0. 5攝氏度的精度,溫度輸出為9位,在發(fā)出讀溫度值請求后還會輸出兩位補(bǔ)償值。表2給出了所測的溫度和輸出數(shù)據(jù)的關(guān)系。這些數(shù)據(jù)可通過2線制串行口連續(xù)輸出,MSB在前,LSB在后。 4.4 單片機(jī)和DS1621接口電路前面已經(jīng)介紹了DS1621溫度傳感器以8位數(shù)字輸出,數(shù)據(jù)輸出與I2C總線兼容,可以方便地通過SDA,SCL以串行方式與單片機(jī)相連。而AT89C51面向主/從功能字節(jié)的I2C總線串行I/O口,所以多路溫度數(shù)字量可以通過I2C總線直接送GAS97C2051單片機(jī).I2C總線(Inter IC BUS)是Philips公司推出

27、的雙向兩線串行通信標(biāo)準(zhǔn)。由于它具有接口少、通信效率高等優(yōu)點(diǎn),現(xiàn)已得到廣泛的應(yīng)用I2C總線是一種串行的數(shù)據(jù)總線,掛在總線上的各集成電路模塊(單片機(jī)和具有各種功能的電路芯片)通過一條串行的數(shù)據(jù)線 (SDA)和一條串行的時鐘線(SCL),按一定的通信協(xié)議進(jìn)行尋址和信息的傳輸。每個電路模塊都有唯一的地址,在信息的傳輸過程中,I2C總線上的電路模塊有的是主控器,有的是被控器,主控器和被控器都可以是發(fā)送器或接收器,這完全取決于它所要完成的功能。采用I2C總線可最大限度地簡化電路結(jié)構(gòu),實(shí)現(xiàn)電路的模塊化、標(biāo)準(zhǔn)化設(shè)計。I2C總線在進(jìn)行數(shù)據(jù)傳輸時,由作為主控器的AT89C51來初始化一次數(shù)據(jù)的傳輸,并在I2C總線

28、上提供時鐘進(jìn)行傳送。信息傳送的對象、方向和傳送的開始、終止也由主控器(AT89C51)來決定.此時,在I2C總線上被主控器所尋址的集成電路模塊稱為被控器(DS162)。在I2C總線上,數(shù)據(jù)由發(fā)送器傳出,并被接收器接收,接收器在每次正確接收到一個數(shù)據(jù)字節(jié)后,都要在數(shù)據(jù)總線(SDA)上給發(fā)送器一個應(yīng)答信號。因單片機(jī)AT89C51本身 沒有I2C硬件資源,所以必須用軟件來模擬I2C總線,本系統(tǒng)利用單片機(jī)AT89C51的P3.0和P3。1引腳分別作I2C總線的數(shù)據(jù)線和時鐘線(見附錄A).AT89C51模擬I2C總線主要由軟件設(shè)置來實(shí)現(xiàn)其功能。4。5 七段LED數(shù)碼顯示電路采用七段LED數(shù)碼顯示,LED

29、顯示器內(nèi)部由7段發(fā)光二極管組成,因此亦稱之為七段LED顯示器,由于主要用于顯示各種數(shù)字符號,故又稱之為LED數(shù)碼管.每個顯示器還有一個圓點(diǎn)型發(fā)光二極管,用于顯示小數(shù)點(diǎn)。在單片機(jī)AT89C51接收到DS1621所采集的溫度數(shù)據(jù)后,單片機(jī)把所讀到的數(shù)據(jù)送給數(shù)碼管顯示.系統(tǒng)具體的顯示電路如圖46所示。圖4-6 七段LED數(shù)碼管顯示電路顯示電路中單片機(jī)AT89C51的P0口直接驅(qū)動8段數(shù)碼管(其中需要給P0外接上拉電阻)完成字形碼的輸出(字形選擇)。而P2.1P2.5控制6位LED進(jìn)行分時選通,這樣在任一時刻,只有一位LED是點(diǎn)亮的,但只要掃描的頻率足夠高(一般大于25Hz),由于人眼的視覺暫留特性,

30、直觀上感覺卻是連續(xù)點(diǎn)亮的,這就是我們常說的動態(tài)掃描電路。5 系統(tǒng)軟件設(shè)計5。1 編程語言選擇51的編程語言常用的有兩種,一種是匯編語言,一種是C語言.匯編語言的機(jī)器代碼生成效率很高但可讀性卻并不強(qiáng),復(fù)雜一點(diǎn)的程序就更是難讀懂,而C語言在大多數(shù)情況下其機(jī)器代碼生成效率和匯編語言相當(dāng),C 語言很好的結(jié)構(gòu)性和模塊化更容易閱讀和維護(hù),用C 編寫程序比匯編更符合人們的思考習(xí)慣,開發(fā)者可以更專心的考慮算法而不是考慮一些細(xì)節(jié)問題這樣就減少了開發(fā)和調(diào)試的時間,而且C語言還可以嵌入?yún)R編來解決高時效性的代碼編寫問題。5.2 主程序的設(shè)計初始化N讀溫度數(shù)據(jù)并存儲生成地址字節(jié)1001000,循環(huán)次數(shù)3延時1S以上等待

31、結(jié)果啟動轉(zhuǎn)換向設(shè)置/狀態(tài)寄存器設(shè)置為連續(xù)工作方式生成地址字節(jié)1001000,循環(huán)次數(shù)3次地址字節(jié)加02H 循環(huán)次數(shù)減1為0?讀溫度數(shù)據(jù)并存儲及顯示地址字節(jié)加02H 循環(huán)次數(shù)減1為0?圖5-1 主程序流程圖NN主程序的主要功能是負(fù)責(zé)多點(diǎn)溫度數(shù)據(jù)的實(shí)時采集、傳輸,處理和顯示。其程序流程如圖5-1所示.5。3 溫度采集模塊設(shè)計為本溫度采集系統(tǒng)開發(fā)的軟件程序,可以對DS1621內(nèi)部的寄存器編程控制DS1621的工作方式,以及從這些數(shù)據(jù)寄存器讀取溫度值,最后把經(jīng)過單片機(jī)數(shù)據(jù)處理后的溫度送到LED上顯示。AT89C51扮演著上傳下達(dá)的角色,單片機(jī)端的程序采用了C語言.DS1621一側(cè)的通信程序?qū)⒗貌⑿卸?/p>

32、口P3。0和P3.1來模擬I2C 總線協(xié)議, 總線上的通信通過程序來實(shí)現(xiàn)。整個軟件采用了模塊化的程序設(shè)計方法。為了實(shí)現(xiàn)AT89C51和DS1621之間I2C 協(xié)議之下的串行通信,編寫了一些專用子程序.這些子程序段包括:符號定義、AT89C51的端口初始化、啟動信號時序產(chǎn)生、停止信號時序產(chǎn)生、發(fā)送字節(jié)、讀取字節(jié)、讀取溫度、顯示。系統(tǒng)電路在上電后開始工作,最先程序單片機(jī)進(jìn)行初始化設(shè)置,然后單片機(jī)利用模擬I2C總線對DS1621進(jìn)行尋址。單片機(jī)在接收到DS1621應(yīng)答后,緊接著單片機(jī)利用命令(AAh、ACh、EEh、22h)將設(shè)置/狀態(tài)寄存器的值通過I2C總線寫入DS1621狀態(tài)寄存器,該系統(tǒng)中把D

33、S1621設(shè)置為連續(xù)溫度轉(zhuǎn)換工作方式,之后DS1261在單片控制下進(jìn)行溫度測量,然后DS1261把所采集的溫度傳輸給單片機(jī),最后單片機(jī)把溫度數(shù)據(jù)送到LED上顯示.詳細(xì)程序可見附錄2。5。4 溫度計算模塊設(shè)計計算溫度子程序?qū)腄S1621中讀取的溫度值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖52所示。 開始溫度零下?溫度值取補(bǔ)碼置“”標(biāo)志計算小數(shù)位溫度BCD值 計算整數(shù)位溫度BCD值 結(jié)束置“+”標(biāo)志NY圖5-2 溫度計算流程圖5.5 串行總線編程在本系統(tǒng)中,單片機(jī)AT89C51 作為主控器件,3個DS1621作為被控器,所以我們只要考慮主方式下的狀態(tài)處理模塊,即考慮AT

34、89C51主發(fā)送和主接收方式下的狀態(tài)處理模塊。該電路中為了簡化電路設(shè)計在I2C總線的時鐘和數(shù)據(jù)上各加了一個上拉電阻,以獲取一定的上拉電流使信號采集可靠.本系統(tǒng)中掛在I2C總線上的各電路模塊都有其節(jié)點(diǎn)地址。AT89C51作為主控器其節(jié)點(diǎn)地址無意義,作為被控器的3個DS1621都有其節(jié)點(diǎn)地址,其地址為1001A2A1A0 ,其中,1001是器件編號,已由芯片生產(chǎn)廠家規(guī)定,A2A1A0為DS1621的3個引腳,在電路中分別接高低電平?jīng)Q定2個DS1621的不同地址。2個DS1621的地址分別為10010001001010。本系統(tǒng)中的I2C總線的尋址方式為的廣播尋址,即AT89C51對掛在I2C總線上所

35、有的DS1621的廣播呼叫尋址。AT89C51發(fā)出開始信號S后的第一個字節(jié)確定由AT89C51所選擇的一個DS1621的地址,然后在第一個字節(jié)以后開始數(shù)據(jù)傳送。具體實(shí)現(xiàn)尋址的方法是:由AT89C51發(fā)出啟動位S后緊跟著發(fā)送從器件DS1621的7位地址碼,即S+SLA,在節(jié)點(diǎn)地址尋址中SLA為被尋址的從節(jié)點(diǎn)地址,主控設(shè)備在發(fā)送數(shù)據(jù)前,在時鐘為高時,在數(shù)據(jù)線上發(fā)送一個由高到低的信號來表示開始傳送數(shù)據(jù),DS1621 接收到開始信號時,移入后續(xù)8 位(高7 位地址線和一個R/W 位)來確定進(jìn)行如何操作,R/W 位為0 表示寫,為1 表示讀.讀寫操作完成后,在時鐘為高時,在數(shù)據(jù)線上發(fā)送一個由低到高的信號

36、表示傳送結(jié)束。具體數(shù)據(jù)格式如圖5-3所示,時序如圖54所示。圖5-3 串行通信的數(shù)據(jù)格式圖5-4 串行通信的時序圖 6 軟硬件調(diào)試結(jié)果分析本設(shè)計應(yīng)用Proteus及Keil軟件,首先根據(jù)自己設(shè)計的電路圖用Proteus軟件畫出電路模型,關(guān)于這個軟件的使用通過查一些資料和自己的摸索學(xué)習(xí);然后用Keil軟件對所編寫的程序進(jìn)行編譯、鏈接,如果沒有錯誤和警告便可生成程序的hex文件,調(diào)試好程序后將目標(biāo)文件導(dǎo)入Proteus的AT89C51芯片中進(jìn)行軟件調(diào)試。最后進(jìn)行三路溫度的對比測試。數(shù)字溫度計的仿真電路圖如圖6-1所示。圖6-1 仿真圖仿真結(jié)果分析:不斷調(diào)整三路DS1621的溫度值,發(fā)現(xiàn)LED顯示器

37、上的數(shù)值和DS1621屏幕上的標(biāo)準(zhǔn)值相差無幾,在誤差允許的范圍之內(nèi)。當(dāng)某一路的溫度不在5080 范圍時,兩個LED同時發(fā)光,表示告警信息。經(jīng)調(diào)試,證明開發(fā)者最終設(shè)計出結(jié)構(gòu)合理、美觀,主要電氣指標(biāo)良好,性能穩(wěn)定可靠的電路。7 總結(jié)不知不覺中,一周的課程設(shè)計實(shí)習(xí)已經(jīng)接近尾聲了??赡苁羌倨诳斓降木壒?,總感覺這次實(shí)習(xí)特別短暫。此刻,真是感慨萬千啊!現(xiàn)在我可以自豪的說,這次實(shí)習(xí)我達(dá)到了預(yù)期的目標(biāo)。因?yàn)樵趯?shí)習(xí)期間,我每天都在接觸新的東西,每天都會有新的問題等待我去探討去解決,每天都有新收獲?;叵胝n設(shè)第一天,我們做點(diǎn)電腦前,不知道自己能干點(diǎn)什么,對于指導(dǎo)老師的講解也是云里霧里的。因?yàn)轭^一回接觸Proteus

38、和Keil這兩個軟件。但是我相信,只要自己用心了,沒有辦不成的事。于是,我靜下心來,仔細(xì)研究老師下發(fā)的教程。我珍惜每一次的上機(jī)機(jī)會,勤加練習(xí),課下積極研究手冊和相關(guān)書籍。兩天過后,才算有點(diǎn)眉目了.到這時心里才算稍微安穩(wěn)了一些,再加上以前學(xué)過名為Protel的電路設(shè)計軟件,所以我的自信心加強(qiáng)了。在這次設(shè)計過程中,體現(xiàn)出自己單獨(dú)設(shè)計電路的能力以及綜合運(yùn)用知識的能力,體會了學(xué)以致用、突出自己勞動成果的喜悅心情,從中發(fā)現(xiàn)自己平時學(xué)習(xí)的不足和薄弱環(huán)節(jié),從而加以彌補(bǔ)。在此感謝我們的郝志華,田紅霞,張國旭老師,老師嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣;老師循循善誘的教導(dǎo)和不拘一格的思路給予我無

39、盡的啟迪;這次簡易數(shù)字溫度計設(shè)計的每個實(shí)驗(yàn)細(xì)節(jié)和每個數(shù)據(jù),都離不開老師您的細(xì)心指導(dǎo).而您開朗的個性和寬容的態(tài)度,幫助我能夠很順利的完成了這次課程設(shè)計.同時感謝對我?guī)椭^的同學(xué)們,謝謝你們對我的幫助和支持,讓我感受到同學(xué)的友誼。參考文獻(xiàn)1 馬忠梅等。單片機(jī)的C語言應(yīng)用程序設(shè)計。北京:北京航空航天大學(xué)出版社,20072 周堅。單片機(jī)C語言輕松入門.北京:北京航空航天大學(xué)出版社,20073 何立民.單片機(jī)應(yīng)用技術(shù)大全.北京:北京航空航天大學(xué)出版社,19944 袁希光.傳感器技術(shù)手冊.北京:國防工業(yè)出版社,19865 馮英.傳感器電路原理與制作。成都:成都科技大學(xué)出版社,19976 行開先,葉濟(jì)民。熱

40、敏電阻器.北京:機(jī)械工業(yè)出版社,19817 丁元杰.單片微機(jī)原理及應(yīng)用(第二版)。機(jī)械工業(yè)出版社,2005。2 8 張有德,趙志英。單片微型機(jī)原理、應(yīng)用于實(shí)驗(yàn).復(fù)旦大學(xué)出版社,2000.49 趙新民,王祁。智能儀器設(shè)計基礎(chǔ).哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1999附錄A 多點(diǎn)溫度采集系統(tǒng)電路原理圖附錄B C語言源代碼#include "reg51。h"#include ”intrins。h"define uchar unsigned char#define uint unsigned int#define DiSdata P0 /七段碼數(shù)據(jù)輸出口define dis

41、can P2 /掃描數(shù)據(jù)輸出口sbit DIN=P07; /小數(shù)點(diǎn)控制sbit Scl=P30; /串行時鐘sbit Sda=P31; /串行數(shù)據(jù)sbit alarm=P17;sbit alarm2=P16;uint i;uint h; uint temp;uchar dath2; /溫度輸入口uchar ff2,ff1=0,t3=0;uchar code dis_712=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40;/共陰LED段碼表 ”0” ”1" "2” ”3” "4” "5

42、” "6” "7” "8" ”9” ”滅" ”" uchar code scan_con5=0xfd,0xfb,0xf7,0xef,0xdf; /LED顯示控制,對應(yīng)0的LED有效uchar data display5=0x00,0x00,0x00,0x00,0x002; /顯示單元數(shù)據(jù),共6個數(shù)據(jù)和一個運(yùn)算暫用uchar data display15=0x01,0x02,0x03,0x04,0x052;uchar data DD4=0x90,0x92,0x94; /void delay_us(uint t) /延時函數(shù) for (;

43、t0;t-); /scan() /LED掃描函數(shù) uchar k; for(k=0;k<5;k+) discan=scan_conk; /控制位送P2口 DiSdata=dis_7displayk; /數(shù)據(jù)位送P0口 if (k=3)DIN=1; else DIN=0; /小數(shù)點(diǎn)顯示 delay_us(150); /void delay(void) /延時函數(shù) _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); /void i_start(void) /開始 Sda=1; Scl=1; delay(); Sda=0; delay()

44、; Scl=0; / void i_stop(void) /終止 Sda=0; Scl=1; delay(); Sda=1; delay(); Scl=0; Sda=0; /bit i_clock(void) /應(yīng)答信號 bit sample; Scl=1; delay(); sample=Sda; _nop_(); _nop_(); Scl=0; delay(); return(sample); / void i_ack(void) Sda=0; i_clock(); Sda=1; / bit i_send(uchar i_data) /發(fā)送 uchar i; for(i=0;i<8;

45、i+) Sda=(bit)(i_data & 0x80); i_data=i_data1; i_clock(); Sda=1; return(i_clock(); / uchar i_receive(void) /I2C接收 uchar i_data=0; uchar i; for(i=0;i<8;i+) i_data<=1; Scl=0;delay(); Scl=1;delay() ; i_data|=Sda; Scl=0; delay(); return(i_data); / bit start_temperature_T(unsigned char d) /開始轉(zhuǎn)換命

46、令 uchar t1; t1=DDd; i_start(); if(i_send(t1)) if(i_send(0xee)) i_stop(); delay(); return(1); else i_stop(); delay(); return(0); else i_stop(); delay(); return(0); / bit read_temperature_T(unsigned char p,unsigned char d) unsigned char t1,t2; t1=DDd; t2=DDd+0x01; i_start(); if(i_send(t1)) if(i_send(0xaa) i_start(); if(i_send(t2) (p+1)=i_receive(); i_ack(); *p=i_receive(); i_stop(); delay(); i_send(t1); i_send(0x22); del

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論