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

下載本文檔

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

文檔簡介

1、第 1章引言 1.第 2章開發(fā)和仿真軟件簡介 2.2.1 開發(fā)軟件Keil C51 uVision22.2.2 仿真軟件Proteus ISIS 2.第 3章總體設(shè)計(jì)方案 4.第 4章系統(tǒng)硬件使用介紹 5.4.1 DS18B20溫度傳感器 5.4.2 單片機(jī)控制電路 7.4.3 顯示器采用 LCD20048.第 5章 系統(tǒng)軟件設(shè)計(jì)主要流程圖 1.05.1 主程序流程圖 1.05.2 計(jì)算溫度流程圖 1.15.3 液晶顯示流程圖 1.25.4 讀出溫度子程序1.3第 6章 系統(tǒng)仿真 1.4.第 7章 總結(jié)與體會(huì) 1.5.主要參考資料1.6.附錄 1.7.5.5 .源程序代碼1.75.6 .軟件仿

2、真圖 2.9課程設(shè)計(jì)說明書第1章引言隨著人們生活水平的不斷提高,單片機(jī)控制無疑是人們追求的目標(biāo)之一,它 所給人帶來的方便也是不可否定的, 其中數(shù)字溫度計(jì)就是一個(gè)典型的例子, 但人 們對(duì)它的要求越來越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè) 施就需要從數(shù)單片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。在 信息采集(傳感器技術(shù))、信息傳輸(通信技術(shù))和信息處理(計(jì)算機(jī)技術(shù))三 大信息技術(shù)中,傳感器屬于信息技術(shù)的前沿尖端產(chǎn)品,尤其是溫度傳感器技術(shù), 在我國各領(lǐng)域已經(jīng)引用的非常廣泛, 可以說是滲透到社會(huì)的每一個(gè)領(lǐng)域, 人民的 生活與環(huán)境的溫度息息相關(guān),在工業(yè)生產(chǎn)過程中需要實(shí)時(shí)測(cè)量溫

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

4、性及安全性、開發(fā)虛擬傳感器和網(wǎng)絡(luò)傳感器、研制單片測(cè)溫 系統(tǒng)等高科技的方向迅速發(fā)展。本次課程設(shè)計(jì),利用Keil和Proteus軟件設(shè)計(jì)和仿真該智能數(shù)字多點(diǎn)測(cè)溫系 統(tǒng)。過程中所用到的主要電路由我們自主設(shè)計(jì)制作,通過查閱資料和借助指導(dǎo)老師最終設(shè)計(jì)出結(jié)構(gòu)合理、美觀,主要電氣指標(biāo)良好,性能穩(wěn)定可靠的電路。以培 養(yǎng)我們嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度,正確的設(shè)計(jì)思想,科學(xué)的設(shè)計(jì)方法和良好的工作作風(fēng), 掌握一定的專業(yè)技能及綜合運(yùn)用基礎(chǔ)理論、基本知識(shí)的能力。34第2章開發(fā)和仿真軟件簡介2.1 開發(fā)軟件 Keil C51 uVision2Keil uVISION2是眾多單片機(jī)應(yīng)用開發(fā)軟件中優(yōu)秀的軟件之一,它支持眾 多不同公司的M

5、CS-51架構(gòu)的芯片,它集編輯,編譯,仿真等于一體,同時(shí)還 支持、PLM、匯編和C語言的程序設(shè)計(jì),界面友好,易學(xué)易用,在調(diào)試程序, 軟件仿真方面也有很強(qiáng)大的功能。Keil C51集成開發(fā)環(huán)境主要由菜單欄、工具欄、源文件編輯窗口、工程窗口和輸出窗口五部分組成。工具欄為一組快捷工具圖標(biāo),主要包括基本文件工具欄、建造工具欄和調(diào)試工具欄,基本文件工具欄包 括新建、打開、拷貝、粘貼等基本操作。建造工具欄主要包括文件編譯、目標(biāo)文 件編譯連接、所有目標(biāo)文件編譯連接、目標(biāo)選項(xiàng)和一個(gè)目標(biāo)選擇窗口。調(diào)試工具 欄位于最后,主要包括一些仿真調(diào)試源程序的基本操作,如單步、復(fù)位、全速運(yùn) 行等。在工具欄下面,默認(rèn)有三個(gè)窗口

