簡(jiǎn)易數(shù)字溫度計(jì)課程設(shè)計(jì)_第1頁(yè)
簡(jiǎn)易數(shù)字溫度計(jì)課程設(shè)計(jì)_第2頁(yè)
簡(jiǎn)易數(shù)字溫度計(jì)課程設(shè)計(jì)_第3頁(yè)
簡(jiǎn)易數(shù)字溫度計(jì)課程設(shè)計(jì)_第4頁(yè)
簡(jiǎn)易數(shù)字溫度計(jì)課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 唐 山 學(xué) 院 單片機(jī)原理 課 程 設(shè) 計(jì) 題 目 簡(jiǎn)易數(shù)字溫度計(jì) 系 (部) 智能與信息工程學(xué)院 班 級(jí) 姓 名 學(xué) 號(hào) 指導(dǎo)教師 2017 年 1 月 2 日至 1 月 6 日 共 1 周2017年1月4日單片機(jī)原理課程設(shè)計(jì)任務(wù)書(shū)一、設(shè)計(jì)題目、內(nèi)容及要求設(shè)計(jì)題目:簡(jiǎn)易數(shù)字溫度計(jì)設(shè)計(jì)內(nèi)容:所設(shè)計(jì)數(shù)字溫度計(jì)應(yīng)具有以下功能:1.可以測(cè)量-50到110攝氏度內(nèi)的溫度。2.在液晶上顯示當(dāng)前溫度,分別為百位、十位、個(gè)位和小數(shù)點(diǎn)后一位。3.測(cè)量精度誤差在正負(fù)0.5攝氏度以內(nèi)。設(shè)計(jì)要求:1.根據(jù)題目要求進(jìn)行系統(tǒng)總體設(shè)計(jì)。 2.完成系統(tǒng)硬件電路的設(shè)計(jì)。3.系統(tǒng)程序的設(shè)計(jì)。 (1)程序流程圖;(2)完整源程

2、序;(3)正確仿真運(yùn)行。4.撰寫設(shè)計(jì)說(shuō)明書(shū)(符合格式要求)。二、設(shè)計(jì)原始資料PROTEUS軟件,WAVE/KEIL軟件,實(shí)驗(yàn)箱三、要求的設(shè)計(jì)成果(課程設(shè)計(jì)說(shuō)明書(shū)、設(shè)計(jì)實(shí)物、圖紙等)設(shè)計(jì)結(jié)果能正確仿真演示課程設(shè)計(jì)說(shuō)明書(shū)一份(要求有硬件設(shè)計(jì)原理圖,仿真結(jié)果圖,源程序代碼)四、進(jìn)程安排1.2日-1.3日上午 查閱資料,設(shè)計(jì)電路原理圖、編寫程序1.4日下午-1.5日 中心機(jī)房調(diào)試程序1.6日 課程設(shè)計(jì)答辯五、主要參考資料1肖看.李群芳.單片機(jī)原理、接口及應(yīng)用,清華大學(xué)出版社.2010.92樓然苗.單片機(jī)課程設(shè)計(jì)指導(dǎo).北京:北京航空航天大學(xué)出版社.2002.3孫育才主編,MCS-51系列單片微型計(jì)算機(jī)及

3、其應(yīng)用.東南大學(xué)出版社指導(dǎo)教師(簽名):教研室主任(簽名):課程設(shè)計(jì)成績(jī)?cè)u(píng)定表出勤情況出勤天數(shù) 缺勤天數(shù)成績(jī)?cè)u(píng)定出勤情況及設(shè)計(jì)過(guò)程表現(xiàn)(20分)課設(shè)答辯(20分)設(shè)計(jì)成果(60分)總成績(jī)(100分)提問(wèn)(答辯)問(wèn)題情況綜合評(píng)定 指導(dǎo)教師簽名: 年 月 日目 錄1.方案論證12.硬件設(shè)計(jì)22.1系統(tǒng)構(gòu)成 2 2.2器件選擇 22.2.1 AT89C51概述22.2.2 AT89C51引腳功能32.2.3 復(fù)位電路的設(shè)計(jì)42.3數(shù)字溫度傳感器52.3.1 DS1621的技術(shù)指標(biāo)52.3.2 DS1621的工作原理62.4 單片機(jī)和DS1621接口電路62.5 七段LED數(shù)碼顯示電路73.系統(tǒng)軟件設(shè)

