基于單片機的溫控風扇控制設計論文_第1頁
基于單片機的溫控風扇控制設計論文_第2頁
基于單片機的溫控風扇控制設計論文_第3頁
基于單片機的溫控風扇控制設計論文_第4頁
基于單片機的溫控風扇控制設計論文_第5頁
已閱讀5頁,還剩34頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 PAGE31 / NUMPAGES39 科學技術學院NANCHANGUNIVERSITYCOLLEGE OFSCIENCE AND TECHNOLOGY 學 士 學 位 論 文 THESIS OF BACHELOR(2012 20 13 年)題 目 基于單片機AT89S52的溫控風扇的設計 學 科 部: 信息學科部 專 業: 通信工程 摘 要生活中,我們經常會使用到電風扇。比如,在炎熱的夏天人們用電風扇來降溫;在工業生產中,大型機械用電風扇來散熱等。但是當環境溫度變化的時候,人工很難做到與時控制風扇的轉速,也很難有效利用寶貴的電資源。隨著溫度控制的技術不斷發展,溫控技術已經完全滿足現代的日常

2、生活和生產的要求,應運而生的溫控電風扇也逐漸走進了人們的生活中。溫控電風扇可以根據環境溫度自動調節電風扇啟停與轉速,在實際生活的使用中,溫控電風扇不僅可節省寶貴的電資源,也大大方便了人們的生活和生產。溫控風扇是利用溫度的變化控制風扇啟停與轉速的智能系統,在現代社會中的生產以與人們的日常生活中都有廣泛的應用,如工業生產大型機械散熱系統中的風扇、現在筆記本電腦上的廣泛應用的智能CPU風扇等。本文設計了基于單片機的溫控風扇系統,用單片機為控制器,利用溫度傳感器DS18B20作為溫度采集元件,并根據采集到的溫度,通過一個達林頓反向驅動器ULN2803驅動風扇電機。根據檢測到的溫度與系統設定的溫度比較實

3、現風扇電機的自動啟動和停止,并能根據溫度的變化自動改變風扇電機的轉速,同時用LED八段數碼管顯示檢測到的溫度與設定的溫度。系統的預設溫度的設置是通過兩個獨立按鍵來實現的,一個增大預設溫度,一個減小預設溫度。 關鍵詞: 單片機;DS18B20;溫控;風扇ABSTRACTIn life, we often use to electric fan. For example, in the hot summer people use electric fan to cool; in industrial production, large-scale machinery use electric fa

4、n for cooling. But when the environmental temperature changes, artificial hard to timely control the speed of the fan, is also very difficult to effectively utilize valuable resources. With the development of technology of temperature control, temperature control technology has been fully meet the m

5、odern daily life and production requirements, emerge as the times require temperature-controlled electric fan has gradually entered peoples life.Temperature control electric fan according to the ambient temperature automatic regulating electric fan start / stop and speed, in real life use, temperatu

6、re-controlled electric fan not only can save valuable resources, also brings great convenience for peoples life and production.Temperature control fan in modern society production and peoples daily life have a wide range of applications, Such as industrial production of large mechanical cooling syst

7、em of fan, now notebook computer on a wide range of application of intelligent CPU fan. This paper introduces the design of MCU based temperature control fan system, using SCM as the controller, use of temperature sensor DS18B20 as a temperature acquisition component, and according to the collected

8、temperature, through a Darlington reverse driving fan motor driver ULN2803. According to the detected temperature and a set temperature to achieve system comparison of fan motor for automatic start and stop, and according to temperature changes automatically change the fan motor speed, at the same t

9、ime with the LED eight digital tube display the detected temperature and a set temperature.The preset temperature set by two independent buttons to achieve, The one increase the preset temperature, and the another one reduced the preset temperature.Key words:single chip microcomputer; DS18B20; tempe

10、rature control; fan目 錄 TOC o 1-3 h z u HYPERLINK l _Toc325357531第一章 前 言 PAGEREF _Toc325357531 h 1HYPERLINK l _Toc325357532第二章 整體方案設計 PAGEREF _Toc325357532 h 2HYPERLINK l _Toc3253575332.1 系統整體的設計 PAGEREF _Toc325357533 h 2HYPERLINK l _Toc3253575342.2方案論證 PAGEREF _Toc325357534 h 2HYPERLINK l _Toc325357

11、5352.2.1 溫度傳感器的選擇 PAGEREF _Toc325357535 h 3HYPERLINK l _Toc3253575362.2.2 控制核心的選擇 PAGEREF _Toc325357536 h 3HYPERLINK l _Toc3253575372.2.3 溫度顯示器件的選擇 PAGEREF _Toc325357537 h 4HYPERLINK l _Toc3253575382.2.4 調速方式的選擇 PAGEREF _Toc325357538 h 4HYPERLINK l _Toc325357539第三章 各單元模塊的硬件設計 PAGEREF _Toc325357539 h

