基于51單片機水溫控制系統(tǒng)_第1頁
基于51單片機水溫控制系統(tǒng)_第2頁
基于51單片機水溫控制系統(tǒng)_第3頁
基于51單片機水溫控制系統(tǒng)_第4頁
基于51單片機水溫控制系統(tǒng)_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、題 目基于51單片機水溫控制系統(tǒng)系專 業(yè)班 級學 號學生姓名指導教師完成日期本設計經(jīng)過實踐,絕對可以用,有需要的,認真閱讀全文!可當單片機課設!需要全套資料的加Q845667599(10元)摘要:隨著科學技術(shù)的不斷發(fā)展帶動著電子行業(yè)的地位越來越重,現(xiàn)在電子產(chǎn)品幾乎在社會的各個領(lǐng)域都可以見到。這些技術(shù)的發(fā)展有效的帶動著社會生產(chǎn)力的發(fā)展和信息化的提高,同時電子產(chǎn)品也越來越智能。本設計采用STC89C51單片機為主控芯片,采用數(shù)字型防水溫度傳感器DS18B20制作溫度檢測報警器,通過四位共陽數(shù)碼管顯示溫度值,系統(tǒng)設立幾個按鍵,可以通過按鍵進行設置溫度的上、下限值,并將數(shù)據(jù)保存在單片機EEPROM中做

2、到掉電存儲的功能,當所采集溫度超過設定值時,系統(tǒng)會控制蜂鳴器和對應LED發(fā)出聲光報警和繼電器的運作。這個設計簡單、成本低、具有實用性。關(guān)鍵詞: DS18B20防水溫度傳感器;STC89C51單片機;溫度報警ABSTRACT:With the continuous development of science and technology, the status of the electronics industry is becoming more and more important. Now the electronic products can be seen in almost eve

3、ry field of the society. The development of these technologies is effective to promote the development of social productive forces and the improvement of information technology, while the electronic products are becoming more and more intelligent.This design uses STC89C51 microcontroller as the main

4、 control chip, the digital waterproof type temperature sensor DS18B20 temperature detection alarm and display the temperature value by the four common anode digital, system set up several key can by pressing a button to set the upper limit and lower limit of the temperature value, and data stored in

5、 microcontroller EEPROM do off the electric storage function, when the collected temperature exceeds the set value, the system will control buzzer and corresponding to the LED emit audible and visual alarm and relay operation. This design is simple, low cost, practical.Key words:DS18B20 waterproof t

6、emperature sensor; STC89C51 single chip microcomputer; temperature alarm目 錄摘 要IABSTRACTII1 系統(tǒng)硬件方案選擇11.1 硬件方案的選擇11.1.1 主控芯片的選擇11.1.2 顯示器件的選擇21.1.3 溫度傳感器的選擇21.1.4 報警模塊的選擇31.2 系統(tǒng)總體方案32 系統(tǒng)硬件電路設計52.1 STC89C51單片機系統(tǒng)設計52.1.1 STC89C51的概述52.1.3 STC89C51單片機的最小系統(tǒng)52.2 數(shù)碼管顯示電路設計72.2.1 共陽數(shù)碼管的概述72.2.3 共陽數(shù)碼管的驅(qū)動方式72.

7、3 DS18B20溫度傳感器的設計92.3.1 DS18B20的概述92.3.2 DS18B20的工作原理92.4 蜂鳴器電路的設計122.5 繼電器驅(qū)動電路設計122.6 獨立按鍵電路的設計132.7 原理圖繪制軟件的介紹142.8 系統(tǒng)硬件測試143 系統(tǒng)軟件部分設計163.1 軟件開發(fā)環(huán)境的介紹163.2 系統(tǒng)重要函數(shù)的介紹163.2.1 主函數(shù)的設計163.2.2 數(shù)碼管顯示函數(shù)的設計173.2.3 DS18B20溫度采集函數(shù)的設計183.3 系統(tǒng)軟件測試194 結(jié)論215 致謝22參考文獻23附錄A:原理圖24附錄B:源程序251 系統(tǒng)硬件方案選擇本章節(jié)主要介紹系統(tǒng)所用到的器件的選擇

8、與對比,進行綜合的對比考慮選擇出最適合本設計的一組方案。1.1 硬件方案的選擇在硬件電路的搭建之前必須明確設計的方案,通過各個模塊之間進行比較選擇出最適合本設計的硬件,以發(fā)揮器件的最大功效。1.1.1 主控芯片的選擇方案一:采用STC89C51單片機作為主控芯片。STC89C51是宏晶科技公司生產(chǎn)的一款低功耗、高性能的八位CMOS微處理器,片內(nèi)具有8k在線編程Flash存儲器。STC89C51單片機的內(nèi)核采用的是MCS-51內(nèi)核,指令完全兼容MCS-51,但是該單片機越做了升級使得芯片具有很多傳統(tǒng)的51單片機不具備的功能,例如該芯片還有4K的EEPROM存儲,在需要使用到掉電存儲數(shù)據(jù)的時候就可