4、計(jì)93.1 編程語(yǔ)言選擇93.2 主程序的設(shè)計(jì)93.3 溫度采集模塊設(shè)計(jì)103.4 溫度計(jì)算模塊設(shè)計(jì)103.5 串行總線編程114.軟硬件調(diào)試結(jié)果分析125.設(shè)計(jì)總結(jié)136.參考文獻(xiàn)14附錄A 多點(diǎn)溫度采集系統(tǒng)電路原理圖15課程設(shè)計(jì)說(shuō)明書(shū)1.方案論證 該系統(tǒng)可以使用方案一:熱敏電阻;方案二:數(shù)字溫度芯片DS1621實(shí)現(xiàn)。采用數(shù)字溫度芯片DS1621 測(cè)量溫度,輸出信號(hào)全數(shù)字化。便于單片機(jī)處理及控制,省去傳統(tǒng)的測(cè)溫方法的很多外圍電路。且該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測(cè)溫元件,此元件線形較好。在0100攝氏度時(shí),最大線形偏差小于1攝氏度。DS1621 的最大特點(diǎn)之一采用了單總線的數(shù)據(jù)傳輸,

5、由數(shù)字溫度計(jì)DS1621和微控制器AT89C51構(gòu)成的溫度測(cè)量裝置,它直接輸出溫度的數(shù)字信號(hào),可直接與計(jì)算機(jī)連接。這樣,測(cè)溫系統(tǒng)的結(jié)構(gòu)就比較簡(jiǎn)單,體積也不大。采用51 單片機(jī)控制,軟件編程的自由度大,可通過(guò)編程實(shí)現(xiàn)各種各樣的算術(shù)算法和邏輯控制,而且體積小,硬件實(shí)現(xiàn)簡(jiǎn)單,安裝方便??刂乒ぷ?,還可以與PC 機(jī)通信上傳數(shù)據(jù),另外AT89S51 在工業(yè)控制上也有著廣泛的應(yīng)用,編程技術(shù)及外圍功能電路的配合使用都很成熟。該系統(tǒng)利用AT89C51芯片控制溫度傳感器DS1621進(jìn)行實(shí)時(shí)溫度檢測(cè)并顯示,能夠?qū)崿F(xiàn)快速測(cè)量環(huán)境溫度,并可以根據(jù)需要設(shè)定上下限報(bào)警溫度。該系統(tǒng)擴(kuò)展性非常強(qiáng),它可以在設(shè)計(jì)中加入時(shí)鐘芯片DS

6、1302以獲取時(shí)間數(shù)據(jù),在數(shù)據(jù)處理同時(shí)顯示時(shí)間,并可以利用AT24C16芯片作為存儲(chǔ)器件,以此來(lái)對(duì)某些時(shí)間點(diǎn)的溫度數(shù)據(jù)進(jìn)行存儲(chǔ),利用鍵盤來(lái)進(jìn)行調(diào)時(shí)和溫度查詢,獲得的數(shù)據(jù)可以通過(guò)MAX232芯片與計(jì)算機(jī)的RS232接口進(jìn)行串口通信,方便的采集和整理時(shí)間溫度數(shù)據(jù)。故采用了方案二。測(cè)溫電路的總體設(shè)計(jì)方框圖如圖1-1所示,控制器采用單片機(jī)AT89C51,溫度傳感器采用DS1621,用5位LED數(shù)碼管以串口傳送數(shù)據(jù)實(shí)現(xiàn)溫度顯示。圖1-1 測(cè)溫電路的總體設(shè)計(jì)方框圖2.硬件設(shè)計(jì)2.1系統(tǒng)構(gòu)成本溫度數(shù)據(jù)采集系統(tǒng)的主要功能是測(cè)量溫度,并顯示溫度測(cè)量結(jié)果,并附帶了單片機(jī)和PC機(jī)之間通訊接口。系統(tǒng)結(jié)構(gòu)包括單片機(jī)部分

7、、溫度傳感器、顯示電路、通訊接口電路等幾個(gè)部分。圖2-1為系統(tǒng)的總體結(jié)構(gòu)框圖。圖2-1 測(cè)溫系統(tǒng)的總體結(jié)構(gòu)框圖系統(tǒng)工作原理是:電路在上電后,最先單片機(jī)利用模擬總線I2C對(duì)DS1621進(jìn)行尋址,單片機(jī)在接收到DS1621應(yīng)答后,單片機(jī)將設(shè)置/狀態(tài)寄存器的值通過(guò)I2C總線寫入該寄存器,之后DS1621在單片機(jī)控制下進(jìn)行溫度測(cè)量,然后DS1621把所采集的溫度(50攝氏度100攝氏度,精度為0.5攝氏度)傳輸給單片機(jī),最后單片機(jī)把溫度數(shù)據(jù)送到LED上顯示。系統(tǒng)中附帶的串行接口以供備用。2.2器件選擇2.2.1 AT89C51概述對(duì)于單片機(jī)的選擇,可以考慮使用8031與8051系列,由于8031沒(méi)有內(nèi)