6、。左邊的工程窗口包含一個(gè)工程的目標(biāo) (target)、組(group)和項(xiàng)目文件。右邊為源文件編輯窗口,編輯窗口實(shí)質(zhì)上就 是一個(gè)文件編輯器,我們可以在這里對(duì)源文件進(jìn)行編輯、修改、粘貼等。下邊的 為輸出窗口,源文件編譯之后的結(jié)果顯示在輸出窗口中,會(huì)出現(xiàn)通過或錯(cuò)誤(包括錯(cuò)誤類型及行號(hào))的提示。如果通過則會(huì)生成“ HEX”格式的目標(biāo)文件,用于 仿真或燒錄芯片?;经h(huán)境如圖2-1所示:f TVEHLAJ - L1!: I=)file Edit 比e rcyert Qebwg Fgh Peripherals look SVCS Mfirdow belp由值。fTi三川弋&詫囿工I畫承1* -(3當(dāng)殂叫因

7、 熬 林Target 14 %BBC? VJuHsEWM工-:_j Target 1由口 號(hào)口由電燈FMJ戶110D1002ora0040C6g ooe00901 OiOil01?DIMOH01511“TEMPTEMPLEQUTEMPHEQUTEMPHCEQUTEMPLCEQUTEMPFCEQULCD_XEQULCD RSEQULCD_RMEQULCD_ENEQUDQEQUORG 0000HMAIN:MOV SP, #60HMOV A, tfOOHMOV R。,#20H;H EQU 24H;實(shí)源裁25H26H2gH貨溫度值指2AH2BH2FH;LCD字符顯示2 cl;LCD寄存器選號(hào)2 1;L

8、CD廢寫得組2 2允許信號(hào)31. 7QS-O數(shù)據(jù)信;將20H2FH 4原=7川卜叩國 一用加r圖2-1 Keil C51 軟件的運(yùn)行界面2.2 仿真軟件 Proteus ISISProteus軟件是來自英國 Labcenter electronics公司的EDA工具軟件。該軟件 有十幾年的歷史,在全球廣泛使用,除了其具有和其它EDA工具一樣的原理布 圖、PCB自動(dòng)或人工布線及電路仿真的功能外,其革命性的功能是,他的電路仿真是互動(dòng)的,針對(duì)微處理器的應(yīng)用,還可以直接在基于原理圖的虛擬原型上編 程,并實(shí)現(xiàn)軟件源碼級(jí)的實(shí)時(shí)調(diào)試,如有顯示及輸出,還能看到運(yùn)行后輸入輸出 的效果,配合系統(tǒng)配置的虛擬儀器如示

9、波器、 邏輯分析儀等,為用戶建立了完備 的電子設(shè)計(jì)開發(fā)環(huán)境。Proteus ISIS的工作界面是一種標(biāo)準(zhǔn)的 Windows界面。主要包括:標(biāo)題欄、 主菜單、標(biāo)準(zhǔn)工具欄、繪圖工具欄、狀態(tài)欄、對(duì)象選擇按鈕、預(yù)覽對(duì)象方位控制 按鈕、仿真進(jìn)程控制按鈕、預(yù)覽窗口、對(duì)象選擇器窗口、圖形編輯窗口。主要功能是在圖形編輯窗口做出所需的電路圖。軟件的應(yīng)用設(shè)計(jì)界面如圖2-2所示:圖2-2 Proteus 軟件的運(yùn)行界 面第3章總體設(shè)計(jì)方案此次課程設(shè)計(jì)要求設(shè)計(jì)一個(gè)簡易數(shù)字溫度計(jì)。采用 AT89C51單片機(jī)作為系 統(tǒng)的控制電路,負(fù)責(zé)數(shù)據(jù)的采集、處理、發(fā)送??梢圆捎靡恢粶囟葌鞲衅?DS18B20 產(chǎn)生溫度數(shù)據(jù)并發(fā)送給單片

10、機(jī),此傳感器,可以很容易直接讀取被測(cè)溫度值, 進(jìn) 行轉(zhuǎn)換,就可以滿足設(shè)計(jì)要求。顯示部分采用LCD2004顯示器。這種方法電路比較簡單,軟件設(shè)計(jì)也比較簡單??傮w設(shè)計(jì)框圖如下: LCD2004顯示器DS18B20圖3.1總體設(shè)計(jì)框圖第4章系統(tǒng)硬件使用介紹4.1 DS18B20溫度傳感器DS18B20可以程序設(shè)定912位的分辨率,精度為i0.5 C??蛇x更小的封裝 方式,更寬的電壓適用范圍。分辨率設(shè)定,及用戶設(shè)定的報(bào)警溫度存儲(chǔ)在 EPROM 中,掉電后依然保存。溫度傳感器DS18B20弓|腳如圖3所示。8765NC NC NC GNDDS18B20NC NCVDD BQ12348引腳封裝TO 92封

11、裝圖4-1溫度傳感器引腳功能說明:NC :空引腳,懸空不使用;VDD :可選電源腳,電源電壓范圍35.5Vo當(dāng)工作于寄生電源時(shí),止匕 引腳必須接地。DQ :數(shù)據(jù)輸入/輸出腳。漏極開路,常態(tài)下高電平。GND :為電源地DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮 發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。光刻ROM中的64位序列號(hào)是出廠前被光刻好的,它可以看作是該DS18B20 的地址序列碼。64位光刻ROM的排列是:開始8位(28H)是產(chǎn)品類型標(biāo)號(hào), 接著的48位是該DS18B20自身的序列號(hào),最后8位是前面56位的循環(huán)冗余校 驗(yàn)碼(CRC=X8+X5+X4+1

12、)。光刻ROM的作用是使每一個(gè) DS18B20都各不相 同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè) DS18B20的目的。DS18B20中的溫度傳感器可完成對(duì)溫度的測(cè)量,以 12位轉(zhuǎn)化為例:用16位 符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以 0.0625C/LSB形式表達(dá),其中S為符 號(hào)位。這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在18B20的兩個(gè)8比特的RAM中, 二進(jìn)制中的前面5位是符號(hào)位,如果測(cè)得的溫度大于 0,這5位為0,只要將測(cè) 到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于 0,這5位為1,測(cè)到的 數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際溫度。 例如+125C的數(shù)字輸出為 07D

