2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  摘 要</b></p><p>  隨著綠色生活,低碳生活意識的普及,節(jié)能成為現(xiàn)代社會的一個主流命題,電扇的普及性,使得電扇智能化,節(jié)能化成為其改進方向,智能節(jié)能電扇在學生宿舍,食堂等處都有很強的實用性,該課題對于研究智能節(jié)能風扇,順應低碳生活,節(jié)約能源有著一定啟發(fā)意義。利用AT89C51單片機作為主控芯片,采用DS18b20溫度傳感器采集溫度信息,數(shù)碼管顯示

2、,經(jīng)過一定算法使得,當溫度超過設定的溫度上限時最大風速,低于溫度下限時停轉,在上下限之間時候進行風速分級轉動。該裝置實現(xiàn)了溫度控制風扇的智能化,方便人們日常生活。本系統(tǒng)控制溫度,設置合理,成本低,可靠性高,具有較高實用價值。</p><p>  關鍵詞:AT89C51單片機;DS18b20;LCD1603;溫度控制;電風扇 Abstract</p&

3、gt;<p>  With the green life, low carbon the popularity of life consciousness, saving energy and become a mainstream of modern society proposition, the electric fan universality, make intelligent electric fans, en

4、ergy conservation as its improving direction, intelligent energy-saving electric fans in a student dormitory, dining room place such as strong practicability, this topic for research intelligent energy-saving fan, confor

5、m with the low carbon life, save energy has a certain enlightening significa</p><p>  Keywords: AT89C51 single-chip microcomputer; DS18b20;LCD1603; Temperature control; Electric fan</p><p><b

6、>  目 錄</b></p><p><b>  摘 要I</b></p><p><b>  Abstract</b></p><p><b>  第1章 緒論1</b></p><p>  1.1 概述1</p><p

7、>  1.2 語音識別技術的研究現(xiàn)狀1</p><p>  1.2.1 語音識別的應用1</p><p>  1.2.2 語音識別的困難1</p><p>  1.3 本文研究的意義1</p><p>  第2章 語音識別系統(tǒng)的基本理論2</p><p>  2.1 嵌入式技術

8、2</p><p>  2.3 DSP概述2</p><p>  2.3.1 DSP技術2</p><p>  2.3.2 TMS320C5410系列DSP概述2</p><p>  第3章 系統(tǒng)的軟件設計4</p><p><b>  結論5</b></p>

9、<p><b>  參考文獻6</b></p><p><b>  附錄7</b></p><p><b>  致謝8</b></p><p><b>  第1章 緒論</b></p><p><b>  1.1 概述&l

10、t;/b></p><p>  如今,在日常生活及工農(nóng)業(yè)生產(chǎn)中,大多場合都需要對溫度進行采集,便根據(jù)環(huán)境溫度的高低來實現(xiàn)某種智能化的控制,從而滿足人們日常生活及工農(nóng)業(yè)生產(chǎn)的要求。溫控風扇系統(tǒng)就是為需要根據(jù)環(huán)境溫度實現(xiàn)智能散熱的場合而設計的。本系統(tǒng)設計共由四個部分組成,即溫度采集模塊、溫度狀態(tài)顯示模塊、風扇控制模塊和溫度報警模塊。系統(tǒng)首先采集環(huán)境溫度,在通過液晶顯示器顯示,對環(huán)境溫度實行時時監(jiān)測,然后再根據(jù)所

11、采集到的溫度,根據(jù)需要對風扇的轉速進行調節(jié),如果環(huán)境溫度超出一定值,則可能有異常情況發(fā)生,此時報警電路報警。</p><p>  1.2 溫度測控系統(tǒng)的發(fā)展與研究現(xiàn)狀</p><p>  近年來,溫度的檢測在理論上發(fā)展比較成熟,但在實際測量和控制中,如何保證快速實時地對溫度進行采樣,確保數(shù)據(jù)的正確傳輸,并能對所測溫度場進行較精確的控制,仍然是目前需要解決的問題。</p>

12、<p>  溫度測控技術包括溫度測量技術和溫度控制技術兩個方面。 </p><p>  在溫度的測量技術中,接觸式測溫發(fā)展較早,這種測量方法的優(yōu)點是:簡單、可靠、低廉、測量精度較高,一般能夠測得真實溫度;但由于檢測元件熱慣性的影響,響應時間較長,對熱容量小的物體難以實現(xiàn)精確的測量,并且該方法不適宜于對腐蝕性介質測溫,不能用于超高溫測量,難于測量運動物體的溫度。另外的非接觸式測溫方法是通過對輻射能量的檢

13、測來實現(xiàn)溫度測量的方法,其優(yōu)點是:不破壞被測溫場,可以測量熱容量小的物體,適于測量運動物體的溫度,還可以測量區(qū)域的溫度分布,響應速度較快。但也存在測量誤差較大,儀表指示值一般僅代表物體表觀溫度,測溫裝置結構復雜,價格昂貴等缺點。因此,在實際的溫度測量中,要根據(jù)具體的測量對象選擇合適的測量方法,在滿足測量精度要求的前提下盡量減少投入。</p><p>  1.2.1 溫度測控技術的應用</p>&l