8、部RAM,系統(tǒng)又需要大量?jī)?nèi)存存儲(chǔ)數(shù)據(jù),因而不適用。所以,我們選用51系列單片機(jī)AT89C51。AT89C51是美國(guó)ATMEL公司生產(chǎn)的低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4KB的可編程的Flash只讀程序存儲(chǔ)器,兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳,并集成了 Flash 程序存儲(chǔ)器,既可在線編程(ISP),也可用傳統(tǒng)方法進(jìn)行編程,因此,低價(jià)位AT89C51單片機(jī)可應(yīng)用于許多高性價(jià)比的場(chǎng)合,可靈活應(yīng)用于各種控制領(lǐng)域,對(duì)于簡(jiǎn)單的測(cè)溫系統(tǒng)已經(jīng)足夠。單片機(jī)AT89C51具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用系統(tǒng)可用二節(jié)電池供電。AT8

9、9C51的主要特性如下:與MCS-51 兼容; 4K字節(jié)可編程閃爍存儲(chǔ)器;三級(jí)程序存儲(chǔ)器鎖定;1288位內(nèi)部RAM; 32根可編程I/O線;兩個(gè)16位定時(shí)器/計(jì)數(shù)器; 5個(gè)中斷源;可編程串行通道; 片內(nèi)振蕩器和時(shí)鐘電路。2.2.2 AT89C51引腳功能單片機(jī)芯片AT89C51為40引腳雙列直插式封裝。其各個(gè)引腳功能介紹如下,芯片AT89C51的引腳排列和邏輯符號(hào)如圖2-2所示。各引腳分別為: VCC:供電電壓 圖2-2 AT89C51的引腳GND:接地P0口圖4-2 AT89C51的引腳排列圖P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每個(gè)管腳可吸收8TTL門電流。當(dāng)P1口的管腳寫1時(shí),被定義為高

10、阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FLASH編程時(shí),P0口作為原碼輸入口,當(dāng)FLASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部電位必須被拉高。P1口P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流P1口管腳寫入”1”后,電位被內(nèi)部上拉為高可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。P2口P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流 當(dāng)P2口被寫”1”時(shí),其管腳電位被內(nèi)部上拉電阻拉高,且作為輸入。作

11、為輸入時(shí)P2口的管腳電位被外部拉低,將輸出電流,這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址”1”時(shí),它利用內(nèi)部上拉的優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。P3口P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入時(shí),由于外部下拉為低電平,P3口將輸出電流(ILL),也是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,

12、同時(shí)P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。RST:復(fù)位輸入端。當(dāng)振蕩器復(fù)位時(shí),要保持RST兩個(gè)機(jī)器周期的高電平時(shí)間。PSEN外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取址期間,每個(gè)機(jī)器周期PSEN兩次有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的PSEN信號(hào)將不出現(xiàn)。EA/VPP當(dāng)EA保持低電平時(shí),訪問(wèn)外部ROM;注意加密方式1時(shí),EA將內(nèi)部鎖定為RESET;當(dāng)EA端保持高電平時(shí),訪問(wèn)內(nèi)部ROM。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。2.2.3 復(fù)位電路的設(shè)計(jì)單片機(jī)的復(fù)位電路如圖2-2所示。該復(fù)位電路采用手動(dòng)復(fù)位與上電復(fù)位相結(jié)合的方式。當(dāng)按下按鍵S1時(shí),VC

13、C通過(guò)R2電阻給復(fù)位輸入端口一個(gè)高電平,實(shí)現(xiàn)復(fù)位功能,即手動(dòng)復(fù)位。上電復(fù)位就是VCC通過(guò)電阻R2和電容C構(gòu)成回路,該回路是一個(gè)對(duì)電容C1充電和放電的電路,所以復(fù)位端口得到一個(gè)周期性變化的電壓值,并且有一定時(shí)間的電壓值高于CPU復(fù)位電壓,實(shí)現(xiàn)上電復(fù)位功能。圖2-3 單片機(jī)的復(fù)位電路2.3數(shù)字溫度傳感器2.3.1 DS1621的技術(shù)指標(biāo)DS1621是美國(guó)DALLAS公司生產(chǎn)的一種功能較強(qiáng)的數(shù)字式溫度傳感器和恒溫控制器。數(shù)字接口電路簡(jiǎn)單,與I2C總線兼容,且可以使用一片控制器控制多達(dá)8片的DS1621。其數(shù)字溫度輸出達(dá)9位,精度為0.5攝氏度。DS1621可工作在最低2.7V電壓下,適用于低功耗應(yīng)用