9、以直接使用單片機內(nèi)部的存儲,不在需要在外接存儲芯片進行存儲。STC89C51單片機具有的開發(fā)簡單、可在線編程下載、成本低是非常不錯的選擇。方案二:采用MSP430單片機作為主控芯片。MSP430單片機稱之為混合信號處理器,它可以將多個不同功能的模擬電路、數(shù)字電路模塊和微處理器集成在一個芯片上,MSP430系列單片機是美國德州儀器 (TI)1996年開始推向市場的一種16位超低功耗、具有精簡指令集(RISC)的混合信號處理器(Mixed Signal Processor)。該系列單片機多應用于需要電池供電的便攜式儀器儀表中。而卻開發(fā)難度相對比較大、價格昂貴。所以在一些簡單的設計中不宜采用。方案三

10、:采用PIC16F877A單片機作為主控芯片。PIC16F877A是由Microchip公司所生產(chǎn)開發(fā)的新產(chǎn)品,屬于PICmicro系統(tǒng)8位單片機微機,具有Flash程序內(nèi)存功能,可反復擦寫程序。但是開發(fā)成本高,難度相對大。綜合上述的描述,考慮到資源的合理利用和成本以及開發(fā)的難易程度最終決定采用宏晶科技的STC89C51單片機作為主控芯片。1.1.2 顯示器件的選擇方案一:采用LED數(shù)碼管動態(tài)掃描顯示。LED數(shù)碼管的價格適中,對于顯示數(shù)字或者簡單的字母會比較合適。但是采用動態(tài)掃描法與單片機連接時占用CPU的I/O口較多,并且由于單片機的IO口輸出電流不夠,所以需要一個驅(qū)動電路,通過驅(qū)動電路放大

11、電流后控制數(shù)碼管,還有就是采用數(shù)碼管進行顯示的話顯示的內(nèi)容多了對于電路的焊接機會增大難得容易焊接錯誤。方案二:采用LCD1602液晶顯示屏。LCD1602液晶又叫LCD1602字符型液晶。液晶顯示功能強大,可以同時顯示出16*2即32個字符,可包括數(shù)字、字母、符號、或者自定義字符。LCD1602液晶顯示器中的每一個字符都是由5*7的點陣組成。LCD1602采用并行數(shù)據(jù)傳輸也可以采用串行數(shù)據(jù)傳輸,控制簡單,和市面上的大多基于HD44780液晶的控制原理完全相同。方案三:采用LCD12864液晶顯示屏。帶中文字庫的128X64是一種具有4位/8位并行、2線或3線串行多種接口方式,其顯示分辨率為12

12、8×64,內(nèi)置8192個16*16點漢字,和128個16*8點ASCII字符集。利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機交互圖形界面。可以顯示8×4行16×16點陣的漢字,也可完成圖形顯示,低電壓低功耗是其又一顯著特點。雖然LCD12864液晶顯示的功能強大,但是顯示的內(nèi)容偏大造成了,顯示空間的浪費,再來該液晶的成本高。綜合上述的描述,最終根據(jù)本設計中的顯示多為數(shù)字和簡單字母即可所以選擇數(shù)碼管進行顯示比較合理。1.1.3 溫度傳感器的選擇方案一:使用熱敏電阻作為傳感器,用熱敏電阻與一個相應阻值電阻相串聯(lián)分壓,利用熱敏電阻阻值隨溫度變化而變化

13、的特性,采集這兩個電阻變化的分壓值,并進行A/D轉(zhuǎn)換。此設計方案需用A/D轉(zhuǎn)換電路,增加硬件成本而且熱敏電阻的感溫特性曲線并不是嚴格線性的,會產(chǎn)生較大的測量誤差。方案二:采用模擬溫度傳感器AD590,該傳感器的輸出電流會隨溫度的變化而變化,從而需要設計電路轉(zhuǎn)換成電壓的變化,進而通過A/D轉(zhuǎn)換后接到單片機中,這種方法固然麻煩,而卻費用比較高,而卻在電流電壓轉(zhuǎn)換和A/D轉(zhuǎn)換中會產(chǎn)生誤差。方案三:采用數(shù)字式溫度傳感器DS18B20,此類傳感器為數(shù)字式傳感器而且僅需要一條數(shù)據(jù)線進行數(shù)據(jù)傳輸,易于與單片機連接,可以去除A/D模塊,降低硬件成本,簡化系統(tǒng)電路。另外,數(shù)字式溫度傳感器還具有測量精度高、測量范

