電子元件資料_第1頁
電子元件資料_第2頁
電子元件資料_第3頁
電子元件資料_第4頁
電子元件資料_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、引 言隨著傳感器及接口技術(shù)的發(fā)展,各種監(jiān)控、預(yù)警系統(tǒng)的應(yīng)用日益廣泛和普及,大大提高了人們的生命財產(chǎn)安全。多點報警系統(tǒng)是通過預(yù)設(shè)好各種傳感器,通過采樣放大電路等傳送到相應(yīng)的接口芯片中,并通過微機及系統(tǒng)計算機對其進行分析處理后,發(fā)出相應(yīng)的報警信號,及的相應(yīng)的應(yīng)急控制。1、 單片機以小巧靈活、成本低、可靠性好、易擴展和可以很方便地實現(xiàn)多機和分布式控制等卓越的性能,得到了廣泛的應(yīng)用,已深入到各個領(lǐng)域。此次控制主機采用8031單片機。2、 此次傳感器采用集成溫度傳感器LM35DZ,有優(yōu)良的線性特性,溫度電流系數(shù)K可較精確地設(shè)定為1µA/K或1µA/。無需精密電壓放大和冷端補償,并具有

2、抗干擾力強、可遠距離測溫等特點,測溫范圍-55150,測溫線性度為±0.5。3、 放大器采用具有高增益、內(nèi)置頻率補償,有四路的運算放大器的集成運放芯片LM324,組成四路集成放大電路,其供電電壓或者電壓差在3V到32V之間的,根據(jù)A/D轉(zhuǎn)換器來最后確定其工作電壓4、 利用比較器LM339及輔助邏輯電路組成中斷源。(通過對放大后的信號同可調(diào)整的參考電壓電路進行比較,產(chǎn)生相應(yīng)的中斷信號)5、 根據(jù)用戶需要,選擇相應(yīng)的輸出控制備,接口電路等硬件設(shè)備并進行相應(yīng)的程序設(shè)計,來完成最后的報警功能及控制功能本次畢業(yè)設(shè)計采用單片機控制技術(shù)和模擬數(shù)字電子技術(shù)來實現(xiàn)自動監(jiān)控報警。利用溫度傳感器檢測該場所

3、的溫度,在正常情況下,能輪流顯示各地點的溫度。當(dāng)溫度超過臨時界值,由比較電路產(chǎn)生中斷源,經(jīng)單片機運算和邏輯判斷后,做出一些相應(yīng)的自動處理,如顯示發(fā)生異常的地點和異常情況,并發(fā)出相應(yīng)的報警聲等。本人主要負(fù)責(zé)整體設(shè)計總體電路設(shè)計圖(符圖),并在啟東DVCC-5286JH單片機仿真實驗系統(tǒng)上進行調(diào)試成功,但由于時間關(guān)系,沒能將整個系統(tǒng)做到單個電路板上。 第一章 需求分析1.1 系統(tǒng)功能該自動控制系統(tǒng)能滿足以下功能: 該系統(tǒng)具有對煙霧、溫度、紅外及壓力信號的采集,并根據(jù)采集數(shù)據(jù)作出相應(yīng)的處理(如:溫度超出臨界溫度值,則自動報警)。 如有異?,F(xiàn)象(如煙霧濃度過大或室內(nèi)溫差較大),該系統(tǒng)能發(fā)出相應(yīng)報警信號

4、,令值班人員到現(xiàn)場處理。 如煙霧和溫度同時超出臨界值說明是火災(zāi),該裝置發(fā)火災(zāi)報警。 故障、異常發(fā)生時以不同報警聲加以區(qū)別。由于時間較緊,此次設(shè)計主要以溫度報警功能為主,根據(jù)設(shè)定的臨界溫度,監(jiān)控倉庫等場所的溫度,一旦檢測點超過臨界溫度值能自動報警并進行開窗,啟動排氣扇進行通風(fēng)(控制電機工作)等應(yīng)急處理。1.2 技術(shù)指標(biāo)1.2.1 被測控參數(shù)的形式由于該系統(tǒng)是接收紅外、溫度和煙霧的信號,被測控參數(shù)的形式為非電量。1.2.2 被測控參數(shù)的范圍溫度可能的變化范圍:-40120 測量精度為:±11.2.3 性能指標(biāo)系統(tǒng)要求發(fā)生異常能在幾十毫秒做出顯示、報警等處理,可靠性高,穩(wěn)定性好,可維護性好

