![](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/22/a5c26ab9-1090-42dd-b3d4-e6bbf5445575/a5c26ab9-1090-42dd-b3d4-e6bbf5445575pic.jpg)
![單片機(jī)課程設(shè)計(jì)---溫度測(cè)試系統(tǒng)設(shè)計(jì)_第1頁(yè)](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/22/a5c26ab9-1090-42dd-b3d4-e6bbf5445575/a5c26ab9-1090-42dd-b3d4-e6bbf54455751.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 一 概述</b></p><p> 信息科學(xué)和微電子技術(shù)的飛速發(fā)展給控制領(lǐng)域帶來(lái)了巨大的飛躍,控制技術(shù)更加趨向自動(dòng)化和智能化,為無(wú)數(shù)的使用者帶來(lái)了方便。在控制領(lǐng)域里,溫度是一個(gè)常見(jiàn)的名詞,然而它所帶來(lái)的技術(shù)問(wèn)題和所起的作用卻是非同一般的。在控制領(lǐng)域中,對(duì)溫度的控制有著舉足輕重的作用。例如陶瓷的燒烤,只有控制住溫度的適度,才能制作出一件完美的藝術(shù)品,否則只是一件
2、廢品;還有如釀酒的過(guò)程,也需要對(duì)溫度進(jìn)行控制??梢?jiàn),在生活的許多方方面面都有著對(duì)溫度進(jìn)行感知和控制的需要。</p><p> 溫度是一個(gè)十分重要的物理量,對(duì)它的測(cè)量與控制有十分重要的意義。隨著現(xiàn)代工農(nóng)業(yè)技術(shù)的發(fā)展及人們對(duì)生活環(huán)境要求的提高,人們也迫切需要檢測(cè)與控制溫度。在人類的生活環(huán)境中,溫度扮演著極其重要的角色。無(wú)論你生活在哪里,從事什么工作,無(wú)時(shí)無(wú)刻不在與溫度打著交道。在冶金、鋼鐵、石化、水泥、玻璃、醫(yī)藥等
3、等行業(yè),可以說(shuō)幾乎80%的工業(yè)部門都不得不考慮著溫度的因素。溫度對(duì)于工業(yè)如此重要,由此推進(jìn)了溫度傳感器的發(fā)展。 </p><p> 測(cè)量溫度的基本方法是使用溫度計(jì)直接讀取溫度。最常見(jiàn)到的測(cè)量溫度的工具是各種各樣的溫度計(jì),例如,水銀玻璃溫度計(jì),酒精溫度計(jì),熱電偶或熱電阻溫度計(jì)等。它們常常以刻度的形式表示溫度的高低,人們必須通過(guò)讀取刻度值的多少來(lái)測(cè)量溫度。而在傳統(tǒng)的模擬信號(hào)溫度測(cè)量系統(tǒng)中,測(cè)溫電路的電磁環(huán)境非
4、常惡劣,各種干擾信號(hào)較強(qiáng),模擬溫度信號(hào)容易受到干擾而產(chǎn)生測(cè)量誤差,影響測(cè)量精度,不能滿足數(shù)字化時(shí)代的需求。利用單片機(jī)和溫度傳感器構(gòu)成的電子式智能溫度計(jì)精度高、抗干擾能力強(qiáng),可擴(kuò)展性強(qiáng)、集成方便得到了廣泛的應(yīng)用。而且可以直接測(cè)量溫度,得到溫度的數(shù)字值,既簡(jiǎn)單方便,又直觀準(zhǔn)確,新型數(shù)字溫度傳感器是溫度計(jì)設(shè)計(jì)的最有效方案。</p><p> 在生活和生產(chǎn)中,經(jīng)常要用到一些測(cè)溫設(shè)備。但是傳統(tǒng)的測(cè)溫設(shè)備具有制作成本高、硬
5、件電路和軟件設(shè)計(jì)復(fù)雜等缺點(diǎn)。基于AT89C51單片機(jī)的數(shù)字溫度計(jì)具有制作簡(jiǎn)單、成本低、讀數(shù)方便、測(cè)溫范圍廣和測(cè)溫準(zhǔn)確等優(yōu)點(diǎn),應(yīng)用前景廣闊。</p><p> 大多單片機(jī)接口輸入的信號(hào)是數(shù)字信號(hào),或有帶A/D轉(zhuǎn)換的高端單片機(jī)也可以輸入模擬信號(hào)。由單片機(jī)獲取非電信號(hào)的溫度信息,必須通過(guò)溫度傳感器。傳統(tǒng)的溫度測(cè)量雖多以熱敏電阻作為溫度傳感器。但是,熱敏電阻的可靠性較差、測(cè)量溫度精度較低,而且還需經(jīng)A/D轉(zhuǎn)換成數(shù)字信號(hào)
6、后才能由單片機(jī)進(jìn)行處理。因此,使用數(shù)字溫度傳感器DS18B20了簡(jiǎn)化硬件設(shè)計(jì)、方便單片機(jī)讀取數(shù)據(jù)、節(jié)約成本。 </p><p> 本文主要包括兩個(gè)方面的設(shè)計(jì):一方面是硬件電路的設(shè)計(jì),另一方面是系統(tǒng)程序的設(shè)計(jì)。其中,硬件電路各部分組成如下:中央控制器采用單片機(jī)AT89C51,溫度檢測(cè)部分采用DS18B20溫度傳感器,用四位七段數(shù)碼管作為顯示器。其次,系統(tǒng)軟件程序包括主程序,溫度值讀取、轉(zhuǎn)換程序,顯示數(shù)據(jù)程序等。該
7、溫度計(jì)整體功能的實(shí)現(xiàn)是通過(guò)溫度傳感器DS18B20采集溫度信號(hào)送該給單片機(jī)處理,單片機(jī)再把溫度數(shù)據(jù)送液晶顯示器1602顯示。</p><p><b> 二 系統(tǒng)設(shè)計(jì)</b></p><p><b> 2.1功能簡(jiǎn)介</b></p><p> 數(shù)碼管直接顯示DS18B20所測(cè)量的溫度,超出-50~110℃范圍時(shí)喇叭報(bào)警
8、并且數(shù)碼管開(kāi)始閃爍,在溫度范圍內(nèi)時(shí)喇叭停止報(bào)警并且數(shù)碼管停止閃爍,運(yùn)行期間可以隨時(shí)進(jìn)行復(fù)位操作。</p><p><b> 2.2設(shè)計(jì)思路</b></p><p> AT89C51作為溫度測(cè)試系統(tǒng)設(shè)計(jì)的核心器件,具有低電壓供電和體積小等特點(diǎn)。該器件是INTEL公司生產(chǎn)的MCS-5l系列單片機(jī)中的基礎(chǔ)產(chǎn)品,采用了可靠的CMOS工藝制造技術(shù),具有高性能的8位單片機(jī),屬
9、于標(biāo)準(zhǔn)的MCS-51的CMOS產(chǎn)品。芯片中集成了CPU、RAM、ROM、定時(shí)/計(jì)數(shù)器和多功能I/O接口等計(jì)算機(jī)所需的基本功能部件。程序存儲(chǔ)在單片機(jī)的程序存儲(chǔ)器中,運(yùn)行過(guò)程由程序控制。</p><p> 時(shí)鐘信號(hào)用來(lái)控制單片機(jī)內(nèi)各種微操作的時(shí)間基準(zhǔn),通常有兩種形式得到,即內(nèi)部震蕩方式和外部震蕩方式。內(nèi)部震蕩方式所得的信號(hào)比較穩(wěn)定,故設(shè)計(jì)數(shù)字溫度計(jì)的時(shí)鐘信號(hào)選用內(nèi)部震蕩方式,晶振選用12MHZ。</p>
10、<p> 復(fù)位電路使片內(nèi)單片機(jī)的片內(nèi)寄存器初始化,使單片機(jī)從一種確定的狀態(tài)開(kāi)始運(yùn)行。復(fù)位電路有兩種基本形式,即上電復(fù)位和開(kāi)關(guān)復(fù)位。為了保證溫度計(jì)的正常工作,采用上電且開(kāi)關(guān)復(fù)位,也就是CR復(fù)位。</p><p> 溫度傳感器選用達(dá)拉斯公司的單線數(shù)字溫度傳感芯片DS18B20。它將地址線、數(shù)據(jù)線和控制線合為一根雙向串行傳輸數(shù)據(jù)的信號(hào)線,允許在這根信號(hào)線上掛接多個(gè)DS18B20。每個(gè)芯片內(nèi)有一個(gè)64位
11、的ROM,其中存有各個(gè)器件自身的序列號(hào),作為器件獨(dú)有的ID號(hào)碼。其測(cè)溫范圍是-55~128℃,測(cè)溫分辨率在12位時(shí)精度為0.0625℃。DS18B20簡(jiǎn)化了溫度器件與計(jì)算機(jī)的接口電路,使得電路簡(jiǎn)單,使用更加方便。</p><p> 顯示部分使用4位LED數(shù)碼管來(lái)作為溫度的直接輸出,使用1位喇叭作為報(bào)警燈,當(dāng)溫度超出-50~110℃時(shí),喇叭報(bào)警和數(shù)碼管閃爍來(lái)提示。</p><p> 采用
12、單片機(jī)匯編程序語(yǔ)言設(shè)計(jì)溫度計(jì)的程序,對(duì)DS18B20進(jìn)行初始化、讀、寫(xiě),讀取溫度,數(shù)據(jù)的轉(zhuǎn)換,溫度顯示和報(bào)警處理等等。</p><p><b> 2.3 芯片器材</b></p><p> 主機(jī):?jiǎn)纹瑱C(jī)AT89C51一片;溫度傳感器:DS18B20一片,顯示電路:共陰極七段數(shù)碼管四片,;報(bào)警電路:,反向驅(qū)動(dòng)74LS04一片;時(shí)鐘電路:電容兩個(gè),晶振片一個(gè);復(fù)位電路
13、:電容一個(gè),開(kāi)關(guān)按鈕一個(gè);導(dǎo)線若干,+5V電源等等。</p><p><b> 三 主要元器件介紹</b></p><p> 3.1主控芯片AT89C52</p><p> 圖1 AT89C51引腳圖</p><p> AT89C51是一個(gè)低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含4kByteISP(In-sys
14、tem programmable)的可反復(fù)擦寫(xiě)1000次的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī)的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案。</p><p> AT89C51具有如下特點(diǎn):40個(gè)引腳,4k Bytes F
15、lash片內(nèi)程序存儲(chǔ)器,128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。</p><p> 此外,AT89S51設(shè)計(jì)和配置了振蕩頻率可為0Hz并可通過(guò)軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM定時(shí)計(jì)數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式
16、凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時(shí)該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。</p><p><b> 其主要功能特性:</b></p><p> 兼容MCS-51指令系統(tǒng) 4k可反復(fù)擦寫(xiě)(>1000次)ISP Flash ROM</p>&l
17、t;p> 32個(gè)雙向I/O口 4.5-5.5V工作電壓</p><p> 2個(gè)16位可編程定時(shí)/計(jì)數(shù)器 時(shí)鐘頻率0-33MHz</p><p> 全雙工UART串行中斷口線 128x8 bit內(nèi)部RAM</p><p> 2個(gè)外部中斷源 低功耗空閑和
18、省電模式</p><p> 中斷喚醒省電模式 3級(jí)加密位</p><p> 看門狗(WDT)電路 軟件設(shè)置空閑和省電功能</p><p> 靈活的ISP字節(jié)和分頁(yè)編程 雙數(shù)據(jù)寄存器指針 </p><p> 可以看出AT89C51提供以下標(biāo)準(zhǔn)功能:4K字節(jié)
19、Flash閃速存儲(chǔ)器,128字節(jié)內(nèi)部RAM,32個(gè)I/O口線,看門狗(WDT),兩個(gè)數(shù)據(jù)指針,兩個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘。同時(shí), AT89S51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)期,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式何在RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直接到一個(gè)硬件復(fù)位。&
20、lt;/p><p> 下面是本次設(shè)計(jì)所用到的兩組I/O口:</p><p> P0口(39—32):是一組8位漏極開(kāi)路行雙向I/O口,也既地址/數(shù)據(jù)總線復(fù)用口??勺鳛檩敵隹谑褂脮r(shí),每位可吸收電流的方式驅(qū)動(dòng)8個(gè)TTL邏輯電路,對(duì)端口寫(xiě)“1”可作為高阻抗輸入輸入端用。在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問(wèn)期間激活內(nèi)部上拉電阻。在Flash編程時(shí),PO口接收
21、指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求接上拉電阻。</p><p> P3口(10—17):是一組帶有內(nèi)部上拉電阻的8位雙向I/O口,,P1的輸入緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)P3口寫(xiě)入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸出端口。</p><p> XTAL1(19)和XTAL2(18):使用內(nèi)部振蕩電路時(shí),用來(lái)接石英晶體和電容;使用外部時(shí)鐘
22、時(shí),用來(lái)輸入時(shí)鐘脈沖。</p><p><b> 3.2溫度獲取</b></p><p> DS18B20測(cè)溫范圍在-55~+125℃;轉(zhuǎn)換精度9~12位進(jìn)制數(shù),可編程確定轉(zhuǎn)換的位數(shù);測(cè)溫分辨率為9位精度為0.5℃,12位精度為0.0625℃;轉(zhuǎn)換時(shí)間:9位精度為93.75ms、10位精度為187.5 ms、12位精度為750 ms;內(nèi)部有溫度上、下限告警設(shè)置。D
23、S18B20內(nèi)部結(jié)構(gòu)[2]如圖3所示:</p><p> 圖2 DS18B20內(nèi)部結(jié)構(gòu)</p><p> DS18B20功能命令[2]如表1所示:</p><p> 表1 DS18B20功能命令表</p><p> 其連線使用如圖3所示(2接P3.7):</p><p> 圖4 DS18B20連線圖</
24、p><p> 由于DS18B20單線通信功能是分時(shí)完成的,所以有嚴(yán)格的時(shí)隙概念,讀寫(xiě)時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲(chǔ)器操作命令→處理數(shù)據(jù)。</p><p><b> 3.3溫度顯示電路</b></p><p> 四位共陰極數(shù)碼管,能夠顯示帶一位小
25、數(shù)的正負(fù)溫度。零下時(shí):1顯示負(fù)號(hào),2顯示十位,3顯示個(gè)位,4顯示小數(shù)位。零上時(shí):1顯示百位,2顯示十位,3顯示個(gè)位,4顯示小數(shù)位。當(dāng)溫度超過(guò)109.5或低于49.5時(shí),四個(gè)數(shù)碼閃爍。</p><p><b> 圖8 總體電路 </b></p><p><b> 四 軟件設(shè)計(jì)</b></p><p><b>
26、 4.1程序流程圖</b></p><p><b> 圖9 程序流程圖</b></p><p> 主程序如下:XIAO_BIT EQU 30H ;存?zhèn)€位數(shù)據(jù)單元</p><p> GE_BIT EQU 31H ;存?zhèn)€位數(shù)據(jù)單元</p><p> SHI_BIT EQU 32H ;存十位數(shù)據(jù)單元&
27、lt;/p><p> BAI_BIT EQU 33H ;存百位數(shù)據(jù)單元</p><p> DI_8BIT EQU 34H ;低8位</p><p> GAO_8BIT EQU 35H ;高8位</p><p> DQ EQU P3.7 ;數(shù)據(jù)通信線</p><p><b> ORG 000
28、0H</b></p><p> LJMP START</p><p><b> ORG 0030H</b></p><p> START: MOV SP,#60H</p><p> LCALL ZHUANHUAN ;調(diào)用讀溫度子程序</p><p> LCALL
29、CHULI</p><p> LCALL DISPLAY ;調(diào)用數(shù)碼管顯示子程序</p><p> LJMP START</p><p><b> 4.2初始化子程序</b></p><p> 使用DS18B20時(shí),單片機(jī)先向DS18B20送出復(fù)位信號(hào),單片機(jī)將數(shù)據(jù)拉低并保持480~960μs;再釋放數(shù)據(jù)線
30、,由上拉電阻拉高15~60μs;然后再由DS18B20發(fā)出低電平60~240μs,就完成了復(fù)位操作。</p><p> DS18B20復(fù)位初始化子程序</p><p> INIT_1820: SETB DQ</p><p><b> NOP</b></p><p><b> CLR DQ</b&
31、gt;</p><p><b> MOV R1,#3</b></p><p> DU_1: MOV R0,#107</p><p><b> DJNZ R0,$</b></p><p> DJNZ R1,DU_1</p><p> SETB DQ
32、 ;拉高數(shù)據(jù)線</p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p> MOV R0,#25H</p><p> DU_2: JNB D
33、Q,DU_3 ;等待DS18B20回應(yīng)</p><p> DJNZ R0,DU_2</p><p> LJMP DU_4 ;延時(shí)</p><p> DU_3: SETB F0 ;置標(biāo)志位,表示DS1820存在</p><p><b> LJMP DU_5</b>&l
34、t;/p><p> DU_4: CLR F0 ;清標(biāo)志位,表示DS1820不存在</p><p><b> LJMP DU_7</b></p><p> DU_5: MOV R0,#117</p><p> DU_6: DJNZ R0,DU_6 ;時(shí)序要求延
35、時(shí)一段時(shí)間</p><p> DU_7: SETB DQ</p><p><b> RET</b></p><p><b> 4.3讀子程序</b></p><p> 讀數(shù)據(jù)之前,單片機(jī)先將數(shù)據(jù)線拉低,再釋放。DS18B20在數(shù)據(jù)線從高電平跳低后15μs內(nèi)將數(shù)據(jù)送到數(shù)據(jù)線上。單片
36、機(jī)在15μs后讀數(shù)據(jù)線。</p><p> READ_1820: MOV R4,#2 ;將溫度高位和低位從DS18B20中讀出</p><p> MOV R1,#DI_8BIT ;低位存入DI_8BIT,高位存入GAO_8BIT</p><p> RE0: MOV R2,#8 ;數(shù)據(jù)一共有8位</
37、p><p> RE1: CLR C</p><p><b> SETB DQ</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> CLR DQ</b&g
38、t;</p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> SETB DQ</b></p><p><b> MO
39、V R3,#9</b></p><p> RE2: DJNZ R3,RE2</p><p><b> MOV C,DQ</b></p><p> MOV R3,#23</p><p> RE3: DJNZ R3,RE3</p><p><b&g
40、t; RRC A</b></p><p> DJNZ R2,RE1</p><p><b> MOV @R1,A</b></p><p><b> INC R1</b></p><p> DJNZ R4,RE0</p><p><b> RE
41、T</b></p><p> ;讀出后轉(zhuǎn)換的溫度值</p><p> ZHUANHUAN: LCALL INIT_1820 ;先復(fù)位DS18B20</p><p><b> JB F0,ZH1</b></p><p> LJMP START ;判斷DS
42、1820是否存在?若DS18B20不存在則返回</p><p> ZH1: MOV A,#0CCH ;跳過(guò)ROM匹配</p><p> LCALL WRITE_1820</p><p> MOV A,#44H ;發(fā)出溫度轉(zhuǎn)換命令</p><p> LCALL WRITE_182
43、0</p><p> LCALL DISPLAY ;等待AD轉(zhuǎn)換結(jié)束</p><p> LCALL INIT_1820 ;準(zhǔn)備讀溫度前先復(fù)位</p><p> MOV A,#0CCH ;跳過(guò)ROM匹配</p><p> LCALL WRITE_1820</p><p&
44、gt; MOV A,#0BEH ;發(fā)出讀溫度命令</p><p> LCALL WRITE_1820</p><p> LCALL READ_1820</p><p><b> RET</b></p><p><b> 4.4 寫(xiě)子程序</b></p>&
45、lt;p> 在單片機(jī)對(duì)DS18B20寫(xiě)數(shù)據(jù)時(shí),應(yīng)先將數(shù)據(jù)線拉低1μs以上,再寫(xiě)入數(shù)據(jù)(寫(xiě)1為高,寫(xiě)0為低)。待單片機(jī)寫(xiě)入的數(shù)據(jù)變化15~60μs后,DS18B20將對(duì)數(shù)據(jù)線采樣。單片機(jī)寫(xiě)入數(shù)據(jù)到DS18B20的保持時(shí)間為60~120μs。</p><p> 寫(xiě)DS18B20的子程序</p><p> WRITE_1820: MOV R2,#8 ;一共8位數(shù)據(jù)<
46、/p><p><b> CLR C</b></p><p> WR1: CLR DQ</p><p><b> MOV R3,#6</b></p><p><b> DJNZ R3,$</b></p><p><b> RR
47、C A</b></p><p><b> MOV DQ,C</b></p><p> MOV R3,#23</p><p><b> DJNZ R3,$</b></p><p><b> SETB DQ</b></p><p><
48、;b> NOP</b></p><p> DJNZ R2,WR1</p><p><b> SETB DQ</b></p><p><b> RET</b></p><p> 4.5數(shù)據(jù)處理子程序</p><p> 先判斷溫度高8位的CY,如果C
49、Y為1,則將高、低8八位求補(bǔ);對(duì)高、低8位的數(shù)據(jù)按權(quán)整合稱一個(gè)整數(shù),判斷是否在-50~110℃之間,否則停留在-50℃或110℃;將該數(shù)按百、十、個(gè)位分別存入相應(yīng)的存儲(chǔ)單元。流程圖如圖10所示: </p><p> 圖10 數(shù)據(jù)處理流程圖</p><p><b> 數(shù)據(jù)處理子程序</b></p><p> CHULI: CLR
50、 37H</p><p> MOV A,GAO_8BIT</p><p> JB ACC.7,FU</p><p> MOV A,DI_8BIT</p><p><b> MOV B,#16</b></p><p><b> DIV AB</b></p>
51、<p> MOV 36H,A ;將DI_8BIT的高四位右移四位,存入36H中</p><p> MOV A,B ;將TEMPER_L的低四位X10/16得小數(shù)后一位數(shù)</p><p><b> MOV B,#10</b></p><p><b> MUL AB</b&g
52、t;</p><p><b> MOV B,#16</b></p><p><b> DIV AB</b></p><p> MOV 30H,A ;將小數(shù)后一位數(shù).存入30H中</p><p> MOV A,GAO_8BIT ;TEMPER_H中存放高8位數(shù),權(quán)重16&
53、lt;/p><p><b> MOV B,#16</b></p><p><b> MUL AB</b></p><p> ADD A,36H ; A中存入溫度值的整數(shù)部分</p><p> CJNE A,#110,$</p><p> LJMP ZHE
54、NG</p><p> ZHENGZC: CLR P3.6</p><p><b> CLR 38H</b></p><p> FU: SETB 37H</p><p> MOV A,DI_8BIT</p><p><b> CPL A</b&g
55、t;</p><p><b> ADD A,#1</b></p><p><b> MOV F0,C</b></p><p><b> MOV B,#16</b></p><p><b> DIV AB</b></p><p&g
56、t; MOV 36H,A ;將DI_8BIT的高四位右移四位,存入36H中</p><p> MOV A,B ;將TEMPER_L的低四位X10/16得小數(shù)后一位數(shù).</p><p><b> MOV B,#10</b></p><p><b> MUL AB</b></p><p><
57、;b> MOV B,#16</b></p><p><b> DIV AB</b></p><p> MOV 30H,A ;將小數(shù)后一位數(shù).存入30H中</p><p> MOV A,GAO_8BIT ;TEMPER_H中存放高8位數(shù),權(quán)重16</p><p><b> CPL A&
58、lt;/b></p><p><b> MOV C,F0</b></p><p> ADDC A,#00H</p><p><b> MOV B,#16</b></p><p><b> MUL AB</b></p><p> ADD A
59、,36H ;A中存入溫度值的整數(shù)部分</p><p> CJNE A,#50,$</p><p><b> LJMP FU</b></p><p><b> 4.6顯示子程序</b></p><p> 將百、十、個(gè)、小數(shù)位的數(shù)據(jù)查表,送到對(duì)應(yīng)的數(shù)碼管顯示,程序流程圖如11所示:</p&
60、gt;<p> 圖11 顯示程序流程圖</p><p><b> 顯示子程序</b></p><p> DISPLAY: MOV DPTR,#TABLE</p><p><b> MOV R0,#4</b></p><p> XUN: MOV R1,#
61、250 ;顯示1000次</p><p> HUAN: JNB 37H,ZHENG</p><p> MOV A,#10 ;顯示’-'</p><p> MOVC A,@A+DPTR</p><p><b> MOV P1,A</b></p>&l
62、t;p><b> CLR P3.0</b></p><p> LCALL DELAY1</p><p><b> SETB P3.0</b></p><p> SJMP GO_ON</p><p> ZHENG: MOV A,BAI_BIT ;示溫度百位</
63、p><p> MOVC A,@A+DPTR</p><p><b> MOV P1,A</b></p><p><b> CLR P3.0</b></p><p> LCALL DELAY1</p><p><b> SETB P3.0</b>&l
64、t;/p><p> GO_ON: MOV A,SHI_BIT ;顯示溫度十位</p><p> MOVC A,@A+DPTR</p><p><b> MOV P1,A</b></p><p><b> CLR P3.1</b></p><p> L
65、CALL DELAY1</p><p><b> SETB P3.1</b></p><p> MOV A,GE_BIT ;顯示溫度個(gè)位和小數(shù)點(diǎn)</p><p> MOVC A,@A+DPTR</p><p> ADD A,#80H</p><p><b> MOV
66、P1,A</b></p><p><b> CLR P3.2</b></p><p> LCALL DELAY1</p><p><b> SETB P3.2</b></p><p> MOV A, XIAO_BIT ;顯示小數(shù)</p><p&
67、gt; MOVC A,@A+DPTR</p><p><b> MOV P1,A</b></p><p><b> CLR P3.3</b></p><p> LCALL DELAY1</p><p><b> SETB P3.3</b></p><
68、;p> DJNZ R1,HUAN ;250次沒(méi)完循環(huán)</p><p> DJNZ R0,XUN ;4個(gè)250次沒(méi)完循環(huán)</p><p> JB 38H, DELAY2</p><p><b> RET</b></p><p> DELAY1: MOV R7,#9</p><p
69、><b> DJNZ R7,$</b></p><p><b> RET</b></p><p> DELAY2: MOV R4,#10</p><p> LP1: MOV R5,#200</p><p> LP2: MOV R6,#126</p><p
70、><b> DJNZ R6,$</b></p><p> DJNZ R5,LP2</p><p> DJNZ R4,LP1</p><p><b> RET</b></p><p> TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH&
71、lt;/p><p> DB 01000000B ;-</p><p><b> END</b></p><p><b> 五 課程設(shè)計(jì)體會(huì)</b></p><p> 這一個(gè)禮拜的單片機(jī)課程設(shè)計(jì)已接近尾聲,回顧這個(gè)過(guò)程,收獲頗多!在本次設(shè)計(jì)的過(guò)程中,我發(fā)現(xiàn)很多的問(wèn)題,雖然以前還做過(guò)這樣的設(shè)計(jì)但這次
72、設(shè)計(jì)真的讓我長(zhǎng)進(jìn)了很多,單片機(jī)課程設(shè)計(jì)重點(diǎn)就在于軟件算法的設(shè)計(jì),需要有有巧妙的程序算法,雖然以前寫(xiě)過(guò)幾次程序,但我覺(jué)得寫(xiě)好一個(gè)程序并不是一件簡(jiǎn)單的事,舉個(gè)例子,在控制位選擇調(diào)試時(shí),我剛開(kāi)始只注意到我用的是P0驅(qū)動(dòng),所以就給列控制位都送低電平過(guò)去,后來(lái)調(diào)試時(shí)發(fā)現(xiàn)并不是這樣的數(shù)碼管并沒(méi)有顯示出我想要的數(shù)字來(lái),后來(lái)在分析硬件時(shí)發(fā)現(xiàn)我用的是共陰數(shù)碼管要送高低平過(guò)去才行,還有我的溫度數(shù)據(jù)處理函數(shù)沒(méi)有用直接的加減而是用于上一位BCD碼來(lái)解決,感覺(jué)效
73、果比較好,有好多的東西,只有我們?nèi)ピ囍隽耍拍苷嬲恼莆?,只有學(xué)習(xí)理論有些東西是很難理解的,更談不上掌握。還有在硬件調(diào)試過(guò)程中發(fā)現(xiàn)程序捎進(jìn)單片機(jī)中就沒(méi)有一點(diǎn)反應(yīng),后來(lái)我終于找到問(wèn)題的所在——在選材時(shí)就出現(xiàn)了問(wèn)題了,數(shù)碼管分壓電阻選錯(cuò)了,電阻阻值太大了,導(dǎo)致數(shù)碼管的電壓不足直接導(dǎo)致數(shù)碼管不亮,后來(lái)我換了個(gè)電阻小,在調(diào)試是數(shù)碼管就亮了,那是我很興奮,也很受教訓(xùn),做任何是都要從剛開(kāi)始時(shí)就認(rèn)真做起,要一絲不茍,要精心細(xì)心,不能有一刻</
74、p><p> 從這次的課程設(shè)計(jì)中,我真真正正的意識(shí)到,在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們所學(xué)的理論知識(shí)用到實(shí)際當(dāng)中,學(xué)習(xí)單片機(jī)更是如此,程序只有在經(jīng)常的寫(xiě)與讀的過(guò)程中才能提高,這就是我在這次課程設(shè)計(jì)中的最大收獲。</p><p> 最后,還要感謝我的指導(dǎo)老師和我們熱心的同學(xué),在他們的幫助下我的課程設(shè)計(jì)才能順利完成,謝謝你們!</p><p><b>
75、 六 參考文獻(xiàn)</b></p><p> [1]楊居義. 單片機(jī)課程設(shè)計(jì)指導(dǎo). 北京:清華大學(xué)出版社.2009年9月</p><p> ?。?]李廣弟. 單片機(jī)基礎(chǔ). 北京:北京航空航天大學(xué)出版. 2007年5月</p><p> ?。?]閻石. 單片機(jī)技術(shù)與應(yīng)用基礎(chǔ).北京:高等教育出版社.2006年7月</p><p> ?。?/p>
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- msp430單片機(jī)溫度單片機(jī)課程設(shè)計(jì)--溫度測(cè)試系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---基于單片機(jī)溫度測(cè)量系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)控制的溫度測(cè)試儀的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---溫度監(jiān)控系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--溫度控制系統(tǒng)設(shè)計(jì)
- 單片機(jī)溫度控制課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)—基于51單片機(jī)的溫度監(jiān)控系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--遠(yuǎn)程溫度監(jiān)控系統(tǒng)
- 單片機(jī)溫度控制系統(tǒng)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--遠(yuǎn)程溫度采集系統(tǒng)
- 課程設(shè)計(jì)--單片機(jī)溫度控制系統(tǒng)
- 單片機(jī)溫度檢測(cè)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)(溫度控制系統(tǒng))
- 單片機(jī)課程設(shè)計(jì)報(bào)告單片機(jī)的多路溫度測(cè)量系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的溫度數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于51單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)——基于51單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于51單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--電容、電阻參數(shù)單片機(jī)測(cè)試系統(tǒng)的設(shè)計(jì)
- 課程設(shè)計(jì)---基于單片機(jī)的溫度采集系統(tǒng)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論