

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