5、,成本低。1.2.4 工作環(huán)境系統(tǒng)要求能工作在倉庫、家庭、圖書館以及檔案室等相類似的環(huán)境下。1.2.5 顯示要求正常狀態(tài)下顯示溫度值或狀態(tài)和地點;異常狀態(tài)下(如溫度超出界線溫度值)顯示溫度值或狀態(tài)和地點。 第二章 方案論證利用單片機作為控制主機,設(shè)計時要考慮數(shù)據(jù)采集系統(tǒng)及控制系統(tǒng)的設(shè)計方案,每個方面都由軟件設(shè)計及硬件設(shè)計兩個方面組成。數(shù)據(jù)采集系統(tǒng)的硬件設(shè)計主要由傳感器的選型,放大電路的設(shè)計,A/D轉(zhuǎn)換器選型,如考慮中斷方式還應(yīng)考慮比較器的選型及寄存器的選型組成,軟件設(shè)計由I/O通道的選擇,數(shù)據(jù)讀入方式的選擇及相應(yīng)的程序設(shè)計組成??刂葡到y(tǒng)主的設(shè)計主要由輸出控制設(shè)備決定,根據(jù)不同的控制設(shè)備,進行相

6、應(yīng)的接口電路及驅(qū)動電路的硬件設(shè)計及程序設(shè)計。在設(shè)計時,應(yīng)注意硬件設(shè)計和軟件設(shè)計方案之間矛盾及互換問題,下面對數(shù)據(jù)采集及定時方法進行設(shè)計方案論證。2.1數(shù)據(jù)采集2.1.1 查詢方案由圖2-1所示,傳感器輸出經(jīng)信號放大輸入A/D轉(zhuǎn)換器,A/D轉(zhuǎn)換器將數(shù)字信號送入單片機中,由單片機控制程序依次將各個通道的信號讀入并存放到一組地址中,然后依次讀取這些地址中的值與臨界值比較,若超出則進行相應(yīng)的控制處理。 圖2-1 查詢方案框圖2.1.2 中斷方案由圖2-2所示,信號經(jīng)放大后,經(jīng)過比較器與參考值進行比較,若超出則產(chǎn)生相應(yīng)的中斷信號,由CPU進行響應(yīng)中斷處理。 圖2-2 中斷方案框圖綜上所述,由于中斷方案是

7、所監(jiān)控的信號超過它的臨界值就能馬上做出相應(yīng)的控制處理,所以能很好的滿足及時性的要求;而查詢方案是要經(jīng)過查詢比較后才做出相應(yīng)的控制處理,所以它不能很好的滿足及時性的要求,故該系統(tǒng)選擇中斷方案。2.2 定時方法為了獲得所需要的定時,要求有準(zhǔn)確而穩(wěn)定的時間基準(zhǔn),產(chǎn)生這種時間基準(zhǔn)通常采用兩種方法軟件定時和硬件定時。2.2.1 軟件定時它是利用CPU內(nèi)部定時機構(gòu),運用軟件編程,循環(huán)執(zhí)行一段程序而產(chǎn)生的等待延時。這是常用的一種定時方法,主要用于短時延時。這種方法的優(yōu)點是不需增加硬設(shè)備,只需編制相應(yīng)的延時程序以備調(diào)用。缺點是CPU執(zhí)行延時等待時間增加了CPU的時間開銷,延時時間越長,這種等待開銷越大,降低了