14、系統(tǒng)。 DS1621的引腳排列圖如圖2-4所示,引腳功能描述如表2-1所示。圖2-4 DS1621的引腳排列圖表2-1 DS1621的引腳功能表引腳符號(hào)功能描述1SDA2線I2C 串行數(shù)據(jù)輸入/輸出2SCL2線I2C 串行時(shí)鐘端3TOUT溫度上下限超出輸出4GND地5A2A0片選地址輸入A2A06VDD電源端(+2.75.5V)2.3.2 DS1621的工作原理圖2-5 DS1621的構(gòu)成原理框圖斜坡累加電路重預(yù)置比較器計(jì)數(shù)溫度低敏感振蕩器重預(yù)置電路溫度寄存器溫度低敏感振蕩器計(jì)數(shù)器=0DS1621的構(gòu)成原理框圖如圖2-5所示,在測(cè)量溫度時(shí)使用了獨(dú)有的在線溫度測(cè)量技術(shù)。它通過(guò)在一個(gè)由對(duì)溫度高度敏

15、感的振蕩器決定的計(jì)數(shù)周期內(nèi)對(duì)溫度低敏感的振蕩器時(shí)鐘脈沖的計(jì)數(shù)值的計(jì)算來(lái)測(cè)量溫度。DS1621在計(jì)數(shù)器中預(yù)置了一個(gè)初值,它相當(dāng)于50攝氏度。如果計(jì)數(shù)周期結(jié)束之前計(jì)數(shù)器達(dá)到0,已預(yù)置了此初值的溫度寄存器中的數(shù)字就會(huì)增加,從而表明溫度高于55攝氏度。與此同時(shí),計(jì)數(shù)器斜坡累加電路被重新預(yù)置一個(gè)值,然后計(jì)數(shù)器重新對(duì)時(shí)鐘計(jì)數(shù),直到計(jì)數(shù)值為0。通過(guò)改變?cè)黾拥拿? 內(nèi)的計(jì)數(shù)器的計(jì)數(shù),斜坡累加電路可以補(bǔ)償振蕩器的非線性誤差,以提高精度,任意溫度下計(jì)數(shù)器的值和每一斜坡累加電路的值對(duì)應(yīng)的計(jì)數(shù)次數(shù)須為已知。 DS1621通過(guò)計(jì)算可以得到0. 5攝氏度的精度,溫度輸出為9位,在發(fā)出讀溫度值請(qǐng)求后還會(huì)輸出兩位補(bǔ)償值。表2

16、給出了所測(cè)的溫度和輸出數(shù)據(jù)的關(guān)系。這些數(shù)據(jù)可通過(guò)2線制串行口連續(xù)輸出,MSB在前,LSB在后。 2.4 單片機(jī)和DS1621接口電路前面已經(jīng)介紹了DS1621溫度傳感器以8位數(shù)字輸出,數(shù)據(jù)輸出與I2C總線兼容,可以方便地通過(guò)SDA,SCL以串行方式與單片機(jī)相連。而AT89C51面向主/從功能字節(jié)的I2C總線串行I/O口,所以多路溫度數(shù)字量可以通過(guò)I2C總線直接送GAS97C2051單片機(jī)。I2C總線(Inter IC BUS)是Philips公司推出的雙向兩線串行通信標(biāo)準(zhǔn)。由于它具有接口少、通信效率高等優(yōu)點(diǎn),現(xiàn)已得到廣泛的應(yīng)用I2C總線是一種串行的數(shù)據(jù)總線,掛在總線上的各集成電路模塊(單片機(jī)和

17、具有各種功能的電路芯片)通過(guò)一條串行的數(shù)據(jù)線 (SDA)和一條串行的時(shí)鐘線(SCL),按一定的通信協(xié)議進(jìn)行尋址和信息的傳輸。每個(gè)電路模塊都有唯一的地址,在信息的傳輸過(guò)程中,I2C總線上的電路模塊有的是主控器,有的是被控器,主控器和被控器都可以是發(fā)送器或接收器,這完全取決于它所要完成的功能。采用I2C總線可最大限度地簡(jiǎn)化電路結(jié)構(gòu),實(shí)現(xiàn)電路的模塊化、標(biāo)準(zhǔn)化設(shè)計(jì)。I2C總線在進(jìn)行數(shù)據(jù)傳輸時(shí),由作為主控器的AT89C51來(lái)初始化一次數(shù)據(jù)的傳輸,并在I2C總線上提供時(shí)鐘進(jìn)行傳送。信息傳送的對(duì)象、方向和傳送的開(kāi)始、終止也由主控器(AT89C51)來(lái)決定。此時(shí),在I2C總線上被主控器所尋址的集成電路模塊稱為