14、t;p>  溫度控制技術按照控制目標的不同可分為兩類:動態(tài)溫度跟蹤與恒值溫度控制。動態(tài)溫度跟蹤實現(xiàn)的控制目標是使被控對象的溫度值按預先設定好的曲線進行變化。在工業(yè)生產(chǎn)中很多場合需要實現(xiàn)這一控制目標,如在發(fā)酵過程控制,化工生產(chǎn)中的化學反應溫度控制,冶金工廠中燃燒爐中的溫度控制等;恒值溫度控制的目的是使被控對象的溫度恒定在某一給定數(shù)值上,且要求其波動幅度(即穩(wěn)態(tài)誤差)不能超過某允許值。 在通信系統(tǒng)中,常利用非電信號來傳遞控制信號和數(shù)據(jù)

15、,以實現(xiàn)遙控或遙測的功能紅外通信,具有控制簡單、實施方便,傳輸可靠性高的特點,是一種較為常用的通信方式。紅外通信利用950 nm近紅外波段的紅外線作為傳遞信息的媒體,發(fā)送端采用脈時調制方式,將二進制數(shù)字信號調制成某一頻率的脈沖序列,并驅動紅外發(fā)射管以光脈沖的形式發(fā)送,接收端將收到的光脈沖轉換成電信號。再經(jīng)過放大、濾波處理后送給解調電路,還原為二進制數(shù)字信號后輸出。</p><p>  1. 微控制器MCU(單片機

16、)簡介</p><p>  單片機是一種集成電路芯片,是采用超大規(guī)模集成電路技術把具有數(shù)據(jù)處理能力的中央處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊硅片上構成的一個小而完善的微型計算機系統(tǒng),在工業(yè)控制領域的廣泛應用。從上世紀80年代,由當時的4位、8位單片機,發(fā)展到現(xiàn)在的32位30

17、0M的高速單片機。</p><p>  單片微型計算機簡稱單片機,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母MCU表示單片機,單片機又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機系統(tǒng)集成到一個芯片上。單片機由運算器,控制器,存儲器,輸入輸出設備構成,相當于一個微型的計算機,和計算機相比,單片機只缺少了I/O設備。概括的講:一塊芯片就成了一臺計算機。它的體積

18、小、質量輕、價格便宜、為學習、應用和開發(fā)提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。它最早是被用在工業(yè)控制領域。</p><p>  由于單片機在工業(yè)控制領域的廣泛應用,單片機由芯片內僅有CPU的專用處理器發(fā)展而來。最早的設計理念是通過將大量外圍設備和CPU集成在一個芯片中,使計算機系統(tǒng)更小,更容易集成進復雜的而對體積要求嚴格的控制設備當中。</p><p>  

19、現(xiàn)代人類生活中所用的幾乎每件電子和機械產(chǎn)品中都會集成有單片機。手機、電話、計算器、家用電器、電子玩具、掌上電腦以及鼠標等電腦配件中都配有1-2部單片機。 汽車上一般配備40多部單片機,復雜的工業(yè)控制系統(tǒng)上甚至可能有數(shù)百臺單片機在同時工作!單片機的數(shù)量不僅遠超過PC機和其他計算的總和,甚至比人類的數(shù)量還要多。</p><p>  2. 系統(tǒng)控制芯片AT89C51</p><p>  AT89

20、C51是一種帶4K字節(jié)FLASH存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位C

21、PU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。</p><p>  AT89C51 提供以下標準功能:4k 字節(jié)Flash 閃速存儲器,128字節(jié)內部RAM,32 個I/O 口線,兩個16位定時/計數(shù)器,一個5向量兩級中斷結構,一個全雙工串行通信口,片內振蕩器及時鐘電路。

22、同時,AT89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復位。</p><p>  其外形及引腳排列如圖所示:</p><p>  圖1-1 AT89C51外形及引腳排列</p><

23、p>  1.2.2 溫度測控的困難</p><p>  溫度測控要面臨的問題是環(huán)境,所處環(huán)境的不同以及所處環(huán)境的變化,例如季節(jié)變化、晝夜變化、所處環(huán)境溫度過高、所處環(huán)境溫度過低等,都會對溫度的測控帶來一定的困難。如果環(huán)境溫度過高,這要求所采用的溫度傳感器具有一定的耐高溫性能,如果溫度過低,則要求所采用的溫度傳感器具有一定的耐低溫能力,如果環(huán)境是變化,則要求溫度傳感器能適應環(huán)境的變化。要滿足這些要求,就需要

24、有高性能的溫度傳感器。</p><p>  1.3 本文研究的意義</p><p>  近年來隨著科技的飛速發(fā)展,單片機的應用正在不斷地走向深入,同時帶動傳統(tǒng)檢測日新月益更新。在實時檢測和自動控制的單片機應用系統(tǒng)中,單片機往往是作為一個核心部件來使用,僅單片機方面的知識是不夠的,還應根據(jù)具體硬件結構,以及針對具體應用對象特點的軟件結合,以作完善。溫度是日常生活中無時不在的物理量,溫度