8、CPU的效率,浪費CPU的資源。并且,軟件延時的時間隨主機頻率不同而發(fā)生變化,即定時程序的通用性差。2.2.2 硬件定時它是采用可編程通用的定時/計數(shù)器或單穩(wěn)延時電路產(chǎn)生定時或延時。這種方法不占用CPU的時間,定時時間長,使用靈活。尤其是定時準(zhǔn)確,定時時間不受主機頻率影響,定時程序具有通用性,故得到廣泛應(yīng)用。因此,本系統(tǒng)選用硬件定時,以提高CPU的效率,減少CPU的時間開銷。 第三章 總體設(shè)計3.1 硬件設(shè)計前向通道由傳感器、放大、A/D轉(zhuǎn)換、比較、邏輯電路和輸入擴展部分組成,由單片機讀取A/D轉(zhuǎn)換數(shù)據(jù),由比較器和邏輯電路產(chǎn)生中斷源,由單片機經(jīng)輸入擴展電路讀取比較狀態(tài),然后,對讀入的數(shù)據(jù)狀態(tài)進

9、行處理后,去控制報警、顯示、直流電機和步進電機工作。原理框圖如圖3-1。 圖3-1 總體設(shè)計原理框圖3.2 軟件設(shè)計我們采用的是模塊化結(jié)構(gòu)的思想,模塊是數(shù)據(jù)說明、可執(zhí)行語句等程序?qū)ο蟮募?,模塊化是為了使一個復(fù)雜的大型程序能被人的智力所管理,軟件應(yīng)該具備的唯一屬性。如果一個大型程序僅由一個模塊組成,它將很難被人所理解。根據(jù)需求分析的要求,軟件設(shè)計有如下幾個程序模塊組成。a 主程序模塊: 初始化模塊,(定時器初始化,中斷初始化),調(diào)用子程序。b 定時器模塊:定時讀取各個通道的數(shù)據(jù)。c 中斷模塊:由比較器提提供中斷信號,單片機響應(yīng)相應(yīng)的中斷服務(wù)程序,d 各類子程序:報警、顯示、直流電機和步進電機工

10、作等控制子程序。 第四章 數(shù)據(jù)采集系統(tǒng)設(shè)計4.1 單片機應(yīng)用系統(tǒng)的前向通道當(dāng)將單片機用作測、控系統(tǒng)時,系統(tǒng)中總要有被測信號輸入通道,由計算機拾取必要的輸入信息。作為測試系統(tǒng),對被測對象拾取必要的原始參量信號是系統(tǒng)的核心任務(wù),對控制系統(tǒng)來說,對被控對象狀態(tài)的測試以及對控制條件的監(jiān)測也是不可缺少的環(huán)節(jié)。對被測對象狀態(tài)的測試一般都離不開傳感器或敏感元件,這是因為被測對象的狀態(tài)參數(shù)常常是一些非電物理量,如溫度、壓力、載荷、位移等,而計算機是一個數(shù)字電路系統(tǒng)。因此,在前向通道中,傳感器及其相關(guān)電路占有重要地位。4.2 傳感器傳感器是借助于檢測元件(敏感元件)接收一種形式的信息,并按一定規(guī)律將它轉(zhuǎn)換成另一

11、種信息的裝置。它獲取的信息,可以是各種物理量、化學(xué)量和生物量,而轉(zhuǎn)換后的信息也有各種形式。通常傳感器由敏感元件和轉(zhuǎn)換元件組成。目前大多數(shù)的傳感器將獲取的信息轉(zhuǎn)換為電信號?,F(xiàn)代科學(xué)技術(shù)的迅猛的發(fā)展,使人類社會進入信息時代。而在信息時代中,人們的社會活動將主要依靠對信息資源的開發(fā)及獲取、傳輸與處理。而傳感器處于自動檢測與控制系統(tǒng)之首,是感知、獲取與檢測信息的窗口;傳感器處于研究對象與測控系統(tǒng)的接口位置,一切科學(xué)研究和生產(chǎn)過程要獲取的信息,都要通過它轉(zhuǎn)換為容易傳輸與處理的電信號。DS18B20一線總線數(shù)字式傳感器的原理與使用_ DS18B20、 DS1822 “一線總線”數(shù)字化溫度傳感器是DALLA