18、被控器(DS162)。在I2C總線上,數(shù)據(jù)由發(fā)送器傳出,并被接收器接收,接收器在每次正確接收到一個(gè)數(shù)據(jù)字節(jié)后,都要在數(shù)據(jù)總線(SDA)上給發(fā)送器一個(gè)應(yīng)答信號(hào)。因單片機(jī)AT89C51本身 沒(méi)有I2C硬件資源,所以必須用軟件來(lái)模擬I2C總線,本系統(tǒng)利用單片機(jī)AT89C51的P3.0和P3.1引腳分別作I2C總線的數(shù)據(jù)線和時(shí)鐘線(見(jiàn)附錄A)。AT89C51模擬I2C總線主要由軟件設(shè)置來(lái)實(shí)現(xiàn)其功能。2.5七段LED數(shù)碼顯示電路采用七段LED數(shù)碼顯示,LED顯示器內(nèi)部由7段發(fā)光二極管組成,因此亦稱之為七段LED顯示器,由于主要用于顯示各種數(shù)字符號(hào),故又稱之為L(zhǎng)ED數(shù)碼管。每個(gè)顯示器還有一個(gè)圓點(diǎn)型發(fā)光二極

19、管,用于顯示小數(shù)點(diǎn)。在單片機(jī)AT89C51接收到DS1621所采集的溫度數(shù)據(jù)后,單片機(jī)把所讀到的數(shù)據(jù)送給數(shù)碼管顯示。系統(tǒng)具體的顯示電路如圖2-6所示。圖2-6 七段LED數(shù)碼管顯示電路顯示電路中單片機(jī)AT89C51的P0口直接驅(qū)動(dòng)8段數(shù)碼管(其中需要給P0外接上拉電阻)完成字形碼的輸出(字形選擇)。而P2.1-P2.5控制6位LED進(jìn)行分時(shí)選通,這樣在任一時(shí)刻,只有一位LED是點(diǎn)亮的,但只要掃描的頻率足夠高(一般大于25Hz),由于人眼的視覺(jué)暫留特性,直觀上感覺(jué)卻是連續(xù)點(diǎn)亮的,這就是我們常說(shuō)的動(dòng)態(tài)掃描電路。3.軟件設(shè)計(jì)與調(diào)試3.1 編程語(yǔ)言選擇51的編程語(yǔ)言常用的有兩種,一種是匯編語(yǔ)言,一種是

20、C語(yǔ)言。匯編語(yǔ)言的機(jī)器代碼生成效率很高但可讀性卻并不強(qiáng),復(fù)雜一點(diǎn)的程序就更是難讀懂,而C語(yǔ)言在大多數(shù)情況下其機(jī)器代碼生成效率和匯編語(yǔ)言相當(dāng),C 語(yǔ)言很好的結(jié)構(gòu)性和模塊化更容易閱讀和維護(hù),用C 編寫程序比匯編更符合人們的思考習(xí)慣,開(kāi)發(fā)者可以更專心的考慮算法而不是考慮一些細(xì)節(jié)問(wèn)題這樣就減少了開(kāi)發(fā)和調(diào)試的時(shí)間,而且C語(yǔ)言還可以嵌入?yún)R編來(lái)解決高時(shí)效性的代碼編寫問(wèn)題。3.2 主程序的設(shè)計(jì)初始化N讀溫度數(shù)據(jù)并存儲(chǔ)生成地址字節(jié)1001000,循環(huán)次數(shù)3延時(shí)1S以上等待結(jié)果啟動(dòng)轉(zhuǎn)換向設(shè)置/狀態(tài)寄存器設(shè)置為連續(xù)工作方式生成地址字節(jié)1001000,循環(huán)次數(shù)3次地址字節(jié)加02H 循環(huán)次數(shù)減1為0?讀溫度數(shù)據(jù)并存儲(chǔ)及