25、的控制在各個領域都有積極的意義。很多行業(yè)都有用電加熱設備,采用單片機對他們進行溫度控制不僅具有控制方便,簡單,靈活性大等特點,而且還可以大幅提高被控溫度的技術指標,從而大大提高產(chǎn)品的質量。</p><p>  第2章 溫度采集及自動調速風扇系統(tǒng)的基本理論</p><p>  2.1 自動控制技術</p><p>  自動控制技術是20世紀發(fā)展最快、影響最大的

26、技術之一,也是21世紀最重要的高技術之一。今天,技術、生產(chǎn)、軍事、管理、生活等各個領域,都離不開自動控制技術。就定義而言,自動控制技術是控制論的技術實現(xiàn)應用,是通過具有一定控制功能的自動控制系統(tǒng),來完成某種控制任務,保證某個過程按照預想進行,或者實現(xiàn)某個預設的目標。從控制的方式看,自動控制系統(tǒng)有閉環(huán)和開環(huán)兩種。</p><p>  閉環(huán)控制也就是(負)反饋控制,原理與人和動物的目的性行為相似,系統(tǒng)組成包括傳感器(

27、相當于感官),控制裝置(相當于腦和神經(jīng)),執(zhí)行機構(相當于手腿和肌肉)。傳感器檢測被控對象的狀態(tài)信息(輸出量),并將!魷轉變成物理(電)信號傳給控制裝置。控制裝置比較被控對象當前狀態(tài)(輸出量)對希望狀態(tài)(給定量)的偏差,產(chǎn)生一個控制信號,通過執(zhí)行機構驅動被控對象運動,使其運動狀態(tài)接近希望狀態(tài)。在實際中,閉環(huán)(反饋)控制的方法多種多樣,應用于不同領域和各個方面,當前廣泛應用并快速發(fā)展的有:最優(yōu)控制,自適應控制,專家控制(即以專家知識庫為基

28、礎建立控制規(guī)則和程序),模糊控制,容錯控制,智能控制等。</p><p>  開環(huán)控制也叫程序控制,這是按照事先確定好的程序,依次發(fā)出信號去控制對象。按信號產(chǎn)生的條件,開環(huán)控制有時限控制,次序控制,條件控制。20世紀80年代以來,用微電子技術生產(chǎn)的可編程序控制器在工業(yè)控制(電梯,多工步機床,自來水廠)中得到廣泛應用。當然,一些復雜系統(tǒng)或過程常常綜合運用多種控制類型和多類控制程序。</p><p

29、>  2.2 溫控風扇系統(tǒng)概述</p><p>  2.2.1 系統(tǒng)總體設計思路</p><p>  DSP (Digital Signal Processor)作為獨特的微處理器,是以數(shù)字信號來處理大量的信息的器件。其工作原理是接收模擬信號[3]。</p><p>  本系統(tǒng)的設計是以單片機控制芯片AT89C51為核心,通過溫度傳感器(DS18B20

30、)采集環(huán)境溫度,便用液晶屏(LCD1602)顯示,以便于對環(huán)境溫度實行時時監(jiān)測,同時根據(jù)所采集的溫度和應用需要,再由單片機控制驅動芯片(L298N),從而控制直流減速電機,實現(xiàn)轉速控制。</p><p>  其原理框圖如下圖所示:</p><p>  圖2-1 典型的DSP系統(tǒng)框圖</p><p>  2.2 80C51單片機的介紹</p><p

31、>  2.2.1 單片機P0引腳的介紹 </p><p>  P0端口(P0.0~P0.7,39~32引腳):P0口是一個漏極開路的8位雙向I/O口。作為輸出端口,每個引腳能驅動8個TTL負載,對端口P0寫入“1”時,可以作為高阻抗輸入。在訪問外部程序和數(shù)據(jù)存儲器時,P0口也可以提供低8位地址和8位數(shù)據(jù)的復用總線。此時,P0口內部上拉電阻有效。在Flash ROM編程時,P0端口接收指令字節(jié);而在

32、校驗程序時,則輸出指令字節(jié)。驗證時,要求外接上拉電阻。</p><p>  2.2.2單片機P1引腳的介紹</p><p>  P1端口(P1.0~P1.7,1~8引腳):P1口是一個帶內部上拉電阻的8位雙向I/O口。P1的輸出緩沖器可驅動(吸收或者輸出電流方式)4個TTL輸入。對端口寫入1時,通過內部的上拉電阻把端口拉到高電位,這是可用作輸入口。P1口作入口使用時,因為有內部上拉電阻,那

33、些被外部拉低的引腳會輸出一個電流。</p><p>  2.2.3單片機P2引腳介紹</p><p>  P2端口(P2.0~P2.7,21~28引腳):P2口是一個帶內部上拉電阻的8位雙向I/O端口。P2的輸出緩沖器可以驅動(吸收或輸出電流方式)4個TTL輸入。對端口寫入1時,通過內部的上拉電阻把端口拉到高電平,這時可用作輸入口。P2作為輸入口使用時,因為有內部的上拉電阻,那些被外部信號