12、S最新單線數(shù)字溫度傳感器, 同DS1820一樣,DS18B20也 支持“一線總線”接口,測量溫度范圍為 -55°C+125°C,在-10+85°C范圍內(nèi),精度為±0.5°C。DS1822的精度較差為± 2°C ?,F(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。適合于惡劣環(huán)境的現(xiàn)場溫度測量,與前一代產(chǎn)品不同,新的產(chǎn)品支持3V5.5V的電壓范圍,使系統(tǒng)設(shè)計更靈活、方便。而且新一代產(chǎn)品更便宜,體積更小。 DS18B20可以程序設(shè)定912位的分辨率,精度為±0.5°C。可選更小的封裝方式,更寬

13、的電壓適用范圍。分辨率設(shè)定,及用戶設(shè)定的報警溫度存儲在EEPROM中,掉電后依然保存。DS18B20的性能是新一代產(chǎn)品中最好的!性能價格比也非常出色! DS1822與 DS18B20軟件兼容,是DS18B20的簡化版本。省略了存儲用戶定義報警溫度、分辨率參數(shù)的EEPROM,精度降低為±2°C,適用于對性能要求不高,成本控制嚴(yán)格的應(yīng)用,是經(jīng)濟型產(chǎn)品。 繼“一線總線”的早期產(chǎn)品后,DS1820開辟了溫度傳感器技術(shù)的新概念。DS18B20和DS1822使電壓、特性及封裝有更多的選擇,讓我們可以構(gòu)建適合自己的經(jīng)濟的測溫系統(tǒng)。 DS18B20的內(nèi)部結(jié)構(gòu) DS18B20內(nèi)部結(jié)構(gòu)主要由四

14、部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。DS18B20的管腳排列如下: 15元/只 DQ為數(shù)字信號輸入/輸出端;GND為電源地;VDD為外接供電電源輸入端(在寄生電源接線方式時接地)。 光刻ROM中的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。64位光刻ROM的排列是:開始8位(28H)是產(chǎn)品類型標(biāo)號,接著的48位是該DS18B20自身的序列號,最后8位是前面56位的循環(huán)冗余校驗碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個DS18B20都各不相同,這樣就可以實現(xiàn)一根總線上掛接多個DS18B20的目的。

15、 DS18B20中的溫度傳感器可完成對溫度的測量,以12位轉(zhuǎn)化為例:用16位符號擴展的二進制補碼讀數(shù)形式提供,以0.0625/LSB形式表達,其中S為符號位。 這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18B20的兩個8比特的RAM中,二進制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實際溫度。 例如+125的數(shù)字輸出為07D0H,+25.0625的數(shù)字輸出為0191H,-25.0625的數(shù)字輸出為FF6FH,-55的數(shù)字輸出為FC90H。 DS18B20溫度

16、傳感器的存儲器 DS18B20溫度傳感器的內(nèi)部存儲器包括一個高速暫存RAM和一個非易失性的可電擦除的E2RAM,后者存放高溫度和低溫度觸發(fā)器TH、TL和結(jié)構(gòu)寄存器。 暫存存儲器包含了8個連續(xù)字節(jié),前兩個字節(jié)是測得的溫度信息,第一個字節(jié)的內(nèi)容是溫度的低八位,第二個字節(jié)是溫度的高八位。第三個和第四個字節(jié)是TH、TL的易失性拷貝,第五個字節(jié)是結(jié)構(gòu)寄存器的易失性拷貝,這三個字節(jié)的內(nèi)容在每一次上電復(fù)位時被刷新。第六、七、八個字節(jié)用于內(nèi)部計算。第九個字節(jié)是冗余檢驗字節(jié)。 該字節(jié)各位的意義如下:TM R1 R0 1 1 1 1 1低五位一直都是1 ,TM是測試模式位,用于設(shè)置DS18B20在工作模式還是在測

17、試模式。在DS18B20出廠時該位被設(shè)置為0,用戶不要去改動。R1和R0用來設(shè)置分辨率,如下表所示:(DS18B20出廠時被設(shè)置為12位)分辨率設(shè)置表:R1 R0 分辨率 溫度最大轉(zhuǎn)換時間0 0 9位 93.75ms0 1 10位 187.5ms1 0 11位 375ms1 1 12位 750ms 根據(jù)DS18B20的通訊協(xié)議,主機控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:每一次讀寫之前都要對DS18B20進行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號后等待166

18、0微秒左右,后發(fā)出60240微秒的存在低脈沖,主CPU收到此信號表示復(fù)位成功。 DS1820使用中注意事項 DS1820雖然具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點,但在實際應(yīng)用中也應(yīng)注意以下幾方面的問題: (1)較小的硬件開銷需要相對復(fù)雜的軟件進行補償,由于DS1820與微處理器間采用串行數(shù)據(jù)傳送,因此,在對DS1820進行讀寫編程時,必須嚴(yán)格的保證讀寫時序,否則將無法讀取測溫結(jié)果。在使用PL/M、C等高級語言進行系統(tǒng)程序設(shè)計時,對DS1820操作部分最好采用匯編語言實現(xiàn)。 (2)在DS1820的有關(guān)資料中均未提及單總線上所掛DS1820數(shù)量問題,容易使人誤認(rèn)為可以掛任意多個

19、DS1820,在實際應(yīng)用中并非如此。當(dāng)單總線上所掛DS1820超過8個時,就需要解決微處理器的總線驅(qū)動問題,這一點在進行多點測溫系統(tǒng)設(shè)計時要加以注意。 (3)連接DS1820的總線電纜是有長度限制的。試驗中,當(dāng)采用普通信號電纜傳輸長度超過50m時,讀取的測溫數(shù)據(jù)將發(fā)生錯誤。當(dāng)將總線電纜改為雙絞線帶屏蔽電纜時,正常通訊距離可達150m,當(dāng)采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時,正常通訊距離進一步加長。這種情況主要是由總線分布電容使信號波形產(chǎn)生畸變造成的。因此,在用DS1820進行長距離測溫系統(tǒng)設(shè)計時要充分考慮總線分布電容和阻抗匹配問題。 (4)在DS1820測溫程序設(shè)計中,向DS1820發(fā)出溫

20、度轉(zhuǎn)換命令后,程序總要等待DS1820的返回信號,一旦某個DS1820接觸不好或斷線,當(dāng)程序讀該DS1820時,將沒有返回信號,程序進入死循環(huán)。這一點在進行DS1820硬件連接和軟件設(shè)計時也要給予一定的重視。 測溫電纜線建議采用屏蔽4芯雙絞線,其中一對線接地線與信號線,另一組接VCC和地線,屏蔽層在源端單點接地。 本站實驗板實驗程序: ;這是關(guān)于DS18B20的讀寫程序,數(shù)據(jù)腳P2.2,晶振12MHZ;溫度傳感器18B20匯編程序,采用器件默認(rèn)的12位轉(zhuǎn)化,最大轉(zhuǎn)化時間750微秒;可以將檢測到的溫度直接顯示到AT89C51開發(fā)實驗板的兩個數(shù)碼管上;顯示溫度00到99度,很準(zhǔn)確哦無需校正!ORG

21、 0000H;單片機內(nèi)存分配申明!TEMPER_L EQU 29H;用于保存讀出溫度的低8位TEMPER_H EQU 28H;用于保存讀出溫度的高8位FLAG1 EQU 38H;是否檢測到DS18B20標(biāo)志位a_bit equ 20h ;數(shù)碼管個位數(shù)存放內(nèi)存位置b_bit equ 21h ;數(shù)碼管十位數(shù)存放內(nèi)存位置MAIN:LCALL GET_TEMPER;調(diào)用讀溫度子程序;進行溫度顯示,這里我們考慮用網(wǎng)站提供的兩位數(shù)碼管來顯示溫度;顯示范圍00到99度,顯示精度為1度;因為12位轉(zhuǎn)化時每一位的精度為0.0625度,我們不要求顯示小數(shù)所以可以拋棄29H的低4位;將28H中的低4位移入29H中的

22、高4位,這樣獲得一個新字節(jié),這個字節(jié)就是實際測量獲得的溫度MOV A,29HMOV C,40H;將28H中的最低位移入CRRC AMOV C,41HRRC AMOV C,42HRRC AMOV C,43HRRC AMOV 29H,ALCALL DISPLAY;調(diào)用數(shù)碼管顯示子程序CPL P1.0AJMP MAIN; 這是DS18B20復(fù)位初始化子程序INIT_1820:SETB P3.5NOPCLR P3.5;主機發(fā)出延時537微秒的復(fù)位低脈沖MOV R1,#3TSR1:MOV R0,#107DJNZ R0,$DJNZ R1,TSR1SETB P3.5;然后拉高數(shù)據(jù)線NOPNOPNOPMOV

23、R0,#25HTSR2:JNB P3.5,TSR3;等待DS18B20回應(yīng)DJNZ R0,TSR2LJMP TSR4 ; 延時TSR3:SETB FLAG1 ; 置標(biāo)志位,表示DS1820存在CLR P1.7;檢查到DS18B20就點亮P1.7LEDLJMP TSR5TSR4:CLR FLAG1 ; 清標(biāo)志位,表示DS1820不存在CLR P1.1;點亮P1。1腳LED表示溫度傳感器通信失敗LJMP TSR7TSR5:MOV R0,#117TSR6:DJNZ R0,TSR6 ; 時序要求延時一段時間TSR7:SETB P3.5RET; 讀出轉(zhuǎn)換后的溫度值GET_TEMPER:SETB P3.5

24、LCALL INIT_1820;先復(fù)位DS18B20JB FLAG1,TSS2CLR P1.2RET ; 判斷DS1820是否存在?若DS18B20不存在則返回TSS2:CLR P1.3;DS18B20已經(jīng)被檢測到!MOV A,#0CCH ; 跳過ROM匹配LCALL WRITE_1820MOV A,#44H ; 發(fā)出溫度轉(zhuǎn)換命令LCALL WRITE_1820;這里通過調(diào)用顯示子程序?qū)崿F(xiàn)延時一段時間,等待AD轉(zhuǎn)換結(jié)束,12位的話750微秒LCALL DISPLAYLCALL INIT_1820;準(zhǔn)備讀溫度前先復(fù)位MOV A,#0CCH ; 跳過ROM匹配LCALL WRITE_1820MOV

25、 A,#0BEH ; 發(fā)出讀溫度命令LCALL WRITE_1820LCALL READ_18200; 將讀出的溫度數(shù)據(jù)保存到35H/36HCLR P1.4RET;寫DS18B20的子程序(有具體的時序要求)WRITE_1820:MOV R2,#8;一共8位數(shù)據(jù)CLR CWR1:CLR P3.5MOV R3,#6DJNZ R3,$RRC AMOV P3.5,CMOV R3,#23DJNZ R3,$SETB P3.5NOPDJNZ R2,WR1SETB P3.5RET; 讀DS18B20的程序,從DS18B20中讀出兩個字節(jié)的溫度數(shù)據(jù)READ_18200:MOV R4,#2 ; 將溫度高位和低位

26、從DS18B20中讀出MOV R1,#29H ; 低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)RE00:MOV R2,#8;數(shù)據(jù)一共有8位RE01:CLR CSETB P3.5NOPNOPCLR P3.5NOPNOPNOPSETB P3.5MOV R3,#9RE10:DJNZ R3,RE10MOV C,P3.5MOV R3,#23RE20:DJNZ R3,RE20RRC ADJNZ R2,RE01MOV R1,ADEC R1DJNZ R4,RE00RET;顯示子程序display: mov a,29H;將29H中的十六進制數(shù)轉(zhuǎn)換成10進制mov b,#10 ;10進制

27、/10=10進制div abmov b_bit,a ;十位在amov a_bit,b ;個位在bmov dptr,#numtab ;指定查表啟始地址mov r0,#4dpl1: mov r1,#250 ;顯示1000次dplop: mov a,a_bit ;取個位數(shù)MOVC A,A+DPTR ;查個位數(shù)的7段代碼mov p0,a ;送出個位的7段代碼clr p2.0 ;開個位顯示acall d1ms ;顯示1mssetb p2.0mov a,b_bit ;取十位數(shù)MOVC A,A+DPTR ;查十位數(shù)的7段代碼mov p0,a ;送出十位的7段代碼clr p2.1 ;開十位顯示acall d1

28、ms ;顯示1mssetb p2.1djnz r1,dplop ;100次沒完循環(huán)djnz r0,dpl1 ;4個100次沒完循環(huán)ret;1MS延時(按12MHZ算)D1MS: MOV R7,#80DJNZ R7,$RET;實驗板上的7段數(shù)碼管09數(shù)字的共陰顯示代碼numtab: DB 0F3H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90Hend 以下是第二種采集和處理程序供網(wǎng)友參考;溫度傳感器18B20匯編程序,采用器件默認(rèn)的12位轉(zhuǎn)化,最大轉(zhuǎn)化時間750微秒;將溫度數(shù)據(jù)通過串口發(fā)送出去,波特率2400;本程序?qū)锳T89C51實驗開發(fā)板編寫.適合12晶振;本程序經(jīng)過

29、驗證,可以顯示溫度+/-和兩位整數(shù)溫度和兩位小數(shù)溫度數(shù)據(jù)DOT EQU 30HZHENGSHU EQU 31HFLAG1 EQU 38H ;是否檢測到DS18B20的標(biāo)志位;定義溫度數(shù)據(jù)DIS_1 EQU 32H ;符號DIS_2 EQU 33H ;十位DIS_3 EQU 34H ;個位DIS_4 EQU 35H ;小數(shù)點后第一位DIS_5 EQU 36H ;小數(shù)點后第二位WDDATA BIT P2.2 ;定義DS18B20的數(shù)據(jù)腳為P2.2端口ORG 0000H;以下為主程序進行CPU中斷方式設(shè)置CLR EA ;關(guān)閉總中斷MOV SCON,#50H ;設(shè)置成串口1方式MOV TMOD,#20

30、H ;波特率發(fā)生器T1工作在模式2上MOV TH1,#0F3H ;預(yù)置初值(按照波特率2400BPS預(yù)置初值)MOV TL1,#0F3H ;預(yù)置初值(按照波特率2400BPS預(yù)置初值)SETB TR1 ;啟動定時器T1;以上完成串口2400通訊初始化設(shè)置;-; 主程序;-MAIN:LCALL INIT_1820 ;調(diào)用復(fù)位DS18B20子程序MAIN1:LCALL GET_TEMPER;調(diào)用讀溫度子程序LCALL FORMULA ;通過公式計算,小數(shù)點后顯示兩位LCALL BCDLCALL DISPLAY ;調(diào)用串口顯示子程序LCALL DELAY500 ;延時0.5秒LCALL DELAY5

31、00 ;延時0.5秒LCALL DELAY500 ;延時0.5秒AJMP MAIN1;-; DS18B20復(fù)位初始化程序;-INIT_1820:SETB WDDATANOPCLR WDDATA;主機發(fā)出延時540微秒的復(fù)位低脈沖MOV R0,#36LCALL DELAYSETB WDDATA;然后拉高數(shù)據(jù)線NOPNOPMOV R0,#36TSR2:JNB WDDATA,TSR3;等待DS18B20回應(yīng)DJNZ R0,TSR2LJMP TSR4 ; 延時TSR3:SETB FLAG1 ; 置標(biāo)志位,表示DS1820存在LJMP TSR5TSR4:CLR FLAG1 ; 清標(biāo)志位,表示DS1820

32、不存在LJMP TSR7TSR5:MOV R0,#06BHTSR6:DJNZ R0,TSR6 ;復(fù)位成功!時序要求延時一段時間TSR7:SETB WDDATARET;-; 讀出轉(zhuǎn)換后的溫度值;-GET_TEMPER:SETB WDDATA ; 定時入口LCALL INIT_1820 ;先復(fù)位DS18B20JB FLAG1,TSS2RET ; 判斷DS1820是否存在?若DS18B20不存在則返回TSS2:MOV A,#0CCH ; 跳過ROM匹配LCALL WRITE_1820MOV A,#44H ; 發(fā)出溫度轉(zhuǎn)換命令LCALL WRITE_1820MOV R0,#50 ;等待AD轉(zhuǎn)換結(jié)束,1

33、2位的話750微秒.LCALL DELAYLCALL INIT_1820 ;準(zhǔn)備讀溫度前先復(fù)位MOV A,#0CCH ; 跳過ROM匹配LCALL WRITE_1820MOV A,#0BEH ; 發(fā)出讀溫度命令LCALL WRITE_1820LCALL READ_18200; 將讀出的九個字節(jié)數(shù)據(jù)保存到60H-68HRET;-;寫DS18B20的子程序(有具體的時序要求);-WRITE_1820:MOV R2,#8 ;一共8位數(shù)據(jù)CLR CWR1:CLR WDDATAMOV R3,#6DJNZ R3,$RRC AMOV WDDATA,CMOV R3,#24DJNZ R3,$SETB WDDAT

34、ANOPDJNZ R2,WR1SETB WDDATARET;-; 讀DS18B20的程序,從DS18B20中讀出九個字節(jié)的數(shù)據(jù);-READ_18200:MOV R4,#9MOV R1,#60H ; 存入60H開始的九個單元RE00:MOV R2,#8RE01:CLR CSETB WDDATANOPNOPCLR WDDATANOPNOPNOPSETB WDDATAMOV R3,#09RE10:DJNZ R3,RE10MOV C,WDDATAMOV R3,#23RE20:DJNZ R3,RE20RRC ADJNZ R2,RE01MOV R1,AINC R1DJNZ R4,RE00RET;-;溫度計

35、算子程序;-FORMULA: ; 按公式:T實際=(T整數(shù)-0.25)+( M每度-M剩余)/ M每度;計算出實際溫度,整數(shù)部分和小數(shù)部分分別存于ZHENGSHU單元和DOT單元;將61H中的低4位移入60H中的高4位,得到溫度的整數(shù)部分,并存于ZHENGSHU單元MOV 29H,61HMOV A,60HMOV C,48HRRC AMOV C,49HRRC AMOV C,4AHRRC AMOV C,4BHRRC AMOV ZHENGSHU,A; ( M每度-M剩余)/ M每度,小數(shù)值存于A中MOV A,67hSUBB A,66hMOV B,#64HMUL ABMOV R4,BMOV R5,AM

36、OV R7,67HLCALL DIV457MOV A,R3;再減去0.25,實際應(yīng)用中減去25SUBB A,#19HMOV DOT,A ;小數(shù)部分存于DOT中MOV A,ZHENGSHUSUBB A,#00H ;整數(shù)部分減去來自小數(shù)部分的借位MOV ZHENGSHU,AMOV C,4BHJNC ZHENG ;是否為負(fù)數(shù)CPL AINC AMOV DIS_1,#2DH ; 零度以下時,第一位顯示"-"號MOV ZHENGSHU,AZHENG:MOV DIS_1,#2BH ; 零度以上時,第一位顯示"+"號RET;-;雙字節(jié)除以單字節(jié)子程序;-DIV457: CLR CMOV A,R4SUBB A,R7JC DV50SETB OV ;商溢出RETDV50: MOV R6,#8 ;求平均值(R4R5R7R3)DV51: MOV A,R5RLC AMOV

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論