21、顯示地址字節(jié)加02H 循環(huán)次數(shù)減1為0?圖3-1 主程序流程圖NN主程序的主要功能是負(fù)責(zé)多點(diǎn)溫度數(shù)據(jù)的實(shí)時(shí)采集、傳輸,處理和顯示。其程序流程如圖3-1所示。3.3 溫度采集模塊設(shè)計(jì)為本溫度采集系統(tǒng)開(kāi)發(fā)的軟件程序,可以對(duì)DS1621內(nèi)部的寄存器編程控制DS1621的工作方式,以及從這些數(shù)據(jù)寄存器讀取溫度值,最后把經(jīng)過(guò)單片機(jī)數(shù)據(jù)處理后的溫度送到LED上顯示。AT89C51扮演著上傳下達(dá)的角色,單片機(jī)端的程序采用了C語(yǔ)言。DS1621一側(cè)的通信程序?qū)⒗貌⑿卸丝赑3.0和P3.1來(lái)模擬I2C 總線協(xié)議,總線上的通信通過(guò)程序來(lái)實(shí)現(xiàn)。整個(gè)軟件采用了模塊化的程序設(shè)計(jì)方法。為了實(shí)現(xiàn)AT89C51和DS162

22、1之間I2C 協(xié)議之下的串行通信,編寫了一些專用子程序。這些子程序段包括:符號(hào)定義、AT89C51的端口初始化、啟動(dòng)信號(hào)時(shí)序產(chǎn)生、停止信號(hào)時(shí)序產(chǎn)生、發(fā)送字節(jié)、讀取字節(jié)、讀取溫度、顯示。系統(tǒng)電路在上電后開(kāi)始工作,最先程序單片機(jī)進(jìn)行初始化設(shè)置,然后單片機(jī)利用模擬I2C總線對(duì)DS1621進(jìn)行尋址。單片機(jī)在接收到DS1621應(yīng)答后,緊接著單片機(jī)利用命令(AAh、ACh、EEh、22h)將設(shè)置/狀態(tài)寄存器的值通過(guò)I2C總線寫入DS1621狀態(tài)寄存器,該系統(tǒng)中把DS1621設(shè)置為連續(xù)溫度轉(zhuǎn)換工作方式,之后DS1261在單片控制下進(jìn)行溫度測(cè)量,然后DS1261把所采集的溫度傳輸給單片機(jī),最后單片機(jī)把溫度數(shù)據(jù)

23、送到LED上顯示。3.4 溫度計(jì)算模塊設(shè)計(jì)計(jì)算溫度子程序?qū)腄S1621中讀取的溫度值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖3-2所示。 開(kāi)始溫度零下?溫度值取補(bǔ)碼置“”標(biāo)志計(jì)算小數(shù)位溫度BCD值 計(jì)算整數(shù)位溫度BCD值 結(jié)束置“+”標(biāo)志NY圖3-2 溫度計(jì)算流程圖3.5 串行總線編程在本系統(tǒng)中,單片機(jī)AT89C51 作為主控器件,3個(gè)DS1621作為被控器,所以我們只要考慮主方式下的狀態(tài)處理模塊,即考慮AT89C51主發(fā)送和主接收方式下的狀態(tài)處理模塊。該電路中為了簡(jiǎn)化電路設(shè)計(jì)在I2C總線的時(shí)鐘和數(shù)據(jù)上各加了一個(gè)上拉電阻,以獲取一定的上拉電流使信號(hào)采集可靠。本系統(tǒng)中掛

24、在I2C總線上的各電路模塊都有其節(jié)點(diǎn)地址。AT89C51作為主控器其節(jié)點(diǎn)地址無(wú)意義,作為被控器的3個(gè)DS1621都有其節(jié)點(diǎn)地址,其地址為1001A2A1A0 ,其中,1001是器件編號(hào),已由芯片生產(chǎn)廠家規(guī)定,A2A1A0為DS1621的3個(gè)引腳,在電路中分別接高低電平?jīng)Q定2個(gè)DS1621的不同地址。2個(gè)DS1621的地址分別為10010001001010。本系統(tǒng)中的I2C總線的尋址方式為的廣播尋址,即AT89C51對(duì)掛在I2C總線上所有的DS1621的廣播呼叫尋址。AT89C51發(fā)出開(kāi)始信號(hào)S后的第一個(gè)字節(jié)確定由AT89C51所選擇的一個(gè)DS1621的地址,然后在第一個(gè)字節(jié)以后開(kāi)始數(shù)據(jù)傳送。具