34、拉低的引腳會輸出一個電流。</p><p>  2.2.4單片機P3引腳介紹</p><p>  P3端口(P3.0~P3.7,10~17引腳):P3是一個帶內部上拉電阻的8位雙向I/O端口。P3的輸出緩沖器可驅動(吸收或輸出電流方式)4個TTL輸入。對端口寫入1時,通過內部的上拉電阻把端口拉到高電位,這時可用作輸入口。P3做輸入口使用時,因為有內部的上拉電阻,那些被外部信號拉低的引腳會輸

35、入一個電流。</p><p>  2.2.5對單片機復位電路和振蕩電路介紹</p><p>  復位電平持續(xù)時間最好大于10個機器周期,機器周期是晶振頻率12分頻的倒數(shù) 只要能滿足RC>10T的要求。故復位電路采用4.7K電阻和100μF的電解電容足夠了。</p><p><b>  2.3顯示模塊</b></p><

36、p>  2.3.1 LCD1602與單片機的接口如圖所示</p><p>  圖3-3-1LCD1602與單片機的接口</p><p>  2.3.2 1602液晶屏引腳介紹。</p><p>  第1腳:VSS為電源地   第2腳:VCC接5V電源正極   第3腳:V0為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會 產(chǎn)生

37、“鬼影”,使用時可以通過一個10K的電位器調整對比度)。   第4腳:RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。第5腳:RW為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。 第6腳:E(或EN)端為使能(enable)端。 第7~14腳:D0~D7為8位雙向數(shù)據(jù)端。第15~16腳:空腳或背燈電源。15腳背光正極,16腳背光負極。 </p><p>  2.3.3 16

38、02液晶屏的特性</p><p>  +3.3V電壓,對比度可調 , 內含復位電路 提供各種控制命令,如:清屏、字符閃爍、光標閃爍、顯示移位等多種功能 ,有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM ,內建有192個5X7點陣的字型的字符發(fā)生器CGROM ,8個可由用戶自定義的5X7的字符發(fā)生器CGRAM </p><p>  2.3.4 1602液晶屏的優(yōu)點</p><p>

39、;  微功耗、體積小、顯示內容豐富、超薄輕巧,常用在袖珍式儀表和低功耗應用系統(tǒng)中。 </p><p>  2.3.5 1602液晶屏的操作控制</p><p>  注:關于E=H脈沖——開始時初始化E為0,然后置E為1。   字符集   1602液晶模塊內部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯數(shù)字、英文字母的大小寫、常用的符號、和日文假名等

40、,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”。   因為1602識別的是ASCII碼,試驗可以用ASCII碼直接賦值,在單片機編程中還可以用字符型常量或變量賦值,如'A’。   以下是1602的16進制ASCII碼表地址: </p><p>  讀的時候,先讀左邊那列,再讀上面那行,如:

41、感嘆號!的ASCII為0x21,字母B的ASCII為0x42(前面加0x表示十六進制) </p><p>  2.3.6 1602液晶屏的指令集</p><p>  1602通過D0~D7的8位數(shù)據(jù)端傳輸數(shù)據(jù)和指令。顯示模式設置: (初始化) 0011 1000 [0x38] 設置16×2顯示,5×7點陣,8位數(shù)據(jù)接口; 顯示開關及光標設置:(初始化) 0000 1DC

42、B D顯示(1有效)、C光標顯示(1有效)、B光標閃爍(1有效) 0000 01NS N=1(讀或寫一個字符后地址指針加1 &光標加1),N=0(讀或寫一個字符后地址指針減1 &光標減1),S=1 且 N=1 (當寫一個字符后,整屏顯示左移) s=0 當寫一個字符后,整屏顯示不移動 數(shù)據(jù)指針設置:數(shù)據(jù)首地址為80H,所以數(shù)據(jù)地址為80H+地址碼(0-27H,40-67H) 其他設置:01H(顯示清屏,數(shù)據(jù)指針=0,所有顯

43、示=0);02H(顯示回車,數(shù)據(jù)指針=0)。</p><p>  2.4 溫度檢測模塊</p><p>  2.4.1DS18B20的主要特性   </p><p>  1.1、適應電壓范圍更寬,電壓范圍:3.0~5.5V,在寄生電源方式下可由數(shù) 據(jù)線供電   1.2、獨特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20

44、的雙向通訊   1.3、 DS18B20支持多點組網(wǎng)功能,多個DS18B20可以并聯(lián)在唯一的三線上,實現(xiàn)組網(wǎng)多點測溫   1.4、DS18B20在使用中不需要任何外圍元件,全部 傳感元件及轉換電路集成在形如一只三極管的集成電路內   1.5、溫范圍-55℃~+125℃,在-10~+85℃時精度為±0.5℃   1.6、可編程 的分辨率為9~12位,對應的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃,可實現(xiàn)

45、高精度測溫   1.7、在9位分辨率時最多在 93.75ms內把溫度轉換為數(shù)字,12位分辨率時最多在750ms內把溫度值轉換為數(shù)字,速度更快   1.8、測量結果直接輸出數(shù)字溫度信號,以"一 線總線"串行傳送給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力   1.9、負壓特性:電源極性接反時,芯片不會因發(fā)熱而燒毀, 但不能正常工作。   2、DS18B20的</p><p>  2