14、圍廣等優(yōu)點。所以最終我們采用數(shù)字型DS18B20作為溫度采集芯片。1.1.4 報警模塊的選擇方案一:采用有源蜂鳴器。有源蜂鳴器工作的理想信號是直流電,通常標示為VDC、VDD等。因為蜂鳴器內(nèi)部有一簡單的振蕩電路,能將恒定的直流電轉(zhuǎn)化成一定頻率的脈沖信號,從面實出磁場交變,帶動鉬片振動發(fā)音。但是在某些有源蜂鳴器在特定的交流信號下也可以工作,只是對交流信號的電壓和頻率要求很高,此種工作方式一般不采用。方案二:采用無源蜂鳴器。無源蜂鳴器沒有內(nèi)部驅(qū)動電路,有些公司和工廠稱為訊響器,國標中稱為聲響器。無源蜂鳴器工作的理想信號方波。如果給預直流信號蜂鳴器是不響應的,因為磁路恒定,鉬片不能振動發(fā)音。本系統(tǒng)最

15、后選取的是操作方便,信號輸入固定的有源蜂鳴器。1.2 系統(tǒng)總體方案通過以上的論證,最終決定控制器采用單片機STC89C51,溫度傳感器采用DS18B20,顯示采用4位LED數(shù)碼管,報警采用有緣蜂鳴器、LED燈實現(xiàn),按鍵用來設定報警上下限溫度并將設置好的值保存在STC89C51的EEPROM中(具有掉電保護功能)。本設計的具體的系統(tǒng)方案如下圖1.1所示。圖1.1 系統(tǒng)方案402 系統(tǒng)硬件電路設計本章節(jié)主要介紹本設計中各個部分電路的設計原理。通過各個模塊的功能描述了解其工作原理以及在設計的中作用。2.1 STC89C51單片機系統(tǒng)設計2.1.1 STC89C51的概述STC89C51是STC公司生

16、產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash存儲器。STC89C51使用經(jīng)典的MCS-51內(nèi)核,但做了很多的改進使得芯片具有傳統(tǒng)51單片機不具備的功能。在單芯片上,擁有靈巧的8 位CPU和在系統(tǒng)可編程Flash,使得STC89C51為眾多嵌入式控制應用系統(tǒng)提供高靈活、非常有效的解決方案。具有以下標準功能:8k字節(jié)Flash,512字節(jié)RAM,32位I/O口線,看門狗定時器,內(nèi)置4KB EEPROM,MAX810復位電路,3個16位定時器/計數(shù)器,4個外部中斷,一個7向量4級中斷結(jié)構(gòu)(兼容傳統(tǒng)51的5向量2級中斷結(jié)構(gòu)),全雙工串行口。另外STC89X52 可降至

17、0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復位為止。最高運作頻率35MHz,6T/12T可選。2.1.3 STC89C51單片機的最小系統(tǒng)單片機最小系統(tǒng)說的通熟易懂的話就是以最少的元器件組成能讓單片機工作起來的系統(tǒng),接下來開始介紹51單片機最小系統(tǒng)必備的器件及其作用。首先電源這對于一個電子產(chǎn)品的話是必不可少,它提供能源給系統(tǒng)運作,在本設計中由于51單片機的工作電壓在4.55.5V之間都可以正常工作所以我們采用了USB電源線

18、連接手機充電器插頭或者5V的移動電源給系統(tǒng)進行供電。其次晶振電路,XTAL1和XTAL2 是獨立的輸入和輸出反相放大器,它們可以被配置為使用石英晶振的片內(nèi)振蕩器,或者是器件直接由外部時鐘驅(qū)動。圖2.1中采用的是內(nèi)時鐘模式,即采用利用芯片內(nèi)部的振蕩電路,在XTAL1、XTAL2 的引腳上外接定時元件(一個石英晶體和兩個電容),內(nèi)部振蕩器便能產(chǎn)生自激振蕩。一般來說晶振可以在1.212MHz 之間任選,甚至可以達到24MHz 或者更高,但是頻率越高功耗也就越大。在本實驗套件中采用的12M 的石英晶振。和晶振并聯(lián)的兩個電容的大小對振蕩頻率有微小影響,可以起到頻率微調(diào)作用。當采用石英晶振時,電容可以在2

19、0 40pF 之間選擇(本設計使用30pF);當采用陶瓷諧振器件時,電容要適當?shù)卦龃笠恍?,?050pF 之間。通常選取30pF 的陶瓷電容就可以了。圖2.1 晶振電路再來就是復位電路,復位電路分為:上電自動復位和開關(guān)復位。圖2.2 中所示的復位電路就包括了這兩種復位方式。上電瞬間,電容兩端電壓不能突變,此時電容的負極和RESET 相連,電壓全部加在了電阻上,RESET 的輸入為高,芯片被復位。隨之+5V電源給電容充電,電阻上的電壓逐漸減小,最后約等于0,芯片正常工作。并聯(lián)在電容的兩端為復位按鍵,當復位按鍵沒有被按下的時候電路實現(xiàn)上電復位,在芯片正常工作后,通過按

