版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、單片微機原理及應用課程設計任務書一、設計題目、內容及要求設計題目:簡易數字溫度計設計內容:(1)可以測量50到100攝氏度內的溫度(2)用液晶顯示溫度,精確到小數點后兩位;(2)測量誤差在0.5攝氏度以內。設計要求:(1)根據任務要求設計硬件電路; (2)設計電路原理圖、仿真結果電路圖; (3)畫出程序流程圖,編寫程序;(4)書寫設計說明書。二、設計原始資料1李群芳,肖看.單片機原理、接口及應用.清華大學出版社,2005。32Proteus軟件,Wave/Keil軟件三、要求的設計成果(課程設計說明書、設計實物、圖紙等)設計結果能正確仿真演示;課程設計說明書一份(包括總體設計、方案論證、硬件電
2、路、系統(tǒng)程序流程圖、程序清單)四、進程安排周一 查閱資料,設計電路原理圖、編寫程序周二 利用proteus完成硬件電路繪制周三 程序調試周四 書寫課程設計說明書周五 課程設計答辯五、主要參考資料1何利民。單片機中級教程.機械工業(yè)出版社,2002。42丁元杰.單片微機原理及應用(第二版).機械工業(yè)出版社,2005.23張有德,趙志英.單片微型機原理、應用于實驗.復旦大學出版社,2000.4指導教師(簽名):教研室主任(簽名):目 錄1 引言12 開發(fā)和仿真軟件簡介22。1 開發(fā)軟件Keil C51 uVision222。2 仿真軟件Proteus ISIS33 總體設計方案論證53.1 開發(fā)方案
3、舉例53。1.1 熱敏電阻53。1。2 數字溫度芯片DS162153。2 數據通信技術64 系統(tǒng)各部分電路的選擇和設計74.1 系統(tǒng)的工作原理74。2 AT89C51簡介74.2.1 概述74。2。2 AT89C51引腳功能84。2。3 復位電路的設計94.3數字溫度傳感器104。3。1 DS1621的技術指標104.3。2 DS1621的工作原理114.4 單片機和DS1621接口電路114。5 七段LED數碼顯示電路125 系統(tǒng)軟件設計145.1 編程語言選擇145.2 主程序的設計145。3 溫度采集模塊設計155。4 溫度計算模塊設計155。5 串行總線編程166 軟硬件調試結果分析1
4、77 總結18參考文獻19附錄A 多點溫度采集系統(tǒng)電路原理圖20附錄B C語言源代碼211 引言隨著人們生活水平的不斷提高,單片機控制無疑是人們追求的目標之一,它所給人帶來的方便也是不可否定的,其中數字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為現代人工作、科研、生活、提供更好的更方便的設施就需要從數單片機技術入手,一切向著數字化控制,智能化控制方向發(fā)展。在信息采集(傳感器技術)、信息傳輸(通信技術)和信息處理(計算機技術)三大信息技術中,傳感器屬于信息技術的前沿尖端產品,尤其是溫度傳感器技術,在我國各領域已經引用的非常廣泛,可以說是滲透到社會的每一個領域,人民的生活與環(huán)境的溫度息
5、息相關,在工業(yè)生產過程中需要實時測量溫度,在農業(yè)生產中也離不開溫度的測量,因此研究溫度的測量方法和裝置具有重要的意義.測量溫度的關鍵是溫度傳感器,溫度傳感器的發(fā)展經歷了三個發(fā)展階段:傳統(tǒng)的分立式溫度傳感器,模擬集成溫度傳感器,智能集成溫度傳感器.目前的智能溫度傳感器(亦稱數字溫度傳感器)是在20世紀90年代中期問世的,它是微電子技術、計算機技術和自動測試技術(ATE)的結晶,特點是能輸出溫度數據及相關的溫度控制量,適配各種微控制器(MCU).社會的發(fā)展使人們對傳感器的要求也越來越高,現在的溫度傳感器正在基于單片機的基礎上從模擬式向數字式,從集成化向智能化、網絡化的方向飛速發(fā)展,并朝著高精度、多
6、功能、總線標準化、高可靠性及安全性、開發(fā)虛擬傳感器和網絡傳感器、研制單片測溫系統(tǒng)等高科技的方向迅速發(fā)展。本次課程設計的內容是開發(fā)一個基于AT89C51單片機的測溫系統(tǒng),并采用了數字溫度傳感器DS1621和串行總線通信系統(tǒng),重點對傳感器在單片機下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進行了詳細研究,對各部分的電路也一一進行了設計,該系統(tǒng)可以方便的實現對三路溫度的采集、傳輸、處理和顯示,并可設定上下限報警溫度。它使用起來相當方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點,適合于我們日常生活和工、農業(yè)生產中的溫度測量,也可以當作溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴展。本次課程
7、設計,利用Keil和Proteus軟件設計和仿真該智能數字多點測溫系統(tǒng)。過程中所用到的主要電路由我們自主設計制作,通過查閱資料和借助指導老師最終設計出結構合理、美觀,主要電氣指標良好,性能穩(wěn)定可靠的電路。以培養(yǎng)我們嚴謹的科學態(tài)度,正確的設計思想,科學的設計方法和良好的工作作風,掌握一定的專業(yè)技能及綜合運用基礎理論、基本知識的能力。2 開發(fā)和仿真軟件簡介2。1 開發(fā)軟件Keil C51 uVision2Keil uVISION2 是眾多單片機應用開發(fā)軟件中優(yōu)秀的軟件之一,它支持眾多不同公司的MCS51 架構的芯片,它集編輯,編譯,仿真等于一體,同時還支持、PLM、匯編和C語言的程序設計,界面友好
8、,易學易用,在調試程序,軟件仿真方面也有很強大的功能。Keil C51集成開發(fā)環(huán)境主要由菜單欄、工具欄、源文件編輯窗口、工程窗口和輸出窗口五部分組成。工具欄為一組快捷工具圖標,主要包括基本文件工具欄、建造工具欄和調試工具欄,基本文件工具欄包括新建、打開、拷貝、粘貼等基本操作.建造工具欄主要包括文件編譯、目標文件編譯連接、所有目標文件編譯連接、目標選項和一個目標選擇窗口.調試工具欄位于最后,主要包括一些仿真調試源程序的基本操作,如單步、復位、全速運行等。在工具欄下面,默認有三個窗口.左邊的工程窗口包含一個工程的目標(target)、組(group)和項目文件。右邊為源文件編輯窗口,編輯窗口實質上
9、就是一個文件編輯器,我們可以在這里對源文件進行編輯、修改、粘貼等.下邊的為輸出窗口,源文件編譯之后的結果顯示在輸出窗口中,會出現通過或錯誤(包括錯誤類型及行號)的提示.如果通過則會生成“HEX”格式的目標文件,用于仿真或燒錄芯片。基本環(huán)境如圖2-1所示:本文為互聯網收集,請勿用作商業(yè)用途個人收集整理,勿做商業(yè)用途圖2-1 Keil C51軟件的運行界面MCS51單片機軟件Keil C51開發(fā)過程為:建立一個工程項目,選擇芯片,確定選項。建立匯編源文件或C源文件。用項目管理器生成各種應用文件.檢查并修改源文件中的錯誤。編譯連接通過后進行軟件模擬仿真或硬件在線仿真。2.2 仿真軟件Proteus
10、ISISProteus軟件是來自英國Labcenter electronics公司的EDA工具軟件.該軟件有十幾年的歷史,在全球廣泛使用,除了其具有和其它EDA工具一樣的原理布圖、PCB自動或人工布線及電路仿真的功能外,其革命性的功能是,他的電路仿真是互動的,針對微處理器的應用,還可以直接在基于原理圖的虛擬原型上編程,并實現軟件源碼級的實時調試,如有顯示及輸出,還能看到運行后輸入輸出的效果,配合系統(tǒng)配置的虛擬儀器如示波器、邏輯分析儀等,為用戶建立了完備的電子設計開發(fā)環(huán)境.Proteus ISIS的工作界面是一種標準的Windows界面。主要包括:標題欄、主菜單、標準工具欄、繪圖工具欄、狀態(tài)欄、
11、對象選擇按鈕、預覽對象方位控制按鈕、仿真進程控制按鈕、預覽窗口、對象選擇器窗口、圖形編輯窗口。主要功能是在圖形編輯窗口做出所需的電路圖.軟件的應用設計界面如圖2-2所示:圖2-2 Proteus軟件的運行界面Proteus還提供了諸多資源,如下所述:Proteus可提供的仿真元器件資源:仿真數字和模擬、交流和直流等數千種元器件,有30多個元件庫。Proteus可提供的仿真儀表資源 :示波器、邏輯分析儀、虛擬終端、SPI調試器、 信號發(fā)生器、模式發(fā)生器、交直流電壓表、交直流電流表.理論上同一種儀器可以在一個電路中隨意的調用。除了現實存在的儀器外,Proteus還提供了一個圖形顯示功能,可以將線路
12、上變化的信號,以圖形的方式實時地顯示出來,其作用與示波器相似,但功能更多.這些虛擬儀器儀表具有理想的參數指標,例如極高的輸入阻抗、極低的輸出阻抗.這些都盡可能減少了儀器對測量結果的影響。Proteus可提供的調試手段Proteus提供了比較豐富的測試信號用于電路的測試。這些測試信號包括模擬信號和數字信號。3 總體設計方案論證3.1 開發(fā)方案舉例該系統(tǒng)主要由溫度測量和數據采集兩部分電路組成,實現的方法有很多種,下面將列出兩種在日常生活中和工農業(yè)生產中經常用到的實現方案.3。1。1 熱敏電阻由于本設計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應,在將隨被測溫度變化的電壓或電流采集過來,進行
13、A/D轉換后,就可以用單片機進行數據的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設計需要用到A/D轉換電路,感溫電路比較麻煩.熱敏電阻的外觀如圖3-1所示。圖31 熱敏電阻外觀圖3.1.2 數字溫度芯片DS1621 采用數字溫度芯片DS1621 測量溫度,輸出信號全數字化。便于單片機處理及控制,省去傳統(tǒng)的測溫方法的很多外圍電路。且該芯片的物理化學性很穩(wěn)定,它能用做工業(yè)測溫元件,此元件線形較好。在0100攝氏度時,最大線形偏差小于1攝氏度.DS1621 的最大特點之一采用了單總線的數據傳輸,由數字溫度計DS1621和微控制器AT89C51構成的溫度測量裝置,它直接輸出溫度的數字信號,可直
14、接與計算機連接。這樣,測溫系統(tǒng)的結構就比較簡單,體積也不大。采用51 單片機控制,軟件編程的自由度大,可通過編程實現各種各樣的算術算法和邏輯控制,而且體積小,硬件實現簡單,安裝方便??刂乒ぷ?還可以與PC 機通信上傳數據,另外AT89S51 在工業(yè)控制上也有著廣泛的應用,編程技術及外圍功能電路的配合使用都很成熟。該系統(tǒng)利用AT89C51芯片控制溫度傳感器DS1621進行實時溫度檢測并顯示,能夠實現快速測量環(huán)境溫度,并可以根據需要設定上下限報警溫度。該系統(tǒng)擴展性非常強,它可以在設計中加入時鐘芯片DS1302以獲取時間數據,在數據處理同時顯示時間,并可以利用AT24C16芯片作為存儲器件,以此來對
15、某些時間點的溫度數據進行存儲,利用鍵盤來進行調時和溫度查詢,獲得的數據可以通過MAX232芯片與計算機的RS232接口進行串口通信,方便的采集和整理時間溫度數據。從以上兩種方案,很容易看出,采用方案二,電路比較簡單,軟件設計也比較簡單,故采用了方案二。測溫電路的總體設計方框圖如圖3-2所示,控制器采用單片機AT89C51,溫度傳感器采用DS1621,用5位LED數碼管以串口傳送數據實現溫度顯示。圖3-2 測溫電路的總體設計方框圖3.2 數據通信技術目前,常用的微機和外設之間數據傳輸的串行總線有I2C總線、SPI總線等,其中,I2C總線采用同步串行雙線(一根時鐘線,一根數據線)方式,而SPI總線
16、采用同步串行三線(時鐘線,輸入線,數據輸入線)方式。這兩種總線需要至少兩根或兩根以上的信號線。I2C是PHILIPS公司推出的一種串行總線.它是目前使用較廣泛的芯片間的串行擴展總線。該總線用兩條連線實現全雙工同步數據傳送。它可以使具有I2C總線的單片機直接與具有I2C總線接口的各種擴展器件連接。本次課程設計就采用這種通信方式。美國達拉斯半導體公司推出了一項特有的單線技術.該技術于上述總線不同,它采用單根信號線,即可傳輸時鐘,又能傳輸數據,而且數據傳輸時是雙向的,因而這種單線技術具有線路簡單,硬件開銷少,成本低廉,便于擴展的優(yōu)點。4 系統(tǒng)各部分電路的選擇和設計4。1 系統(tǒng)的工作原理本溫度數據采集
17、系統(tǒng)的主要功能是測量溫度,并顯示溫度測量結果,并附帶了單片機和PC機之間通訊接口.系統(tǒng)結構包括單片機部分、溫度傳感器、顯示電路、通訊接口電路等幾個部分。圖4-1為系統(tǒng)的總體結構框圖。圖4-1 測溫系統(tǒng)的總體結構框圖系統(tǒng)工作原理是:電路在上電后,最先單片機利用模擬總線I2C對DS1621進行尋址,單片機在接收到DS1621應答后,單片機將設置/狀態(tài)寄存器的值通過I2C總線寫入該寄存器,之后DS1621在單片機控制下進行溫度測量,然后DS1621把所采集的溫度(50攝氏度100攝氏度,精度為0。5攝氏度)傳輸給單片機,最后單片機把溫度數據送到LED上顯示。系統(tǒng)中附帶的串行接口以供備用.系統(tǒng)詳細的電
18、路原理圖可見附錄部分.4。2 AT89C51簡介4.2.1 概述對于單片機的選擇,可以考慮使用8031與8051系列,由于8031沒有內部RAM,系統(tǒng)又需要大量內存存儲數據,因而不適用.所以,我們選用51系列單片機AT89C51.AT89C51是美國ATMEL公司生產的低功耗,高性能CMOS8位單片機,片內含4KB的可編程的Flash只讀程序存儲器,兼容標準8051指令系統(tǒng)及引腳,并集成了 Flash 程序存儲器,既可在線編程(ISP),也可用傳統(tǒng)方法進行編程,因此,低價位AT89C51單片機可應用于許多高性價比的場合,可靈活應用于各種控制領域,對于簡單的測溫系統(tǒng)已經足夠.單片機AT89C51
19、具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設計需要,很適合便攜手持式產品的設計使用系統(tǒng)可用二節(jié)電池供電。AT89C51的主要特性如下:與MCS-51 兼容; 4K字節(jié)可編程閃爍存儲器;三級程序存儲器鎖定;128×8位內部RAM; 32根可編程I/O線;兩個16位定時器/計數器; 5個中斷源;可編程串行通道; 片內振蕩器和時鐘電路。4.2.2 AT89C51引腳功能單片機芯片AT89C51為40引腳雙列直插式封裝。其各個引腳功能介紹如下,芯片AT89C51的引腳排列和邏輯符號如圖4-2 所示。各引腳分別為:VCC:供電電壓GND:接地P0口P0口為一個8位漏級
20、開路雙向I/O口,每個管腳可吸收8TTL門電流。當P1口的管腳寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FLASH編程時,P0口作為原碼輸入口,當FLASH進行校驗時,P0輸出原碼,此時P0外部電位必須被拉高。P1口P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流P1口管腳寫入”1"后,電位被內部上拉為高可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。P2口圖42 AT89C51的引腳排列圖P2口為一個內部上拉電阻的8
21、位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流當P2口被寫”1"時,其管腳電位被內部上拉電阻拉高,且作為輸入。作為輸入時P2口的管腳電位被外部拉低,將輸出電流,這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址"1”時,它利用內部上拉的優(yōu)勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容.P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流.當P3口寫入”1"后,它們被內部上
22、拉為高電平,并用作輸入。作為輸入時,由于外部下拉為低電平,P3口將輸出電流(ILL),也是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,同時P3口同時為閃爍編程和編程校驗接收一些控制信號。RST:復位輸入端。當振蕩器復位時,要保持RST兩個機器周期的高電平時間。PSEN外部程序存儲器的選通信號。在由外部程序存儲器取址期間,每個機器周期PSEN兩次有效.但在訪問外部數據存儲器時,這兩次有效的PSEN信號將不出現.EA/VPP當EA保持低電平時,訪問外部ROM;注意加密方式1時,EA將內部鎖定為RESET;當EA端保持高電平時,訪問內部ROM.在FLASH編程期間,此引腳也用于施加
23、12V編程電源(VPP)。4。2。3 復位電路的設計單片機的復位電路如圖43所示.該復位電路采用手動復位與上電復位相結合的方式.當按下按鍵S1時,VCC通過R2電阻給復位輸入端口一個高電平,實現復位功能,即手動復位.上電復位就是VCC通過電阻R2和電容C構成回路,該回路是一個對電容C1充電和放電的電路,所以復位端口得到一個周期性變化的電壓值,并且有一定時間的電壓值高于CPU復位電壓,實現上電復位功能。圖4-3 單片機的復位電路4.3數字溫度傳感器4.3.1 DS1621的技術指標DS1621是美國DALLAS公司生產的一種功能較強的數字式溫度傳感器和恒溫控制器。數字接口電路簡單,與I2C總線兼
24、容,且可以使用一片控制器控制多達8片的DS1621。其數字溫度輸出達9位,精度為0。5攝氏度。DS1621可工作在最低2。7V電壓下,適用于低功耗應用系統(tǒng). DS1621的引腳排列圖如圖4-4所示,引腳功能描述如表41所示。圖4-4 DS1621的引腳排列圖表41 DS1621的引腳功能表引腳符號功能描述1SDA2線I2C 串行數據輸入/輸出2SCL2線I2C 串行時鐘端3TOUT溫度上下限超出輸出4GND地5A2A0片選地址輸入A2A06VDD電源端(+2。75。5V)4.3.2 DS1621的工作原理圖4-5 DS1621的構成原理框圖斜坡累加電路重預置比較器計數溫度低敏感振蕩器重預置電路
25、溫度寄存器溫度低敏感振蕩器計數器=0DS1621的構成原理框圖如圖4-5所示,在測量溫度時使用了獨有的在線溫度測量技術。它通過在一個由對溫度高度敏感的振蕩器決定的計數周期內對溫度低敏感的振蕩器時鐘脈沖的計數值的計算來測量溫度。DS1621在計數器中預置了一個初值,它相當于50攝氏度.如果計數周期結束之前計數器達到0,已預置了此初值的溫度寄存器中的數字就會增加,從而表明溫度高于55攝氏度.與此同時,計數器斜坡累加電路被重新預置一個值,然后計數器重新對時鐘計數,直到計數值為0。通過改變增加的每1 內的計數器的計數,斜坡累加電路可以補償振蕩器的非線性誤差,以提高精度,任意溫度下計數器的值和每一斜坡累
26、加電路的值對應的計數次數須為已知。 DS1621通過計算可以得到0. 5攝氏度的精度,溫度輸出為9位,在發(fā)出讀溫度值請求后還會輸出兩位補償值。表2給出了所測的溫度和輸出數據的關系。這些數據可通過2線制串行口連續(xù)輸出,MSB在前,LSB在后。 4.4 單片機和DS1621接口電路前面已經介紹了DS1621溫度傳感器以8位數字輸出,數據輸出與I2C總線兼容,可以方便地通過SDA,SCL以串行方式與單片機相連。而AT89C51面向主/從功能字節(jié)的I2C總線串行I/O口,所以多路溫度數字量可以通過I2C總線直接送GAS97C2051單片機.I2C總線(Inter IC BUS)是Philips公司推出
27、的雙向兩線串行通信標準。由于它具有接口少、通信效率高等優(yōu)點,現已得到廣泛的應用I2C總線是一種串行的數據總線,掛在總線上的各集成電路模塊(單片機和具有各種功能的電路芯片)通過一條串行的數據線 (SDA)和一條串行的時鐘線(SCL),按一定的通信協(xié)議進行尋址和信息的傳輸。每個電路模塊都有唯一的地址,在信息的傳輸過程中,I2C總線上的電路模塊有的是主控器,有的是被控器,主控器和被控器都可以是發(fā)送器或接收器,這完全取決于它所要完成的功能。采用I2C總線可最大限度地簡化電路結構,實現電路的模塊化、標準化設計。I2C總線在進行數據傳輸時,由作為主控器的AT89C51來初始化一次數據的傳輸,并在I2C總線
28、上提供時鐘進行傳送。信息傳送的對象、方向和傳送的開始、終止也由主控器(AT89C51)來決定.此時,在I2C總線上被主控器所尋址的集成電路模塊稱為被控器(DS162)。在I2C總線上,數據由發(fā)送器傳出,并被接收器接收,接收器在每次正確接收到一個數據字節(jié)后,都要在數據總線(SDA)上給發(fā)送器一個應答信號。因單片機AT89C51本身 沒有I2C硬件資源,所以必須用軟件來模擬I2C總線,本系統(tǒng)利用單片機AT89C51的P3.0和P3。1引腳分別作I2C總線的數據線和時鐘線(見附錄A).AT89C51模擬I2C總線主要由軟件設置來實現其功能。4。5 七段LED數碼顯示電路采用七段LED數碼顯示,LED
29、顯示器內部由7段發(fā)光二極管組成,因此亦稱之為七段LED顯示器,由于主要用于顯示各種數字符號,故又稱之為LED數碼管.每個顯示器還有一個圓點型發(fā)光二極管,用于顯示小數點。在單片機AT89C51接收到DS1621所采集的溫度數據后,單片機把所讀到的數據送給數碼管顯示.系統(tǒng)具體的顯示電路如圖46所示。圖4-6 七段LED數碼管顯示電路顯示電路中單片機AT89C51的P0口直接驅動8段數碼管(其中需要給P0外接上拉電阻)完成字形碼的輸出(字形選擇)。而P2.1P2.5控制6位LED進行分時選通,這樣在任一時刻,只有一位LED是點亮的,但只要掃描的頻率足夠高(一般大于25Hz),由于人眼的視覺暫留特性,
30、直觀上感覺卻是連續(xù)點亮的,這就是我們常說的動態(tài)掃描電路。5 系統(tǒng)軟件設計5。1 編程語言選擇51的編程語言常用的有兩種,一種是匯編語言,一種是C語言.匯編語言的機器代碼生成效率很高但可讀性卻并不強,復雜一點的程序就更是難讀懂,而C語言在大多數情況下其機器代碼生成效率和匯編語言相當,C 語言很好的結構性和模塊化更容易閱讀和維護,用C 編寫程序比匯編更符合人們的思考習慣,開發(fā)者可以更專心的考慮算法而不是考慮一些細節(jié)問題這樣就減少了開發(fā)和調試的時間,而且C語言還可以嵌入匯編來解決高時效性的代碼編寫問題。5.2 主程序的設計初始化N讀溫度數據并存儲生成地址字節(jié)1001000,循環(huán)次數3延時1S以上等待
31、結果啟動轉換向設置/狀態(tài)寄存器設置為連續(xù)工作方式生成地址字節(jié)1001000,循環(huán)次數3次地址字節(jié)加02H 循環(huán)次數減1為0?讀溫度數據并存儲及顯示地址字節(jié)加02H 循環(huán)次數減1為0?圖5-1 主程序流程圖NN主程序的主要功能是負責多點溫度數據的實時采集、傳輸,處理和顯示。其程序流程如圖5-1所示.5。3 溫度采集模塊設計為本溫度采集系統(tǒng)開發(fā)的軟件程序,可以對DS1621內部的寄存器編程控制DS1621的工作方式,以及從這些數據寄存器讀取溫度值,最后把經過單片機數據處理后的溫度送到LED上顯示。AT89C51扮演著上傳下達的角色,單片機端的程序采用了C語言.DS1621一側的通信程序將利用并行端
32、口P3。0和P3.1來模擬I2C 總線協(xié)議, 總線上的通信通過程序來實現。整個軟件采用了模塊化的程序設計方法。為了實現AT89C51和DS1621之間I2C 協(xié)議之下的串行通信,編寫了一些專用子程序.這些子程序段包括:符號定義、AT89C51的端口初始化、啟動信號時序產生、停止信號時序產生、發(fā)送字節(jié)、讀取字節(jié)、讀取溫度、顯示。系統(tǒng)電路在上電后開始工作,最先程序單片機進行初始化設置,然后單片機利用模擬I2C總線對DS1621進行尋址。單片機在接收到DS1621應答后,緊接著單片機利用命令(AAh、ACh、EEh、22h)將設置/狀態(tài)寄存器的值通過I2C總線寫入DS1621狀態(tài)寄存器,該系統(tǒng)中把D
33、S1621設置為連續(xù)溫度轉換工作方式,之后DS1261在單片控制下進行溫度測量,然后DS1261把所采集的溫度傳輸給單片機,最后單片機把溫度數據送到LED上顯示.詳細程序可見附錄2。5。4 溫度計算模塊設計計算溫度子程序將從DS1621中讀取的溫度值進行BCD碼的轉換運算,并進行溫度值正負的判定,其程序流程圖如圖52所示。 開始溫度零下?溫度值取補碼置“”標志計算小數位溫度BCD值 計算整數位溫度BCD值 結束置“+”標志NY圖5-2 溫度計算流程圖5.5 串行總線編程在本系統(tǒng)中,單片機AT89C51 作為主控器件,3個DS1621作為被控器,所以我們只要考慮主方式下的狀態(tài)處理模塊,即考慮AT
34、89C51主發(fā)送和主接收方式下的狀態(tài)處理模塊。該電路中為了簡化電路設計在I2C總線的時鐘和數據上各加了一個上拉電阻,以獲取一定的上拉電流使信號采集可靠.本系統(tǒng)中掛在I2C總線上的各電路模塊都有其節(jié)點地址。AT89C51作為主控器其節(jié)點地址無意義,作為被控器的3個DS1621都有其節(jié)點地址,其地址為1001A2A1A0 ,其中,1001是器件編號,已由芯片生產廠家規(guī)定,A2A1A0為DS1621的3個引腳,在電路中分別接高低電平決定2個DS1621的不同地址。2個DS1621的地址分別為10010001001010。本系統(tǒng)中的I2C總線的尋址方式為的廣播尋址,即AT89C51對掛在I2C總線上所
35、有的DS1621的廣播呼叫尋址。AT89C51發(fā)出開始信號S后的第一個字節(jié)確定由AT89C51所選擇的一個DS1621的地址,然后在第一個字節(jié)以后開始數據傳送。具體實現尋址的方法是:由AT89C51發(fā)出啟動位S后緊跟著發(fā)送從器件DS1621的7位地址碼,即S+SLA,在節(jié)點地址尋址中SLA為被尋址的從節(jié)點地址,主控設備在發(fā)送數據前,在時鐘為高時,在數據線上發(fā)送一個由高到低的信號來表示開始傳送數據,DS1621 接收到開始信號時,移入后續(xù)8 位(高7 位地址線和一個R/W 位)來確定進行如何操作,R/W 位為0 表示寫,為1 表示讀.讀寫操作完成后,在時鐘為高時,在數據線上發(fā)送一個由低到高的信號
36、表示傳送結束。具體數據格式如圖5-3所示,時序如圖54所示。圖5-3 串行通信的數據格式圖5-4 串行通信的時序圖 6 軟硬件調試結果分析本設計應用Proteus及Keil軟件,首先根據自己設計的電路圖用Proteus軟件畫出電路模型,關于這個軟件的使用通過查一些資料和自己的摸索學習;然后用Keil軟件對所編寫的程序進行編譯、鏈接,如果沒有錯誤和警告便可生成程序的hex文件,調試好程序后將目標文件導入Proteus的AT89C51芯片中進行軟件調試。最后進行三路溫度的對比測試。數字溫度計的仿真電路圖如圖6-1所示。圖6-1 仿真圖仿真結果分析:不斷調整三路DS1621的溫度值,發(fā)現LED顯示器
37、上的數值和DS1621屏幕上的標準值相差無幾,在誤差允許的范圍之內。當某一路的溫度不在5080 范圍時,兩個LED同時發(fā)光,表示告警信息。經調試,證明開發(fā)者最終設計出結構合理、美觀,主要電氣指標良好,性能穩(wěn)定可靠的電路。7 總結不知不覺中,一周的課程設計實習已經接近尾聲了??赡苁羌倨诳斓降木壒?,總感覺這次實習特別短暫。此刻,真是感慨萬千啊!現在我可以自豪的說,這次實習我達到了預期的目標。因為在實習期間,我每天都在接觸新的東西,每天都會有新的問題等待我去探討去解決,每天都有新收獲。回想課設第一天,我們做點電腦前,不知道自己能干點什么,對于指導老師的講解也是云里霧里的。因為頭一回接觸Proteus
38、和Keil這兩個軟件。但是我相信,只要自己用心了,沒有辦不成的事。于是,我靜下心來,仔細研究老師下發(fā)的教程。我珍惜每一次的上機機會,勤加練習,課下積極研究手冊和相關書籍。兩天過后,才算有點眉目了.到這時心里才算稍微安穩(wěn)了一些,再加上以前學過名為Protel的電路設計軟件,所以我的自信心加強了。在這次設計過程中,體現出自己單獨設計電路的能力以及綜合運用知識的能力,體會了學以致用、突出自己勞動成果的喜悅心情,從中發(fā)現自己平時學習的不足和薄弱環(huán)節(jié),從而加以彌補。在此感謝我們的郝志華,田紅霞,張國旭老師,老師嚴謹細致、一絲不茍的作風一直是我工作、學習中的榜樣;老師循循善誘的教導和不拘一格的思路給予我無
39、盡的啟迪;這次簡易數字溫度計設計的每個實驗細節(jié)和每個數據,都離不開老師您的細心指導.而您開朗的個性和寬容的態(tài)度,幫助我能夠很順利的完成了這次課程設計.同時感謝對我?guī)椭^的同學們,謝謝你們對我的幫助和支持,讓我感受到同學的友誼。參考文獻1 馬忠梅等。單片機的C語言應用程序設計。北京:北京航空航天大學出版社,20072 周堅。單片機C語言輕松入門.北京:北京航空航天大學出版社,20073 何立民.單片機應用技術大全.北京:北京航空航天大學出版社,19944 袁希光.傳感器技術手冊.北京:國防工業(yè)出版社,19865 馮英.傳感器電路原理與制作。成都:成都科技大學出版社,19976 行開先,葉濟民。熱
40、敏電阻器.北京:機械工業(yè)出版社,19817 丁元杰.單片微機原理及應用(第二版)。機械工業(yè)出版社,2005。2 8 張有德,趙志英。單片微型機原理、應用于實驗.復旦大學出版社,2000.49 趙新民,王祁。智能儀器設計基礎.哈爾濱:哈爾濱工業(yè)大學出版社,1999附錄A 多點溫度采集系統(tǒng)電路原理圖附錄B C語言源代碼#include "reg51。h"#include ”intrins。h"define uchar unsigned char#define uint unsigned int#define DiSdata P0 /七段碼數據輸出口define dis
41、can P2 /掃描數據輸出口sbit DIN=P07; /小數點控制sbit Scl=P30; /串行時鐘sbit Sda=P31; /串行數據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顯示控制,對應0的LED有效uchar data display5=0x00,0x00,0x00,0x00,0x002; /顯示單元數據,共6個數據和一個運算暫用uchar data display15=0x01,0x02,0x03,0x04,0x052;uchar data DD4=0x90,0x92,0x94; /void delay_us(uint t) /延時函數 for (;
43、t0;t-); /scan() /LED掃描函數 uchar k; for(k=0;k<5;k+) discan=scan_conk; /控制位送P2口 DiSdata=dis_7displayk; /數據位送P0口 if (k=3)DIN=1; else DIN=0; /小數點顯示 delay_us(150); /void delay(void) /延時函數 _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) /應答信號 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) /開始轉換命
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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度產學研合作新能源汽車技術研發(fā)合同4篇
- 2025年鄉(xiāng)村留守兒童教育援助合同書4篇
- 2025版風電場并網供電協(xié)議合同模板3篇
- 端硯課程設計方案
- 2025年消防設施維保與消火栓定期巡檢合同3篇
- 頻率概率課程設計
- 陶瓷特種高鋁球課程設計
- 至誠matlab課程設計報告
- 2025年智能倉儲物流系統(tǒng)設計與集成合同4篇
- 2025年度醫(yī)療機構患者病歷信息保密及知識產權保護協(xié)議3篇
- 《FANUC-Oi數控銑床加工中心編程技巧與實例》教學課件(全)
- 微信小程序運營方案課件
- 抖音品牌視覺識別手冊
- 陳皮水溶性總生物堿的升血壓作用量-效關系及藥動學研究
- 安全施工專項方案報審表
- 學習解讀2022年新制定的《市場主體登記管理條例實施細則》PPT匯報演示
- 好氧廢水系統(tǒng)調試、驗收、運行、維護手冊
- 中石化ERP系統(tǒng)操作手冊
- 五年級上冊口算+脫式計算+豎式計算+方程
- 氣體管道安全管理規(guī)程
- 《眼科學》題庫
評論
0/150
提交評論