46、.4.2 DS18B20的管腳  </p><p>  DS18B20的讀寫時序和測溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉換時的延時時間由2s 減為750ms。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計數(shù)器1。高溫度系數(shù)晶振 隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號作為計數(shù)器2的脈沖輸入。計數(shù)器1和溫度寄存器被預置在-55℃所對應的一個基數(shù)

47、值。計數(shù)器1對 低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當計數(shù)器1的預置值減到0時,溫度寄存器的值將加1,計數(shù)器1的預置將重新被裝入,計數(shù)器1重 新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即 為所測溫度。圖3中的斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正計數(shù)器1的預置值。</p><p>  DS18B20引腳的功

48、能:(1)DQ為數(shù)字信號輸入/輸出端;(2)GND為電源地;(3)VDD為外接供電電源輸入端(在寄生電源接地方式時接地)。</p><p>  2.4.3 DS18B20溫度傳感器的存儲器</p><p>  DS18B20溫度傳感器的存儲器 DS18B20溫度傳感器的內部存儲器包括一個高速暫存RAM和一個非易失性的可電擦除的EEPRAM,后者存放高溫度和低溫度觸發(fā)器 TH、TL和結構寄存

49、器。      </p><p>  2.4.4 DS18B20的應用電路</p><p>  DS18B20的應用電路DS18B20測溫系統(tǒng)具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點。下面就是DS18B20幾個不同應用方式下的 測溫電路圖:5.1、DS18B20寄生電源供電方式電路圖,在寄生電源供電方式下,DS18B20從單線信號線上汲取能量:在信號線DQ處于高電平期間把能

50、量儲存在內部 電容里,在信號線處于低電平期間消耗電容上的電能工作,直到高電平到來再給寄生電源(電容)充電。 獨特的寄生電源方式有三個好處:1)進行遠距離測溫時,無需本地電源 2)可以在沒有常規(guī)電源的條件下讀取ROM 3)電路更加簡潔,僅用一根I/O口實現(xiàn)測溫要想使DS18B20進行精確的溫度轉換,I/O線必須保證在溫度轉換期間提供足夠的能量,由 于每個DS18B20在溫度轉換期間工作電流達到1mA,當幾個溫度傳感器掛在同一根I/O線上進

51、行多點測溫時,只靠4.7K上拉電阻就無法提供足夠的 能量,會造成無法轉換溫度或溫度誤差極大。因此,圖4電路只適應于單一溫度傳感器測溫情況下使用,不適宜采用電池供電系統(tǒng)中。并 且工作電源VCC必須保證在5V,當電源電壓下降時,寄生電源能夠汲取的能量也降低,會使溫度誤</p><p>  第3章 系統(tǒng)的軟件設計</p><p>  3.1 軟件設計思路分為兩層:</p><

52、;p>  3.1.1 第一層是該系統(tǒng)各個模塊獨立運作:</p><p>  DS18B20收集體表溫度傳到單片機后經(jīng)處理現(xiàn)實在數(shù)碼管上,顯示室溫或者體表溫度。如圖3.1所示</p><p>  圖3.1 數(shù)據(jù)采集部分軟件</p><p>  直流電機通過驅動電路轉動,正常運作,可以手動調節(jié)滑動變阻器來人為改變風速。</p><p> 

53、 通過按鈕可以調節(jié)溫度的上限t1和下限t2,并且顯示在數(shù)碼管上,單片機最小系統(tǒng)作為處理核心。如圖4所示</p><p>  圖3.2 按鈕設置上下限</p><p>  3.1.2 第二層是系統(tǒng)構成一個整體后,形成智能溫度控制調速:</p><p>  用按鈕設定溫度的上下限t1和t2,也就相應的規(guī)定了風扇的工作范圍,通過轉換按鈕調節(jié)顯示在數(shù)碼管上的數(shù)字,此時作為

54、處理系統(tǒng)的單片機最小系統(tǒng),記錄下溫度上下限,傳感器模塊接收溫度信息,比較記錄下的溫度上下限后進行風速分級控制,驅動電路驅動直流電機。整個系統(tǒng)協(xié)同合作,形成智能溫度控制調速。程序流程圖如圖5所示</p><p>  圖3.3 軟件系統(tǒng)程序流程圖</p><p><b>  第4章 仿真實驗</b></p><p><b>  4.1仿真

55、過程</b></p><p>  電路用protues仿真軟件進行硬件電路和軟件結合的仿真,系統(tǒng)軟件利用KeilC51進行編輯編譯,生成單片機系統(tǒng)的可執(zhí)行HEX文件。仿真通過了。</p><p>  4.2 Protues仿真圖 </p><p>  圖4-2 Protues仿真圖</p>&

56、lt;p><b>  結論</b></p><p>  在本次課程設計選題后,我首先查閱了大量的關于溫度控制內類書籍、學術論文等相關資料。從而制定出本此課程設計的研究步驟。本次課程設計首先從直流電機的驅動開始,逐步深入,通過認真分析L298N,H橋等驅動電路原理,總結各類驅動電路的優(yōu)缺點,從而選擇了H橋電路。接著,通過查閱相關資料,然后使用proteus完成了仿真,并且通過焊接萬用板,