20、下按鍵使RST管腳出現(xiàn)高電平達到手動復位的效果。一般來說,只要RST 管腳上保持10ms 以上的高電平,就能使單片機有效的復位。圖中所示的復位電阻和電容為經(jīng)典值,實際制作是可以用同一數(shù)量級的電阻和電容代替,讀者也可自行計算RC 充電時間或在工作環(huán)境實際測量,以確保單片機的復位電路可靠。圖2.2 復位電路完整的STC89C51單片機最小系統(tǒng)電路圖如圖2.3所示。圖2.3 STC89C51單片機最小系統(tǒng)2.2 數(shù)碼管顯示電路設計2.2.1 共陽數(shù)碼管的概述LED數(shù)碼管(LED Segment Displays)是由多個發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在

21、內(nèi)部連接完成,只需引出它們的各個筆劃,公共電極。led數(shù)碼管常用段數(shù)一般為7段有的另加一個小數(shù)點,還有一種是類似于3位“+1”型。位數(shù)有半位,1,2,3,4,5,6,8,10位等等,led數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對編程是很重要的,因為不同類型的數(shù)碼管,除了它們的硬件電路有差異外,編程方法也是不同的,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。圖2.4為共陽數(shù)碼管實物圖。圖2.4 共陽數(shù)碼管實物圖2.2.3 共陽數(shù)碼管的驅(qū)動方式數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動方式的不同,可以分

22、為靜態(tài)式和動態(tài)式兩類。(1)靜態(tài)顯示驅(qū)動靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個單片機的I/O端口進行驅(qū)動,或者使用如BCD碼二-十進制譯碼器譯碼進行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O端口多,如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來驅(qū)動,要知道一個89S51單片機可用的I/O端口才32個呢,實際應用時必須增加驅(qū)動電路,增加了硬件電路的復雜性。(2)動態(tài)顯示驅(qū)動數(shù)碼管動態(tài)顯示接口是單片機中應用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連

23、在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是哪個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點亮時間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應,盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的

24、效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。在本設計中采用的是動態(tài)驅(qū)動的方式,驅(qū)動電路采用PNP型的三極管S8550。圖2.5為數(shù)碼管驅(qū)動電路圖。圖2.5 數(shù)碼管驅(qū)動電路由驅(qū)動電路圖可知三極管基極接一個限流電阻連接單片機的I/O口,發(fā)射級接高電平,集電極接數(shù)碼管的位選端,當單片機I/O口輸出高電平的時候三極管截止,位選口得到低電平,數(shù)碼管不顯示。當單片機I/O口輸出低電平的時候三極管導通,位選口得到高電平,數(shù)碼管不顯示。2.3 DS18B20溫度傳感器的設計2.3.1 DS18B20的概述DS18B20溫度傳感器是美國DALLAS半導體公司最新推出的一種改進型智能溫度傳感器

25、,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)912位的數(shù)字值讀數(shù)方式。DS18B20的性能特點如下:獨特的單線接口僅需要一個端口引腳進行通信;多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)功能;無須外部器件;可通過數(shù)據(jù)線供電,電壓范圍為3.05.5v;零待機功耗;溫度以9或12位二進制數(shù)字表示;用戶可定義報警設置;報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作;DS18B20溫度傳感器引腳圖如圖2.6所示。圖2.6 DS18B20溫度傳感器引腳圖2.3.2

26、DS18B20的工作原理根據(jù)DS18B20的通訊協(xié)議,主機(單片機)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:每一次讀寫之前都要對DS18B20進行 復位操作,復位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進行預定的操作。復位要求主CPU將數(shù)據(jù)線下拉500微秒,然后 釋放,當DS18B20收到信號后等待1660微秒左右,后發(fā)出60240微秒的存在低脈沖,主CPU收到此信號表示復位成功。下面表2-3為ROM指令表,表2-4位RAM指令表。表2-3 DS18B20 ROM指令表指令約定代碼功能讀ROM33H讀DS1820溫度傳感器ROM中的編碼(即64位地址)符合