13、0H,+25.0625C 的數(shù)字輸出為 0191H,-25.0625C 的數(shù)字輸出為 FF6FH,-55c 的數(shù)字輸出為FC90H。DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存 RAM和一個(gè)非易失性 的可電擦除的E2RAM,后者存放高溫度和低溫度觸發(fā)器 TH、TL和結(jié)構(gòu)寄存器。暫存存儲(chǔ)器包含了 8個(gè)連續(xù)字節(jié),前兩個(gè)字節(jié)是測(cè)得的溫度信息,第一個(gè)字 節(jié)的內(nèi)容是溫度的低八位,第二個(gè)字節(jié)是溫度的高八位。第三個(gè)和第四個(gè)字節(jié)是 TH、TL的易失性拷貝,第五個(gè)字節(jié)是結(jié)構(gòu)寄存器的易失性拷貝,這三個(gè)字節(jié)的 內(nèi)容在每一次上電復(fù)位時(shí)被刷新。第六、七、八個(gè)字節(jié)用于內(nèi)部計(jì)算。第九個(gè)字 節(jié)是冗余檢驗(yàn)字節(jié)。該字節(jié)各

14、位的意義如下:TM R1 R0 1 1 1 1 1低五位一直都是1 , TM是測(cè)試模式位,用于設(shè)置 DS18B20在工作模式還 是在測(cè)試模式。在DS18B20出廠時(shí)該位被設(shè)置為0,用戶不要去改動(dòng)。R1和R0 用來設(shè)置分辨率,如表1所示:(DS18B20出廠時(shí)被設(shè)置為12位)表1 DS18B20溫度轉(zhuǎn)換時(shí)間表R1R0分辨 率/位溫度最大轉(zhuǎn)向 時(shí)間00993.750110187.510113751112750根據(jù)DS18B20的通訊協(xié)議,主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個(gè) 步驟:每一次讀寫之前都要對(duì) DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條 ROM 指令,最后發(fā)送RAM指令,這樣才能

