




已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
此文檔收集于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系網(wǎng)站刪除 本課設(shè)采用8051系列單片機(jī)以及DHT11溫濕度傳感器相結(jié)合的方式來測量周圍環(huán)境溫度,其特點(diǎn)具有采集溫度、濕度的時(shí)間快,所采集到的溫濕度數(shù)值精度相對傳統(tǒng)溫濕度計(jì)要高,且易于讀數(shù),抗干擾能力強(qiáng)等特點(diǎn)。DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個(gè)電阻式感濕元件和一個(gè)NTC測溫元件,并與一個(gè)高性能8位單片機(jī)相連接。8051單片機(jī)是常用于控制的芯片,使用8051單片機(jī)能夠?qū)崿F(xiàn)溫濕度全程的自動控制,而且8051單片機(jī)易于學(xué)習(xí)掌握。 使用8051型單片機(jī)設(shè)計(jì)溫濕度控制系統(tǒng),可以即時(shí)快速精確的反應(yīng)溫室內(nèi)的溫度的變化。完成諸如升溫到特定的溫度時(shí)進(jìn)行報(bào)警,引起注意。關(guān)鍵詞: 8051 DHT11目 錄前言第一章 系統(tǒng)總體設(shè)計(jì).1.1系統(tǒng)實(shí)現(xiàn)的主要功能.1.2系統(tǒng)工作原理.1.3總體構(gòu)成.1.3.1總體設(shè)計(jì)框圖.第二章 系統(tǒng)的硬件設(shè)計(jì).2.1主控模塊設(shè)計(jì).2.1.1 主控模塊原理圖. 2.2 DHT11傳感器模塊設(shè)計(jì).2.2.1DHT11傳感器簡介.2.3LCD1602顯示模塊設(shè)計(jì).2.3.1LCD1602簡介.2.3.2數(shù)碼管模塊.第三章 系統(tǒng)的軟件設(shè)計(jì).3.1總體程序框架流程圖.3.2Altium 第四章 系統(tǒng)總電路原理圖. 第五章調(diào)試過程和注意問題. 4.1程序下載軟件說明.4.2設(shè)計(jì)中遇到的問題及解決.結(jié) 論.謝 辭.參考文獻(xiàn).附錄 前 言本次課程設(shè)計(jì)主要針對軟件的開發(fā)以及軟件與硬件相結(jié)合的形式來提高自我的動手操作能力以及對程序理解與操作能力。主要為了讓自己在大學(xué)的課程學(xué)習(xí)中學(xué)會學(xué)以致用,不能光有一嘴理論而不賦予實(shí)踐驗(yàn)證當(dāng)中去,這樣學(xué)到的知識也只不過是空洞無力的。只有通過將所學(xué)的知識應(yīng)用于實(shí)際的操作中,讓知識與實(shí)踐相結(jié)合的形式,才能讓我們將學(xué)到的東西舉一反三,真正體現(xiàn)知識的重要性。也為今后畢業(yè)后在工作中能夠具有較強(qiáng)的動手操作能力奠定基礎(chǔ)。另外,在現(xiàn)代生活中,溫度與濕度與人們的生活息息相關(guān)。溫度與濕度在各個(gè)領(lǐng)域部門經(jīng)常需要對其進(jìn)行測量及控制。準(zhǔn)確測量溫濕度在一些領(lǐng)域中至關(guān)重要的,而傳統(tǒng)的溫度計(jì)是用水銀的熱脹冷縮性來度量溫度的值,所以精確度不高,濕度計(jì)則采用干濕球顯示法,不僅復(fù)雜而且測量精度不高。故在此我們使用單片機(jī)對溫濕度進(jìn)行測量,這樣不僅控制方便,簡單靈活,而且可以大幅度提高溫度控制的技術(shù)指標(biāo),在測量中我們直接使用數(shù)碼管進(jìn)行對溫濕度的數(shù)值進(jìn)行顯示,從而更容易讀數(shù)。在本次設(shè)計(jì)中,我們采用DHT11數(shù)字溫濕度傳感器與單片機(jī)開發(fā)板相結(jié)合,從而設(shè)計(jì)出一個(gè)能夠直接在LCD1602上直接顯示出小范圍環(huán)境中溫度與濕度的數(shù)值,從而完成本次設(shè)計(jì)的要求。第一章 系統(tǒng)總體設(shè)計(jì)1.1 系統(tǒng)實(shí)現(xiàn)的主要功能 本系統(tǒng)所要實(shí)現(xiàn)的功能是:溫濕度的實(shí)時(shí)檢測和顯示。通過LCD1602實(shí)時(shí)地顯示傳感器DHT11檢測到的溫濕度的值。1.2 系統(tǒng)的工作原理本次設(shè)計(jì)主要涉及了溫濕度的測量、顯示。所以再硬件方面涉及了單片機(jī)主控模塊、傳感器模塊、LCD1602顯示模塊,共三大模塊。 傳感器模塊使用DHT11數(shù)字溫濕度傳感器。通過DHT11檢測當(dāng)前環(huán)境下的溫濕度,講所測得的數(shù)據(jù)提交給單片機(jī)進(jìn)行處理和分析。 LCD1602實(shí)現(xiàn)濕度與濕度的檢測數(shù)值顯示。1.3.總體構(gòu)成1.3.1 總體設(shè)計(jì)框圖 系統(tǒng)總體設(shè)計(jì)框圖如圖1.1所示。DHT11傳感器模塊P12AT89C51單片機(jī)P17LCD1602顯示模塊圖1.1: 系統(tǒng)總體設(shè)計(jì)框圖第二章 系統(tǒng)的硬件設(shè)計(jì)2.1 主控模塊設(shè)計(jì) 本次課程設(shè)計(jì)使用的主模塊為AT89C51為核心的芯片。使用時(shí)將P20口作為與DHT11數(shù)據(jù)端的傳輸口。 2.1.1主控模塊引腳圖 主控模塊引腳圖如圖所示。2.2 DHT11傳感器模塊接口設(shè)計(jì)2.2.1 DHT11傳感器簡介DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個(gè)電阻式感濕元件和一個(gè)NTC測溫元件,并與一個(gè)高性能8位單片機(jī)相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性價(jià)比極高等優(yōu)點(diǎn)。每個(gè)DHT11傳感器都在極為精確的濕度校驗(yàn)室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式儲存在OTP內(nèi)存中,傳感器內(nèi)部在檢測信號的處理過程中要調(diào)用這些校準(zhǔn)系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達(dá)20米以上,使其成為各類應(yīng)用甚至最為苛刻的應(yīng)用場合的最佳選則。產(chǎn)品為 3 針單排引腳封裝。連接方便,特殊封裝形式可根據(jù)用戶需求而提供。DHT11實(shí)物圖如圖2.2所示。圖2.2:DHT11 實(shí)物圖(1)引腳介紹: Pin1:(VDD),電源引腳,供電電壓為35.5V。 Pin2:(DATA),串行數(shù)據(jù),單總線。 Pin3:(NC),空腳,懸浮。 Pin4:(VDD),接地端,電源負(fù)極。(2)接口說明:建議連接線長度短于20米時(shí)用5K上拉電阻,大于20米時(shí)根據(jù)實(shí)際情況使用合適的上拉電阻。DHT11接口如圖2.3所示。圖2.3:單片機(jī)與傳感器接口(3)數(shù)據(jù)幀的描述:DATA 用于微處理器與 DHT11之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次通訊時(shí)間4ms左右,具體格式在下面說明.操作流程如下:一次完整的數(shù)據(jù)傳輸為40bit,高位先出。數(shù)據(jù)格式:8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bit溫度整數(shù)數(shù)據(jù)數(shù)據(jù)傳送正確時(shí)校驗(yàn)和數(shù)據(jù)等于“8bit濕度整數(shù)數(shù)據(jù) +8bi溫度整數(shù)數(shù)據(jù)” (4)電氣特性:VDD=5V,T = 25,除非特殊標(biāo)注。DHT11的電氣特性參數(shù)條件Mintypmax單位供電DC355.5V供電電流測量0.52.5mA平均0.21mA待機(jī)100150uA采樣周期秒1次注:采樣周期間隔不得低于1秒鐘。 (5)時(shí)序描述:用戶MCU發(fā)送一次開始信號后,DHT11從低功耗模式轉(zhuǎn)換到高速模式,等待主機(jī)開始信號結(jié)束后,DHT11發(fā)送響應(yīng)信號,送出40bit的數(shù)據(jù),并觸發(fā)一次信號采集,用戶可選擇讀取部分?jǐn)?shù)據(jù).從模式下,DHT11接收到開始信號觸發(fā)一次溫濕度采集,如果沒有接收到主機(jī)發(fā)送開始信號,DHT11不會主動進(jìn)行溫濕度采集.采集數(shù)據(jù)后轉(zhuǎn)換到低速模式。通訊過程如圖2.4所示:圖2.4:通訊過程圖總線空閑狀態(tài)為高電平,主機(jī)把總線拉低等待DHT11響應(yīng),主機(jī)把總線拉低必須大于18毫秒,保證DHT11能檢測到起始信號。DHT11接收到主機(jī)的開始信號后,等待主機(jī)開始信號結(jié)束,然后發(fā)送80us低電平響應(yīng)信號.主機(jī)發(fā)送開始信號結(jié)束后,延時(shí)等待20-40us后, 讀取DHT11的響應(yīng)信號,主機(jī)發(fā)送開始信號后,可以切換到輸入模式,或者輸出高電平均可, 總線由上拉電阻拉高。通訊初始化如圖2.5所示。圖2.5通訊初始化要求圖 總線為低電平,說明DHT11發(fā)送響應(yīng)信號,DHT11發(fā)送響應(yīng)信號后,再把總線拉高80us,準(zhǔn)備發(fā)送數(shù)據(jù),每一bit數(shù)據(jù)都以50us低電平時(shí)隙開始,高電平的長短定了數(shù)據(jù)位是0還是1.格式見下面圖示。如果讀取響應(yīng)信號為高電平,則DHT11沒有響應(yīng),請檢查線路是否連接正常.當(dāng)最后一bit數(shù)據(jù)傳送完畢后,DHT11拉低總線50us,隨后總線由上拉電阻拉高進(jìn)入空閑狀態(tài)。數(shù)字0信號表示方法如圖2.6所示:圖2.6:數(shù)字0信號電平變化圖數(shù)字1信號表示方法如圖2.7所示 圖2.7:數(shù)字1數(shù)據(jù)線電平變化圖LCD16021)LCD1602簡介:工業(yè)字符型液晶,能夠同時(shí)顯示16x02即32個(gè)字符。(16列2行)注:為了表示的方便 ,后文皆以1表示高電平,0表示低電平。1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點(diǎn)陣型液晶模塊。它由若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒芎芎玫仫@示圖形(用自定義CGRAM,顯示效果也不好)。1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個(gè)字符液晶模塊(顯示字符和數(shù)字)。市面上字符液晶大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。2)管腳功能1602采用標(biāo)準(zhǔn)的16腳接口,其中:第1腳:GND為電源地第2腳:VCC接5V電源正極第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時(shí)對比度最弱,接地電源時(shí)對比度最高(對比度過高時(shí)會 產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對比度)。第4腳:RS為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。第5腳:RW為讀寫信號線,高電平(1)時(shí)進(jìn)行讀操作,以51為例的簡單原理圖低電平(0)時(shí)進(jìn)行寫操作。第6腳:E(或EN)端為使能(enable)端,高電平(1)時(shí)讀取信息,負(fù)跳變時(shí)執(zhí)行指令。第714腳:D0D7為8位雙向數(shù)據(jù)端。第1516腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。特性3.3V或5V工作電壓,對比度可調(diào)內(nèi)含復(fù)位電路提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM內(nèi)建有192個(gè)5X7點(diǎn)陣的字型的字符發(fā)生器CGROM8個(gè)可由用戶自定義的5X7的字符發(fā)生器CGRAM特征應(yīng)用微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧,常用在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中。操作控制注:關(guān)于E=H脈沖開始時(shí)初始化E為0,然后置E為1。字符集1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”。在單片機(jī)編程中還可以用字符型常量或變量賦值,如A。因?yàn)镃GROM儲存的字符代碼與我們PC中的字符代碼是基本一致的,因此我們在向DDRAM寫C51字符代碼程序時(shí)甚至可以直接用P1=A這樣的方法。PC在編譯時(shí)就把A先轉(zhuǎn)換為41H代碼了。CGROM中字符碼與字符字模關(guān)系對照表字符代碼0x000x0F為用戶自定義的字符圖形RAM(對于5X8點(diǎn)陣的字符,可以存放8組,5X10點(diǎn)陣的字符,存放4組),就是CGRAM了。0x200x7F為標(biāo)準(zhǔn)的ASCII碼,0xA00xFF為日文字符和希臘文字符,其余字符碼(0x100x1F及0x800x9F)沒有定義。以下是1602的16進(jìn)制ASCII碼表地址:讀的時(shí)候,先讀左邊那列,再讀上面那行,如:感嘆號!的ASCII為0x21,字母B的ASCII為0x42(前面加0x表示十六進(jìn)制)。第三章 系統(tǒng)的軟件設(shè)計(jì)3.1 總體程序框圖流程圖軟件設(shè)計(jì)流程框圖如圖3.1所示 開始初始化 延時(shí)溫濕度檢測并傳送數(shù)據(jù)回單片機(jī)數(shù)碼管顯示定時(shí)檢測YN圖3.1:軟件設(shè)計(jì)流程框圖3.2 Altium Designer電路設(shè)計(jì)軟件簡介Protel是目前EDA行業(yè)中使用最方便,操作最快捷,人性化界而最好的輔助工具。在中國用得最多的EDA工具,電子專業(yè)的大學(xué)生在大學(xué)基木上都學(xué)過Protel 99Se,所以學(xué)習(xí)資源也最廣,公司在招聘新人的時(shí)候用Protel新人會很快上手。Altium聲稱中國有73%的工程師和80%的電子工程相關(guān)專業(yè)在校學(xué)生正在使用其所提供的解決方案,而目前正版率只有3%左右。產(chǎn)品歷史:1985年誕生doc版Protel。1991年P(guān)rotel for Widows。1997年P(guān)rotel 98這個(gè)32位產(chǎn)品是第一個(gè)包含5個(gè)核心模塊的EDA工具。1999年P(guān)rotel 99構(gòu)成從電路設(shè)計(jì)到真實(shí)版分析的完整體系。2000年P(guān)rotel 99se性能進(jìn)一步提高,可以對設(shè)計(jì)過程有更大控制力。2002年P(guān)rotel DXP集成了更多工具,使用方便,功能更強(qiáng)大。2003年P(guān)rotel 2004對Protel DXP進(jìn)一步完善。2006年Altium Designer 6.0成功推出,集成了更多工具,使用方便,功能更強(qiáng)大,特別在PCB設(shè)計(jì)這一塊性能大大提高。2008年Altium Designer Summer 8.0將ECAD和MCAD兩種文件格式結(jié)合在一起,Altium在其最新版的一體化設(shè)計(jì)解決方案中為電子工程師帶來了全面驗(yàn)證機(jī)械設(shè)計(jì)(如外殼與電子組件)與電氣特性關(guān)系的能力。還加入了對OrCAD和PowerPCD的支持能力。2008年Altium Designer Winter 09推出,此冬季9月發(fā)布的Altium Designer引入新的設(shè)計(jì)技術(shù)和理念,以幫助電子產(chǎn)品設(shè)計(jì)創(chuàng)新,利用技術(shù)進(jìn)步,并提出一個(gè)產(chǎn)品的任務(wù)設(shè)計(jì)更快地獲得走向市場的方便。增強(qiáng)功能的電路板設(shè)計(jì)空間,讓您可以更快地設(shè)計(jì),全三維PCB設(shè)計(jì)環(huán)境,避免出現(xiàn)錯(cuò)誤和不準(zhǔn)確的模型設(shè)計(jì)。在本系統(tǒng)的電路原理圖設(shè)計(jì)中使用Altium Designer 6.9進(jìn)行設(shè)計(jì),Altium Designer宣布發(fā)布Altium Designer 6.9,它是完全一體化電子產(chǎn)品開發(fā)系統(tǒng)的下一個(gè)版本。Altium Designer是業(yè)界首例將設(shè)計(jì)流程、集成化PCB設(shè)計(jì)、可編程器件(如FPGA)設(shè)計(jì)和基于處理器設(shè)計(jì)的嵌入式軟件開發(fā)功能整合在一起的產(chǎn)品。Altium Designer 6.9極大地增強(qiáng)了對高密板設(shè)計(jì)的支持,可用于高速數(shù)字信號設(shè)計(jì),提供大量新功能和改進(jìn),改善了對復(fù)雜多層板卡的管理和異航,可將器件放置在PCB板的正反兩面,處理高密度封裝技術(shù),如高密度引腳數(shù)量的球型網(wǎng)格陣列(BGAS)。以前這些高級的PCB設(shè)計(jì)技術(shù)被限定在“高級”的PCB設(shè)計(jì)產(chǎn)品,這些產(chǎn)品對大多數(shù)工程師來說價(jià)格昂貴。然而,Altium的理念是讓電子設(shè)計(jì)變得更容易,Altium Designer 6.9讓每一位工程師都能使用最新的設(shè)計(jì)功能。Altium Designer 6.9對差分信號提供系統(tǒng)范圍內(nèi)的支持,可對高速內(nèi)連的差分信號對進(jìn)行充分定義、管理和交互式布線。支持包括對在FPGA項(xiàng)目內(nèi)部定義的LVDS信號的物理設(shè)計(jì)進(jìn)行自動映射。LVDS是差分信號最通用的標(biāo)準(zhǔn),廣泛應(yīng)用于可編程器件。Altium Designer可允分利用當(dāng)今FPGA器件上的擴(kuò)展I/O管腳。Altium Designer 6.9中的Board Insight系統(tǒng)把設(shè)計(jì)師的鼠標(biāo)變成了交互式的數(shù)據(jù)挖掘工具。Board Insight集成了“警示”顯示功能,可毫不費(fèi)力地瀏覽和編輯設(shè)計(jì)中疊放的對象。工程師可以專注于其目前的編輯任務(wù),也可以完全進(jìn)入目標(biāo)區(qū)域內(nèi)的任何其他對象,這增加了在密集、多層設(shè)計(jì)環(huán)境中的編輯速度。Altium Designer 6.9引入了強(qiáng)大的“逃逸布線”引擎,嘗試將每個(gè)定義的焊盤通過布線剛好引到BGA邊界,這令對密集BGA類型封裝的布線變的非常簡單。顯著的節(jié)省了設(shè)計(jì)時(shí)間,設(shè)計(jì)師無需手動就可以完成在一大堆焊盤間將線連接這些器件的內(nèi)部管腳。Altium Designer 6.9極大減少了帶有大量管腳的器件封裝在高密度板卡上設(shè)計(jì)的時(shí)問,簡化了復(fù)雜板卡的設(shè)計(jì)導(dǎo)航功能,設(shè)計(jì)師可以有效處理高速差分信號,尤其對大規(guī)模可編程器件上的大量LVDS資源。Altium Designer 6.9充分利用可得到的板卡空間和現(xiàn)代封裝技術(shù),以更有效的設(shè)計(jì)流程和更低的制造成本縮短上市時(shí)間。3.3 單片機(jī)控制電路在整個(gè)系統(tǒng)中,單片機(jī)控制電路是整個(gè)系統(tǒng)的核心,負(fù)責(zé)對采集到的信號進(jìn)行處理和加工,并按照之前設(shè)定好的指令進(jìn)行執(zhí)行、運(yùn)算,并將結(jié)果傳送給相應(yīng)的執(zhí)行電路。3.4 執(zhí)行電路執(zhí)行電路在系統(tǒng)中充當(dāng)執(zhí)行任務(wù),對單片機(jī)發(fā)出的指令進(jìn)行響應(yīng),完成相應(yīng)的操作。單片機(jī)通過傳送的信號進(jìn)行運(yùn)算、處理之后將輸出信號送給執(zhí)行電路,繼電器執(zhí)行電路將對外部設(shè)備進(jìn)行控制。3.5 串口通信電路串口通信電路采用經(jīng)典的MAX232串口通信,由于電腦串口RS232電平是-10V+10V,而一般的單片機(jī)應(yīng)用系統(tǒng)的信號電壓是TTL電平0V+5V,MAX232就是用來進(jìn)行電平轉(zhuǎn)換的,進(jìn)行對單片機(jī)與電腦的通信,系統(tǒng)中采用MAX232串口通信電路。3.5.1 串口通信電路原理圖系統(tǒng)采用的經(jīng)典串口通信電路如下圖所示:圖4.1 串行口通信電路3.5.2 串口通信電路在系統(tǒng)中的優(yōu)勢系統(tǒng)中采用串口通信電路可與電腦進(jìn)行通信,可以對單片機(jī)內(nèi)的程序進(jìn)行修改,并對相關(guān)的指令和相關(guān)的數(shù)據(jù)進(jìn)行調(diào)整。并且可以針對性地將單片機(jī)與電腦進(jìn)行通信,編寫上位機(jī)軟件程序,在上位機(jī)(電腦)上對系統(tǒng)狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)測,并可以讓功能更強(qiáng)大的PC機(jī)進(jìn)行龐大的指令處理。在本系統(tǒng)中,加入串口通信電路模塊,可以使電路的完整性大大增強(qiáng),并對系統(tǒng)的升級有極大的優(yōu)勢,可以是系統(tǒng)在雙機(jī)通信、與上位機(jī)通信等方面擁有相對優(yōu)勢,使得設(shè)計(jì)更加完善。整體程序/*標(biāo)題:LCD1602效果:本程序在液晶LCD1602上顯示兩行字符*/#include reg51.h/*IO引腳定義*/sbit LCD_RS=P10;/定義引腳sbit LCD_RW=P11;sbit LCD_E=P12;sbit io =P20;/dht11data端接單片機(jī)的P20口/ /*宏定義*/#define LCD_Data P0#define Busy 0x80 /用于檢測LCD狀態(tài)字中的Busy標(biāo)識typedef unsigned char BYTE;typedef unsigned int WORD;#define uint unsigned int #define uchar unsigned char typedef bit BOOL;/此聲明一個(gè)布爾型變量即真或假/ /*DHT11*/uchar data_byte; uchar RH,RL,TH,TL;/*數(shù)據(jù)定義*/unsigned char uctech = RH: :00 % ; unsigned char net = TE: :00 ;/*函數(shù)聲明*/void WriteDataLCD(unsigned char WDLCD); /寫數(shù)據(jù)void WriteCommandLCD(unsigned char WCLCD,BuysC);/寫命令unsigned char ReadDataLCD(void); /讀數(shù)據(jù)unsigned char ReadStatusLCD(void);/讀狀態(tài)void LCDInit(void);/初始化void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);/相應(yīng)坐標(biāo)顯示字節(jié)內(nèi)容void DisplayListChar(unsigned char X, unsigned char Y, unsigned char *DData);/相應(yīng)坐標(biāo)開始顯示一串內(nèi)容void Delay5Ms(void);/延時(shí)void Delay400Ms(void);/延時(shí)void delay(uchar ms); /延時(shí)模塊void receive();/接收數(shù)據(jù)/ /*主函數(shù)開始*/void main(void)Delay400Ms(); /啟動等待,等LCD講入工作狀態(tài)LCDInit(); /初始化Delay5Ms(); /延時(shí)片刻(可不要)DisplayListChar(0, 0, uctech);DisplayListChar(0, 5, net);while(1) receive();/接收數(shù)據(jù)/ uctech3=RH/10+0X30;uctech4=RH%10+0X30;net3 =(TH/10+0X30)-1;net4 =TH%10+0X30;net10 =0xdf;net11 =0x43; DisplayListChar(0, 0, uctech);DisplayListChar(0, 5, net);Delay5Ms(); /*短延時(shí)*/void Delay5Ms(void) unsigned int TempCyc = 5552; while(TempCyc-);/*長延時(shí)*/void Delay400Ms(void) unsigned char TempCycA = 5; unsigned int TempCycB; while(TempCycA-) TempCycB=7269; while(TempCycB-); /*延時(shí)函數(shù)* void delay(uchar ms) /延時(shí)模塊/ uchar i; while(ms-) for(i=0;i100;i+); void delay1(void)/一個(gè)for循環(huán)大概需要8個(gè)多機(jī)器周期一個(gè)機(jī)器周期為1us晶振為12MHz也就是說本函數(shù)延時(shí)8us多此延時(shí)函數(shù)必須德稍微精確一點(diǎn) uchar i; for(i=0;i1;i+); /* /*dht11*/*dht11測試某塊*/void start()/開始信號 io=1; delay1(); io=0; delay(25);/ 主機(jī)把總線拉低必須大于18ms保證DHT11能檢測到起始信號 io=1; /發(fā)送開始信號結(jié)束后拉高電平延時(shí)20-40us delay1();/以下三個(gè)延時(shí)函數(shù)差不多為24us符合要求 delay1(); delay1(); uchar receive_byte()/接收一個(gè)字節(jié)/ uchar i,temp; for(i=0;i8;i+)/接收8bit的數(shù)據(jù) while(!io);/等待50us的低電平開始信號結(jié)束 delay1();/開始信號結(jié)束之后延時(shí)26us-28us以下三個(gè)延時(shí)函數(shù) delay1(); delay1(); temp=0;/時(shí)間為26us-28us表示接收的為數(shù)據(jù)0 if(io=1) temp=1; /如果26us-28us之后還為高電平則表示接收的數(shù)據(jù)為1 while(io);/等待數(shù)據(jù)信號高電平0為26us-28us1為70us data_byte=1;/接收的數(shù)據(jù)為高位在前右移 data_byte|=temp; return data_byte; void receive()/接收數(shù)據(jù)/ uchar T_H,T_L,R_H,R_L,check,num_check,i; start();/開始信號/ io=1; /主機(jī)設(shè)為輸入判斷從機(jī)DHT11響應(yīng)信號 if(!io)/判斷從機(jī)是否有低電平響應(yīng)信號/ while(!io);/判斷從機(jī)發(fā)出 80us 的低電平響應(yīng)信號是否結(jié)束/ while(io);/判斷從機(jī)發(fā)出 80us 的高電平是否結(jié)束如結(jié)束則主機(jī)進(jìn)入數(shù)據(jù)接收狀態(tài) R_H=receive_byte();/濕度高位 R_L=receive_byte();/濕度低位 T_H=receive_byte();/溫度高位 T_L=receive_byte();/溫度低位 check=receive_byte();/校驗(yàn)位 io=0; /當(dāng)最后一bit數(shù)據(jù)接完畢后從機(jī)拉低電平50us/ for(i=0;i=0x20) /若到達(dá)字串尾則退出 if (X = 0xF) /X坐標(biāo)應(yīng)小于0xF DisplayOneChar(X, Y, DDataListLength); /顯示單個(gè)字符 ListLength+; X+; 此文檔僅供學(xué)習(xí)與交流第四章 系統(tǒng)總電路原理圖 通過專心的研究和學(xué)習(xí),對單片機(jī)控制電路的實(shí)現(xiàn)有一定的構(gòu)想,通過Altium Designer 電路軟件的設(shè)計(jì),對電路硬件設(shè)計(jì)有很大的幫助,在理論上硬件設(shè)計(jì)達(dá) 到當(dāng)初的設(shè)計(jì)要求,基本上實(shí)現(xiàn)了系統(tǒng)的設(shè)計(jì)要求。在整個(gè)系統(tǒng)中,單片機(jī)控制電路是整個(gè)系統(tǒng)的核心,負(fù)責(zé)對電路采集到的信號進(jìn)行處理和加工,并按照之前設(shè)定好的指令進(jìn)行執(zhí)行、運(yùn)算,并將結(jié)果傳送給執(zhí)行電路。執(zhí)行電路在系統(tǒng)中充當(dāng)執(zhí)行任務(wù),對單片機(jī)發(fā)出的指令進(jìn)行響應(yīng),完成相應(yīng)的操作。單片機(jī)通過將光電檢測電路傳送的信號進(jìn)行運(yùn)算、處理之后將輸出信號送給執(zhí)行電路,執(zhí)行電路將對外部設(shè)備進(jìn)行控制。51 單片機(jī)系統(tǒng)總原理圖第五章 調(diào)試過程和注意問題5.1 程序下載軟件說明 本課程設(shè)計(jì)是基于Keil uVision4 環(huán)境下開發(fā),該軟件支持C語言的編程及調(diào)試,運(yùn)用方便。當(dāng)在該軟件下把程序準(zhǔn)確無誤編寫好之后,通過軟件中的編譯功能獲得后綴名為.hex文件后,再使用程序燒寫軟件STC_ISP_V483 將數(shù)據(jù)燒寫到系統(tǒng)中。再燒寫先應(yīng)需先將開發(fā)板與電腦用連接線連接好,并檢查好開發(fā)板所對應(yīng)的COM口,以免燒寫失敗。Keil uVision4 軟件程序編寫窗口:軟件程序編寫窗口圖入圖4.1所示圖4.1:軟件程序編寫窗口圖STC_ISP_V483 軟件程序燒
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣告管理案例評析(一)
- 2025年工業(yè)互聯(lián)網(wǎng)平臺TEE在智能工廠設(shè)備維護(hù)中的應(yīng)用分析報(bào)告
- 攪拌站業(yè)務(wù)人員管理制度
- picc管維護(hù)管理制度
- 山西村集體用工管理制度
- 三級子公司工資管理制度
- 學(xué)院圖書館采編管理制度
- 2025年福建省中考道德與法治真題(解析版)
- 星級管理動態(tài)管理制度
- 為規(guī)范公司印章管理制度
- 幼兒園玩教具供貨運(yùn)輸配送方案
- 計(jì)量經(jīng)濟(jì)學(xué)論文(eviews分析)影響我國人口預(yù)期壽命的可能因素分析
- 足球公園計(jì)劃書
- 銀行合規(guī)文化培訓(xùn)課件
- 礦山生態(tài)修復(fù)工程驗(yàn)收規(guī)范
- 雙減背景下提升學(xué)業(yè)水平初中英語作業(yè)設(shè)計(jì)策略研究課題開題報(bào)告
- 《網(wǎng)架結(jié)構(gòu)》課件
- 《合同履行》課件
- 《總圖設(shè)計(jì)講義》課件
- 消火栓操作培訓(xùn)課件
- 幼兒園幼小銜接課件:《我上小學(xué)啦》
評論
0/150
提交評論