歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

單片機課程設計(論文)-基于51單片機的DS18B20數(shù)字溫度計的設計.doc

  • 資源ID:116647218       資源大?。?span id="cdsbsix" class="font-tahoma">3.78MB        全文頁數(shù):34頁
  • 資源格式: DOC        下載積分:20積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要20積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

單片機課程設計(論文)-基于51單片機的DS18B20數(shù)字溫度計的設計.doc

單片機課程設計系部名稱: 信息工程系 專業(yè)班級: 電氣083班 學 號: 200880884* 學生姓名: * * 指導教師: 張 * * 2011年06月20日0中原工學院信息商務學院課程設計目錄1 前言12 設計任務及要求22.1 設計任務22.2 設計要求23 課程設計方案及器材選用分析33.1 設計總體方案33.1.1 方案論證33.1.2 方案二的總體設計框圖43.2器材選用分析43.2.1 DS18B20溫度傳感器43.2.2 AT89S52單片機介紹123.3 軟件流程圖153.3.1 主程序153.3.2 讀溫度子程序153.3.3 溫度轉(zhuǎn)換命令子程序163.3.4 計算溫度子程序164 硬件電路的設計174.1 Protel99 SE軟件介紹174.1.1 Protel99 SE軟件174.1.2 主控制電路圖184.2 Proteus 進行仿真204.2.1 Proteus6簡介204.2.2 proteus仿真圖205 調(diào)試性能及分析22課程設計心得24參考文獻25附錄:DS18B20顯示程序261 前言目前,單片機已經(jīng)在測控領域中獲得了廣泛的應用,它除了可以測量電信以外,還可以用于溫度、濕度等非電信號的測量,能獨立工作的單片機溫度檢測、溫度控制系統(tǒng)已經(jīng)廣泛應用很多領域。單片機是一種特殊的計算機,它是在一塊半導體的芯片上集成了CPU,存儲器,RAM,ROM,及輸入與輸出接口電路,這種芯片稱為:單片機。由于單片機的集成度高,功能強,通用性好,特別是它具有體積小,重量輕,能耗低,價格便宜,可靠性高,抗干擾能力強和使用方便的優(yōu)點,使它迅速的得到了推廣應用,目前已成為測量控制系統(tǒng)中的優(yōu)選機種和新電子產(chǎn)品中的關鍵部件。單片機已不僅僅局限于小系統(tǒng)的概念,現(xiàn)已廣泛應用于家用電器,機電產(chǎn)品,辦公自動化用品,機器人,兒童玩具,航天器等領域。本次課程設計,就是用單片機實現(xiàn)溫度控制,傳統(tǒng)的溫度檢測大多以熱敏電阻為溫度傳感器,但熱敏電阻的可靠性差,測量溫度準確率低,而且必須經(jīng)過專門的接口電路轉(zhuǎn)換成數(shù)字信號才能由單片機進行處理。本次采用DS18B20數(shù)字溫度傳感器來實現(xiàn)基于51單片機的數(shù)字溫度計的設計。傳統(tǒng)的溫度計有反應速度慢、讀數(shù)麻煩、測量精度不高、誤差大等缺點而下面利用集成溫度傳感器AD590設計并制作了一款基于AT89C51的4位數(shù)碼管顯示的數(shù)字溫度計,其電路簡單,軟硬件結(jié)構模塊化,易于實現(xiàn)。 該數(shù)字溫度計利用AD590集成溫度傳感器及其接口電路完成溫度的測量并轉(zhuǎn)換成模擬電壓信號,經(jīng)由模數(shù)轉(zhuǎn)換器ADC0804轉(zhuǎn)換成單片機能夠處理的數(shù)字信號,然后送到單片機AT89C51中進行處理變換,最后將溫度值顯示在D4、D3、D2、D1共4位七段碼LED顯示器上。系統(tǒng)以AT89C51單片機為控制核心,加上AD590測溫電路、ADC模數(shù)轉(zhuǎn)換電路、4位溫度數(shù)據(jù)顯示電路以及外圍電源、時鐘電路等組成。 2 設計任務及要求2.1 設計任務現(xiàn)代社會生活中,多功能的數(shù)字溫度計可以給我們的生活帶來很大的方便;支持“一線總線”接口的溫度傳感器簡化了數(shù)字溫度計的設計,降低了成本;以美國MAXIM/DALLAS半導體公司的單總線溫度傳感器DS18B20為核心,以ATMEL公司的AT89S52為控制器設計的DS18B20溫度控制器結(jié)構簡單、測溫準確、具有一定控制功能的智能溫度控制器。此次課程設計,就是用單片機1實現(xiàn)溫度控制,傳統(tǒng)的溫度檢測大多以熱敏電阻為溫度傳感器,但熱敏電阻的可靠性差,測量溫度準確率低,而且必須經(jīng)過專門的接口電路轉(zhuǎn)換成數(shù)字信號才能由單片機進行處理。本次采用DS18B20數(shù)字溫度傳感器來實現(xiàn)基于51單片機的數(shù)字溫度計的設計。該數(shù)字溫度計利用AD590集成溫度傳感器及其接口電路完成溫度的測量并轉(zhuǎn)換成模擬電壓信號,經(jīng)由模數(shù)轉(zhuǎn)換器ADC0804轉(zhuǎn)換成單片機能夠處理的數(shù)字信號,然后送到單片機AT89C51中進行處理變換,最后將溫度值顯示在D4、D3、D2、D1共4位七段碼LED顯示器上。系統(tǒng)以AT89C51單片機為控制核心,加上AD590測溫電路、ADC模數(shù)轉(zhuǎn)換電路、4位溫度數(shù)據(jù)顯示電路以及外圍電源、時鐘電路等組成。2.2 設計要求設計一個基于單片機的DS18B20數(shù)字溫度計。課程設計要求: 5V供電; 溫度采集采用DS18B20; 4位LED顯示; 2個按鍵; 設計溫度控制器原理圖,學習用PROTEL畫出該原理圖,并用proteus進行仿真;設計和繪制軟件流程圖,用C語言進行程序編寫;焊接硬件電路,進行調(diào)試。3 課程設計方案及器材選用分析3.1設計總體方案提及到溫度的檢測,我們首先會考慮傳統(tǒng)的測溫元件有熱電偶和熱電阻,而熱電偶和熱電阻測出的一般都是電壓,再轉(zhuǎn)換成對應的溫度,需要比較多的外部硬件支持,硬件電路復雜,軟件調(diào)試也復雜,制作成本高。因此,本數(shù)字溫度計設計采用智能溫度傳感器DS18B20作為檢測元件,測溫范圍為-55C至+125C,最大分辨率可達0.0625C。DS18B20可以直接讀出被測量的溫度值,而采用三線制與單片機相連,減少了外部的硬件電路,具有低成本和易使用的特點。按照系統(tǒng)設計功能的要求,確定系統(tǒng)由三個模塊組成:主控制器STC89C51,溫度傳感器DS18B20,驅(qū)動顯示電路??傮w電路框圖如下:主控制器STC89C51DS18B20驅(qū)動顯示電路圖3.1 系統(tǒng)總體框圖3.1.1方案論證方案一:由于本設計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應,在將隨被測溫度變化的電壓或電流采集過來,進行A/D轉(zhuǎn)換后,就可以用單片機進行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設計需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。所以,他的設計理論不符合本次設計的方案要求,應繼續(xù)考慮另一可行方案。方案二:進而考慮到用溫度傳感器,在單片機電路設計中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測溫度值,進行轉(zhuǎn)換,就可以滿足設計要求。因此,從以上兩種方案很容易看出,方案二,電路比較簡單,軟件設計也比較簡單,故采用了方案二。3.1.2方案二的總體設計框圖溫度計電路設計總體設計方框圖如圖1所示,控制器采用單片機AT89S51,溫度傳感器采用DS18B20,用3位LED數(shù)碼管以串口傳送數(shù)據(jù)實現(xiàn)溫度顯示。DS18B20 采用3 腳PR-35 封裝或8 腳SOIC 封裝。主 控 制 器LED顯 示溫 度 傳 感 器單片機復位時鐘振蕩報警點按鍵調(diào)整圖3.2總體設計方框圖主控制器:單片機AT89S51具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設計需要,很適合便攜手持式產(chǎn)品的設計使用系統(tǒng)可用二節(jié)電池供電。顯示電路:顯示電路采用3位共陽LED數(shù)碼管,從P3口RXD,TXD串口輸出段碼。3.2器材選用分析3.2.1 DS18B20溫度傳感器1. DS18B20的特點本設計的測溫系統(tǒng)采用芯片DS18B20,DS18B20是DALLAS公司的最新單線數(shù)字溫度傳感器,它的體積更小,適用電壓更寬,更經(jīng)濟。實現(xiàn)方法簡介DS18B20采用外接電源方式工作,一線測溫一線與STC89C51連接,測出的數(shù)據(jù)放在寄存器中,將數(shù)據(jù)經(jīng)過BCD碼轉(zhuǎn)換后送到LED顯示。DS18B20溫度傳感器是美國DALLAS半導體公司最新推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)位的數(shù)字值讀數(shù)方式。DS18B20的性能特點如下:獨特的單線接口僅需要一個端口引腳進行通信;多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)功能;無須外部器件;可通過數(shù)據(jù)線供電,電壓范圍為3.05.5;零待機功耗;溫度以或位數(shù)字;用戶可定義報警設置;報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作; DS18B20內(nèi)部結(jié)構主要由四部分組成:64位光刻ROM,溫度傳感器,非揮發(fā)的溫度報警觸發(fā)器TH和TL,高速暫存器。DS18B20的管腳排列如圖2-3-1所示。64位光刻ROM是出廠前被光刻好的,它可以看作是該DS18B20的地址序列號。不同的器件地址序列號不同。 C64 位ROM和單線接口高速緩存存儲器與控制邏輯溫度傳感器高溫觸發(fā)器TH低溫觸發(fā)器TL配置寄存器8位CRC發(fā)生器Vdd 圖3.3 DS18B20的內(nèi)部結(jié)構圖3.4 DS18B20的引腳分布圖64位ROM的結(jié)構開始8位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前面56位的CRC檢驗碼,這也是多個DS18B20可以采用一線進行通信的原因。溫度報警觸發(fā)器和,可通過軟件寫入戶報警上下限。DS18B20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的EERAM。高速暫存RAM的結(jié)構為字節(jié)的存儲器,結(jié)構如圖2-3-2所示。頭2個字節(jié)包含測得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復位時被刷新。第5個字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時寄存器中的分辨率轉(zhuǎn)換為相應精度的溫度數(shù)值。該字節(jié)各位的定義如下圖所示。低5位一直為1,TM是工作模式位,用于設置DS18B20在工作模式還是在測試模式,DS18B20出廠時該位被設置為0,用戶要去改動,R1和0決定溫度轉(zhuǎn)換的精度位數(shù),來設置分辨率。圖3.5 DS18B20的字節(jié)定義DS18B20高速暫存器共9個存存單元,如表所示:表3-1 DS18B20的引腳分布圖序號 寄存器名稱 作 用 序號 寄存器名稱 0 溫度低字節(jié) 以16位補碼形式存放 4、5 保留字節(jié)1、2 1 溫度高字節(jié) 6 計數(shù)器余值 2 TH/用戶字節(jié)1 存放溫度上限 7 計數(shù)器/ 3 HL/用戶字節(jié)2 存放溫度下限 8 CRC 以12位轉(zhuǎn)化為例說明溫度高低字節(jié)存放形式及計算:12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18B20的兩個高低兩個8位的RAM中,二進制中的前面5位是符號位。如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625才能得到實際溫度。 高8位 S S S S S 26 25 24 低8位 23 22 21 20 2-1 2-2 2-3 2-4 表3-2 DS18B20的字節(jié)存放表由下圖可以看到,Dsl8820的內(nèi)部存儲器是由8個單元組成,其中第0、1個存放測量溫度值,第2、3分別存放報警溫度的上下限值,第4單元為配置單元,5、6、7單元在DSl8820這里沒有被用到。對于第4個寄存器,用戶可以設置溫度轉(zhuǎn)換精度,系統(tǒng)默認12bit轉(zhuǎn)換精度,相當于十進制的00625,其轉(zhuǎn)換時間大約為750磷。具體見表2-4-1。圖3.6 內(nèi)部存儲器結(jié)構圖表3-3 溫度精度配置R1R0轉(zhuǎn)換精度(16進制)轉(zhuǎn)換精度(十進制)轉(zhuǎn)換時間009bit0.593.75ms0110bit0.25187.5ms1011bit0.125375ms1112bit0.0625750ms 由表3-3可見,DS18B20溫度轉(zhuǎn)換的時間比較長,而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間越長。因此,在實際應用中要將分辨率和轉(zhuǎn)換時間權衡考慮。高速暫存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625LSB形式表示。當符號位S0時,表示測得的溫度值為正值,可以直接將二進制位轉(zhuǎn)換為十進制;當符號位S1時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制數(shù)值。表2-4-2是一部分溫度值對應的二進制溫度數(shù)據(jù)。表3-4 溫度精度配置溫度/二進制表示十六進制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50000 0000 0000 00100008H00000 0000 0000 10000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90HDS18B20完成溫度轉(zhuǎn)換后,就把測得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比較。若TTH或TTL,則將該器件內(nèi)的報警標志位置位,并對主機發(fā)出的報警搜索命令作出響應。因此,可用多只DS18B20同時測量溫度并進行報警搜索。在64位ROM的最高有效字節(jié)中存儲有循環(huán)冗余檢驗碼(CRC)。主機ROM的前56位來計算CRC值,并和存入DS18B20的CRC值作比較,以判斷主機收到的ROM數(shù)據(jù)是否正確。DS18B20的測溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入。器件中還有一個計數(shù)門,當計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進行計數(shù)進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將55所對應的一個基數(shù)分別置入減法計數(shù)器1、溫度寄存器中,計數(shù)器1和溫度寄存器被預置在55所對應的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當減法計數(shù)器1的預置值減到0時,溫度寄存器的值將加1,減法計數(shù)器1的預置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器計數(shù)到0時,停止溫度寄存器的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。其輸出用于修正減法計數(shù)器的預置值,只要計數(shù)器門仍未關閉就重復上述過程,直到溫度寄存器值大致被測溫度值。 另外,由于DS18B20單線通信功能是分時完成的,它有嚴格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作按協(xié)議進行。操作協(xié)議為:初使化DS18B20(發(fā)復位脈沖)發(fā)ROM功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。 由于DS18B20采用的“一線總線”結(jié)構,所以數(shù)據(jù)的傳輸與命令的通訊只要通過微處理器的一根雙向Io口就可以實現(xiàn)。DSl8B20約定在每次通信前必須對其復位,具體的復位時序如圖2-4-2所示。 圖3.7 復位時序圖 圖2-4-3中所示,tRSTL為主機發(fā)出的低電平信號,本文中有AT89S52提供,tRSTL的最小時延為,然后釋放總線,檢查DSl8B20的返回信號,看其是否已準備接受其他操作,其中tPDHIGH時間最小為,最長不能超過,否則認為DS18B20沒有準備好,主機應繼續(xù)復位,直到檢測到返回信號變?yōu)榈碗娖綖橹?。?-5 DS18B20的ROM操作指令操作指令33H55HCCHF0HECH含義讀ROM匹配ROM跳過ROM搜索ROM報警搜索ROM表3-6 DS18B20的存儲器操作指令操作指令4EHBEH48H44HD8HB4H含義寫讀內(nèi)部復制溫度轉(zhuǎn)換重新調(diào)出讀電源主機一旦檢測到DS18B20的存在,根據(jù)DS18B2的工作協(xié)議,就應對ROM進行操作,接著對存儲器操作,最后進行數(shù)據(jù)處理。在DS18B20中規(guī)定了5條對ROM的操作命令。見表2-4-3。主機在發(fā)送完ROM操作指令之后,就可以對DS18B20內(nèi)部的存儲器進行操作,同樣DS18B20規(guī)定了6條操作指令。見表2-4-4。 DS18B20的讀、寫時序圖見圖2-4-3。圖3.8 DS18B20的讀寫時序圖2. DS18B20的使用方法由于DS18B20采用的是1Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實現(xiàn)數(shù)據(jù)的雙向傳輸,而對AT89S51單片機來說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來模擬單總線的協(xié)議時序來完成對DS18B20芯片的訪問。由于DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴格的時序要求。DS18B20有嚴格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將圖3.9 DS18B20的復位時序圖3.10 DS18B20的讀時序圖3.11 DS18B20的寫時序主機作為主設備,單總線器件作為從設備。而每一次命令和數(shù)據(jù)的傳輸都是從主機主動啟動寫時序開始,如果要求單總線器件回送數(shù)據(jù),在進行寫命令后,主機需啟動讀時序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。對于DS18B20的讀時序分為讀0時序和讀1時序兩個過程。對于DS18B20的讀時隙是從主機把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成一個讀時序過程,至少需要60us才能完成。DS18B20的寫時序,對于DS18B20的寫時序仍然分為寫0時序和寫1時序兩個過程,對于DS18B20寫0時序和寫1時序的要求不同,當要寫0時序時,單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0”電平,當要寫1時序時,單總線被拉低之后,在15us之內(nèi)就得釋放單線3.2.2 AT89S52單片機介紹1. AT89S52的主要性能與MCS-51單片機產(chǎn)品兼容,8K字節(jié)在系統(tǒng)可編程Flash存儲器、 1000次擦寫周期、 全靜態(tài)操作:0Hz33Hz 、三級加密程序存儲器 、 32個可編程I/O口線 、三個16位定時器/計數(shù)器 八個中斷源 、全雙工UART串行通道、 低功耗空閑和掉電模式 、掉電后中斷可喚醒 、看門狗定時器 、雙數(shù)據(jù)指針 、掉電標識符 。2. AT89S52的功能特性AT89S52 是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。使用Atmel公司高密度非易失性存儲器技術制造,與工業(yè)80C51 產(chǎn)品指令和引腳完 全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于 常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng) 可編程Flash,使得AT89S52為眾多嵌入式控制應用系統(tǒng)提 供高靈活、超有效的解決方案。 AT89S52具有以下標準功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時器,2個數(shù)據(jù)指針,三個16 位 定時器/計數(shù)器,一個6向量2級中斷結(jié)構,全雙工串行口, 片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工 作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié), 單片機一切工作停止,直到下一個中斷或硬件復位為止。8 位微控制器 8K 字節(jié)在系統(tǒng)可編程 Flash AT89S52 P0 口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。 當訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復用。在這種模式下,P0具有內(nèi)部上拉電阻。 在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗 時,需要外部上拉電阻。 P1 口:P1 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P1 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器2 的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。 在flash編程和校驗時,P1口接收低8位地址字節(jié)。 引腳號第二功能 P1.0 T2(定時器/計數(shù)器T2的外部計數(shù)輸入),時鐘輸出 P1.1 T2EX(定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制) P1.5 MOSI(在系統(tǒng)編程用) P1.6 MISO(在系統(tǒng)編程用) P1.7 SCK(在系統(tǒng)編程用) P2 口:P2 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動4 個 TTL 邏輯電平。對P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX DPTR) 時,P2 口送出高八位地址。在這種應用中,P2 口使用很強的內(nèi)部上拉發(fā)送1。在使用 8位地址(如MOVX RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。 在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。 P3 口:P3 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 P3口亦作為AT89S52特殊功能(第二功能)使用,如下所示。 在flash編程和校驗時,P3口也接收一些控制信號。 端口引腳 第二功能P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 INT0(外中斷0)P3.3 INT1(外中斷1)P3.4 T0(定時/計數(shù)器0)P3.5 T1(定時/計數(shù)器1)P3.6 WR(外部數(shù)據(jù)存儲器寫選通)P3.7 RD(外部數(shù)據(jù)存儲器讀選通)此外,P3口還接收一些用于FLASH閃存編程和程序校驗的控制信號。RST復位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將是單片機復位。ALE/PROG當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應設置ALE禁止位無效。PSEN程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89C52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。EA/VPP外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器的指令。FLASH存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當然這必須是該器件是使用12V編程電壓Vpp。3.3 軟件流程圖系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計算溫度子程序,顯示數(shù)據(jù)刷新子程序等。3.3.1 主程序初始化調(diào)用顯示子程序1S到?初次上電讀出溫度值溫度計算處理顯示數(shù)據(jù)刷新發(fā)溫度轉(zhuǎn)換開始命令NYNY主程序的主要功能是負責溫度的實時顯示、讀出并處理DS18B20的測量的當前溫度值,溫度測量每1s進行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖7所示。Y發(fā)DS18B20復位命令發(fā)跳過ROM命令發(fā)讀取溫度命令讀取操作,CRC校驗9字節(jié)完?CRC校驗正?確?移入溫度暫存器結(jié)束NNY 3.12主程序流程圖 圖3-13 讀溫度流程圖3.3.2 讀溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。其程序流程圖如圖8示發(fā)DS18B20復位命令發(fā)跳過ROM命令發(fā)溫度轉(zhuǎn)換開始命令結(jié)束圖3.13 溫度轉(zhuǎn)換流程圖3.3.3 溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當采用12位分辨率時轉(zhuǎn)換時間約為750ms,在本程序設計中采用1s顯示程序延時法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如上圖,圖3.14所示3.3.4 計算溫度子程序計算溫度子程序?qū)AM中讀取值進行BCD碼的轉(zhuǎn)換運算,并進行溫度值正負的判定,其程序流程圖如圖3.15所示溫度數(shù)據(jù)移入顯示寄存器十位數(shù)0?百位數(shù)0?十位數(shù)顯示符號百位數(shù)不顯示百位數(shù)顯示數(shù)據(jù)(不顯示符號) 結(jié)束NNYY 開始溫度零下?溫度值取補碼置“”標志計算小數(shù)位溫度BCD值 計算整數(shù)位溫度BCD值 結(jié)束置“+”標志NY 圖3-14 計算溫度流程圖 圖3-15顯示數(shù)據(jù)刷新流程圖164 硬件電路的設計4.1 Protel99 SE軟件介紹4.1.1 Protel99 SE軟件Protel99 SE 5共分5個模塊,分別是原理圖設計、PCB設計(包含信號完整性分析)、自動布線器、原理圖混合信號仿真、PLD設計。 以下介紹一些Protel99SE的部分最新功能: l 可生成30多種格式的電氣連接網(wǎng)絡表; l 強大的全局編輯功能; l 在原理圖中選擇一級器件,PCB中同樣的器件也將被選中; l 同時運行原理圖和PCB,在打開的原理圖和PCB圖間允許雙向交叉查找元器件、引腳、網(wǎng)絡 l 既可以進行正向注釋元器件標號(由原理圖到PCB),也可以進行反向注釋(由PCB到原理圖),以保持電氣原理圖和PCB在設計上的一致性; l 滿足國際化設計要求(包括國標標題欄輸出,GB4728國標庫); * 方便易用的數(shù)?;旌戏抡妫嫒軸PICE 3f5); l 支持用CUPL語言和原理圖設計PLD,生成標準的JED下載文件; * PCB可設計32個信號層,16個電源-地層和16個機加工層; l 強大的“規(guī)則驅(qū)動”設計環(huán)境,符合在線的和批處理的設計規(guī)則檢查; l 智能覆銅功能,覆鈾可以自動重鋪; l 提供大量的工業(yè)化標準電路板做為設計模版; l 放置漢字功能; l 可以輸入和輸出DXF、DWG格式文件,實現(xiàn)和AutoCAD等軟件的數(shù)據(jù)交換; l 智能封裝導航(對于建立復雜的PGA、BGA封裝很有用); l 方便的打印預覽功能,不用修改PCB文件就可以直接控制打印結(jié)果; l 獨特的3D顯示可以在制板之前看到裝配事物的效果; l 強大的CAM處理使您輕松實現(xiàn)輸出光繪文件、材料清單、鉆孔文件、貼片機文件、測試點報告等; l 經(jīng)過充分驗證的傳輸線特性和仿真精確計算的算法,信號完整性分析直接從PCB啟動; l 反射和串擾仿真的波形顯示結(jié)果與便利的測量工具相結(jié)合; l 專家導航幫您解決信號完整性問題。 4.1.2主控制電路AT89S52原理圖:系統(tǒng)完整電路圖如下:圖5.16主電路原理圖 圖5.17 數(shù)碼管連線圖5.18 系統(tǒng)報警電路圖5.19電路的PCB圖4.2 Proteus 進行仿真程序編寫完以后,我們先對其進行仿真,初步驗證電路圖和程序的可行性和正確性。4.2.1 roteus6簡介Proteus 是英國Labcenter公司開發(fā)的電路分析與實物仿真軟件。它運行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點是: 1 實現(xiàn)了單片機仿真和SPICE電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、RS232動態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。 2 支持主流單片機系統(tǒng)的仿真。目前支持的單片機類型有:ARM7(LPC21xx)、 8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多種外圍芯片。 3 提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設置斷點等調(diào)試功能,同時可以觀察各個變量、寄存器等的當前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C51 uVision2、MPLAB等軟件。 具有強大的原理圖繪制功能??傊撥浖且豢罴瘑纹瑱C和SPICE分析于一身的仿真軟件,功能極其強大。 proteus6.5是目前最好的模擬單片機外圍器件的工具,真的很不錯。可以仿真51系列、AVR,PIC等常用的MCU及其外圍電路(如LCD,RAM,ROM,鍵盤,馬達,LED,AD/DA,部分SPI器件,部分IIC器件,.) 其實proteus 與 multisim比較類似,只不過它可以仿真MCU。4.2.2 proteus仿真圖5 調(diào)試性能及分析 系統(tǒng)的性能調(diào)試以(1、主程序)為主。硬件調(diào)試比較簡單,首先檢查電路的焊接是否正確,然后用萬用表測試。軟件調(diào)試可以先編寫顯示程序并進行硬件的正確性檢驗,然后分別進行主程序、從程序的編寫和調(diào)試,由于DS18B20與單片機采用串行數(shù)據(jù)傳送,因此對DS18B20進行編程時必須嚴格地保證讀寫時序,否則將無法讀取測量結(jié)果。性能測試可用制作的溫度計和已有的成品溫度計來同時測量比較,由于DS18B20精度較高,所以誤差指標可以限制在0.1C以內(nèi),另外,-55C至+125C的測溫范圍使得該溫度計完全適用于一般的應用場合,其低電壓供電的特性可做成電池供電的手持電子溫度計。電路焊接板圖片如下:課程設計心得本次的課程設計共三周時間,分別進行了BS18D20電路原理圖的設計,電路仿真圖的設計以及實物電路板的焊制三個過程。經(jīng)過這次的課程設計,我們不僅加深了對Protel99 SE軟件的應用和Proteus仿真軟件的了解和使用,還學到了許多課本上沒有涉及知識,練習了電路原理圖的設計和仿真運行,同時對上學期學習的單片機課程進行了一次全面的復習和鞏固,收益很大。我們知道,課程設計一般強調(diào)能力培養(yǎng)為主,在獨立完成設計任務的同時,還要注意其他幾方面能力的培養(yǎng)與提高,如獨立工作能力與創(chuàng)造力;綜合運用專業(yè)及基礎知識的能力,解決實際工程技術問題的能力;查閱圖書資料、產(chǎn)品手冊和各種工具書的能力;工程繪圖的能力;書寫技術報告和編制技術資料的能力。在專業(yè)知識與研究方法方面為日后的畢業(yè)設計乃至畢業(yè)后的工作奠定良好的基礎第一周是對BS18D20電路原理圖設計,剛開始感覺有一定的難度,主要是對Protel99 SE軟件及功能的不了解。但在老師和同學的幫助下還是順利的完成了,進而對接下來的兩個任務有了興趣。整個課設的過程就是一個學習的過程。因為在課設的過程中,我們必須熟悉電路原理及器件的使用特點,這些都是對課本知識復習和鞏固。所以 我覺得課設是一個很重要的學習環(huán)節(jié),值得我們應該很認真的去對待!由于本次課程設計是由分組進行完成的,所以通過這次的課設我更加了解到合作的重要性。三周的設計中,我們組成員都參加了設計的各個方面的討論和動手實踐,大家更具自己的實際情況做了不同的分工,合理的利用了時間,感覺得到了很好的經(jīng)驗。這次課設讓我對單片機有了進一步的了解,而且對Proteus仿真軟件的有了一定了解。體會到了Proteus仿真軟件的強大。最主要的是我們能夠自己通過單片機焊接事物,這是我們在課堂上是學不到的。極大地增強了我們的動手實踐能力。通過本次課設,能夠使我們熟練掌握單片機控制電路的設計、程序編寫和整體焊接及系統(tǒng)調(diào)試,從而全面地提高我們對單片機的軟件、硬件等方面的理解,進而增強我們在實踐環(huán)節(jié)的動手操作能力。譬如,我們可以根據(jù)實驗指導書的要求,完成BS18D20電路的硬件設計、電路器件的選擇、單片機軟件的運行、以及整體系統(tǒng)調(diào)試,并寫出完善的設計報告。在進行課設之前,要求我們具備數(shù)字電路、模擬電路、電路基礎、微機原理、電力電子、電機學和單片機等相關課程的知識,并具備一些基本的實踐操作水平,為以后的就業(yè)打好一定的基礎。總的來說,這次的課程設計自己還是很滿意的,感覺收獲了不少東西,相信此次學到的知識在以后的生活和學習中對我會有很大的幫助!參考文獻1 張五一,張道光.微機原理與接口技術.鄭州:河南科學技術出版社,20062 李廣弟.單片機基礎. 北京:北京航空航天大學出版社,19943 廖常初.現(xiàn)場總線概述.電工技術,1999.4 倪曉軍.單片機原理與接口技術教程.北京:清華大學出版社,20095 姚年春 向華Protel99SE基礎教程. 北京.人民名郵電出版社,20096 韓穎; Proteus在單片機技術實訓教學中的應用J;中國科教創(chuàng)新導刊;2008年31期7 周靈彬;張靖武.PROTEUS的單片機教學與應用仿真J.單片機與嵌入式系統(tǒng)應用;2008年01期附錄:DS18B20顯示程序-#include #define uint unsigned int#define uchar unsigned char /宏定義sbit p34=P24;sbit p35=P25;sbit p36=P26;sbit dp=P07;sbit p37=P27;sbit DQ=P22; /定義DS18B20總線I/Osbit SET=P31; /定義選擇報調(diào)整警溫度上限和下限(1為上限,0為下限)/*P3.2和P3.3為調(diào)整溫度報警增加鍵和減少鍵*/sbit LING=P20; /定義響鈴signed char m; /溫度值全局變量bit sign=0; /外部中斷狀態(tài)標志signed char shangxian=38; /上限報警溫度,默認值為38signed char xiaxian=6; /下限報警溫度,默認值為5uchar code LEDData=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 xff,0 xbf;/*延時子程序*/void Delay(uint i) while( i- );/*初始化DS18B20*/void Init_DS18B20(void) unsigned char x=0; DQ=1; Delay(8); /稍做延時 DQ=0; /單片機將DQ拉低 Delay(80); /精確延時,大于480us DQ=1; /拉高總線 Delay(14); x=DQ; /稍做延時后,如果x=0則初始化成功,x=1則初始化失敗 Delay(20);/*讀一個字節(jié)*/unsigned char ReadOneChar(void) unsigned char i=0; unsigned char dat=0; for (i=8;i0;i-) DQ=0; / 給脈沖信號 dat=1; DQ=1; / 給脈沖信號 if(DQ) dat|=0 x80; Delay(4); return(dat);/*寫一個字節(jié)*/void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) DQ=0; DQ=dat&0 x01; Delay(5); DQ=1; dat=1; void Tmpchange(void) /發(fā)送溫度轉(zhuǎn)換命令 Init_DS18B20(); WriteOneChar(0 xCC); /跳過讀序號列號的操作 WriteOneChar(0 x44); /啟動溫度轉(zhuǎn)換/*讀取溫度*/unsigned int ReadTemperature(void) unsigned char a=0; unsigned char b=0; unsigned int t=0; float tt=0; Tmpchange(); Init_DS18B20(); WriteOneChar(0 xCC); /跳過讀序號列號的操作 WriteOneChar(0 xBE); /讀取溫度寄存器 a=ReadOneChar(); /讀低8位 b=ReadOneChar(); /讀高8位 t=b; tshangxian | mxiaxian) LING=1; /溫度不在范圍內(nèi)報警 else LING=0;p34=0;p35=0;p36=0;p37=0; P0 =LEDDatad; /顯示小數(shù)點后兩位 p34=1;p35=0;p36=0;p37=0; Delay(300);p34=0;p35=0;p36=0;p37=0; P0 =LEDDatac; /顯示小數(shù)點后一位p34=0;p35=1;p36=0;p37=0; Delay(300);p34=0;p35=0;p36=0;p37=0; P0 =LEDDatab; /顯示個位dp=0;p34=0;p35=0;p36=1;p37=0; Delay(300);p34=0;p35=0;p36=0;p37=0; P0 =LEDDataa; /顯示十位p34=0;p35=0;p36=0;p37=1; Delay(300);p34=0;p35=0;p36=0;p37=0; /關閉顯示disptiaozheng() uchar f,g,j,k; f=shangxian/10; g=shangxian%10; j=xiaxian/10; k=xiaxian%10;p34=0;p35=0;p36=0;p37=0; P0 =0 xc0; /顯示0p34=1;p35=0;p36=0;p37=0; Delay(200);p34=0;p35=0;p36=0;p37=0; P0 =0 xc0; /顯示0p34=0;p35=1;p36=0;p37=0; Delay(200);p34=0;p35=0;p36=0;p37=0; if(SET=1) P0 =LEDDatag; dp=0; /顯示上限溫度個位 else P0 =LEDDatak; dp=0; p34=0;p35=0;p36=1;p37=0; Delay(200);p34=0;p35=0;p36=0;p37=0; if(SET=1) P0 =LEDDataf; /顯示上限溫度十位 else if(f=0) P0=0 x00; /不顯示下限溫度十位 else P0 =LEDDataj; /顯示下限溫度十位 p34=0;p35=0;p36=0;p37=1; Delay(200);p34=0;p35=0;p36=0;p37=0; /關閉顯示 Delay(20); /*外部中斷0服務程序*/void int0(void) interrupt 0 EX0=0; /關外部中斷0 sign=1; if(SET=1) shangxian+; else xiaxian+; Delay(500); EX0=1; /*外部中斷1服務程序*/void int1(void) interrupt 2 EX1=0; /關外部中斷0 sign=1; if(SET=1) shangxian-; else xiaxian-; Delay(500); EX1=1; /*主函數(shù)*/void main(void) uint z; IT0=1; IT1=1; EX0=1; EX1=1; EA=1; ReadTemperature(); LING=0; for(z=0;z100;z+) Disp_init(); while(1) Disp_Temperature(); if(sign=1) for(z=0;z300;z+) disptiao

注意事項

本文(單片機課程設計(論文)-基于51單片機的DS18B20數(shù)字溫度計的設計.doc)為本站會員(good****022)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復下載不扣分。




關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!