12、 6HYPERLINK l _Toc3253575403.1 系統器件簡介 PAGEREF _Toc325357540 h 6HYPERLINK l _Toc3253575413.1.1 DS18B20單線數字溫度傳感器簡介 PAGEREF _Toc325357541 h 6HYPERLINK l _Toc3253575423.1.2 達林頓反向驅動器ULN2803簡介 PAGEREF _Toc325357542 h 6HYPERLINK l _Toc3253575433.1.3 AT89C52單片機簡介 PAGEREF _Toc325357543 h 7HYPERLINK l _Toc325

13、3575443.1.4 LED數碼管簡介 PAGEREF _Toc325357544 h 9HYPERLINK l _Toc3253575453.2電路設計 PAGEREF _Toc325357545 h 10HYPERLINK l _Toc3253575463.2.1 開關復位與晶振電路 PAGEREF _Toc325357546 h 10HYPERLINK l _Toc3253575473.2.2 獨立按鍵連接電路 PAGEREF _Toc325357547 h 11HYPERLINK l _Toc3253575483.2.3 數碼管顯示電路 PAGEREF _Toc325357548 h

14、 12HYPERLINK l _Toc3253575493.2.4 溫度采集電路 PAGEREF _Toc325357549 h 13HYPERLINK l _Toc3253575503.2.5 風扇電機驅動與調速電路 PAGEREF _Toc325357550 h 14HYPERLINK l _Toc3253575513.2.6 電路總圖 PAGEREF _Toc325357551 h 15HYPERLINK l _Toc325357552第四章 軟件設計 PAGEREF _Toc325357552 h 17HYPERLINK l _Toc3253575534.1 程序設置 PAGEREF

15、_Toc325357553 h 17HYPERLINK l _Toc3253575544.1.1 主要程序代碼 PAGEREF _Toc325357554 h 18HYPERLINK l _Toc3253575554.2 用Keil C51 編寫程序 PAGEREF _Toc325357555 h 20HYPERLINK l _Toc3253575564.3 用Proteus進行仿真 PAGEREF _Toc325357556 h 21HYPERLINK l _Toc3253575574.3.1 Proteus簡介 PAGEREF _Toc325357557 h 21HYPERLINK l _

16、Toc3253575584.3.2 本設計基于Proteus的仿真 PAGEREF _Toc325357558 h 22HYPERLINK l _Toc325357559第五章 系統調試 PAGEREF _Toc325357559 h 26HYPERLINK l _Toc3253575605.1 軟件調試 PAGEREF _Toc325357560 h 26HYPERLINK l _Toc3253575615.1.1 按鍵顯示部分的調試 PAGEREF _Toc325357561 h 26HYPERLINK l _Toc3253575625.1.2 傳感器DS18B20溫度采集部分調試 PAG

17、EREF _Toc325357562 h 26HYPERLINK l _Toc3253575635.1.3 電動機調速電路部分調試 PAGEREF _Toc325357563 h 27HYPERLINK l _Toc3253575645.2 硬件調試 PAGEREF _Toc325357564 h 27HYPERLINK l _Toc3253575655.2.1 按鍵顯示部分的調試 PAGEREF _Toc325357565 h 27HYPERLINK l _Toc3253575665.2.2 傳感器DS18B20溫度采集部分調試 PAGEREF _Toc325357566 h 27HYPER

18、LINK l _Toc3253575675.2.3 電動機調速電路部分調試 PAGEREF _Toc325357567 h 28HYPERLINK l _Toc3253575685.3 系統功能 PAGEREF _Toc325357568 h 28HYPERLINK l _Toc3253575695.3.1 系統實現的功能 PAGEREF _Toc325357569 h 28HYPERLINK l _Toc3253575705.3.2 系統功能分析 PAGEREF _Toc325357570 h 28HYPERLINK l _Toc325357571第六章 結束語 PAGEREF _Toc32

19、5357571 h 29HYPERLINK l _Toc325357572參考文獻 PAGEREF _Toc325357572 h 30 第一章 前 言在現代的生活和生產中,電風扇被廣泛的使用,發揮著舉足輕重的作用,如夏天人們使用的散熱風扇、工業生產型機械中的散熱風扇以與現在筆記本電腦上廣泛使用的智能CPU風扇等。而隨著溫度控制技術的發展,為了降低風扇運轉時的噪音以與節省能源等,溫度控制風扇越來越受到重視并被廣泛的應用。在先階段,溫控風扇的設計已經有了一定的成效,可以使風扇根據環境溫度的變化進行自動無極調速,當環境溫度升高到到一定時能自動啟動風扇,并隨著環境溫度的升高自動加快風扇的轉速,當環境