57、單片機最小系統(tǒng),傳感器模塊,顯示模塊等,制作出實物。該實物功能較良好,性能較穩(wěn)定,基本達到了設計目的。但是,在本次設計中還存在一些不足。有客觀上的原因,如元器件購買不易,設計時間較緊等。同時也有主觀上的原因。如在畫電路圖時會由于粗心造成錯誤,雖然后期檢查出來了,但還是已經(jīng)造成了時間的浪費。又如后期論文的寫作過程中會忘記及時保存和備份從而導致不必要的丟失,加大了工作量。通過本次課程設計使我熟悉了科學設計的基本步驟,掌握了學術論文的寫作方法

58、,同時發(fā)現(xiàn)自身的不足,使之得以及時改正,從而為今后的工作、生活、學習打下良好的基礎。</p><p><b>  參考文獻</b></p><p>  [1]李朝青,單片機原理及接口技術[M]北航大學出版社 </p><p>  [2]史洪宇,熱釋人體紅外智能溫控風扇[J]山西電子技術 2010,4</p>&

59、lt;p> ?。?]榮俊昌,新型電扇原理及維修[M]北京:高等教育出版社,1990:15—20 </p><p>  [4]于蓉,丁兆花,李宇清.溫控風扇設計[N]科技咨詢導報.2007, 17</p><p> ?。?]周育才,劉少軍.基于ds18b20分組方式測溫系統(tǒng)設計[J]微計算機信息,2007,1(1):161-163. </p><

60、p> ?。?]潘笑,徐辛西.基于單總線數(shù)字傳感器的溫度采集器. [J]中國儀器儀表,2005,(06):120-123</p><p>  [7]吳金戌,沈慶陽,郭亭吉.8051單片機實踐與應用 第一版[M]北京:清華大學出版社,2002,(08)</p><p> ?。?]謝志平.基于單片機控制的智能風扇[J]中國新技術新產(chǎn)品2011,2:148-148</p>&l

61、t;p> ?。?]張文兵.智能無級溫控調速電風扇[J]《微特電機》2007 ,12</p><p> ?。?0]吳金戌,沈慶陽,郭亭吉.8051單片機實踐與應用 第一版[M]北京:清華大學出版社,2002,(08)</p><p> ?。?1]馬忠梅.單片機的c語言的應用程序設計 第一版[M]北京:北航大學出版社,1997</p><p> ?。?2]張毅剛,

62、彭喜源,譚曉昀. MCS-51單片機應用設計[M]哈爾濱:哈爾濱工業(yè)大學出版社,1997</p><p>  [13]江思敏,姚鵬翼,胡榮.Protel電路設計教程[M].清華大學.2002</p><p> ?。?4]童詩白,華成英.模擬電子技術基礎[M].北京:高等教育出版社,2000</p><p> ?。?5]明德剛,ds18b20在單片機溫控系統(tǒng)中的運用[

63、J].貴州:貴州大學學報(自然科學版),2006,(01)</p><p>  [16]譚浩強,C語言程序設計[M]北京:清華大學出版社,1991</p><p> ?。?7]郭天祥,新概念51單片機教程[M]北京:電子工業(yè)出版社,2008</p><p> ?。?8]康華光,電子技術基礎 數(shù)字部分(第四版)[M]北京:高等教育出版社,2002</p>

64、<p>  [19]馬云峰,單片機與數(shù)字溫度傳感器DS18B20的接口設計[J]計算機的測量與設置,2007,10</p><p><b>  附錄</b></p><p>  #include<reg51.h> //包含單片機寄存器的頭文件</p><p>  #include<intrins.h>

65、 //包含_nop_()函數(shù)定義的頭文件</p><p>  #include<TempCollect_And_LCDShow.h> //包含DS18b20初始化及l(fā)cd液晶顯示的頭文件</p><p>  sbit beep=P3^6; //定義蜂鳴器接口</p><p>  sbit In1=P2^3; //定義L298n輸入端1接口&

66、lt;/p><p>  sbit In2=P2^4; //定義L298n輸入端2接口</p><p>  sbit ledred=P1^7; //定義轉速指示燈紅燈的接口</p><p>  sbit ledgreen=P1^6;//定義轉速指示燈綠燈的接口</p><p>  sbit PWM=P2^7; //定義脈沖方波輸出接口

67、 </p><p>  unsigned int th0=177,tl0=224,th1=250,tl1=36; //設定計時器初值</p><p>  unsigned char TL; //儲存暫存器的溫度低位</p><p>  unsigned char TH; //儲存暫存器的溫度高位</p><p>  uns

68、igned char TN; //儲存溫度的整數(shù)部分</p><p>  unsigned char TD; //儲存溫度的小數(shù)部分</p><p>  //###################初始化定時器0#####################</p><p>  void InitTimer0(void) </p><

69、p><b>  {</b></p><p>  TMOD=0x11; //模式1</p><p>  TH0=th0; //設定初值</p><p><b>  TL0=tl0;</b></p><p>  EA=1; //開啟總中斷</p><p>  ET

70、0=1; //開啟定時器0中斷 </p><p><b>  }</b></p><p>  //####################初始化定時器1######################</p><p>  void InitTimer1(void) </p><p><b>  {</b

71、></p><p>  TMOD=0x11; //模式1</p><p>  TH1=th1; //設定初值</p><p>  TL1=tl1; //最初位置為0</p><p>  EA=1; //開啟總中斷</p><p>  ET1=1; //開啟定時器1中斷 </p>&l

72、t;p><b>  }</b></p><p>  //####################定時中斷0#########################</p><p>  void Timer0Interrupt(void) interrupt 1</p><p><b>  {</b></p>

