




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、揚(yáng)州大學(xué)能源與動(dòng)力工程學(xué)院課程設(shè)計(jì)報(bào)告題 目: 數(shù)字溫度計(jì)的設(shè)計(jì) 課 程: 單片機(jī)原理及應(yīng)用課程設(shè)計(jì) 專(zhuān) 業(yè): 電氣工程及其自動(dòng)化 班 級(jí): 電氣1202班 姓 名: 學(xué) 號(hào): 第 一 部 分任務(wù)書(shū)單片機(jī)原理及應(yīng)用課程設(shè)計(jì)任務(wù)書(shū)一、課題名稱(chēng)硬件設(shè)計(jì)題目五:數(shù)字溫度計(jì)的設(shè)計(jì)二、課程設(shè)計(jì)目的課程設(shè)計(jì)是課程教學(xué)中的一項(xiàng)重要內(nèi)容,是達(dá)到教學(xué)目標(biāo)的重要環(huán)節(jié),是綜合性較強(qiáng)的實(shí)踐教學(xué)環(huán)節(jié),它對(duì)幫助學(xué)生全面牢固地掌握課堂教學(xué)內(nèi)容、培養(yǎng)學(xué)生的實(shí)踐和實(shí)際動(dòng)手能力、提高學(xué)生全面素質(zhì)具有很重要的意義。單片機(jī)原理及應(yīng)用是一門(mén)理論性、實(shí)用性和實(shí)踐性都很強(qiáng)的課程,課程設(shè)計(jì)環(huán)節(jié)應(yīng)占有更加重要的地位。單片機(jī)原理及應(yīng)用課程設(shè)計(jì)的
2、目的是讓學(xué)生在理論學(xué)習(xí)的基礎(chǔ)上,通過(guò)完成一個(gè)涉及MCS-51單片機(jī)多種資源應(yīng)用并具有綜合功能的小系統(tǒng)目標(biāo)板的設(shè)計(jì)與編程應(yīng)用,使學(xué)生不但能將課堂上學(xué)到的理論知識(shí)與實(shí)際應(yīng)用結(jié)合起來(lái),而且能進(jìn)一步加深對(duì)電子電路、電子元器件等知識(shí)的認(rèn)識(shí)與理解,同時(shí)在軟件編程、排錯(cuò)調(diào)試、相關(guān)軟件和儀器設(shè)備的使用技能等方面得到較全面的鍛煉和提高。為今后能夠獨(dú)立進(jìn)行某些單片機(jī)應(yīng)用系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)工作打下一定的基礎(chǔ)。通過(guò)單片機(jī)硬件和軟件設(shè)計(jì)、調(diào)試、整理資料等環(huán)節(jié)的培訓(xùn),使學(xué)生初步掌握工程設(shè)計(jì)方法和組織實(shí)踐的基本技能,逐步熟悉開(kāi)展科學(xué)實(shí)踐的程序和方法。三、課程設(shè)計(jì)內(nèi)容設(shè)計(jì)以89C51單片機(jī)和外圍元器件構(gòu)成的單片機(jī)應(yīng)用系統(tǒng),并完成
3、相應(yīng)的軟硬件調(diào)試。1. 系統(tǒng)方案設(shè)計(jì):綜合運(yùn)用單片機(jī)課程中所學(xué)到的理論知識(shí),學(xué)生根據(jù)所選課題的任務(wù)、要求和條件進(jìn)行總體方案的設(shè)計(jì)。2. 硬件電路設(shè)計(jì):對(duì)方案中以單片機(jī)為核心的電路進(jìn)行設(shè)計(jì)計(jì)算,包括元器件的選擇和電路參數(shù)的計(jì)算,并畫(huà)出總體電路圖。3. 軟件設(shè)計(jì):根據(jù)已設(shè)計(jì)出的軟件系統(tǒng)框圖,用匯編語(yǔ)言或C51編制出各功能模塊的子程序和整機(jī)軟件系統(tǒng)的主程序。4. 調(diào)試:在單片機(jī)周立功實(shí)驗(yàn)箱上進(jìn)行相關(guān)設(shè)計(jì)并調(diào)試。四、課程設(shè)計(jì)要求1. 學(xué)習(xí)DS18B20功能與使用方法;2. 每秒采集一次溫度并在LED上顯示;3. 具有顯示最高與最低溫度的功能;4. 設(shè)計(jì)硬件原理圖;5. 編寫(xiě)程序。五、進(jìn)度安排序號(hào)內(nèi)容天
4、數(shù)1布置任務(wù),熟悉課題要求0.52總體方案確定,硬件電路設(shè)計(jì)1.53軟件編程1.54在周立功實(shí)驗(yàn)箱上調(diào)試25總結(jié),撰寫(xiě)課程設(shè)計(jì)報(bào)告1.5七、課程設(shè)計(jì)報(bào)告內(nèi)容:總結(jié)設(shè)計(jì)過(guò)程,寫(xiě)出設(shè)計(jì)報(bào)告,設(shè)計(jì)報(bào)告具體內(nèi)容要求如下:1課程設(shè)計(jì)的目和設(shè)計(jì)的內(nèi)容。2課程設(shè)計(jì)的要求。3控制系統(tǒng)總框圖及系統(tǒng)工作原理。4控制系統(tǒng)的硬件電路連接圖,電路的原理。 5軟件設(shè)計(jì)流程圖及其說(shuō)明。6電路設(shè)計(jì),軟件編程、調(diào)試中遇到的問(wèn)題及分析解決方法。7實(shí)驗(yàn)結(jié)果及其分析。8體會(huì)。第 二 部 分課程設(shè)計(jì)報(bào)告 目 錄1課題簡(jiǎn)介11.1目的11.2任務(wù)11.3要求12方案設(shè)計(jì)12.1總體設(shè)計(jì)12.2設(shè)計(jì)思路12.3工作原理23硬件電路設(shè)計(jì)23
5、.1主控電路設(shè)計(jì)23.2顯示電路設(shè)計(jì)23.3溫度采集電路設(shè)計(jì)34系統(tǒng)軟件編輯設(shè)計(jì)64.1系統(tǒng)軟件設(shè)計(jì)流程圖64.2單總線軟件設(shè)計(jì)64.3 I2C總線軟件設(shè)計(jì)65實(shí)驗(yàn)與結(jié)果分析85.1系統(tǒng)結(jié)果顯示85.2實(shí)驗(yàn)注意事項(xiàng)86小結(jié)與體會(huì)9參考文獻(xiàn)10附錄105數(shù)字溫度計(jì)的設(shè)計(jì) 1 課題簡(jiǎn)介1.1 目的: 熟練掌握單總線方式器件DS18B20的應(yīng)用,熟悉I2C總線協(xié)議,學(xué)習(xí)I2C器件ZLG7290的使用方法。并能把它們結(jié)合,組成數(shù)字式溫度計(jì)。 1.2 任務(wù): 設(shè)計(jì)一個(gè)數(shù)字溫度計(jì)1.3 要求: 1. 學(xué)習(xí)DS18B20功能與使用方法; 2. 每秒采集一次溫度并在LED上顯示; 3. 具有顯示最高與最低溫度
6、的功能; 4. 設(shè)計(jì)硬件原理圖; 5. 編寫(xiě)程序。2 方案設(shè)計(jì)2.1 總體設(shè)計(jì)MCUAT89C51ZLG7290顯示控制DS18B20溫度采集數(shù)碼管顯示 圖1 系統(tǒng)框圖 2.2 設(shè)計(jì)思路系統(tǒng)在溫度采集時(shí)主要應(yīng)用了DS18B20芯片,該器件經(jīng)過(guò)初始化后單片機(jī)首先進(jìn)行ROM匹配,當(dāng)收到測(cè)溫器件發(fā)回的信號(hào)時(shí)證明該器件正常工作,接著單片機(jī)發(fā)送溫度轉(zhuǎn)換命令進(jìn)行溫度采集,測(cè)溫的精確度很高。設(shè)計(jì)中還應(yīng)用了ZLG7290芯片進(jìn)行數(shù)碼管顯示的驅(qū)動(dòng),一共應(yīng)用了6位數(shù)碼管。是報(bào)警比較判斷溫度值溫度值顯示溫度采集 否 圖2 設(shè)計(jì)思路2.3工作原理 如圖1所示基于單總線和I2C結(jié)合的溫度采集與報(bào)警控制系統(tǒng)框圖。系統(tǒng)利用
7、單片機(jī)做主控制器,驅(qū)動(dòng)基于單總線的溫度傳感器DS18B20和基于I2C總線的ZLG7290數(shù)碼管顯示控制器,溫度傳感器DS18B20負(fù)責(zé)采集實(shí)時(shí)溫度值,ZLG7290作為顯示數(shù)碼管的驅(qū)動(dòng)芯片,當(dāng)采集到的溫度值大于40度或小于10度時(shí),數(shù)碼管進(jìn)行頻閃顯示報(bào)警。單片機(jī)完成對(duì)溫度的檢測(cè),實(shí)現(xiàn)安全溫度內(nèi)正常顯示溫度值,超出設(shè)定的溫度上下限進(jìn)行頻閃報(bào)警。 3 硬件電路設(shè)計(jì)3.1 主控電路設(shè)計(jì)本系統(tǒng)采用AT89C51單片機(jī)作為主控制器。AT89C51是一種帶4K字節(jié)FLASH存儲(chǔ)器的低電壓、高性能CMOS 8位微處理器,是一種帶2K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦
8、除1000次。AT89C51 提供以下標(biāo)準(zhǔn)功能:4k 字節(jié)Flash 閃速存儲(chǔ)器,128字節(jié)內(nèi)部RAM,32 個(gè)I/O 口線,兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。設(shè)計(jì)電路如圖:3.2顯示電路設(shè)計(jì) 顯示電路采用兩只6位共陰LED數(shù)碼管和數(shù)碼管的驅(qū)動(dòng)芯片ZLG7290。3.2.1 四位數(shù)碼管 圖
9、3 數(shù)碼管的外形尺寸圖3 數(shù)碼管的引腳排布注:管腳順序:從數(shù)碼管的正面看,以第一引腳為起點(diǎn),管腳的順序是逆時(shí)針排列的。 A-11 B-7 C-4 D-2 E-1 F-10 G-5 DP-33.2.2 數(shù)碼管的驅(qū)動(dòng)芯片ZLG7290 ZLG7290的核心是一塊ZLG7290B芯片,它采用I2C接口,能直接驅(qū)動(dòng)8位共陰式數(shù)碼管,同時(shí)可掃描管理多達(dá)64只按鍵,實(shí)現(xiàn)人機(jī)對(duì)話的功能資源十分豐富。除具有自動(dòng)消除抖動(dòng)功能外,它還具有段閃爍、段點(diǎn)亮、段熄滅、功能鍵、連擊鍵計(jì)數(shù)等強(qiáng)大功能,并可提供10種數(shù)字和21種字母的譯碼顯示功能,用戶可以直接向顯示緩存寫(xiě)入顯示數(shù)據(jù),而且無(wú)需外接元件即可直接驅(qū)動(dòng)數(shù)碼管,還可擴(kuò)
10、展驅(qū)動(dòng)電壓和電流。此外,ZLG7290B的電路簡(jiǎn)單,使用也很方便。用戶按下某個(gè)鍵時(shí),ZLG7290的INT引腳會(huì)產(chǎn)生一個(gè)低電平的中斷請(qǐng)求信號(hào),讀取鍵值后,中斷信號(hào)就會(huì)自動(dòng)撤銷(xiāo)。正常情況下,微控制器只需要判斷INT引腳就可以得到鍵盤(pán)輸入的信息。微控制器可通過(guò)兩種方式得到用戶的鍵盤(pán)輸入信息。其一是中斷方式,該方式的優(yōu)點(diǎn)是抗干擾能力強(qiáng),缺點(diǎn)是要占用微控制器的一個(gè)外部中斷源。其二是查詢(xún)方式,即通過(guò)不斷查詢(xún)INT引腳來(lái)判斷是否有鍵按下,該方式可以節(jié)省微控制器的一根I/O口線,但是代價(jià)是I2C總線處于頻繁的活動(dòng)狀態(tài),消耗電流多并且不利于抗干擾。由于采用了I2C總線接口,因而用ZLG7290與微控制器設(shè)計(jì)電
11、力儀表的硬件電路連接非常簡(jiǎn)單。它只需要兩根信號(hào)線(一根數(shù)據(jù)線SDA,一根時(shí)鐘信號(hào)線SCL)。但應(yīng)注意進(jìn)行I2C通信的雙方要共地,并應(yīng)用,INT傳遞鍵盤(pán)中斷信號(hào)。微控制器通過(guò)RST可以將ZLG7290復(fù)位。設(shè)計(jì)電路如圖:3.3溫度采集電路設(shè)計(jì) DS18B20是常用的溫度傳感器,具有體積小,硬件開(kāi)銷(xiāo)低,抗干擾能力強(qiáng),精度高的特點(diǎn)。 DS18B20的測(cè)溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器的脈沖輸入。器件中還有一個(gè)計(jì)數(shù)門(mén),當(dāng)計(jì)數(shù)門(mén)打開(kāi)時(shí),DS18B20就對(duì)低溫度
12、系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門(mén)的開(kāi)啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定,每次測(cè)量前,首先將55所對(duì)應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器、溫度寄存器中,計(jì)數(shù)器和溫度寄存器被預(yù)置在55所對(duì)應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器的預(yù)置值減到時(shí),溫度寄存器的值將加,減法計(jì)數(shù)器的預(yù)置將重新被裝入,減法計(jì)數(shù)器重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器計(jì)數(shù)到時(shí),停止溫度寄存器的累加,此時(shí)溫度寄存器中的數(shù)值就是所測(cè)溫度值。其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)器門(mén)仍未關(guān)閉就重復(fù)上述過(guò)程,直到溫度寄存器值大致被測(cè)溫度值。表
13、1一部分溫度對(duì)應(yīng)值表溫度/二進(jìn)制表示十六進(jìn)制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50000 0000 0000 00100008H00000 0000 0000 10000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1
14、001 0000FC90H另外,由于DS18B20單線通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念,因此讀寫(xiě)時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作按協(xié)議進(jìn)行。操作協(xié)議為:初使化DS18B20(發(fā)復(fù)位脈沖)發(fā)ROM功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)據(jù)。3.3.1 DS18B20詳細(xì)引腳功能描述 見(jiàn)下表。 序號(hào)名稱(chēng)引腳功能描述1GND地信號(hào)2DQ數(shù)據(jù)輸入/輸出引腳。開(kāi)漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源。3VDD可選擇的VDD引腳。當(dāng)工作于寄生電源時(shí),此引腳必須接地。3.3.2 通信過(guò)程:(1)主機(jī)拉低單總線至少480us產(chǎn)生復(fù)位脈沖;(2)主機(jī)釋放單總線,進(jìn)入接收模式,釋放時(shí)
15、產(chǎn)生上升沿;(3)單總線器件檢測(cè)到上升沿,延時(shí)15-60us;(4)單總線器件通過(guò)拉低總線60-240us來(lái)產(chǎn)生應(yīng)答脈沖;(5)主機(jī)接受應(yīng)答信號(hào),對(duì)從機(jī)ROM進(jìn)行命令和功能命令操作; 所有讀寫(xiě)時(shí)序至少60us,兩個(gè)獨(dú)立的時(shí)序間至少1us回復(fù)時(shí)間。3.3.3 DS18B20的基本參數(shù) DS18B20的64位ROM的結(jié)構(gòu)開(kāi)始8位是產(chǎn)品類(lèi)型的編號(hào),接著是每個(gè)器件的惟一的序號(hào),共有48位,最后8位是前面56位的CRC檢驗(yàn)碼,這也是多個(gè)DS18B20可以采用一線進(jìn)行通信的原因。溫度報(bào)警觸發(fā)器TH和TL,可通過(guò)軟件寫(xiě)入戶報(bào)警上下限。DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存RAM和一個(gè)非易失性
16、的可電擦除的EERAM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如圖4所示。頭2個(gè)字節(jié)包含測(cè)得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第5個(gè)字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時(shí)寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如圖3所示。低5位一直為1,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式,DS18B20出廠時(shí)該位被設(shè)置為0,用戶要去改動(dòng),R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來(lái)設(shè)置分辨率。溫度 LSB溫度 MSBTH用戶字節(jié)1TL用戶字節(jié)2配置寄存器保留保留保留CRC 圖3 DS
17、18B20字節(jié)定義高速暫存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用來(lái)檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開(kāi)始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1、2字節(jié)。單片機(jī)可以通過(guò)單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在先,高位在后,數(shù)據(jù)格式以0.0625LSB形式表示。當(dāng)符號(hào)位S0時(shí),表示測(cè)得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號(hào)位S1時(shí),表示測(cè)得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制數(shù)值。表2是一部分溫度值對(duì)應(yīng)的二進(jìn)制溫度數(shù)據(jù)。 DS18B
18、20完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比較。若TTH或TTL,則將該器件內(nèi)的報(bào)警標(biāo)志位置位,并對(duì)主機(jī)發(fā)出的報(bào)警搜索命令作出響應(yīng)。因此,可用多只DS18B20同時(shí)測(cè)量溫度并進(jìn)行報(bào)警搜索。在64位ROM的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余檢驗(yàn)碼(CRC)。主機(jī)ROM的前56位來(lái)計(jì)算CRC值,并和存入DS18B20的CRC值作比較,以判斷主機(jī)收到的ROM數(shù)據(jù)是否正確。當(dāng)DS18B20處于寫(xiě)存儲(chǔ)器操作和溫度A/D轉(zhuǎn)換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開(kāi)啟時(shí)間最大為10us。采用寄生電源供電方式時(shí)VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。設(shè)計(jì)電路如圖:4系統(tǒng)軟
19、件編程設(shè)計(jì)4.1 系統(tǒng)軟件設(shè)計(jì)流程圖啟動(dòng)系統(tǒng)初始化初始化跳過(guò)ROM發(fā)出溫度轉(zhuǎn)換命令并讀取溫度值顯示溫度值溫度是否大于40度或者小于10度否是報(bào)警4.2 單總線軟件設(shè)計(jì)系統(tǒng)上電先初始化DS18B20,然后判斷芯片是否存在,對(duì)芯片操作命令進(jìn)行寫(xiě)入,然后出去溫度值,讀取后返回采集到的溫度值。4.3 I2C總線軟件設(shè)計(jì) I2C總線在傳送數(shù)據(jù)過(guò)程中共有三種類(lèi)型信號(hào), 它們分別是:開(kāi)始信號(hào)、結(jié)束信號(hào)和應(yīng)答信號(hào)。 開(kāi)始信號(hào):SCL為高電平時(shí),SDA由高電平向低電平跳變,開(kāi)始傳送數(shù)據(jù)。 結(jié)束信號(hào):SCL為高電平時(shí),SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。 應(yīng)答信號(hào):接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,向發(fā)
20、送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。CPU向受控單元發(fā)出一個(gè)信號(hào)后,等待受控單元發(fā)出一個(gè)應(yīng)答信號(hào),CPU接收到應(yīng)答信號(hào)后,根據(jù)實(shí)際情況作出是否繼續(xù)傳遞信號(hào)的判斷。若未收到應(yīng)答信號(hào),由判斷為受控單元出現(xiàn)故障。 這些信號(hào)中,起始信號(hào)是必需的,結(jié)束信號(hào)和應(yīng)答信號(hào),都可以不要。I2C一幀完整數(shù)據(jù)傳送開(kāi)始開(kāi)始初始化I2C總線參數(shù)初始化DS18B20存在?否Start是寫(xiě)入設(shè)備起始地址找到當(dāng)前地址STOPROM操作命令存儲(chǔ)操作命令是否發(fā)送成功讀取溫度值發(fā)送7位數(shù)據(jù)STOP返回是否發(fā)送成功圖4 DS18B20軟件設(shè)計(jì)框圖發(fā)送其他數(shù)據(jù)或地址I2C一幀完整數(shù)據(jù)傳送完畢 圖5 I2C總線軟件設(shè)計(jì)框圖
21、5 實(shí)驗(yàn)與結(jié)果分析5.1 系統(tǒng)結(jié)果顯示硬件環(huán)境:DP-51PRO.NET單片機(jī)綜合仿真實(shí)驗(yàn)臺(tái)。軟件環(huán)境:PC及Keil等軟件。通過(guò)DS18B20采集溫度后顯示在數(shù)碼管上(2位整數(shù)、4位小數(shù)),可在程序中任意設(shè)定報(bào)警上下限溫度,一旦超過(guò)上下限溫度,數(shù)碼管頻閃發(fā)出報(bào)警,當(dāng)溫度回落,數(shù)碼管頻閃停止。5.2 實(shí)驗(yàn)注意事項(xiàng):1、硬件調(diào)試或運(yùn)行的運(yùn)行的時(shí)候打開(kāi)電源,不要保持電源的常開(kāi)狀態(tài),以免實(shí)驗(yàn)箱運(yùn)行時(shí)間過(guò)長(zhǎng)燒壞。2、Debug時(shí),需關(guān)掉DPflash,否則調(diào)試時(shí)開(kāi)發(fā)環(huán)境報(bào)錯(cuò)。6 小結(jié)與體會(huì)隨著時(shí)代的不斷發(fā)展,科技的不斷進(jìn)步,單片機(jī)在我們的生活和以后的工作中是經(jīng)常用到的,所以學(xué)好它對(duì)我們來(lái)說(shuō)是非常重要的
22、。本次的課程設(shè)計(jì)就是讓我們通過(guò)單片機(jī)來(lái)實(shí)現(xiàn)生活中的某一種功能,分為程序編輯和硬件實(shí)現(xiàn)兩個(gè)方面。我此次的課題是實(shí)現(xiàn)數(shù)字溫度計(jì)的實(shí)現(xiàn)。首先,在拿到課題后,我們需要上網(wǎng)查詢(xún)相關(guān)資料,對(duì)網(wǎng)上資料進(jìn)行整合和對(duì)課設(shè)中用到的器件進(jìn)行了解和學(xué)習(xí)。本次課設(shè)我用到了溫度傳感器DS18B20和數(shù)碼管等器件。在網(wǎng)上查詢(xún)了DS18B20的使用程序,并理解其含義。從網(wǎng)上參考相關(guān)課題的程序在Keil軟件中進(jìn)行運(yùn)行,理解其運(yùn)行各步驟的含義并且借鑒到自己的程序中。在程序編寫(xiě)完畢后,再到試驗(yàn)箱中運(yùn)行看是否能實(shí)現(xiàn)數(shù)字溫度計(jì)的功能。在試驗(yàn)過(guò)程中,要對(duì)器件的引腳熟悉確定后再接入實(shí)驗(yàn)電路中,經(jīng)過(guò)多次實(shí)驗(yàn),最終終于顯示了當(dāng)前的溫度值。在手
23、動(dòng)改寫(xiě)了程序的溫度上下限報(bào)警值后也實(shí)現(xiàn)了頻閃報(bào)警的功能。本次課設(shè)既考驗(yàn)了我們對(duì)相關(guān)軟件的學(xué)習(xí)和應(yīng)用是否到位,又考驗(yàn)了我們的單片機(jī)知識(shí)的掌握程度和動(dòng)手能力。要實(shí)現(xiàn)數(shù)字溫度計(jì)的功能,程序是相當(dāng)復(fù)雜的!在前期編寫(xiě)程序的過(guò)程中,我就遇到了很大的困難。程序很復(fù)雜,要讀懂程序需要耗費(fèi)很長(zhǎng)的時(shí)間,還要對(duì)器件有足夠的了解。比如對(duì)于DS18B20,實(shí)現(xiàn)不同的功能其需要的準(zhǔn)備時(shí)間就不同,所以在程序會(huì)出現(xiàn)很多的空操作來(lái)達(dá)到延時(shí)的目的。我在剛開(kāi)始時(shí)就不是很了解,所以對(duì)于這樣的程序編輯表示很不理解,直到我的組員給我提醒后,我才恍然大悟。所以此次課設(shè)還考驗(yàn)了我的耐心和細(xì)心程度。在一句一句程序的摸索和相關(guān)時(shí)序表的學(xué)習(xí)中,經(jīng)
24、過(guò)兩天的程序理解和編輯,我終于搞懂了程序部分,然后就開(kāi)始運(yùn)用Keil軟件進(jìn)行仿真。先是在試驗(yàn)箱上對(duì)正確的引腳進(jìn)行連接,然后運(yùn)行。剛開(kāi)始時(shí)會(huì)有失誤,比如引腳連接不對(duì)或者有些引腳不知道要連接,經(jīng)過(guò)多次的嘗試,最后終于成功了!我覺(jué)得經(jīng)過(guò)這次課設(shè),我的單片機(jī)知識(shí)更加充實(shí)和穩(wěn)固了。以前對(duì)一些命令因?yàn)槭褂貌欢啵圆粔蚴煜?,?jīng)過(guò)這次課設(shè)也變得熟悉了,還有Keil軟件也能熟練使用了。其次,我對(duì)器件的引腳和使用更加熟悉了。為了實(shí)現(xiàn)相應(yīng)的功能,我把課設(shè)要用到的器件引腳的功能每個(gè)都進(jìn)行了了解,還有相應(yīng)時(shí)序表的學(xué)習(xí)都讓我對(duì)器件的使用更加得心應(yīng)手,而不再是拘泥于書(shū)本的學(xué)習(xí),正所謂實(shí)踐出真知,真是一點(diǎn)不假。還有,這次課
25、設(shè)極大的考驗(yàn)了我的細(xì)心和耐心,在面對(duì)復(fù)雜無(wú)比的程序要一句一句的弄懂其含義和先后功能的實(shí)現(xiàn),還要在一次次的失敗之后不氣餒,重新開(kāi)始一次次的實(shí)驗(yàn)!在最開(kāi)始確實(shí)很折磨人,可當(dāng)你發(fā)現(xiàn)大家都在為各自的任務(wù)而奮斗,不拋棄,不放棄,一次次的實(shí)踐直到成功的到來(lái)。在成功的那一刻,那滿腔的滿足感是無(wú)法言喻的!最后,我要感謝我的老師夏老師和組員袁同學(xué)對(duì)我的幫助!在我遇到困難無(wú)法進(jìn)行下去時(shí),是你們給予了我?guī)椭;蛘呤且痪涑绦虻牟欢?,或者是調(diào)試不出正確結(jié)果,感謝你們耐心的給我講解,讓我在一次次調(diào)試中,最終能取得成功。所以說(shuō)人是群居動(dòng)物,無(wú)論在生活或者工作中,很多時(shí)候都需要和別人的交流和合作來(lái)達(dá)到相應(yīng)的目的,就像這次的課
26、程設(shè)計(jì),如果我遇到了困難而一味自己瞎琢磨,這樣不僅浪費(fèi)了大量時(shí)間和精力,而且還可能得不得正確結(jié)果。所以在遇到自己難以解決的問(wèn)題時(shí),要敢于尋求他人的幫助,互助互惠才是最好的生活方式!我相信經(jīng)過(guò)這次課設(shè),我不僅更加牢固的掌握了單片機(jī)的知識(shí)和和相關(guān)軟件的應(yīng)用,也鍛煉了自己的實(shí)踐能力,相信在未來(lái)的日子里,無(wú)論遭遇失敗或成功,我都會(huì)繼續(xù)進(jìn)步,繼續(xù)成長(zhǎng),為將來(lái)的工作奠定一個(gè)好的基礎(chǔ)!參 考 文 獻(xiàn)1 張毅剛主編,單片機(jī)原理及應(yīng)用,北京:高等教育出版社,20042 陳濤編著,單片機(jī)應(yīng)用及C51程序設(shè)計(jì),北京:機(jī)械工業(yè)出版社,20083 周潤(rùn)景主編,PROTEUS入門(mén)實(shí)用教程,北京:機(jī)械工業(yè)出版社,20074
27、 皮大能主編,單片機(jī)課程設(shè)計(jì)指導(dǎo)書(shū),北京:北京理工大學(xué)出版社,2010附錄;*;設(shè)置DS18B20端口參數(shù);* THI_WARNING EQU 40H TLI_WARNING EQU 41H TEMPER_FLAG EQU 42H ;溫度符號(hào)位數(shù)據(jù)保存區(qū) TEMPER_POINT EQU 43H ;溫度小數(shù)部分?jǐn)?shù)據(jù)保存區(qū) TEMPER EQU 44H ;溫度整數(shù)部分?jǐn)?shù)值保存區(qū) TEMPER_H EQU 45H ;溫度整數(shù)部分高位數(shù)值保存區(qū) TEMPER_L EQU 46H ;溫度整數(shù)部分低位數(shù)值保存區(qū) TI_SHOW EQU 47H ;十進(jìn)制溫度整數(shù)部分?jǐn)?shù)值保存區(qū) T_SAVE EQU 48H
28、 TEMPER_NUM EQU 60H FLAG1 BIT 00H DQ BIT P3.3;*;設(shè)置ZLG7290端口參數(shù);* SDA BIT P3.0 SCL BIT P3.1 WSLA EQU 70H RSLA EQU 71H DISDA EQU 20H DISCON EQU 08H;* ORG 8000H LJMP 8100H;*;初始化部分;* ORG 8100H MOV SP,#60H CLR P3.6 LCALL DELAY SETB P3.6;*;設(shè)置報(bào)警上下限值;* MOV THI_WARNING,#40 MOV TLI_WARNING,#10;*;主程序部分;*LP1: LC
29、ALL GET_TEMPER ;從DS18B20讀取溫度數(shù)據(jù) LCALL TEMPER_COV ;轉(zhuǎn)換讀取的溫度整數(shù)、符號(hào)位和小數(shù)部分?jǐn)?shù)據(jù)并保存 LCALL DATA_PRO ;數(shù)碼管顯示前對(duì)要顯示數(shù)據(jù)的相關(guān)處理 LCALL LEDSHOW ;數(shù)碼管顯示程序 MOV A,TEMPER CJNE A,TLI_WARNING,WAR ;判斷溫度值是否低于報(bào)警下限值,低于則報(bào)警,不低于則判斷WAR: JNC LOOP10 ;是否大于報(bào)警上限值 LCALL TWINKLE SJMP LP1LOOP10: CJNE A,THI_WARNING,WAR1 ;判斷溫度值是否低于報(bào)警下限值,低于則報(bào)警,不低于
30、則跳轉(zhuǎn)WAR1: JC LP2 LCALL TWINKLE SJMP LP1LP2: LCALL NOTWINKLE ;對(duì)ZLG7290寫(xiě)入不閃爍控制字 LJMP LP1;*;獲取DS18B20溫度值子程序;*GET_TEMPER:SETB DQ ; 定時(shí)入口BCD: LCALL INIT_1820 JB FLAG1,S22 LJMP BCD ; 若DS18B20不存在則返回S22: LCALL DELAY1 MOV A,#0CCH ; 跳過(guò)ROM匹配-0CC LCALL WRITE_1820 MOV A,#44H ; 發(fā)出溫度轉(zhuǎn)換命令 LCALL WRITE_1820 LCALL DELAY
31、 CBA: LCALL INIT_1820 JB FLAG1,ABC LJMP CBAABC: LCALL DELAY1 MOV A,#0CCH ; 跳過(guò)ROM匹配 LCALL WRITE_1820 MOV A,#0BEH ; 發(fā)出讀溫度命令 LCALL WRITE_1820 LCALL READ_18200 RET;-寫(xiě)DS18B20的程序WRITE_1820: MOV R2,#8 ;寫(xiě)一個(gè)字節(jié)的數(shù)據(jù) CLR CWR1: CLR DQ MOV R3,#6 DJNZ R3,$ ;延時(shí) RRC A ;帶進(jìn)位的右移 MOV DQ,C MOV R3,#23 DJNZ R3,$ ;延時(shí) SETB DQ
32、 NOP DJNZ R2,WR1 SETB DQ RET;-讀DS18B20的程序,從DS18B20中讀出二個(gè)字節(jié)的數(shù)據(jù)READ_18200: MOV R4,#2 ;讀出兩個(gè)字節(jié)的數(shù)據(jù) MOV R1,#46HRE00:MOV R2,#8RE01:CLR CSETB DQNOPCLR DQNOPNOP ;空操作延時(shí)以達(dá)到DS18B20可以讀的狀態(tài)SETB DQMOV R3,#2DJNZ R3,$MOV C,DQMOV R3,#23DJNZ R3,$RRC A DJNZ R2,RE01MOV R1,ADEC R1DJNZ R4,RE00RET;*;DS18B20溫度值提取整數(shù)部分、符號(hào)位和小數(shù)部分
33、的子程序;*TEMPER_COV:MOV A,#0F0H ;數(shù)據(jù)省略低四位ANL A,TEMPER_LSWAP A ;交換高低半字節(jié)的數(shù)據(jù)MOV TEMPER_NUM,AMOV A,TEMPER_HANL A,#07H ;只保留高字節(jié)中的低三位數(shù)據(jù)SWAP AADD A,TEMPER_NUMMOV TEMPER_NUM,AMOV TEMPER,TEMPER_NUMMOV A,#0FH ;只保留低四位數(shù)據(jù)ANL A,TEMPER_LSWAP AMOV TEMPER_POINT,AMOV A,TEMPER_HANL A,#08H SWAP AMOV TEMPER_FLAG,ARET;整數(shù)和小數(shù)的位
34、偏移數(shù)據(jù)存儲(chǔ);*;30H37H為數(shù)據(jù)存儲(chǔ)區(qū),其中30H-33H為小數(shù)值;34H-35H為整數(shù)值,36H為百位值,37H為符號(hào)位值;*DATA_PRO: MOV 37H,#0AH MOV A,TEMPER_FLAG ;把標(biāo)志位的值給A JZ POSITIVE MOV A,TEMPER CPL A ANL A,#7FH ;保留低7位 ADD A,#01H MOV TEMPER,A MOV 37H,#0BHPOSITIVE: MOV A,TEMPER CJNE A,64H,SETHUNDREDBIT ;條件轉(zhuǎn)移SETHUNDREDBIT: JC SETHUNDREDBIT1SUBB A,#64HMO
35、V TEMPER,A MOV 36H,#01H SJMP SET1SETHUNDREDBIT1: MOV 36H,#00HSET1: MOV A,TEMPER MOV B,#10 DIV AB ;A除以B,商存放在A中,余數(shù)存放在B中 MOV 34H,B MOV 35H,A MOV A,TEMPER_POINT CLR C RLC A ;數(shù)據(jù)左移 SWAP A RR A ;不帶進(jìn)位的右移 JNZ POINT1 ;不為0則跳轉(zhuǎn)到POINT1 MOV 30H,#00H MOV 31H,#00H MOV 32H,#00H MOV 33H,#00H SJMP SHOW POINT1: DEC A ;小
36、數(shù)數(shù)據(jù)的輸入 JNZ POINT2 MOV 30H,#05H ;堆棧區(qū)數(shù)據(jù)不斷修改 MOV 31H,#02H MOV 32H,#06H MOV 33H,#00H SJMP SHOWPOINT2: DEC A JNZ POINT3 MOV 30H,#00H MOV 31H,#05H MOV 32H,#02H MOV 33H,#01H SJMP SHOWPOINT3: DEC A JNZ POINT4 MOV 30H,#05H MOV 31H,#07H MOV 32H,#08H MOV 33H,#01H SJMP SHOWPOINT4: DEC A JNZ POINT5 MOV 30H,#00H
37、MOV 31H,#00H MOV 32H,#05H MOV 33H,#02H SJMP SHOWPOINT5: DEC A JNZ POINT6 MOV 30H,#05H MOV 31H,#02H MOV 32H,#06H MOV 33H,#00H SJMP SHOWPOINT6: DEC A JNZ POINT7 MOV 30H,#00H MOV 31H,#05H MOV 32H,#07H MOV 33H,#03H SJMP SHOWPOINT7: MOV 30H,#05H MOV 31H,#07H MOV 32H,#03H MOV 33H,#04HSHOW: JNC SHOW1 MOV A
38、,33H ADD A,#05H MOV 33H,ASHOW1: RET ;*;ZLG7290數(shù)據(jù)顯示部分子程序;* LEDSHOW: PUSH 00H ;堆棧 PUSH 01H PUSH 02H PUSH 03H PUSH 07H MOV DPTR,#LEDSEG CLR A MOV R7,#08H MOV R0,#20H MOV R1,#30HLOOP1: MOV A,R1 MOVC A,A+DPTR ;查表依次輸入 MOV R0,A INC R1 INC R0 DJNZ R7,LOOP1 MOV A,24H ADD A,#01H MOV 24H,ALOOP: MOV R7,#08H MOV R0,#20H MOV R2,#10H MOV R3,#WSLA LCALL WRNBYT LCALL DELAY0 POP 07H POP 03H POP 02H POP 01H POP 00H RET ;* ;延時(shí)子程序DELAY0:PUSH 00H PUSH 01H MOV R0,#00HDELAY2:MOV R1,#00H DJNZ R1,
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年質(zhì)子交換膜燃料電池(REMFC)發(fā)電裝置項(xiàng)目建議書(shū)
- 第11課《社會(huì)觀察·活動(dòng)二:關(guān)注社區(qū)安全讓生活更精彩》 教學(xué)設(shè)計(jì) 2023-2024學(xué)年粵教版《綜合實(shí)踐活動(dòng)》七年級(jí)下冊(cè)
- 2025年耐酸低熔玻璃項(xiàng)目建議書(shū)
- 小學(xué)信息技術(shù)六年級(jí)上冊(cè)第9課《大氣污染》教學(xué)設(shè)計(jì)
- 第二單元《探秘物聯(lián)網(wǎng)》第7課 傳感器的應(yīng)用 教學(xué)設(shè)計(jì) 2023-2024學(xué)年浙教版(2023)初中信息技術(shù)七年級(jí)下冊(cè)
- 側(cè)面下手發(fā)球 教學(xué)設(shè)計(jì)-2023-2024學(xué)年高一上學(xué)期體育與健康人教版必修第一冊(cè)
- 第四單元《人工智能初步》《第 1 課時(shí) 初識(shí)字符識(shí)別技術(shù)》教學(xué)設(shè)計(jì) 2023-2024學(xué)年滬科版(2019)高中信息技術(shù)必修1
- 第三章第三節(jié) 海陸變遷教學(xué)設(shè)計(jì) 第一課時(shí) -2024-2025學(xué)年湘教版(2024) 七年級(jí)上冊(cè)地理
- 第3章數(shù)據(jù)結(jié)構(gòu)基本類(lèi)型3.1線性表-高中教學(xué)同步《信息技術(shù)-數(shù)據(jù)與數(shù)據(jù)結(jié)構(gòu)》教學(xué)設(shè)計(jì)(人教-中圖版2019)
- Unit 6 Useful numbers (Period 1)(教學(xué)設(shè)計(jì))-2024-2025學(xué)年人教PEP版(2024)英語(yǔ)三年級(jí)上冊(cè)
- 《紅樓夢(mèng)講稿》PPT課件
- DB33∕T 628.1-2021 交通建設(shè)工程工程量清單計(jì)價(jià)規(guī)范 第1部分:公路工程
- 三年級(jí)下冊(cè)小學(xué)科學(xué)活動(dòng)手冊(cè)答案
- 吉祥喜金剛現(xiàn)證中品事業(yè)六支妙嚴(yán)(節(jié)錄)
- 國(guó)民中小學(xué)九年一貫課程綱要語(yǔ)文學(xué)習(xí)領(lǐng)域(國(guó)語(yǔ)文)
- 最全的人教初中數(shù)學(xué)常用概念、公式和定理
- 橋面結(jié)構(gòu)現(xiàn)澆部分施工方案
- 人教部編版四年級(jí)語(yǔ)文下冊(cè)《第1課 古詩(shī)詞三首》教學(xué)課件PPT小學(xué)優(yōu)秀公開(kāi)課
- 紙箱理論抗壓強(qiáng)度、邊壓強(qiáng)度、耐破強(qiáng)度的計(jì)算
- 周收支統(tǒng)計(jì)報(bào)表excel模板
- 海管配重基礎(chǔ)資料ppt課件
評(píng)論
0/150
提交評(píng)論