版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 單片機(jī)課程設(shè)計(jì)</b></p><p> 學(xué) 院 理學(xué)院 </p><p> 年級(jí)專(zhuān)業(yè) 2011級(jí)電子信息工程01班 </p><p> 指導(dǎo)老師 </p><p> 學(xué) 號(hào)
2、 </p><p> 姓 名 </p><p><b> 2014年6月</b></p><p><b> 目錄</b></p><p> 摘 要- 1 -</p>
3、<p> 第一章 緒論- 2 -</p><p> 1.1 單片機(jī)概述- 2 -</p><p> 1.2 選題背景及設(shè)計(jì)意義- 3 -</p><p> 一、選題背景- 3 -</p><p> 二、設(shè)計(jì)意義- 3 -</p><p> 1.3設(shè)計(jì)方案論證- 3 -</p
4、><p> 第二章 硬件設(shè)計(jì)- 4 -</p><p> 2.1硬件電路的設(shè)計(jì)- 5 -</p><p> 2.2各元器件介紹- 10 -</p><p> 第四章 調(diào)試- 17 -</p><p> 4.1綜合調(diào)試- 18 -</p><p> 參考文獻(xiàn)- 19 -<
5、;/p><p><b> 附錄- 19 -</b></p><p><b> 摘 要</b></p><p> 在一些溫控系統(tǒng)電路中,廣泛采用的是通過(guò)熱電偶、熱電阻或PN結(jié)測(cè)溫電路經(jīng)過(guò)相應(yīng)的信號(hào)調(diào)理電路,轉(zhuǎn)換成A/D轉(zhuǎn)換器能接收的模擬量,再經(jīng)過(guò)采樣/保持電路進(jìn)行A/D轉(zhuǎn)換,最終送入單片機(jī)及其相應(yīng)的外圍電路,完成
6、監(jiān)控。但是由于傳統(tǒng)的信號(hào)調(diào)理電路實(shí)現(xiàn)復(fù)雜、易受干擾、不易控制且精度不高。本文介紹單片機(jī)結(jié)合DS18B20溫度控制系統(tǒng)設(shè)計(jì),因此,本系統(tǒng)用一種新型的可編程溫度傳感器(DS18B20),不需復(fù)雜的信號(hào)調(diào)理電路和A/D轉(zhuǎn)換電路能直接與單片機(jī)完成數(shù)據(jù)采集和處理,實(shí)現(xiàn)方便、精度高,可根據(jù)不同需要用于各種場(chǎng)合。</p><p> 關(guān)鍵詞:?jiǎn)纹瑱C(jī),AT89S51,MAX232,傳感器DS18B20</p>&
7、lt;p><b> 第一章 緒論</b></p><p><b> 1.1 單片機(jī)概述</b></p><p> 單片機(jī)的結(jié)構(gòu)特征是將組成計(jì)算機(jī)的基本部件集成在一塊晶體芯片上,構(gòu)成一臺(tái)功能獨(dú)特的單片微型計(jì)算機(jī)。一臺(tái)典型的單片機(jī)的基本組成結(jié)構(gòu)包括中央處理器(CPU),存儲(chǔ)器(ROM和RAM),并行I/O口,串行I/O口,定時(shí)器/計(jì)數(shù)器
8、,定時(shí)電路及元件。由此可見(jiàn),單片機(jī)在結(jié)構(gòu)上突破了常規(guī)的按邏輯功能劃分芯片。由多片構(gòu)成了微型計(jì)算機(jī)的設(shè)計(jì)思想,將構(gòu)成計(jì)算機(jī)的許多功能集成在一塊晶體芯片上。</p><p><b> 單片機(jī)的特點(diǎn):</b></p><p> 受密度限制:芯片存儲(chǔ)器存儲(chǔ)容量較小,一般ROM小于4/ 2KB,RAM小于256字節(jié)。</p><p> 可靠性良好:
9、單片機(jī)是按照工業(yè)控制要求設(shè)計(jì)的,其抗工業(yè)噪聲干擾優(yōu)于一般的 CPU,程序指令及常數(shù)數(shù)據(jù)都燒在ROM內(nèi),其許多信號(hào)通道均在同一芯片內(nèi),因此可靠性較高。</p><p> 易擴(kuò)充:?jiǎn)纹瑱C(jī)具有一般微電腦所必須的器件,可以擴(kuò)充為各種規(guī)模的微電腦系統(tǒng)。</p><p> 控制功能強(qiáng):為了滿(mǎn)足工業(yè)控制要求,單片機(jī)指令除了輸入/輸出控制指令,邏輯判斷指令外,還有更為豐富的條件分支跳躍指令。</
10、p><p> 單片機(jī)的應(yīng)用領(lǐng)域如下:</p><p> 家用電器領(lǐng)域:目前國(guó)內(nèi)各種家用電器已普遍采用單片機(jī)控制取代傳統(tǒng)的控制電路,做成單片機(jī)控制系統(tǒng)。</p><p> 辦公自動(dòng)化領(lǐng)域:現(xiàn)代辦公室所使用的大量通信,信息產(chǎn)品多數(shù)采用了單片機(jī)。</p><p> 在商業(yè)營(yíng)銷(xiāo)系統(tǒng)已廣泛使用的電子秤,收款機(jī),條形碼閱讀器,倉(cāng)庫(kù)安全監(jiān)控系統(tǒng),商場(chǎng)保
11、安系統(tǒng),空氣調(diào)節(jié)系統(tǒng)等,目前已紛紛采用單片機(jī)構(gòu)成專(zhuān)用系統(tǒng)。</p><p> 工業(yè)自動(dòng)化:如工業(yè)過(guò)程控制,過(guò)程監(jiān)測(cè),工業(yè)控制器及機(jī)電一體化系統(tǒng)等,這些系統(tǒng)除一些小型工控機(jī)之外,許多都是以單片機(jī)為核心的單機(jī)或多機(jī)網(wǎng)絡(luò)系統(tǒng)。</p><p> 智能儀表與集成智能傳感器傳統(tǒng)的控制電路:目前各種變送器,電氣測(cè)量?jī)x表普遍采用單片機(jī)應(yīng)用系統(tǒng)替代傳統(tǒng)的測(cè)量系統(tǒng),使測(cè)量系統(tǒng)具有各種智能化功能。將單片機(jī)
12、和傳感器相結(jié)合可以構(gòu)成新一代的智能傳感器。他將傳感器初級(jí)變換后的電量做進(jìn)一步的變換,處理,輸出能滿(mǎn)足遠(yuǎn)距離傳送,能與微機(jī)接口的數(shù)字信號(hào)。</p><p> 汽車(chē)電子與航空航天電子系統(tǒng):通常在這些電子系統(tǒng)中的集中顯示系統(tǒng),動(dòng)力監(jiān)測(cè)控制系統(tǒng),自動(dòng)駕馭系統(tǒng),通信系統(tǒng),以及運(yùn)行監(jiān)視器(黑匣子)等,都要都成冗余的網(wǎng)絡(luò)系統(tǒng)。</p><p> 1.2 選題背景及設(shè)計(jì)意義</p>&l
13、t;p><b> 一、選題背景</b></p><p> 最早的溫度計(jì)是在1593年由意大利科學(xué)家伽利略發(fā)明的。他的第一只溫度計(jì)是一根一端敞口的玻璃管,另一端帶有核桃大的玻璃泡。使用時(shí)先給玻璃泡加熱,然后把玻璃管插入水中。隨著溫度的變化,玻璃管中的水面就會(huì)上下移動(dòng),根據(jù)移動(dòng)的多少就可以判定溫度的變化和溫度的高低。這種溫度計(jì),受外界大氣壓強(qiáng)等環(huán)境因素的影響較大,所以測(cè)量誤差大。荷蘭
14、人華倫海特在1709年利用酒精,在1714年又利用水銀作為測(cè)量物質(zhì),制造了更精確的溫度計(jì)。把一定濃度的鹽水凝固時(shí)的溫度定為0℉,把純水凝固時(shí)的溫度定為32℉,把標(biāo)準(zhǔn)大氣壓下水沸騰的溫度定為212℉,用℉代表華氏溫度,這就是華氏溫度計(jì)。 </p><p><b> 二、設(shè)計(jì)意義</b></p><p> 本設(shè)計(jì)所介紹的數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫
15、范圍廣,測(cè)溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對(duì)測(cè)溫比較準(zhǔn)確的場(chǎng)所,或科研實(shí)驗(yàn)室使用。它具有結(jié)構(gòu)簡(jiǎn)單,不需外接元件,采用一根I/ O 數(shù)據(jù)線(xiàn)既可供電又可傳輸數(shù)據(jù)、并可由用戶(hù)設(shè)置溫度報(bào)警界限等特點(diǎn),可廣泛用于食品庫(kù)、冷庫(kù)、糧庫(kù)等需要控制溫度的地方。該設(shè)計(jì)控制器使用單片機(jī)AT 89S51,測(cè)溫傳感器使用DS18B20,,實(shí)現(xiàn)溫度顯示,能準(zhǔn)確達(dá)到以下要求:</p><p> 測(cè)溫范圍-55℃~125℃ 精
16、度誤差小于0.5℃</p><p> LED數(shù)碼管直讀顯示 可以任意設(shè)置溫度的上下限報(bào)警功能</p><p><b> 1.3設(shè)計(jì)方案論證</b></p><p><b> 方案一:</b></p><p> 本電路是溫度計(jì)的設(shè)計(jì),在測(cè)溫電路中利用熱敏電阻器件的感溫效應(yīng),將隨被測(cè)溫
17、變化的電壓或電流采集過(guò)來(lái),進(jìn)行A/D轉(zhuǎn)換后,用單片機(jī)進(jìn)行數(shù)據(jù)處理,經(jīng)顯示電路就可以顯示出來(lái)。</p><p><b> 方案二:</b></p><p> 在日常生活及工農(nóng)業(yè)生產(chǎn)中經(jīng)常要用到溫度的檢測(cè)及控制,傳統(tǒng)的測(cè)溫元件有熱電偶和熱電阻。而熱電偶和熱電阻測(cè)出的一般都是電壓,再轉(zhuǎn)換成對(duì)應(yīng)的溫度,需要比較多的外部硬件支持,硬件電路復(fù)雜,軟件調(diào)試復(fù)雜,制作成本高。&l
18、t;/p><p><b> 方案三:</b></p><p> 基于單片機(jī)的溫度傳感器設(shè)計(jì)的數(shù)字溫度計(jì)已經(jīng)很成熟,各種精度很高的溫度計(jì)不斷推出。數(shù)字溫度計(jì)要求檢測(cè)的精度必須高于控制的精確度,否則無(wú)從實(shí)現(xiàn)控制的精度要求。所以精度已經(jīng)成為數(shù)字溫度計(jì)的一項(xiàng)重要的性能參數(shù)。因此追求高精度是數(shù)字溫度計(jì)的一個(gè)目標(biāo)。不僅如此,檢測(cè)還涉及國(guó)計(jì)民生各個(gè)部門(mén),可以說(shuō)在所以科學(xué)技術(shù)領(lǐng)域無(wú)時(shí)
19、不在進(jìn)行檢測(cè)。科學(xué)技術(shù)的發(fā)展和檢測(cè)技術(shù)的發(fā)展是密切相關(guān)的?,F(xiàn)代化的檢測(cè)手段能達(dá)到的精度、靈敏度及測(cè)量范圍等,在很大程度上決定了科學(xué)技術(shù)的發(fā)展水平。同時(shí),科學(xué)技術(shù)的發(fā)展達(dá)到的水平越高,又為檢測(cè)技術(shù)、傳感器技術(shù)提供了新的前提手段。目前市場(chǎng)上出現(xiàn)了很多傳感器,很多精度高的傳感器已經(jīng)出現(xiàn),而且精度越來(lái)越高。數(shù)字溫度計(jì)未來(lái)將會(huì)更精確、更人性化,為我們做出更多貢獻(xiàn)。為此我們選擇方案三的設(shè)計(jì),框圖如下</p><p> 溫度
20、計(jì)電路設(shè)計(jì)總體設(shè)計(jì)方框圖如圖所示,控制器采用單片機(jī)AT89S51,溫度傳感器采用DS18B20,用四位LED數(shù)碼管以串行口傳送數(shù)據(jù)實(shí)現(xiàn)溫度顯示。</p><p><b> 第二章 硬件設(shè)計(jì)</b></p><p> 2.1硬件電路的設(shè)計(jì)</p><p> 本設(shè)計(jì)系統(tǒng)共由四部分組成:</p><p> ?、?AT89
21、S51為控制裝置,負(fù)責(zé)各部分的控制和數(shù)據(jù)采集。</p><p> ?、?DB9和MAX232組成了通訊系統(tǒng),負(fù)責(zé)和上位機(jī)通訊的TTL/RS232電平轉(zhuǎn)換。</p><p> ③ DS18B20為溫度測(cè)量裝置,負(fù)責(zé)對(duì)溫度進(jìn)行采集并轉(zhuǎn)換為數(shù)字信號(hào)送AT89S51進(jìn)行處理。</p><p> ④ 共陽(yáng)極數(shù)碼管為顯示裝置,負(fù)責(zé)顯示工作狀態(tài)和DS18B20 采集到的數(shù)據(jù)
22、。</p><p> 注:LED數(shù)碼管驅(qū)動(dòng)電路中采用P0 口加上拉電阻的形式,為方便焊接,本設(shè)計(jì)中電阻使用了排阻的方式,三極管使用的是S9012.</p><p><b> 1、時(shí)鐘電路</b></p><p> 時(shí)鐘電路用于產(chǎn)生單片機(jī)工作所需的時(shí)鐘信號(hào),時(shí)序是指令執(zhí)行中各信號(hào)之間的相互關(guān)系。單片機(jī)本身就如同一個(gè)復(fù)雜的同步時(shí)序電路,為了保
23、證同步工作方式的實(shí)現(xiàn),電路應(yīng)在唯一的時(shí)鐘信號(hào)控制下嚴(yán)格地按時(shí)序進(jìn)行工作。在A(yíng)T89S51單片機(jī)內(nèi)部帶有時(shí)鐘電路,因此,只需要在片外通過(guò)XTAL1和XTAL2引腳接入定時(shí)控制元件(晶體振蕩器和電容),即可構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。在A(yíng)T89s51芯片內(nèi)部有一個(gè)高增益反相放大器,而在芯片的外部,XTAL1和XTAL2之間跨接晶體振蕩器和微調(diào)電容。</p><p> 在單片機(jī)的XTAL1腳和XTAL2腳之間并接一個(gè)晶
24、體振蕩器就構(gòu)成了內(nèi)部振蕩方式。AT89S51單片機(jī)內(nèi)部有一個(gè)高增益的反相放大器,XTAL1為內(nèi)部反相放大器的輸入端,XTAL2為內(nèi)部反相放大器的輸出端,在其兩端接上晶振后,就構(gòu)成了自激振蕩電路,并產(chǎn)生振蕩脈沖,振蕩電路輸出的脈沖信號(hào)的頻率就是晶振的固有頻率。在實(shí)際應(yīng)用中通常還需要在晶振的兩端和地之間各并上一個(gè)小電容。</p><p> AT89S51的時(shí)鐘電路如圖2.2所示:</p><p&
25、gt; 圖2.2AT89S51的時(shí)鐘電路</p><p> 圖中,電容器C1、C2常稱(chēng)為微調(diào)電容,其作用有三個(gè):快速起振、穩(wěn)定振蕩頻率、微調(diào)振蕩頻率。AT89S51單片機(jī)允許外接0~33M Hz的晶振,電容器C1、C2可取5pF~33pF。一般情況下,使用頻率較低的晶振時(shí),C1、C2的容量可選大一點(diǎn)。為了更好地保證振蕩器穩(wěn)定可靠地工作,在實(shí)際裝配電路時(shí),晶振X和電容C1、C2應(yīng)盡可能地安裝在XTAL1、XTA
26、L2引腳附近。內(nèi)部振蕩方式所得到時(shí)鐘信號(hào)比較穩(wěn)定,在實(shí)際電路中,一般是選用內(nèi)部振蕩方式。</p><p> 用晶振和電容構(gòu)成諧振電路。電容大小與晶振頻率和工作電壓有關(guān)。但電容的大小影響振蕩器的穩(wěn)定性和起振的快速性,為了提高精度,本實(shí)驗(yàn)板采用30pF的電容作為微調(diào)電容。在設(shè)計(jì)電路板時(shí),晶振、電容等均應(yīng)盡可能靠近芯片,以減小分布電容,保證振蕩器振蕩的穩(wěn)定性。</p><p><b>
27、; 2、復(fù)位電路</b></p><p> 復(fù)位的功能:復(fù)位是單片機(jī)的初始化操作,其目的是使CPU和系統(tǒng)中各部分處于一個(gè)確定的狀態(tài),并從這一狀態(tài)開(kāi)始工作。系統(tǒng)上電路或死機(jī)后都要進(jìn)行復(fù)位操作。單片機(jī)復(fù)位時(shí),將程序計(jì)數(shù)器PC初始化為0000H,表明復(fù)位后程序從0000H地址單元開(kāi)始執(zhí)行,同時(shí)復(fù)位時(shí)輸出控制信號(hào)ALE,PSEN均為高電平。復(fù)位后,P0~P3口輸出高電平,且使準(zhǔn)雙向口均處于輸入狀態(tài)。復(fù)
28、位不改變片內(nèi)RAM單元的內(nèi)容,但使各特殊功能寄存器SFR回復(fù)到初始狀態(tài),復(fù)位后各特殊功能寄存器值如表2—6所示:</p><p> 表2—6 主要特殊功能寄存器復(fù)位初始值</p><p> 表2—6中部分符號(hào)的含義如下:</p><p> PSW=00H:表明復(fù)位后自動(dòng)選擇第0組工作寄存器組為當(dāng)前工作
29、寄存器組SP=07H:表明堆棧指針指向片內(nèi)RAM07H單元,堆棧的壓入操作為先加后壓,所以第一個(gè)被壓入的數(shù)據(jù)存放在08H單元中P0~P3=FFH:表明各端口寫(xiě)入1,此時(shí)各端口既可作輸入口,也可以作輸出口A(yíng)UXR=XXX0 0XX0:表明ALE引腳在CPU不訪(fǎng)問(wèn)外部存儲(chǔ)器期間有脈沖信號(hào)輸出AUXR1=XXXX XXX0:表明選擇DPTR0作數(shù)據(jù)指針I(yè)E=00H:表明各中斷均關(guān)閉TCON=00H:表明T0,T1 均被停止SCO
30、N=00H:表明串口處于方式0,允許發(fā)送,不允許接收PCON=00H:表明SMOD=0,波特率不加倍。PD=0,IDL=0,單片機(jī)處于正常工作方式。單片機(jī)的RST引腳為復(fù)位引腳,振蕩電路正常工作后,RST端加上持續(xù)兩個(gè)機(jī)器周期的高電平后,單片機(jī)就被復(fù)位。復(fù)位電路有3種基本方式:上電復(fù)位,開(kāi)關(guān)復(fù)位和看門(mén)狗復(fù)位。這里只介紹上電復(fù)位和開(kāi)關(guān)復(fù)位。</p><p><b> (1)上電復(fù)位 </b&g
31、t;</p><p> 所謂上電復(fù)位就是單片機(jī)只要一上電就自動(dòng)實(shí)現(xiàn)復(fù)位操作。常用的上電復(fù)位電路如圖1所示</p><p> ?。╝) (b)</p><p> 圖1單片機(jī)上電復(fù)位電路圖圖a、圖b所示電路在本質(zhì)上是一樣,它們都是RC微分復(fù)位電路。由于單片機(jī)的RST端對(duì)地存在一個(gè)等效電阻R,圖a中的微分電阻為R1與R的并
32、聯(lián)電阻,圖b中的微分電阻取至RST端的等效電阻R。上電時(shí),電源通過(guò)微分電阻對(duì)電容充電,由于電容兩端電壓不能突變,所以RST端出現(xiàn)一個(gè)正脈沖。過(guò)一段時(shí)間后,電容兩端電荷充滿(mǎn),電容等效為開(kāi)路,于是RST端所加電壓為低電平,單片機(jī)完成復(fù)位。從圖中可以看出,RST端高電平持續(xù)時(shí)間取于RC電路的充電時(shí)間常數(shù)。合理選擇C1和R1就可以實(shí)現(xiàn)上電復(fù)位。由于上電后,振蕩電路起振要經(jīng)歷一個(gè)振蕩建立時(shí)間,不同頻率的振蕩器,起振蕩建立時(shí)間不同,所以不同振蕩頻
33、率下,上述上電復(fù)位電路的參數(shù)不同。通常要求上電時(shí)RST復(fù)位高電平能持續(xù)10ms以上,R、C的取值一般為:C1=10~30μF,R1=1K?~10K?當(dāng)晶振頻率為6MHz時(shí),可取R1=1 K?,C1=22μF晶振頻率為12MHz時(shí),可取C1=10μF,R1=8.2 K?(2) 開(kāi)關(guān)復(fù)位開(kāi)關(guān)復(fù)位是指通過(guò)接通按鈕開(kāi)關(guān),使單片機(jī)進(jìn)入復(fù)位狀態(tài)。開(kāi)關(guān)復(fù)位電路一般不單獨(dú)使用。在應(yīng)用系統(tǒng)設(shè)計(jì)中,若需使用</p><
34、;p> 圖2.3-單片機(jī)組合復(fù)位電路圖單片機(jī)組合復(fù)位電路 圖中C1,R1構(gòu)成了上電復(fù)位電路。上電復(fù)位后,電源經(jīng)R1對(duì)C1充滿(mǎn)電源,C1等效于開(kāi)路,RST端為低電平;單片機(jī)正常工作。按開(kāi)關(guān)K后,C1兩端電荷經(jīng)R2迅速放電,K斷開(kāi)后,由C1、R1及電源完成對(duì)單片機(jī)的復(fù)位操作。在上述電路中,R2的取值一般為0~200?,C1、R1按上電復(fù)位電路的設(shè)計(jì)而取值。 復(fù)位電路的作用非常重要,能否成功復(fù)位關(guān)系但單片機(jī)系統(tǒng)能否正常
35、運(yùn)行的問(wèn)題。如果振蕩電路正常而單片機(jī)系統(tǒng)不能正常運(yùn)行,其主要原因是單片機(jī)沒(méi)有完成正常復(fù)位,程序計(jì)數(shù)器的值沒(méi)有回0,特殊功能寄存器沒(méi)有回到初始狀態(tài)。這時(shí)可以適當(dāng)?shù)卣{(diào)整上電復(fù)位電路的阻容值,增加其充電時(shí)間常數(shù)來(lái)解決問(wèn)題。</p><p> 本文采用上復(fù)位電路。</p><p> 3、LED數(shù)碼管顯示電路</p><p> 單片機(jī)系統(tǒng)中常用的顯示器有:發(fā)光二極管LE
36、D(Light Emitting Diode)顯示器、液晶LCD(Liquid Crystal Display)顯示器、CRT顯示器等。LED、LCD顯示器有兩種顯示結(jié)構(gòu):段顯示(7段、米字型等)和點(diǎn)陣顯示(5×8、8×8點(diǎn)陣等)。 </p><p><b> (1)靜態(tài)顯示方式</b></p><p> LED顯示器工作方式有兩種:靜態(tài)顯示方
37、式和動(dòng)態(tài)顯示方式。靜態(tài)顯示的特點(diǎn)是每個(gè)數(shù)碼管必須接一個(gè)8位鎖存器用來(lái)鎖存待顯示的字形碼。送入一次字形碼顯示字形一直保持,直到送入新字形碼為止。這種方法的優(yōu)點(diǎn)是占用CPU時(shí)間少,顯示便于監(jiān)測(cè)和控制。缺點(diǎn)是硬件電路比較復(fù)雜,成本較高。</p><p><b> (2)動(dòng)態(tài)顯示</b></p><p> 動(dòng)態(tài)顯示的特點(diǎn)是將所有位數(shù)碼管的段選線(xiàn)并聯(lián)在一起,由位選線(xiàn)控制是哪
38、一位數(shù)碼管有效。這樣一來(lái),就沒(méi)有必要每一位數(shù)碼管配一個(gè)鎖存器,從而大大地簡(jiǎn)化了硬件電路。選亮數(shù)碼管采用動(dòng)態(tài)掃描顯示。所謂動(dòng)態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺(jué)暫留作用,使人的感覺(jué)好像各位數(shù)碼管同時(shí)都在顯示。動(dòng)態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時(shí)應(yīng)略小于靜態(tài)顯示電路中的。 </p><p> 圖2.4 七段LED顯示器</p><p&g
39、t; 使用LED顯示器時(shí),要注意區(qū)分這兩種不同的接法。為了顯示數(shù)字或字符,必須對(duì)數(shù)字或字符進(jìn)行編碼。七段數(shù)碼管加上一個(gè)小數(shù)點(diǎn),共計(jì)8段。因此為L(zhǎng)ED顯示器提供的編碼正好是一個(gè)字節(jié)。用共陰LED顯示器顯示16進(jìn)制數(shù)的編碼已列在下表。</p><p><b> 共陰數(shù)碼管碼表</b></p><p> 0x3f , 0x06 , 0x5b , 0x4f , 0x6
40、6 , 0x6d ,</p><p> 0 1 2 3 4 5</p><p> 0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c ,</p><p> 6 7 8 9 A B</p><p> 0x39
41、, 0x5e , 0x79 , 0x71 , 0x00</p><p> C D E F 無(wú)顯示</p><p><b> 2.2各元器件介紹</b></p><p> AT89S51
42、
43、 AT89S51 是一種帶4K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的低電壓、高性能 CMOS8位微處理器。該器件采
44、用A</p><p> AT89S51圖如下:</p><p><b> ?。?)主要特性:</b></p><p> 8031 CPU與MCS-51兼容</p><p> 4K字節(jié)可編程FLASH存儲(chǔ)器(壽命:1000寫(xiě)/擦循環(huán)) </p><p> 全靜態(tài)工作:0Hz-24KHz&
45、lt;/p><p> 三級(jí)程序存儲(chǔ)器保密鎖定</p><p> 128*8位內(nèi)部RAM</p><p> 32條可編程I/O線(xiàn)</p><p> 兩個(gè)16位定時(shí)/器計(jì)數(shù)器</p><p><b> 6個(gè)中斷源</b></p><p><b> 可編程串行通
46、道</b></p><p> 低功耗的閑置和調(diào)電模式</p><p><b> VCC:供電電壓</b></p><p> GND: 接地 </p><p> ?。?) 各引腳及功能說(shuō)明</p><p> P0口:P0口為一個(gè)8位漏極開(kāi)路雙向I/O口。P0口能用于外部程序
47、數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FLASH編程時(shí),P0口作為原碼輸入口,當(dāng)FALSH進(jìn)行校驗(yàn)時(shí),P0口輸出原碼,此時(shí)P0口外部必須被拉高。</p><p> P1口: P1口是 一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口。P1口管腳寫(xiě)入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流。在FALSH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。</p><p>
48、; P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口。當(dāng)P2口被寫(xiě)入“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。</p><p> P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口。當(dāng)P3口寫(xiě)入“1”后,它們被內(nèi)部上拉為高電平并用作輸入。</p&g
49、t;<p> P3口:除作I/O口使用外,還有特殊功能如圖所示</p><p> P3口同時(shí)為編程和校驗(yàn)接收一些控制信號(hào)。</p><p> RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p><p> ALE/PROG:當(dāng)訪(fǎng)問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在FALSH編程期間,
50、此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6.因此它可用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如果想禁止ALE的輸出可在SFR8EH地址上置0.此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令時(shí)ALE才起作用。另外,該指令被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。</p><p> /PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取
51、指期間,每個(gè)機(jī)器周期兩次/PSEN有校。但在訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。</p><p> /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)。</p>
52、<p> XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入</p><p> XTAL2:來(lái)自反向振蕩器的輸出</p><p> ISP:在線(xiàn)編程引腳</p><p> P1.5、P1.6、P1.7、RST四個(gè)引腳可以作為在系統(tǒng)編程引腳</p><p><b> (3)振蕩器特性:</b>
53、</p><p> XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)件,XTAL2應(yīng)不接。其余輸入至內(nèi)部時(shí)鐘信號(hào)要通過(guò)一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無(wú)任何要求,但必須保證,脈沖的高低電平要求的寬度。</p><p><b> MAX232</b></p>
54、<p> MAX232是一種雙組驅(qū)動(dòng)器接收器,片內(nèi)含有一個(gè)電容性電壓發(fā)生器以便在單5V電源供電時(shí)提供EIA/TIA-232-E電平,每個(gè)接收器將EIA/TIA-232-E 電平輸入轉(zhuǎn)換為5 V TTL/CMOS電平。這些接收器具有1.3 V的典型門(mén)限及0.5V的典型遲滯,而且可以接收±30的輸入,每個(gè)驅(qū)動(dòng)器將TTL/CMOS輸入電平轉(zhuǎn)換為 EIA/TIA-232-E電平,其主要特點(diǎn)為:</p>&
55、lt;p><b> ①單5V電源工作</b></p><p> ?、贚inBiCMOSTM工藝技術(shù)</p><p> ?、蹆蓚€(gè)驅(qū)動(dòng)器及兩個(gè)接收器</p><p><b> ④±30V輸入電平</b></p><p> ?、莸碗娫措娏鳎旱湫椭凳?mA</p><
56、p> ?、薹螦NSI標(biāo)準(zhǔn)EIA/TIA-232-E及ITU推薦標(biāo)準(zhǔn) V.28 </p><p> ?、逧SD保護(hù)大于MIL-STD-883 標(biāo)準(zhǔn)的2000V</p><p><b> DS18B20 </b></p><p> DS18B20基本知識(shí)DS18B20數(shù)字溫度計(jì)是DALLAS公司生產(chǎn)的1-Wire,即單總線(xiàn)器件,具有線(xiàn)
57、路簡(jiǎn)單,體積小的特點(diǎn)。因此用它來(lái)組成一個(gè)測(cè)溫系統(tǒng),具有線(xiàn)路簡(jiǎn)單,在一根通信線(xiàn),可以?huà)旌芏噙@樣的數(shù)字溫度計(jì),十分方便。</p><p> DS18B20產(chǎn)品的特點(diǎn)(1)、只要求一個(gè)端口即可實(shí)現(xiàn)通信。(2)、在DS18B20中的每個(gè)器件上都有獨(dú)一無(wú)二的序列號(hào)。(3)、實(shí)際應(yīng)用中不需要外部任何元器件即可實(shí)現(xiàn)測(cè)溫。(4)、測(cè)量溫度范圍在-55。C到+125。C之間。(5)、數(shù)字溫度計(jì)的分辨率用戶(hù)可以從9位到1
58、2位選擇。(6)、內(nèi)部有溫度上、下限告警設(shè)置。DS18B20的引腳介紹 TO-92封裝的DS18B20的引腳排列見(jiàn)圖1,其引腳功能描述見(jiàn)表1。 (底視圖)圖1</p><p> 表1 DS18B20詳細(xì)引腳功能描述</p><p> 第三章 系統(tǒng)軟件設(shè)計(jì)</p><p><b> 3.1各部分流程圖</b&
59、gt;</p><p><b> 第四章調(diào)試</b></p><p><b> 4.1綜合調(diào)試</b></p><p> 單片機(jī)系統(tǒng)的硬件調(diào)試和軟件調(diào)試是不能分開(kāi)的,去多硬件錯(cuò)誤是在軟件調(diào)試中被發(fā)現(xiàn)和糾正的,但是硬件的調(diào)試是基礎(chǔ),如果硬件調(diào)試不通過(guò)軟件設(shè)計(jì)則是無(wú)從做起,所以我們是先排除明顯的硬件故障以后,再和軟件
60、結(jié)合起來(lái)以進(jìn)一步排除故障。硬件設(shè)計(jì)從布線(xiàn)到焊接安裝完成之后,我就開(kāi)始進(jìn)入硬件調(diào)試階段,調(diào)試大體分為以下幾步:</p><p> 1. 硬件靜態(tài)的調(diào)試</p><p><b> ?、倥懦壿嫻收?lt;/b></p><p> 這類(lèi)故障由于設(shè)計(jì)和加工制板過(guò)程中工藝性錯(cuò)誤所造成的。主要包括錯(cuò)線(xiàn)、開(kāi)路、短路。我將其排除的方法是首先將焊制的電路板認(rèn)真對(duì)
61、照原理圖,看兩者是否一致,特別主意了電源系統(tǒng)的檢查,以防止電源短路和極性錯(cuò)誤,并利用數(shù)字萬(wàn)用表的短路測(cè)試功能重點(diǎn)檢查了系統(tǒng)總線(xiàn)是否存在相互之間短路或與其他信號(hào)線(xiàn)路短路。</p><p><b> ?、谂懦骷?lt;/b></p><p> 我考慮到造成這類(lèi)錯(cuò)誤的原因有兩個(gè):一個(gè)是元器件買(mǎi)來(lái)是就已經(jīng)壞了,另一個(gè)是由于安裝錯(cuò)誤,造成器件燒壞。我采取檢查器件與設(shè)計(jì)要求的
62、型號(hào)、規(guī)格和安裝是否一致,在保證安裝無(wú)誤后,用替換法排除了錯(cuò)誤。</p><p><b> ?、叟懦娫垂收?lt;/b></p><p> 在通電前,首先檢查了電源電壓的幅值和極性,避免造成集成塊損壞,加電后檢查各插件上引腳的電位,先檢查Vcc與GND之間電位,在5V~4.8V 之間屬正常,若有高壓,聯(lián)機(jī)仿真器調(diào)試時(shí),將會(huì)損壞仿真器等,有時(shí)會(huì)使系統(tǒng)中的集成塊發(fā)熱損壞。&
63、lt;/p><p><b> 2.聯(lián)機(jī)仿真調(diào)試</b></p><p> 聯(lián)機(jī)仿真借助了仿真開(kāi)發(fā)裝置、示波器、萬(wàn)用表等工具,這些工具是單片機(jī)開(kāi)發(fā)的最基本工具。</p><p> 信號(hào)線(xiàn)是聯(lián)絡(luò)AT89S51和外部器件的紐帶,如果信號(hào)線(xiàn)聯(lián)接錯(cuò)誤或時(shí)序不對(duì),那么都會(huì)造成對(duì)外圍電路讀寫(xiě)錯(cuò)誤,51系列單片機(jī)的信號(hào)線(xiàn)大體分為讀、寫(xiě)信號(hào)線(xiàn)、時(shí)鐘信號(hào)線(xiàn)、外部
64、程序存儲(chǔ)器讀選通信號(hào)、地址所存信號(hào)、復(fù)位信號(hào)等幾大類(lèi),這些信號(hào)大多屬于脈沖信號(hào),對(duì)于脈沖信號(hào)借助示波器用常規(guī)方法很難測(cè)到,我利用軟件編程的方法來(lái)實(shí)現(xiàn)。</p><p> 顯示器部分調(diào)試,首先將AT89S51與LED 顯示分離,用靜態(tài)方法先測(cè)試LED 顯示,分別用規(guī)定的電平加至控制數(shù)碼管段和位顯示的引腳,看數(shù)碼管顯示是否與理論上一致,不一致,一般LED顯示器接觸不良所致,必須找出故障。</p>&l
65、t;p><b> 調(diào)試通過(guò)。</b></p><p><b> 致謝</b></p><p> 本設(shè)計(jì)介紹了溫度計(jì)的測(cè)量和控制之間的關(guān)系:檢測(cè)是控制的基礎(chǔ)和前提,而檢測(cè)的精度必須高于控制的精確度,否則無(wú)從實(shí)現(xiàn)控制的精度要求。通過(guò)這次實(shí)驗(yàn),我更加深刻的了解了AT89S51單片機(jī)的內(nèi)部結(jié)構(gòu),和 DS18B20溫度傳感器的工作原理,熟悉了一
66、些常用的指令使用,增強(qiáng)了處理混亂邏輯關(guān)系的能力。</p><p><b> 參考文獻(xiàn)</b></p><p> 樓然苗、李光飛編著. 《51系列單片機(jī)設(shè)計(jì)實(shí)例》 </p><p> 北京航空航天大學(xué)出版社 2004年10月</p><p> 何立民、張俊謨編著. 《單片機(jī)中級(jí)教程原理與應(yīng)用》北京航空航天大學(xué)出版
67、社 1999年12月</p><p> 馮文旭、劉傳璽編著.《單片機(jī)應(yīng)用技術(shù)》</p><p> 中國(guó)礦業(yè)大學(xué)出版社 2003年5月 </p><p> 【4】 張正明、卓鄭安編著 《電路與電子技術(shù)》 北京航空航天大學(xué)出版社 2004年9月 </p><p><b> 附錄</b><
68、/p><p> 附錄1 元件清單</p><p><b> 附錄2匯編語(yǔ)言程序</b></p><p> ;************************</p><p> ;* 匯編語(yǔ)言程序 *</p><p> ;************************</
69、p><p> ENABLE EQU 00H</p><p> DTSIGN EQU 01H</p><p> SDSIGN EQU 02H</p><p> HAVE EQU 03H</p><p> PSHU EQU 04H</p><p> LE
70、D0 EQU P0.0</p><p> LED1 EQU P0.1</p><p> LED2 EQU P0.2</p><p> LED3 EQU P0.3</p><p> WR1820 EQU P1.1</p><p> SEG EQU
71、 P2</p><p> WARNH0 EQU 31H</p><p> WARNH1 EQU 32H</p><p> TEMP0 EQU 34H</p><p> TEMP1 EQU 35H</p><p> DIS0 EQU 36H</p><
72、;p> DIS1 EQU 37H</p><p> DIS2 EQU 38H</p><p> DIS3 EQU 39H</p><p> SDAT EQU 'D'</p><p> WORK EQU 'W'</p><
73、;p> PAUSE EQU 'P'</p><p> ERR EQU 'E'</p><p> ORG 0000H</p><p> AJMP MAIN</p><p> ORG 000BH</p><p> AJMP
74、T0INT</p><p> ORG 0023H</p><p> AJMP S_INT</p><p> ;*******************</p><p> ;* 主程序 *</p><p> ;*******************</p><p
75、> ORG 0030H</p><p> MAIN: MOV SP,#40H ; 堆棧棧底放50H</p><p> MOV WARNH0,#30H</p><p> MOV WARNH1,#00</p><p> CALL T0INIT ;初始化
76、T0</p><p> CALL T1INIT ;初始化T1</p><p> CALL SINIT ;初始化串口</p><p> CLR ENABLE ;清使能標(biāo)志</p><p> CLR DTSIGN ;清數(shù)據(jù)
77、標(biāo)志</p><p> JNB ENABLE,$ ;查詢(xún)使能,無(wú)效則停機(jī)</p><p> LCALL INT_EN</p><p> LOOP: CALL DISPLY ;調(diào)用顯示子程序</p><p> JNB ENABLE,$ ;查詢(xún)使能,無(wú)效則停機(jī)
78、</p><p> AJMP LOOP</p><p><b> ;T0初始化</b></p><p> T0INIT:ORL TMOD,#01H</p><p> ANL TMOD,#0F1H</p><p> MOV TH0,#3CH</p><
79、p> MOV TL0,#0B0H</p><p> MOV R7,#15H ;軟件記數(shù)初值</p><p><b> RET</b></p><p><b> ;T1初始化</b></p><p> T1INIT:ORL TMOD,#20H</
80、p><p> ANL TMOD,#02FH</p><p> MOV TH1,#0FDH</p><p> MOV TL0,#0FDH</p><p> CLR ET1 ; 關(guān)T1中斷</p><p> SETBTR1 ; T1開(kāi)始
81、計(jì)數(shù)</p><p><b> RET</b></p><p><b> ;串口初始化</b></p><p> SINIT: ANL PCON,#7FH</p><p> MOV SCON,#50H</p><p> SETBEA
82、 ; 開(kāi)全局中斷</p><p> SETB ES ; 開(kāi)串口中斷</p><p><b> RET</b></p><p><b> ;開(kāi)中斷子程序</b></p><p> INT_EN: SETB ET0
83、 ;開(kāi)T0中斷</p><p> SETB TR0</p><p> RET ;T0開(kāi)始計(jì)數(shù)</p><p><b> ;關(guān)中斷子程序</b></p><p> INT_DS: CLR ET0 ;關(guān)T0中斷</p>&
84、lt;p> CLR TR0 ;T0停止計(jì)數(shù)</p><p><b> RET</b></p><p> ;******************</p><p> ;* 顯示子程序 *</p><p> ;******************</p>&l
85、t;p> DISPLY: PUSH ACC ;保護(hù)現(xiàn)場(chǎng)</p><p> PUSH 06H</p><p> MOV A,TEMP1 ;溫度整數(shù)部分送A</p><p> MOV B,#100H</p><p> DIV AB
86、 ;相除取百位</p><p> MOV DIS3,A ;百位送DIS3</p><p> MOV A, B ; 余數(shù)送 A</p><p> MOV B,#10</p><p> DIV AB ; 相除取十位</p>
87、;<p> MOV DIS2,A ;十位送DIS2</p><p> MOV DIS1,B ;個(gè)位送DIS1</p><p> MOV DIS0,TEMP0 ;小數(shù)部分送DIS0</p><p> MOV DPTR,#ZIXING ;送字型碼首地址</p
88、><p> MOV A,DIS0 ;取小數(shù)</p><p> MOVC A,@A+DPTR ;取對(duì)應(yīng)字型碼</p><p> SETB LED0</p><p> SETB LED1</p><p> SETB LED2</p><p&
89、gt; SETB LED3</p><p> CLR LED0</p><p> MOV SEG, A ;送字型碼</p><p> CALL DELAY0</p><p> MOV A,DIS1 ;取各位</p><p> MOVC
90、A,@A+DPTR ;取對(duì)應(yīng)字型碼</p><p> CLR ACC.7 ;清最高位顯示小數(shù)點(diǎn)</p><p> SETB LED0</p><p> SETB LED1</p><p> SETB LED2</p><p> SETB LE
91、D3</p><p> CLR LED1</p><p> MOV SEG, A ;送字型碼</p><p> CALL DELAY0</p><p> MOV A, DIS2 ;取十位</p><p> MOVC A,@A+DPT
92、R ;取對(duì)應(yīng)字型碼</p><p> SETB LED0</p><p> SETB LED1</p><p> SETB LED2</p><p> SETB LED3</p><p> CLR LED2</p><p> MOV
93、 SEG,A ;送字型碼</p><p> CALL DELAY0</p><p> MOV A,DIS3 ;取百位</p><p> JNB FSHU,ZHENG ;判斷是否為正數(shù)</p><p> MOV A,#16
94、 ;如果不是正數(shù)送'-' ZHENG: MOVC A,@A+DPTR ;取對(duì)應(yīng)字型碼</p><p> SETB LED0</p><p> SETB LED1</p><p> SETB LED2</p><p> SETB LED3</p
95、><p> CLR LED3</p><p> MOV SEG, A ;送字型碼</p><p> CALL DELAY0</p><p> OUTDIS: POP 06H</p><p> POP ACC</p><p><b
96、> RET</b></p><p> ZIXING: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H ; 共陽(yáng)數(shù)碼管字型碼</p><p> DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0BFH</p><p><b> ;延遲子程序</b><
97、;/p><p> DELAY0: MOV R6,#1FH</p><p> DEL0: MOV R5,#0bh</p><p><b> DEL1: NOP</b></p><p> DJNZ R5,DEL1</p><p> DJNZ R6,DEL0</p>
98、;<p><b> RET</b></p><p> ; ************************</p><p> ; * 串口中斷 *</p><p> ; ************************</p><p> S_INT: PUSH ACC
99、</p><p> JNB T I,RINT ;若不是發(fā)送中斷則轉(zhuǎn)接收中斷處理程序</p><p> CLR TI ;清發(fā)中斷標(biāo)志</p><p> RINT: JBC RI,RXD ;判斷是否收中斷,若不是退出</p><p> OUTSint:
100、 POP ACC</p><p><b> RETI</b></p><p> RXD: MOV A,SBUF ; 將輸入緩沖送A</p><p> JNB DTSIGN, COMMEND0 ;判斷是否為上位機(jī)發(fā)送數(shù)據(jù)</p><p> MOV
101、 @R0,A ; 若是數(shù)據(jù)送A里面的數(shù)到警報(bào)溫度RAM</p><p> INC R0</p><p> DJNZ R6,OUTSint ; 未送完則退出等待</p><p> CLR DTSIGN ; 送完,清數(shù)據(jù)標(biāo)志位</p><p> AJM
102、P OUTSint</p><p> COMMEND0:CJNE A,#SDAT,COMMEND1 ; 判斷PC是否開(kāi)始發(fā)送數(shù)據(jù)</p><p> SETB DTSIGN ;數(shù)據(jù)標(biāo)志位置1</p><p> MOV R6,#04H</p><p> MOV R0,#WARNH0
103、 ; R0送警報(bào)溫度首地址</p><p> AJMP OUTSint</p><p> COMMEND1: CJNE A,#WORK,NOTWORK ;判斷是否為允許工作命令</p><p> SETB ENABLE ;若允許工作使能標(biāo)志置1</p><p> LCALL INT_EN
104、 ;開(kāi)中斷</p><p> AJMP OUTSint</p><p> NOTWORK: CJNE A,#PAUSE,NOTPAU ;判斷是否為暫停工作命令</p><p> CLR ENABLE ;若暫停工作使能標(biāo)志清0</p><p> LCALL INT_DS
105、 ;關(guān)中斷</p><p> MOV P0,0FFH</p><p> MOV P1,0FFH</p><p> AJMP OUTSint</p><p> NOTPAU:CJNE A,#ERR,ISERR0 ;判斷數(shù)據(jù)是否錯(cuò)誤</p><p>
106、 JB SDSIGN,NOERR ;判斷發(fā)送數(shù)據(jù)為第一個(gè)字節(jié)還是第二個(gè)</p><p> MOV R6,#02H ;若為第一個(gè),置發(fā)送計(jì)數(shù)</p><p> SETB SDSIGN ;發(fā)送標(biāo)志置1</p><p> MOV R0,#TEMP0 ;溫度數(shù)據(jù)指針<
107、/p><p> NOERR1: MOV A,@R0 ;溫度數(shù)據(jù)送A</p><p> MOV SBUF ,A ;發(fā)送溫度數(shù)據(jù)</p><p> INC R0 ;指針加1</p><p> DJNZ R6,OUTSint</
108、p><p> CLR SDSIGN ;清發(fā)送標(biāo)志</p><p> AJMP OUTSint</p><p> ISERR0: MOV A, #45H ;錯(cuò)誤,發(fā)'E' 的ASCII碼</p><p> MOV SBUF,A</p><
109、p> AJMP OUTSint</p><p> ; ********************</p><p> ;* T0中斷子程序 *</p><p> ;*********************</p><p> T0INT: PUSH ACC ;保護(hù)現(xiàn)場(chǎng)</p
110、><p> PUSH 06H</p><p> PUSH 05H</p><p> MOV TL0,#0B0H ;初值重裝</p><p> MOV TH0,#3CH</p><p> DJNZ R7, OUTSint</p><p>
111、MOV R7, #15H</p><p> LCALL GET_TEMPER ;讀取溫度</p><p> JNB HAVE,OUTT0int</p><p> MOV A,TEMP1</p><p><b> CLR C</b></p><p>
112、 SUBB A,WARNH0 ;將讀取的溫度與高溫限比較</p><p> TINT0: JNC TINT1 ;判斷是否大于高溫限</p><p> AJMP TINT2 ;不大于轉(zhuǎn)TINT2</p><p> TINT1:MOV A,#'H'
113、 ;大于高溫限發(fā)送'H'到 PC</p><p> MOV SBUF,A</p><p> AJMP TINT4</p><p> TINT2: SUBB A,WARNH1 ;將讀取的溫度與低溫限比較</p><p> JC TINT3 ;判
114、斷是否小于低溫限</p><p> AJMP TINT4 ;不小于轉(zhuǎn)TINT4</p><p> TINT3: MOV A,#'L' ;小于低溫限發(fā)送 'L'到PC</p><p> MOV SBUF,A</p><p> TINT4:
115、 CALL PRO ; 處理數(shù)據(jù)</p><p> OUTT0int: POP 05H</p><p> POP 06H</p><p> POP ACC</p><p><b> RETI</b></p><p> ; ******
116、************************</p><p> ; * 從18B20獲得溫度數(shù)據(jù)程序 *</p><p> ; ******************************</p><p> GET_TEMPER:</p><p> CALL INI_18B20 ;操作前先復(fù)位</
117、p><p> JB HAVE,GET0 ;若18 20存在則轉(zhuǎn)</p><p> MOV TEMP0,#0FH ;數(shù)碼管顯示000E</p><p> MOV TEMP1,#00H</p><p> MOV A,#'N' ;發(fā)送'
118、;N'到計(jì)算機(jī)</p><p> MOV SBUF,A</p><p> AJMP OUTGET ;退出</p><p> GET0: MOV A,#0CCH ;跳過(guò) ROM匹配</p><p> CALL WR_18B20</p><
119、p> MOV A,#44H ;開(kāi)始轉(zhuǎn)換</p><p> CALL WR_18B20</p><p> MOV R6,#11H ;延遲約800MS</p><p> GET1: LCALL DISPLY</p><p> DJNZ R6,GET1&l
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)--單片機(jī)溫度控制系統(tǒng)
- 單片機(jī)課程設(shè)計(jì)--溫度控制系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)(溫度控制系統(tǒng))
- 單片機(jī)課程設(shè)計(jì)--數(shù)字溫度控制系統(tǒng)
- 單片機(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ì)
- 課程設(shè)計(jì)---基于單片機(jī)的溫度控制系統(tǒng)
- 溫室大棚溫度調(diào)節(jié)控制系統(tǒng)(單片機(jī)課程設(shè)計(jì))
- 單片機(jī)溫度控制課程設(shè)計(jì)
- 基于單片機(jī)的溫度控制系統(tǒng)課程設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)——單片機(jī)控制步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)
- 課程設(shè)計(jì)---mcs-51單片機(jī)溫度控制系統(tǒng)
- 單片機(jī)水位控制系統(tǒng)課程設(shè)計(jì)
- 冷庫(kù)單片機(jī)控制系統(tǒng)課程設(shè)計(jì)
- 單片機(jī)的控制系統(tǒng)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---退火爐溫度控制系統(tǒng)
- 單片機(jī)課程設(shè)計(jì)---基于at89s52 單片機(jī)的溫度控制系統(tǒng)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的水位控制系統(tǒng)設(shè)計(jì)
- 基于51單片機(jī)的溫度控制系統(tǒng)的設(shè)計(jì)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論