版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、多路遠程溫度測量系統(tǒng)設(shè)計摘 要多路遠程溫度測量系統(tǒng)是利用下位機實時溫度的采集,并將結(jié)果傳輸?shù)缴衔粰C。以達到對溫度的比較、控制。本設(shè)計用MCS-51單片機為主要硬件,設(shè)計了包括溫度采集,溫度顯示,串口通信等外圍電路。而且對所設(shè)計電路給出了相應(yīng)的軟件設(shè)計,包括串行口初始化,數(shù)據(jù)采集和數(shù)據(jù)傳輸?shù)瘸绦颉T跍囟葴y量部分采用具有“一線總線”接口的數(shù)字傳感器DS18B20,實現(xiàn)單線多點數(shù)據(jù)的采集。多路遠程溫度測量系統(tǒng)是典型的集散式控制系統(tǒng)。由下位機、上位機、和通訊網(wǎng)絡(luò)三部分組成。下位機是基于單片機AT89C2051和DS18B20的高精度溫度采集系統(tǒng),功能是對溫度的檢測與輸出控制。上、下位機之間通過RS-4
2、85協(xié)議構(gòu)成網(wǎng)絡(luò)系統(tǒng)。關(guān)鍵詞:MCS-51,DS18B20,溫度采集,遠程通信ABSTRACT The monolithic integrated circuit is the main hardware, In order to realize design goal this design including temperature gathering, the temperature demonstrated that, the systems control, strung together periphery electric circuit and so on mouth corr
3、espondence. Moreover to design the electric circuit to produce the corresponding software design, including serial procedure and so on mouth initialization ,data gathering and data transmission. The 1-Wire bus digital thermometer DS18B20 is used to measure temperature. It can realize the 1-Wire mult
4、i-point collection. Several points of temperature examination system is typically concentrate-disperse system. It consists of up a machine, bottom a machine, and communication network. Bottom a machine is a high accuracy data collection system that bases on the microcontroller AT89C2051 and the DS18
5、B20 system. Its function is to temperature and output the control. The up machine and bottom machines constitute of network system, via rs-485 bus.KEY WORDS: MCS-51 , DS18B20 ,Temperature gathering , Tekecommunications目 錄第一章 緒論1第二章 多路遠程溫度測量系統(tǒng)設(shè)計要求與設(shè)計方案22.1系統(tǒng)設(shè)計任務(wù)和要求22.2 課題分析22.3 方案比較與論證22.3.1 溫度傳感器的選擇
6、22.3.2顯示部分32.3.3主控芯片的選擇32.3.4遠程傳輸模塊的選擇32.4方案選定4第三章 多路遠程溫度測量系統(tǒng)的硬件設(shè)計53.1總體設(shè)計53.2 主板部分電路設(shè)計53.2.1 AT89C51單片機的性能及應(yīng)用53.2.2顯示模塊設(shè)計63.2.3串行通信63.2.4電源模塊63.3分板電路設(shè)計73.3.1 AT89C2051單片機的性能及應(yīng)用73.3.2 DS18B20芯片簡介及接口設(shè)計7第四章 多路遠程溫度采集系統(tǒng)的軟件設(shè)計84.1 軟件設(shè)計總論84.1.1軟件設(shè)計的一般方法84.1.2 程序流程圖設(shè)計84.2匯編語言的產(chǎn)生及特點84.3 總體及各分模塊程序設(shè)計94.3.1 主板主
7、程序設(shè)計94.3.2分板主程序設(shè)計104.3.3串行通信程序設(shè)計104.3.4溫度采集程序設(shè)計124.3.5 LCD顯示設(shè)計184.4軟件抗干擾技術(shù)204.4.1軟件陷阱技術(shù)204.4.2軟件看門狗技術(shù)20結(jié) 論21致 謝22參考文獻23附 錄24第一章 緒論溫度的監(jiān)視和控制可以說是現(xiàn)代化工、農(nóng)業(yè)最常用的技術(shù),常用于農(nóng)用系統(tǒng)、音頻設(shè)備、汽車、氣象控制、GPS設(shè)備、醫(yī)療裝置、電信等方面。例如進行田間溫度測量,將溫度傳感器放置在所需測量的農(nóng)田的各個位置,在土壤表面,深入到作物根系附近,放置到植物的頂端,測量同一時間內(nèi)不同位置的溫度,經(jīng)過一段時間的采樣從而分析溫度對作物生長產(chǎn)生的影響;還可以在糧庫存
8、儲的糧食中均勻分布溫度探頭,監(jiān)測不同位置的糧食的溫度變化,防止或盡早處理霉變現(xiàn)象。對于這類的溫度測量需求,傳統(tǒng)的人工測量已經(jīng)遠遠的不能滿足,而現(xiàn)有的大多數(shù)溫度測量裝置采用熱電偶進行溫度測量,熱電偶發(fā)出模擬信號且信號比較微弱,需要先經(jīng)過增益放大,再進行A/D轉(zhuǎn)換,最后送交給MCU處理。這樣的系統(tǒng)控制多個溫度探頭需要考慮很多因素,而且多個探頭的連接也會使整個系統(tǒng)的構(gòu)成變得非常復(fù)雜,不利于實際應(yīng)用。 DALLAS公司出品的單總線數(shù)字傳感器DS18B20,其不僅適用與高溫或低溫的環(huán)境,也適用于自然環(huán)境或接近自然溫度的檢測,如:對冷凍室或冷藏室溫度的監(jiān)測,糧食儲備的溫度監(jiān)測,蔬菜大棚、花房的溫度監(jiān)測,程
9、控交換機室的溫度監(jiān)測,孵化室溫度監(jiān)測等等對環(huán)境溫度要求較嚴格的場合。DS18B20在解決各種誤差、可靠性和實現(xiàn)系統(tǒng)優(yōu)化等方面與傳統(tǒng)各種溫度傳感器相比,有無可比擬的優(yōu)越性,因而廣泛應(yīng)用于過程控制、環(huán)境控制、建筑物、機器設(shè)備中的溫度檢測。而對于遠程傳輸這一課題在本系統(tǒng)中也是不得不考慮的一個因素。連接DS1820的總線電纜是有長度限制的。試驗中,當采用普通信號電纜傳輸長度超過50m時,讀取的測溫數(shù)據(jù)將發(fā)生錯誤。采用何種傳輸協(xié)議有效地擴展測量半徑是我們要解決的一個問題。從當前發(fā)展趨勢可知,利用一個儀器對多個溫度進行測試是很有必要的,于是,多路遠程溫度測量系統(tǒng)的開發(fā)便應(yīng)運而生。第二章 多路遠程溫度測量系
10、統(tǒng)設(shè)計要求與設(shè)計方案 2.1系統(tǒng)設(shè)計任務(wù)和要求用單片機、集成溫度傳感器、LCD或LED等設(shè)計一溫度測量電路,該電路還能進行遠距數(shù)據(jù)傳輸。測量溫度范圍:-40+125;傳輸距離:大于100米。2.2 課題分析首先,對于多路溫度測量,溫度探頭的低功耗是十分重要的,同時還要滿足易于控制的條件,測溫范圍也必須達到或超過題目要求。因此選擇合適的溫度傳感器成為本次設(shè)計的重中之重。再次,對于傳輸距離大于100米的要求,如若直接將溫度傳感器用大于100米的普通連接線連接到單片機上,不可避免的會產(chǎn)生信號的衰減,甚至?xí)捎谕饨绲母蓴_造成傳輸誤碼率升高。要解決這個問題,只能通過專用的單片機串口通信設(shè)備芯片解決2.3
11、 方案比較與論證2.3.1 溫度傳感器的選擇根據(jù)題目要求,設(shè)計一溫度測量電路,能夠通過溫度傳感器測量并顯示被測量點的溫度,常用的溫度傳感器可分為3大類:方案一:熱電偶式熱電偶具有構(gòu)造簡單,適用溫度范圍廣,使用方便,承受熱機械沖擊能力強以及響應(yīng)速度快等特點,常用于高溫區(qū)域, 振動沖擊大等惡劣環(huán)境以及適合于微小結(jié)構(gòu)測溫場合;但其信號輸出靈敏度比較低,容易受到環(huán)境干擾和前置放大器溫度漂移的影響,因此不適合測量微小的溫度變化。方案二:電阻式電阻式可用來測量-220850范圍內(nèi)的溫度,少數(shù)情況下,低溫可測量至-272,高溫可測量至1000,互換性差,非線性嚴重,在腐蝕介質(zhì)中使用時,易氧化,因此,只能用于
12、低溫及無腐蝕性的介質(zhì)中。雖然測量溫度范圍廣,但熱穩(wěn)定性差。方案三:數(shù)字式DS18B20溫度傳感器。DS18B20溫度傳感器為“一線式器件”,體積更小、適用電壓更寬、更方便。其測量溫度范圍為 -55+125,在-10+85范圍內(nèi),精度為0.5。其內(nèi)部有A/D、D/A轉(zhuǎn)換裝置,用戶可以設(shè)置溫度的上下限,并具可以直接與單片機進行通訊。現(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性??紤]題目測溫范圍要求以及測量數(shù)據(jù)的準確性要求選擇方案三。2.3.2顯示部分方案一:使用液晶顯示屏顯示轉(zhuǎn)換結(jié)果。液晶顯示屏(OCMJ2*8C)具有輕薄短小,平面顯示以及影像穩(wěn)定不閃爍等優(yōu)勢,能顯示漢字及各
13、種符號,可以繪制曲線和簡單的圖像,分辨率高,抗干擾能力強和顯示形式靈活等優(yōu)點。方案二:使用傳統(tǒng)的數(shù)碼顯示管。數(shù)碼管(LED)受外界環(huán)境影響小,顯示明亮,編程簡單,占用資源較少。但是LED數(shù)碼管顯示單一,只能顯示數(shù)字與字母,無法顯示文字與曲線。根據(jù)以上的討論,我們采用方案一。2.3.3主控芯片的選擇本系統(tǒng)初步設(shè)計為一主板加兩分板的結(jié)構(gòu)。主板主要負責(zé)接收分板數(shù)據(jù)及顯示任務(wù),分板主要負責(zé)溫度數(shù)據(jù)的采集及發(fā)送任務(wù)。在綜合考慮對芯片的熟悉程度及功能的實現(xiàn)程度上。決定在主板上采用AT89C51芯片,AT89C51片內(nèi)含4k bytes的可反復(fù)擦鞋的只讀程序存儲器(PEROM)和128 bytes的隨機存取
14、數(shù)據(jù)存儲器(RAM), 32個IO 口線完全能夠滿足對數(shù)據(jù)的處理要求。分板僅需滿足數(shù)據(jù)采集及發(fā)送任務(wù),主控芯片的外接設(shè)備對I/O端口的數(shù)目要求較少,可以選擇16端口的AT89C2051芯片。雖然市面上有著功能更為強大的單片機芯片,但都價格不菲。而本設(shè)計本著簡單實用,精簡節(jié)約的原則,我們選擇了AT89C51和AT89C2051芯片。2.3.4遠程傳輸模塊的選擇方案一:無線發(fā)射接收模塊無線發(fā)射模塊省卻了布線的步驟,使得整個系統(tǒng)看上去更加簡潔。但整個系統(tǒng)的功耗較大,而且無線傳輸數(shù)據(jù)易受環(huán)境影響,不能保證數(shù)據(jù)存儲的穩(wěn)定性。方案二:有線通信收發(fā)器ADM489是用于RS-485與RS-422通信的低功耗收
15、發(fā)器。具有限擺率驅(qū)動器,可以減小EMI(電磁干擾),并降低由不恰當?shù)慕K端匹配電纜引起的反射,實現(xiàn)最高250kbps 的無差錯數(shù)據(jù)傳輸。驅(qū)動器具有短路電流限制,并可以通過熱關(guān)斷電路將驅(qū)動器輸出置為高阻狀態(tài),防止過度的功率損耗。根據(jù)以上討論我們選擇有線通信收發(fā)器ADM489。2.4方案選定1. 溫度傳感器 DS18B20;2. 顯示部分 LCD液晶顯示器;3. 主控芯片 主板AT89C51,分板AT89C2051;4. 遠程傳輸 ADM489。第三章 多路遠程溫度測量系統(tǒng)的硬件設(shè)計3.1總體設(shè)計為完成多路遠程溫度測量系統(tǒng)的基本功能,我們采用了一主板加兩分板的結(jié)構(gòu)設(shè)計。主板與分板之間通過通信線纜連接
16、,有各自獨立的供電模塊主板以AT89C51為主控芯片,主要負責(zé)接收來自分板的數(shù)據(jù),并將其顯示在LCD液晶顯示器上。主要模塊有:單片機最小系統(tǒng)模塊,液晶顯示模塊,通信收發(fā)模塊,電源模塊。為增加系統(tǒng)的抗干擾性及復(fù)位的可靠性,特意增加了一個以X25045為核心的單片機復(fù)位模塊。兩個分板以AT89C2051為主控芯片,負責(zé)溫度的采集及輸出任務(wù)。主要模塊有:單片機最小系統(tǒng)模塊,溫度采集模塊,通信收發(fā)模塊,電源模塊。 圖3-1 整體電路框圖3.2 主板部分電路設(shè)計 3.2.1 AT89C51單片機的性能及應(yīng)用AT89C51是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS 8位單片機,片內(nèi)含4k bytes
17、的可反復(fù)擦鞋的只讀程序存儲器(PEROM)和128 bytes的隨機存取數(shù)據(jù)存儲器(RAM),期間采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn)??伸`活應(yīng)用與各種控制領(lǐng)域。3.2.2顯示模塊設(shè)計本次設(shè)計選用的液晶顯示器是金鵬電子有限公司生產(chǎn)的B系列(改進型)中文液晶顯示模塊B系列(改進型)中文液晶顯示模塊內(nèi)含GB 2312 15*15點陣國標一、二級簡體漢字和8*8點陣及8*16點陣ASCII字符,用戶輸入GB2312區(qū)位碼或ASCII 碼即可實現(xiàn)文本顯示。3.2.3串行通信按總線傳送信號的形式可分為二大類型:串行總線和并行總線。如RS-232C為串行總線,IEEE-488并行總線。 介于單
18、片機端口數(shù)目的限制,我們采用了串行通信的方式。ADM489的典型應(yīng)用電路見圖3-2。圖3-2用了2個RS485網(wǎng)絡(luò),需要4條線,具有全雙工通信的功能。(b)圖3-2 ADM489典型應(yīng)用電路3.2.4電源模塊由于本機整機功耗較小,所需電壓較低(僅為5V),我們直接采用了外接穩(wěn)壓直流電源或電池的設(shè)計。只是在輸入端加了一些濾波電容,除去雜波干擾,提高系統(tǒng)的抗干擾特性。3.3分板電路設(shè)計3.3.1 AT89C2051單片機的性能及應(yīng)用AT89C51是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS 8位單片機,片內(nèi)含2k bytes的可反復(fù)擦鞋的只讀程序存儲器(PEROM)和128 bytes的隨機存
19、取數(shù)據(jù)存儲器(RAM)。器件采用 ATMEL 公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼 容標準 MCS-5l 指令系統(tǒng),片內(nèi)置通用 8 位中央處理器和 Flash 存儲單元,功能強大。 3.3.2 DS18B20芯片簡介及接口設(shè)計 DS18B20是美國Dallas半導(dǎo)體公司的產(chǎn)品。它采用1-Wire總線技術(shù),具有節(jié)省IO資源,結(jié)構(gòu)簡單、成本低廉,便于總線擴展和維護等特點。DS18B20采用1-Wire總線技術(shù),將地址線、數(shù)據(jù)線、控制線合為1根信號線,這就使得DS18B20與單片機的接口設(shè)計變得十分簡單,只需將溫度傳感器的DQ端口與單片機的任意一個I/O數(shù)據(jù)口相連即可。由于單總線為開漏所以需要外接
20、一個4.7K的上拉電阻。其余分板電路模塊(如通信模塊,電源模塊,單片機最小系統(tǒng)模塊)在主板中已做過介紹,在此不再贅述。第四章 多路遠程溫度采集系統(tǒng)的軟件設(shè)計4.1 軟件設(shè)計總論軟件設(shè)計(Programming)是指設(shè)計、編制、調(diào)試程序的方法和過程。它是目標明確的智力活動。由于程序是軟件的本體,軟件的質(zhì)量主要通過程序的質(zhì)量來體現(xiàn),在軟件研究中,程序設(shè)計的工作非常重要,內(nèi)容涉及到有關(guān)的基本概念、工具、方法以及方法學(xué)等。軟件設(shè)計通常分為問題建摸,算法設(shè)計,編寫代碼和編譯調(diào)試四個階段。4.1.1軟件設(shè)計的一般方法軟件設(shè)計一般根據(jù)系統(tǒng)中功能模塊進行分割,首先應(yīng)確定主程序框圖,然后劃分軟件功能模塊。程序設(shè)
21、計中應(yīng)實現(xiàn)模塊化,子程序化。所謂模塊化就是把一個完整的程序分解成完整的程序分解成若干個功能上相對獨立的較小程序塊,各小程序進行單獨設(shè)計和調(diào)試,最后將各程序模塊連接起來進行總調(diào)試。這種方法思路清楚,軟件故障容易排除,便于移植及修改。當軟件各功能模塊分別調(diào)試完畢后,即可進行主程序調(diào)試。主程序調(diào)試主要是排除各個功能模塊之間連接中可能出現(xiàn)的問題,如各個功能使用的RAM區(qū)域有否重疊現(xiàn)象,寄存器有否發(fā)生沖突,堆棧區(qū)域有否溢出等等。4.1.2 程序流程圖設(shè)計 程序設(shè)計工作往往比較復(fù)雜,為了能把復(fù)雜的工作條理化、直觀化,通常實用的方法是流程圖法。程序流程圖是人們對解決問題的方法、思路或算法的一種描述。 流程圖
22、的優(yōu)點:1.采用簡單規(guī)范的符號,畫法簡單;2.結(jié)構(gòu)清晰,邏輯性強;3.便于描述,容易理解。尤其是對于大型軟件的設(shè)計,流程圖會對設(shè)計過程產(chǎn)生事半功倍的效果4.2匯編語言的產(chǎn)生及特點在計算機內(nèi)部,所有的數(shù)、字符都是用二進制代碼來表示的,指令也是用二進制代碼來表示。這種用二進制代碼來表示的指令系統(tǒng)統(tǒng)稱為機器語言系統(tǒng)。而機器語言對人來說,很難識別和記憶,編程序時容易出錯,這給程序的編寫和閱讀帶來很大的困難,于是出現(xiàn)了匯編語言。匯編語言就是用英文字符作為助記符,用助記符來代表指令的操作碼和操作數(shù),用標號和符號代表地址或數(shù)據(jù)。助記符一般都是操作說明的英文字符縮寫,它便于識別和記憶。因此用匯編語言編寫和修改
23、程序比用機器語言方便的多。后來雖然又出現(xiàn)了更為容易被人掌握的高級語言。但匯編語言以其節(jié)省內(nèi)存空間,執(zhí)行速度快,能準確計算執(zhí)行時間,便于實時控制的特點一直長盛不衰,沒有被拋棄。本次軟件設(shè)計采用的就是匯編語言。 4.3 總體及各分模塊程序設(shè)計4.3.1 主板主程序設(shè)計主板工作過程為:在進行系統(tǒng)初始化后主機向兩分板發(fā)送選擇地址,等待分板響應(yīng),若分板未連接或無響應(yīng),則繼續(xù)向外發(fā)送選擇地址。有響應(yīng),將接收到的數(shù)據(jù)存儲到內(nèi)存單元,調(diào)用顯示程序顯示溫度。周而復(fù)始,完成工作。 圖4-1 主板主程序流圖4.3.2分板主程序設(shè)計分板工作過程:采集溫度數(shù)據(jù)到內(nèi)存單元,接收主機發(fā)送到的選擇地址與自身地址進行比較。若相
24、同,向主板發(fā)送數(shù)據(jù);不同繼續(xù)等待接收選擇地址。圖4-2 分板主程序流圖 4.3.3串行通信程序設(shè)計本設(shè)計為多路系統(tǒng)設(shè)計,必然要考慮信道的利用問題。但在本系統(tǒng)設(shè)計中我們采用了主從式的網(wǎng)絡(luò)設(shè)計。在主從式網(wǎng)絡(luò)中,信道由主機進行控制,不存在競爭信道的問題。MCS-51單片機內(nèi)部有一個全雙工的串行通信口,即串行接收和發(fā)送緩沖器(SBUF),這兩個在物理上獨立的接收發(fā)送器,既可以接收數(shù)據(jù)也可以發(fā)送數(shù)據(jù)。但接收緩沖器只能讀出不能寫入,而發(fā)送緩沖器則只能寫入不能讀出,它們的地址為99H。SCON控制寄存器,它是一個可尋址的專用寄存器,用于串行數(shù)據(jù)的通信控制,單元地址是98H,其結(jié)構(gòu)格式如下:SM0SM1SM2
25、RENTB8RB8TIRI下面我們對各控制位功能介紹如下: 1. SM0、SM1:串行口工作方式控制位。SM0,SM1工作方式0 0 方式0 0 1 方式11 0 方式21 1 方式32. SM2:多機通信控制位。多機通信是工作于方式2和方式3,SM2位主要用于方式2和方式3。接收狀態(tài),當串行口工作于方式2或3,以及SM2=1時,只有當接收到第9位數(shù)據(jù)(RB8)為1時,才把接收到的前8位數(shù)據(jù)送入SBUF,且置位RI發(fā)出中斷申請,否則會將接受到的數(shù)據(jù)放棄。當SM2=0時,就不管第位數(shù)據(jù)是0還是1,都難得數(shù)據(jù)送入SBUF,并發(fā)出中斷申請。工作于方式0時,SM2必須為0。3.REN:允許接收位。RE
26、N用于控制數(shù)據(jù)接收的允許和禁止,REN=1時,允許接收,REN=0時,禁止接收。4.TB8:發(fā)送接收數(shù)據(jù)位8。在方式2和方式3中,TB8是要發(fā)送的即第9位數(shù)據(jù)位。在多機通信中同樣亦要傳輸這一位,并且它代表傳輸?shù)牡刂愤€是數(shù)據(jù),TB8=0為數(shù)據(jù),TB8=1時為地址。5.RB8:接收數(shù)據(jù)位8。在方式2和方式3中,RB8存放接收到的第9位數(shù)據(jù),用以識別接收到的數(shù)據(jù)特征。6.TI:發(fā)送中斷標志位??蓪ぶ窐酥疚弧7绞?時,發(fā)送完第8位數(shù)據(jù)后,由硬件置位,其它方式下,在發(fā)送或停止位之前由硬件置位,因此,TI=1表示幀發(fā)送結(jié)束,TI可由軟件清“0”。 7.RI:接收中斷標志位。可尋址標志位。接收完第8位數(shù)據(jù)后
27、,該位由硬件置位,在其他工作方式下,該位由硬件置位,RI=1表示幀接收完成。電源管理寄存器PCON PCON主要是為CHMOS型單片機的電源控制而設(shè)置的專用寄存器,單元地址是87H,其結(jié)構(gòu)格式如下SMOD在CHMOS型單片機中,除SMOD位外,其他位均為虛設(shè)的,SMOD是串行口波特率倍增位,當SMOD=1時,串行口波特率加倍。系統(tǒng)復(fù)位默認為SMOD=0。串行口的初始化主要就是對這兩個位進行設(shè)置。 單片機通過對DE和/RE的置位或復(fù)位控制接收狀態(tài)或發(fā)送狀態(tài)。圖4-3 主板串行口程序流圖 圖4-4 分板串行口程序流圖 4.3.4溫度采集程序設(shè)計單片機控制18B20流程圖圖4-5 單片機控制18B2
28、0流程圖 DS18B20 的測量范圍從-55 - +125,測量精度為0.5。溫度測量結(jié)果分別放到0,1號存儲器中.存儲器0的高四位為符號位。當溫度為正時,此四位為零。存儲器0的低四位和存儲器1的高四位為溫度值的整數(shù)部分,存儲器1的低四位為小數(shù)部分的二進制碼。如表1溫度二進制輸出十六進制輸出1250000 0111 1101 000007D0H 25.06250000 0001 1001 00010191H0.5 0008H0 0000H表 1:溫度測量結(jié)果與二進制、十六進制的關(guān)系控制器對18B20操作流程:1. 復(fù)位:首先必須對DS18B20芯片進行復(fù)位,復(fù)位就是由控制器(單片機)給DS18
29、B20單總線至少480uS的低電平信號。當18B20接到此復(fù)位信號后則會在1560uS后回發(fā)一個芯片的存在脈沖。2, 存在脈沖:在復(fù)位電平結(jié)束之后,控制器應(yīng)該將數(shù)據(jù)單總線拉高,以便于在1560uS后接收存在脈沖,存在脈沖為一個60240uS的低電平信號。至此,通信雙方已經(jīng)達成了基本的協(xié)議,接下來將會是控制器與18B20間的數(shù)據(jù)通信。如果復(fù)位低電平的時間不足或是單總線的電路斷路都不會接到存在脈沖,在設(shè)計時要注意意外情況的處理。DS18B20復(fù)位初始化程序INIT_1820:SETB P3.5 NOP CLR P3.5 ;主機發(fā)出延時537微秒的復(fù)位低脈沖 MOV R1,#3 TSR1: MOV
30、R0,#107 DJNZ R0,$ DJNZ R1,TSR1 SETB P3.5;然后拉高數(shù)據(jù)線 NOP NOP NOP MOV R0,#25H TSR2: JNB P3.5,TSR3;等待DS18B20回應(yīng) DJNZ R0,TSR2 LJMP TSR4 ; 延時 TSR3: SETB P1.7 ; 置標志位,表示DS1820存在 CLR P1.7;檢查到DS18B20就點亮P1.7LED LJMP TSR5 TSR4: CLR P1.7; 清標志位,表示DS1820不存在 LJMP TSR7TSR5: MOV R0,#117TSR6: DJNZ R0,TSR6 ; 時序要求延時一段時間TSR
31、7: SETB P3.5 RET3, 控制器發(fā)送ROM指令:雙方打完了招呼之后最要將進行交流了,ROM指令共有5條,每一個工作周期只能發(fā)一條,ROM指令分別是讀ROM數(shù)據(jù)、指定匹配芯片、跳躍ROM、芯片搜索、報警芯片搜索。ROM指令為8位長度,功能是對片內(nèi)的64位光刻ROM進行操作。其主要目的是為了分辨一條總線上掛接的多個器件并作處理。誠然,單總線上可以同時掛接多個器件,并通過每個器件上所獨有的ID號來區(qū)別,一般只掛接單個18B20芯片時可以跳過ROM指令(注意:此處指的跳過ROM指令并非不發(fā)送ROM指令,而是用特有的一條“跳過指令”)。 本次設(shè)計只是掛接單個18B20直接跳過ROM。4, 控
32、制器發(fā)送存儲器操作指令:在ROM指令發(fā)送給18B20之后,緊接著(不間斷)就是發(fā)送存儲器操作指令了。操作指令同樣為8位,共6條,存儲器操作指令分別是寫RAM數(shù)據(jù)、讀RAM數(shù)據(jù)、將RAM數(shù)據(jù)復(fù)制到EEPROM、溫度轉(zhuǎn)換、將EEPROM中的報警值復(fù)制到RAM、工作方式切換。存儲器操作指令的功能是命令18B20作什么樣的工作,是芯片控制的關(guān)鍵。5, 執(zhí)行或數(shù)據(jù)讀寫:一個存儲器操作指令結(jié)束后則將進行指令執(zhí)行或數(shù)據(jù)的讀寫,這個操作要視存儲器操作指令而定。如執(zhí)行溫度轉(zhuǎn)換指令則控制器(單片機)必須等待18B20執(zhí)行其指令,一般轉(zhuǎn)換時間為500uS。如執(zhí)行數(shù)據(jù)讀寫指令則需要嚴格遵循18B20的讀寫時序來操作。
33、若要讀出當前的溫度數(shù)據(jù)我們需要執(zhí)行兩次工作周期,第一個周期為復(fù)位、跳過ROM指令、執(zhí)行溫度轉(zhuǎn)換存儲器操作指令、等待500uS溫度轉(zhuǎn)換時間。緊接著執(zhí)行第二個周期為復(fù)位、跳過ROM指令、執(zhí)行讀RAM的存儲器操作指令、讀數(shù)據(jù)(最多為9個字節(jié),中途可停止,只讀簡單溫度值則讀前2個字節(jié)即可)。寫命令到DS18B20WRITE: MOV R3,#8 WR1: SETB P1.7 ;開始寫 總線釋放 MOV R4,#8 RRC A ;把寫的位值環(huán)移給A CLR P1.7 WR2: DJNZ R4,WR2 MOV P1.7,C ; ;向DS18B20總線寫得一個BIT MOV R4,#30 WR3: DJNZ
34、 R4,WR3; 寫下一個BIT DJNZ R3,WR1 SETB P1.7 RET讀數(shù)據(jù)子程序READ: MOV R6,#8 RE1: CLR P1.7 MOV R4,#4 NOP SETB P1.7 RE2: DJNZ R4,RE2 MOV C,P1.7 ;從DS18B20總線讀得一個BIT RRC A ;把讀得的位值環(huán)移給A MOV R5,#30 RE3: DJNZ R5,RE3;讀下一個BIT DJNZ R6,RE1 SETB P1.7 RET溫度計算子程序 MOV A,48H ;取出小數(shù)部分ANL A,#0FH MOV B,#10 MUL AB ;A/16 CLR C RRC A C
35、LR C RRC A CLR C RRC A CLR C RRC A ;取TEMP_L的低四位X10/16得小數(shù)后一位數(shù). ;A/16 END MOV 4AH,A MOV A,48H ANL A,#0F0H ;取出TEMP_HI的高四位 SWAP A MOV 4DH,A MOV A,49H ANL A,#07H ;取出TEMP_H的低三位 SWAP A ORL A,4DH ;重新組合溫度數(shù)據(jù) MOV 4EH,A CLR C SUBB A,#100 JC LESS100 ;若100轉(zhuǎn)至LESS100 MOV A,4EH MOV B,#10 DIV AB ; MOV 4BH,B ; 得溫度個位BC
36、D MOV 4CH,A ; 得溫度十位BCD MOV LO_DAT,4AH;移至溫度寄存器。 MOV ME_DAT,4BH MOV HI_DAT,4CH MOV BI_DAT,#1H RETLESS100: MOV A,4EH MOV B,#10 DIV AB MOV 4BH,B MOV 4CH,A MOV LO_DAT,4AH MOV ME_DAT,4BH MOV HI_DAT,4CH MOV BI_DAT,#0H RET溫度傳感器程序主程序M_TEMP: NOP LCALL INI ;溫度傳感器初始化 MOV A,#0CCH;跳過ROM LCALL WRITE ;調(diào)寫子程序 MOV A,#
37、44H ;開始溫度轉(zhuǎn)換 LCALL WRITE ;調(diào)寫子程序 LCALL DELAY_TEMP ;延時1.0s LCALL INI ;準備讀溫度前先復(fù)位 MOV A,#0CCH ;跳過ROM LCALL WRITE ;調(diào)寫子程序; MOV A,#0BEH;讀取暫存器和CRC字節(jié) LCALL WRITE ;調(diào)溫度寫子程序;READ HI TO 49H ;將高字節(jié)數(shù)據(jù)存入49H LCALL READ MOV 48H,A ;READ LO TO 48H ; 將低字節(jié)數(shù)據(jù)存入48H LCALL READ MOV 49H,A4.3.5 LCD顯示設(shè)計顯示流程如下圖所示:圖4-6顯示模塊流程圖BUSY 高
38、電平(BUSY =1) 表示OCMJ 忙于內(nèi)部處理,不能接收用戶命令;BUSY 低電平(BUSY =0)表示OCMJ 空閑,等待接收用戶命令。發(fā)送命令到OCMJ可在BUSY =0 后的任意時刻開始,先把用戶命令的當前字節(jié)放到數(shù)據(jù)線上,接著發(fā)高電平REQ 信號(REQ =1)通知OCMJ 請求處理當前數(shù)據(jù)線上的命令或數(shù)據(jù)。OCMJ 模塊在收到外部的REQ高電平信號后立即讀取數(shù)據(jù)線上的命令或數(shù)據(jù),同時將應(yīng)答線BUSY 變?yōu)楦唠娖剑砻髂K已收到數(shù)據(jù)并正在忙于對此數(shù)據(jù)的內(nèi)部處理,此時,用戶對模塊的寫操作已經(jīng)完成,用戶可以撤消數(shù)據(jù)線上的信號并可作模塊顯示以外的其他工作,也可不斷地查詢應(yīng)答線BUSY 是
39、否為低(BUSY =0?),如果BUSY =0,表明模塊對用戶的寫操作已經(jīng)執(zhí)行完畢??梢栽偎拖乱粋€數(shù)據(jù)。如向模塊發(fā)出一個完整的顯示漢字的命令,包括坐標及漢字代碼在內(nèi)共需5 個字節(jié),模塊在接收到最后一個字節(jié)后才開始執(zhí)行整個命令的內(nèi)部操作,因此,最后一個字節(jié)的應(yīng)答B(yǎng)USY 高電平(BUSY =1)持續(xù)時間較長。通過命令調(diào)用OCMJ 系列液晶顯示器的各種功能。1.顯示國標漢字命令格式: F0 XX YY QQ WW該命令為5字節(jié)命令(最大執(zhí)行時間為1.2 毫秒,Ts2=1.2mS),其中XX:為以漢字為單位的屏幕行坐標值,取值范圍00H 到07H、02H 到09H、00H 到0BH、00H 到09H
40、、00H 到09H、00H 到0EHYY:為以漢字為單位的屏幕列坐標值,取值范圍00H 到01H、00H到03H、00H到03H、00 到04H、00H到07H、00H 到07HQQ WW:坐標位置上要顯示的GB 2312 漢字區(qū)碼、位碼2.顯示8X8 ASCII字符命令格式:F1 XX YY AS該命令為4字節(jié)命令(最大執(zhí)行時間為0.8 毫秒,Ts2=0.8mS),其中XX:為以ASCII碼為單位的屏幕行坐標值,取值范圍00H 到0FH、04H 到13H、00H到17H、00H 到13H、00H 到13H、00H 到1DHYY:為以ASCII碼為單位的屏幕列坐標值,取值范圍00H 到1FH、
41、00H 到3FH、00H 到3FH、00H到4FH、00H 到7FH、00H到7FHAS:坐標位置上要顯示的ASCII 字符碼3清屏命令格式:F4該命令為單字節(jié)命令(最大執(zhí)行時間為11 毫秒,Ts2=11mS),其功能為將屏幕清空。4. 初始化程序ORG 000H ;程序首址LJMP 100H ;跳過中斷區(qū)ORG 100HMOV SP,#60H ;設(shè)堆棧CLR REQ ;REQ=0SETB BUSY ;BUSY=15.寫模塊子程序(雙線應(yīng)答方式)-該程序使用REQ及BUSY 兩條控制線的握手方式對模塊進行寫操作。SUB1: JB BUSY,SUB1 ;確信模塊空閑(BUSY=0)MOV P1,
42、A ;向總線送數(shù)NOP ;等待數(shù)據(jù)總線穩(wěn)定SETB REQ ;置模塊REQ 端為高電平(REQ=1),向模塊發(fā)請求命令HE3: JNB BUSY,HE3 ;等待模塊響應(yīng)(BUSY =1)CLR REQ ;撤消REQ請求信號,數(shù)據(jù)輸入結(jié)束RET ;返回4.4軟件抗干擾技術(shù)在軟件設(shè)計時采用如下措施可以有效提高系統(tǒng)的抗干擾能力。增加系統(tǒng)信息管理模塊。與硬件相配合,對系統(tǒng)信息進行保護。其中包括防止信息被破壞,出故障時保護信息,故障排除之后恢復(fù)信息等。提高軟件自身的可靠性。通常要編制一個可靠運行的應(yīng)用軟件,應(yīng)考慮采用以下幾項措施。程序設(shè)計時,將程序分成若干個具有獨立功能的子程序模塊。各個程序模塊可以單獨使用,也可與其他程序模塊共同使用。各程序模塊之間可通過固定的通信區(qū)和一些指定的單片進行信息傳遞。每個程序模塊都可單獨進行調(diào)整和修改,不會影響其他程序模塊。采用可測試性設(shè)計。軟件抗干擾以其設(shè)計靈活、節(jié)省硬件資源、降低成本等優(yōu)勢越來越得到廣泛采用。軟件抗干擾技術(shù)主要有 “軟件陷阱技術(shù)”和“軟件看門狗技術(shù)。4.4.1軟件陷阱技術(shù)由于系統(tǒng)干擾可能破壞程序指針一旦失控程序就會“亂飛”,可能進入非程
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版牧業(yè)養(yǎng)殖技術(shù)引進與推廣合同3篇
- 二零二五年鋼結(jié)構(gòu)工程居間驗收服務(wù)合同3篇
- 2025年校園熱泵熱水設(shè)備供應(yīng)合同樣本2篇
- 2025版學(xué)校圖書采購與配送服務(wù)承包合同3篇
- 2025版宣傳片制作與宣傳合同3篇
- 2025版塔吊租賃、安裝與安全維護服務(wù)合同3篇
- 全新二零二五年度廣告制作與發(fā)布合同6篇
- 家用紡織品智能溫控技術(shù)考核試卷
- 個人職業(yè)規(guī)劃社群考核試卷
- 2025版學(xué)校校園安全防范系統(tǒng)建設(shè)承包合同3篇
- 2024年山東省泰安市高考物理一模試卷(含詳細答案解析)
- 腫瘤患者管理
- 2025春夏運動戶外行業(yè)趨勢白皮書
- 《法制宣傳之盜竊罪》課件
- 通信工程單位勞動合同
- 2024年醫(yī)療器械經(jīng)營質(zhì)量管理規(guī)范培訓(xùn)課件
- 2024年計算機二級WPS考試題庫380題(含答案)
- 高低壓配電柜產(chǎn)品營銷計劃書
- 2024年4月自考02202傳感器與檢測技術(shù)試題
- 新入職員工培訓(xùn)考試附有答案
- 外觀質(zhì)量評定報告
評論
0/150
提交評論