73、<p><b>  //20ms中斷</b></p><p>  TH0=th0; //重裝T0初值</p><p><b>  TL0=tl0;</b></p><p>  TR1=1; //開啟定時器1</p><p>  PWM=1; //變?yōu)楦唠娖?lt;/p>&

74、lt;p>  // P1^2=1;</p><p>  // delay();</p><p><b>  //P1^2=0;</b></p><p><b>  }</b></p><p>  //######################定時中斷1####################

75、#</p><p>  void Timer1Interrupt(void) interrupt 3</p><p><b>  {</b></p><p>  //0.5~2.5ms中斷</p><p>  TH1=th1; //重裝T1初值</p><p><b>  TL1=t

76、l1;</b></p><p>  TR1=0; //關閉定時器1</p><p>  PWM=0; //變?yōu)榈碗娖?lt;/p><p>  // P1^2=1;</p><p>  // delay();</p><p><b>  //P1^2=0;</b></p>

77、<p><b>  }</b></p><p>  //#############方波輸出########################</p><p>  void pwmout(void)</p><p><b>  {</b></p><p>  TR0=1; //開啟定時器0

78、</p><p>  TR1=1; //開啟定時器1</p><p><b>  PWM=1;</b></p><p>  ledgreen=0; </p><p><b>  ledred=1;</b></p><p><b>  }</b><

79、;/p><p>  //##################根據(jù)temperature計算初值###################</p><p>  void timer0value(void)</p><p><b>  { </b></p><p>  ReadyReadTemp(); //讀溫度準備&l

80、t;/p><p>  TL=ReadOneChar(); //先讀的是溫度值低位</p><p>  TH=ReadOneChar(); //接著讀的是溫度值高位</p><p>  TN=TH*16+TL/16; //實際溫度值=(TH*256+TL)/16,即:TH*16+TL/16</p><p>  //這樣得出的是

81、溫度的整數(shù)部分,小數(shù)部分被丟棄了</p><p>  if((TN>25)&&(TN<28))</p><p><b>  {</b></p><p>  th1=(unsigned int)(65536-0.3*(TN)*(TN)*(TN))/256; //重賦初值</p><p> 

82、 tl1=(unsigned int)(65536-0.3*(TN)*(TN)*(TN))%256;</p><p><b>  } </b></p><p>  else {} </p><p><b>  }</b></p><p>  /*************************

83、****************************************</p><p>  ******************************************************************</p><p><b>  系統(tǒng)主函數(shù)</b></p><p>  *********************

84、*********************************************</p><p>  *****************************************************************/</p><p>  void main(void)</p><p><b>  { </b><

85、/p><p><b>  PWM=0;</b></p><p><b>  In1=1;</b></p><p><b>  In2=0; </b></p><p>  LcdInitiate(); //將液晶初始化</p><p>  de

86、laynms(5); //延時5ms給硬件一點反應時間</p><p>  display_start(); //顯示系統(tǒng)啟動界面</p><p>  if(Init_DS18B20()==1) //判斷是否檢測到DS18B20</p><p>  display_error(); //顯示沒有檢測到溫度</p>&l

87、t;p>  display_symbol(); //顯示溫度說明</p><p>  display_dot(); //顯示溫度的小數(shù)點</p><p>  display_cent(); //顯示溫度的單位</p><p>  InitTimer0();</p><p>  InitTimer1();

88、</p><p><b>  while(1)</b></p><p><b>  { </b></p><p><b>  beep=1;</b></p><p>  ReadyReadTemp(); //讀溫度準備</p><p>  TL=

89、ReadOneChar(); //先讀的是溫度值低位</p><p>  TH=ReadOneChar(); //接著讀的是溫度值高位</p><p>  TN=TH*16+TL/16; //實際溫度值=(TH*256+TL)/16,即:TH*16+TL/16</p><p>  //這樣得出的是溫度的整數(shù)部分,小數(shù)部分被丟棄了</p&g

90、t;<p>  TD=(TL%16)*10/16; //計算溫度的小數(shù)部分,將余數(shù)乘以10再除以16取整,</p><p>  //這樣得到的是溫度小數(shù)部分的第一位數(shù)字(保留1位小數(shù))</p><p>  display_temp1(TN); //顯示溫度的整數(shù)部分</p><p>  display_temp2(TD); //顯示溫

91、度的小數(shù)部分</p><p>  timer0value(); //重置定時器初值</p><p>  if((TN>25)&&(TN<35)) </p><p><b>  { </b></p><p>  display_explain1();//說明系統(tǒng)溫度正常</p

92、><p>  pwmout(); //輸出方波</p><p><b>  } </b></p><p>  else if((TN>=35)&&(TN<50))</p><p><b>  {</b></p><p>  TR0 = 0; /

93、/關定時器0</p><p>  TR1 = 0; //關定時器1</p><p>  display_explain1();//說明系統(tǒng)溫度正常</p><p>  PWM=1; //風扇全速運行</p><p><b>  ledred=0;</b></p><p>  ledgre

94、en=1;</p><p><b>  }</b></p><p>  else if(TN>=50)</p><p><b>  {</b></p><p>  TR0 = 0; //關定時器0</p><p>  TR1 = 0; //關定時器1</p&g

95、t;<p><b>  PWM = 1;</b></p><p>  beep=0; //開蜂鳴器</p><p>  display_explain2(); //說明系統(tǒng)溫度正過高</p><p><b>  ledred=0;</b></p><p>  ledgreen=0;

96、</p><p>  delaynms(50);</p><p><b>  ledred=1;</b></p><p>  ledgreen=1;</p><p>  delaynms(50);</p><p><b>  } </b></p><

97、;p><b>  else</b></p><p><b>  {</b></p><p>  TR0 = 0; //關定時器0</p><p>  TR1 = 0; //關定時器1</p><p>  display_explain1();//說明系統(tǒng)溫度正常</p>&

98、lt;p><b>  PWM=0;</b></p><p>  ledgreen=1;</p><p><b>  ledred=1;</b></p><p><b>  }</b></p><p><b>  }</b></p>&

