【正文】
程序控制讀取某智能溫度傳感器 DS18B20 采集的溫度數(shù)據(jù),送單片機(jī)處理。 北京理工大學(xué)珠海學(xué)院 20xx 屆本科生畢業(yè)設(shè)計(jì) 23 4 系統(tǒng)軟件設(shè)計(jì) 系統(tǒng)軟件采用 C 語(yǔ)言編寫,在 Windows XP 的環(huán)境下 Keil uVision3 進(jìn)行編寫,對(duì)STC89C52 進(jìn)行編程以實(shí)現(xiàn)各 項(xiàng)功能。 軟件整體設(shè)計(jì)思路 由于本次設(shè)計(jì)所需要的程序量較大,因此采用模塊式的程序編寫思路會(huì)使整個(gè)程序的編寫過(guò)程更加清晰,同時(shí)也會(huì)讓后期的修改工作更加便捷,程序的閱讀更加容易理解。而在控制部分,由于硬件部分的制作臨時(shí)發(fā)生了改變,因此在編寫控制部分的程序時(shí)思路也發(fā)生了變化。 北京理工大學(xué)珠海學(xué)院 20xx 屆本科生畢業(yè)設(shè)計(jì) 24 圖 31 中斷服務(wù)框圖 溫度采集子程序 DS18B20 的工作遵循嚴(yán)格的單總線協(xié)議。 DS18B20 子程序 分 為: DS18B20 初始化程序、讀 DS18B20 子程序、寫 DS18B20 子程 序 。 HD44780S 的供電電壓為 5V177。 LCD1602 的顯示程序模塊,首先將 LCD1602 進(jìn)行初始化,寫控制命令,然后對(duì)LCD1602 進(jìn)行讀寫命令的操作。 lcden=1。 P0=date。 lcden=0。此階 段的任務(wù)是排除硬件電路故障,糾正軟件設(shè)計(jì)錯(cuò)誤,從而達(dá)到軟硬件之間的協(xié)調(diào),使其很好的工作,完成系統(tǒng)功能。首先得保證電路中線路的連接必須是正確的和每一個(gè)線路必須是導(dǎo)通,接著還要看看單片機(jī)的晶振電路中的晶振有沒(méi)有起振, 還有確認(rèn) 單片機(jī)的 EA 端是否懸空未接。若 EA 腳懸空,則 CPU 不訪問(wèn)內(nèi) 部的程序存儲(chǔ)器,寫入它的程序就不能正常運(yùn)行。此部分的調(diào)試主要是利用軟件來(lái)實(shí)現(xiàn),所以其調(diào)試可在其它部分調(diào)試完畢后進(jìn)行。首先檢查電路中是否有虛焊、假焊或短路。就好比我們把程序下載到單片機(jī)里面是一樣的。對(duì)應(yīng)設(shè)計(jì)要求我們可以看到仿真溫度的顯示是正常的。圖 所示的仿真程序正常的結(jié)果。所以程序調(diào)試通過(guò)。 圖 程序?qū)雽?duì)話框 點(diǎn)擊運(yùn)行后,我們能看到一個(gè)運(yùn)行的畫面。 北京理工大學(xué)珠海學(xué)院 20xx 屆本科生畢業(yè)設(shè)計(jì) 29 系統(tǒng)程序仿真調(diào)試 軟件的調(diào)試我們主要在 Proteus7 的環(huán)境下進(jìn)行仿真,讓程序能 實(shí)現(xiàn)設(shè)定方案要求。經(jīng)過(guò)反復(fù)的調(diào)試實(shí)現(xiàn)了 DS18B20 的正確采溫。 DS18B20 采溫調(diào)試 由于 DS18B20 是集成的數(shù)字溫度傳感器,其硬件電路十分簡(jiǎn)單。對(duì)于內(nèi)部有 8K字節(jié)程序存儲(chǔ)器,若 EA 引腳接 VCC(+ 5V),則程序計(jì)數(shù)器 PC 的值在 0至 1FFFH 之間時(shí), CPU 取指令時(shí)訪問(wèn)內(nèi)部的程序存儲(chǔ)器; PC 值大于 1FFFH 時(shí),則訪問(wèn)外部的程序存儲(chǔ)器。硬件 調(diào)試可分成以下幾個(gè)部分單獨(dú)調(diào)試:?jiǎn)纹瑱C(jī)系統(tǒng)調(diào)試, A/D 采集模塊調(diào)試,運(yùn)算放大模塊,顯示電路調(diào)試。下邊是介紹了一下關(guān)于仿真以及調(diào)試的部分。 lcden=1。 lcden=0。 P0=。也就是說(shuō)絕大部分 1602 液晶只能工作在 5V 電壓下其供電電壓必須為 5V。如下圖 32 所示 DS18B20 的工作流程圖。其中 ROM操作命令均為 8位長(zhǎng),命令代碼分別為:讀 ROM( 33H)、匹配 ROM( 55H)、跳過(guò) ROM( CCH)、搜索 ROM( F0H)和告警搜索( ECH)命令。讓標(biāo)志自加,當(dāng)計(jì)時(shí) 2s時(shí)進(jìn)行數(shù)據(jù)采集和刷新顯示。讓程序的結(jié)構(gòu)變的更加的簡(jiǎn)單,同時(shí)提高程序的實(shí)用性。 系統(tǒng)子程序分析 系統(tǒng)子程序是根據(jù)系統(tǒng)的總體設(shè)計(jì)要求結(jié)合著硬件電路的原理,嚴(yán)格的按照硬件的連接和各個(gè)模塊芯片的特性以及如何實(shí)現(xiàn)功能的要求,本系統(tǒng)的主要流程包括四個(gè)步驟:系統(tǒng)初始化, DS18B LCD 顯示。本章就是將設(shè)計(jì)中的六大模塊的實(shí)質(zhì)性內(nèi)容的設(shè)計(jì)方法表達(dá)出來(lái),同時(shí)利用對(duì)比的方法將本設(shè)計(jì)中的六大模塊所使用用的元器件選擇出來(lái)。圖中給出了 4 路溫度采集電路, 4 只智能溫度傳感器 DS18B20 的信號(hào)輸出端都連接到單片機(jī)的 端,電阻 R6 作為上拉電阻。該電路適用驅(qū)動(dòng)氣動(dòng)元件中的電氣轉(zhuǎn)換閥,從而實(shí)現(xiàn)微機(jī)對(duì)氣動(dòng)開(kāi)關(guān)的控制。 加熱控制電路 當(dāng)測(cè)出的溫度與設(shè)定的溫度范圍不符時(shí),低于設(shè)定溫度,將由加熱控制電路(即溫度控制電路)進(jìn)行調(diào)整, 溫度控制電路由以下兩種方案: 方案一:可控硅調(diào)功方法 溫度的控制電路可以采用可控硅調(diào)整功的方法來(lái)實(shí)現(xiàn)。在圖中, 接 7404 輸入端。方案三使用了數(shù)字溫度傳感器 DS18B20,其硬件簡(jiǎn)單,測(cè)溫精度高。 DS18B20 它與單片機(jī)的硬件接口非常簡(jiǎn)單,如圖 215 所示,只需占用一個(gè)單片機(jī)雙向 I/O 口,在這里將其跟 進(jìn)行連接,用 口進(jìn)行 DS18B20 與單片機(jī)進(jìn)行數(shù)據(jù)的傳輸。 圖 213 DS18B20 測(cè)溫原理框圖 DS18B20 內(nèi)部結(jié)構(gòu)主要由四部分組成: 64 位光刻 ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器 TH 和 TL、配置寄存器 (如圖 214 所示) 。 DS18B20 的管腳排列如 下 : DQ 為數(shù)字信號(hào)輸入 /輸出端; GND 為電源地; VDD 為外接供電電源輸入端 ; 圖 212 DS18B20 外形及引腳排列圖 北京理工大學(xué)珠海學(xué)院 20xx 屆本科生畢業(yè)設(shè)計(jì) 18 DS18B20 的測(cè)溫原理如圖 213 所示。應(yīng)當(dāng)注意的是:使用運(yùn)放時(shí),要考慮到該運(yùn)放的放大倍數(shù)是否能達(dá)到系統(tǒng)的要求,要能夠?qū)崿F(xiàn)對(duì)其放大倍數(shù)進(jìn)行調(diào)節(jié)。 C. 該熱敏元件的特點(diǎn)是體積小,重量輕,薄而柔軟,可完全和曲面相貼合,適用于平面,狹縫的溫度測(cè)量。 PT100 是國(guó)產(chǎn)的一種軟襯底薄膜熱敏電阻,是表面測(cè)溫的一種良好器件。可見(jiàn) V0 是隨被測(cè)物體的溫度而變化的。其電路原理圖如圖 210。溫度傳感器選取的不同就會(huì)有不同的采樣轉(zhuǎn)換電路 ,以下介紹了三種不同的方案 : 方案一:以集成溫度傳感器 AD590 作為環(huán)境溫度變化的敏感元件 它將溫度的變化轉(zhuǎn)換為電流的變化,經(jīng)過(guò)轉(zhuǎn)換電路將電流信號(hào)變換、放大成 0 ~ 5V的電壓信號(hào)后,經(jīng) A/D 轉(zhuǎn)換器轉(zhuǎn)換成 8 位數(shù)字信號(hào)送入單片機(jī)系統(tǒng)。 電路原理圖如圖 所示, 圖中有三個(gè)數(shù)碼管和九個(gè)鍵盤,三位數(shù)碼管用來(lái)顯示溫度值。DIG0~ DIG7 為 8 個(gè) LED 管的位 選擇 端 。 北京理工大學(xué)珠海學(xué)院 20xx 屆本科生畢業(yè)設(shè)計(jì) 14 圖 29 字符的代碼和字符的圖形對(duì)應(yīng)關(guān)系圖 方案四: HD7279 鍵盤顯示電路 此方案采用 HD7279A, 它共有 28 個(gè)引腳。 圖 三位靜態(tài)顯示器接口 方案三:獨(dú)立鍵盤與 LCD1602 顯示 獨(dú)立鍵盤也就是把鍵盤直接的接入到 I/O 口上 。擴(kuò)展 8255 作顯示電路時(shí),見(jiàn)如圖 所示。方式 2 僅對(duì) PA 口有意義。方式 0 適用于無(wú)條件傳輸數(shù)據(jù)的設(shè)備,如讀一組開(kāi)關(guān)狀態(tài)、控制一組顯示燈,不需要應(yīng)答信號(hào), CPU 可以隨時(shí)讀出開(kāi) 關(guān)狀態(tài),隨時(shí)可以把一組數(shù)據(jù)送指示燈顯示。在給出了 8 個(gè)脈沖后,最先進(jìn)入 74LS164 的第一個(gè)數(shù)據(jù)就到達(dá)了最高位,然后再來(lái)一個(gè)脈沖,從單片機(jī) RXD 端1 2 3 4 5 6ABCD654321DCBAT i t l eN u m be r R e v i s i o nS i z eBD a t e : 2 3 J u n 2 0 07 S he e t o f F i l e : C : \ P r og r a m F i l e s \ D e s i gn E x p l o r e r 9 9 S E \ E xa m p l e s \ B A C K U P ~ 3 .D D BD r a w n B y:SER INA1SER IN B2Q03Q14Q25Q36CLK IN8CLR9Q410Q511Q612Q713 7 4L S 1 64abfcg deDPY1 2 3 4 5 6 7a b c d e f g8dpdp L E DSER INA1SER IN B2Q03Q14Q25Q36CLK IN8CLR9Q410Q511Q612Q713 7 4L S 1 64abfcg deDPY1 2 3 4 5 6 7a b c d e f g8dpdp L E DSER INA1SER IN B2Q03Q14Q25Q36CLK IN8CLR9Q410Q511Q612Q713 7 4L S 1 64abfcg deDPY1 2 3 4 5 6 7a b c d e f g8dpdp L E DV C CR X DT X DV C C 2 0K 3 00 北京理工大學(xué)珠海學(xué)院 20xx 屆本科生畢業(yè)設(shè)計(jì) 12 輸出的數(shù)據(jù)就 進(jìn)入到第一片 74LS164 中,當(dāng)?shù)诙€(gè) 8 個(gè)脈沖到來(lái)后,第一個(gè)數(shù)據(jù)就進(jìn)入第二片 74LS164,而新的第二個(gè)數(shù)據(jù)就進(jìn)入到了第一片 74LS164 中,這樣依次類推。 R(第 9 腳) 為復(fù)位端,當(dāng) R= 0 時(shí),移位寄存器各復(fù)位為 0,只有當(dāng) R= 1 時(shí),時(shí)鐘脈沖才起作用。 圖 74LS164 的靜態(tài)顯示 74LS164 為 TTL 單向 8 位移位寄存器,可實(shí)現(xiàn)串行輸入、并行輸出的功能。這樣單片機(jī)只要把要顯示的字形代碼發(fā)送到接口電路就可以了,直到要顯示新的數(shù)據(jù)時(shí),再發(fā)送新的字形碼。顯示與按鍵電路構(gòu)成一個(gè)人機(jī)交互界面,整個(gè)系統(tǒng)的用戶體驗(yàn)度的好畫也就在這 個(gè)模塊的設(shè)置上。圖中 C1 C17 是反饋電容,其值在 5pF~ 30pF 之間選擇 ,其典型值是 30Pf。 STC89C52 內(nèi)部都有一個(gè)反相放大器,芯片內(nèi)部的反相放大器的輸入和輸出端分別是 XTAL XTAL2,外接定時(shí)反饋元件就組成震蕩器產(chǎn)生時(shí)鐘送至單片機(jī)內(nèi)部的各個(gè)部件。 開(kāi)關(guān)閉合的時(shí)候同時(shí)也閉合了電容 C4 充電,穩(wěn)定了復(fù)位腳的電平。 圖 1 系統(tǒng)設(shè)計(jì)框圖 復(fù)位電路 由于單片機(jī)在復(fù)位短為高時(shí)系統(tǒng)復(fù)位,復(fù)位電路由一個(gè)阻值為 4K 和一個(gè) 150 歐的電阻分壓得到低電平,經(jīng) 74LS14 濾波整形反向后得到高電平使系統(tǒng)上電復(fù)位。 PO 口( Pin39~ Pin32): 8 位雙向 I/O 口線,名稱為 ~ P1 口( Pin1~ Pin8): 8 位準(zhǔn)雙向 I/O 口線,名稱為 ~ P2 口( Pin21~ Pin28): 8 位準(zhǔn)雙向 I/O 口線,名稱為 ~ P3 口( Pin10~ Pin17): 8 位準(zhǔn)雙向 I/O 口線,名稱為 ~ STC89C52 主要功能 如表 一 所示。 并且使用了 ATMEL 的技術(shù)通過(guò)高密度非易失性存儲(chǔ)器來(lái)制造,而且還和工業(yè)標(biāo)準(zhǔn)的 MCS51 指令集和輸出管腳相兼容。與此同時(shí)傳統(tǒng)的 8 位單片機(jī)的性能也有了質(zhì)的飛躍,相 北京理工大學(xué)珠海學(xué)院 20xx 屆本科生畢業(yè)設(shè)計(jì) 7 對(duì) 80 年代來(lái)說(shuō)處理能力提高了數(shù)百倍?;谶@個(gè)系統(tǒng), MCS51 單片機(jī)系統(tǒng)至今為止仍然被廣泛使用。最早的設(shè)計(jì)理念是通過(guò)將大量外圍設(shè)備