27、ROM55H發(fā)出此命令之后,接著發(fā)出 64 位 ROM 編碼,訪問單總線上與該編碼相對應的 DS1820 使之作出響應,為下一步對該 DS1820 的讀寫作準備。搜索ROM0FOH用于確定掛接在同一總線上 DS1820 的個數(shù)和識別 64 位 ROM 地址。為操作各器件作好準備。跳過ROM0CCH忽略 64 位 ROM 地址,直接向 DS1820 發(fā)溫度變換命令。適用于單片工作。告警搜索命令0ECH執(zhí)行后只有溫度超過設定值上限或下限的片子才做出響應。表2-4 DS18B20 RAM指令表指 令約定代碼功 能溫度變換44H啟動DS1820進行溫度轉(zhuǎn)換,12位轉(zhuǎn)換時最長為750ms(9位為93.7

28、5ms)。結(jié)果存入內(nèi)部9字節(jié)RAM中。讀暫存器0BEH讀內(nèi)部RAM中9字節(jié)的內(nèi)容寫暫存器4EH發(fā)出向內(nèi)部RAM的3、4字節(jié)寫上、下限溫度數(shù)據(jù)命令,緊跟該命令之后,是傳送兩字節(jié)的數(shù)據(jù)。復制暫存器48H將RAM中第3、4字節(jié)的內(nèi)容復制到EEPROM中。重調(diào) EEPROM0B8H將EEPROM中內(nèi)容恢復到RAM中的第2、3字節(jié)。讀供電方式0B4H讀DS1820的供電模式。寄生供電時DS1820發(fā)送“0”,外接電源供電 DS1820發(fā)送“1”。DS18B20單總線控制時序圖如圖2.7所示。圖2.7 DS18B20單總線操作時序圖當DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以

29、16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625LSB形式表示。當符號位s0時,表示測得的溫度值為正值,可以直接將二進制位轉(zhuǎn)換為十進制;當符號位s1時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制數(shù)值。輸出的二進制數(shù)的高5位是符號位,最后4位是溫度小數(shù)點位,中間7位是溫度整數(shù)位。表2-5是一部分溫度值對應的二進制溫度數(shù)據(jù)。表2-5 DS18B20輸出的溫度值溫度值二進制輸出十六進制輸出+1250000 0111 1101 000007D0h+850000 0101 0101 00

30、000550h+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 1111FF6Fh-551111 1100 1001 0000FC90h在使用時候DS18B20的I/O引腳接一個10K的上拉電阻。具體的電路圖如圖2.8所示。 圖2.8 DS18B20電路

31、圖2.4 蜂鳴器電路的設計蜂鳴器選用5V電磁式有源蜂鳴器,由于蜂鳴器的工作電流一般比較大,以至于單片機的I/O口是無法直接驅(qū)動的,所以要利用三極管開關(guān)電路來驅(qū)動。本處選用的是8550三極管,它是一個PNP型的三極管?;鶚O串聯(lián)一個1K的電阻連接到單片機的I/O口時。當I/O口輸出低電平時,三極管導通,蜂鳴器鳴叫;當I/O口輸出高電平時,三極管截止,蜂鳴器停止鳴叫。蜂鳴器電路如下2.9所示。圖2.9 蜂鳴器電路2.5 繼電器驅(qū)動電路設計繼電器是一個由電控制的元器件。通常,被用在需要自動控制的電路中。簡單的說,繼電器就是一個通過輸入的小電流來控制大電流的輸出的一個“自動開關(guān)”。因此在電路中繼電器起著

32、自動調(diào)節(jié)電路、轉(zhuǎn)換電路、保護電路等作用。當使用51單片機進行控制繼電器時候由于單片機IO口輸出電流在420mA之間,而繼電器工作吸合電流大約在40mA,所以采用直接控制是無法驅(qū)動的。需要添加一個電流放大電路。三極管的選擇應該符合:(1)功率PCM:大于5V*繼電器電流 (5*40 mA = 0.2W)的兩倍;(2)最大集電極電流(ICM):大于繼電器吸合電流40mA的兩倍以上;(3)耐壓BV(CEO):大于繼電器工作電壓5V,可選10V以上;(4)直流放大倍數(shù):取100。圖2.10 繼電器驅(qū)動電路本設計中采用S8550三極管進行放大,驅(qū)動電路圖如圖2.10所示。當單片機IO口輸出高電平時,三極

33、管截止,繼電器斷開;當單片機IO口輸出低電平時,三極管導通,繼電器吸合。2.6 獨立按鍵電路的設計本設計中設置有按鍵電路,通過幾個獨立按鍵進行人機交互。按鍵通過一點連接單片機的I/O口一端連接電源地。這樣設計是因為單片機的I/O在懸空沒有作為輸出的情況下是默認高電平的,在按鍵沒有按下則相當于該I/O處于懸空狀態(tài)。當按下后I/O口的電平就會被拉低,這樣單片機只需要進行循環(huán)的檢測I/O口是否有出現(xiàn)低電平就可以判斷是否有按鍵按下,當然這種按鍵是金屬解除的方式所以會有抖動紋波的情況,所以在程序中需要適當?shù)募由隙虝旱难訒r消抖。具體電路如圖2.11所示。圖2.11 獨立按鍵電路三個按鍵的功能分別為:第一個