20、溫度降到一定時能自動停止風扇的轉動,實現智能控制。本文設計了由ATMEL公司的8052系列單片機AT89C52作為控制器,采用DALLAS公司的溫度傳感器DS18B20作為溫度采集元件,并通過一個達林頓反向驅動器ULN2803驅動風扇電機的轉動。同時使系統檢測到的環境溫度以與系統預設的溫度動態顯示在LED數碼管上。根據系統檢測到的環境溫度與系統預設溫度的比較,實現風扇電機的自動啟動與停止以與轉速的自動調節。 第二章 整體方案設計2.1 系統整體的設計本設計的整體思路是:利用溫度傳感器DS18B20檢測環境溫度并直接輸出數字溫度信號給單片機AT89C52進行處理,在LED數碼管上顯示當前環境溫度

21、值以與預設溫度值。其中預設溫度值只能為整數形式,檢測到的當前環境溫度可精確到小數點后一位。同時采用PWM脈寬調制方式來改變直流風扇電機的轉速。并通過兩個按鍵改變預設溫度的大小,一個提高預設溫度,另一個降低預設溫度。系統結構框圖如圖2-1所示。AT89C52溫度顯示DS18B20復位晶振獨立按鍵PWM驅動電路直流電機圖2-1 系統構成框圖2.2方案論證本設計需要實現風扇直流電機的溫度控制,使風扇電機能根據環境溫度的變化自動啟動和停止以與轉速的自動調節,需要比較高的溫度變化分辨率以與穩定可靠的換擋停機控制部件。2.2.1 溫度傳感器的選擇在本設計中,溫度傳感器的選擇有一下兩種方案:方案一:使用數字

22、式的DS18B20集成溫度傳感器作為溫度檢測的核心元件,由其檢測并直接輸出數字信號給單片機進行處理。方案二:使用熱敏電阻作為檢測溫度的核心元件,并通過運算放大器放大,由于熱敏電阻會隨溫度變化而變化,進而產生輸出電壓變化的微弱電壓變化信號,再經模數轉換芯片ADC0809將微弱電壓變化信號轉化為數字信號輸入單片機處理。對于方案二,采用熱敏電阻作為溫度檢測元件,有價格便宜,元件容易購的優點,但是熱敏電阻對溫度的細微變化不太敏感,在信號采集、放大以與轉換的過程中還會產生失真和誤差,并且由于熱敏電阻的R-T關系的非線性,其自身對溫度的變化存在較大的誤差,雖然可以通過一定電路來修正,但這個不僅將使電路變得

23、更加復雜,而且在人體所處環境溫度變化過程中難以檢測到小的溫度變化。故該方案不適合本系統。對于方案一,由于數字式集成溫度傳感器DS18B20的高度集成化,大大降低了外界放大轉換等電路的誤差因數,溫度誤差變的很小,并且由于其檢測溫度的原理與熱敏電阻檢測的原理有著本質的不同,使得其溫度分辨力極高。溫度值在器件部轉化成數字量直接輸出,簡化了系統程序的設計,又由于該溫度傳感器采用先進的單總線技術,與單片機的接口變的非常簡潔,抗干擾能力強,因此該方案適用于本系統。2.2.2 控制核心的選擇在本設計中采用AT89C52單片機作為控制核心,通過軟件編程的方法進行溫度檢測和判斷,并在其I/O口輸出控制信號。AT

24、89C52單片機工作電壓低,性能高,片含8k字節的只讀程序存儲器ROM和256字節的隨機數據存儲器RAM,它兼容標準的MCS-51指令系統,單片機價格便宜,適合本設計系統。2.2.3 溫度顯示器件的選擇方案一:應用動態掃描的方式,采用LED共陰極數碼管顯示溫度。方案二:采用LCD液晶顯示屏顯示溫度。對于方案一,該方案成本很低,顯示溫度明確醒目,即使在黑暗空間也能清楚看見,功耗極低,同時溫度顯示程序的編寫也相對簡單,因而這種方式得到了廣泛的應用。但不足的地方是它采用動態掃描顯示方式,各個LED數碼管是逐個點亮的,因此會產生閃爍 ,但由于人眼的視覺暫留時間為20ms,故當數碼管掃描周期小于這個時間

25、時,人眼不會感覺到閃爍,因此只要掃描頻率設置得到即可采用該方案。對于方案二,液晶顯示屏具有顯示字符優美,其不僅能顯示字符甚至圖形,這是LED數碼管無法比擬的。但是液晶顯示模塊的元件價格昂貴,顯示驅動程序的編寫也較復雜,從簡單實用的角度考慮,本系統采用方案一。2.2.4 調速方式的選擇方案一:采用單片機軟件編程實現PWM(脈沖寬度調制)調速方法。PWM的英文全稱是:Pulse Width Modulation的縮寫,它是按一定的規律改變脈沖序列的脈沖寬度,一調節輸出量和波形的一種調節方式,在PWM驅動控制的調節系統中,最常用的是以矩形波PWM信號,早控制時需要調節PWM波的占空比。占空比是指高電

