




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于MCS-51單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)摘 要本文提出了基于MCS-51系列單片機(jī)的數(shù)字溫度計(jì)的制作電路和編程思想。該數(shù)字溫度計(jì)以ATMEL公司的AT89S52 單片機(jī)為主控,配以達(dá)拉斯公司的DS18B20數(shù)字溫度傳感器,采用1602雙行英文字符液晶作顯示。實(shí)現(xiàn)了對溫度的測量,顯示,和報警等功能。關(guān)鍵詞: AT89S52單片機(jī);數(shù)字傳感器DS18B20;顯示器1602LCD;目 錄摘要IABSTRACTII1 緒論21.1 選題的背景21.2 數(shù)字溫度計(jì)簡介21.2.1 數(shù)字溫度計(jì)的特征21.2.2 設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)32 數(shù)字溫度計(jì)的方案設(shè)計(jì)42.1 設(shè)計(jì)方案論證與比較42.1.1 顯示電路方案
2、42.1.2 測溫電路方案42.2 系統(tǒng)總體方案43 數(shù)字溫度計(jì)的硬件電路設(shè)計(jì)53.1 控制電路53.1.1 MCU簡介53.2.2 最小系統(tǒng)模塊63.3 溫度傳感器設(shè)計(jì)73.3.1 DS18B20簡介73.3.2 溫度傳感器與單片機(jī)的連接93.3.3 復(fù)位信號及外部復(fù)位電路103.4 單片機(jī)與報警電路103.5 顯示電路104 軟件設(shè)計(jì)124.1 DS18b20的讀操作124.2 DS18b20的溫度數(shù)據(jù)處理134.3 1602顯示部分145 運(yùn)行測試165.1溫度測試 275.2報警設(shè)置 285.3 報警測試 29參考文獻(xiàn)30附錄1 程序源代碼311 緒論1.1 選題的背景隨著現(xiàn)代信息技術(shù)
3、的飛速發(fā)展和傳統(tǒng)工業(yè)改造的逐步實(shí)現(xiàn)能夠獨(dú)立工作的溫度檢測和顯示系統(tǒng)應(yīng)用于諸多領(lǐng)域。傳統(tǒng)的溫度檢測以熱敏電阻為溫度敏感元件。熱敏電阻的成本低,但需后續(xù)信號處理電路,而且可靠性相對較差,測溫準(zhǔn)確度低,檢測系統(tǒng)也有一定的誤差。與傳統(tǒng)的溫度計(jì)相比,這里設(shè)計(jì)的數(shù)字溫度計(jì)具有讀數(shù)方便,測溫范圍廣,測溫精確,數(shù)字顯示,適用范圍寬等特點(diǎn)。選用AT89S52單片機(jī)作為主控制器件,DSl8B20作為測溫傳感器通過LCD1602并行傳送數(shù)據(jù),實(shí)現(xiàn)溫度顯示。通過DSl8B20直接讀取被測溫度值,進(jìn)行數(shù)據(jù)轉(zhuǎn)換,該器件的物理化學(xué)性能穩(wěn)定,線性度較好,在-55125最大線性偏差小于0.1。該器件可直接向單片機(jī)傳輸數(shù)字信號,
4、便于單片機(jī)處理及控制。另外,該溫度計(jì)還能直接采用測溫器件測量溫度,從而簡化數(shù)據(jù)傳輸與處理過程。1.2 數(shù)字溫度計(jì)簡介1.2.1 數(shù)字溫度計(jì)的特征溫度是我們?nèi)粘Ia(chǎn)和生活中實(shí)時在接觸到的物理量,但是它是看不到的,僅憑感覺只能感覺到大概的溫度值,傳統(tǒng)的指針式的溫度計(jì)雖然能指示溫度,但是精度低,使用不夠方便,顯示不夠直觀,數(shù)字溫度計(jì)的出現(xiàn)可以讓人們直觀的了解自己想知道的溫度到底是多少度。數(shù)字溫度計(jì)采用進(jìn)口芯片組裝精度高、高穩(wěn)定性,誤差0.5%, 內(nèi)電源、微功耗、不銹鋼外殼,防護(hù)堅(jiān)固,美觀精致。數(shù)字溫度計(jì)采用進(jìn)口高精度、低溫漂、超低功耗集成電路和寬溫型液晶顯示器,內(nèi)置高能量電池連續(xù)工作5年無需敷設(shè)供電
5、電纜,是一種精度高、穩(wěn)定性好、適用性極強(qiáng)的新型現(xiàn)場溫度顯示儀。是傳統(tǒng)現(xiàn)場指針雙金屬溫度計(jì)的理想替代產(chǎn)品,廣泛應(yīng)用于各類工礦企業(yè),大專院校,科研院所。數(shù)字溫度計(jì)采用溫度敏感元件也就是溫度傳感器(如鉑電阻,熱電偶,半導(dǎo)體,熱敏電阻等),將溫度的變化轉(zhuǎn)換成電信號的變化,如電壓和電流的變化,溫度變化和電信號的變化有一定的關(guān)系,如線性關(guān)系,一定的曲線關(guān)系等,這個電信號可以使用模數(shù)轉(zhuǎn)換的電路即AD轉(zhuǎn)換電路將模擬信號轉(zhuǎn)換為數(shù)字信號,數(shù)字信號再送給處理單元,如單片機(jī)或者PC機(jī)等,處理單元經(jīng)過內(nèi)部的軟件計(jì)算將這個數(shù)字信號和溫度聯(lián)系起來,成為可以顯示出來的溫度數(shù)值,如25.0攝氏度,然后通過顯示單元,如LED,L
6、CD或者電腦屏幕等顯示出來給人觀察。這樣就完成了數(shù)字溫度計(jì)的基本測溫功能。數(shù)字溫度計(jì)根據(jù)使用的傳感器的不同,AD轉(zhuǎn)換電路,及處理單元的不同,它的精度,穩(wěn)定性,測溫范圍等都有區(qū)別,這就要根據(jù)實(shí)際情況選擇符合規(guī)格的數(shù)字溫度計(jì)。1.2.2 設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)1) 采集測溫范圍為-55+120 .2) 溫度精度在0.1 ;誤差0.2以內(nèi).3) 顯示模塊,采用1602液晶顯示.4) 按鍵3個,設(shè)置、加、減.5) 報警設(shè)置10-90度.低于下限報警,高于上限報警。2 數(shù)字溫度計(jì)的方案設(shè)計(jì)2.1 設(shè)計(jì)方案論證與比較2.1.1 顯示電路方案方案一:采用數(shù)碼管動態(tài)顯示使用七段LED數(shù)碼管,采用動態(tài)顯示的方法來顯示各
7、項(xiàng)指標(biāo),此方法雖然價格成本低,但是顯示單一,且功耗較大。方案二:采用LCD液晶顯示采用1602 LCD液晶顯示,此方案顯示內(nèi)容相對豐富,且價格不高。綜合上述原因,采用方案二,使用LCD液晶作顯示電路。2.1.2 測溫電路方案方案一:采用模擬溫度傳感器測溫由于本設(shè)計(jì)是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測溫度變化的電壓或電流采集過來,進(jìn)行A/D轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設(shè)計(jì)需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。方案二:采用數(shù)字溫度傳感器進(jìn)而考慮到用溫度傳感器,在單片機(jī)電路設(shè)計(jì)中,大多都是使用傳感器,所以這是非常容
8、易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測溫度值,進(jìn)行轉(zhuǎn)換,就可以滿足設(shè)計(jì)要求。綜合考慮,很容易看出,采用方案二,電路比較簡單,軟件設(shè)計(jì)也比較簡單,故采用了方案二。2.2 系統(tǒng)總體方案根據(jù)上述方案比較,結(jié)合題目要可以將系統(tǒng)分為主控模塊,顯示模塊,溫度采集模塊和報警模塊,其框圖如下: DS18B20溫度數(shù)據(jù)采集設(shè)置按鍵鍵驅(qū)動顯示報警電路 MCU圖2-1 系統(tǒng)總體設(shè)計(jì)框圖3 數(shù)字溫度計(jì)的硬件電路設(shè)計(jì)3.1 控制電路3.1.1 MCU簡介CPU是整個控制部分的核心。在考慮經(jīng)濟(jì)性和滿足需求的前提下,本系統(tǒng)選用ATMEL公司生產(chǎn)的8位AT89S52單片機(jī)作為整個
9、系統(tǒng)的控制中心。AT89S52是ATMEL公司生產(chǎn)的低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4k bytes的可系統(tǒng)編程的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳,它集Flash存儲器既可在線編輯(ISP)也可用傳統(tǒng)方法進(jìn)行編輯及通用8位微處理器于單片芯片中,功能強(qiáng)大AT89S52單片機(jī)可為您提供許多高性價比的應(yīng)用場合。器管腳圖如圖3-2:圖3-1 AT89S52管腳圖在本系統(tǒng)中,AT89S52單片機(jī)內(nèi)部的功能單元已經(jīng)能夠滿足系統(tǒng)設(shè)計(jì)需要,不需要系統(tǒng)擴(kuò)展。AT89S52具有以下的特點(diǎn): 8031 CPU與MCS-51 兼容
10、壽命:1000寫/擦循環(huán) 4K字節(jié)可編程FLASH存儲器 全靜態(tài)工作:0-24MHz 三級程序存儲器保密鎖定 128*8位內(nèi)部RAM 32條可編程I/O線 兩個16位定時器/計(jì)數(shù)器 6個中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內(nèi)振蕩器和時鐘AT89S52 是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非 易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完 全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于 常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng) 可編程Flash,使得AT89S52為眾多嵌
11、入式控制應(yīng)用系統(tǒng)提 供高靈活、超有效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位 定時器/計(jì)數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時鐘電路。此外, AT89S52 可降至0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時器/計(jì)數(shù)器、串口、中斷繼續(xù)工 作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié), 單片機(jī)一切工作停止,直到下一個中斷或硬件復(fù)位為止。8 位微控制器 8K 字節(jié)在系統(tǒng)可編程 Flash。同時該芯片還具有PDI
12、P、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。3、AT89S52引腳功能AT89S52 單片機(jī)為40 引腳芯片見圖3.2.1-2。圖3.2.1-2 AT89S52引腳圖(1)口線:P0、P1、P2、P3 共四個八位口。P0 口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。 對P0端口寫“1”時,引腳用作高阻抗輸入。 當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0不具有內(nèi)部上拉電阻。 在flash編程時,P0口也用來接收指令字節(jié);在程序校驗(yàn)時,輸出指令字節(jié)。程序校驗(yàn)時,需要外部上拉電阻。 P1口:P1 口是
13、一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 此外,P1.0和P1.1分別作定時器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和定時器/計(jì)數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。 在flash編程和校驗(yàn)時,P1口接收低8位地址字節(jié)。 引腳號第二功能: P1.0 T2(定時器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時鐘輸出 P1.1 T2EX(定時器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制) P1.5
14、 MOSI(在系統(tǒng)編程用) P1.6 MISO(在系統(tǒng)編程用) P1.7 SCK(在系統(tǒng)編程用)P2口:P2 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX DPTR) 時,P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。 在
15、flash編程和校驗(yàn)時,P2口也接收高8位地址字節(jié)和一些控制信號。 P3 口:P3 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p3 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 P3口亦作為AT89S52特殊功能(第二功能)使用。 在flash編程和校驗(yàn)時,P3口也接收一些控制信號。 此外,P3口還接收一些用于FLASH閃存編程和程序校驗(yàn)的控制信號。 (2)其他引腳說明:RST:復(fù)位輸入。晶振工作時,RST腳持續(xù)2 個機(jī)器周期高電平將使單片機(jī)復(fù)位。
16、看門狗計(jì)時完成后,RST 腳輸出96 個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。 ALE/PROG當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。 對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。 如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位
17、后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機(jī)執(zhí)行外部程序時,應(yīng)設(shè)置ALE禁止位無效。 PSEN程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)AT89S52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機(jī)器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。 EA/VPP外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。 如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器的指令。
18、 FLASH存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。 XTAL1,XTAL2接石英晶體振蕩器。如圖3.2.1-3所示外接晶體引腳圖。 C2 XTAL2 懸空 XTAL2 C1 XTAL1 外部振蕩信號 XTAL1 GND GND 接地 接地a內(nèi)部方式 b外部方式圖3.2.1-3晶振外接結(jié)構(gòu)引腳圖XTAL1是片內(nèi)振蕩器的反相放大器輸入端,XTAL2則是輸出端,使用外部振蕩器時,外部振蕩信號應(yīng)直接加到XTAL1,而XTAL2懸空。內(nèi)部方式時,時
19、鐘發(fā)生器對振蕩脈沖二分頻,如晶振為12MHz,時鐘頻率就為6MHz。晶振的頻率可以在1MHz-24MHz內(nèi)選擇,在本設(shè)計(jì)電路中選用了12MHz。電容取20PF左右。機(jī)器周期12時間周期,如12MHz的機(jī)器周期為1微秒。(3)控制或復(fù)位引腳RESET 此腳為高電平時(約2個機(jī)器周期)可將單片機(jī)復(fù)位。RST/VPD當(dāng)出現(xiàn)兩個機(jī)器周期高電平時,單片機(jī)復(fù)位。復(fù)位后,P0P3輸出高電平;SP寄存器為07H;其它寄存器全部清0;不影響RAM狀態(tài)。如圖3.2.1-4所示。 圖3.2.1-4 按鍵電平復(fù)位 AT89SXX系列單片機(jī)實(shí)現(xiàn)了ISP下載功能,故而取代了89CXX系列的下載方式,也是因?yàn)檫@樣,ATME
20、L公司已經(jīng)停止生產(chǎn)89CXX系列的單片機(jī),現(xiàn)在市面上的AT89CXX多是停產(chǎn)前的庫存產(chǎn)品。 4、AT89S52的編程方法 編程前,須按編程模式表設(shè)置好地址、數(shù)據(jù)及控制信號;順序如下: 在地址線上加上要編程單元的地址信號。 在數(shù)據(jù)線上加上要寫入的數(shù)據(jù)字節(jié)。 激活相應(yīng)的控制信號。 將EA/Vpp端加上+12V編程電壓。 每對Flash存儲陣列寫入一個字節(jié)或每寫入一個程序機(jī)密位,加上一個ALE/PROG編程脈沖。每個字節(jié)寫入周期是自身定時的,大多數(shù)約為50us。改變編程單元的地址和寫入的數(shù)據(jù),重復(fù)步驟,直到全部文件編程結(jié)束。單片機(jī)的現(xiàn)狀及發(fā)展方向:單片機(jī)是為了工業(yè)控制需要滿足而誕生的,是自動控制系統(tǒng)
21、的核心部件,因而也主要用于工業(yè)控制、智能化儀器儀表、家用電器中。它具有體積小,功能多、價格低、使用方便、系統(tǒng)設(shè)計(jì)靈活等優(yōu)點(diǎn),應(yīng)用領(lǐng)域不斷擴(kuò)大,除了工業(yè)控制,智能化儀表,通訊,家用電器外,在智能化高檔電子玩具產(chǎn)品中也大量采用單片機(jī)芯片作為核心控制部件。由于單片機(jī)主要面向工業(yè)控制,工作環(huán)境比較惡劣,入高溫,強(qiáng)電磁干擾,甚至含有腐蝕性氣體,在太空中工作的單片機(jī)控制系統(tǒng),還必須具有抗輻射能力,這決定了單片機(jī)CPU于通用微機(jī)CPU具有不同的技術(shù)特征和發(fā)展方向:(1) 可靠性高;(2) 控制功能往往很強(qiáng),數(shù)值計(jì)算交叉;(3) 指令系統(tǒng)比通用微處理器慢的多;(4) X系列芯片取代;(5) 抗干擾性強(qiáng),工作溫
22、度范圍寬。3.2.2 最小系統(tǒng)模塊本次設(shè)計(jì)中,選用ATMEL公司的51系列單片機(jī)AT89S52芯片作為電子密碼電源開關(guān)的數(shù)據(jù)處理及操作控制芯片。只有單片機(jī)芯片無法完成數(shù)據(jù)處理及控制功能,必須有附加的電路,使單片機(jī)芯片組成一個可運(yùn)行的系統(tǒng)才能實(shí)現(xiàn)其功能。本次設(shè)計(jì)中,由AT89S52芯片連同附加電路構(gòu)成的單片機(jī)最小系統(tǒng)作為數(shù)據(jù)處理及控制模塊,其中,使用P1口作為1602液晶的數(shù)據(jù)傳輸口,P3口作1602的命令數(shù)據(jù)控制、時鐘、讀寫控制、和使能控制接口,P2口作按鍵掃描接口,P2.3作DS18B20的總線接口。P2.5,P2.7作報警控制接口。其電路連接圖3-3如下:圖3-2 數(shù)據(jù)處理及控制模塊3.3
23、 溫度傳感器設(shè)計(jì)3.3.1 DS18B20簡介DS18B20可以程序設(shè)定912位的分辨率,精度為0.5C??蛇x更小的封裝方式,更寬的電壓適用范圍。分辨率設(shè)定,及用戶設(shè)定的報警溫度存儲在EPROM中,掉電后依然保存。溫度傳感器DS18B20引腳如圖3-4所示。圖3-3 DS18B20TO92封裝溫度傳感器引腳功能說明:VDD :可選電源腳,電源電壓范圍35.5V。當(dāng)工作于寄生電源時,此引腳必須接地。DQ :數(shù)據(jù)輸入/輸出腳。漏極開路,常態(tài)下高電平。GND :為電源地圖3-4 DS18B20內(nèi)部結(jié)構(gòu)圖DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和
24、TL、配置寄存器。光刻ROM中的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。64位光刻ROM的排列是:開始8位(28H)是產(chǎn)品類型標(biāo)號,接著的48位是該DS18B20自身的序列號,最后8位是前面56位的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個DS18B20的目的。 DS18B20中的溫度傳感器可完成對溫度的測量,以12位轉(zhuǎn)化為例:用16位符號擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625/LSB形式表達(dá),其中S為符號位。 這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18B20的兩
25、個8比特的RAM中,二進(jìn)制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際溫度。 例如+125的數(shù)字輸出為07D0H,+25.0625的數(shù)字輸出為0191H,-25.0625的數(shù)字輸出為FF6FH,-55的數(shù)字輸出為FC90H。 DS18B20溫度傳感器的內(nèi)部存儲器包括一個高速暫存RAM和一個非易失性的可電擦除的E2RAM,后者存放高溫度和低溫度觸發(fā)器TH、TL和結(jié)構(gòu)寄存器。 暫存存儲器包含了8個連續(xù)字節(jié),前兩個字節(jié)是測得的溫度信息,第一個字節(jié)的內(nèi)容是溫度的
26、低八位,第二個字節(jié)是溫度的高八位。第三個和第四個字節(jié)是TH、TL的易失性拷貝,第五個字節(jié)是結(jié)構(gòu)寄存器的易失性拷貝,這三個字節(jié)的內(nèi)容在每一次上電復(fù)位時被刷新。第六、七、八個字節(jié)用于內(nèi)部計(jì)算。第九個字節(jié)是冗余檢驗(yàn)字節(jié)。 該字節(jié)各位的意義如下:TM R1 R0 1 1 1 1 1低五位一直都是1 ,TM是測試模式位,用于設(shè)置DS18B20在工作模式還是在測試模式。在DS18B20出廠時該位被設(shè)置為0,用戶不要去改動。R1和R0用來設(shè)置分辨率,如表1所示:(DS18B20出廠時被設(shè)置為12位)表3-3 DS18B20溫度轉(zhuǎn)換時間表R1R0分辨率/位溫度最大轉(zhuǎn)向時間00993.750110187.510
27、113751112750根據(jù)DS18B20的通訊協(xié)議,主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:每一次讀寫之前都要對DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號后等待1660微秒左右,后發(fā)出60240微秒的存在低脈沖,主CPU收到此信號表示復(fù)位成功。3.3.2 溫度傳感器與單片機(jī)的連接溫度傳感器的單總線(1-Wire)與單片機(jī)的P20連接,P20是單片機(jī)的高位地址線A8。P2端口是一個帶內(nèi)部上拉電阻的8位雙向IO,其輸出緩沖級可驅(qū)動(吸收或輸出
28、電流)4個TTL邏輯門電路。對該端口寫“1”,可通過內(nèi)部上拉電阻將其端口拉至高電平,此時可作為輸入口使用,這是因?yàn)閮?nèi)部存在上拉電阻,某一引腳被外部信號拉低時會輸出一個電流。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器時。如執(zhí)行MOVX DPTR指令,則表示P2端口送出高8位的地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器時,可執(zhí)行MOVX RI指令,P2端口內(nèi)容即為特殊功能寄存器(SFR)區(qū)中R2寄存器內(nèi)容,整個訪問期間不改變。在Flash編程和程序校驗(yàn)時,P2端口也接收高位地址和其他控制信號。圖3-5為DSl8820內(nèi)部結(jié)構(gòu)。圖3-6為DSl8820與單片機(jī)的接口電路。圖3-5 DS18B20
29、和單片機(jī)的接口連接3.3.3 復(fù)位信號及外部復(fù)位電路該復(fù)位信號高電平有效,其有效時間應(yīng)持續(xù)24個振蕩脈沖周期即兩個機(jī)器周期以上。若使用頻率為12 MHz的晶體振蕩器,則復(fù)位信號持續(xù)時間應(yīng)超過2s才完成復(fù)位操作。圖3-6 復(fù)位電路3.4 單片機(jī)與報警電路系統(tǒng)中的報警電路是由發(fā)光二極管和限流電阻組成,并與單片機(jī)的P2.6端口連接。3.5 顯示電路1、應(yīng)用簡介模塊內(nèi)部自帶字符發(fā)生存儲器(CGROM),字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是(41H),顯示時模塊把代碼41H發(fā)給液晶模塊,我們就能在液晶上看到字母“A
30、”。1602液晶模塊內(nèi)部的控制器共有11條控制指令,豐富的指令可以完成液晶的時序控制、工作方式式設(shè)置和數(shù)據(jù)顯示等。采用的LCD1602液晶模塊是標(biāo)準(zhǔn)16針插座,接口電路如圖3.2.3所示:關(guān)于LCD1602的詳細(xì)資料見表3.2.3-1和表3.2.3-2。圖3.2.3 顯示電路的連接圖4 軟件設(shè)計(jì)4.1 DS18b20的讀操作DSl8B20的主要數(shù)據(jù)元件有:64位激光Lasered ROM,溫度靈敏元件和非易失性溫度告警觸發(fā)器TH和TL。DSl8B20可以從單總線獲取電源,當(dāng)信號線為高電平時,將能量貯存在內(nèi)部電容器中;當(dāng)單信號線為低電平時,將該電源斷開,直到信號線變?yōu)楦唠娖街匦陆由霞纳?電容)電
31、源為止。此外,還可外接5 V電源,給DSl8B20供電。DSl8B20的供電方式靈活,利用外接電源還可增加系統(tǒng)的穩(wěn)定性和可靠性。DS18B20讀寫時序如圖4-14-3:圖4-1 DS18B20的復(fù)位時序圖圖4-2 DS18B20的寫數(shù)據(jù)時序圖圖4-3 DS18B20的讀數(shù)據(jù)時序圖由時序圖可知,DS18B20在復(fù)位時需要480us的低電平,等待15us后MCU將總線拉高,等待DS18B20的響應(yīng)信號;DS18B20在寫數(shù)據(jù)時分為寫“0”和寫“1”操作,寫“0”操作時,DS18B20需要至少60us的總線被拉低,然后在60us內(nèi)將“0”寫入DS18B20中,持續(xù)時間至少1us,寫“1”操作是只需將
32、寫入的“0”改為“1”即可;DS18B20讀操作也分為讀“0”和讀“1”操作,讀“0”操作時,總線需要15us被拉低,再拉高45us,然后再15us內(nèi)將數(shù)據(jù)讀走,讀“1”操作同讀“0”操作。程序流程圖如圖4-4:開始DS18B20的初始化啟動溫度轉(zhuǎn)換讀取溫度寄存器跳過讀序列號的操作跳過讀序列號的操作DS18B20的初始化RETLOW-低八位 HIGH-高八位圖4-4 DS18B20讀取溫度的流程圖4.2 DS18b20的溫度數(shù)據(jù)處理讀出溫度數(shù)據(jù)后,LOW的低四位為溫度的小數(shù)部分,可以精確到0.0625,LOW的高四位和HIGH的低四位為溫度的整數(shù)部分,HIGH的高四位全部為1表示負(fù)數(shù),全為0表
33、示正數(shù)。所以先將數(shù)據(jù)提取出來,分為三個部分:小數(shù)部分、整數(shù)部分和符號部分。小數(shù)部分進(jìn)行四舍五入處理:大于0.5的話,向個位進(jìn)1;小于0.5的時候,舍去不要。當(dāng)數(shù)據(jù)是個負(fù)數(shù)的時候,顯示之前要進(jìn)行數(shù)據(jù)轉(zhuǎn)換,將其整數(shù)部分取反加一。還因?yàn)镈S18B20最低溫度只能為-55,所以可以將整數(shù)部分的最高位換成一個“-”,表示為負(fù)數(shù)。圖4-2為溫度數(shù)據(jù)處理程序的流程圖。開始提取整數(shù)部分存入HT提取小數(shù)部分存入LTLT右移三位,將精度降低到0.5攝氏度HT+將小數(shù)部分整數(shù)化提取符號部分存入signLT是否大于5是否為負(fù)數(shù)RET負(fù)數(shù)標(biāo)志flag=1YNNY圖4-5 溫度數(shù)據(jù)處理流程圖4.3 1602顯示部分160
34、2的讀寫時序圖如下:圖4-6 1602液晶的讀時序圖圖4-7 1602的寫時序圖根據(jù)以上時序圖可以得出讀寫程序流程圖如下:開始選擇寫數(shù)據(jù)寫命令RS=1|RS=0選擇寫操作RW=1使能EN準(zhǔn)備好寫入的數(shù)據(jù)DB0DB7禁止EN結(jié)束開始選擇寫數(shù)據(jù)寫命令RS=1|RS=0選擇讀操作RW=0使能EN禁止EN結(jié)束圖4-8 1602的寫流程圖圖4-8 1602的讀流程圖5 運(yùn)行測試5.1.開機(jī)溫度測試5.2.設(shè)置溫度測試5.3報警測試6 結(jié)語本文重點(diǎn)介紹了單片機(jī)和數(shù)字傳感器DS18B20的原理和功能,并用DS18B20與AT89S52單片機(jī)、LCD1602組成數(shù)字溫度計(jì),有超溫報警功能。 在本次設(shè)計(jì)的過程中
35、,我發(fā)現(xiàn)很多的問題,雖然以前還做過這樣的設(shè)計(jì)但這次設(shè)計(jì)真的讓我長進(jìn)了很多,單片機(jī)課程設(shè)計(jì)重點(diǎn)就在于軟件算法的設(shè)計(jì),需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個程序并不是一件簡單的事,舉個例子,以前寫的那幾次,數(shù)據(jù)加減時,我用的都是BCD碼,這一次,我全部用的都是16進(jìn)制的數(shù)直接加減,顯示處理時在用除法去刪分,感覺效果比較好,有好多的東西,只有我們?nèi)ピ囍隽耍拍苷嬲恼莆?,只學(xué)習(xí)理論有些東西是很難理解的,更談不上掌握。參考文獻(xiàn)【1】作著:姜濤【2】書名:基于單片機(jī)的數(shù)字式溫度計(jì)設(shè)計(jì)【3】出版社:西北電力學(xué)?!?】出版年月:2012.3.19【5】頁碼:27頁附錄一:仿真電路圖
36、附錄二:系統(tǒng)程序清單#include#include#define uint unsigned int#define uchar unsigned char/-sbit S1=P20; /設(shè)置 上下限sbit S2=P21; /加sbit S3=P22; /減/-LCD1602-/P0-7= D0-7#define LCDDATA P1sbit rs=P30;sbit wela=P31;sbit lcden=P32;/-sbit DQ1=P23; /傳感器1sbit LED1=P26; /報警顯示燈sbit BUZ=P27; /蜂鳴器uchar DQ1_SET2; /DQ1上下限設(shè)置 DQ1_
37、SET0 下限 DQ1_SET1 上限;uchar Temp; /溫度報警uchar count; /蜂鳴器定時用uchar mode; /mode=1正常顯示 mode=2 設(shè)置下限模式 mode=3設(shè)置上限 uchar code table=Temper ;/DS18B20/uchar ng; /負(fù)號標(biāo)志uchar code df_Table= 0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9; /溫度小數(shù)位對照表uchar CurrentT = 0; /當(dāng)前讀取的溫度整數(shù)部分uchar Temp_Value=0x00,0x00; /從DS18B20讀取的溫度值uchar D
38、isplay_Digit=0,0,0,0,0,0,0,0;/待顯示的各溫度數(shù)位bit DS18B20_IS_OK = 1; /傳感器正常/DS18B20/延時/*/ 函數(shù): LCD_Delay()/ 描述: 延時t ms函數(shù)/ 參數(shù): t / 返回: 無/ 備注: 12MHZ t=1延時時間約1ms/ 版本: 2011/01/01 First version/*/void Delay_ms(unsigned int t)unsigned int i,j;for(i=0;it;i+)for(j=0;j0;x-)for(y=120;y0;y-);void write_com(uchar com)
39、/1602液晶寫指令rs=0;lcden=0;LCDDATA=com;delayms(1);lcden=1;delayms(2);lcden=0;void write_date(uchar date) /1602液晶寫數(shù)據(jù) rs=1;lcden=0;LCDDATA=date;delayms(1);lcden=1;delayms(2);lcden=0;void init_lcd(void) /初始化液晶,及畫面初始化uchar num;wela=0;lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);wr
40、ite_com(0x80);for(num=0;num13;num+) / temper: ;write_date(tablenum);Delay(10); /-1602-/初始化DS18B20uchar Init_DS18B20() uchar status; DQ1 = 1;Delay(8); /延時DQ1 = 0;Delay(90);/延時DQ1 = 1;Delay(8);status = DQ1;Delay(100);DQ1 = 1;return status;/讀一個字節(jié)uchar ReadOneByte() uchar i,dat=0;DQ1 = 1;_nop_();for(i=0
41、;i= 1;DQ1 = 1;_nop_();_nop_();if(DQ1)dat |= 0X80;Delay(30);DQ1 = 1;return (dat); /寫一個字節(jié)void WriteOneByte(uchar dat) uchar i;for(i=0;i= 1; /讀溫度值void Read_Temperature() EA=0; if(Init_DS18B20()=1)DS18B20_IS_OK=0;else WriteOneByte(0xcc); /跳過序列號WriteOneByte(0x44); /啟動溫度轉(zhuǎn)換Init_DS18B20();WriteOneByte(0xcc);/跳過序列號WriteOneByte(0xbe);/讀取溫度寄存器Temp_Value0 = ReadOneByte(); /溫度低8位Temp_Value1 = ReadOneByte();/溫度高8位DS18B20_IS_OK=1;EA=1;/處理溫度值void Display_Temperature()/ uchar i;uchar t = 150;/,延時 ng = 0; /與負(fù)值標(biāo)志if(Temp_Value1&0xf8)=0xf8) Temp_Value1 = Temp_Value1;Temp_Value0 = Temp_Va
溫馨提示
- 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àng)目推廣演講致辭稿
- 個人車輛掛靠租賃公司協(xié)議書
- 2025年柳州a2貨運(yùn)從業(yè)資格證模擬考試題
- 2025年南京貨運(yùn)從業(yè)資格證考試模擬考試題庫答案大全
- 小學(xué)英語試卷聽力稿
- 書籍設(shè)計(jì)印刷合同范本文檔
- 個體診所自查報告
- 廈門落戶中介合同范本
- 業(yè)務(wù)員個人年度工作總結(jié)
- 三年級語文備課組工作總結(jié)
- 2025年02月貴州省司法廳所屬事業(yè)單位公開招聘2人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2025年校長春季開學(xué)思政第一課講話稿1720字例文【供參考】
- 2025至2030年中國單板電磁制動器數(shù)據(jù)監(jiān)測研究報告
- 2024年07月國新國證期貨有限責(zé)任公司(海南)2024年招考2名工作人員筆試歷年參考題庫附帶答案詳解
- 2021年考研英語一真題
- 人教版數(shù)學(xué)八年級下冊 第17章 勾股定理 單元測試(含答案)
- 國網(wǎng)標(biāo)書制作流程
- 六年級語文教學(xué)學(xué)情分析提高六語文質(zhì)量的措施
- 中醫(yī)藥臨床適宜技術(shù)
- 銀發(fā)經(jīng)濟(jì)的發(fā)展路徑
- 工業(yè)廠房水電安裝施工方案
評論
0/150
提交評論