15、對(duì)DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求 主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號(hào)后等待1660 微秒左右,后發(fā)出60240微秒的存在低脈沖,主 CPU收到此信號(hào)表示復(fù)位成 功。4.2單片機(jī)控制電路控制電路采用AT89C51作為控制電路主體,附加外部震蕩電路和復(fù)位電路本設(shè)計(jì)用到的AT89C51內(nèi)部引腳介紹:6CTi c-J r- 3 r 1 rJ 二 F江,一1* U T4 T F1耳 江4 r-1 ; ir律汩什個(gè)T寸汽z J e Lsgzd E#,曰 Lwjmzd MZd 詈Zd Ld 9 口)9ox 9口詁od 一口震寸OCL UEod mend LL 0O. L

16、d=E山 山卻 N山Sd圖4.2 AT89C51內(nèi)部引腳但EO. W9E0. 口與,L1N 與EdulNiREJP0 : P0 口為一個(gè)8位漏級(jí)開路雙向I/O 口,每腳可吸收 8TTL門電 流。當(dāng)P0 口的管腳第一次寫 1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)地址的低八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng) FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí) P0外部必須 被拉高。本設(shè)計(jì)中使用 P0 口作為輸出口,輸出單片機(jī)處理好的溫度信息到1602液晶顯示中。使用時(shí)必須外接上拉電阻以保證輸出的不是高阻態(tài)。如圖所 示:P1 口: P1 是一個(gè)內(nèi)部提供上拉電阻

17、的8位雙向I/O 口,P1 口緩沖器能接收輸出4TTL門電流。P1 口管腳寫入1后,被內(nèi)部上拉為高,可用作 輸入,P1 口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣 故。在FLASH編程和校驗(yàn)時(shí),P1 作為第八位地址接收。本設(shè)計(jì)中P1 口作為輸出口輸出 1602的控制信號(hào),控制 1602的顯示/EA/VPP :當(dāng)/EA 保持低電平時(shí),則在此期間外部程序存儲(chǔ)器 (0000H-FFFFH ),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式 1時(shí),/EA 將內(nèi)部鎖定為 RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在 FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTA

18、L1 :反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2 :來自反向振蕩器的輸出。本設(shè)計(jì)中P0 口需要接10k上拉電阻,否則為P0輸出高阻態(tài)。震蕩電路采用石英晶振接單片機(jī) XTAL1與XTAL2端口構(gòu)成內(nèi)部震蕩方 式。電容C1,C2起穩(wěn)定震蕩頻率、快速起震的作用,電容值選用33pF。內(nèi)部振蕩的方式所得時(shí)鐘信號(hào)比較穩(wěn)定,電路中使用較多。33pTEXT:PSEN ALE EARST0 12 3 fa I .11 1. .1 pp p p圖4.4外部震蕩電路RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持 RST腳兩個(gè)機(jī)器周期 的高電平時(shí)間。復(fù)位電路采用的是開關(guān)復(fù)位方式,接單片機(jī)RST端口。C3

