




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14目錄目錄1 緒論 .11.1 課題開發(fā)背景及意義.11.2 主要內(nèi)容及設(shè)計要求.12 硬件系統(tǒng)設(shè)計 .22.1 系統(tǒng)設(shè)計框圖.22.2 電源電路.22.3 系統(tǒng)硬件詳細(xì)設(shè)計圖.32.4 各芯片介紹.42.4.1 單片機 AT89C51 .42.4.2 DS18B20 簡介.52.4.3 SHT15 簡介.92.5 各功能模塊電路的設(shè)計.112.5.1 溫度測量電路 .112.5.2 濕度測量電路 .123 系統(tǒng)軟件設(shè)計 .133.1 系統(tǒng)功能模塊圖及各模塊介紹.133.1.1 溫度獲取模塊 .133.1.2 濕度獲取模塊 .163.1.3 LCD 顯
2、示控制模塊 .183.2 主程序流程圖.204 硬件電路和軟件系統(tǒng)的調(diào)試 .224.1 印制電路板的設(shè)計與制作.224.2 系統(tǒng)軟件調(diào)試.255 結(jié)論 .27參考文獻 .28致謝 .29鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14附錄 1 系統(tǒng)印制電路板 .30附錄 2 程序源代碼 .31鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14摘 要溫度和濕度的測量在工業(yè)、農(nóng)業(yè)、國防等行業(yè)有著廣泛的應(yīng)用。使用單片機技術(shù)的溫度和濕度測量計有體積小,使用性強等優(yōu)點,在本設(shè)計中對 LCD 數(shù)字式溫度濕度測量計進行了分析設(shè)計。本論文針對所使用的 AT89C51 單片機的性能和使用做了比較詳細(xì)的介紹,對本系統(tǒng)所使用
3、的溫度芯片 DS18B20 和濕度芯片 SHT15 做了性能方面的簡單說明。重點對硬件、軟件的組成進行了劃分、模塊化設(shè)計。對各部分的電路一一進行了介紹分析,最終實現(xiàn)了該系統(tǒng)的硬件設(shè)計,繪制了電路原理圖、印制電路板圖。在軟件設(shè)計方面繪制了各功能模塊的流程圖,并對需要實現(xiàn)的功能根據(jù)設(shè)計要求經(jīng)過反復(fù)的模擬運行、調(diào)試、修改簡化,得出一套完整的軟件系統(tǒng)。關(guān)鍵詞:關(guān)鍵詞:單片機 AT89C51、溫度傳感器 DS18B20、濕度傳感器 SHT15、液晶顯示模塊 LCD1602鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14AbstractThe test of temperature and moisture
4、has been widely used in industry, agriculture, National defense and so on. By the advantage of small volume and high reliance of Single Chip Micyoco temperature and moisture meter, the article has analyzed and designed the digital temperature and moisture meter in this designing.This system made det
5、ailed introduction about performance and development situation of Single Chip microcomputer AT89C51, and made simple explanation about the temperature chip DS18B20 and humidity chip SHT15. It has mainly analyzed and designed the composition of hardware and software carried on the item, modulation gr
6、adually. This system has introduced part of the electric circuit step by step, and has finally realized the hardware electric circuit of this system. It has protracted the electric circuit principle diagram, the printed circuit board chart. According to the function that must be realized in designin
7、g, by repeated simulation run and debugging, it has revised and simplified the software system, and finally has formed a set of complete program.Key words: Microcomputer AT89C51; Temperature Sensor DS18B20; Humidity Sensor SHT15; Liquid-Crystal Display LCD1602鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計141 緒論1.1 課題開發(fā)背景及意義在
8、我們?nèi)粘I詈蜕a(chǎn)中,經(jīng)常要測量環(huán)境的溫、濕度,傳統(tǒng)的測量方式通常采用水銀溫度計或者干濕球濕度計查算法,存在著誤差大,操作使用很不便等問題,采用工業(yè)級測量儀表價格非常昂貴。使用 AT89C51 和 DS18B20、SHT15 等組成的 LCD 數(shù)字式溫度濕度測量計價格便宜和精度高等優(yōu)點。1.2 主要內(nèi)容及設(shè)計要求(1)熟悉的掌握單片機中斷,定時器應(yīng)用及各并行口的應(yīng)用;(2)熟悉掌握單片機的濕度測量方法;(3)利用溫度傳感芯片 DS18B20 及單片機芯片 89C51 完成對溫度的檢測,利用SHT15 完成對濕度測量;(4)測量溫度的范圍:-10100精確度0.1,測量濕度速度:1S。2 硬件系
9、統(tǒng)設(shè)計2.1 系統(tǒng)設(shè)計框圖系統(tǒng)硬件設(shè)計的原理框圖如圖 1 所示:AT89C51單片機 系統(tǒng)溫度讀取時鐘濕度讀取電源輸入顯示電路圖圖 1 溫度濕度測量系統(tǒng)框圖溫度濕度測量系統(tǒng)框圖鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14由圖 1 可以看出該系統(tǒng)的原理,溫度和濕度采集電路通過采集信號經(jīng)單片機處理后再送至顯示電路顯示1。2.2 系統(tǒng)硬件詳細(xì)設(shè)計圖在圖2所示電路中,AT89C51為主控制器,P0口和液晶顯示器LCD1602相連,在AT89C51的控制下,由DS18B20、SHT15完成對溫濕度信號的采集,由P0口輸出送至液晶顯示模塊LCD1602顯示6。琴鍵開關(guān)S1按下,使得RST端為高電平,AT8
10、9C51被復(fù)位。該電路采用的主要器件有:LCD1602為液晶顯示器,顯示當(dāng)前的溫度和濕度數(shù)據(jù)及系統(tǒng)時鐘2;AT89C51控制信號的采集過程和實現(xiàn)系統(tǒng)的時鐘顯示;DS18B20是溫度傳感器,檢測并完成溫度的轉(zhuǎn)換;SHT15是溫度濕度傳感器,其主要完成溫度與濕度的轉(zhuǎn)換及測量。系統(tǒng)整機電路圖如圖3所示:P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST /VPD9P3.0/RxD10P3.1/TxD11P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P3.6/WR16P3.7/RD17XTAL 218XTAL 119GND20P2.
11、021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE /PROG30EA/Vpp31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC40AT89C5189C5112345678910111213141516P1Header 16Y112MVCCVCCC230pC330p331122S10DS18B20+C110uR210kS2SW-PB12J1CON2VCCVCCVCCR110k10kS1SW-PBVCCVCCVCC11223344J2SHT 15VCC圖圖2 數(shù)字溫度濕度測量計整機電
12、路數(shù)字溫度濕度測量計整機電路鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14在圖2所示電路中,DS18B20作為溫度采集電路,它輸出為數(shù)字信號,可以很大程度的縮減外圍電路,從而使得電路變得更加的簡單,SHT15是溫濕度采集電路3,也是數(shù)字輸出,這樣就把整個電路比較簡單、明了,同時也節(jié)約了成本。2.3 各芯片介紹2.3.1 單片機 AT89C51 AT89C51是一個帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS8位微處理器。單片機的可擦除只讀存儲器可以反復(fù)擦除一百次,該器件
13、使用ATMEL高密度非易失存儲器制造技術(shù)制造,和工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳兼容。將多功能8位CPU和閃爍存儲器組合于單個芯片中,ATMEL的AT89C51是一種高效的微控制器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)的MCS-51指令系統(tǒng),片內(nèi)置有通用的8位中央處理器和Flash存儲單元,內(nèi)置功能非常強大的微型計算機的AT89C51提供了比較高性價比的解決方案。AT89C51單片機提供了一種靈活性高且價廉的方案4為很多的嵌入式控制系統(tǒng)。AT89C51元件的圖形如圖4所示:圖圖3 AT89C51的引腳排列圖的引腳排列圖管腳說明:鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢
14、業(yè)設(shè)計14(1)電源部分:VCC:供電電壓GND:接地(2)晶振部分:XTAL1:內(nèi)部時鐘工作電路的輸入及反向振蕩放大器的輸入XTAL2:來自反向振蕩器的輸出(3)接口電路部分:P0口:P0口是一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫入1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它被定義為數(shù)據(jù)/地址的第八位。當(dāng)FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高,在FIASH編程時,P0 口作為原碼輸入口。P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器可接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用
15、作輸入;P1口被外部下拉到低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入,作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)是由于上拉的緣故。(4)復(fù)位部分:RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,需要保持RST腳兩個機器周期的高電平時間7。2.3.2 DS18B20 簡介測溫元件是采用新型的溫度傳感器DS18B20,DS18B20是由Dallas半導(dǎo)體公司生產(chǎn)的“一線總線”接口的溫度傳感器。一線總
16、線結(jié)構(gòu)有簡潔、經(jīng)濟的特點,可以使用戶輕松地組建傳感器網(wǎng)絡(luò),為測量系統(tǒng)的構(gòu)建引入全新概念,DS18B20的測量溫度的范圍是-55到+125,在-10+85范圍內(nèi),精度是0.0625,現(xiàn)場溫度可直接由“一線總線”以數(shù)字方式傳輸,很大程度上提高了系統(tǒng)的抗干擾性。DS18B20適合于惡劣環(huán)境的實地溫度測量,如環(huán)境控制、設(shè)備、過程控制、測溫類消費電子產(chǎn)品等,工作在3V5.5V的電壓范圍,采用多種封裝形式,從而讓系統(tǒng)設(shè)計更加靈活、方便,設(shè)置分辨率以及用戶鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14設(shè)定的報警溫度存儲在EEPROM中,掉電后依然保存5。DS18B20 的內(nèi)部結(jié)構(gòu)如圖 4 所示:圖圖 4 DS
17、18B20 內(nèi)部結(jié)構(gòu)圖內(nèi)部結(jié)構(gòu)圖DS18B20 主要是由 4 部分組成:64 位 ROM、溫度傳感器、非易失性溫度報警觸發(fā)器 TH 與 TL、配置寄存器5。DS18B20 的封裝形式及引腳排列如圖 5 所示:圖圖 5 DS18B20 的引腳排列圖的引腳排列圖DS18B20 有 4 個主要的數(shù)據(jù)部件:(1)光刻 ROM 中的 64 位序列號是由出廠前被光刻好的,它可以看作為該 DS18B20的地址序列碼。64 位光刻 ROM 的排列為:開始 8 位(28H)是產(chǎn)品類型標(biāo)號,接著的鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計1448 位是該 DS18B20 自身序列號,最終的 8 位是前面 56 位的
18、循環(huán)冗余校驗碼(CRC=X8+X5+X4+1) 。光刻 ROM 的作用使每一個 DS18B20 都各不相同,這樣可以實現(xiàn)一根總線上掛接多個 DS18B20 的目的。(2)DS18B20 中的溫度傳感器可以完成對溫度的測量,以 12 位轉(zhuǎn)化為例:用 16 位符號擴展的二進制補碼讀數(shù)的形式提供,以 0.0625/LSB 形式表達,S 為符號位。其中GND是電源地;DQ是數(shù)字信號輸入/輸出端;VDD是外接供電電源輸入端(采用寄生電源供電方式時接地)。表表1 DS18B20溫度數(shù)據(jù)表溫度數(shù)據(jù)表TEMPERATUREDIGITAL OUTPUT(Binary)DIGITAL OUTPUT(Hex)+12
19、50000 0111 1101 000007D0h+850000 0101 0101 00000550h+25.06250000 0001 1001 00010191h+10.1250000 0000 1010 001000A2h+0.50000 0000 0000 10000008h00000 0000 0000 00000000h-0.51111 1111 1111 1000FFF8h-10.1251111 1111 0101 1110FF5Eh-25.06251111 1110 0110 1111FF6Eh-551111 1100 1001 0000FC90h(3)DS18B20溫度傳感
20、器的存儲器DS18B20溫度傳感器的內(nèi)部存儲器由一個高速暫存RAM與一個非易失性的可電擦除的EEPRAM組成,后者存放高溫度和低溫度觸發(fā)器TH、TL和結(jié)構(gòu)寄存器。(4)配置寄存器該字節(jié)各位的意義如下:表表2 配置寄存器結(jié)構(gòu)配置寄存器結(jié)構(gòu)TMR1R011111鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14低五位一直是1,TM為測試模式位,用于設(shè)置DS18B20在工作模式還是在測試模式,在DS18B20出廠時該位被設(shè)置0,用戶不要去改動。R1和R0用于設(shè)置分辨率,如下表所示(DS18B20出廠時被設(shè)置為12位): 表表3 分辨率設(shè)置分辨率設(shè)置R1R0分辨率分辨率溫度最大轉(zhuǎn)換時間溫度最大轉(zhuǎn)換時間009
21、位93.75ms0110位187.5ms1011位375ms1112位750msDS18B20采用單總線工作方式,因為所有信號(控制和數(shù)據(jù))都通過單總線傳輸,因此總線的時序邏輯必須特別嚴(yán)格,其工作時序如圖6所示8:圖圖6 DS18B20工作時序工作時序鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計142.4.3 SHT15 簡介SHT15型傳感器為單片、多用途的智能化傳感器,其中不僅包含基于濕敏電容器的微型相對濕度傳感器和基于帶隙電路的微型溫度傳感器,而且還有14位的A/D轉(zhuǎn)換器和2線串行接口。能輸出經(jīng)過校準(zhǔn)的相對濕度和溫度的串行數(shù)據(jù),所以系統(tǒng)中不再使用傳統(tǒng)設(shè)計需要的多路轉(zhuǎn)換開關(guān)、A/D轉(zhuǎn)換器及信號
22、調(diào)理電路,系統(tǒng)結(jié)構(gòu)比較緊湊和簡單,SHTl5能在同一位置測量相對濕度和溫度。它的內(nèi)部結(jié)構(gòu)如圖8所示:圖圖 7 SHT15 內(nèi)部結(jié)構(gòu)圖內(nèi)部結(jié)構(gòu)圖SHT15 的引腳比較少,使用方便,其引腳排列如圖九所示。SHT15 型智能傳感器的相對濕度測量范圍是 0100%。分辨率達 0.03%,最高精度為2%RH,溫度測量范圍是-40+123.8,分辨率為 0.1。電源電壓范圍是+2.5V+5.5V,響應(yīng)時間小于 3s。引腳功能如表 4 所示:鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14圖圖 8 SHT15 引腳排列圖引腳排列圖表表 4 SHT15 引腳功能表引腳功能表引腳號引腳名稱功 能1GND接地端2DA
23、TA串行數(shù)據(jù)輸入/輸出端3SCK串行時鐘輸入端4VDD接電源端5,6,7,8NC不連接采用溫濕度傳感器 SHT15,SHT15 傳感器是一款由多個傳感器模塊組成的單片全校準(zhǔn)數(shù)字輸出相對濕度的傳感器。它采用了特有的專業(yè)級 CMOS 技術(shù),保證了極高的可靠性和卓越的長期穩(wěn)定性。整個芯片包括校準(zhǔn)的相對溫度和濕度傳感器。它們與 1 個14 位的 A/D 轉(zhuǎn)換器相連;此外還有一個 I2C 總線串行接口電路。 每一個傳感器都是在極為精確的濕度室中進行校準(zhǔn)。校準(zhǔn)系數(shù)預(yù)先存放在 OTP 內(nèi)存中。在測量校準(zhǔn)的過程中都要用到這些系數(shù)9。其特點如下:電源引腳SHTxx 的供電電壓為 2.45.5V。串行接口 (兩線
24、雙向)SHTxx 應(yīng)用的的串行接口技術(shù),在傳感器信號讀取及電源損耗方面都做了優(yōu)化處理;但與 I2C 接口不兼容。串行數(shù)據(jù)(DATA)DATA 三態(tài)門用于數(shù)據(jù)的讀取。DATA 在 SCK 時鐘下降沿之后改變狀態(tài),并僅在SCK 時鐘上升沿有效。數(shù)據(jù)傳輸期間,在 SCK 時鐘高電平時,DATA 必須保持穩(wěn)定。為避免信號沖突,微處理器應(yīng)驅(qū)動 DATA 在低電平。需要一個外部的上拉電阻(例如:10k)將信號提拉至高電平。上拉電阻通常已包含在微處理器的 I/O 電路中。測量時序(RH 和 T)發(fā)布一組測量命令后,控制器要等待測量結(jié)束。這個過程需要大約 11/55/210ms,分別對應(yīng) 8/12/14bit
25、 測量。確切的時間隨內(nèi)部晶振速度,最多有15%變化。SHTxx 通過下拉 DATA 至低電平,表示測量的結(jié)束。控制器在觸發(fā) SCK 時前,必須等待這個“數(shù)據(jù)備妥”信號。接著傳輸 2 個字節(jié)的測量數(shù)據(jù)和 1 個字節(jié)的 CRC 奇偶校驗。uC 需要通過下拉 DATA 為低電平,以確認(rèn)每個字節(jié)。鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14所有的數(shù)據(jù)從 MSB 開始,右值有效(例如:對于 12bit 數(shù)據(jù),從第 5 個 SCK 時鐘起算作 MSB;而對于 8bit 數(shù)據(jù),首字節(jié)則無意義) 。用 CRC 數(shù)據(jù)的確認(rèn)位,表明通訊結(jié)束。如果不使用 CRC-8 校驗,控制器可以在測量值 LSB 后,通過保持確
26、認(rèn)位 ack 高電平,來中止通訊。在測量和通訊結(jié)束后,SHTxx 自動轉(zhuǎn)入休眠模式5。圖圖 9 SHT15 數(shù)字式溫濕度傳感器的性能指標(biāo)數(shù)字式溫濕度傳感器的性能指標(biāo)2.5 各功能模塊電路的設(shè)計2.5.1 溫度測量電路溫度測量電路如圖 11 所示:鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST/VPD9P3.0/RxD10P3.1/TxD11P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P3.6/WR16P3.7/RD17XT AL 218XT AL 119GN D20P2.02
27、1P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29AL E/PROG30EA /Vpp31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC40AT 89C5189C51Y112MVCCC230pC330p331122S10DS18B20VCCVCC圖圖 10 溫度檢測電路溫度檢測電路2.5.2 濕度測量電路濕度測量電路的設(shè)計如圖 11 所示:圖圖 11 濕度檢測電路濕度檢測電路鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14N3 系統(tǒng)軟件設(shè)計3.1 系統(tǒng)功能模塊圖及各模塊介紹3.1.1 溫度獲取模
28、塊溫度顯示模塊程序流程圖如圖 12 所示:圖圖 12 溫度測量流程圖溫度測量流程圖18B20 溫度測量部分程序如下10:void delays(uint i)while(i-);/初始化函數(shù)void Init_DS18B20(void)unsigned char x=0;DQ = 1; /DQ 復(fù)位delays(9); /稍做延時DQ = 0; /單片機將 DQ 拉低delays(55); /精確延時 511usDQ = 1; /拉高總線delays(6); /延時 70usx=DQ; /稍做延時后 如果 x=0 則初始化成功 x=1 則初始化失敗 while(x); delays(48);
29、/讀一個字節(jié)檢測 DS18B20存在?開始初始化 DS18B20讀 DS18B20 的序列號發(fā)送跳過 ROM 指令溫度轉(zhuǎn)換I=1,等待DS18B20 復(fù)位發(fā)送 DS18B20 編碼讀取溫度數(shù)據(jù)Y鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14uchar ReadOneChar(void)uchar i=0;uchar dat = 0;for (i=8;i0;i-)DQ = 0; / 給脈沖信號dat=1; i+;i+;i+; i-;i-;i-;DQ = 1; / 接收信號if(DQ)dat|=0 x80;delays(5);return(dat);/寫一個字節(jié)void WriteOneChar(u
30、nsigned char dat)unsigned char i=0;for (i=8; i0; i-)DQ = 0;DQ = dat&0 x01;delays(3);DQ = 1;dat=1; /delays(4);鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14/讀取溫度void ReadTemperature(void)uchar a=0;uchar b=0;uint t=0;Init_DS18B20();WriteOneChar(0 xCC); / 跳過讀序號列號的操作WriteOneChar(0 x44); / 啟動溫度轉(zhuǎn)換Init_DS18B20();WriteOneChar(0 xC
31、C); /跳過讀序號列號的操作WriteOneChar(0 xBE); /讀取溫度寄存器等(共可讀 9 個寄存器) 前兩個就是溫度a=ReadOneChar();b=ReadOneChar();t=b;t4;TempDec=CurrentTempValue/10;Temp1bit=CurrentTempValue%10;CurrentTempValue=(int)(t*0.625); TempDec=CurrentTempValue/100; Temp1bit=(CurrentTempValue/10)%10;TempDot= CurrentTempValue%10;DisplayArray2
32、=TempDec;DisplayArray1=Temp1bit; DisplayArray0=TempDot;3.1.2 濕度獲取模塊鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14濕度測量部分程序流程圖如圖 13 所示11:圖圖 13 濕度測量部分程序流程圖濕度測量部分程序流程圖其關(guān)鍵部分源代碼如下:char s_read_byte(unsigned char ack) unsigned char i,val=0; DATA=1; for (i=0 x80;i0;i/=2) SCK=1; if (DATA) val=(val | i); SCK=0; DATA=!ack; SCK=1; _nop
33、_();_nop_();_nop_(); SCK=0; DATA=1; return val; DATA=1; SCK=0; _nop_(); SCK=1; _nop_(); DATA=0; _nop_(); SCK=0; _nop_();_nop_();_nop_();開始初始化 SHT15讀 SHT15 的序列號發(fā)送跳過 ROM 指令濕度轉(zhuǎn)換J=1,等待SHT15 復(fù)位發(fā)送 SHT15 編碼檢測 SHT15存在?讀取濕度數(shù)據(jù)YN鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14 SCK=1; _nop_(); DATA=1; _nop_(); SCK=0;3.1.3 LCD 顯示控制模塊顯示部分
34、程序流程圖如圖 14 所示:圖圖 14 顯示部分程序流程圖顯示部分程序流程圖顯示部分程序主要包括個三方面的操作:(1)LCD 的初始化void lcd_init() lcd_wcmd(0 x38); /設(shè)置顯示模式:delay(2);/延時 2 秒lcd_wcmd(0 x08); /顯示開/關(guān)設(shè)置 delay(1);lcd_wcmd(0 x01); /清除 LCD 的顯示內(nèi)容delay(1);lcd_wcmd(0 x06); /文字不動,光標(biāo)自動右移 delay(1);lcd_wcmd(0 x0c); /顯示器開、光標(biāo)關(guān)、光標(biāo)不允許閃爍delay(1);(2)寫指令操作,主要完成對 LCD 顯
35、示模式,位置等到處理操作,其主要程序?qū)崿F(xiàn)如下:void lcd_write_command(uchar command)/(命令,是否等待閑)初始化寫指令函數(shù)寫數(shù)據(jù)到液晶初始化液晶體顯示返回LCD 忙?YN鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14 while(wait_enable(); RS=0; RW=0; delay(5); EN=0; P0=command; EN=1; EN=0;(3)寫數(shù)據(jù)到 LCD,其主要源代碼如下:void lcd_write_data(uchar char_data) while(wait_enable(); RS = 1; RW = 0; EN = 0;
36、 P0 = char_data; EN = 1; delay(1); EN = 0;3.2 主程序流程圖鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14初始化單片機開始初始化 DS18B20初始化 SHT15初始化 LCD1602讀取溫度數(shù)據(jù)讀取濕度數(shù)據(jù)顯示返回圖圖 15 系統(tǒng)主程序流程圖系統(tǒng)主程序流程圖鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計144 硬件電路和軟件系統(tǒng)的調(diào)試4.1 印制電路板的設(shè)計與制作在原理圖做好了之后,單擊 Design 選擇創(chuàng)建網(wǎng)絡(luò)表,來生成網(wǎng)絡(luò)表,如圖 16 所示:圖圖 16 生成網(wǎng)絡(luò)表生成網(wǎng)絡(luò)表圖圖 17 在在 PCB 中調(diào)入網(wǎng)絡(luò)表中調(diào)入網(wǎng)絡(luò)表在打開的 PCB 板中單擊
37、 Design 菜單下的網(wǎng)絡(luò)表,導(dǎo)入網(wǎng)絡(luò)表,如圖 17 所示。當(dāng)導(dǎo)鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14入網(wǎng)絡(luò)表之后發(fā)現(xiàn)有很多錯誤,原來是原理圖中元件的封裝設(shè)置有問題,所以我就把原理圖中的封裝從新設(shè)定并改正其中的錯誤之后,就可以通過了。其中開始時錯誤比較多,如下面圖中所示,最后全部更正之后 Execute 在 PCB 板中將原理圖中的電路導(dǎo)入到 PCB板中,然后將各元件的位置做一定的調(diào)整6。圖圖 18 PCB 中導(dǎo)入網(wǎng)絡(luò)表中導(dǎo)入網(wǎng)絡(luò)表(1)圖圖 19 設(shè)定布線規(guī)則設(shè)定布線規(guī)則在 PCB 板中畫適當(dāng)?shù)囊粋€區(qū)域,將元件拖放到適當(dāng)?shù)奈恢?,然后點擊 Design 菜單鄭州大學(xué)西亞斯國際學(xué)院自動化
38、專業(yè)畢業(yè)設(shè)計14下的規(guī)則,在規(guī)則中將 Routing 中的 Routing Layers Rule 面板中的 Toolaver 設(shè)定為 Not Used,設(shè)定為單層布線。然后再在 Routing Layers Rule 面板中的 Width Constraint 的線寬設(shè)定成如下面圖示的寬度,再添加一個電源線和一個地線。并將其寬度設(shè)定好。圖圖 20 設(shè)定單層布線設(shè)定單層布線圖圖 21 設(shè)定線寬設(shè)定線寬鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14設(shè)定完成之后,點擊 Auto Route 自動布線,選中 All,在彈出的方框中選擇 Route All 自動布線。如圖 22 所示:圖圖 23 自動布
39、線自動布線4.2 系統(tǒng)軟件調(diào)試 軟件編譯完成以后利用 Keil uVision3 平臺對軟件進行編譯,結(jié)果如圖 23 所示:鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14圖圖 23 軟件編譯過程軟件編譯過程程序執(zhí)行及觀測如圖 24 所示:鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14圖圖 24 軟件仿真執(zhí)行圖軟件仿真執(zhí)行圖鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計145 結(jié)論本設(shè)計實現(xiàn)的數(shù)字式溫度濕度測量計電路比較簡單,有體積小、可靠性高、測量精度高、價格便宜等優(yōu)點。在完成本設(shè)計過程雖然做了大量的工作,但因為時間關(guān)系及本人知識能力的限制,本設(shè)計還存在的以下問題:電路單純只有溫度和濕度的測量,沒有控制
40、溫度和濕度的部分;電路控制部分沒有進行擴展;這些問題還需在以后的工作進一步完善。鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14參考文獻參考文獻1張俊謨編著單片機中級教程原理與應(yīng)用M,北京:北京航空航天大學(xué)出版社,20042求是科技單片機通信技術(shù)與工程實踐M,北京:人民郵電出版社,2004.113秦實宏,周龍等單片機原理與應(yīng)用技術(shù)M,北京:中國水利水電出版社,2005.94求是科技單片機典型模塊設(shè)計實例導(dǎo)航M,北京:人民郵電出版社,2004.5:55-665劉迎春傳感器原理設(shè)計與應(yīng)用M,北京:國防科技大學(xué)出版社,2005:205-2076夏路易等電路原理圖與電路板設(shè)計教程M,北京:北京希望電子出版
41、社,2002.6:155-166 7范風(fēng)強,蘭蟬麗單片機語言 C51 應(yīng)用實戰(zhàn)集錦M,電子工業(yè)出版社,2005.58胡漢才單片機原理及接口技術(shù)M,北京:清華大學(xué)出版社,1996.79何立民單片機與嵌入式系統(tǒng)應(yīng)用J,北京:北京航空航天出版社第四期,2003:15-1610趙亮,侯國銳等單片機 C 語言編程與實例M,北京:人民郵電出版社,200311馬忠梅等單片機的 C 語言應(yīng)用程序設(shè)計M,北京:北京航空航天大學(xué)出版社,2003.11鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14致謝致謝我做的這個LCD 數(shù)字式溫度濕度測量計的設(shè)計是一個綜合的工作,它涉及到電路的設(shè)計、單片機的編程還有相關(guān)軟件的使用。
42、在本次畢業(yè)設(shè)計中,我遇到了很多問題和困難,但是在指導(dǎo)老師方飛講師的精心指導(dǎo)和同學(xué)們的幫助下,完成了該設(shè)計工作。在這次設(shè)計中我極大的提高了自己的理論知識水平、動手能力,并對當(dāng)前電子領(lǐng)域的研究狀況和發(fā)展方向有了一定的了解,單片機領(lǐng)域這對我今后進一步學(xué)習(xí)計算機方面的知識有極大的幫助。另外,此次畢業(yè)設(shè)計還獲得了物電系各位領(lǐng)導(dǎo)和老師的大力支持。在此,我忠心感謝方飛老師以及物電系各位老師和同學(xué)們的指導(dǎo)和支持。鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14附錄附錄 1 系統(tǒng)印制電路板系統(tǒng)印制電路板該系統(tǒng)的印制電路板如圖 26 所示:圖圖 26 數(shù)字式溫度濕度測量電路數(shù)字式溫度濕度測量電路 PCB 板圖板圖鄭州
43、大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14附錄附錄 2 程序源代碼程序源代碼#include regx52.h#include #include #define uchar unsigned char#define uint unsigned int#define SCAN_CYCLE 500sbit RS=P27;/*液晶數(shù)據(jù)與命令切換*/sbit RW=P26;/*液晶讀寫使能*/sbit EN =P25;/*液晶使能*/sbit BF=P07; /液晶忙閑標(biāo)志sbit DQ=P23; /*DS1820 輸入接口 p2.3*/bit InitF=1;/*濕度處理變量定義部分* typedef
44、 union unsigned int i; float f; value;enum TEMP,HUMI;sbit DATA=P11;sbit SCK=P10 ;#define noACK 0#define ACK 1#define STATUS_REG_W 0 x06 #define STATUS_REG_R 0 x07#define MEASURE_TEMP 0 x03 #define MEASURE_HUMI 0 x05#define RESET 0 x1e value humi_val,temp_val;鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14 float dew_point; u
45、nsigned char error,checksum; unsigned int i; uchar ReadhumidityFlag=0;uchar xdata CurrentHumidity=Current humidity;/*濕度處理變量定義部分*/*溫度處理部分*uchar DisplayArray3=0 x02,0 x00,0 x00; /*前 3 位用于設(shè)置溫度值顯示 3 位用于當(dāng)前溫度值顯示 */uint CurrentTempValue=0,Tempdispersion=0;/*放大 10 倍進行處理*/uchar ReadTempTimeValue=1,MScond=0,S
46、cond=0,ReadTempFlag=0;uchar TempDec=0,Temp1bit=0,TempDot=0;uchar xdata CurrentTemp=Current temperature;void delays(uint i);void Init_DS18B20(void);uchar ReadOneChar(void);void WriteOneChar(uchar dat);void ReadTemperature(void);void delays(uint i)while(i-);/初始化函數(shù)void Init_DS18B20(void)unsigned char x
47、=0;DQ = 1; /DQ 復(fù)位delays(9); /稍做延時DQ = 0; /單片機將 DQ 拉低delays(55); /精確延時 511us 77鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14DQ = 1; /拉高總線delays(6); /延時 70usx=DQ; /稍做延時后 如果 x=0 則初始化成功 x=1 則初始化失敗 while(x); delays(48); /uchar ReadOneChar(void)uchar i=0;uchar dat = 0;for (i=8;i0;i-)DQ = 0; / 給脈沖信號dat=1; i+;i+;i+; i-;i-;i-;DQ =
48、 1; / 接收信號if(DQ)dat|=0 x80;delays(5);return(dat);/寫一個字節(jié)void WriteOneChar(unsigned char dat)unsigned char i=0;for (i=8; i0; i-)DQ = 0;DQ = dat&0 x01;鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14delays(3);DQ = 1;dat=1; /delays(4);/讀取溫度void ReadTemperature(void)uchar a=0;uchar b=0;uint t=0;Init_DS18B20();WriteOneChar(0 xCC);
49、 / 跳過讀序號列號的操作WriteOneChar(0 x44); / 啟動溫度轉(zhuǎn)換Init_DS18B20();WriteOneChar(0 xCC); /跳過讀序號列號的操作WriteOneChar(0 xBE); /讀取溫度寄存器等(共可讀 9 個寄存器) 前兩個就是溫度a=ReadOneChar();b=ReadOneChar();t=b;t4;TempDec=CurrentTempValue/10;Temp1bit=CurrentTempValue%10;*/CurrentTempValue=(int)(t*0.625); TempDec=CurrentTempValue/100;
50、Temp1bit=(CurrentTempValue/10)%10;鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14TempDot= CurrentTempValue%10;DisplayArray2=TempDec;DisplayArray1=Temp1bit; DisplayArray0=TempDot;/*溫度處理部分結(jié)束*/*液晶顯示部分*void delay(uchar ms) / 延時子程序 uchar k; while(ms) ms-; for(k = 250; k!=0;k-); /等待液晶閑狀態(tài)bit wait_enable(void) / 測試 LCD 忙碌狀態(tài) bit res
51、ult; P0=0XFF; RS = 0; RW = 1; EN = 1; EN = 0; result=EN; return result;/寫指令函數(shù): E=高電平跳變成低電平時 RS=0 RW=0void lcd_write_command(uchar command)/(命令,是否等待閑)鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14 while(wait_enable(); RS=0; RW=0; delay(5); EN=0; P0=command; EN=1; EN=0;/寫數(shù)據(jù)到液晶void lcd_write_data(uchar char_data) while(wait_e
52、nable(); RS = 1; RW = 0; EN = 0; P0 = char_data; EN = 1; delay(1); EN = 0;/初始化液晶void lcd_init() /LCD 初始化設(shè)定 delay(15); lcd_write_command(0 x38); /設(shè)置顯示模式:8 位 2 行 5x7 點陣 lcd_write_command(0 x38); /設(shè)置顯示模式:8 位 2 行 5x7 點陣 lcd_write_command(0 x38); /設(shè)置顯示模式:8 位 2 行 5x7 點陣 delay(5); lcd_write_command(0 x01);
53、 /清除 LCD 的顯示內(nèi)容 delay(5); lcd_write_command(0 x03); /光標(biāo)復(fù)位,光標(biāo)返回到地址 00H鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14 delay(5); lcd_write_command(0 x38); /設(shè)置顯示模式:8 位 2 行 5x7 點陣 delay(5); lcd_write_command(0 x0C); /顯示器開、光標(biāo)開、光標(biāo)允許閃爍 delay(5); lcd_write_command(0 x06); /文字不動,光標(biāo)自動右移 delay(5);/顯示一個字符void display_a_char(uchar positi
54、on,uchar char_data) lcd_write_command(position+0 x80); lcd_write_data(char_data);/顯示一個字符串void display_a_string(uchar position,uchar *content,uchar Length) uchar i; for(i=0;i=50) MScond=0; ReadTempFlag=1;ReadhumidityFlag=1; /*濕度處理模塊*char s_write_byte(unsigned char value) unsigned char i,error=0; for
55、(i=0 x80;i0;i/=2) if (i&value) DATA=1; else DATA=0; SCK=1; _nop_();_nop_();_nop_(); 鄭州大學(xué)西亞斯國際學(xué)院自動化專業(yè)畢業(yè)設(shè)計14 SCK=0; DATA=1; SCK=1; error=DATA; SCK=0; return error; / reads a byte form the Sensibus and gives an acknowledge in case of ack=1char s_read_byte(unsigned char ack) unsigned char i,val=0; DATA=1; for (i=0 x80;i0;i/=2) SCK=1; if (DATA) val=(val | i); SCK=0; DATA=!ack; SCK=1; _nop_();_nop_();_nop_(); SCK=0; DATA=1; return val;void s_transstart(void) DATA=
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030中國白色家電行業(yè)市場運行分析及競爭格局與投資方向報告
- 2025至2030中國男士商務(wù)正裝行業(yè)深度研究及發(fā)展前景投資評估分析
- 2025至2030中國用于食品和飲料的金屬罐行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國玻璃門行業(yè)深度研究及發(fā)展前景投資評估分析
- 2025至2030中國玫瑰花露行業(yè)供需分析及發(fā)展前景報告
- 2025至2030中國物理治療軟件行業(yè)市場深度研究及發(fā)展前景投資可行性分析報告
- 商業(yè)培訓(xùn)中激勵措施的心理機制研究
- 商業(yè)環(huán)境中殘疾人餐具使用的培訓(xùn)與指導(dǎo)
- 招聘技巧培訓(xùn)課件
- 智能教育設(shè)備應(yīng)用中的隱私保護問題研究
- (高清版)DB12∕T 804-2018 口腔綜合治療臺用水微生物標(biāo)準(zhǔn)
- GB/T 20424-2025重有色金屬精礦產(chǎn)品中有害元素的限量規(guī)范
- 2025年云網(wǎng)能源(曲靖)有限責(zé)任公司招聘筆試參考題庫含答案解析
- 2022年一級造價工程師考試《建設(shè)工程技術(shù)與計量(土木建筑工程)》真題及解析
- 吊裝施工安全協(xié)議書范本
- 2015海灣消防JB-QB-GST200 火災(zāi)報警控制器(聯(lián)動型)安裝使用說明書
- 中國各省區(qū)地圖、基本資料
- 2025年上半年中國長江三峽集團限公司“脫貧家庭畢業(yè)生”招聘(173人)易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年廣州市荔灣區(qū)招考社區(qū)居委會專職工作人員招考高頻重點提升(共500題)附帶答案詳解
- 2025年全國普通話水平測試題標(biāo)準(zhǔn)試卷(共三十五套)
- 關(guān)于辦公室安全的培訓(xùn)
評論
0/150
提交評論