單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告-基于AT89S52單片機(jī)的水溫控制系統(tǒng).doc_第1頁(yè)
單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告-基于AT89S52單片機(jī)的水溫控制系統(tǒng).doc_第2頁(yè)
單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告-基于AT89S52單片機(jī)的水溫控制系統(tǒng).doc_第3頁(yè)
單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告-基于AT89S52單片機(jī)的水溫控制系統(tǒng).doc_第4頁(yè)
單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告-基于AT89S52單片機(jī)的水溫控制系統(tǒng).doc_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余21頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告 選題名稱選題名稱: 基于 at89s52 單片機(jī)的水溫控制系統(tǒng) 系(院)系(院): 計(jì)算機(jī)工程學(xué)院 專專 業(yè)業(yè): 計(jì)算機(jī)科學(xué)與技術(shù)(嵌入式系統(tǒng)軟件設(shè)計(jì)) 班班 級(jí)級(jí): 姓姓 名名: 學(xué)學(xué) 號(hào)號(hào): 指導(dǎo)教師指導(dǎo)教師: 學(xué)年學(xué)期學(xué)年學(xué)期: 2009 2010 學(xué)年 第 2 學(xué)期 2010年 5 月 30 日 摘要: 溫度控制是很多企業(yè)常見(jiàn)的控制裝置,如機(jī)械行業(yè)的零件熱處理、塑料制品的注塑 機(jī)上,粉末冶金行業(yè)燒結(jié)爐、還原爐等都有溫度控制問(wèn)題,尤以熱處理加熱爐的溫度控 制最為典型。熱處理加熱爐是工廠熱處理和高校熱處理實(shí)驗(yàn)廣泛使用的加熱設(shè)備?,F(xiàn) 在所使用的爐溫控制方法很多仍是陳舊的動(dòng)圈式兩位指示調(diào)節(jié)儀(如 xct101 型動(dòng)圈 式兩位指示調(diào)節(jié)儀) 。這種爐溫控制方法爐溫波動(dòng)范圍大,保溫時(shí)間靠人工計(jì)時(shí),加熱速 度不能控制,溫度不能全程動(dòng)態(tài)跟蹤顯示。這樣的控制和顯示方式不能滿足日益發(fā)展的 工業(yè)需求。高校的發(fā)展同樣要求用現(xiàn)代化手段提升現(xiàn)有的實(shí)驗(yàn)設(shè)備,為學(xué)生提供更多更 好、更現(xiàn)代化的實(shí)驗(yàn)條件。因此,我們就學(xué)校熱處理實(shí)驗(yàn)用電阻加熱爐進(jìn)行現(xiàn)代化改革,將 ds18b20 測(cè)溫傳感器和 at89s52 單片機(jī)優(yōu)秀的實(shí)時(shí)控制功能、靈活的編程能力有機(jī) 的結(jié)合起來(lái),開(kāi)發(fā)出熱處理微機(jī)控制系統(tǒng),實(shí)現(xiàn)溫度控制的自動(dòng)化。不但能用于學(xué)校的 實(shí)驗(yàn)教學(xué)及其它一些研究課題的開(kāi)發(fā),同樣能用于工廠熱處理、注塑機(jī)多點(diǎn)溫度的控制,提 高工業(yè)企業(yè)自動(dòng)化水平。 關(guān)鍵字:?jiǎn)纹瑱C(jī) at89s52;傳感器;控溫;ds18b20 目目 錄錄 1 系統(tǒng)設(shè)計(jì) .1 1.1 項(xiàng)目概要 1 1.2 項(xiàng)目要求 1 2 硬件設(shè)計(jì) .1 2.1 硬件設(shè)計(jì)概要 1 2.2 單片機(jī)最小系統(tǒng) 2 2.3 溫度檢測(cè)電路 4 2.3 報(bào)警電路 7 2.4 控制電路及顯示電路 7 3 軟件設(shè)計(jì) .9 3.1 中斷控制程序 .10 3.2 顯示程序 .11 3.3 溫度測(cè)量 .12 3.4 溫度處理 .18 總 結(jié) 20 參考文獻(xiàn) 21 單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告 1 1 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì) 1.1 項(xiàng)目概要項(xiàng)目概要 水溫控制系統(tǒng)無(wú)論是工業(yè)生產(chǎn)過(guò)程,還是日常生活都起著非常重要的作用,過(guò)低 過(guò)高的水溫都會(huì)使水資源失去應(yīng)有的作用,從而造成水資源的極大浪費(fèi),給生活生產(chǎn) 帶來(lái)許多不利因素?;?at89s52 的單片機(jī)水溫控制系統(tǒng)與傳統(tǒng)的水溫控制器相比具 有操作方便、價(jià)格便宜、精確度高和開(kāi)展容易等優(yōu)點(diǎn),因此市場(chǎng)前景看好。 1.2 項(xiàng)目要求項(xiàng)目要求 基于 at89s52 單片機(jī)水溫控制器晶振采用 12mhz,具體要求如下: (1)初始溫度設(shè)置為 50 度 (2)越限報(bào)警溫度為 70 度 (3)控制精度為 1 度 (4)控制范圍為環(huán)境溫度室溫到 70 度 2 硬件設(shè)計(jì)硬件設(shè)計(jì) 2.1 硬件設(shè)計(jì)概要硬件設(shè)計(jì)概要 根據(jù)需求,我的系統(tǒng)需要溫度采集電路、控制電路、報(bào)警電路。當(dāng)然這些要一起 工作我們就需要一塊單片機(jī)來(lái)協(xié)調(diào)它們! 溫度采集我們使用 18b20,使用它可以是電路簡(jiǎn)化。控制電路我們用外部中斷來(lái) 調(diào)節(jié)溫度,為了使操作方便,我們加入了一個(gè)顯示控制溫度值的數(shù)碼管,來(lái)便于使用。 報(bào)警電路,這個(gè)電路我們用一個(gè)三極管這為放大器去驅(qū)動(dòng)一個(gè)喇叭。所有電路結(jié)構(gòu)如 下 單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告 2 圖 2-1 總體硬件設(shè)計(jì)示意圖 2.2 單片機(jī)最小系統(tǒng)單片機(jī)最小系統(tǒng) at89s52 是美國(guó) atmel 公司生產(chǎn)的低功耗,高性能 cmos8 位單片機(jī),片內(nèi)含 4k bytes 的可系統(tǒng)編程的 flash 只讀程序存儲(chǔ)器,器件采用 atmel 公司的高密度、非 易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn) 8051 指令系統(tǒng)及引腳。它集 flash 程序存儲(chǔ)器既可在 線編程(isp)也可用傳統(tǒng)方法進(jìn)行編程及通用 8 位微處理器于單片芯片中,atmel 公司的功能強(qiáng)大,低價(jià)位 at89s52 單片機(jī)可為您提供許多高性價(jià)比的應(yīng)用場(chǎng)合,可靈 活應(yīng)用于各種控制領(lǐng)域。 由于 at89s52 是一個(gè)低功耗,高性能 cmos 8 位單片機(jī),片內(nèi)含 8k bytes isp(in-system programmable)的可反復(fù)擦寫(xiě) 1000 次的 flash 只讀程序存儲(chǔ)器。器件采用 atmel 公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn) mcs-51 指令系統(tǒng)及 80c51 引腳結(jié)構(gòu),芯片內(nèi)集成了通用 8 位中央處理器和 isp flash 存儲(chǔ)單元,功能強(qiáng)大 的微型計(jì)算機(jī)的 at89s52 可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案。因 此,本系統(tǒng)使用 at89s52 單片機(jī)作為微處理器, at89s52 引腳圖如圖 2-2。它主要具有如下特點(diǎn):40 個(gè)引腳,8k bytes flash 片內(nèi) 程序存儲(chǔ)器,256 bytes 的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(ram) ,32 個(gè)外部雙向輸入/輸出 (i/o)口,5 個(gè)中斷優(yōu)先級(jí) 2 層中斷嵌套中斷,2 個(gè) 16 位可編程定時(shí)計(jì)數(shù)器,2 個(gè)全 雙工串行通信口,看門狗(wdt)電路,片內(nèi)時(shí)鐘振蕩器。 at89s52 設(shè)計(jì)和配置了振蕩頻率可為 0hz 并可通過(guò)軟件設(shè)置省電模式??臻e模式 下,cpu 暫停工作,而 ram 定時(shí)計(jì)數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作掉電模式 凍結(jié)振蕩器,因而可以保存 ram 的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件 單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告 3 復(fù)位。下面列出了 at89s52 的一些性能參數(shù): 與 mcs-51 產(chǎn)品指令系統(tǒng)完全兼容 4k 字節(jié)在系統(tǒng)編程(isp)flash 閃速存儲(chǔ)器 1000 次擦寫(xiě)周期 4.05.5v 的工作電壓范圍 全靜態(tài)工作模式:0hz33mhz 三級(jí)程序加密鎖 1288 字節(jié)內(nèi)部 ram 32 個(gè)可編程 io 口線 2 個(gè) 16 位定時(shí)計(jì)數(shù)器 6 個(gè)中斷源 全雙工串行 uart 通道 低功耗空閑和掉電模式 中斷可從空閑模喚醒系統(tǒng) 看門狗(wdt)及雙數(shù)據(jù)指針 掉電標(biāo)識(shí)和快速編程特性 靈活的在系統(tǒng)編程(isp 字節(jié)或頁(yè)寫(xiě)模式) 圖 2-2 at89s52 引腳圖 單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告 4 xtal1 xtal2 0.1f 0.1f at89s52 p0 p1 p2 p3 8 11.0592 mhz + r 8 8 8 gnd vcc vcc 圖 2-3 微處理器電路圖 整個(gè)單片機(jī)系統(tǒng)接口分配情況如下:p0 口復(fù)用于傳輸 led 位數(shù)據(jù)以及值數(shù)據(jù)傳 輸、p2 口的 p2.0-p2.1 作為六位 led 的公共端的控制信號(hào)、p1 口分配做鍵盤(pán)接口、 p3.0 和 p3.1 分別用于串口通信的數(shù)據(jù)的接收端和發(fā)送端、p3.2 用于溫度數(shù)據(jù)接口。 2.3 溫度檢測(cè)電路溫度檢測(cè)電路 dallas 最新單線數(shù)字溫度傳感器 ds18b20 簡(jiǎn)介新的“一線器件”體積更小、適 用電壓更寬、更經(jīng)濟(jì) dallas 半導(dǎo)體公司的數(shù)字化溫度傳感器 ds1820 是世界上第一片 支持 “一線總線”接口的溫度傳感器。一線總線獨(dú)特而且經(jīng)濟(jì)的特點(diǎn),使用戶可輕松地 組建傳感器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新概念。ds18b20、 ds1822 “一線總線” 數(shù)字化溫度傳感器 同 ds1820 一樣,ds18b20 也 支持“一線總線”接口,測(cè)量溫度范 圍為 -55c+125c,在-10+85c 范圍內(nèi),精度為0.5c。ds1822 的精度較差為 2c ?,F(xiàn)場(chǎng)溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。適合于 惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,如:環(huán)境控制、設(shè)備或過(guò)程控制、測(cè)溫類消費(fèi)電子產(chǎn)品等。 與前一代產(chǎn)品不同,新的產(chǎn)品支持 3v5.5v 的電壓范圍,使系統(tǒng)設(shè)計(jì)更靈活、方便。 而且新一代產(chǎn)品更便宜,體積更小。 ds18b20、 ds1822 的特性 ds18b20 可以程 序設(shè)定 912 位的分辨率,精度為0.5c??蛇x更小的封裝方式,更寬的電壓適用范 圍。分辨率設(shè)定,及用戶設(shè)定的報(bào)警溫度存儲(chǔ)在 eeprom 中,掉電后依然保存。 ds18b20 的性能是新一代產(chǎn)品中最好的!性能價(jià)格比也非常出色! ds1822 與 ds18b20 軟件兼容,是 ds18b20 的簡(jiǎn)化版本。省略了存儲(chǔ)用戶定義報(bào)警溫度、分辨 率參數(shù)的 eeprom,精度降低為2c,適用于對(duì)性能要求不高,成本控制嚴(yán)格的應(yīng) 用,是經(jīng)濟(jì)型產(chǎn)品。 繼“一線總線”的早期產(chǎn)品后,ds1820 開(kāi)辟了溫度傳感器技術(shù)的 單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告 5 新概念。ds18b20 和 ds1822 使電壓、特性及封裝有更多的選擇,讓我們可以構(gòu)建適 合自己的經(jīng)濟(jì)的測(cè)溫系統(tǒng)。 ds18b20 內(nèi)部結(jié)構(gòu)主要由四部分組成:64 位光刻 rom、溫度傳感器、非揮發(fā)的 溫度報(bào)警觸發(fā)器 th 和 tl、配置寄存器。ds18b20 的管腳排列如下: 圖 2-4 ds18b20 的管腳排列圖 dq 為數(shù)字信號(hào)輸入/輸出端;gnd 為電源地;vdd 為外接供電電源輸入端(在 寄生電源接線方式時(shí)接地) 。 光刻 rom 中的 64 位序列號(hào)是出廠前被光刻好的,它可以看作是該 ds18b20 的 地址序列碼。64 位光刻 rom 的排列是:開(kāi)始 8 位(28h)是產(chǎn)品類型標(biāo)號(hào),接著的 48 位是該 ds18b20 自身的序列號(hào),最后 8 位是前面 56 位的循環(huán)冗余校驗(yàn)碼 (crc=x8+x5+x4+1) 。光刻 rom 的作用是使每一個(gè) ds18b20 都各不相同,這樣就 可以實(shí)現(xiàn)一根總線上掛接多個(gè) ds18b20 的目的。 ds18b20 中的溫度傳感器可完成對(duì)溫度的測(cè)量,以 12 位轉(zhuǎn)化為例:用 16 位符號(hào) 擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以 0.0625/lsb 形式表達(dá),其中 s 為符號(hào)位。 表 2-1 12 位轉(zhuǎn)化后得到的 12 位數(shù)據(jù) lsbyte msbyte 232221202-12-22-32-4 bit7bit6bit5bit4bit3bit2bit1bit0 ssss262425s bit15 bit14 bit13 bit12 bit11 bit10 bit9bit8 單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告 6 這是 12 位轉(zhuǎn)化后得到的 12 位數(shù)據(jù),存儲(chǔ)在 18b20 的兩個(gè) 8 比特的 ram 中,二 進(jìn)制中的前面 5 位是符號(hào)位,如果測(cè)得的溫度大于 0,這 5 位為 0,只要將測(cè)到的數(shù) 值乘于 0.0625 即可得到實(shí)際溫度;如果溫度小于 0,這 5 位為 1,測(cè)到的數(shù)值需要取 反加 1 再乘于 0.0625 即可得到實(shí)際溫度。例如+125的數(shù)字輸出為 07d0h,+25.0625的數(shù)字輸出為 0191h,-25.0625的數(shù)字輸出為 ff6fh,-55的 數(shù)字輸出為 fc90h。 溫度檢測(cè)控制電路圖見(jiàn)圖 2-5。 gnd vcc d ds18b20 vcc r 4.7k at89s52 p3.2 圖 2-5 溫度檢測(cè)控制電路圖 ds1820 雖然具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線少等優(yōu)點(diǎn), 但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問(wèn)題: (1)較小的硬件開(kāi)銷需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于 ds1820 與微處理器間采 用串行數(shù)據(jù)傳送,因此,在對(duì) ds1820 進(jìn)行讀寫(xiě)編程時(shí),必須嚴(yán)格的保證讀寫(xiě)時(shí)序, 否則將無(wú)法讀取測(cè)溫結(jié)果。在使用 pl/m、c 等高級(jí)語(yǔ)言進(jìn)行系統(tǒng)程序設(shè)計(jì)時(shí),對(duì) ds1820 操作部分最好采用匯編語(yǔ)言實(shí)現(xiàn)。 (2)在 ds1820 的有關(guān)資料中均未提及單總線上所掛 ds1820 數(shù)量問(wèn)題,容易使人 誤認(rèn)為可以掛任意多個(gè) ds1820,在實(shí)際應(yīng)用中并非如此。當(dāng)單總線上所掛 ds1820 超 過(guò) 8 個(gè)時(shí),就需要解決微處理器的總線驅(qū)動(dòng)問(wèn)題,這一點(diǎn)在進(jìn)行多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)時(shí) 要加以注意。 (3)連接 ds1820 的總線電纜是有長(zhǎng)度限制的。試驗(yàn)中,當(dāng)采用普通信號(hào)電纜傳輸 長(zhǎng)度超過(guò) 50m 時(shí),讀取的測(cè)溫?cái)?shù)據(jù)將發(fā)生錯(cuò)誤。當(dāng)將總線電纜改為雙絞線帶屏蔽電纜 時(shí),正常通訊距離可達(dá) 150m,當(dāng)采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時(shí),正 常通訊距離進(jìn)一步加長(zhǎng)。這種情況主要是由總線分布電容使信號(hào)波形產(chǎn)生畸變?cè)斐傻摹?因此,在用 ds1820 進(jìn)行長(zhǎng)距離測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要充分考慮總線分布電容和阻抗匹配 問(wèn)題。 單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告 7 (4)在 ds1820 測(cè)溫程序設(shè)計(jì)中,向 ds1820 發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待 ds1820 的返回信號(hào),一旦某個(gè) ds1820 接觸不好或斷線,當(dāng)程序讀該 ds1820 時(shí),將 沒(méi)有返回信號(hào),程序進(jìn)入死循環(huán)。這一點(diǎn)在進(jìn)行 ds1820 硬件連接和軟件設(shè)計(jì)時(shí)也要 給予一定的重視。 測(cè)溫電纜線建議采用屏蔽 4 芯雙絞線,其中一對(duì)線接地線與信號(hào)線,另一組接 vcc 和地線,屏蔽層在源端單點(diǎn)接地。 2.32.3 報(bào)警電路報(bào)警電路 報(bào)警電路我們只需要用一個(gè)三極管就可以控制一個(gè)喇叭了。我們只要給這個(gè)口一 個(gè)脈沖電平喇叭就會(huì)發(fā)出聲音了。如圖 2-6 圖 2-6 報(bào)警電路 2.42.4 控制電路及顯示電路控制電路及顯示電路 我們通過(guò) 2 個(gè)外部來(lái)控制溫度,只要在中斷口接 2 個(gè)開(kāi)關(guān)接地。然后把調(diào)節(jié)后的 溫度顯示出來(lái)。我們通過(guò)數(shù)碼管了顯示。 led 顯示器結(jié)構(gòu)與原理: led 顯示器由 7 條發(fā)光二極管組成顯示字段,有的還帶有一個(gè)小數(shù)點(diǎn) dp 將 7 段 發(fā)光二極管陰極連在一起,成為共陰極接法,當(dāng)某個(gè)字段的陽(yáng)極為高電平時(shí),對(duì)應(yīng)的 字段就點(diǎn)亮。共陽(yáng)極接法是將 led 的所有陽(yáng)極并接后就連到+5v 上,當(dāng)某一字段的 陰極為 0 時(shí),對(duì)應(yīng)的字段就點(diǎn)亮。 靜態(tài)串行顯示器的結(jié)構(gòu)圖如 2-7 所示: 單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告 8 a b c d e f g dp v cc a b c d e f g dp 共陰極 共陽(yáng)極 圖 2-7 靜態(tài)串行顯示器的結(jié)構(gòu)圖 點(diǎn)亮 led 顯示器有靜態(tài)和動(dòng)態(tài)兩種方法。所謂靜態(tài)顯示,就是顯示某一字段時(shí), 相應(yīng)的發(fā)光二極管恒定的導(dǎo)通或截止,這種方式,每一顯示位都需要一個(gè) 8 位輸出口 控制,占用硬件較多,一般僅用于顯示器位數(shù)較少的場(chǎng)合。 所謂動(dòng)態(tài)顯示,就是一位一位地輪流點(diǎn)亮各位顯示器。對(duì)每為顯示器而言,每隔 一段時(shí)間顯示一次。顯示位的亮度既跟導(dǎo)通電流有關(guān),也和點(diǎn)亮?xí)r間與間隔時(shí)間的比 例有關(guān)。動(dòng)態(tài)顯示器因硬件成本較低而被采用。 為了顯示字符,要為 led 顯示器提供顯示段碼,組成一個(gè)“8”字形的 7 段,再加 上 1 個(gè)小數(shù)點(diǎn)位,共計(jì) 8 段,因此提供 led 顯示器的顯示段碼為一個(gè)字節(jié)。 led 顯示器與單片機(jī)的接線圖: 本設(shè)計(jì)通過(guò)單片機(jī) p0 口并經(jīng)總線驅(qū)動(dòng)器 74ls245 控制 6 位數(shù)碼管的段碼,通過(guò) 位選線 p2.0-2.1 經(jīng)三極管逐位逐位去控制數(shù)碼管掃描顯示。由于采用動(dòng)態(tài)顯示,其優(yōu) 點(diǎn)是占用硬件資源少,功耗小。但必須注意:掃描周期必須控制在視覺(jué)停頓時(shí)間內(nèi), 一般在 20ms 以內(nèi),否則會(huì)出現(xiàn)閃爍或跳動(dòng)現(xiàn)象。如圖 2-8 所示為 led 與單片機(jī)的接 線圖。 單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告 9 圖 2-8 led 與單片機(jī)的接線圖 顯示器有四個(gè) led 數(shù)碼管組成。輸入串行數(shù)據(jù)線 din 和位移信號(hào) clk,四個(gè)串/ 并移位寄存器芯片 74ls245 連。每片的并行輸出作為 led 數(shù)碼管的碼段。 采用 74ls245 是為了放大電壓,在這邊 74ls245 是這為放大電路。74ls245 的電 路如圖 2-9 圖 2-9 74ls245 電路示意圖 3 軟件設(shè)計(jì)軟件設(shè)計(jì) 總體設(shè)計(jì):我們的程序是控溫,所以我們應(yīng)該不斷測(cè)溫并控制。如圖 3-1 單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告 10 圖 3-1 程序總體設(shè)計(jì)流程圖 3.1 中斷控制程序中斷控制程序 我們先來(lái)設(shè)計(jì)控溫的程序,因?yàn)樗容^簡(jiǎn)單: 程序如下: ;外部中斷 1 key_1: clr ea ;關(guān)閉外部中斷 incdis1 ;把個(gè)位加一 mova,dis1 cjnea,#10,key ;判斷個(gè)位是否為十 movdis1,#0 ;是十把它置一 ;顯示并打開(kāi)中斷 key: mova,dis2 movb,#10 mulab adda,dis1 ;求出調(diào)整后的溫度 movtemper_config,a ;保存調(diào)整后的溫度 lcall display ;顯示調(diào)整后的溫度 setb ex0 setb ex1 setb ea 打開(kāi)中斷 單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告 11 reti 返回 ;外部中斷 2 key_2: clr ea inc dis2 mov a,dis2 cjne a,#10,key mov dis2,#0 ajmp key 其中 dis1,dis2 是定義的變量,用來(lái)保存數(shù)碼管的顯示數(shù)字。temper_config 也是定義變量用來(lái)保存設(shè)定溫度值。 3.2 顯示程序顯示程序 根據(jù)數(shù)碼管的顯示特點(diǎn),我們知道要在現(xiàn)實(shí)一位后延時(shí)一會(huì)在顯示一位。下面是 數(shù)碼管顯示代碼: ;顯示 display: mova,dis2 movdptr,#table movc a,a+dptr movp0,a setb p2.1 dsdely1: movr6,#11 djnz r6,$ djnz r7,dsdely1 mova,dis1 movdptr,#table movc a,a+dptr movp0,a 單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告 12 setb p2.0 movr7,#25 dsdely2: movr6,#11 djnz r6,$ djnz r7,dsdely2 ret 3.3 溫度測(cè)量溫度測(cè)量 這里需要對(duì) 18b20 要有一個(gè)很清楚的了解。 根據(jù) ds18b20 的通訊協(xié)議,主機(jī)控制 ds18b20 完成溫度轉(zhuǎn)換必須經(jīng)過(guò)三個(gè)步驟: 每一次讀寫(xiě)之前都要對(duì) ds18b20 進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條 rom 指令,最后發(fā) 送 ram 指令,這樣才能對(duì) ds18b20 進(jìn)行預(yù)定的操作。 當(dāng)主機(jī)收到 ds18b20 的響應(yīng)信號(hào)后,便可以發(fā)出操作命令,這些命令可以分為 rom 命令和 ram 命令兩種。cpu 的操作過(guò)程如圖 3-2 所示。 由于 ds18b20 與單片機(jī)間采用串行數(shù)據(jù)傳送,因此,在對(duì) ds18b20 進(jìn)行讀寫(xiě)編 程時(shí),必須嚴(yán)格的保證讀寫(xiě)時(shí)序,否則將無(wú)法讀取測(cè)溫結(jié)果。操作時(shí)序主要有初始化 時(shí)序、讀時(shí)序和寫(xiě) 0 時(shí)序和寫(xiě) 1 時(shí)序四種,如圖 3-3 所示。 在溫度測(cè)量?jī)x表中,對(duì) ds18b20 的操作主要是復(fù)位、讀數(shù)據(jù)和寫(xiě)數(shù)據(jù)三種,而 兩種操作又都是按位進(jìn)行的,所以首先應(yīng)該按照 ds18b20 的時(shí)序要求,編寫(xiě)讀、寫(xiě) 時(shí)間片的程序,其流程圖如圖 3-4 所示。 單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告 13 圖 3-2 ds18b20 操作過(guò)程 圖 3-3 ds18b20 操作時(shí)序 單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告 14 圖 3-4 ds18b20 操作程序流程圖 根據(jù)上面的知識(shí)我們可以得到 18b20 的操作的 3 個(gè)函數(shù) ;初始化 18b20 init_1820: setbdq nop clrdq movr0,#06bh tsr1: djnzr0,tsr1; 延時(shí) setbdq movr0,#25h tsr2: jnbdq,tsr3 單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告 15 djnzr0,tsr2 ljmptsr4; 延時(shí) tsr3: setbflag1; 置標(biāo)志位,表示 ds1820 存在 ljmptsr5 tsr4: clrflag1; 清標(biāo)志位,表示 ds1820 不存在 ljmptsr7 tsr5: movr0,#06bh tsr6: djnzr0,tsr6; 延時(shí) tsr7: setbdq ret ;把 a 的值寫(xiě)入 18b20 write_1820: movr2,#8 clrc wr1: clrdq movr3,#6 djnzr3,$ rrca movdq,c movr3,#23 djnzr3,$ setbdq nop 單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告 16 djnzr2,wr1 setbdq ret ;讀溫度 read_18200: mov r4,#2; 將溫度高位和低位從 ds18b20 中讀出 mov r1,#77h; 低位存入 77h(temper_l),高位存入 76h(temper_h) re00: mov r2,#8 re01: clr c setb dq nop nop clr dq nop nop nop setb dq mov r3,#7 djnz r3,$ mov c,dq mov r3,#23 djnz r3,$ rrc a djnz r2,re01 mov r1,a dec r1 djnz r4,re00 ret 單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告 17 應(yīng)為讀出的溫度的格式是 12 位,temper_l 位前四位是整數(shù)部分后四位是小數(shù), temlper_h 只有低四位是有效的。所以我們要有一個(gè)處理溫度的函數(shù)得到整數(shù)的溫 度。 ;讀出的溫度轉(zhuǎn)換成 1 個(gè)字節(jié)放入 temper_num temper_cov: mov a,#0f0h anl a,temper_l; 舍去溫度低位中小數(shù)點(diǎn)后的四位溫度數(shù)值 swap a mov temper_num,a mov a,temper_l jnb acc.3,temper_cov1; 四舍五入去溫度值 inc temper_num temper_cov1: mov a,temper_h anl a,#07h swap a orl a,temper_num mov temper_num,a; 保存變換后的溫度數(shù)據(jù) ret 最后我們寫(xiě)出讀溫度的過(guò)程: ;讀溫度到 temper_l 和 temper_h read_temp: mov a,#0cch lcall write_1820 mov a,#0beh lcall write_1820 lcall read_18200 lcall init_1820 mov a,#0cch lcall write_1820 mov a,#044h 單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告 18 lcall write_1820 ret 3.43.4 溫度處理溫度處理 讀出溫度后我們要跟據(jù)溫度做相應(yīng)的事,根據(jù)題目要求我們可以畫(huà)出對(duì)于的流程 圖: 溫度70 報(bào)警 低于設(shè)定值 加熱 over y y 圖 3-5 溫度處理流程圖 代碼: ;溫度處理 temper_work: lcall temper_cov mov a,temper_num clr c subb a,#70 jnctemp_over mova,temper_num cjne a,temper_config,tw ret tw: jc open_ha 單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告 19 setb ha ret ;溫度超過(guò) 70 響喇叭,并停止加熱 temp_over: setb ha movr6,#128 bell: clrwa movr7,#100 djnz r7,$ setb wa djnz r6,bell ret ;加熱 open_ha: clr ha ret 單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告 20 總 結(jié) 我的課程設(shè)計(jì)是單片機(jī)的溫度控制。當(dāng)我接到選題通知后,開(kāi)始著手論文的準(zhǔn)備 工作。開(kāi)始的時(shí)候,我不知道要如何寫(xiě)起,要往哪方面著手。這個(gè)時(shí)候我的老師給我 很大的幫助,給我指明了設(shè)計(jì)的思路。通過(guò)老師的指導(dǎo)與幫助,我就開(kāi)始了第一步搜 集資料的重要工作。 從搜集文獻(xiàn)到硬件電路的完成,到軟件程序的實(shí)現(xiàn),到論文的完成。每一次的進(jìn) 步都讓我喜悅,每一次導(dǎo)師的指點(diǎn)都讓我收獲良多,每一次遇到困難都讓我更我得學(xué) 會(huì)挑戰(zhàn)自我。通過(guò)這次的設(shè)計(jì),我實(shí)現(xiàn)了溫度控制的硬件連接,了解了芯片的選用, 模塊的建立,都會(huì)遇到這樣那樣的問(wèn)題,而每一次的沖破阻礙就會(huì)感到知識(shí)得到了升 華。硬件設(shè)計(jì)我分為了以下模塊:顯示模塊、報(bào)警模塊、溫度控制模塊和溫度傳感器 模塊。然后設(shè)計(jì)軟件,編寫(xiě)程序調(diào)試硬件電路各個(gè)模塊的功能。最后對(duì)整個(gè)系

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論