19、IDu、:T曰E, | 一-czi_R9C O- Ik圖4.5復(fù)位電路:rn4.3顯示器采用 LCD2004圖4.6 LCD1602引腳圖2004采用標(biāo)準(zhǔn)的16腳接口,其中:第1腳:VSS為電源地第2腳:VDD接5V電源正極第3腳:V0為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電 源時(shí)對(duì)比度最高(對(duì)比度過高時(shí)會(huì)產(chǎn)生鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對(duì)比度)。第4腳:RS為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇 指令寄存器。接單片機(jī)P2.5 口。第5腳:RW為讀寫信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫 操作。接單片機(jī)P2.6 口。第6腳:E(或E

20、N)端為使能(enable附。接單片機(jī)P2.7 口。第7-14腳:D0-D7為8位雙向數(shù)據(jù)端。接單片機(jī) P0 口。1602通過D0D7的8位數(shù)據(jù)端傳輸數(shù)據(jù)和指令。顯示模式設(shè)置:(初始化)0011 0000 0x38設(shè)置20 M顯示,8位數(shù)據(jù)接口 ;顯示開關(guān)及光標(biāo)設(shè)置:(初始化)0000 1DCB D顯示(1有效)、C光標(biāo)顯示(1有效)、B光標(biāo)閃爍(1有效)0000 01NS N=1(讀或?qū)懸粋€(gè)字符后地址指針加 1 &光標(biāo)加1), N=0(讀或?qū)懸?個(gè)字符后地址指針減1 &光標(biāo)減1), S=1且N=1 (當(dāng)寫一個(gè)字符后,整屏顯示 左移),S=0當(dāng)寫一個(gè)字符后,整屏顯示不移動(dòng),數(shù)據(jù)指針設(shè)H,所以數(shù)

21、據(jù)地址為 80H+地址碼(0-27H , 40-67H)其他設(shè)置:置數(shù)據(jù)首地址為80, 01H(顯示清屏,數(shù)據(jù)指針=0,所有顯示=0); 02H(顯示回車,數(shù)據(jù)指針=0)第5章系統(tǒng)軟件設(shè)計(jì)主要流程圖5.1 主程序流程圖主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20的測(cè)量的當(dāng)前溫度值。圖5.1主程序流程圖5.2 計(jì)算溫度流程圖計(jì)算溫度子程序是將所輸入的數(shù)據(jù)進(jìn)行處理, 包括正負(fù)判定,小數(shù)位、百位、 十位、個(gè)位計(jì)算圖5.2計(jì)算溫度流程圖5.3 液晶顯示流程圖液晶顯示是將LCD1602進(jìn)行初始化并且確定好顯示位,并且將內(nèi)部存儲(chǔ)的 數(shù)據(jù)信息進(jìn)行顯示。圖5.3液晶顯示流程圖5.4 讀出溫度

22、子程序讀出溫度子程序的主要功能是讀出 RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC 校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。其程序流程圖如下所示圖5.4讀出溫度流程圖第6章系統(tǒng)仿真LulWtH 4L3022D238-0(3.e*cDflTE:2aiG-L-26HHCKKjn Foma raag raiPJSi 陽門” rna.*jB KlRJK PQ7 rAMIZOE F2.1MA FZNAU,工一自12 rzafAnF7.TM-KHim M.VISC Fl Jva.a1H3F落 r ”g mv, FiimaP33W ra+rra H*Ti ”TTF3.iTJeFiL&.W-cjc圖6-1第7章總結(jié)與

23、體會(huì)經(jīng)過將近一周的單片機(jī)課程設(shè)計(jì),最終完成了我的數(shù)字溫度計(jì)的設(shè)計(jì),雖然 沒有完全達(dá)到設(shè)計(jì)要求(特別是系統(tǒng)初始化過程中沒有消除 85.0的初始顯示), 但通過努力把程序弄懂修改好并且仿真實(shí)現(xiàn)了,還是很高興的。在本次設(shè)計(jì)的過程中,我發(fā)現(xiàn)很多的問題,雖然以前還做過類似的設(shè)計(jì)但這 次設(shè)計(jì)真的讓我長進(jìn)了很多,單片機(jī)課程設(shè)計(jì)重點(diǎn)就在于軟件算法的設(shè)計(jì), 需要 有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個(gè)程序并不是一 件簡單的事,特別是這么長的程序,需要修改調(diào)試。我發(fā)現(xiàn)在單片機(jī)的學(xué)習(xí)過程 中,只有我們?nèi)ピ囍隽?,才能真正的掌握,只學(xué)習(xí)理論有些東西是很難理解的, 更談不上掌握。從這次的課程設(shè)計(jì)中,