34、按鍵:按下后進入設置上限值,數(shù)碼管顯示“HXXX”;再按下后進入設置下限值,數(shù)碼管顯示“LXXX”;再按退出恢復正常顯示。第二個按鍵:在設置模式下,對應參數(shù)加一。第三個按鍵:在設置模式下,對應參數(shù)減一。2.7 原理圖繪制軟件的介紹Altium Designer是Altium公司于2004年推出的電路設計軟件版本,該軟件能實現(xiàn)從概念設計,頂層設計直到輸出生產(chǎn)數(shù)據(jù)以及這之間的所有分析驗證和設計數(shù)據(jù)的管理。當前比較流行的Protel 98、Protel 99 SE和Protel DXP,就是它的前期版本。Altium Designer2004已不是單純的PCB(印制電路板)設計工具,而是由多個模塊組

35、成的系統(tǒng)工具,分別是SCH(原理圖)設計、SCH(原理圖)仿真、PCB(印制電路板)設計、Auto Router(自動布線器)和FPGA設計及嵌入式軟件開發(fā)等,覆蓋了以PCB為核心的整個物理設計。該軟件將項目管理方式、原理圖和PCB圖的雙向同步技術(shù)、多通道設計、拓樸自動布線以及電路仿真等技術(shù)結(jié)合在一起,為電路設計提供了強大的支持。與較早的版本Protel99相比,Altium Designer 2004不僅在外觀上顯得更加豪華、人性化,而且極大地強化了電路設計的同步化,同時整合了VHDL和FPGA設計系統(tǒng),其功能大大加強了。2.8 系統(tǒng)硬件測試系統(tǒng)硬件電路的測試主要是檢測電路是否出現(xiàn)漏焊、短路

36、、斷路、虛焊、一些具有方向的元件是否方向弄錯、電路設計錯誤等情況。對于漏焊、元件方向弄錯的檢測方法是將實物電路板對照著PCB圖的線路,檢查每一個元件和導線在實物上是否有出現(xiàn)。如果發(fā)現(xiàn)沒有或者對不上的情況下需及時的重新對照確定漏焊時及時的補焊。對于短路、斷路、虛焊這些情況采用數(shù)字萬用表。將數(shù)字萬用表打到二極管檔位,然后通過紅表筆和黑表筆碰一起,萬用表會發(fā)出鳴叫警示。根據(jù)這個原理就可以用來檢測短路、斷路、虛焊。在需要檢測的元件或?qū)Ь€的兩端用兩根表筆檢測,如果導通蜂鳴器會鳴叫,如果斷開蜂鳴器不叫。這樣根據(jù)我們所需要檢測的情況,在結(jié)合檢測的現(xiàn)象就可以測出線路是否有問題。3 系統(tǒng)軟件部分設計3.1 軟件

37、開發(fā)環(huán)境的介紹本設計采用 Keil Vision4進行編程實現(xiàn)。Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。運行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件

38、仿真調(diào)試工具也會令你事半功倍。3.2 系統(tǒng)重要函數(shù)的介紹3.2.1 主函數(shù)的設計主函數(shù)void main()是程序的入口函數(shù),一個完整的程序必須要包含該函數(shù)。在該函數(shù)的開頭一般都是先對單片機和一些外圍器件需要進行初始化才能正常使用的器件進行初始化和重新賦值一些變量,初始化完后進去死循環(huán),如果不進入死循環(huán)程序運行一次就會退出,如果加入死循環(huán)程序就會不斷地進行循環(huán)達到實時檢測執(zhí)行的目的。在主程序的設計中需要注意的是主函數(shù)中不宜放過多的代碼,具體的代碼一般都是采用函數(shù)進行封裝然后在主函數(shù)進行調(diào)用,這樣也可以方便閱讀修改。具體流程圖如下3.1所示。圖3.1 主函數(shù)流程圖3.2.2 數(shù)碼管顯示函數(shù)的設計

39、本設計數(shù)碼管采用共陽數(shù)碼管,驅(qū)動電路采用S8550三極管。在數(shù)碼管控制程序采用動態(tài)顯示的方式,意思就是顯示完第一位后進行短暫的延時后關(guān)閉第一位的顯示,然后馬上進入第二位的顯示一段時間關(guān)閉進入第三位的顯示依次進行顯示。這樣利用人眼的視覺停留效果在看起來就是全部一起顯示出來的一樣。在顯示的延時不能過長也不能過短,過長超過人眼“余輝效應”的時間就會看起來斷斷續(xù)續(xù)的顯示,果斷也不行。如果不是采用這樣的方式一個個顯示的話,而是全部一起顯示的話就會出現(xiàn)全部數(shù)碼管顯示的內(nèi)容都是一樣的,原因在于這些數(shù)碼管的段選是連接在一起的,控制一位就等于控制全部了。顯示函數(shù)流程圖如3.2所示。圖3.2 顯示函數(shù)流程圖3.2