26、平持續時間在一個周期時間的百分比。在控制電機轉速時,占空比越大,轉速就越快,若全為高電平,占空比為100%時,轉速達到最大。用單片機I/O口輸出PWM信號時,有如下三種方法:(1)利用軟件延時。當高電平延時時間到時,對I/O電平取反,使其變成低電平,然后再延時一定時間;當低電平延時時間到時,再對I/O電平取反,使其變成高電平,如此循環即可得到PWM信號。在本設計中采用了此方法。(2)利用定時器。控制方法與(1)一樣,只是在該方法中利用單片機的定時器來定時進行高低電平的轉變,而不是用軟件延時。但是此方法編程相對復雜。(3)利用單片機自帶的PWM控制器。在STC12系列單片機中自身帶有PWM控制器

27、,但本系統所應用到的AT89C52單片機無此功能。對于方案一,該方案能夠直接實現對直流電機的無極調速,速度變化靈敏,但是D/A轉換芯片的價格較高,與其溫控狀態下無極調速功能相比價格較高。對于方案二,相對于其他用硬件或是軟件相結合的方法實現對電機進行調速而言,采用PWM用純軟件的方法來實現調速過程,具有更大的靈活性,并大大降低了成本,能夠充分發揮單片機的功能,對于簡單速度控制系統的實現提供了一種有效的途徑。綜合考慮選用方案二。 第三章 各單元模塊的硬件設計系統主要器件包括DS18B20溫度傳感器、AT89C52單片機、五位LED共陰數碼管、風扇直流電機,達林頓反向驅動器ULN2803。輔助元件包

28、括電阻、電容、電源、按鍵、撥碼開關等。3.1 系統器件簡介3.1.1 DS18B20單線數字溫度傳感器簡介DS18B20數字溫度傳感器,是采用美國DALLAS半導體公司生產的DS18B20可組網數字溫度傳感器芯片封裝而成,它具有微型化、低功耗、高性能、抗干擾能力強、易配微型處理器等優點,可直接將溫度轉化成串行數字信號供處理器處理。適用于各種狹小空間設備數字測溫和控制領域。DS18B20的主要特征:測量的結果直接以數字信號的形式輸出,以“一線總線”方式串行傳給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力;溫度測量圍在-55+125之間,在-10+85時精確度為0.5;可檢測溫度分辨率

29、為912位,對應的可分辨溫度分別為0.5,0.25,0.125和0.0625,可實現高精度測溫;它單線接口的獨特性,使它與微處理器連接時僅需一條端口線即可實現與微處理器的雙向通信;支持多點組網功能,即多個DS18B20可以并聯在唯一的三線上,實現組網多點測溫的功能;工作電壓圍寬,其圍在3.05.5V。DS18B20部結構主要有四部分:64位ROM、溫度傳感器、非揮發的溫度報警觸發器TH和TL、配置寄存器。其管腳有三個,其中DQ為數字信號端,GND為電源地,VDD為電源輸入端。3.1.2 達林頓反向驅動器ULN2803簡介本系統要用單片機控制風扇直流電機,需要加驅動電路,為直流電機提供足夠大的驅

30、動電流。在本系統驅動電路中,選用達林頓反向驅動器ULN2803來驅動風扇直流電機。ULN2803在使用時接口簡單,操作方便,可為電機提供較大的驅動電流,它實際上是一個集成芯片,單塊芯片可同時驅動8個電機。每個電機由單片機的一個I/O口輸出的為5V的TTL信號。UNL2803由8個NPN達林頓晶體管組裝而成,共18個引腳,引腳18分別是8路驅動器的輸入端,輸入信號可直接是TTL或是CMOS信號;引腳1118分別是8路驅動器的輸出端;引腳9為接地線,引腳10為電源輸入。當輸入TTL信號為5V或CMOS信號為615V時,輸出的最大電壓為50V,最大電流為500mA,工作溫度圍為070。本系統選用的電

31、機為12V直流無刷電機,可用ULN2803來驅動。3.1.3 AT89C52單片機簡介AT89C52是51系列單片機的一個型號,它是由ATMEL公司生產的一個低電壓、高性能的8位單片機,片器件采用ATMEL公司的非易失性、高密度存儲技術 ,與標準的MCS-51指令系統兼容,同時片設置有通用8位中央處理器和8k字節的可反復擦寫的只讀程序存儲器ROM以與256字節的數據存儲器RAM,在許多較復雜的控制系統中AT89C52單片機得到了廣泛的應用。AT89C52有40個引腳,各引腳介紹如下:VCC:+5V電源線;GND:接地線。P0口:P0.7P0.0,這組引腳共8條,其中P0.7為最高位,P0.0為

32、最低位。這8條引腳共有兩種不同的功能,分別適用于兩種不同的情況。第一種情況是單片機不帶片外存儲器,P0可以作為通用I/O口使用,P0.7P0.0用于傳送CPU的輸入/輸出數據,此時它需外接一上拉電阻才能正常工作。第二種情況是單片機帶片外存儲器,其各個引腳在CPU訪問片外存儲器時先是用于傳送片外存儲器的低8位地址,然后傳送CPU對片外存儲器的讀寫數據。P1口:P1口是一個部含有上拉電阻的8位雙向I/O口。它也可作為通用的I/O口使用,與P0口一樣用于傳送用戶的輸入輸出數據,所不同的是它片含上拉電阻而P0口沒有,故P0口在做該用途時需外接上拉電阻而P1口則不需要。在FLASH編程和校驗時,P1口用

