已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄引言1設(shè)計(jì)目的1設(shè)計(jì)背景11設(shè)計(jì)方案211度計(jì)軟件設(shè)計(jì)流程圖212元器件的選取213系統(tǒng)仿真圖22設(shè)計(jì)框圖321硬件電路框圖322硬件電路概述323顯示電路324溫度傳感器DS18B2043軟件設(shè)計(jì)831主程序832讀出溫度子程序933計(jì)算溫度子程序1034顯示數(shù)據(jù)刷新子程序10351602的液晶顯示程序設(shè)計(jì)1036PROTEUS程序設(shè)計(jì)114總結(jié)與體會(huì)12參考文獻(xiàn)13附錄114附錄215附錄316課程設(shè)計(jì)說(shuō)明書(shū)1引言設(shè)計(jì)目的本文主要介紹了一個(gè)基于AT89C51單片機(jī)的測(cè)溫系統(tǒng),詳細(xì)描述了利用數(shù)字溫度傳感器DS18B20開(kāi)發(fā)測(cè)溫系統(tǒng)的過(guò)程,重點(diǎn)對(duì)傳感器在單片機(jī)喜愛(ài)的硬件連接,軟件編程以及各模塊系統(tǒng)流程進(jìn)行了詳盡分析,對(duì)各部分的電路也進(jìn)行一一介紹,該系統(tǒng)可以方便的是實(shí)現(xiàn)溫度采集和顯示??蓾M足以下要求1能夠測(cè)量的溫度范圍是50C到110C。2測(cè)量誤差在05C之內(nèi)。3在PROTEUS軟件上進(jìn)行仿真,修改。設(shè)計(jì)背景隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活,工作,科研,各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù),本文將介紹一種基于單片機(jī)控制的數(shù)字溫度計(jì),本溫度計(jì)屬于簡(jiǎn)易溫度計(jì),只提供了溫度的測(cè)量及LCD1602液晶顯示功能。本設(shè)計(jì)使用起來(lái)方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點(diǎn),適合我們?nèi)粘I詈凸まr(nóng)業(yè)生產(chǎn)中的溫度測(cè)量,也可以當(dāng)做溫度處理模塊嵌入其他系統(tǒng)中,作為其他主系統(tǒng)的輔助擴(kuò)展。DS18B20和AT89C51結(jié)合實(shí)現(xiàn)最簡(jiǎn)溫度檢測(cè)系統(tǒng),該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,抗干擾能力強(qiáng),適合與惡劣環(huán)境下進(jìn)行現(xiàn)場(chǎng)溫度測(cè)量,有廣泛的應(yīng)用前景。本設(shè)計(jì)首先是確定目標(biāo),然后是各個(gè)功能模塊的設(shè)計(jì),還在PROTEUS軟件上進(jìn)行仿真,修改,仿真。本設(shè)計(jì)思路簡(jiǎn)潔明了,分塊化模式使得程序靈活性大大增強(qiáng)。通過(guò)本次設(shè)計(jì),是我們所學(xué)的知識(shí)得以實(shí)踐的驗(yàn)證,對(duì)將來(lái)順利走向工作崗位或者科研事業(yè)將發(fā)揮重要意義。課程設(shè)計(jì)說(shuō)明書(shū)21設(shè)計(jì)方案11度計(jì)軟件設(shè)計(jì)流程圖溫度計(jì)軟件設(shè)計(jì)流程圖見(jiàn)附錄11溫度計(jì)軟件設(shè)計(jì)流程圖12元器件的選取1單片機(jī)芯片的選取AT89C51單片機(jī)片內(nèi)程序存儲(chǔ)器采用閃存,使程序的寫(xiě)入更加方便,整個(gè)硬件電路的體積更小,管腳數(shù)目為40個(gè)。本課設(shè)中單片機(jī)芯片正是采用AT89C51。2溫度傳感器的選取采用DS18B20溫度傳感器。DS18B20的內(nèi)部3腳(或8腳)封裝;使用特有的溫度測(cè)量技術(shù),將被測(cè)溫度轉(zhuǎn)換成數(shù)值信號(hào);3055V的電源供電方式和寄生電源供電方式;ROM由64位二進(jìn)制數(shù)字組成,共分為8個(gè)字節(jié);RAM由9個(gè)字節(jié)的高速暫存器和非易失性電擦寫(xiě)ROM組成。3本設(shè)計(jì)顯示電路采用1602液晶顯示模塊芯片。綜上各方案所述,對(duì)此次課設(shè)的方案選定采用AT89C51作為主控制系統(tǒng)1602液晶顯示模塊芯片作為溫度數(shù)據(jù)顯示裝置而智能溫度傳感器DS18B20器件作為測(cè)溫電路主要組成部分。至此,系統(tǒng)最終方案確定。13系統(tǒng)仿真圖系統(tǒng)仿真連線圖見(jiàn)附錄21。連線比較簡(jiǎn)潔,簡(jiǎn)易溫度計(jì)操作簡(jiǎn)單,可以直接用來(lái)上電讀取溫度。課程設(shè)計(jì)說(shuō)明書(shū)32設(shè)計(jì)框圖溫度計(jì)電路設(shè)計(jì)總體設(shè)計(jì)方框圖如圖21所示,控制器采用單片機(jī)AT89C51,溫度傳感器采用DS18B20,用1602液晶顯示屏以串口傳送數(shù)據(jù)實(shí)現(xiàn)溫度顯示。21硬件電路框圖晶振控制1602顯示器溫度檢測(cè)電路DS18B20圖21總體設(shè)計(jì)方框圖22硬件電路概述本電路是由AT89C2051單片機(jī)為控制核心,具有與MCS51系列單片機(jī)完全兼容,程序加密等功能,帶2KB字節(jié)可編程閃存,工作電壓范圍為276V,全靜態(tài)工作頻率為024MHZ;顯示電路由1602液晶顯示模塊芯片,可以進(jìn)行多行顯示;溫度報(bào)警按鍵設(shè)為五個(gè),可以顯示華氏溫度,調(diào)節(jié)高低報(bào)警溫度;溫度傳感器電路主要由DS18B20測(cè)溫器件構(gòu)成,該器件主要功能有采用單總線技術(shù);每只DS18B20具有一個(gè)獨(dú)立的不可修改的64位序列號(hào);低壓供電,電源范圍為35V;測(cè)溫范圍為20125,誤差為05;復(fù)位電路是10K電阻構(gòu)成的上電自動(dòng)復(fù)位。23顯示電路本設(shè)計(jì)顯示電路采用1602液晶顯示模塊芯片,該芯片可現(xiàn)實(shí)16X2個(gè)字符,比以前的七段數(shù)碼管LED顯示器在顯示字符的數(shù)量上要多得多。另外,由于1602芯片編程比較簡(jiǎn)單,界面直觀,因此更加易于使用者的操作和觀測(cè)。1602A芯片的接口信號(hào)說(shuō)明如下表單片機(jī)芯片AT89C51課程設(shè)計(jì)說(shuō)明書(shū)4表211602A芯片的接口信號(hào)說(shuō)明引腳號(hào)引腳名電平輸入/輸出作用1VSS電源地2VCC電源(5V)3VEE對(duì)比調(diào)整電壓4RS0/1輸入0輸入指令1輸入數(shù)據(jù)5R/W0/1輸入0向LCD寫(xiě)入指令或數(shù)據(jù)1從LCD讀取數(shù)據(jù)4E1,下降沿(1到0)輸入使能信號(hào),1時(shí)讀取數(shù)據(jù),下降沿時(shí)執(zhí)行指令圖22液晶顯示24溫度傳感器DS18B20DS18B20溫度傳感器是美國(guó)DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)912位的數(shù)字值讀數(shù)方式。DS18B20的性能特點(diǎn)如下(1)獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。(2)DS18B20支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)測(cè)溫;(3)無(wú)須外部器件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi);(4)可通過(guò)數(shù)據(jù)線供電,電壓范圍為3055;(5)零待機(jī)功耗;(6)溫度以9或12位數(shù)字,對(duì)應(yīng)的可分辨溫度分別為05、025、0125和00625,可實(shí)現(xiàn)高精度測(cè)溫;課程設(shè)計(jì)說(shuō)明書(shū)5(7)用戶可定義報(bào)警設(shè)置;(8)報(bào)警搜索命令識(shí)別并標(biāo)志超過(guò)程序限定溫度(溫度報(bào)警條件)的器件;(9)負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作;(10)測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以“一線總線“串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力DS18B20采用3腳PR35封裝或8腳SOIC封裝,其引腳排列及內(nèi)部結(jié)構(gòu)框圖如圖及測(cè)溫原理圖如下所示圖23引腳排列預(yù)置斜率累加器比較低溫度系數(shù)振蕩器計(jì)數(shù)器1溫度寄存器TX預(yù)置0高溫度系數(shù)振蕩器0計(jì)數(shù)器2T1加1停止T2圖24DS18B20測(cè)溫原理圖64位ROM的結(jié)構(gòu)開(kāi)始8位是產(chǎn)品類型的編號(hào),接著是每個(gè)器件的惟一的序號(hào),共有48位,最后8位是前面56位的CRC檢驗(yàn)碼,這也是多個(gè)DS18B20可以采用一線進(jìn)行通信的原因。溫度報(bào)警觸發(fā)器TH和TL,可通過(guò)軟件寫(xiě)入戶報(bào)警上下限。DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存RAM和一個(gè)非易失性的DS18B20123GNDI/OVCC課程設(shè)計(jì)說(shuō)明書(shū)6可電擦除的EERAM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如圖26所示。圖26高速暫存RAM(1)、溫度LSB,溫度MSB字節(jié)包含測(cè)得的溫度信息(2)、第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新(3)、最后8位是前面56位的CRC檢驗(yàn)碼(4)、第5個(gè)字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。該字節(jié)各位的定義如圖27所示。圖27DS18B20的字節(jié)定義DS18B20工作時(shí)寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。低5位一直為1,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式,DS18B20出廠時(shí)該位被設(shè)置為0,用戶不要去改動(dòng),R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來(lái)設(shè)置分辨率。DS18B20的分辨率定義如表22所示表22分辨率設(shè)置表R0R1分辨率最大溫度轉(zhuǎn)移時(shí)間009位9675MS0110位1875MS1011位375MS1112位750MS由表1可見(jiàn),DS18B20溫度轉(zhuǎn)換的時(shí)間比較長(zhǎng),而且分辨率越高,所需要的溫度LSB溫度MSBTH用戶字節(jié)1TL用戶字節(jié)2配置寄存器保留保留保留CRCTMR1R011111課程設(shè)計(jì)說(shuō)明書(shū)7溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間越長(zhǎng)。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。主機(jī)控制DS18B20完成溫度轉(zhuǎn)換過(guò)程是每一次讀寫(xiě)之前都要對(duì)DS18B20進(jìn)行復(fù)位,即將數(shù)據(jù)總線下拉500US,然后釋放,DS18B20收到信號(hào)后等待1660US左右,之后發(fā)出60240US的存在低脈沖,主CPU收到此此信號(hào)表示復(fù)位成功;復(fù)位成功后發(fā)送一條ROM指令,然后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)訂的讀寫(xiě)操作。表2ROM指令集指令約定代碼功能讀ROM33H讀DS18B20中的編碼符合ROM55H發(fā)出此命令后,接著發(fā)出64位ROM編碼,訪問(wèn)單線總線上與該編輯相對(duì)應(yīng)的DS18B20使之做出響應(yīng),為下一步對(duì)該DS18B20的讀寫(xiě)作準(zhǔn)備搜索ROM0F0H用于確定掛接在同一總線上的DS18B20個(gè)數(shù)和識(shí)別64位ROM地址,為操作各器件作準(zhǔn)備跳過(guò)ROM0CCH忽略64位ROM地址,直接向DS18B20發(fā)送溫度變換指令告警搜索命令0ECH執(zhí)行后,只有溫度跳過(guò)設(shè)定值上限或下限的片子才能做出反應(yīng)表3RAM指令集指令約定代碼功能溫度轉(zhuǎn)換44H啟動(dòng)DS18B20進(jìn)行溫度轉(zhuǎn)換讀暫存器0BEH讀暫存器9個(gè)字節(jié)內(nèi)容寫(xiě)暫存器4EH將數(shù)據(jù)寫(xiě)入暫存器的TH、TL字節(jié)復(fù)制暫存器48H把暫存器的TH、TL字節(jié)寫(xiě)到E2RAM中重調(diào)E2RAM0B8H把E2RAM中的TH、TL字節(jié)寫(xiě)到暫存器TH、TL字節(jié)讀供電方式0B4H啟動(dòng)DS18B20發(fā)送電源供電方式的信號(hào)給主CPUDS18B20的測(cè)溫原理器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入。器件中還有一個(gè)計(jì)數(shù)門(mén),當(dāng)計(jì)數(shù)門(mén)打開(kāi)時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門(mén)的開(kāi)啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定,每次測(cè)量前,首先將最低溫所對(duì)應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器1、溫度寄存器中,計(jì)數(shù)器1和溫度寄存器被預(yù)置在最低溫所對(duì)應(yīng)的一個(gè)基數(shù)值。課程設(shè)計(jì)說(shuō)明書(shū)8減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器計(jì)數(shù)到0時(shí),停止溫度寄存器的累加,此時(shí)溫度寄存器中的數(shù)值就是所測(cè)溫度值。其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)器門(mén)仍未關(guān)閉就重復(fù)上述過(guò)程,直到溫度寄存器值大致被測(cè)溫度值。3軟件設(shè)計(jì)整個(gè)系統(tǒng)是由硬件配合軟件來(lái)實(shí)現(xiàn)的,在硬件確定后,編寫(xiě)的軟件的功能也就基本定型了。所以軟件的功能大致可分為兩個(gè)部分一是監(jiān)控,這也是系統(tǒng)的核心部分,二是執(zhí)行部分,完成各個(gè)具體的功能。系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計(jì)算溫度子程序,顯示數(shù)據(jù)刷新子程序等。31主程序主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20的測(cè)量的當(dāng)前溫度值,溫度測(cè)量每1S進(jìn)行一次。這樣可以在一秒之內(nèi)測(cè)量一次被測(cè)溫度,其程序流程見(jiàn)圖31所示。圖31主程序流程圖初始化調(diào)用顯示子程序1S到初次上電讀出溫度值溫度計(jì)算處理顯示數(shù)據(jù)刷新發(fā)溫度轉(zhuǎn)換開(kāi)始命令NYNYY發(fā)DS18B20復(fù)位命令發(fā)跳過(guò)ROM命令發(fā)讀取溫度命令讀取操作,CRC校驗(yàn)9字節(jié)完CRC校驗(yàn)正確移入溫度暫存器結(jié)束NNY課程設(shè)計(jì)說(shuō)明書(shū)9發(fā)DS18B20復(fù)位命令發(fā)跳過(guò)ROM命令發(fā)溫度轉(zhuǎn)換開(kāi)始命令結(jié)束圖32讀溫度流程圖主程序如下,它包含和編程的準(zhǔn)備工作和調(diào)用子程序功能。這種模塊化編成結(jié)構(gòu)對(duì)于程序的移植再用提供了很大的方便。只要我們提供相應(yīng)的子程序,系統(tǒng)就可以算作是完成了。下面我們重點(diǎn)分析幾個(gè)比較重要的子程序編程(1)DS18B20復(fù)位子程序初始化這段程序算是必要的準(zhǔn)備工作之一。(2)DS18B20數(shù)據(jù)讀取操作子程序其流程圖如圖32所示。(3)溫度值BCD碼處理子程序這部分比較重要,很核心,是處理數(shù)據(jù)的關(guān)鍵部分。它把各個(gè)數(shù)據(jù)位進(jìn)行了分離,只要經(jīng)過(guò)二十進(jìn)制轉(zhuǎn)換子程序便可用于數(shù)據(jù)顯示。流程如圖34,圖33所示。(4)BCD碼溫度值刷新子程序流程圖如圖35所示。32讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫(xiě)。溫度轉(zhuǎn)換命令子程序流程圖如圖33所示圖33溫度轉(zhuǎn)換流程圖課程設(shè)計(jì)說(shuō)明書(shū)10圖34溫度流程圖圖35示數(shù)據(jù)刷新流程圖33計(jì)算溫度子程序計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖34所示。34顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序主要是對(duì)顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為0時(shí)將符號(hào)顯示位移入下一位。程序流程圖如圖35所示。351602的液晶顯示程序設(shè)計(jì)液晶顯示流程如圖36所示。溫度值顯示程序如下開(kāi)始溫度零下溫度值補(bǔ)碼置“”標(biāo)志計(jì)算小數(shù)位溫度BCD值計(jì)算整數(shù)位溫度BCD值結(jié)束置“”標(biāo)志NY溫度數(shù)據(jù)移入顯示寄存器十位數(shù)0百位數(shù)0十位數(shù)顯示符號(hào)百位數(shù)不顯示百位數(shù)顯示數(shù)據(jù)結(jié)束NNYY課程設(shè)計(jì)說(shuō)明書(shū)11初始化1602開(kāi)始延時(shí)調(diào)用子程序設(shè)置第一行顯示位置與內(nèi)容調(diào)用子程序設(shè)置第二行顯示位置與內(nèi)容圖361602液晶顯示流程圖36PROTEUS程序設(shè)計(jì)本設(shè)計(jì)是在PROTEUS環(huán)境下進(jìn)行仿真的,仿真所用到的器件有單片機(jī)AT89C51,DS1820溫度傳感器,液晶顯示器,一些電阻,電容等。仿真結(jié)果見(jiàn)附錄2系統(tǒng)原理圖。課程設(shè)計(jì)說(shuō)明書(shū)124總結(jié)與體會(huì)經(jīng)過(guò)這一周的單片機(jī)課程設(shè)計(jì),我們完成了數(shù)字溫度計(jì)的設(shè)計(jì),雖然還有很多不足與欠缺之處,但感覺(jué)自己還是取得了很大進(jìn)步。從沒(méi)有嘗試讀寫(xiě)這么長(zhǎng)的程序,應(yīng)該說(shuō)這是自己學(xué)習(xí)單片機(jī)以來(lái)第一次具有現(xiàn)實(shí)意義的嘗試吧在本次設(shè)計(jì)的過(guò)程中,我發(fā)現(xiàn)很多的問(wèn)題,雖然以前還做過(guò)這樣的設(shè)計(jì)但這次設(shè)計(jì)真的讓我長(zhǎng)進(jìn)了很多,單片機(jī)課程設(shè)計(jì)重點(diǎn)就在于軟件算法的設(shè)計(jì),需要有很巧妙的程序算法,雖然以前寫(xiě)過(guò)幾次程序,但我覺(jué)的寫(xiě)好一個(gè)程序并不是一件簡(jiǎn)單的事,舉個(gè)例子,以前寫(xiě)的那幾次,數(shù)據(jù)加減時(shí),我用的都是BCD碼,這一次,我全部用的都是16進(jìn)制的數(shù)直接加減,顯示處理時(shí)在用除法去刪分,感覺(jué)效果比較好,有好多的東西,只有我們?nèi)ピ囍隽?,才能真正的掌握,只學(xué)習(xí)理論有些東西是很難理解的,更談不上掌握。從這次的課程設(shè)計(jì)中,我真真正正的意識(shí)到,在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們所學(xué)的理論知識(shí)用到實(shí)際當(dāng)中,學(xué)習(xí)單機(jī)片機(jī)更是如此,程序只有在經(jīng)常的寫(xiě)與讀的過(guò)程中才能提高,這就是我在這次課程設(shè)計(jì)中的最大收獲。通過(guò)這次對(duì)數(shù)字溫度計(jì)的設(shè)計(jì)與制作,讓我了解了設(shè)計(jì)電路的程序,也讓我了解了關(guān)于數(shù)字溫度計(jì)的原理與設(shè)計(jì)理念,要設(shè)計(jì)一個(gè)電路總要先用仿真仿真成功之后才實(shí)際接線的。但是最后的成品卻不一定與仿真時(shí)完全一樣,因?yàn)?,再?shí)際接線中有著各種各樣的條件制約著。而且,在仿真中無(wú)法成功的電路接法,在實(shí)際中因?yàn)樾酒旧淼奶匦远軌虺晒?。所以,在設(shè)計(jì)時(shí)應(yīng)考慮兩者的差異,從中找出最適合的設(shè)計(jì)方法。通過(guò)這次學(xué)習(xí),讓我對(duì)匯編語(yǔ)句有了更深的了解,也相信這對(duì)自己以后的工作學(xué)習(xí)都有很大意義。會(huì)以此為契機(jī),不斷開(kāi)發(fā)自己創(chuàng)造能力,開(kāi)發(fā)自己對(duì)軟件硬件設(shè)計(jì)的興趣,力爭(zhēng)做一個(gè)身懷技能的人。課程設(shè)計(jì)說(shuō)明書(shū)13參考文獻(xiàn)1肖看,李群芳單片機(jī)原理、接口及應(yīng)用清華大學(xué)出版社,201092樓然苗單片機(jī)課程設(shè)計(jì)指導(dǎo)北京北京航空航天大學(xué)出版社,20023閻石數(shù)字電子技術(shù)基礎(chǔ)(第三版)北京高等教育出版社,19894孫育才主編MCS51系列單片微型計(jì)算機(jī)及其應(yīng)用東南大學(xué)出版社5張毅剛單片機(jī)原理與應(yīng)用設(shè)計(jì)M電子工業(yè)出版社,2008年課程設(shè)計(jì)說(shuō)明書(shū)14設(shè)置堆棧指針將溫度轉(zhuǎn)換為BCD碼發(fā)讀存儲(chǔ)器命令讀溫度數(shù)據(jù)復(fù)位DS18B20發(fā)跳過(guò)ROM命令顯示緩沖區(qū)初始化更新數(shù)據(jù)緩沖區(qū)延時(shí)發(fā)溫度轉(zhuǎn)換命令復(fù)位DS18B20發(fā)跳過(guò)ROM命令開(kāi)始附錄1附錄圖11溫度計(jì)軟件設(shè)計(jì)流程圖課程設(shè)計(jì)說(shuō)明書(shū)15附錄2附錄圖21PROTEUS仿真系統(tǒng)圖附錄圖22PROTEUS仿真系統(tǒng)結(jié)果圖課程設(shè)計(jì)說(shuō)明書(shū)16附錄3簡(jiǎn)易溫度計(jì)完整程序(模塊化設(shè)計(jì))TEMP_ZHEQU24H實(shí)測(cè)溫度值存放單元TEMPLEQU25HTEMPHEQU26HTEMPHCEQU29H正、負(fù)溫度值標(biāo)記TEMPLCEQU2AHTEMPFCEQU2BHSIT_XEQU2FHLCD字符顯示位置RSEQUP20LCD寄存器選擇信號(hào)RWEQUP21LCD讀寫(xiě)信號(hào)ENEQUP22LCD允許信號(hào)DQEQUP33DS18B20數(shù)據(jù)信號(hào)ORG0000HMAINMOVSP,50HMOVA,00HMOVR0,20H將20H2FH單元清零MOVR1,10HCLEARMOVR0,AINCR0DJNZR1,CLEARLCALLSET_LCDSTARTLCALLRST調(diào)用18B20復(fù)位子程序LCALLMENU_OKDS1820存在,調(diào)用顯示正確信息子程序LCALLTEMP_BJ顯示溫度標(biāo)記JMPSTART2START2LCALLRST調(diào)用DS18B20復(fù)位子程序MOVA,0CCH跳過(guò)ROM匹配命令LCALLWRITEMOVA,44H溫度轉(zhuǎn)換命令LCALLWRITELCALLRSTMOVA,0CCH跳過(guò)ROM匹配LCALLWRITEMOVA,0BEH讀溫度命令課程設(shè)計(jì)說(shuō)明書(shū)17LCALLWRITELCALLREAD調(diào)用DS18B20數(shù)據(jù)讀取操作子程序LCALLCONVTEMP調(diào)用溫度數(shù)據(jù)BCD碼處理子程序LCALLDISPBCD調(diào)用溫度數(shù)據(jù)顯示子程序LCALLCONV調(diào)用LCD顯示處理子程序SJMPSTART2循環(huán)顯示溫度標(biāo)記子程序TEMP_BJMOVA,0CBHLCALLWCOMMOVDPTR,BJ1指針指到顯示消息MOVR1,0MOVR0,2BBJJ1MOVA,R1MOVCA,ADPTRLCALLWDATAINCR1DJNZR0,BBJJ1RETBJ1DB00H,“C“顯示正確信息子程序MENU_OKMOVDPTR,M_OK1指針指到顯示消息MOVA,1顯示在第一行LCALLLCD_PRINTMOVDPTR,M_OK2指針指到顯示消息MOVA,2顯示在第一行LCALLLCD_PRINTRETM_OK1DB“4090208315“,0M_OK2DB“TEMP“,0DS18B20復(fù)位子程序初始化RSTSETBDQNOPCLRDQMOVR0,6BH主機(jī)發(fā)出延時(shí)復(fù)位低脈沖MOVR1,04H課程設(shè)計(jì)說(shuō)明書(shū)18TSR1DJNZR0,MOVR0,6BHDJNZR1,TSR1SETBDQ拉高數(shù)據(jù)線NOPNOPNOPTSR5MOVR0,06BHTSR6DJNZR0,時(shí)序要求延時(shí)一段時(shí)間TSR7SETBDQRET將自定義字符寫(xiě)入LCD的CGRAM中STORE_DATAMOVA,40HLCALLWCOMMOVR2,08HMOVDPTR,D_DATAMOVR3,00HS_DATAMOVA,R3MOVCA,ADPTRLCALLWDATA寫(xiě)入數(shù)據(jù)INCR3DJNZR2,S_DATARETD_DATADB0CH,12H,12H,0CH,00H,00H,00H,00HDS18B20數(shù)據(jù)寫(xiě)入操作子程序WRITEMOVR2,8一共8位數(shù)據(jù)CLRCWR1CLRDQ開(kāi)始寫(xiě)入DS18B20總線要處于復(fù)位(低)狀態(tài)MOVR3,07DJNZR3,總線復(fù)位保持16微妙以上RRCA把一個(gè)字節(jié)DATA分成8個(gè)BIT環(huán)移給CMOVDQ,C寫(xiě)入一位MOVR3,3CH課程設(shè)計(jì)說(shuō)明書(shū)19DJNZR3,等待100微妙SETBDQ重新釋放總線NOPDJNZR2,WR1寫(xiě)入下一位SETBDQRETDS18B20數(shù)據(jù)讀取操作子程序READMOVR4,4將溫度低位、高位、TH、TL從DS18B20中讀出MOVR1,TEMPL存入25H、26H、27H、28H單元RE00MOVR2,8RE01CLRCYSETBDQNOPNOPCLRDQ讀前總線保持為低NOPNOPNOPSETBDQ開(kāi)始讀總線釋放MOVR3,09延時(shí)18微妙DJNZR3,MOVC,DQ從DS18B20總線讀得一位MOVR3,3CHDJNZR3,等待100微妙RRCA把讀得的位值環(huán)移給ADJNZR2,RE01讀下一位MOVR1,AINCR1DJNZR4,RE00RET溫度值BCD碼處理子程序CONVTEMPMOVA,TEMPH判溫度是否零下ANLA,08HJZTEMPC1溫度零上轉(zhuǎn)課程設(shè)計(jì)說(shuō)明書(shū)20CLRCMOVA,TEMPL二進(jìn)制數(shù)求補(bǔ)(雙字節(jié))CPLA取反加1ADDA,01HMOVTEMPL,AMOVA,TEMPHCPLAADDCA,00HMOVTEMPH,AMOVTEMPHC,0BH負(fù)溫度標(biāo)志MOVTEMPFC,0BHSJMPTEMPC11TEMPC1MOVTEMPHC,0AH正溫度標(biāo)志MOVTEMPFC,0AHTEMPC11MOVA,TEMPHCSWAPAMOVTEMPHC,AMOVA,TEMPLANLA,0FH乘00625MOVDPTR,TEMPDOTTABMOVCA,ADPTRMOVTEMPLC,ATEMPLCLOW小數(shù)部分BCDMOVA,TEMPL整數(shù)部分ANLA,0F0H取出高四位SWAPAMOVTEMPL,AMOVA,TEMPH取出低四位ANLA,0FHSWAPAORLA,TEMPL重新組合MOVTEMP_ZH,ALCALLHEX2BCD1MOVTEMPL,AANLA,0F0HSWAPA課程設(shè)計(jì)說(shuō)明書(shū)21ORLA,TEMPHCTEMPHCLOW十位數(shù)BCDMOVTEMPHC,AMOVA,TEMPLANLA,0FHSWAPATEMPLCHI個(gè)位數(shù)BCDORLA,TEMPLCMOVTEMPLC,AMOVA,R4JZTEMPC12ANLA,0FHSWAPAMOVR4,AMOVA,TEMPHCTEMPHCHI百位數(shù)BCDANLA,0FHORLA,R4MOVTEMPHC,ATEMPC12RET二十進(jìn)制轉(zhuǎn)換子程序HEX2BCD1MOVB,064HDIVABMOVR4,AMOVA,0AHXCHA,BDIVABSWAPAORLA,BRETTEMPDOTTABDB00H,00H,01H,01H,02H,03H,03H,04H小數(shù)部分碼表DB05H,05H,06H,06H,07H,08H,08H,09HLCD顯示子程序SHOW_DIG2HMOVB,100DIVABADDA,30HPUSHBMOVB,SIT_X課程設(shè)計(jì)說(shuō)明書(shū)22LCALLLCDP2POPBMOVA,0AHXCHA,BDIVABADDA,30HINCSIT_XPUSHBMOVB,SIT_XLCALLLCDP2POPBINCSIT_XMOVA,BMOVB,SIT_XADDA,30HLCALLLCDP2RETSHOW_DIG2LMOVB,100DIVABMOVA,0AHXCHA,BDIVABADDA,30HPUSHBMOVB,SIT_XLCALLLCDP2POPBINCSIT_XMOVA,BMOVB,SIT_XADDA,30HLCALLLCDP2RET顯示區(qū)BCD碼溫度值刷新子程序課程設(shè)計(jì)說(shuō)明書(shū)23DISPBCDMOVA,TEMPLCANLA,0FHMOV70H,A小數(shù)位MOVA,TEMPLCSWAPAANLA,0FHMOV71H,A個(gè)位MOVA,TEMPHCANLA,0FHMOV72H,A十位MOVA,TEMPHCSWAPAANLA,0FHMOV73H,A百位RETLCD顯示數(shù)據(jù)處理子程序CONVMOVA,73H加載百位數(shù)據(jù)MOVSIT_X,6設(shè)置位置CJNEA,1,CONV1JMPCONV2CONV1CJNEA,0BH,CONV11MOVA,“號(hào)顯示JMPCONV111CONV11MOVA,“0“號(hào)不顯示CONV111MOVB,SIT_XLCALLLCDP2JMPCONV3CONV2LCALLSHOW_DIG2顯示數(shù)據(jù)CONV3INCSIT_XMOVA,72H十位LCALLSHOW_DIG2INCSIT_XMOVA,71H個(gè)位LCALLSHOW_DIG2INCSIT_X課程設(shè)計(jì)說(shuō)明書(shū)24MOVA,MOVB,SIT_XLCALLLCDP2MOVA,70H加載小數(shù)點(diǎn)位INCSIT_X設(shè)置顯示位置LCALLSHOW_DIG2顯示數(shù)據(jù)RET第二行顯示數(shù)字子程序SHOW_DIG2ADDA,30HMOVB,SIT_XLCALLLCDP2RET第二行顯示數(shù)字子程序LCDP2PUSHACCMOVA,B設(shè)置顯示地址ADDA,0C0H設(shè)置LCD的第二行地址LCALLWCOM寫(xiě)入命令POPACC由堆棧取出ALCALLWD
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 退役軍人優(yōu)撫業(yè)務(wù)知識(shí)
- 輸送皮帶事故培訓(xùn)
- 輸血流程知識(shí)
- 氨基酸培訓(xùn)教學(xué)課件
- 爆破與拆除工程公司生產(chǎn)經(jīng)理述職報(bào)告
- 軟裝專業(yè)知識(shí)
- 路橋區(qū)村播培訓(xùn)
- 軟件管理員工培訓(xùn)
- 軟件功能培訓(xùn)資料
- 跟崗培訓(xùn)體會(huì)
- 2026貴州貴陽(yáng)市安航機(jī)械制造有限公司招聘8人考試重點(diǎn)試題及答案解析
- 2026年空天科技衛(wèi)星互聯(lián)網(wǎng)應(yīng)用報(bào)告及未來(lái)五至十年全球通信創(chuàng)新報(bào)告
- (正式版)DB51∕T 3342-2025 《爐灶用合成液體燃料經(jīng)營(yíng)管理規(guī)范》
- 2025年上海市普通高中學(xué)業(yè)水平等級(jí)性考試地理試卷(含答案)
- 腔鏡器械的清洗與管理
- 江南大學(xué)《食品科學(xué)與工程》考研真題及答案解析
- 眼科:青光眼患者藥物治療指南
- 2025年計(jì)算機(jī)等級(jí)考試(NCRE)一級(jí)人工智能與大模型基礎(chǔ)樣題及參考答案
- 醫(yī)護(hù)服務(wù)意識(shí)培訓(xùn)
- 芬蘭煙熏桑拿體驗(yàn)創(chuàng)新創(chuàng)業(yè)項(xiàng)目商業(yè)計(jì)劃書(shū)
- 航空航天標(biāo)準(zhǔn)(首件檢驗(yàn))AS9102
評(píng)論
0/150
提交評(píng)論