40、.3 DS18B20溫度采集函數(shù)的設計首先需要對溫度傳感器DS18B20進行采集溫度需要在主函數(shù)開始的時候先對DS18B20進行初始化,初始化的目的是配置傳感器的寄存器使DS18B20的轉(zhuǎn)換精度為12位。初始化完成后就可以對DS18B20進行操作讀取溫度。對DS18B20讀取溫度先需要讓DS18B20復位然后如果總線上只有一個傳感器的話可以跳過讀系列號直接進行啟動溫度轉(zhuǎn)換,然后在進行一次復位同樣跳過系列號的匹配,然后發(fā)送讀取溫度指令,最后讀取溫度寄存器。讀取完后將數(shù)據(jù)進行轉(zhuǎn)換成實際溫度即可。具體流程圖如圖3.3所示。圖3.3 DS18B20溫度采集流程圖3.3 系統(tǒng)軟件測試測試所需的工具:KE

41、IL軟件、系統(tǒng)硬件、PL2303下載器等。系統(tǒng)的軟件方面通過KEIL軟件進行編寫,將編寫好的程序生成.HEX文件后通過PL2303下載器下載到單片機中。通過觀察整個系統(tǒng)運行的狀態(tài),然后進行反復的修改調(diào)試程序,最終得到一個完善的程序。在系統(tǒng)軟件調(diào)試上主要遇到以下幾個問題:(1)數(shù)碼管顯示出現(xiàn)閃爍現(xiàn)象。解決方法:在程序上一開始對每一位的顯示之間延時過短造成了顯示頻率過快人眼還沒反應過來就更換顯示了,所以造成看到的顯示會在閃爍,后修改了延時函數(shù)顯示正常。(2) EEPROM存儲錯誤。解決方法:一開始的時候在讀寫數(shù)據(jù)前都沒有做任何的操作,本以為這樣就可以完成數(shù)據(jù)的存儲,但是并沒有想的那樣,在讀寫的時候

42、出現(xiàn)寫進去的和讀出來的并沒有相同,后通過查閱資料得知,STC單片機內(nèi)部的EEPROM在寫入數(shù)據(jù)之前必須擦除扇區(qū),否則寫入的數(shù)據(jù)就是和本身的數(shù)據(jù)進行相與的結(jié)果,后面在程序上添加了在寫入數(shù)據(jù)之前加上擦除扇區(qū)后,數(shù)據(jù)存儲正常。4 結(jié)論經(jīng)過制作設計的這段時間的努力終于將本設計方案要求基本實現(xiàn)。由于時間、水平和經(jīng)驗有限,設計的作品還存在著一些的不足之處。這次畢業(yè)設計對于我來說,既是一次機遇,又是一次挑戰(zhàn)。通過這次的畢業(yè)設計,我學到了很多東西,通過自己的實踐,增強了動手能力。通過實際工程的設計也使我了解到書本知識和實際應用的差別。在實際應用中遇到很多的問題,這都需要我對問題進行具體的分析,并一步一步地去解

43、決它。5 致謝本次設計是在我的導師的精心指導下完成的,從選題到硬件電路的排版、焊接再到軟件編程等等各個方面,導師給予了我他的想法以及建議,在我遇到了自己無法獨立解決的問題時,導師也會抽出時間來給我解答以及指導。我的同學也給與了我很大的支持,當我遇到硬件調(diào)試方面以及軟件編寫方面的問題時,他們總能夠給我提供力所能及的幫之,很難想象在沒有導師和同學的幫助下,我的畢業(yè)設計能否如期的完成。在論文的寫作過程中,我也得到了導師的親切關(guān)懷以及耐心的指導。指導老師嚴謹?shù)闹螌W態(tài)度和科學的工作方法給與了我很大的幫助。在此,衷心的感謝導師對我論文的指導與修改,同時也向幫助過我的同學、老師表示衷心的謝意。參考文獻1蘇鐵

44、力,傳感器及其接口技術(shù)M,北京:中國石化出版社.19982中國電子學會,傳感器與執(zhí)行器大全M,北京:電子工業(yè)出版社.19983白雪冰,張延林,等,單片機原理及應用M,哈爾濱:東北林業(yè)大學出版社.20064謝運祥,歐陽森等,電力電子單片機控制技術(shù)M,北京:機械工業(yè)出版.20075王洪業(yè),傳感器技術(shù)M,長沙:湖南科學技術(shù)出版社.19955李光飛,單片機課程設計實例指導,北京:北京航空航天大學出版社.20046王法能,單片機原理及應用,科學出版社.20047樓然苗,李光飛,51系列單片機設計實例M,北京:北京航空航天大學出版社.20038胡汗才,單片機原理與接口技術(shù)M,清華大學出版社.20049王萍