25、體實(shí)現(xiàn)尋址的方法是:由AT89C51發(fā)出啟動(dòng)位S后緊跟著發(fā)送從器件DS1621的7位地址碼,即S+SLA,在節(jié)點(diǎn)地址尋址中SLA為被尋址的從節(jié)點(diǎn)地址,主控設(shè)備在發(fā)送數(shù)據(jù)前,在時(shí)鐘為高時(shí),在數(shù)據(jù)線上發(fā)送一個(gè)由高到低的信號(hào)來(lái)表示開(kāi)始傳送數(shù)據(jù),DS1621 接收到開(kāi)始信號(hào)時(shí),移入后續(xù)8 位(高7 位地址線和一個(gè)R/W 位)來(lái)確定進(jìn)行如何操作,R/W 位為0 表示寫,為1 表示讀。讀寫操作完成后,在時(shí)鐘為高時(shí),在數(shù)據(jù)線上發(fā)送一個(gè)由低到高的信號(hào)表示傳送結(jié)束。具體數(shù)據(jù)格式如圖3-3所示,時(shí)序如圖3-4所示。圖3-3 串行通信的數(shù)據(jù)格式圖3-4 串行通信的時(shí)序圖 4.軟硬件調(diào)試結(jié)果分析本設(shè)計(jì)應(yīng)用Proteu

26、s及Keil軟件,首先根據(jù)自己設(shè)計(jì)的電路圖用Proteus軟件畫出電路模型,關(guān)于這個(gè)軟件的使用通過(guò)查一些資料和自己的摸索學(xué)習(xí);然后用Keil軟件對(duì)所編寫的程序進(jìn)行編譯、鏈接,如果沒(méi)有錯(cuò)誤和警告便可生成程序的hex文件,調(diào)試好程序后將目標(biāo)文件導(dǎo)入Proteus的AT89C51芯片中進(jìn)行軟件調(diào)試。最后進(jìn)行三路溫度的對(duì)比測(cè)試。數(shù)字溫度計(jì)的仿真電路圖如圖4-1所示。圖4-1 仿真圖 仿真結(jié)果分析:不斷調(diào)整三路DS1621的溫度值,發(fā)現(xiàn)LED顯示器上的數(shù)值和DS1621屏幕上的標(biāo)準(zhǔn)值相差無(wú)幾,在誤差允許的范圍之內(nèi)。當(dāng)某一路的溫度不在50-80范圍時(shí),兩個(gè)LED同時(shí)發(fā)光,表示告警信息。經(jīng)調(diào)試,證明開(kāi)發(fā)者最

27、終設(shè)計(jì)出結(jié)構(gòu)合理、美觀,主要電氣指標(biāo)良好,性能穩(wěn)定可靠的電路。5.設(shè)計(jì)總結(jié)不知不覺(jué)中,一周的課程設(shè)計(jì)實(shí)習(xí)已經(jīng)接近尾聲了。可能是假期快到的緣故,總感覺(jué)這次實(shí)習(xí)特別短暫。此刻,真是感慨萬(wàn)千啊!現(xiàn)在我可以自豪的說(shuō),這次實(shí)習(xí)我達(dá)到了預(yù)期的目標(biāo)。因?yàn)樵趯?shí)習(xí)期間,我每天都在接觸新的東西,每天都會(huì)有新的問(wèn)題等待我去探討去解決,每天都有新收獲?;叵胝n設(shè)第一天,我們做點(diǎn)電腦前,不知道自己能干點(diǎn)什么,對(duì)于指導(dǎo)老師的講解也是云里霧里的。因?yàn)轭^一回接觸Proteus和Keil這兩個(gè)軟件。但是我相信,只要自己用心了,沒(méi)有辦不成的事。于是,我靜下心來(lái),仔細(xì)研究老師下發(fā)的教程。我珍惜每一次的上機(jī)機(jī)會(huì),勤加練習(xí),課下積極研究

28、手冊(cè)和相關(guān)書(shū)籍。兩天過(guò)后,才算有點(diǎn)眉目了。到這時(shí)心里才算稍微安穩(wěn)了一些,再加上以前學(xué)過(guò)名為Protel的電路設(shè)計(jì)軟件,所以我的自信心加強(qiáng)了。在這次設(shè)計(jì)過(guò)程中,體現(xiàn)出自己?jiǎn)为?dú)設(shè)計(jì)電路的能力以及綜合運(yùn)用知識(shí)的能力,體會(huì)了學(xué)以致用、突出自己勞動(dòng)成果的喜悅心情,從中發(fā)現(xiàn)自己平時(shí)學(xué)習(xí)的不足和薄弱環(huán)節(jié),從而加以彌補(bǔ)。在此感謝我們的田紅霞、張國(guó)旭老師,老師嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣;老師循循善誘的教導(dǎo)和不拘一格的思路給予我無(wú)盡的啟迪;這次簡(jiǎn)易數(shù)字溫度計(jì)設(shè)計(jì)的每個(gè)實(shí)驗(yàn)細(xì)節(jié)和每個(gè)數(shù)據(jù),都離不開(kāi)老師您的細(xì)心指導(dǎo)。而您開(kāi)朗的個(gè)性和寬容的態(tài)度,幫助我能夠很順利的完成了這次課程設(shè)計(jì)。同時(shí)感謝對(duì)我