24、我意識(shí)到在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們 所學(xué)的理論知識(shí)用到實(shí)際當(dāng)中,學(xué)習(xí)單機(jī)片機(jī)更是如此,程序只有在經(jīng)常的寫與 讀的過程中才能提高,這就是我在這次課程設(shè)計(jì)中的最大收獲。 通過這次對(duì)數(shù)字 溫度計(jì)的設(shè)計(jì)與制作,讓我了解了設(shè)計(jì)電路的程序,也讓我了解了關(guān)于數(shù)字溫度 計(jì)的原理與設(shè)計(jì)理念,要設(shè)計(jì)一個(gè)電路時(shí)我們應(yīng)該大膽嘗試小心求證。 在確定自 己的想法后要進(jìn)行一步步地仿真。在此感謝我們的張國旭老師,老師嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、 學(xué)習(xí)中的榜樣;老師循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪;這次簡易數(shù)字溫度計(jì)設(shè)計(jì)的每個(gè)實(shí)驗(yàn)細(xì)節(jié)和每個(gè)數(shù)據(jù),都離不開老師您的細(xì)心指導(dǎo)。而您開朗的個(gè)性和寬容

25、的態(tài)度,幫助我能夠很順利的完成了這次課程設(shè)計(jì)。同時(shí)感謝對(duì)我?guī)椭^的同學(xué)們,謝謝你們對(duì)我的幫助和支持,讓我感受到同 學(xué)的友誼。主要參考資料1肖看,李群芳.單片機(jī)原理、接口及應(yīng)用清華大學(xué)出版社.20102樓然苗.單片機(jī)課程設(shè)計(jì)指導(dǎo).北京航空航天出版社.20023孫育才.MCS-51系列單片微型計(jì)算機(jī)及其應(yīng)用.東南大學(xué)出版社4王法能.單片機(jī)原理及應(yīng)用.科學(xué)出版社.20045李飛光.單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo).北京航空航天大學(xué)出版社.2004附錄附錄一.源程序代碼TEMP_ZH EQU 24H;實(shí)測(cè)溫度值存放單元TEMPL EQU 25HTEMPH EQU 26HTEMPHC EQU 29H;正、負(fù)溫度值

26、標(biāo)記TEMPLC EQU 2AHTEMPFCEQU2BHLCD_XEQU2FHLCD_RSEQUP2.5LCD_RWEQUP2.6LCD_ENEQUP2.7;LCD字符顯示位置;LCD寄存器選擇信號(hào);LCD讀寫信號(hào);LCD允許信號(hào)DQEQU P3.2;DS18B20 數(shù)據(jù)ORG0000HMAIN:MOVSP,#60HMOVA,#00HMOVR0,#20H;將20H2FH單元清零MOVR1,#10HCLEAR:MOVR0,AINC R0DJNZR1,CLEARLCALLSET_LCDSTART:LCALLRST;調(diào)用18B20復(fù)位子程序LCALLMENU_OK;DS1820存在,調(diào)用顯示正確信息

27、子程序LCALLTEMP_BJ;顯示溫度標(biāo)記JMPSTART2START2:LCALLRST;調(diào)用DS18B20復(fù)位子程序MOVA,#0CCH;跳過ROM匹配命令LCALLWRITEMOVA,#44H;溫度轉(zhuǎn)換前令LCALLWRITELCALLRSTMOVA,#0CCH;跳過ROM匹配LCALLWRITEMOV A,#0BEHLCALL WRITELCALL READLCALL CONVTEMPLCALL DISPBCDLCALL CONVSJMP START2;讀溫度命令調(diào)用DS18B20數(shù)據(jù)讀取操作子程序 調(diào)用溫度數(shù)據(jù)BCD碼處理子程序 調(diào)用溫度數(shù)據(jù)顯示子程序調(diào)用LCD顯示處理子程序;循環(huán)

28、.*顯示溫度標(biāo)記子程序*TEMP_BJ: MOV A,#0CBHLCALL WCOMMOV DPTR,#BJ1;指針指至U顯示消息MOV R1,#0MOV R0,#3BBJJ1:MOV A,R1MOVC A,A+DPTRLCALL WDATAINC R1DJNZ R0,BBJJ1RETBJ1:DB 00H,C;*顯示正確信息子程序 *MENU_OK: MOV DPTR,#M_OK1;指針指到顯示消息MOV A,#1;顯示在第一行LCALL LCD_PRINTMOV DPTR,#M_OK2MOV A,#2LCALL LCD_PRINTMOV DPTR,#M_OK3MOV A,#3LCALL LC