99、lt;p><b>  }</b></p><p>  包含DS18b20初始化及l(fā)cd液晶顯示的頭文件: TempCollect_And_LCDShow.h</p><p>  /********************************************************************************</p>

100、<p>  *********************************************************************************</p><p>  TempCollect_And_LCDShow.h</p><p>  溫度傳感器DS18B20初始化及LCD液晶顯示模塊</p><p>  *********

101、************************************************************************</p><p>  ********************************************************************************/</p><p>  unsigned char code di

102、git[10]={"0123456789"}; //定義字符數(shù)組顯示數(shù)字</p><p>  unsigned char code Str1[]={"CurriculumDesign"}; //系統(tǒng)啟動界面 </p><p>  unsigned char code Str2[]={"SCM"};</p>

103、<p>  unsigned char code Str3[]={"Make By:"};</p><p>  unsigned char code Str4[]={"He YuanQing"};</p><p>  unsigned char code Str5[]={"System starting"};</p

104、><p>  unsigned char code Str6[]={"......"};</p><p>  unsigned char code Stra[]={"System Work Fine"}; //說明系統(tǒng)運行正常</p><p>  unsigned char code Strb[]={"System

105、 Work Faul"}; //說明系統(tǒng)溫度過高</p><p>  unsigned char code Error[]={"Error!Check!"}; //說明沒有檢測到DS18B20</p><p>  unsigned char code Temp[]={"Temp:"}; //說明

106、顯示的是溫度</p><p>  unsigned char code Cent[]={"Cent"}; //溫度單位</p><p>  /*******************************************************************************</p><p>

107、  ********************************************************************************</p><p>  以下是對液晶模塊的操作程序</p><p>  *******************************************************************************

108、*</p><p>  *******************************************************************************/</p><p>  sbit RS=P1^0; //寄存器選擇位,將RS位定義為P2.0引腳</p><p>  sbit RW=P1^1;

109、//讀寫選擇位,將RW位定義為P2.1引腳</p><p>  sbit E=P1^2; //使能信號位,將E位定義為P2.2引腳</p><p>  sbit BF=P0^7; //忙碌標志位,,將BF位定義為P0.7引腳</p><p>  /***************************************

110、**************</p><p>  函數(shù)功能:延時1ms</p><p>  (3j+2)*i=(3×33+2)×10=1010(微秒),可以認為是1毫秒</p><p>  ***************************************************/</p><p>  void

111、 delay1ms()</p><p><b>  {</b></p><p>  unsigned char i,j;</p><p>  for(i=0;i<10;i++)</p><p>  for(j=0;j<33;j++)</p><p><b>  ;</b

112、></p><p><b>  }</b></p><p>  /*****************************************************</p><p>  函數(shù)功能:延時若干毫秒</p><p><b>  入口參數(shù):n</b></p>&l

113、t;p>  ***************************************************/</p><p>  void delaynms(unsigned int n)</p><p><b>  {</b></p><p>  unsigned int i;</p><p>  for

114、(i=0;i<n;i++)</p><p>  delay1ms();</p><p><b>  }</b></p><p>  /*****************************************************</p><p>  函數(shù)功能:判斷液晶模塊的忙碌狀態(tài)</p>

115、<p>  返回值:result。result=1,忙碌;result=0,不忙</p><p>  ***************************************************/</p><p>  bit BusyTest(void)</p><p><b>  {</b></p><

116、;p>  bit result;</p><p>  RS=0; //根據(jù)規(guī)定,RS為低電平,RW為高電平時,可以讀狀態(tài)</p><p><b>  RW=1;</b></p><p>  E=1; //E=1,才允許讀寫</p><p>  _nop_(); //空操作</p&

117、gt;<p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p>  _nop_(); //空操作四個機器周期,給硬件反應時間</p><p>  result=BF; //將忙碌標志電平賦給result</p><p> 

溫馨提示

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

評論

0/150

提交評論