29、幫助過(guò)的同學(xué)們,謝謝你們對(duì)我的幫助和支持,讓我感受到同學(xué)的友誼。6.參考文獻(xiàn)1肖看.李群芳.單片機(jī)原理、接口及應(yīng)用,清華大學(xué)出版社.2010.92樓然苗.單片機(jī)課程設(shè)計(jì)指導(dǎo).北京:北京航空航天大學(xué)出版社.2002. 3孫育才主編,MCS-51系列單片微型計(jì)算機(jī)及其應(yīng)用.東南大學(xué)出版社附錄A 多點(diǎn)溫度采集系統(tǒng)電路原理圖附錄B C語(yǔ)言源代碼#include reg51.h#include intrins.h#define uchar unsigned char#define uint unsigned int#define DiSdata P0 /七段碼數(shù)據(jù)輸出口#define discan P2

30、 /掃描數(shù)據(jù)輸出口sbit DIN=P07; /小數(shù)點(diǎn)控制sbit Scl=P30; /串行時(shí)鐘sbit Sda=P31; /串行數(shù)據(jù)sbit alarm=P17;sbit alarm2=P16;uint i;uint h; uint temp;uchar dath2; /溫度輸入口uchar ff2,ff1=0,t3=0;uchar code dis_712=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40;/共陰LED段碼表 0 1 2 3 4 5 6 7 8 9 滅 - uchar code scan_con5=0xf

31、d,0xfb,0xf7,0xef,0xdf; /LED顯示控制,對(duì)應(yīng)0的LED有效uchar data display5=0x00,0x00,0x00,0x00,0x002; /顯示單元數(shù)據(jù),共6個(gè)數(shù)據(jù)和一個(gè)運(yùn)算暫用uchar data display15=0x01,0x02,0x03,0x04,0x052;uchar data DD4=0x90,0x92,0x94; /void delay_us(uint t) /延時(shí)函數(shù) for (;t0;t-); /scan() /LED掃描函數(shù) uchar k; for(k=0;k5;k+) discan=scan_conk; /控制位送P2口 DiS

32、data=dis_7displayk; /數(shù)據(jù)位送P0口 if (k=3)DIN=1; else DIN=0; /小數(shù)點(diǎn)顯示 delay_us(150); /void delay(void) /延時(shí)函數(shù) _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); /void i_start(void) /開(kāi)始 Sda=1; Scl=1; delay(); Sda=0; delay(); Scl=0; / void i_stop(void) /終止 Sda=0; Scl=1; delay(); Sda=1; delay(); Scl=0; Sda=

33、0; /bit i_clock(void) /應(yīng)答信號(hào) bit sample; Scl=1; delay(); sample=Sda; _nop_(); _nop_(); Scl=0; delay(); return(sample); / void i_ack(void) Sda=0; i_clock(); Sda=1; / bit i_send(uchar i_data) /發(fā)送 uchar i; for(i=0;i8;i+) Sda=(bit)(i_data & 0x80); i_data=i_data1; i_clock(); Sda=1; return(i_clock(); / uch

34、ar i_receive(void) /I2C接收 uchar i_data=0; uchar i; for(i=0;i8;i+) i_data=1; Scl=0;delay(); Scl=1;delay() ; i_data|=Sda; Scl=0; delay(); return(i_data); / bit start_temperature_T(unsigned char d) /開(kāi)始轉(zhuǎn)換命令 uchar t1; t1=DDd; i_start(); if(i_send(t1) if(i_send(0xee) i_stop(); delay(); return(1); else i_s

35、top(); delay(); return(0); else i_stop(); delay(); return(0); / bit read_temperature_T(unsigned char *p,unsigned char d) unsigned char t1,t2; t1=DDd; t2=DDd+0x01; i_start(); if(i_send(t1) if(i_send(0xaa) i_start(); if(i_send(t2) *(p+1)=i_receive(); i_ack(); *p=i_receive(); i_stop(); delay(); i_send(

36、t1); i_send(0x22); delay(); return(1); else i_stop(); delay(); return(0); else i_stop(); delay(); return(0); else i_stop(); delay(); return(0); bit ds1621(unsigned char d) unsigned char t1; t1=DDd; i_start(); if(i_send(t1) if(i_send(0xac) i_start(); if(i_send(0x0a) i_stop(); delay(); return(1); else i_st

溫馨提示

  • 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)論