29、D_PRINTRETM_OK1:DB OK4130220238,0M_OK2:DB,0DATE:2016-1-26 ,0M_OK3:DB;*DS18B20RST: SETB DQNOPCLR DQMOV R0,#6BHMOV R1,#04HTSR1: DJNZ R0,$MOV R0,#6BHDJNZ R1,TSR1 SETB DQNOPNOPNOPTSR5: MOV R0,#06BHTSR6:DJNZ R0,$TSR7:SETB DQ復(fù)位子程序(初始化)*;主機(jī)發(fā)出延時(shí)復(fù)位低脈沖;拉高數(shù)據(jù)線;時(shí)序要求延時(shí)一段時(shí)間RET.*將自定義字符寫入 LCD的CGRAM 中*STORE_DATA:MOV

30、A,#40HLCALL WCOMMOVMOVMOVS_DATA: MOVMOVCLCALLR2,#08HDPTR,#D_DATAR3,#00HA,R3A,A+DPTRWDATA;寫入數(shù)據(jù).*WRITE: MOV R2,#8CLR CINC R3DJNZ R2,S_DATARETD_DATA: DB 0CH,12H,12H,0CH,00H,00H,00H,00HDS18B20數(shù)據(jù)寫入操作子程序 *;一共8位數(shù)據(jù)WR1:CLR DQ;開始寫入DS18B20總線要處于復(fù)位(低)狀態(tài)MOV R3,#07DJNZ R3,$RRC AMOV DQ,CMOV R3,#3CHDJNZ R3,$;總線復(fù)位保持1

31、6微妙以上;把一個(gè)字節(jié)DATA分成8個(gè)BIT環(huán)移給C;寫入一位SETB DQ;等待100微妙;重新釋放總線NOPDJNZ R2,WR1SETB DQRET.*DS18B20READ:MOV R4,#4數(shù)據(jù)讀取操作子程序*;將溫度低位、高位、TH、TL從DS18B20中讀出MOV R1,#TEMPL;存入 25H、26H、27H、28H 單元RE00:MOV R2,#8RE01:CLR CYSETB DQNOPNOPCLR DQNOPNOP;讀前總線保持為低NOPSETB DQ MOV R3,#09 DJNZ R3,$ MOV C,DQ MOV R3,#3CH DJNZ R3,$ RRC ADJ

32、NZ R2,RE01 MOV R1,A INC R1DJNZ R4,RE00 RET;開始讀總線釋放;延時(shí)18微妙;從DS18B20總線讀得一位;等待100微妙;把讀得的位值環(huán)移給A;讀下一位.*溫度值BCD碼處理子程序*CONVTEMP: MOV A,TEMPH ANL A,#08H JZ TEMPC1 CLR C MOV A,TEMPL CPL A ADD A,#01H MOV TEMPL,A MOV A,TEMPH CPL A ADDC A,#00H MOV TEMPH,A MOV MOV SJMP TEMPC1: MOV MOV TEMPC11: MOV;判溫度是否零下;溫度零上轉(zhuǎn);二

33、進(jìn)制數(shù)求補(bǔ)(雙字節(jié));取反加1TEMPHC,#0BH ;負(fù)溫度標(biāo)志TEMPFC,#0BHTEMPC11TEMPHC,#0AHTEMPFC,#0AH A,TEMPHC;正溫度標(biāo)志SWAP AMOV TEMPHC,AMOV A,TEMPLANL A,#0FH;乘 0.0625MOV DPTR,#TEMPDOTTABMOVC A,A+DPTRMOV TEMPLC,A BCDMOV A,TEMPL ANL A,#0F0H SWAP A MOV TEMPL,A MOV A,TEMPH ANL A,#0FH SWAP A ORL A,TEMPL;TEMPLC LOW=小數(shù)部分;整數(shù)部分;取出高四位;取出低

