版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 單片機(jī)原理與接口技術(shù) 課程設(shè)計(jì) </p><p><b> 前 言</b></p><p> 隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活,工作,科研,各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù),單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn),廣泛應(yīng)用于儀器儀表中,結(jié)合不同種類的傳感器,可實(shí)現(xiàn)諸如電壓、濕度、溫度、速度
2、、硬度、壓力等的物理量的測(cè)量。 </p><p> 隨著人們生活水平的不斷提高,單片機(jī)控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便也是不可否定的,其中數(shù)字溫度計(jì)就是一個(gè)典型的例子,但人們對(duì)它的要求越來越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。</p><p><b> 摘要: </b&g
3、t;</p><p> 溫度是日常生活、工業(yè)、醫(yī)學(xué)、環(huán)境保護(hù)、化工、石油等領(lǐng)域最常用到的一個(gè)物理量。測(cè)量溫度的基本方法是使用溫度計(jì)直接讀取溫度。最常見到得測(cè)量溫度的工具是各種各樣的溫度計(jì),例如:水銀玻璃溫度計(jì),酒精溫度計(jì),熱電偶或熱電阻溫度計(jì)等。它們常常以刻度的形式表示溫度的高低,人們必須通過讀取刻度值的多少來測(cè)量溫度。利用單片機(jī)和溫度傳感器構(gòu)成的電子式智能溫度計(jì)就可以直接測(cè)量溫度,得到溫度的數(shù)字值,既簡(jiǎn)單方便
4、,有直觀準(zhǔn)確。本設(shè)計(jì)所介紹的數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對(duì)測(cè)溫比較準(zhǔn)確的場(chǎng)所,或科研實(shí)驗(yàn)室使用。本文主要介紹了一個(gè)基于AT89C51單片機(jī)的測(cè)溫系統(tǒng),詳細(xì)描述了利用數(shù)字溫度傳感器DS18B20開發(fā)測(cè)溫系統(tǒng)的過程,該系統(tǒng)可以方便的是實(shí)現(xiàn)溫度采集和顯示,并可以根據(jù)需要任意設(shè)定上下限報(bào)警溫度,它使用起來方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點(diǎn),適合我們?nèi)粘I?/p>
5、活和工農(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)單,抗干擾</p><p> 本設(shè)計(jì)首先是確定目標(biāo),氣候是各個(gè)功能模塊的設(shè)計(jì),再在Proteus軟件上進(jìn)行仿真,修改,仿真。</p><p> 本溫度計(jì)屬于多功能溫度計(jì),可以設(shè)置上下報(bào)警溫度,當(dāng)溫度不在設(shè)置范圍內(nèi)時(shí),可以報(bào)警。
6、</p><p> 關(guān)鍵詞:?jiǎn)纹瑱C(jī),數(shù)字控制,溫度計(jì), DS18B20,AT89C51</p><p><b> 目錄</b></p><p><b> 前 言I</b></p><p><b> 一、單片機(jī)簡(jiǎn)介1</b></p><p>
7、 1.1單片機(jī)的應(yīng)用1</p><p><b> 二、設(shè)計(jì)方案1</b></p><p> 2.1設(shè)計(jì)務(wù)任和要求1</p><p><b> 2.2方案論證1</b></p><p> 三、系統(tǒng)設(shè)計(jì)原理2</p><p><b> 3.1系統(tǒng)組成
8、2</b></p><p> 3.2 DS18B20溫度傳感器與單片機(jī)的接口電路3</p><p><b> 3.3主控電路3</b></p><p><b> 3.4時(shí)鐘電路4</b></p><p><b> 3.5復(fù)位電路4</b></
9、p><p><b> 3.6顯示電路5</b></p><p> 3.7溫度傳感器及DS18B20測(cè)溫原理5</p><p> 四、系統(tǒng)軟件算法設(shè)計(jì)7</p><p> 4.1主程序設(shè)計(jì)7</p><p> 4.2讀出溫度子程序7</p><p> 4.3
10、 溫度轉(zhuǎn)換命令子程序7</p><p> 4.4計(jì)算溫度子程序7</p><p><b> 五、軟件仿真8</b></p><p> 5.1系統(tǒng)仿真結(jié)果8</p><p> 5.2系統(tǒng)原理圖8</p><p><b> 六、總結(jié)與體會(huì)9</b></
11、p><p><b> 附錄10</b></p><p><b> 一、單片機(jī)簡(jiǎn)介</b></p><p> 單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模
12、擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。這些電路能在軟件的控制下準(zhǔn)確、迅速、高效地完成程序設(shè)計(jì)者實(shí)現(xiàn)規(guī)定的任務(wù)。</p><p><b> 1.1單片機(jī)的應(yīng)用</b></p><p> 1、在家用電器領(lǐng)域的應(yīng)用</p><p> 現(xiàn)在在家用電器的更新、市場(chǎng)開拓等方面,單片機(jī)的應(yīng)用越來越廣泛,比如電
13、子玩具或者高級(jí)的電視游戲機(jī)中,會(huì)應(yīng)用單片機(jī)實(shí)現(xiàn)其控制功能;而洗衣機(jī)可以利用單片機(jī)識(shí)別衣服的種類與臟污程度,從而自動(dòng)選擇洗滌強(qiáng)度與洗滌時(shí)間;在冰箱冷柜中采用單片機(jī)控制可以識(shí)別食物的種類與保鮮程度,實(shí)現(xiàn)冷藏溫度與冷藏時(shí)間的自動(dòng)選擇;微波爐也可以通過單片機(jī)識(shí)別食物種類從而自動(dòng)確定加熱溫度與加熱時(shí)間等等,這些家用電器在應(yīng)用單片機(jī)技術(shù)后,無論是性能還是功能,與傳統(tǒng)技術(shù)相比均有長(zhǎng)足的進(jìn)步。</p><p> 2、在醫(yī)用設(shè)備
14、領(lǐng)域的應(yīng)用</p><p> 現(xiàn)代醫(yī)療條件越來越發(fā)達(dá),人們對(duì)醫(yī)療滅菌消毒技術(shù)也越來越重視,但是一些偏遠(yuǎn)地區(qū)的小醫(yī)院、小診所其消毒滅菌設(shè)備還十分簡(jiǎn)陋,無法有效的控制消毒質(zhì)量。隨著單片機(jī)技術(shù)的發(fā)展,其體積較小、功能強(qiáng)大、具有靈活的擴(kuò)展性、應(yīng)用方便的特點(diǎn)也越來越突出,因此在醫(yī)用呼吸機(jī)、分析儀與監(jiān)護(hù)儀、超聲診斷設(shè)備、病床呼叫系統(tǒng)等設(shè)備中得到了廣泛的應(yīng)用。</p><p> 3、在工業(yè)控制領(lǐng)域的
15、應(yīng)用</p><p> 其實(shí)最早的單片機(jī)正是從工業(yè)領(lǐng)域開始興起的,至今其在工業(yè)控制領(lǐng)域的應(yīng)用仍然十分廣泛,利用單片機(jī)技術(shù)構(gòu)成多種多樣的數(shù)據(jù)采集系統(tǒng)與智能控制系統(tǒng),比如工廠流水線的智能化管理、智能化電梯、報(bào)警系統(tǒng)等等,均是通過單片機(jī)技術(shù)與計(jì)算機(jī)聯(lián)網(wǎng)構(gòu)成二級(jí)控制系統(tǒng)。</p><p> 4、在儀器儀表領(lǐng)域的應(yīng)用</p><p> 單片機(jī)具備集成度高、體積小、較強(qiáng)的
16、控制功能與擴(kuò)展的靈活性等特點(diǎn),并且處理速度快,具有較高的可靠性,所以在智能儀器儀表領(lǐng)域其應(yīng)用也十分廣泛。從某種程度而言,單片機(jī)帶動(dòng)了傳統(tǒng)測(cè)量、控制儀器儀表技術(shù)的一項(xiàng)革命,通過單片機(jī)技術(shù)實(shí)現(xiàn)了儀器儀表技術(shù)的數(shù)字化、智能化、綜合化以及多功能化,與傳統(tǒng)的電子電路或者數(shù)字電路相比,其功能更強(qiáng)大,綜合性更突出。</p><p><b> 二、設(shè)計(jì)方案</b></p><p>
17、 2.1設(shè)計(jì)務(wù)任和要求</p><p> 1、基本范圍-50℃——110℃</p><p> 2、精度偏差小于0.5℃</p><p> 3、LED 數(shù)碼管顯示</p><p> 4、可以任意設(shè)定溫度的上下限報(bào)警功能.</p><p> 5. 實(shí)現(xiàn)報(bào)警提示。</p><p><
18、b> 2.2方案論證</b></p><p> 1.方案一本設(shè)計(jì)是測(cè)溫電路,采用熱敏電阻傳感器。利用熱敏電阻隨溫度變化而顯著變化,能直接將溫度的變化轉(zhuǎn)換為能量的變化,進(jìn)而制成溫度計(jì)。在將隨被測(cè)溫度變化的電壓或電流采集過來,進(jìn)行A/D轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測(cè)溫度顯示出來,這種設(shè)計(jì)需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。2.方案二 在單片機(jī)電路設(shè)計(jì)
19、中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用DS18B20溫度傳感器。DS18B20的內(nèi)部3腳(或8腳)封裝;使用特有的溫度測(cè)量技術(shù),將被測(cè)溫度轉(zhuǎn)換成數(shù)值信號(hào);3.0~5.5V的電源供電方式和寄生電源供電方式;ROM由64位二進(jìn)制數(shù)字組成,共分為8個(gè)字節(jié);RAM由9個(gè)字節(jié)的高速暫存器和非易失性電擦寫ROM組成。此傳感器,可以很容易直接讀取被測(cè)溫度值,進(jìn)行轉(zhuǎn)換,就可以滿足設(shè)計(jì)要求。 綜上所述:溫度傳感器選取智能測(cè)溫器
20、件DS18B20。</p><p><b> 3.確定設(shè)計(jì)方案:</b></p><p> 對(duì)此次課設(shè)的方案選定: 選用方案二:采用AT89C51作為主控制系統(tǒng); 1602液晶顯示模塊芯片作為溫度數(shù)據(jù)顯示裝置;而智能溫度傳感器DS18B20器件作為測(cè)溫電路主要組成部分。本設(shè)計(jì)顯示電路采用1602液晶顯示模塊芯片。</p><p><b
21、> 三、系統(tǒng)設(shè)計(jì)原理</b></p><p> 利用溫度傳感器DS18B20可以直接讀取被測(cè)溫度值,進(jìn)行轉(zhuǎn)換的特性,模擬溫度值經(jīng)過DS18B20處理后轉(zhuǎn)換為數(shù)字值,然后送到單片機(jī)中進(jìn)行數(shù)據(jù)處理,并與設(shè)置的溫度報(bào)警限比較,超過限度后通過揚(yáng)聲器報(bào)警。同時(shí)處理后的數(shù)據(jù)送到LED中顯示。</p><p><b> 3.1系統(tǒng)組成</b></p&g
22、t;<p> 本課題以是80C51單片機(jī)為核心設(shè)計(jì)的一種數(shù)字溫度控制系統(tǒng),系統(tǒng)整體硬件電路包括,傳感器數(shù)據(jù)采集電路,溫度顯示電路,上下限報(bào)警調(diào)整電路,單片機(jī)主板電路等組成。</p><p> 系統(tǒng)框圖如圖所示。溫度計(jì)電路設(shè)計(jì)總體設(shè)計(jì)方框圖如圖所示,控制器采用單片機(jī)AT89S51,溫度傳感器采用DS18B20,用6位LED數(shù)碼管以串口傳送數(shù)據(jù)實(shí)現(xiàn)溫度顯示。此外,還添加了報(bào)警系統(tǒng),對(duì)溫度實(shí)施監(jiān)控。&
23、lt;/p><p> 圖 數(shù)字溫度計(jì)框圖</p><p><b> 主控制器</b></p><p> 單片機(jī)AT89C51具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用系統(tǒng)可用二節(jié)電池供電。</p><p><b> 顯示電路</b&
24、gt;</p><p> 顯示電路采用LED液晶顯示數(shù)碼管,從P3口RXD,TXD串口輸出段碼。顯示電路是使用的串口顯示,這種顯示最大的優(yōu)點(diǎn)就是使用口資源比較少,只用p3口的RXD,和TXD,串口的發(fā)送和接收,四只數(shù)碼管采用74LS164右移寄存器驅(qū)動(dòng),顯示比較清晰。</p><p><b> 溫度傳感器</b></p><p> 溫度傳
25、感器采用美國(guó)DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20溫度傳感器。DS18B20輸出信號(hào)全數(shù)字化。便于單片機(jī)處理及控制,在0—100 攝氏度時(shí),最大線形偏差小于1 攝氏度,采用單總線的數(shù)據(jù)傳輸,可直接與計(jì)算機(jī)連接。</p><p> 用AT89S51芯片控制溫度傳感器DS18B20進(jìn)行實(shí)時(shí)溫度檢測(cè)并顯示,能夠?qū)崿F(xiàn)快速測(cè)量環(huán)境溫度,并可以根據(jù)需要設(shè)定上下限報(bào)警溫度。獲得的數(shù)據(jù)可以通過MAX232芯片與計(jì)算機(jī)的RS
26、232接口進(jìn)行串口通信,方便的采集和整理時(shí)間溫度數(shù)據(jù)。</p><p> 3.2 DS18B20溫度傳感器與單片機(jī)的接口電路</p><p> DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時(shí)DS18B20的1腳接地,2腳作為信號(hào)線,3腳接電源。另一種是寄生電源供電方式,如圖所示單片機(jī)端口接單線總線,為保證在有效的DS18B20時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)MOSF
27、ET管來完成對(duì)總線的上拉。</p><p> 當(dāng)DS18B20處于寫存儲(chǔ)器操作和溫度A/D轉(zhuǎn)換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開啟時(shí)間最大為10us。采用寄生電源供電方式時(shí)VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。</p><p> 圖3-3 DS18B20與單片機(jī)的接口電路</p><p><b> 3.3主控電路</b
28、></p><p> 單片機(jī)AT89C51 具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用系統(tǒng)可用二節(jié)電池供電。晶振采用12MHZ。復(fù)位電路采用上電加自動(dòng)復(fù)位。AT8951的管腳如下圖所示:</p><p><b> 各管腳功能:</b></p><p> VCC:供電電
29、壓。 GND:接地。 P0~P3:為輸入/輸出口線,其各有的功能,而P3口每一位還有特殊功能。 RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。 ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。 /PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)
30、器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。 /EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。</p><p><b> 3.4時(shí)鐘電路</b></p><p> 80C51時(shí)鐘有兩
31、種方式產(chǎn)生,即內(nèi)部方式和外部方式。80C51中有一個(gè)構(gòu)成內(nèi)部震蕩器的高增益反向放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。本次采用內(nèi)部震蕩電路,瓷片電容采用22PF,晶振為12MHZ。</p><p><b> 圖 震蕩電路圖</b></p><p><b> 3.5復(fù)位電路</b></p><p
32、> 單片機(jī)系統(tǒng)的復(fù)位電路在這里采用的是上電+按鈕復(fù)位電路形式,其中電阻R采用10KΩ的阻值 ,電容采用10μF的電容值。</p><p><b> 圖 復(fù)位電路</b></p><p><b> 3.6顯示電路</b></p><p> 對(duì)于數(shù)字溫度的顯示,我們采用6位LED數(shù)碼管。足夠顯示0~100中
33、各位數(shù),并且還能顯示一位小數(shù)部分。</p><p> 3.7溫度傳感器及DS18B20測(cè)溫原理</p><p> DS18B20溫度傳感器是美國(guó)DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過簡(jiǎn)單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點(diǎn)如下:●獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)
34、行通信;●多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;●無須外部器件;●可通過數(shù)據(jù)線供電,電壓范圍為3.0~5.5V;●零待機(jī)功耗;●溫度以9或12位數(shù)字;●用戶可定義報(bào)警設(shè)置;●報(bào)警搜索命令識(shí)別并標(biāo)志超過程序限定溫度(溫度報(bào)警條件)的器件;●負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作; DS18B20采用3腳PR35封裝或8腳SOIC封裝,其引腳排列及內(nèi)部結(jié)構(gòu)框圖如圖及測(cè)溫原
35、理圖如下圖1、圖2、圖3所示:</p><p><b> 圖 1引腳排列</b></p><p><b> 圖 2內(nèi)部結(jié)構(gòu)框圖</b></p><p> 圖3 DS18B20測(cè)溫原理圖</p><p> DS18B20的測(cè)溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于
36、產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入。器件中還有一個(gè)計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測(cè)量前,首先將最低溫所對(duì)應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器1、溫度寄存器中,計(jì)數(shù)器1和溫度寄存器被預(yù)置在最低溫所對(duì)應(yīng)的一個(gè)基數(shù)值。</p><
37、p> 減法計(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重新開始對(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ù)器門仍未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值大致被測(cè)溫度值。</p>&l
38、t;p> 四、系統(tǒng)軟件算法設(shè)計(jì)</p><p><b> 4.1主程序設(shè)計(jì)</b></p><p> 主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20的測(cè)量的當(dāng)前溫度值,溫度測(cè)量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測(cè)量一次被測(cè)溫度。</p><p> 圖4.1 主程序流程</p><p>
39、 4.2讀出溫度子程序</p><p> 讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),檢驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。其程序流程圖如圖4.2所示。</p><p> 圖4.2 讀出溫度子程序流程圖</p><p> 4.3 溫度轉(zhuǎn)換命令子程序</p><p> 溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命
40、令,當(dāng)采用12位分辨率時(shí)轉(zhuǎn)換時(shí)間約為750ms,在本程序設(shè)計(jì)中采用1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成。</p><p> 4.4計(jì)算溫度子程序</p><p> 計(jì)算溫度子程序?qū)AM值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖4.3所示。</p><p><b> N</b></p><p>
41、<b> Y</b></p><p> 圖4.3 計(jì)算溫度子程序流程圖</p><p><b> 五、軟件仿真</b></p><p><b> 5.1系統(tǒng)仿真結(jié)果</b></p><p><b> 5.2系統(tǒng)原理圖</b></p>
42、<p><b> 六、總結(jié)與體會(huì)</b></p><p> 在此次課程設(shè)計(jì)的進(jìn)程中,遇到了很多問題,例如,一開始在確定課設(shè)題目后,在編寫程序時(shí),由于思路不太清晰,而且設(shè)計(jì)要求中需要使用新器件DS18B20智能測(cè)溫,而其相關(guān)知識(shí)我們很模糊甚至可以說一無所知,不過后來,我們通過查找一些相關(guān)的資料書以及尋求輔導(dǎo)老師的幫助,又經(jīng)過我們的主動(dòng)思考,理清思路,終于將程序修改正確。在仿真
43、時(shí),由于我們有了之前的數(shù)模電課設(shè)仿真經(jīng)驗(yàn),所以此時(shí)我們課設(shè)進(jìn)行的很順利,并沒有受到什么大的阻礙。單片機(jī)課程設(shè)計(jì)重點(diǎn)就在于軟件算法的設(shè)計(jì),需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個(gè)程序并不是一件簡(jiǎn)單的事,舉個(gè)例子,以前寫的那幾次,數(shù)據(jù)加減時(shí),我用的都是BCD碼,這一次,我全部用的都是16進(jìn)制的數(shù)直接加減,顯示處理時(shí)在用除法去刪分,感覺效果比較好,有好多的東西,只有我們?nèi)ピ囍隽?,才能真正的掌握,只學(xué)習(xí)理論有些東西是很難
44、理解的,更談不上掌握。</p><p> 從這次的課程設(shè)計(jì)中,我真真正正的意識(shí)到,在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們所學(xué)的理論知識(shí)用到實(shí)際當(dāng)中,學(xué)習(xí)單機(jī)片機(jī)更是如此,程序只有在經(jīng)常的寫與讀的過程中才能提高,這就是我在這次課程設(shè)計(jì)中的最大收獲。</p><p> 附錄 </p><
45、;p><b> 程序清單</b></p><p> DQ BITP3.0 ;從DS18B20向8051傳送的數(shù)據(jù)端口</p><p> FLAG BIT00H</p><p> FLAG_NEGBIT01H ;溫度正負(fù)值標(biāo)志位</p><p>
46、 TEMP_LEQU 30H ;所設(shè)報(bào)警最低值溫度值</p><p> TEMP_HEQU31H ;所設(shè)報(bào)警最高值溫度值</p><p> TEMP_INTEQU 32H</p><p> TEMP_DPEQU 33H</p><p> TEMP
47、_100EQU34H ;</p><p> TEMP_10EQU35H</p><p> TEMP_1EQU36H</p><p> C0BIT P3.1 ;負(fù)溫度標(biāo)志位</p><p> C1BIT P3.2 ;超過100 標(biāo)志位</p><
48、;p> C2BIT P3.3 ;超過10 標(biāo)志位</p><p> C3BIT P3.4 ;超過1 標(biāo)志位</p><p> C4BIT P3.5 ;超過0 標(biāo)志位</p><p> ;*******************************</p><p> ;**
49、**********主函數(shù)*************</p><p><b> ORG 0000H</b></p><p> LJMP START</p><p><b> ORG 1000H</b></p><p> START:MOV SP,#60H</p><p&
50、gt; MAIN: LCALL READ_TEMP ;調(diào)用函數(shù)讀DS18B20所示溫度</p><p> LCALL PROC_TEMP ;調(diào)用函數(shù)對(duì)溫度進(jìn)行處理</p><p><b> LJMP MAIN</b></p><p> ;*******************
51、**************</p><p> ;*********************************</p><p> READ_TEMP:</p><p> LCALL INI_DQ</p><p> JB FLAG,RE_0</p><p><b> RET</b>
52、</p><p> RE_0:MOV A,#0CCH</p><p> LCALL WRITE_DQ ;讀出傳感器所示溫度</p><p> MOV A,#44H</p><p> LCALL WRITE_DQ</p><p> LCALL DISP_LED;調(diào)用LED顯示程序<
53、/p><p> LCALL INI_DQ</p><p> MOV A,#0CCH</p><p> LCALL WRITE_DQ</p><p> MOV A,#0BEH</p><p> LCALL WRITE_DQ</p><p> LCALL READ_DQ</p>
54、<p><b> RET</b></p><p> ;************DS18B20初始化程序***************</p><p><b> INI_DQ:</b></p><p><b> SETBDQ</b></p><p> NO
55、P ;</p><p> NOP ;空操作 PC值加2</p><p><b> CLRDQ</b></p><p> MOV R1,#3</p><p> INI_0: MOV R0,#80</p>
56、;<p> DJNZ R0,$</p><p> DJNZ R1,INI_0</p><p><b> SETB DQ</b></p><p> NOP ;</p><p> NOP ;</p>
57、;<p> NOP ;空操作 PC值加3</p><p> MOVR7,#25</p><p> INI_1: JNB DQ,INI_2 ;DQ為0則轉(zhuǎn)</p><p> DJNZ R7,INI_1 ;延時(shí)</p><p> LJMP INI
58、_3</p><p> INI_2: SETB FLAG ;標(biāo)志位</p><p> LJMP INI_4</p><p> INI_3: CLR FLAG</p><p> LJMP INI_5</p><p> INI_4: MOV R0,#80</p>
59、<p> DJNZ R0,$ ;時(shí)序要求延時(shí)一段時(shí)間</p><p> INI_5: SETB DQ</p><p><b> RET</b></p><p> ;**************DS18B20寫命令******************</p><p><b> W
60、RITE_DQ:</b></p><p> MOVR6,#8</p><p><b> CLR C</b></p><p> Tloop:CLRDQ</p><p><b> MOV R2,#6</b></p><p><b> DJN
61、Z R2,$</b></p><p> RRCA;最低位移到C中</p><p><b> MOV DQ,C</b></p><p> MOV R2,#23</p><p><b> DJNZ R2,$</b></p><p><b>
62、 SETB DQ</b></p><p><b> NOP</b></p><p> DJNZ R6,Tloop</p><p><b> SETB DQ</b></p><p><b> RET</b></p><p> ;***
63、***********讀DS18B20數(shù)據(jù)函數(shù)*************</p><p><b> READ_DQ:</b></p><p> MOV R5,#2</p><p> MOV R0,#30H</p><p> READ_0:MOV R6,#8</p><p> R
64、EAD_1:CLRC</p><p><b> SETB DQ</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> CLRDQ</b></p><p>
65、;<b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> SETBDQ</b></p>
66、<p> MOV R2,#9</p><p> DJNZ R2,$</p><p><b> MOV C,DQ</b></p><p> MOV R3,#23</p><p> DJNZ R3,$</p><p><b> RRCA</b>
67、;</p><p> DJNZR6,READ_1</p><p> MOV @R0,A</p><p><b> INC R0</b></p><p> DJNZ R5,READ_0</p><p><b> SETB DQ</b></p>
68、<p><b> RET</b></p><p> ;***************溫度數(shù)據(jù)處理程序****************</p><p> PROC_TEMP:</p><p> CLR FLAG_NEG</p><p> MOV A,TEMP_L</p><p>
69、; SWAP A ; A中高低四位互換</p><p> ORL A,#0F0H</p><p> MOV TEMP_INT,A</p><p> MOV A,TEMP_H</p><p><b> SWAP A</b></p><p> ORL A,
70、#0FH</p><p> ANL TEMP_INT,A</p><p> MOV A,TEMP_H</p><p> CLR P3.6</p><p> CLR P3.7</p><p> JB ACC.7,BAOJING1 ;低于零度亮紅燈報(bào)警</p><p&
71、gt; ;JBACC.7,NEGTIVE</p><p> MOV A,TEMP_L</p><p> ANL A,#0FH</p><p> MOV DPTR,#TAB3</p><p> MOVC A,@A+DPTR</p><p> MOV TEMP_DP,A</p><p&g
72、t; LJMP PRO_0</p><p> ;***********報(bào)警函數(shù)********************</p><p> BAOJING1: SETB P3.6</p><p><b> RET</b></p><p> ;NEGTIVE: ;溫度值為負(fù)時(shí)處理程序,按實(shí)際情況
73、,處理過程比較復(fù)雜</p><p> ;SETB FLAG_NEG</p><p> ;MOV A,TEMP_L</p><p><b> ;CPL A</b></p><p> ;ANL A,#0FH</p><p> ;MOV R1,A</p><p&g
74、t; ;CJNE R1,#0FH,PRO_1</p><p> ; ;低于0°則調(diào)用報(bào)警函數(shù)</p><p> ;PUSH ACC</p><p> ;MOV A,TEMP_INT</p><p> ;SUBB A,#1</p><p> ;MOV TEMP_INT,A&
75、lt;/p><p><b> ;POP ACC</b></p><p> ;MOV TEMP_DP,#00H</p><p> ; LJMP PRO_2</p><p> PRO_1: ADD A,#1</p><p> MOV DPTR,#TAB3</p>
76、<p> MOVC A,@A+DPTR</p><p> MOV TEMP_DP,A</p><p> PRO_2:MOV A,TEMP_INT</p><p><b> CPL A</b></p><p> MOV TEMP_INT,A</p><p> PRO_0:M
77、OV A,TEMP_INT</p><p> MOV B,#100</p><p><b> DIV AB</b></p><p> MOV TEMP_100,A</p><p><b> MOV A,B</b></p><p><b> MOV B,#1
78、0</b></p><p><b> DIV AB</b></p><p> MOV TEMP_10,A</p><p> MOV TEMP_1,B</p><p><b> RET</b></p><p> ;**************LED初始化*
79、*******************</p><p><b> CLR_LED:</b></p><p><b> CLR C0</b></p><p><b> CLR C1</b></p><p><b> CLR C2</b></p&
80、gt;<p><b> CLR C3</b></p><p><b> CLR C4</b></p><p> RET ;**************LED顯示***********************</p><p><b> DISP_LED
81、:</b></p><p> LCALL CLR_LED</p><p><b> SETB C0</b></p><p> JNB FLAG_NEG,DL_0</p><p> MOV P1,#0BFH</p><p> LCALL DELAY_10MS</p>
82、<p><b> LJMP DL_1</b></p><p><b> DL_0:</b></p><p> MOV P1,#0FFH</p><p> LCALL DELAY_10MS</p><p> DL_1:LCALL CLR_LED</p><
83、p> SETB C1 ;顯示百位</p><p> MOV A,TEMP_100</p><p> MOV DPTR,#TAB4</p><p> MOVC A,@A+DPTR</p><p><b> MOV P1,A</b></p>&
84、lt;p> CJNE A,#0F9H,CESHI</p><p> LCALL BAOJING2 ;超過一百啟動(dòng)揚(yáng)聲器報(bào)警</p><p> CESHI:LCALL DELAY_10MS</p><p> LCALL CLR_LED</p><p> SETB C2
85、 ;顯示十位</p><p> MOV A,TEMP_10</p><p> MOV DPTR,#TAB4</p><p> MOVC A,@A+DPTR</p><p><b> MOV P1,A</b></p><p> LCALL DELAY_10MS<
86、/p><p> LCALL CLR_LED</p><p><b> SETB C3</b></p><p> MOV A,TEMP_1 ;顯示 個(gè)位</p><p> MOV DPTR,#TAB5</p><p> MOVC A,@A+DPTR<
87、;/p><p><b> MOV P1,A</b></p><p> LCALL DELAY_10MS</p><p> LCALL CLR_LED</p><p> SETB C4 ;顯示小數(shù)點(diǎn)后的數(shù)</p><p> MOV A,TEMP
88、_DP</p><p> MOV DPTR,#TAB4</p><p> MOVC A,@A+DPTR</p><p><b> MOV P1,A</b></p><p> RET ;******************</p><p&
89、gt; BAOJING2: SETB P3.7</p><p> RET ;*********延時(shí)函數(shù)*************</p><p> DELAY_10MS:</p><p> MOV R3,#20</p><p> DEL_1:MOV R4,#248<
90、/p><p><b> DJNZ R4,$</b></p><p> DJNZ R3,DEL_1</p><p><b> RET</b></p><p> ;**********小數(shù)位轉(zhuǎn)換********************</p><p> TAB3:DB0
91、0H,01H,01H,02H</p><p> DB02H,03H,04H,04H</p><p> DB05H,06H,06H,07H</p><p> DB07H,08H,09H,09H</p><p> ;************無小數(shù)點(diǎn)位的段碼******************</p><p>
92、 TAB4:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H</p><p> ;*****************有小數(shù)點(diǎn)**********************</p><p> TAB5:DB40H,79H,24H,30H,19H,12H,02H,78H,00H,10H</p><p><b&
93、gt; END</b></p><p><b> 參考文獻(xiàn)</b></p><p> [1] 李朝青.單片機(jī)原理及接口技術(shù)(簡(jiǎn)明修訂版).杭州:北京航空航天大學(xué)出版社,1998</p><p> [2] 李廣弟.單片機(jī)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,1994</p><p> [3] 閻石
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)--數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)-數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)—數(shù)字溫度計(jì)
- 單片機(jī)數(shù)字溫度計(jì)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)-數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)—數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)——數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)—數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字溫度計(jì)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字溫度計(jì)設(shè)計(jì)
- 數(shù)字溫度計(jì)課程設(shè)計(jì)---基于51單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-數(shù)字溫度計(jì)
- 數(shù)字溫度計(jì)--單片機(jī)課程設(shè)計(jì)
- 溫度計(jì)課程設(shè)計(jì)---基于51單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---數(shù)字溫度計(jì)的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-數(shù)字溫度計(jì)的設(shè)計(jì)
- 數(shù)字溫度計(jì)課程設(shè)計(jì)---基于51單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---數(shù)字溫度計(jì)的設(shè)計(jì)
- 單片機(jī)數(shù)字溫度計(jì)的設(shè)計(jì)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論