已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2008 屆畢業(yè)設(shè)計(jì)(說明書)題目: 數(shù)字溫度計(jì)的設(shè)計(jì) 班 級:08高職機(jī)電二班 學(xué) 號:012243552274 姓 名: 1235 指導(dǎo)教師: 55464 2011年4月41數(shù)字溫度計(jì)的設(shè)計(jì)學(xué)生姓名: 4 學(xué) 號:4 專 業(yè):機(jī)電一體化技術(shù) 班 級:4 指導(dǎo)教師: 4 完成日期: 4 摘 要在一些溫控系統(tǒng)電路中,廣泛采用的是通過熱電偶、熱電阻或PN結(jié)測溫電路經(jīng)過相應(yīng)的信號調(diào)理電路,轉(zhuǎn)換成AD轉(zhuǎn)換器能接收的模擬量,再經(jīng)過采樣保持電路進(jìn)行AD轉(zhuǎn)換,最終送入單片機(jī)及其相應(yīng)的外圍電路,完成監(jiān)控。但是由于傳統(tǒng)的信號調(diào)理電路實(shí)現(xiàn)復(fù)雜、易受干擾、不易控制且精度不高。本文介紹單片機(jī)結(jié)合DS18B20溫度控制系統(tǒng)設(shè)計(jì),因此,本系統(tǒng)用一種新型的可編程溫度傳感器(DS18B20),不需復(fù)雜的信號調(diào)理電路和AD轉(zhuǎn)換電路能直接與單片機(jī)完成數(shù)據(jù)采集和處理,實(shí)現(xiàn)方便、精度高,可根據(jù)不同需要用于各種場合。關(guān)鍵詞:單片機(jī),AT89S51,MAX232,傳感器DS18B20目 錄摘 要I第一章 緒論1 1.1 單片機(jī)概述1 1.2 選題背景及設(shè)計(jì)意義2 1.3設(shè)計(jì)方案論證3第二章 硬件設(shè)計(jì)5 2.1硬件電路的設(shè)計(jì)5 2.2各元器件介紹12第三章 系統(tǒng)軟件設(shè)計(jì)17 3.1設(shè)計(jì)流程圖17 3.2匯編語言程序21第四章 調(diào) 試34 4.1終合調(diào)試34致 謝36參考文獻(xiàn)37附錄38第一章 緒論1.1 單片機(jī)概述單片機(jī)的結(jié)構(gòu)特征是將組成計(jì)算機(jī)的基本部件集成在一塊晶體芯片上,構(gòu)成一臺功能獨(dú)特的單片微型計(jì)算機(jī)。一臺典型的單片機(jī)的基本組成結(jié)構(gòu)包括中央處理器(CPU),存儲器(ROM和RAM),并行I/O口,串行I/O口,定時器/計(jì)數(shù)器,定時電路及元件。由此可見,單片機(jī)在結(jié)構(gòu)上突破了常規(guī)的按邏輯功能劃分芯片。由多片構(gòu)成了微型計(jì)算機(jī)的設(shè)計(jì)思想,將構(gòu)成計(jì)算機(jī)的許多功能集成在一塊晶體芯片上。單片機(jī)的特點(diǎn):1 單片機(jī)中的存儲器ROM和RAM是嚴(yán)格分工的。ROM為程序存儲器,只存放程序、常數(shù)及數(shù)據(jù)表格。而RAM則為數(shù)據(jù)存儲器,用作工作區(qū)及存放變量。這樣的結(jié)構(gòu)主要是考慮到單片機(jī)用于控制系統(tǒng)中,有較大的程序存儲空間,把已調(diào)試好的程序固化在ROM中,而把少量的隨機(jī)數(shù)據(jù)存放在RAM中,這樣,小容量數(shù)據(jù)存儲器能以高速RAM形式集成在單片機(jī)內(nèi),以加快單片機(jī)的執(zhí)行速度。但單片機(jī)上RAM是作為數(shù)據(jù)存儲器用,而不是當(dāng)作高速數(shù)據(jù)緩沖存儲器(Cache)用??煽啃粤己茫簡纹瑱C(jī)是按照工業(yè)控制要求設(shè)計(jì)的,其抗工業(yè)噪聲干擾優(yōu)于一般的 CPU,程序指令及常數(shù)數(shù)據(jù)都燒在ROM內(nèi),其許多信號通道均在同一芯片內(nèi),因此可靠性較高。2 采用面向控制的指令系統(tǒng)。為滿足控制的需要,單片機(jī)的邏輯控制能力要優(yōu)于同等級的CPU,持別是單片機(jī)具有很強(qiáng)的位處理能力。單片機(jī)的運(yùn)行速度也較高。3 單片機(jī)的I/O引腳通常是多功能的。由于單片機(jī)芯片上引腳數(shù)有限,了解決實(shí)際引腳數(shù)和需要的信號線數(shù)的矛盾,采用了引腳功能復(fù)用的方法,引腳處于何種功能,可由指令來設(shè)置或由機(jī)器狀態(tài)來區(qū)分。4 系列齊全,功能擴(kuò)展性強(qiáng)。單片機(jī)有內(nèi)部掩膜ROM、內(nèi)部EPROM和外接ROM等形式,并可方便地擴(kuò)展外部的ROM、RAM及I/O接口,與許多通用的微機(jī)接口芯片兼容,對應(yīng)用系統(tǒng)的設(shè)計(jì)和生產(chǎn)帶來極大的方便。5 單片機(jī)的功能是通用的。單片機(jī)雖然主要作控制器用,但是功能上還是通用的,可 以象一般微處理器那樣廣泛應(yīng)用在各個方面。單片機(jī)的應(yīng)用領(lǐng)域如下:1 家用電器領(lǐng)域:目前國內(nèi)各種家用電器已普遍采用單片機(jī)控制取代傳統(tǒng)的控制電路,做成單片機(jī)控制系統(tǒng)。2 辦公自動化領(lǐng)域:現(xiàn)代辦公室所使用的大量通信,信息產(chǎn)品多數(shù)采用了單片機(jī)。3 在商業(yè)營銷系統(tǒng)已廣泛使用的電子秤,收款機(jī),條形碼閱讀器,倉庫安全監(jiān)控系統(tǒng),商場保安系統(tǒng),空氣調(diào)節(jié)系統(tǒng)等,目前已紛紛采用單片機(jī)構(gòu)成專用系統(tǒng)。4 工業(yè)自動化:如工業(yè)過程控制,過程監(jiān)測,工業(yè)控制器及機(jī)電一體化系統(tǒng)等,這些系統(tǒng)除一些小型工控機(jī)之外,許多都是以單片機(jī)為核心的單機(jī)或多機(jī)網(wǎng)絡(luò)系統(tǒng)。5 智能儀表與集成智能傳感器傳統(tǒng)的控制電路:目前各種變送器,電氣測量儀表普遍采用單片機(jī)應(yīng)用系統(tǒng)替代傳統(tǒng)的測量系統(tǒng),使測量系統(tǒng)具有各種智能化功能。將單片機(jī)和傳感器相結(jié)合可以構(gòu)成新一代的智能傳感器。他將傳感器初級變換后的電量做進(jìn)一步的變換,處理,輸出能滿足遠(yuǎn)距離傳送,能與微機(jī)接口的數(shù)字信號。6 汽車電子與航空航天電子系統(tǒng):通常在這些電子系統(tǒng)中的集中顯示系統(tǒng),動力監(jiān)測控制系統(tǒng),自動駕馭系統(tǒng),通信系統(tǒng),以及運(yùn)行監(jiān)視器(黑匣子)等,都要都成冗余的網(wǎng)絡(luò)系統(tǒng)。1.2 選題背景及設(shè)計(jì)意義一、選題背景最早的溫度計(jì)是在1593年由意大利科學(xué)家伽利略發(fā)明的。他的第一只溫度計(jì)是一根一端敞口的玻璃管,另一端帶有核桃大的玻璃泡。使用時先給玻璃泡加熱,然后把玻璃管插入水中。隨著溫度的變化,玻璃管中的水面就會上下移動,根據(jù)移動的多少就可以判定溫度的變化和溫度的高低。這種溫度計(jì),受外界大氣壓強(qiáng)等環(huán)境因素的影響較大,所以測量誤差大。荷蘭人華倫海特在1709年利用酒精,在1714年又利用水銀作為測量物質(zhì),制造了更精確的溫度計(jì)。把一定濃度的鹽水凝固時的溫度定為0,把純水凝固時的溫度定為32,把標(biāo)準(zhǔn)大氣壓下水沸騰的溫度定為212,用代表華氏溫度,這就是華氏溫度計(jì)。 二、設(shè)計(jì)意義本設(shè)計(jì)所介紹的數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對測溫比較準(zhǔn)確的場所,或科研實(shí)驗(yàn)室使用。它具有結(jié)構(gòu)簡單,不需外接元件,采用一根I/ O 數(shù)據(jù)線既可供電又可傳輸數(shù)據(jù)、并可由用戶設(shè)置溫度報警界限等特點(diǎn),可廣泛用于食品庫、冷庫、糧庫等需要控制溫度的地方。該設(shè)計(jì)控制器使用單片機(jī)AT 89S51,測溫傳感器使用DS18B20,,實(shí)現(xiàn)溫度顯示,能準(zhǔn)確達(dá)到以下要求:測溫范圍-55125 精度誤差小于0.5。LED數(shù)碼管直讀顯示 可以任意設(shè)置溫度的上下限報警功能。1.3設(shè)計(jì)方案論證方案一:本電路是溫度計(jì)的設(shè)計(jì),在測溫電路中利用熱敏電阻器件的感溫效應(yīng),將隨被測溫變化的電壓或電流采集過來,進(jìn)行A/D轉(zhuǎn)換后,用單片機(jī)進(jìn)行數(shù)據(jù)處理,經(jīng)顯示電路就可以顯示出來。方案二:在日常生活及工農(nóng)業(yè)生產(chǎn)中經(jīng)常要用到溫度的檢測及控制,傳統(tǒng)的測溫元件有熱電偶和熱電阻。而熱電偶和熱電阻測出的一般都是電壓,再轉(zhuǎn)換成對應(yīng)的溫度,需要比較多的外部硬件支持,硬件電路復(fù)雜,軟件調(diào)試復(fù)雜,制作成本高。方案三:基于單片機(jī)的溫度傳感器設(shè)計(jì)的數(shù)字溫度計(jì)已經(jīng)很成熟,各種精度很高的溫度計(jì)不斷推出。數(shù)字溫度計(jì)要求檢測的精度必須高于控制的精確度,否則無從實(shí)現(xiàn)控制的精度要求。所以精度已經(jīng)成為數(shù)字溫度計(jì)的一項(xiàng)重要的性能參數(shù)。因此追求高精度是數(shù)字溫度計(jì)的一個目標(biāo)。不僅如此,檢測還涉及國計(jì)民生各個部門,可以說在所以科學(xué)技術(shù)領(lǐng)域無時不在進(jìn)行檢測??茖W(xué)技術(shù)的發(fā)展和檢測技術(shù)的發(fā)展是密切相關(guān)的?,F(xiàn)代化的檢測手段能達(dá)到的精度、靈敏度及測量范圍等,在很大程度上決定了科學(xué)技術(shù)的發(fā)展水平。同時,科學(xué)技術(shù)的發(fā)展達(dá)到的水平越高,又為檢測技術(shù)、傳感器技術(shù)提供了新的前提手段。目前市場上出現(xiàn)了很多傳感器,很多精度高的傳感器已經(jīng)出現(xiàn),而且精度越來越高。數(shù)字溫度計(jì)未來將會更精確、更人性化,為我們做出更多貢獻(xiàn)。為此我們選擇方案三的設(shè)計(jì),框圖如下:圖1-1 時鐘結(jié)構(gòu)圖LED顯示主控制器溫 度傳感單片機(jī)復(fù)位報警點(diǎn)按鍵時鐘振蕩 溫度計(jì)電路設(shè)計(jì)總體設(shè)計(jì)方框圖如圖所示,控制器采用單片機(jī)AT89S51,溫度傳感器采用DS18B20,用四位LED數(shù)碼管以串行口傳送數(shù)據(jù)實(shí)現(xiàn)溫度顯示。第二章 硬件設(shè)計(jì)2.1硬件電路的設(shè)計(jì)圖2-1 硬件電路設(shè)計(jì)圖本設(shè)計(jì)系統(tǒng)共由四部分組成: AT89S51為控制裝置,負(fù)責(zé)各部分的控制和數(shù)據(jù)采集。 DB9和MAX232組成了通訊系統(tǒng),負(fù)責(zé)和上位機(jī)通訊的TTL/RS232電平轉(zhuǎn)換。 DS18B20為溫度測量裝置,負(fù)責(zé)對溫度進(jìn)行采集并轉(zhuǎn)換為數(shù)字信號送AT89S51進(jìn)行處理。 共陽極數(shù)碼管為顯示裝置,負(fù)責(zé)顯示工作狀態(tài)和DS18B20 采集到的數(shù)據(jù)。注:LED數(shù)碼管驅(qū)動電路中采用P0 口加上拉電阻的形式,為方便焊接,本設(shè)計(jì)中電阻使用了排阻的方式,三極管使用的是S9012.1、時鐘電路時鐘電路可以簡單定義如下:1.就是產(chǎn)生象時鐘一樣準(zhǔn)確的振蕩電路。 2.任何工作都按時間順序。用于產(chǎn)生這個時間的電路就是時鐘電路。時鐘電路用于產(chǎn)生單片機(jī)工作所需的時鐘信號,時序是指令執(zhí)行中各信號之間的相互關(guān)系。單片機(jī)本身就如同一個復(fù)雜的同步時序電路,為了保證同步工作方式的實(shí)現(xiàn),電路應(yīng)在唯一的時鐘信號控制下嚴(yán)格地按時序進(jìn)行工作。在AT89S51單片機(jī)內(nèi)部帶有時鐘電路,因此,只需要在片外通過XTAL1和XTAL2引腳接入定時控制元件(晶體振蕩器和電容),即可構(gòu)成一個穩(wěn)定的自激振蕩器。在AT89s51芯片內(nèi)部有一個高增益反相放大器,而在芯片的外部,XTAL1和XTAL2之間跨接晶體振蕩器和微調(diào)電容。在單片機(jī)的XTAL1腳和XTAL2腳之間并接一個晶體振蕩器就構(gòu)成了內(nèi)部振蕩方式。AT89S51單片機(jī)內(nèi)部有一個高增益的反相放大器,XTAL1為內(nèi)部反相放大器的輸入端,XTAL2為內(nèi)部反相放大器的輸出端,在其兩端接上晶振后,就構(gòu)成了自激振蕩電路,并產(chǎn)生振蕩脈沖,振蕩電路輸出的脈沖信號的頻率就是晶振的固有頻率。在實(shí)際應(yīng)用中通常還需要在晶振的兩端和地之間各并上一個小電容。AT89S51的時鐘電路如圖2.2所示:圖中,電容器C1、C2常稱為微調(diào)電容,其作用有三個:圖2-2 AT89S51的時鐘電路快速起振、穩(wěn)定振蕩頻率、微調(diào)振蕩頻率。AT89S51單片機(jī)允許外接033M Hz的晶振,電容器C1、C2可取5pF33pF。一般情況下,使用頻率較低的晶振時,C1、C2的容量可選大一點(diǎn)。為了更好地保證振蕩器穩(wěn)定可靠地工作,在實(shí)際裝配電路時,晶振X和電容C1、C2應(yīng)盡可能地安裝在XTAL1、XTAL2引腳附近。內(nèi)部振蕩方式所得到時鐘信號比較穩(wěn)定,在實(shí)際電路中,一般是選用內(nèi)部振蕩方式。用晶振和電容構(gòu)成諧振電路。電容大小與晶振頻率和工作電壓有關(guān)。但電容的大小影響振蕩器的穩(wěn)定性和起振的快速性,為了提高精度,本實(shí)驗(yàn)板采用30pF的電容作為微調(diào)電容。在設(shè)計(jì)電路板時,晶振、電容等均應(yīng)盡可能靠近芯片,以減小分布電容,保證振蕩器振蕩的穩(wěn)定性。2、復(fù)位電路復(fù)位的功能:復(fù)位是單片機(jī)的初始化操作,其目的是使CPU和系統(tǒng)中各部分處于一個確定的狀態(tài),并從這一狀態(tài)開始工作。系統(tǒng)上電路或死機(jī)后都要進(jìn)行復(fù)位操作。單片機(jī)復(fù)位時,將程序計(jì)數(shù)器PC初始化為0000H,表明復(fù)位后程序從0000H地址單元開始執(zhí)行,同時復(fù)位時輸出控制信號ALE,PSEN均為高電平。復(fù)位后,P0P3口輸出高電平,且使準(zhǔn)雙向口均處于輸入狀態(tài)。復(fù)位不改變片內(nèi)RAM單元的內(nèi)容,但使各特殊功能寄存器SFR回復(fù)到初始狀態(tài),復(fù)位后各特殊功能寄存器值如表26所示:表26 主要特殊功能寄存器復(fù)位初始值特殊功能寄存器 初始值特殊功能寄存器初始值A(chǔ)CC00HTCON00HB00HTMOD00HPSW00HTL000HSP07HTH000HDPTR0000HTL100HP0P3FFHTH100HPCON0XXX 0000BT2CON00HAUXRXXX0 0XX0BT2MODXXXX XX00BAUXR1XXXX XXX0BRCAP2L00HIE0X00 0000BRCAP2H00HIPXX00 0000BTL200HSCON00HTH200HSBUFXXXX XXXXXBWDTRSTXXXX XXXXB表26中部分符號的含義如下:PSW=00H:表明復(fù)位后自動選擇第0組工作寄存器組為當(dāng)前工作寄存器組SP=07H:表明堆棧指針指向片內(nèi)RAM07H單元,堆棧的壓入操作為先加后壓,所以第一個被壓入的數(shù)據(jù)存放在08H單元中P0P3=FFH:表明各端口寫入1,此時各端口既可作輸入口,也可以作輸出口AUXR=XXX0 0XX0:表明ALE引腳在CPU不訪問外部存儲器期間有脈沖信號輸出AUXR1=XXXX XXX0:表明選擇DPTR0作數(shù)據(jù)指針I(yè)E=00H:表明各中斷均關(guān)閉TCON=00H:表明T0,T1 均被停止SCON=00H:表明串口處于方式0,允許發(fā)送,不允許接收PCON=00H:表明SMOD=0,波特率不加倍。PD=0,IDL=0,單片機(jī)處于正常工作方式。單片機(jī)的RST引腳為復(fù)位引腳,振蕩電路正常工作后,RST端加上持續(xù)兩個機(jī)器周期的高電平后,單片機(jī)就被復(fù)位。復(fù)位電路有3種基本方式:上電復(fù)位,開關(guān)復(fù)位和看門狗復(fù)位。這里只介紹上電復(fù)位和開關(guān)復(fù)位。(1) 上電復(fù)位上電復(fù)位的含義:計(jì)算機(jī)在接通電源的時候會進(jìn)行一系列的初始化操作,包括測試內(nèi)存,向內(nèi)存導(dǎo)入BIOS數(shù)據(jù),初始化寄存器,初始化各個硬件等等,統(tǒng)稱上電復(fù)位。所謂上電復(fù)位就是單片機(jī)只要一上電就自動實(shí)現(xiàn)復(fù)位操作。常用的上電復(fù)位電路如圖1所示 圖2-3 單片機(jī)上電復(fù)位電路圖 (a) (b)圖a、圖b所示電路在本質(zhì)上是一樣,它們都是RC微分復(fù)位電路。由于單片機(jī)的RST端對地存在一個等效電阻R,圖a中的微分電阻為R1與R的并聯(lián)電阻,圖b中的微分電阻取至RST端的等效電阻R。上電時,電源通過微分電阻對電容充電,由于電容兩端電壓不能突變,所以RST端出現(xiàn)一個正脈沖。過一段時間后,電容兩端電荷充滿,電容等效為開路,于是RST端所加電壓為低電平,單片機(jī)完成復(fù)位。從圖中可以看出,RST端高電平持續(xù)時間取于RC電路的充電時間常數(shù)。合理選擇C1和R1就可以實(shí)現(xiàn)上電復(fù)位。由于上電后,振蕩電路起振要經(jīng)歷一個振蕩建立時間,不同頻率的振蕩器,起振蕩建立時間不同,所以不同振蕩頻率下,上述上電復(fù)位電路的參數(shù)不同。通常要求上電時RST復(fù)位高電平能持續(xù)10ms以上,R、C的取值一般為:C1=1030F,R1=1K10K當(dāng)晶振頻率為6MHz時,可取R1=1 K,C1=22F晶振頻率為12MHz時,可取C1=10F,R1=8.2 K(2)開關(guān)復(fù)位開關(guān)復(fù)位是指通過接通按鈕開關(guān),使單片機(jī)進(jìn)入復(fù)位狀態(tài)。開關(guān)復(fù)位電路一般不單獨(dú)使用。在應(yīng)用系統(tǒng)設(shè)計(jì)中,若需使用開關(guān)復(fù)位電路,一般的做法是將開關(guān)復(fù)位與上電復(fù)位組合在一起形成組合復(fù)位電路,上電復(fù)位電路完成上電復(fù)位功能,開關(guān)復(fù)位電路完成人工復(fù)位。這種組合復(fù)位電路如圖2所示圖2.3-單片機(jī)組合復(fù)位電路圖單片機(jī)組合復(fù)位電路:圖中C1,R1構(gòu)成了上電復(fù)位電路。上電復(fù)位后,電源經(jīng)R1對C1充滿電源,C1等效于開路,RST端為低電平;單片機(jī)正常工作。按開關(guān)K后,C1兩端電荷經(jīng)R2迅速放電,K斷開后,由C1、R1及電源完成對單片機(jī)的復(fù)位操作。在上述電路中,R2的取值一般為0200,C1、R1按上電復(fù)位電路的設(shè)計(jì)而取值。 復(fù)位電路的作用非常重要,能否成功復(fù)位關(guān)系但單片機(jī)系統(tǒng)能否正常運(yùn)行的問題。如果振蕩電路正常而單片機(jī)系統(tǒng)不能正常運(yùn)行,其主要原因是單片機(jī)沒有完成正常復(fù)位,程序計(jì)數(shù)器的值沒有回0,特殊功能寄存器沒有回到初始狀態(tài)。這時可以適當(dāng)?shù)卣{(diào)整上電復(fù)位電路的阻容值,增加其充電時間常數(shù)來解決問題。本文采用上電復(fù)位電路。3、LED數(shù)碼管顯示電路單片機(jī)系統(tǒng)中常用的顯示器有:發(fā)光二極管LED(Light Emitting Diode)顯示器、液晶LCD(Liquid Crystal Display)顯示器、CRT顯示器等。LED、LCD顯示器有兩種顯示結(jié)構(gòu):段顯示(7段、米字型等)和點(diǎn)陣顯示(58、88點(diǎn)陣等)。 (1)靜態(tài)顯示方式LED顯示器工作方式有兩種:靜態(tài)顯示方式和動態(tài)顯示方式。靜態(tài)顯示的特點(diǎn)是每個數(shù)碼管必須接一個8位鎖存器用來鎖存待顯示的字形碼。送入一次字形碼顯示字形一直保持,直到送入新字形碼為止。這種方法的優(yōu)點(diǎn)是占用CPU時間少,顯示便于監(jiān)測和控制。缺點(diǎn)是硬件電路比較復(fù)雜,成本較高。(2)動態(tài)顯示動態(tài)顯示的特點(diǎn)是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。這樣一來,就沒有必要每一位數(shù)碼管配一個鎖存器,從而大大地簡化了硬件電路。選亮數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時都在顯示。動態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時應(yīng)略小于靜態(tài)顯示電路中的。 圖2-4 七段LED顯示器使用LED顯示器時,要注意區(qū)分這兩種不同的接法。為了顯示數(shù)字或字符,必須對數(shù)字或字符進(jìn)行編碼。七段數(shù)碼管加上一個小數(shù)點(diǎn),共計(jì)8段。因此為LED顯示器提供的編碼正好是一個字節(jié)。用共陰LED顯示器顯示16進(jìn)制數(shù)的編碼已列在下表。共陰數(shù)碼管碼表v 0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d ,v 0 1 2 3 4 5v 0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c ,v 6 7 8 9 A Bv 0x39 , 0x5e , 0x79 , 0x71 , 0x00v C D E F 無顯示2.2各元器件介紹AT89S51 AT89S51 是一種帶4K字節(jié)閃存可編程可擦除只讀存儲器的低電壓、高性能 CMOS8位微處理器。該器件采用ATMEL高密度非易失存儲器制造計(jì)術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的 MCS-51指令集和輸出管腳相兼容,并有ISP管腳,只需要將單片機(jī)的ISP引腳接入專用的下載線上就可以編程。由于將多功能8位CPU和閃爍存儲器組合在這個芯片中,ATMEL的 AT89S51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。圖2-5 AT89S51AT89S51圖如下: (1)主要特性:8031 CPU與MCS-51兼容4K字節(jié)可編程FLASH存儲器(壽命:1000寫/擦循環(huán)) 全靜態(tài)工作:0Hz-24KHz三級程序存儲器保密鎖定128*8位內(nèi)部RAM32條可編程I/O線兩個16位定時/器計(jì)數(shù)器6個中斷源可編程串行通道低功耗的閑置和調(diào)電模式VCC:供電電壓 GND:接地 (2) 各引腳及功能說明P0口:P0口為一個8位漏極開路雙向I/O口。P0口能用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FLASH編程時,P0口作為原碼輸入口,當(dāng)FALSH進(jìn)行校驗(yàn)時,P0口輸出原碼,此時P0口外部必須被拉高。P1口:P1口是 一個內(nèi)部提供上拉電阻的8位雙向I/O口。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流。在FALSH編程和校驗(yàn)時,P1口作為第八位地址接收。P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口。當(dāng)P2口被寫入“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。P2口在FLASH編程和校驗(yàn)時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平并用作輸入。 P3口:除作I/O口使用外,還有特殊功能如圖所示P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INT0(外部中斷0)P3.3/INT1(外部中斷1)P3.4T0(計(jì)時器0外部輸入)P3.5T1(計(jì)時器1外部輸入)P3.6/WR(外部數(shù)據(jù)存儲器寫選通)P3.7/RD(外部數(shù)據(jù)存儲器讀選通)P3口同時為編程和校驗(yàn)接收一些控制信號。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機(jī)器周期的高電平時間。ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在FALSH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6.因此它可用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如果想禁止ALE的輸出可在SFR8EH地址上置0.此時,ALE只有在執(zhí)行MOVX,MOVC指令時ALE才起作用。另外,該指令被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機(jī)器周期兩次/PSEN有校。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000HFFFFH),不管是否有內(nèi)部程序存儲器,注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入XTAL2:來自反向振蕩器的輸出ISP:在線編程引腳P1.5、P1.6、P1.7、RST四個引腳可以作為在系統(tǒng)編程引腳(3)振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動件,XTAL2應(yīng)不接。其余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證,脈沖的高低電平要求的寬度。MAX232:MAX232是一種雙組驅(qū)動器接收器,片內(nèi)含有一個電容性電壓發(fā)生器以便在單5V電源供電時提供EIA/TIA-232-E電平,每個接收器將EIA/TIA-232-E 電平輸入轉(zhuǎn)換為5 V TTL/CMOS電平。這些接收器具有1.3 V的典型門限及0.5V的典型遲滯,而且可以接收30的輸入,每個驅(qū)動器將TTL/CMOS輸入電平轉(zhuǎn)換為 EIA/TIA-232-E電平,其主要特點(diǎn)為:單5V電源工作LinBiCMOSTM工藝技術(shù)兩個驅(qū)動器及兩個接收器30V輸入電平低電源電流:典型值是8mA符合ANSI標(biāo)準(zhǔn)EIA/TIA-232-E及ITU推薦標(biāo)準(zhǔn) V.28 ESD保護(hù)大于MIL-STD-883 標(biāo)準(zhǔn)的2000VDS18B20: DS18B20基本知識DS18B20數(shù)字溫度計(jì)是DALLAS公司生產(chǎn)的1Wire,即單總線器件,具有線路簡單,體積小的特點(diǎn)。因此用它來組成一個測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數(shù)字溫度計(jì),十分方便。DS18B20產(chǎn)品的特點(diǎn):(1)、只要求一個端口即可實(shí)現(xiàn)通信。(2)、在DS18B20中的每個器件上都有獨(dú)一無二的序列號。(3)、實(shí)際應(yīng)用中不需要外部任何元器件即可實(shí)現(xiàn)測溫。(4)、測量溫度范圍在55。C到125。C之間。(5)、數(shù)字溫度計(jì)的分辨率用戶可以從9位到12位選擇。(6)、內(nèi)部有溫度上、下限告警設(shè)置。DS18B20的引腳介紹TO92封裝的DS18B20的引腳排列見圖1,其引腳功能描述見表1。 表1DS18B20詳細(xì)引腳功能描述序號名稱引腳功能描述1GND地信號2DQ數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源。3VDD可選擇的VDD引腳。當(dāng)工作于寄生電源時,此引腳必須接地。第三章 系統(tǒng)軟件設(shè)計(jì)3.1設(shè)計(jì)流程圖開始設(shè)備初始化PC發(fā)送工作指令開始工作(測溫、顯示)PC發(fā)送命令按照命令執(zhí)行操作PC發(fā)停機(jī)命令NYNYNY圖3-1 系統(tǒng)工作流程圖開始是否中斷是否命令字符停機(jī)命令非停機(jī)命令為發(fā)送數(shù)據(jù)命令發(fā)送溫度數(shù)據(jù)結(jié)束結(jié)束結(jié)束寫入ROM關(guān)中斷,能標(biāo)志歸0錯誤,發(fā)送,E開中斷,使能標(biāo)志置1YYYYYN,發(fā)中斷N,發(fā)數(shù)據(jù)N,停機(jī)NN圖3-2 串行口中斷流程開始初值重裝從18B20讀溫度并存儲到RAM發(fā)送高溫警報到PC發(fā)送低溫警報到PC對讀取數(shù)據(jù)進(jìn)行處理DS18B20存在低于報警高溫線結(jié)束高于報警低溫線YYYNYN圖3-3 T0口中斷流程圖開始DS18B20復(fù)位程序發(fā)溫度轉(zhuǎn)化指令并做750cm延遲復(fù)位DS18B20發(fā)送取溫度數(shù)據(jù)命令讀取溫度數(shù)據(jù)清DS18B20存在標(biāo)志位,數(shù)碼顯示管000.F,跳出程序DS18B20存在標(biāo)志位為1結(jié)束YN圖3-4 CET_TEMPER 子程序流程圖3.2匯編語言程序;*;* 匯編語言程序 *;*ENABLE EQU 00HDTSIGN EQU 01HSDSIGN EQU 02HHAVE EQU 03HPSHU EQU 04HLED0 EQU P0.0LED1 EQU P0.1LED2 EQU P0.2LED3 EQU P0.3WR1820 EQU P1.1SEG EQU P2WARNH0 EQU 31HWARNH1 EQU 32HTEMP0 EQU 34HTEMP1 EQU 35HDIS0 EQU 36HDIS1 EQU 37HDIS2 EQU 38HDIS3 EQU 39HSDAT EQU DWORK EQU WPAUSE EQU PERR EQU EORG 0000HAJMP MAINORG 000BHAJMP T0INTORG 0023HAJMP S_INT;*;* 主程序 *;*ORG 0030HMAIN: MOV SP,#40H ; 堆棧棧底放50HMOV WARNH0,#30HMOV WARNH1,#00CALL T0INIT ;初始化T0CALL T1INIT ;初始化T1CALL SINIT ;初始化串口CLR ENABLE ;清使能標(biāo)志CLR DTSIGN ;清數(shù)據(jù)標(biāo)志JNB ENABLE,$ ;查詢使能,無效則停機(jī)LCALL INT_ENLOOP: CALL DISPLY ;調(diào)用顯示子程序JNB ENABLE,$ ;查詢使能,無效則停機(jī)AJMP LOOP;T0初始化T0INIT:ORL TMOD,#01HANL TMOD,#0F1H MOV TH0,#3CH MOV TL0,#0B0H MOV R7,#15H ;軟件記數(shù)初值RET;T1初始化T1INIT:ORL TMOD,#20HANL TMOD,#02FHMOV TH1,#0FDHMOV TL0,#0FDHCLR ET1 ; 關(guān)T1中斷SETBTR1 ; T1開始計(jì)數(shù)RET;串口初始化SINIT: ANL PCON,#7FHMOV SCON,#50HSETBEA ; 開全局中斷SETB ES ; 開串口中斷RET;開中斷子程序INT_EN: SETB ET0 ;開T0中斷SETB TR0RET ;T0開始計(jì)數(shù);關(guān)中斷子程序INT_DS: CLR ET0 ;關(guān)T0中斷CLR TR0 ;T0停止計(jì)數(shù)RET;*;* 顯示子程序 *;*DISPLY: PUSH ACC ;保護(hù)現(xiàn)場PUSH 06HMOV A,TEMP1 ;溫度整數(shù)部分送AMOV B,#100HDIV AB ;相除取百位MOV DIS3,A ;百位送DIS3MOV A, B ; 余數(shù)送 AMOV B,#10DIV AB ; 相除取十位MOV DIS2,A ;十位送DIS2MOV DIS1,B ;個位送DIS1MOV DIS0,TEMP0 ;小數(shù)部分送DIS0MOV DPTR,#ZIXING ;送字型碼首地址MOV A,DIS0 ;取小數(shù)MOVC A,A+DPTR ;取對應(yīng)字型碼SETB LED0SETB LED1SETB LED2SETB LED3CLR LED0MOV SEG, A ;送字型碼CALL DELAY0MOV A,DIS1 ;取各位MOVC A,A+DPTR ;取對應(yīng)字型碼CLR ACC.7 ;清最高位顯示小數(shù)點(diǎn)SETB LED0SETB LED1SETB LED2SETB LED3CLR LED1MOV SEG, A ;送字型碼CALL DELAY0MOV A, DIS2 ;取十位MOVC A,A+DPTR ;取對應(yīng)字型碼SETB LED0SETB LED1SETB LED2SETB LED3CLR LED2MOV SEG,A ;送字型碼CALL DELAY0MOV A,DIS3 ;取百位JNB FSHU,ZHENG ;判斷是否為正數(shù)MOV A,#16 ;如果不是正數(shù)送- ZHENG: MOVC A,A+DPTR ;取對應(yīng)字型碼SETB LED0SETB LED1SETB LED2SETB LED3CLR LED3MOV SEG, A ;送字型碼CALL DELAY0OUTDIS: POP 06HPOP ACCRETZIXING: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H ; 共陽數(shù)碼管字型碼DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0BFH;延遲子程序DELAY0: MOV R6,#1FHDEL0: MOV R5,#0bhDEL1: NOPDJNZ R5,DEL1DJNZ R6,DEL0RET; *; * 串口中斷 *; *S_INT: PUSH ACCJNB T I,RINT ;若不是發(fā)送中斷則轉(zhuǎn)接收中斷處理程序CLR TI ;清發(fā)中斷標(biāo)志RINT: JBC RI,RXD ;判斷是否收中斷,若不是退出OUTSint: POP ACCRETIRXD: MOV A,SBUF ; 將輸入緩沖送AJNB DTSIGN, COMMEND0 ;判斷是否為上位機(jī)發(fā)送數(shù)據(jù)MOV R0,A ; 若是數(shù)據(jù)送A里面的數(shù)到警報溫度RAMINC R0DJNZ R6,OUTSint ; 未送完則退出等待CLR DTSIGN ; 送完,清數(shù)據(jù)標(biāo)志位AJMP OUTSintCOMMEND0:CJNE A,#SDAT,COMMEND1 ; 判斷PC是否開始發(fā)送數(shù)據(jù)SETB DTSIGN ;數(shù)據(jù)標(biāo)志位置1MOV R6,#04HMOV R0,#WARNH0 ; R0送警報溫度首地址AJMP OUTSintCOMMEND1: CJNE A,#WORK,NOTWORK ;判斷是否為允許工作命令SETB ENABLE ;若允許工作使能標(biāo)志置1LCALL INT_EN ;開中斷AJMP OUTSintNOTWORK: CJNE A,#PAUSE,NOTPAU ;判斷是否為暫停工作命令CLR ENABLE ;若暫停工作使能標(biāo)志清0LCALL INT_DS ;關(guān)中斷MOV P0,0FFHMOV P1,0FFHAJMP OUTSintNOTPAU:CJNE A,#ERR,ISERR0 ;判斷數(shù)據(jù)是否錯誤JB SDSIGN,NOERR ;判斷發(fā)送數(shù)據(jù)為第一個字節(jié)還是第二個MOV R6,#02H ;若為第一個,置發(fā)送計(jì)數(shù)SETB SDSIGN ;發(fā)送標(biāo)志置1MOV R0,#TEMP0 ;溫度數(shù)據(jù)指針NOERR1: MOV A,R0 ;溫度數(shù)據(jù)送AMOV SBUF ,A ;發(fā)送溫度數(shù)據(jù)INC R0 ;指針加1DJNZ R6,OUTSintCLR SDSIGN ;清發(fā)送標(biāo)志AJMP OUTSintISERR0: MOV A, #45H ;錯誤,發(fā)E 的ASCII碼MOV SBUF,AAJMP OUTSint; *;* T0中斷子程序 *;*T0INT: PUSH ACC ;保護(hù)現(xiàn)場PUSH 06HPUSH 05HMOV TL0,#0B0H ;初值重裝MOV TH0,#3CHDJNZ R7, OUTSintMOV R7, #15HLCALL GET_TEMPER ;讀取溫度JNB HAVE,OUTT0intMOV A,TEMP1CLR CSUBB A,WARNH0 ;將讀取的溫度與高溫限比較TINT0: JNC TINT1 ;判斷是否大于高溫限AJMP TINT2 ;不大于轉(zhuǎn)TINT2TINT1:MOV A,#H ;大于高溫限發(fā)送H到 PCMOV SBUF,AAJMP TINT4TINT2: SUBB A,WARNH1 ;將讀取的溫度與低溫限比較JC TINT3 ;判斷是否小于低溫限AJMP TINT4 ;不小于轉(zhuǎn)TINT4TINT3: MOV A,#L ;小于低溫限發(fā)送 L到PCMOV SBUF,ATINT4: CALL PRO ; 處理數(shù)據(jù)O
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 委托托管協(xié)議書
- 2025版新能源產(chǎn)品銷售合同標(biāo)準(zhǔn)模板
- 2025年度熱鍍鋅鋼管銷售合同范本2篇
- 二零二五年度企業(yè)財務(wù)報表編制與分析合同范本3篇
- 2025年度體育場館教練個人聘用合同示例4篇
- 2025年度二手房全款買賣合同房產(chǎn)交易風(fēng)險提示協(xié)議
- 2025年度城市綜合體商業(yè)空間租賃及品牌入駐協(xié)議
- 跨領(lǐng)域的安全逃生技巧探索
- 綠色能源在農(nóng)業(yè)機(jī)械中的運(yùn)用前景
- 智能家居時代下的家用醫(yī)療設(shè)備選擇
- 煤礦反三違培訓(xùn)課件
- 向流程設(shè)計(jì)要效率
- 安全文明施工的管理要點(diǎn)
- 2024年中國航空發(fā)動機(jī)集團(tuán)招聘筆試參考題庫含答案解析
- 當(dāng)代中外公司治理典型案例剖析(中科院研究生課件)
- GMP-基礎(chǔ)知識培訓(xùn)
- 動力管道設(shè)計(jì)手冊-第2版
- 2022年重慶市中考物理試卷A卷(附答案)
- Python繪圖庫Turtle詳解(含豐富示例)
- 煤礦機(jī)電設(shè)備檢修技術(shù)規(guī)范完整版
- 榆林200MWp并網(wǎng)光伏發(fā)電項(xiàng)目可行性研究報告
評論
0/150
提交評論