版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于at89c52的數(shù)字溫度計設(shè)計與仿真 緒論基于at89c52的數(shù)字溫度計設(shè)計與仿真譚亞平(吉首大學(xué)物理科學(xué)與信息工程學(xué)院,湖南 吉首 416000)摘 要溫度采集顯示及報警系統(tǒng)是一個應(yīng)用于需要對溫度進行精準(zhǔn)控制報警的系統(tǒng),實現(xiàn)了對溫度進行精準(zhǔn)采集顯示和越限聲光報警的功能。以方便系統(tǒng)使用者能夠更好的了解當(dāng)前溫度安全狀況,使相應(yīng)地區(qū)場所的安全得到保證。本系統(tǒng)以at89c52單片機為微控制器,采用數(shù)字溫度傳感器ds18b20作為測溫元件,溫度傳感器ds18b20采集溫度信號送給單片機處理,單片機再把處理后的溫度數(shù)據(jù)送到led上顯示出來。能夠?qū)崿F(xiàn)快速、準(zhǔn)確的測溫功能和越限聲光報警功能。本論文完成了
2、系統(tǒng)硬件電路的設(shè)計,給出了軟件流程框圖,編寫了相關(guān)的軟件程序,并記錄了仿真與實現(xiàn)的過程。關(guān)鍵詞:溫度報警;單片機(at89c52);數(shù)字溫度傳感器(ds18b20);keil c51 digital thermometer design and simulation based on at89c52tanyaping(college of physics science and information engineering,jishou university,jishou,hunan 416000)abstractthe temperature acquisition display and
3、 alarm system is used a need for precise temperature control of the alarm system to achieve accurate temperature acquisition of the more limited display and sound and light alarm function. with convenient system users to better understand the current temperature security situation,it make correspond
4、ing regional sites safety guaranteed. the system uses at89c52-scm as microprogrammed control unit and adopts digital temperature sensor ds18b20 as the temperature component. the temperature sensor ds18b20 collects temperature signals and sends them to scm for dealing with, then scm transfers the pro
5、cessed temperature data to led for dispalying which can realize the fast and accurate temperature measurement function and the more limited sound and light alarm function. this thesis has completed the design of the system hardware, procided the software flow diagram,compiled the related software pr
6、ogram,and recorded the simulation and realization process.keywords:temperature alarm; single-chip microcomputer(at89c52);digital temperature sensors applications ds18b20; keil c51.目錄第一章 緒 論11.1 研究背景11.2 本課題的研究內(nèi)容1第二章 系統(tǒng)硬件設(shè)計22.1 總體設(shè)計22.2 at89c52簡介22.2.1 主要性能22.2.2 引腳介紹32.3 ds18b20 介紹42.3.1 ds18b20性能特點
7、52.3.2 ds18b20內(nèi)部結(jié)構(gòu)及功能52.3.3 ds18b20的通信協(xié)議72.4 復(fù)位電路設(shè)計92.5 時鐘電路設(shè)計92.6 ds18b20與單片機接口電路設(shè)計10第三章 系統(tǒng)軟件設(shè)計113.1 軟件設(shè)計總體思路及主程序流程圖113.2 底層基本操作113.3 指令操作123.4 仿真結(jié)果12總結(jié)14參考文獻15附件16附件1 源程序16附件2 元器件清單2223第一章 緒 論1.1 研究背景現(xiàn)代信息技術(shù)的三大基礎(chǔ)是信息采集(即傳感器技術(shù))、信息傳輸(通信技術(shù))和信息處理(計算機技術(shù))。傳感器屬于信息技術(shù)的前沿尖端產(chǎn)品,尤其是溫度傳感器被廣泛用于工農(nóng)業(yè)生產(chǎn)、科學(xué)研究和生活等領(lǐng)域,數(shù)量高
8、居各種傳感器之首。近百年來,溫度傳感器的發(fā)展大致經(jīng)歷了以下三個階段;(1)傳統(tǒng)的分立式溫度傳感器(含敏感元件);(2)模擬集成溫度傳感器/控制器;(3)智能溫度傳感器。目前,國際上新型溫度傳感器正從模擬式向數(shù)字式、由集成化向智能化、網(wǎng)絡(luò)化的方向發(fā)展。智能溫度傳感器發(fā)展的新趨勢進入21世紀(jì)后正朝著高精度、多功能、總線標(biāo)準(zhǔn)化、高可靠性及安全性、開發(fā)虛擬傳感器和網(wǎng)絡(luò)傳感器、研制單片測溫系統(tǒng)等高科技的方向迅速發(fā)展。例如:提高測溫精度和分辨力;增加測試功能;總線技術(shù)的標(biāo)準(zhǔn)化與規(guī)范化;可靠性及安全性設(shè)計;單片測溫系統(tǒng)等。 1.2 本課題的研究內(nèi)容采用智能溫度傳感器ds18b20,它直接輸出數(shù)字量,精度高,
9、電路簡單,只需要模擬ds18b20的讀寫時序,根據(jù)ds18b20的協(xié)議讀取轉(zhuǎn)換的溫度2。本設(shè)計使用了美國 dallas 半導(dǎo)體公司的新一代數(shù)字式溫度傳感器ds18b20,它具有獨特的單總線接口方式 ,即允許在一條信號線上掛接數(shù)十甚至上百個數(shù)字式傳感器 ,從而使測溫裝置與各傳感器的接口變得十分簡單 ,克服了模擬式傳感器與微機接口時需要的a/d轉(zhuǎn)換器及其它復(fù)雜外圍電路的缺點。工作時由控制信號進行具體測量點識別,這使得布線工作大大簡化,可以方便地構(gòu)成多傳感器測量網(wǎng)絡(luò)。此外,與傳統(tǒng)的熱敏電阻傳感器相比,ds18b20具有更高的測量精度。所以,相對于傳統(tǒng)溫度傳感器而言,ds18b20數(shù)字溫度傳感器具有更
10、高的經(jīng)濟性、靈活性、抗干擾性和精確度,在科學(xué)研究和生產(chǎn)實際中得到了廣泛的應(yīng)用3。基于at89c52的數(shù)字溫度計設(shè)計與仿真 系統(tǒng)硬件設(shè)計第二章 系統(tǒng)硬件設(shè)計2.1 總體設(shè)計本方案設(shè)計的系統(tǒng)模塊由單片機系統(tǒng)、溫度傳感器模塊、數(shù)碼管顯示模塊和電源模塊組成,其總體架構(gòu)如圖2.1。報警電路溫度傳感器電路數(shù)碼管顯示電路單片機控制電路 按鍵輸入圖2.1系統(tǒng)結(jié)構(gòu)圖該系統(tǒng)可以實時地顯示當(dāng)前環(huán)境的溫度。系統(tǒng)是以at89c52 單片機為核心,在開始運行它時主機先發(fā)送初始化命令使設(shè)備啟動,再發(fā)送溫度轉(zhuǎn)換命令使數(shù)字溫度傳感器ds18b20 把測得的模擬溫度轉(zhuǎn)換為串行數(shù)字信號供單片機采集。同時,顯示器上顯示出目前環(huán)境的實
11、際溫度,當(dāng)溫度低與或高與設(shè)定的溫度,系統(tǒng)會通過蜂鳴器發(fā)出警報。2.2 at89c52簡介2.2.1 性能特點與mcs-51單片機產(chǎn)品兼容 、8k字節(jié)在系統(tǒng)可編程flash存儲器、 1000次擦寫周期、 全靜態(tài)操作:0hz33hz 、 三級加密程序存儲器 、 32個可編程i/o口線 、三個16位定時器/計數(shù)器 八個中斷源 、全雙工uart串行通道、 低功耗空閑和掉電模式 、掉電后中斷可喚醒 、看門狗定時器 、雙數(shù)據(jù)指針 、掉電標(biāo)識符 4。片內(nèi)有4kb可在線重復(fù)編程的快閃擦寫存儲器 ;存儲數(shù)據(jù)保存時間為10年 ;寬工作電壓范圍:vcc可為2.7v到6v ;全靜態(tài)工作:可從0hz至16mhz ;程序
12、存儲器具有3級加密保護 ;128*8位內(nèi)部ram ;32條可編程i/o線 ,兩個16位定時器/計數(shù)器 ;中斷結(jié)構(gòu)具有5個中斷源和2個優(yōu)先級 ,可編程全雙工串行通道 ,空閑狀態(tài)維持低功耗和掉電狀態(tài)保存存儲內(nèi)容。2.2.2 引腳介紹at89c52 是一種低功耗、高性能cmos8位微控制器,具有 8k 在系統(tǒng)可編程flash 存儲器5。at89c52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)flash,256字節(jié)ram, 32 位i/o 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位 定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時鐘電路。另外,at89s52 可降至0hz 靜態(tài)邏 輯操作,
13、支持2種軟件可選擇節(jié)電模式??臻e模式下,cpu 停止工作,允許ram、定時器/計數(shù)器、串口、中斷繼續(xù)工 作。掉電保護方式下,ram內(nèi)容被保存,振蕩器被凍結(jié), 單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。8 位微控制器 8k 字節(jié)在系統(tǒng)可編程 flash at89s52。at89c52引腳如圖2.2所示:圖2.2 at89c52引腳圖p0 口:p0口是一個8位漏極開路的雙向i/o口。作為輸出口,每位能驅(qū)動8個ttl邏輯電平。對p0端口寫“1”時,引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,p0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,p0具有內(nèi)部上拉電阻。在flash編程時,p0
14、口也用來接收指令字節(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的外部計
15、數(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 口送出高八位地址。在這種應(yīng)用中,p2 口使用很強
16、的內(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
17、.1 txd(串行輸出口)p3.2 into(外中斷0)p3.3 int1(外中斷1)p3.4 to(定時/計數(shù)器0)p3.5 t1(定時/計數(shù)器1)p3.6 wr(外部數(shù)據(jù)存儲器寫選通)p3.7 rd(外部數(shù)據(jù)存儲器讀選通)此外,p3口還接收一些用于flash閃存編程和程序校驗的控制信號。2.3 ds18b20 介紹2.3.1 ds18b20性能特點采用單總線技術(shù),與單片機通信只需要一根i/o線,在一根線上可以掛接多個ds18b20。每只ds18b20具有一個獨有的,不可修改的64位序列號,根據(jù)序列號訪問地應(yīng)的器件。低壓供電,電源范圍從35v,可以本地供電,也可以直接從數(shù)據(jù)線上竊取電源(寄生
18、電源方式)。測溫范圍為-55+125,在-1085范圍內(nèi)誤差為±0.5。可編輯數(shù)據(jù)為912位,轉(zhuǎn)換12位溫度時間為750ms(最大)。用戶可自設(shè)定報警上下限溫度。報警搜索命令可識別和尋址哪個器件的溫度超出預(yù)定值。ds18b20的分辯率由用戶通過eeprom設(shè)置為912位。ds18b20可將檢測到溫度值直接轉(zhuǎn)化為數(shù)字量,并通過串行通信的方式與主控制器進行數(shù)據(jù)通信7。2.3.2 ds18b20內(nèi)部結(jié)構(gòu)及功能ds18b20的內(nèi)部結(jié)構(gòu)如下圖2.3所示,主要包括:寄生電源,溫度傳感器,64位rom和單總線接口,存放中間數(shù)據(jù)的高速暫存器ram,用于存儲用戶設(shè)定溫度上下限值的th和tl觸發(fā)器,存儲
19、與控制邏輯,8位循環(huán)冗余校驗碼(crc)發(fā)生器等7部分圖2.3 ds18b20內(nèi)部結(jié)構(gòu)溫度和數(shù)字量的關(guān)系如圖2.4所示,romram操作命令如表2.12.2所示。圖2.4 溫度和數(shù)字量的關(guān)系表2.1 rom操作命令指令說明讀rom命令(33h)讀18b20的序行號搜索rom命令(f0h)識別總線上各器件的編碼匹配rom命令(55h)用于多個ds18b20的定位跳過rom命令(cch)此命令執(zhí)行后,存儲器操作將針對總線上的所有操作報警搜索rom命令(ech)僅溫度超限的器件對此命令做出響應(yīng)表2.2 ram操作命令指令說明溫度轉(zhuǎn)換(44h)啟動溫度轉(zhuǎn)換讀暫存器(beh)讀全部暫存器內(nèi)容,包括crc
20、字節(jié)寫暫存器(4eh)寫暫存器第2,3和4個字節(jié)的數(shù)據(jù)復(fù)制暫存器(48eh)將暫存器中的th,tl和配置寄存器內(nèi)容復(fù)制到eeprom中讀eeprom(b8h)將th,tl和配置寄存器內(nèi)容從eeprom中回讀至?xí)捍嫫鞲髯止?jié)在romram中的設(shè)置如表2.3所示,溫度配置寄存器如表2.4所示,分辨率設(shè)置如表2.5所示。表2.3 各字節(jié)在romram中的設(shè)置字節(jié)romram0產(chǎn)品代號溫度低8位148位器件序列號溫度高8位2th3tl4配置寄存器5保留6保留7crc保留8crc表2.4 溫度配置寄存器0r1r211111表2.5分辯率設(shè)置r1r2分辯率設(shè)置/位測溫精度/c轉(zhuǎn)換時間/ms0090.593.
21、7501100.25187.510110.1253751112(默認)0.06257502.3.3 ds18b20的通信協(xié)議ds18b20采用嚴(yán)格的單總線通信協(xié)議,以保證數(shù)據(jù)的完整性。該協(xié)議定義了幾種信號類型:復(fù)位脈沖、應(yīng)答脈沖、寫0、寫1、讀0和讀1。除了應(yīng)答脈沖所有這些信號都由主機發(fā)出同步信號??偩€上傳輸?shù)乃袛?shù)據(jù)和命令都是以字節(jié)的低位在前。1. 初始化序列:復(fù)位脈沖和應(yīng)答脈沖在初始化過程中,主機通過拉低單總線至少480µs,以產(chǎn)生復(fù)位脈沖(tx)。然后主機釋放總線并進入接收(rx)模式。當(dāng)總線被釋放后,5k的上拉電阻將單總線拉高。ds18b20檢測到這個上升沿后,延時15
22、81;s60µs,通過拉低總線60µs240µs產(chǎn)生應(yīng)答脈沖。初始化波形如圖2.5所示。圖 2.5 初始化脈沖2. 讀和寫時序在寫時序期間,主機向ds18b20寫入指令;而在讀時序期間,主機讀入來自ds18b20的指令。在每一個時序,總線只能傳輸一位數(shù)據(jù)。讀/寫時序如圖2.6所示。(1) 寫時序存在兩種寫時序:“寫1”和“寫0”。主機在寫1時序向ds18b20寫入邏輯1,而在寫0時序向ds18b20寫入邏輯0。所有寫時序至少需要60µs,且在兩次寫時序之間至少需要1µs的恢復(fù)時間。兩種寫時序均以主機拉低總線開始。在寫時序開始后的15µ
23、s60µs期間,ds18b20采樣總線的狀態(tài)。如果總線為高電平,則邏輯1被寫入ds18b20;如果總線為低電平,則邏輯0被寫入ds18b20。(2) 讀時序圖2.6 ds18b20讀/寫時序圖ds18b20只能在主機發(fā)出讀時序時才能向主機傳送數(shù)據(jù)。所以主機在發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時序,以便ds18b20能夠傳送數(shù)據(jù)。所有讀時序至少60µs,且在兩次獨立的讀時序之間至少需要1µs的恢復(fù)時間。每次讀時序由主機發(fā)起,拉低總線至少1µs。在主機發(fā)起讀時序之后,ds18b20開始在總線上傳送1或0。若ds18b20發(fā)送1,則保持總線為高電平;若發(fā)送0,則
24、拉低總線。當(dāng)傳送0時,ds18b20在該時序結(jié)束時釋放總線,再由上拉電阻將總線拉回空閑高電平狀態(tài)。ds18b20發(fā)出的數(shù)據(jù)在讀時序下降沿起始后的15µs內(nèi)有效,因此主機必須在讀時序開始后的15µs內(nèi)釋放總線,并且采樣總線狀態(tài)。ds18b20 在使用時,一般都采用單片機來實現(xiàn)數(shù)據(jù)采集。只需將ds18b20 信號線與單片機1 位i/o線相連,且單片機的1 位i/o 線可掛接多個ds18b20 ,就可實現(xiàn)單點或多點溫度檢測8。2.4 復(fù)位電路設(shè)計 復(fù)位電路工作原理:電容在上接高電平,電阻在下接地,中間為rst。這種復(fù)位電路的工作原理是:通電時,電容兩端相當(dāng)于是短路,于是rst引腳
25、上為高電平,然后電源通過電阻對電容充電,rst端電壓慢慢下降,降到一定程序,即為低電平,單片機開始正常工作9。復(fù)位電路如圖2.7所示。圖2.7復(fù)位電路2.5 時鐘電路設(shè)計 時鐘電路作用:單片機外部必須接上振蕩器(也可以是內(nèi)部振蕩器),其提供的高頻脈沖經(jīng)過分頻處理后,成為單片機內(nèi)部時鐘信號,作為片內(nèi)各部件協(xié)調(diào)工作的控制信號。 如果沒有時鐘信號,觸發(fā)器的狀態(tài)就不能改變,單片機內(nèi)部的所有電路在完成一個任務(wù)后將最終達到一個穩(wěn)定狀態(tài)而不能再繼續(xù)進行其它任何工作了。時鐘電路如圖2.8所示:圖2.8時鐘電路2.6 ds18b20與單片機接口電路設(shè)計溫度計電路設(shè)計原理圖如下圖2.9所示,控制器使用單片機at8
26、9s52,溫度傳感器使用ds18b20,用4位共陰led數(shù)碼管以動態(tài)掃描法實現(xiàn)溫度顯示10圖2.9 ds18b20與單片機接口電路基于at89c52的數(shù)字溫度計設(shè)計與仿真 系統(tǒng)軟件設(shè)計第三章 系統(tǒng)軟件設(shè)計3.1 軟件設(shè)計總體思路及主程序流程圖本系統(tǒng)采用匯編語言編寫,主程序主要由三部分構(gòu)成,系統(tǒng)通電后首先初始化系統(tǒng),依次完成溫度采集、溫度處理、數(shù)據(jù)顯示等三項功能。溫度采集部分主要完成溫度數(shù)據(jù)采集任務(wù);溫度處理部分主要是將采集到的溫度數(shù)據(jù)轉(zhuǎn)換成十進制數(shù)據(jù);數(shù)據(jù)顯示部分主要實現(xiàn)溫度數(shù)據(jù)的顯示,顯示方式為固定顯示。系統(tǒng)軟件主流程圖如3.1所示:開始初始化讀取溫度溫度轉(zhuǎn)換溫度顯示返回圖3.1 系統(tǒng)軟件總
27、流程圖3.2 底層基本操作初始化:初始化是dsl8b20 的底層基本操作之一。通過單線總線進行的所有操作都從一個初始化序列開始。初始化序列包括一個由cpu 發(fā)出的復(fù)位脈沖及其后由ds18b20 發(fā)出的存在脈沖。存在脈沖讓cpu 知道ds18b20 在總線上且已做好操作準(zhǔn)備。數(shù)據(jù)寫:數(shù)據(jù)寫是ds18b20的底層基本操作之一, 所有的指令、數(shù)據(jù)發(fā)送均由該操作完成。ds18b20的寫操作都是逐位進行的,因此,采用c5l中的位右移操作來實現(xiàn)。數(shù)據(jù)讀:數(shù)據(jù)讀是ds18b20的底層基本操作之一, 溫度值和其它狀態(tài)信息的傳回均由該操作完成。3.3 指令操作dsl8b20提供了一系列指令來控制傳感器的工作。下
28、面只簡單介紹本系統(tǒng)所用到的最基本的幾條。1. skip rom cch用于1條i/o總線上只掛1個ds18b20的情況,使ds18b20跳過多個傳感器的識別過程。如果一條i/o總線上掛了不止1個傳感器,總線上就會發(fā)生數(shù)據(jù)沖突。2. convert t 44h啟動一次溫度轉(zhuǎn)換過程。溫度轉(zhuǎn)換命令被執(zhí)行后,ds18b20保持等待狀態(tài)。3. read scratchpad beh用于讀取暫存器的內(nèi)容。溫度轉(zhuǎn)換的結(jié)果和其它狀態(tài)信息均以此命令讀出。讀取將從字節(jié)0開始, 一直進行下去, 直到字節(jié)8讀完。如果不想讀完所有字節(jié), 控制器可以在任何時間發(fā)出復(fù)位命令來中止讀取。3.4 仿真結(jié)果本論文設(shè)計在prote
29、us上仿真實現(xiàn)了所需要求,仿真結(jié)果如圖3.2、圖3.3所示圖3.2 仿真實驗圖圖3.3 仿真實驗圖基于at89c52的數(shù)字溫度計設(shè)計與仿真 總結(jié)總結(jié)程序在編譯過程中,出現(xiàn)了一些語法錯誤,經(jīng)過細心修改得以糾正。但是,將程序下載到單片機之后,發(fā)現(xiàn)串口顯示模塊一直顯示“127.5”,經(jīng)過推斷得知,讀取的溫度值為全“1”,出現(xiàn)這個問題,全是因為ds18b20有嚴(yán)格的時序和通信協(xié)議,在每次讀取溫度數(shù)據(jù)時,都有其嚴(yán)格的時序要求,經(jīng)過檢查,發(fā)現(xiàn)程序中有一個地方少加了一個1毫秒左右的延時,按照ds18b20的時序原理,把忘記加的延時加上之后,就可以讓單片機讀取傳感器的溫度值了。此次數(shù)字溫度計設(shè)計,讓我學(xué)會了規(guī)
30、范化程序的編寫、程序調(diào)試的各種方法以及解決調(diào)試過程中出現(xiàn)的一系列的問題。更重要的是讓我明白程序的優(yōu)化是多么重要。要想編寫出一個系統(tǒng)的程序,就必須十分清楚硬件電路中所用芯片的工作原理以及使用它們的一些注意事項,比如這次設(shè)計中所用的ds18b20數(shù)字溫度傳感器,它的時序要求十分嚴(yán)格,由于它是采用單總線結(jié)構(gòu)的輸入輸出方法,它的時序中所用到的延時必然很關(guān)鍵,時間過長了會使整個溫度計的反應(yīng)時間變慢,延時時間過短會使傳感器不能正常工作。本課題的重點、難點是:(1) 初步接觸溫度傳感器,要對傳感器的原理、結(jié)構(gòu)、應(yīng)用等各方面從頭開始琢磨;(2)了解并掌握了傳感器的基本理論知識,更深入的掌握單片機的開發(fā)應(yīng)用和p
31、c編程控制。為以后從事單片機軟硬件產(chǎn)品的設(shè)計開發(fā)、pc軟件開發(fā)打下了良好的基礎(chǔ),樹立了獨立從事產(chǎn)品研發(fā)的信心,并在這種能力上得到了比較充分的鍛煉?;赼t89c52的數(shù)字溫度計設(shè)計與仿真 參考文獻參考文獻1 陳躍東.ds18b20集成溫度傳感器原理及其應(yīng)用j.安徽工程科技學(xué)院學(xué)報,2002.8(4):34-38.2 周月霞,孫傳友.dsl8b20硬件連接及軟件編程j.傳感器世界雜志,2001.12(3):25-29.3 魏英智.dsl8b20在溫度控制中的應(yīng)用j.黑龍江科技學(xué)院學(xué)報,2005.46(3):92-93.4 謝維成,楊加國.單片機原理與應(yīng)用及c51程序設(shè)計m.北京:清華大學(xué)出版社,
32、2006.5 趙亮,侯國銳.單片機c語言編程與實例m.北京:人民郵電出版社,2003.6 張粵,倪偉.dsisb20在分布式測溫系統(tǒng)中的應(yīng)用j.淮陰工學(xué)報,2002.11(5):57-59.7 藏榮,游風(fēng)荷,周景霞.由單片機和多片ds1820組成的多點電溫度測控系統(tǒng)j.國外電子元器件,2002(1):60-62.8 況榮華,容太平.i2c總線在單片機上的實現(xiàn)j.國外電子元器件,2001(6):46-49.9 陳世利等.sp1串行flash在數(shù)據(jù)存儲系統(tǒng)中的應(yīng)用j.國外電子元器件.2001(10):20-23.10 鄧建華.可縮程看門狗監(jiān)控eeprom芯片j,電子世界,2001(5):31-32
33、.11 何立民.單片機應(yīng)用技術(shù)選編m.北京航空航天大學(xué)出版,1996.12 吳江,陳尚松.單總線技術(shù)在測控系統(tǒng)中的應(yīng)用j.電測與儀表,1999(9).基于at89c52的數(shù)字溫度計設(shè)計與仿真 附件附 件附件1:源程序清單temp1 equ 5ah ; 符號位和百位公用的存放單元temp2 equ 5bh ; 十位存放單元temp3 equ 5ch ; 個位存放單元temp4 equ 5dh ;temp5 equ 5ehtemp6 equ 5fh ; 數(shù)據(jù)臨時存放單元temp7 equ 60htemp8 equ 61horg 0000hajmp mainorg 0020hmain:mov sp,
34、#70h lcall int ; 調(diào)用ds18b20初始化函數(shù)main1:lcall get_temp ; 調(diào)用溫度轉(zhuǎn)換函數(shù)lcall chuli ; 調(diào)用溫度計算函數(shù)lcall disp ; 調(diào)用溫度顯示函數(shù)ajmp main1 ; 循環(huán)int:l0:setb p3.7 ; 先釋放dq總線mov r2,#250 ; 給r2賦延時初值,同時可讓dq保持高電平2usl1:clr p3.7 ; 給dq一個復(fù)位低電平djnz r2,l1 ; 保持低電平的時間至少為480ussetb p3.7 ; 再次拉高dq釋放總線mov r2,#25 l2:djnz r2,l2 ; 保持15us60usclr c
35、orl c,p3.7 ; 判斷是否收到低脈沖jc l0mov r6,#100l3:orl c,p3.7 djnz r6,l3 ; 存在低脈沖保持保持60us240usjc l0 ; 否則繼續(xù)從頭開始,繼續(xù)判斷setb p3.7 ret ; 調(diào)用溫度轉(zhuǎn)換函數(shù)get_temp:clr psw.4setb psw.3 ; 設(shè)置工作寄存器當(dāng)前所在的區(qū)域clr ea ; 使用ds18b20前一定要禁止任何中斷l(xiāng)call int ; 初始化ds18b20mov a,#0cch ; 送入跳過rom命令lcall writemov a,#44h ; 送入溫度轉(zhuǎn)換命令lcall writelcall int ;
36、 溫度轉(zhuǎn)換完成,再次初始化18b20mov a,#0cch ; 送入跳過rom命令lcall writemov a,#0beh ; 送入讀溫度暫存器命令lcall writelcall read mov temp4,a ; 讀出溫度的低字節(jié)存在temp4lcall readmov temp5,a ; 讀出溫度的高字節(jié)存在temp5setb earetchuli : mov a,temp5 ; 將溫度的高字節(jié)取出jnb acc.7,zheng ; 判斷最高位是否為0,為0則表示溫度為正,則轉(zhuǎn)到zhengmov a,temp4 ; 否則溫度為負,將溫度的低字節(jié)取出cpl a ; 求反inc a ;
37、 加1mov temp8,a ; 存到temp8中anl a,#0fh ; 保留低四位lcall muld ; 調(diào)用乘以625子程序lcall hb2 ; 調(diào)用雙字節(jié)16進制數(shù)轉(zhuǎn)換成bcd碼子程序mov a,r4 ; 將結(jié)果的千位百位取出anl a,#0f0h ; 保留千位swap a ; mov temp7,a ; 把小數(shù)結(jié)果保存在temp7中mov a,temp4 ; 再次取出溫度的低字節(jié)anl a,#0ffh ; 判斷是否為0jz xx ; 為0則轉(zhuǎn)到xx執(zhí)行mov a,temp5 ;cpl a ; 不為0則直接將溫度的高字節(jié)取反sjmp yy xx:mov a,temp5 ; 為0則求
38、補碼cpl a ;inc a ;yy:anl a,#0fh ; 保留高字節(jié)的低四位swap a ; 將其換到高4位mov r5,a ; 暫時保存于r5中mov a,temp8 ; 取出求反后的低位字節(jié)anl a,#0f0h ; 取其高4位swap a ; 將其換到低4位orl a,r5 ; 合并成溫度的整數(shù)部分mov temp6,a ; 將整數(shù)部分存到temp6中l(wèi)call hbcd ; 調(diào)用一字節(jié)的16進制數(shù)轉(zhuǎn)換bcd數(shù)的子程序mov temp1,#0bh ; 將"-"號的段選值存到符號位mov a,temp2 ; 取出十位cjne a,#00h,next mov tem
39、p2,#0ch ; 十位為0不顯示ret zheng: mov a,temp4 ; 將溫度的低字節(jié)取出anl a,#0fh ; 保留低四位lcall muld ; 調(diào)用乘以625子程序lcall hb2 ; 調(diào)用雙字節(jié)16進制數(shù)轉(zhuǎn)換成bcd碼子程序mov a,r4 ; 將結(jié)果的千位百位取出anl a,#0f0h ; 保留千位swap a ;mov temp7,a ; 把小數(shù)結(jié)果保存在temp7中mov a,temp4 ; 再次取出溫度的低字節(jié)anl a,#0f0h ; 保留高4位swap a ; 換到低4位mov r5,a ; 暫時保存于r5中mov a,temp5 ; 取出溫度的高字節(jié)anl
40、 a,#0fh ; 保留低4位swap a ; 換到高4位orl a,r5 ; 合并成溫度的整數(shù)部分mov temp6,a ; 整數(shù)部分存到temp6中l(wèi)call hbcd ; 單字節(jié)的16進制數(shù)轉(zhuǎn)換成bcd碼mov a,temp1 ; 取出百位cjne a,#00h,next ; 百位不為0則轉(zhuǎn)nextmov temp1,#0ch ; 為0則不顯mov a,temp2 ; 取出十位cjne a,#00h,next mov temp2,#0ch ; 十位為0也不顯next: ret ; 小數(shù)部分乘以625轉(zhuǎn)換子程序muld:mov b,#71hmul abmov r7,amov r6,b mov b,#02hmul abadd a,r6mov r6,aret ; 寫字節(jié)到18b20子程序write: mov r3,#8 ; 一個字節(jié)共8位wr1: setb p3.7 ; 先釋放總線mov r4,#8rrc a ; 把要寫的字節(jié)的最低位右環(huán)移到c中clr p3.7 ; 寫開始wr3:djnz r4,wr3 ; 保持低電平015us,等待mov p3.7,c ; 將c中的位寫到dq總線上mov r4,#20 djnz r4,$ ; 18b20在15us60us期間對dq總線進行采樣djnz r3,wr1 ; 判斷8位是
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年份餐飲廢棄物處理承包協(xié)議3篇
- 2025版挖掘機械銷售代理合同模板
- 二零二五年度哺乳期離婚雙方子女保險權(quán)益轉(zhuǎn)移協(xié)議2篇
- 2024證券公司與其合作方之間國際證券交易合同
- 二零二五版領(lǐng)養(yǎng)未成年人監(jiān)護責(zé)任協(xié)議參考4篇
- 二零二五版園林景觀木工施工合作協(xié)議4篇
- 二零二五版合伙房產(chǎn)買賣合同及配套裝修設(shè)計服務(wù)6篇
- 2025年度特種運輸服務(wù)買賣合同安全與時效承諾
- 2025版彩禮退還與婚姻解除條件及財產(chǎn)分割協(xié)議書范本3篇
- 基于2025年度規(guī)劃的文化園區(qū)停車場建設(shè)與運營合同3篇
- 職業(yè)衛(wèi)生培訓(xùn)課件
- 柴油墊資合同模板
- 湖北省五市州2023-2024學(xué)年高一下學(xué)期期末聯(lián)考數(shù)學(xué)試題
- 城市作戰(zhàn)案例研究報告
- 【正版授權(quán)】 ISO 12803:1997 EN Representative sampling of plutonium nitrate solutions for determination of plutonium concentration
- 道德經(jīng)全文及注釋
- 2024中考考前地理沖刺卷及答案(含答題卡)
- 多子女贍養(yǎng)老人協(xié)議書范文
- 彩票市場銷售計劃書
- 骨科抗菌藥物應(yīng)用分析報告
- 支付行業(yè)反洗錢與反恐怖融資
評論
0/150
提交評論