34、四位;重新組合BCDMOV TEMP_ZH,A LCALL HEX2BCD1 MOV TEMPL,A ANL A,#0F0H SWAP A ORL A,TEMPHCMOV TEMPHC,A MOV A,TEMPL ANL A,#0FH SWAP A ORL A,TEMPLC MOV TEMPLC,A MOV A,R4 JZ TEMPC12;TEMPHC LOW =十位數(shù);TEMPLC HI = 個(gè)位數(shù) BCDANL A,#0FH SWAP A MOV R4,A MOV A,TEMPHC;TEMPHC HI =百位數(shù) BCDANL A,#0FH ORL A,R4 MOV TEMPHC,ATEMP

35、C12:RET;*二-十進(jìn)制轉(zhuǎn)換子程序 *HEX2BCD1: MOV B,#064HDIV ABMOV R4,AMOV A,#0AHXCH A,BDIV ABSWAP AORL A,BRETTEMPDOTTAB:DB00H,00H,01H,01H,02H,03H,03H,04H ;小數(shù)部分碼表DB05H,05H,06H,06H,07H,08H,08H,09H;* lcd顯示子程序 *SHOW_DIG2H: MOV B,#100DIV ABADD A,#30HPUSH BMOV B,LCD_XLCALL LCDP2POP BMOV A,#0AHXCH A,BDIV ABADD A,#30HINC

36、 LCD_XPUSH BMOV B,LCD_XLCALL LCDP2POP BINC LCD_XMOV A,BMOV B,LCD_XADD A,#30HLCALL LCDP2RETSHOW_DIG2L:MOV B,#100DIV ABMOV A,#0AHXCH A,BDIV ABADD A,#30HPUSH BMOV B,LCD_XLCALL LCDP2POP BINC LCD_X MOV A,B MOV B,LCD_X ADD A,#30HLCALL LCDP2 RET;* ;顯示區(qū)BCD碼溫度值刷新子程序*DISPBCD: MOVA,TEMPLCANLA,#0FHMOV70H,A;小數(shù)位M

37、OVA,TEMPLCSWAPAANLA,#0FHMOV71H,A;個(gè)位MOVA,TEMPHCANLA,#0FHMOV72H,A;十位MOVA,TEMPHCSWAPAANLA,#0FHMOV73H,A;百位RET:* LCD顯示數(shù)據(jù)處理子程序*CONV:MOVA,73H;加載百位數(shù)據(jù)MOVLCD_X,#6;設(shè)置位置CJNE A,#1,CONV1JMP CONV2CONV1:CJNE A,#0BH,CONV11MOV A,#-;-號(hào)顯示JMP CONV111CONV11: MOV A,#0;+號(hào)不顯示CONV111: MOV B,LCD_XLCALL LCDP2CONV2:CONV3:JMP CO

38、NV3LCALL SHOW DIG2;顯示數(shù)據(jù)INCLCD XMOVA,72H;十位LCALLSHOWDIG2INC LCD XMOV A,71H;個(gè)位LCALL SHOWDIG2INCLCDXMOVA,#.MOVB,LCD_XLCALLLCDP2MOVA,70HINC LCDX;加載小數(shù)點(diǎn)位;設(shè)置顯示位置LCALLSHOW DIG2;顯示數(shù)據(jù)RET.*第二行顯示數(shù)字子程序*SHOWDIG2:ADDA,#30HMOVB,LCD_XLCALLLCDP2RET.*第二行顯示數(shù)字子程序*LCDP2: PUSHACCMOV A,BADD A,#0C0HLCALL WCOM;設(shè)置顯示地址;設(shè)置LCD的第二行地址;寫入命令POP ACCLCALLWDATA;由堆棧取出A;寫入數(shù)據(jù)RET.*對(duì)LCD做初始化設(shè)置及測(cè)試*SET LCD: CLRLCD ENLCALLINIT LCD;初始化LCDLCALLSTORE_DATA ;將自定義字符存入 LCD的CGRAMRET.*LCD初始化*;開顯小,顯小光標(biāo),光標(biāo)不閃爍INIT_LCD: MOV A,#38H LCALL WCOM LCALL DE

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論