33、于輸入片EPROM的低8位地址。P2口:P2口為一個部含有上拉電阻的8位雙向I/O口,它可以作為通用I/O口使用,傳送用戶的輸入/輸出數據,同時可與P0口的第二功能配合,用于輸出片外存儲器的高8位地址,共同選中片外存儲單元,但此時不能傳送存儲器的讀寫數據。在一些型號的單片機中,P2口還可以配合P1口傳送部EPROM的12位地址中的4位地址。P3口:P3口引腳是8個帶部上拉電阻的雙向I/O口,當P3口寫入1后,它們被部上拉為高電平,它也可以作為普通的I/O口使用,傳送用戶的輸入輸出數據,P3口也作為一些特殊功能端口使用,如圖3-1所示。P3.0:RXD(串行數據接受口),P3.1:TXD(串行數

34、據發送口)P3.2: (外部中斷0輸入),P3.3:(外部中斷1輸入)P3.4:T0(計數器0計數輸入),P3.5:T1(計時器1外部輸入)P3.6:(外部RAM寫選通信號)P3.7:(外部RAM讀選通信號)圖3-1 AT89C52單片機RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平狀態。ALE/:地址鎖存允許/編程線,當訪問片外存儲器時,在P0.7P0.0引腳線上輸出片外存儲器低8位地址的同時還在ALE/線上輸出一個高電位脈沖,其下降沿用于把這個片外存儲器低8位地址鎖存到外部專用地址鎖存器,以便空出P0.7P0.0引腳線去傳送隨后而來的片外存儲器讀寫數據。在不訪問片

35、外存儲器時,單片機自動在ALE/線上輸出頻率為1/6晶振頻率的脈沖序列。:外部程序存儲器ROM的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次有效。但在訪問外部數據存儲器時,這兩次有效的信號將不出現。/VPP:允許訪問片外存儲器/編程電源線,當保持低電平時,則在此期間允許使用片外程序存儲器,不管是否有部程序存儲器。當保持高電平時,則允許使用片程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1和XTAL2:片震蕩電路輸入線,這兩個端子用來外接石英晶體和微電容,即用來連接單片機片OSC的定時反饋回路。3.1.4 LED數碼管簡介本系統選用五個LED數碼管

36、來進行溫度顯示。LED又稱為數碼管,它主要有8段發光二極管組成的不同組合,其中ag為數字和字符顯示段,dp為小數點的顯示,通過ag這7個發光二極管點亮的不同組合,可以顯示09和AF共16個數字和字母。LED數碼管可以分為共陰極和共陽極兩種結構,如圖3-2(a)和圖3-2(b)所示。共陰極結構把8個發光二極管陰極連接在一起,共陽極結構是把8個發光二極管陽極連接在一起。通過單片機引腳輸出高低電平,可使數碼管顯示相應的數字或字母,這種使數碼管顯示字形的數據稱字形碼,又稱段選碼。 數碼管引腳 a.共陰極 b.共陽極圖3-2 七段LED數碼管表3-1 七段LED的段選碼表顯示字符共陰極段碼共陽極段碼顯示

37、字符共陰極段碼共陽極段碼03FHC0H87FH80H106HF9H96FH90H25BHA4HA77H88H34FHB0HB7FH83H466H99HC39HC6H56DH92HD3FHA1H67DH82HE79H86H707HF8HF71H8EH一個共陰極數碼管接至單片機的電路,要想顯示“7”,須a、b、c這3個顯示段發光(即這3個字段為高電平)只要在P0口輸入00000111(07H)即可。這里07H即為數字7的段選碼。字形與段選碼的關系見表3-1所示。3.2電路設計3.2.1 開關復位與晶振電路在單片機應用系統中,出單片機本身需要復位以外,外部擴展I/O接口電路也需要復位,因此需要一個包

38、括上電和按鈕復位在的系統同步復位電路。單片機上的XTAL1和XTAL2用來外接石英晶體和微調電容,即用來連接單片機OSC的定時反饋回路。笨設計中開關復位與晶振電路如圖3-3所示,當按下按鍵開關S1時,系統復位一次。其中電容C1、C2為33pF,C3為10uF,電阻R2、R3阻值為10k,晶振頻率為12MHz。圖3-3 系統復位與晶振電路3.2.2 獨立按鍵連接電路按鍵包括兩個獨立按鍵S2和S3,一端與單片機的P1.3和P1.4口連接,另一端接地,當按下任一鍵時,P1口讀取低電平有效。系統上電后,進入按鍵掃描子程序,以查詢的方式確定各按鍵,完成溫度初值的設定。其中按鍵S2為加按鍵,每按一次,系統