45、,電子技術(shù)實驗教程,機械工業(yè)出版社.200910 朱定華,戴淑萍,單片機微機原理與應用M,清華大學出版社.200311 劉勇 編 數(shù)字電路 電子工業(yè)出版社 200412 陳正振 編 電子電路設計與制作 廣西交通職業(yè)技術(shù)學院信息工程系 200713 楊子文 編 單片機原理及應用 西安電子科技大學出版社 200614 陳汝全.電子技術(shù)常用器件應用手冊.北京:機械工業(yè)出版社,2004.10.15 郝曉劍,楊述平,張連紅.儀器電路設計與應用.北京:電子工業(yè)出版社,2007.6.16 畢滿清,王黎明,高文華.模擬電子技術(shù)基礎(chǔ).北京:電子工業(yè)出版社,2008.6.17 韓焱,張艷花,王康誼.電子技術(shù)基礎(chǔ).

46、北京:電子工業(yè)出版社,2009.6.18 童長飛.CSO5lF系列單片機開發(fā)與C語言編程.北京:北京航空航天大學出版社,2005.附錄A:原理圖附錄B:源程序#include<reg52.h> /頭文件#include<SMG.h> #include<DS18B20.h>#include<EEPROM.h>#define uchar unsigned char /宏定義#define uint unsigned int/*燈、蜂鳴器、按鍵引腳定義*/sbit led_shang = P32; /LED燈定義sbit led_xia = P34;s

47、bit relay = P37; /繼電器定義sbit buzz = P24; /蜂鳴器定義sbit key_set = P10; /設置鍵sbit key_jia = P13; /加值鍵sbit key_jian = P16; /減值鍵/*全局變量定義*/uchar Temperature_up,Temperature_down;/存儲溫度上、下限值uint set_f; /設置模式標志位/*毫秒延時函數(shù)*/void delayms(uint ms)unsigned char i=100,j;for(;ms;ms-)while(-i)j=10;while(-j);/*按鍵檢測函數(shù)*/void

48、 scan(void)/設置鍵,不支持連按if(key_set=0)delayms(7);if(key_set=0)led_shang=1;/關(guān)閉上限報警燈led_xia=1;/關(guān)閉下限報警燈buzz=1; /關(guān)閉蜂鳴器relay=1;/關(guān)閉繼電器set_f+;if(set_f=3) /退出設置set_f=0;EEPROM_delete(0x2002); /擦除扇區(qū)EEPROM_write(0x2002,Temperature_up); /寫入溫度上限值數(shù)據(jù)保存EEPROM_delete(0x2202); /擦除扇區(qū)EEPROM_write(0x2202,Temperature_down);/

49、寫入溫度下限值保存if(set_f=1) /選擇設置、顯示溫度上限值display2(Temperature_up/1000,Temperature_up%1000/100,Temperature_up%100/10,Temperature_up%10);if(set_f=2) /選擇設置、顯示溫度下限值display2(Temperature_down/1000,Temperature_down%1000/100,Temperature_down%100/10,Temperature_down%10);while(!key_set);/檢測按鍵松開/加值鍵,支持連按if(key_jia=0&

50、amp;&set_f!=0)delayms(7);if(key_jia=0&&set_f=1)/設置溫度上限值Temperature_up+; /溫度上限自加if(Temperature_up>125)Temperature_up=125;display2(Temperature_up/1000,Temperature_up%1000/100,Temperature_up%100/10,Temperature_up%10);/顯示if(key_jia=0&&set_f=2)/設置溫度下限值Temperature_down+; /溫度下限自加if(T

51、emperature_down>125)Temperature_down=125;display2(Temperature_down/1000,Temperature_down%1000/100,Temperature_down%100/10,Temperature_down%10);/顯示/減值鍵,支持連按if(key_jian=0&&set_f!=0)delayms(7);if(key_jian=0&&set_f=1)/設置溫度上限值if(Temperature_up!=0)Temperature_up-; /溫度上限自減display2(Temper

52、ature_up/1000,Temperature_up%1000/100,Temperature_up%100/10,Temperature_up%10);/顯示if(key_jian=0&&set_f=2)/設置溫度下限值if(Temperature_down!=0)Temperature_down-; /溫度下限自減display2(Temperature_down/1000,Temperature_down%1000/100,Temperature_down%100/10,Temperature_down%10);/顯示/*主函數(shù)*/void main()buzz=1; /開機關(guān)閉蜂鳴器led_shang=1;/開機關(guān)閉上限報警燈led_xia=1; /開機關(guān)閉下限報警燈relay=1;/開機關(guān)閉繼電器/*EEPROM_delete(0x2002);/擦除扇區(qū)EEPROM_write(0x2002,38);/寫入上限值數(shù)據(jù)保存*/Temperature_up=EEPROM_read(0x2002); /上電先讀取溫度上限值/*EEPROM

溫馨提示

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

評論

0/150

提交評論