39、對最初設定值加一,按鍵S3為減按鍵,每按下一次,系統對初定值進行減一計算。其連線圖如圖3-4所示。圖3-4 獨立按鍵連接電路3.2.3 數碼管顯示電路本設計制作中選用5位共陰極數碼管作為顯示模塊,它和單片機硬件的接口如圖3-5所示。其中前3位數碼管DS1、DS2、DS3用于顯示溫度傳感器實時檢測采集到的溫度,可精確到0.1攝氏度,顯示圍為099.9攝氏度;后2位數碼管DS4、DS5用于顯示系統設置的初值溫度,只能顯示整數的溫度值,顯示圍為099攝氏度。5位數碼管的段選a、b、c、d、e、f、g、dp線分別與單片機的P0.0P0.7口連接,其中P0口需要接一10K的上拉電阻,以使單片機的P0口能

40、夠輸出高低電平。5位數碼管的位選W1W5分別與單片機的P2.0P2.4口相連接,只要在P2.0P2.4口任一位中輸出低電平,則選中與該位相連的數碼管。圖3-5 數碼管顯示電路3.2.4 溫度采集電路DS18B20數字溫度傳感器通過其部計數時鐘周期的作用,實現了特有的溫度測量功能。低溫系數振蕩器輸出的時鐘信號通過由高溫度系數振蕩器產生的門周期而被計數,計數器預先設置有與-55相應的一個基權值。如果計數器計數到0時,高溫度系數振蕩周期還未結束,則表示測量的溫度值高于-55,被預置在-55的溫度寄存器中的值就加1,然后這個過程不斷反復,知道高溫系數振蕩周期結束為止。此時溫度寄存器中的值即為被測溫度值

41、,這個值以16位二進制的形式存放在存儲器中,通過主機發送存儲器讀命令可讀出此溫度值,讀取時低位在前,高位在后,依次進行。由于溫度振蕩器的拋物線特性的影響,其用的斜率累加器進行補償。DS18B20在使用時,一般都采用單片機來實現數據采集。只須將DS18B20信號線與單片機1位I/O線相連,且單片機的1位I/O線可掛多個DS18B20,就可實現單點或多點溫度檢測。本設計中將DS18B20接在P1.7口實現溫度的采集,其與單片機的連接如圖3-6所示。圖3-6 溫度采集電路3.2.5 風扇電機驅動與調速電路本設計中由單片機的I/O口輸出PWM脈沖,通過一個達林頓反向驅動器ULN2803驅動12V的直流

42、無刷電機以與實現風扇電機轉速的調節。按鍵控制設置溫度,通過軟件向單片機輸入相應控制指令,由單片機通過P1.7口輸出與轉速相應的PWM脈沖,經過ULN2803驅動風扇直流電機控制電路,實現電機轉速與啟停的自動控制。當環境溫度升高時,直流電機的轉速會相應按照設定的等級有所提高;當環境溫度下降時,電機的轉速會相應的下降;當環境溫度低于設置溫度時,電機停止轉動,而環境溫度又高于預設溫度時,電機重新啟動。電路圖如圖3-7所示,風扇電機的一端接12V電源,另一端ULN2803的OUT7引腳,ULN2803的IN7引腳與單片機的P3.1引腳相連,通過控制單片機的P3.1引腳輸出PWM信號,由此控制風扇直流電

43、機的速度與啟停。圖3-7 風扇電機驅動與調速電路系統選用的風扇電機為12直流無刷電機,達林頓反向驅動器ULN2803輸入TTL信號為5V或CMOS信號為615V時,輸出的最大電壓為50V,最大電流為500mA,工作溫度圍為070。本系統中單片機I/O口輸出的TTL信號為5V,因此此風扇電機可以用ULN2803來驅動。3.2.6 電路總圖電路總圖主要包括系統復位與晶振電路、獨立按鍵連接電路、數碼管顯示電路、溫度采集電路、風扇電機驅動與調速電路等,如圖3-8所示。圖3-8 電路總圖第四章 軟件設計4.1 程序設置程序設計部分主要包括主程序、DS18B20初始化函數、DS18B20溫度轉換函數、溫度

44、讀取函數、按鍵掃描函數、數碼管顯示函數、溫度處理函數以與風扇電機控制函數。DS18B20初始化函數完成對DS18B20的初始化;DS18B20溫度轉換函數完成對環境溫度的實時采集;溫度讀取函數完成主機對溫度傳感器數據的讀取與數據換算,按鍵掃描函數則根據需要完成初值的加減設定;溫度處理函數對采集到的溫度進行分析處理,為電機轉速的變化提供條件;風扇電機控制函數則根據溫度的數值完成對電機轉速與啟停的控制。主程序流程圖如圖4-1所示。開始程序初始化調用DS18B20初始化函數調用DS18B20溫度轉換函數調用溫度讀取函數調用按鍵掃描函數調用數碼管顯示函數調用溫度處理函數調用風扇電機控制函數結束圖4-1

45、 主程序圖4.1.1 主要程序代碼1、按鍵掃描程序void keyscan(void) if(key1=0) dmsec(5); if(key1=0) sheding+; if(sheding=100) sheding=20; while(!key1); else if(key2=0) dmsec(5); if(key2=0) sheding-; if(sheding=0) sheding=20;while(!key2);2、溫度處理程序void deal(uint tmp) /溫度處理 if(tmpsheding)&(tmpsheding+5)&(tmpsheding+10)&(tmp=(s

46、heding+15) gaonum=3; dinum=1; else gaonum=4; dinum=0;4.2 用Keil C51 編寫程序Keil C51是美國Keil Software公司開發的51系列兼容單片機C語言的軟件開發系統,與單片機匯編語言相比,C語言不僅語句簡單靈活,而且編寫的函數模塊可移植性強,因而易學易用,效率高。隨著單片機開發技術的不斷發展,從普遍使用匯編語言到逐漸使用高級語言開發,單片機的開發軟件也在不斷發展,Keil軟件是目前使用較多的MCS-51系列單片機開發的軟件。Keil C51軟件不僅提供了豐富的庫函數,而且它強大的集成開發調試工具為程序編輯調試帶來便利,在

47、開發大型軟件時更能體現高級語言的優勢。早使用時要先建立一個工程,然后再添加文件并編寫程序,編寫好后在編輯調試。Keil C51的使用界面如圖3-2所示。圖4-2 Keil C51的使用界面4.3 用Proteus進行仿真4.3.1 Proteus簡介Proteus軟件是來自英國Labcenter electionics公司的EDA工具軟件。Proteus軟件有十多年的歷史,在全球廣泛使用,它不僅和其他EDA工具一樣有原理布圖、PCB自動或人工布線與電路仿真的功能,而且更重要的功能是,它的電路仿真是互動的,可以根據仿真實時觀察到現象驗證設計的正確性與準確性并與時改變程序代碼、原理圖連接以與元件屬

48、性等。它還能配合系統配置的虛擬儀器來顯示和輸出,如示波器、邏輯分析儀等,效果很好。Proteus有4個功能模塊:智能原理圖設計、完善的電路仿真功能、獨特的單片機協同仿真功能以與實用的PCB設計平臺。其部元件庫含有豐富的元件,支持總線結構以與智能化的連線功能;支持主流CPU(如ARM、8051/52、AVR)與通用外設模型的實時仿真等,為單片機的開發應用等帶來極大的便利。軟件的使用主界面如圖4-3所示。圖4-3 Proteus使用主界面4.3.2 本設計基于Proteus的仿真首先啟動Proteus軟件并建立一工程,然后根據原理圖調出相應的元件,再根據要求改變各元件的屬性并把各個元件按原理圖連接

49、起來。在原理圖繪制連接好后再把編譯好的程序加載到AT89C52單片機中。最后再根據系統要實現的功能分布進行仿真。把溫度傳感器DS18B20溫度設置為27.6攝氏度,用按鍵S2調節預設的溫度為23攝氏度。點擊開始按鈕,系統開始仿真,待一段時間穩定后,觀察到此時風扇直流電機的轉速為+14.3 r/s,如圖4-4所示。圖4-4 仿真效果圖一把溫度傳感器DS18B20溫度設置為30.5攝氏度,用按鍵S2調節預設的溫度為23攝氏度。點擊開始按鈕,系統開始仿真,待一段時間穩定后,觀察到此時風扇直流電機的轉速為+23.4 r/s,如圖4-5所示。圖4-5 仿真效果圖二把溫度傳感器DS18B20溫度設置為35

50、.6攝氏度,用按鍵S2調節預設的溫度為23攝氏度。點擊開始按鈕,系統開始仿真,待一段時間穩定后,觀察到此時風扇直流電機的轉速為+32.1 r/s,如圖4-6所示。圖4-6 仿真效果圖三在上一步仿真的基礎上(溫度傳感器DS18B20溫度設置為35.6攝氏度,系統預設的溫度為23攝氏度),用按鍵S2調節系統預設溫度至31攝氏度,此時可知預設溫度大于溫度傳感器檢測到的溫度,觀察到直流風扇電機的轉速逐漸變慢,最后轉速變為0,符合系統要實現的功能,如圖4-7所示。圖4-7 仿真效果圖四通過以上仿真可以看出,直流風扇電機在系統設定的溫度一定情況下,其轉速隨著環境溫度(溫度傳感器檢測到的溫度)的增加而增大。

51、當環境溫度低于系統預設的溫度時,風扇自動停止運轉,實現了系統所設計的功能。當然,在此沒有實現風扇直流電機的無極調速,本系統實現的是電機在隨環境溫度變化的四個等級的速度變化,環境溫度在一定小圍變化時,風扇直流電機轉速是不變的,只有超過了設定的某一界限時轉速才會變化。第五章 系統調試5.1 軟件調試5.1.1 按鍵顯示部分的調試起初根據設計編寫的系統程序:程序的按鍵接口采用P1口,數碼管現實采用P0控制LED的段碼,P2口控制LED的位碼,從而實現按鍵功能以與數碼管的顯示。經過編譯沒有出錯,但在仿真調試時,數碼管顯示的只是亂碼,沒有正確的顯示溫度,按鍵功能也不靈的,當按鍵按下時,顯示并不變化。經過

52、查找分析,發現按鍵掃描程序沒有按鍵消抖部分,按鍵在按下與松手時,都會有一定程序的抖動,從而可能使單片機做出錯誤的判斷,導致按鍵條件預設溫度時失靈,甚至根本不工作。因此必須在按鍵掃描程序中加入消抖部分,即在按鍵按下與松手時加入延時判斷,以檢測按鍵是否真的按下或已完全松手。數碼管不能正確的顯示,主要是因為所有數碼管的段碼都由P0口傳送,而數碼管顯示又采用了動態掃描的方式,但在程序中卻沒有設置顯示段碼的暫存器,導致當P0口傳送段碼時發生混亂,不能正確識別段碼。應在系統中加入鎖存器,或是在程序中設定存儲段碼的空間。在按鍵加入了消抖程序,數碼管顯示程序中加入了段碼的存儲空間后,數碼管能夠正常的顯示,按鍵

53、也能正常的工作,達到了較好的效果。5.1.2 傳感器DS18B20溫度采集部分調試由于數字式集成溫度傳感器DS18B20的高度集成化,為軟件的設計和調試帶來了極大的方便,體積小、低功耗、高精度為控制電機的精度和穩定提供了可能。軟件設計采用了P1.7口為數字溫度輸入口,但是需要對輸入的數字信號進行處理后才能顯示,從而多了溫度轉換程序。通過軟件設計,實現了對環境溫度的連續檢測,由于硬件LED個數的限制,只顯示了預設溫度的整數部分。在溫度轉換程序中,為了能夠正確的檢測到并顯示溫控的小數位,程序中把檢測到的溫度與10 相乘后,再按一個三位的整數來處理。如果把19.7變成197來處理,這樣為程序的編寫帶

54、來了方便。5.1.3 電動機調速電路部分調試本設計中,采用了達林頓反向驅動器ULN2803驅動直流電機,其可驅動八個直流電機,本系統僅驅動一個。軟件設置了P3.1口輸出不同的PWM波形,通過達林頓反向驅動器ULN2803驅動直流電機轉動,通過軟件中程序設定,根據不同溫度輸出不同的PWM波,從而得到不同的占空比控制風扇直流電機。程序實現了P3.1口的PWM波形輸出,當外界溫度低于設置溫度時,電機不轉動或停止轉動;當外界溫度高于設置溫度時,電機的轉速升高或是自動開始轉動,且外界溫度與設置溫度的差值越大,電機轉速就越高,即占空比增加。本系統中風扇直流電機的轉速可實現四級調速。通過溫度傳感器檢測到的溫

55、度與系統預設的溫度值的比較,實現轉速變換。當檢測到的溫度比預設的溫度每增加5攝氏度,風扇電機轉速增加一級。5.2 硬件調試5.2.1 按鍵顯示部分的調試系統按鍵部分實現了以下功能:按下P1.3口鍵,LED的后兩位顯示溫宿值增一;按下P1.4口鍵,LED的后兩位顯示溫度值減一。調試過程中出現了當按鍵時間過長時,設置的溫度值不是增一或者減一,而是增加后減少了與幾個值,出現這種情況的主要原因可能是按鍵的去抖動延時時間過長造成,改進方法為將對應的按鍵去抖動延時時間適量增加,但也不應過長,否則將出現按鍵無效的情形。系統顯示部分實現了以下功能:LED顯示的前三位實現了環境溫度整數部分與小數部分的連續顯示,

56、LED的后兩位能根據按鍵的調整顯示所需的設計溫度。且LED的顯示效果很好,很穩定。5.2.2 傳感器DS18B20溫度采集部分調試將DS18B20芯片接在系統板對應的P1.7口,通過插針在對應系統板的右下側三口即為對應的VCC、P1.7和GND,可將芯片直接插在該插件上,因此極為方便。系統調試中為驗證DS18B20是否能在系統板上工作,將手心靠攏或者捏住芯片,即可發現LED顯示的前兩位溫度也迅速升高,驗證了DS18B20能在系統板上工作。由于DS18B20為3個引腳,因此在調試過程中因注意各個引腳的對應位置,以免其接反而使芯片不能正常工作甚至燒毀芯片。5.2.3 電動機調速電路部分調試系統本部分的設計中重在軟件設計,因為外圍的驅動電路只是將送來的PWM信號放大從而驅動電機轉動。系統軟件設置在P3.1口輸出是電機轉動的PWM占空比,當環境溫度高

溫馨提示

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

評論

0/150

提交評論