單片機恒溫箱的設計課題論文_第1頁
單片機恒溫箱的設計課題論文_第2頁
單片機恒溫箱的設計課題論文_第3頁
單片機恒溫箱的設計課題論文_第4頁
單片機恒溫箱的設計課題論文_第5頁
已閱讀5頁,還剩42頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、目錄引 言1第1章 緒論21.1 課題研究的背景21.2 課題研究的意義21.3 課題研究的內容2第2章 智能恒溫箱的系統概述42.1 系統的主要功能42.2 系統需求分析52.3 智能恒溫箱的工作流程52.4 恒溫箱的工作過程72.5 本章小結7第3章 智能恒溫箱的硬件設計83.1 硬件的電路設計概述83.2 總體硬件原理圖83.3 時鐘電路設計103.4 復位電路設計103.5 顯示電路的設計11顯示電路概述11七段LED數碼管的原理11顯示電路整體設計133.6 開關鍵盤設計14指撥開關14按鍵開關143.7 指示燈電路153.8 溫度采集電路163.9 本章小結19第4章 軟件設計20

2、4.1 軟件任務分析204.2 程序流程圖204.3 本章小結25結論與展望26致 謝27參考文獻28附錄A PROTUES仿真圖29硬件原理圖30附錄B 一篇引用的外文文獻及其譯文3180C5133附錄C 主要參考文獻題錄及摘要37附錄D 主要源程序39插圖清單圖2-1 系統主要功能模塊方框圖4圖2-2 恒溫箱工作流程6圖3-1 總體硬件原理圖9圖3-2 外部振蕩電路10圖3-3 硬件復位電路11圖3-4 一位共陰極數碼管引腳圖12圖3-5 顯示電路13圖3-6 開關電路14圖3-7 按鍵抖動電壓波形15圖3-9 溫度指示燈電路16圖3-10溫度采集電路16圖4-1 主程序流程圖21圖4-2

3、 溫度設定子程序流程圖22圖4-3 溫度采集計算子程序流程圖23圖4-4 溫度比較處理子程序流程圖24圖4-5 溫度顯示子程序流程圖24表格清單引言 溫度控制系統廣泛應用于社會生活的各個領域 ,如家電、汽車、材料、電力電子等 ,常用的控制電路根據應用場合和所要求的性能指標有所不同 ,在工業企業中,如何提高溫度控制對象的運行性能一直以來都是控制人員和現場技術人員努力解決的問題,開發出性能較好的溫度控制系統對于測控技術的發展具有很大的意義。采用數字溫度傳感器DS18B20,因其內部集成了A/D轉換器,使得電路結構更加簡單,而且減少了溫度測量轉換時的精度損失,使得測量溫度更加精確。數字溫度傳感器DS

4、18B20只用一個引腳即可與單片機進行通信,大大減少了接線的麻煩,使得單片機更加具有擴展性。由于DS18B20芯片的小型化,更加可以通過單跳數據線就可以和主電路連接,故可以把數字溫度傳感器DS18B20做成探頭,探入到狹小的地方,增加了實用性。更能串接多個數字溫度傳感器DS18B20進行多范圍的溫度檢測。 由于單片機功能強大,可大大加快系統的開發與調試速度,并具有控制方便、簡單、靈活等特點,因此本設計硬件電路以80C51單片機為核心來實現溫度控制,具有實用性強、可靠性強等特點。第1章 緒論1.1 課題研究的背景二十一世紀是科技高速發展的信息時代,電子技術、微型單片機技術的應用更是空前廣泛,是隨

5、著超大規模集成電路技術的發展而誕生的。由于它具有體積小、功能強、性價比高等特點,所以廣泛應用于電子儀表、家用電器、節能裝置、軍事裝置、機器人、工業控制等諸多領域,使產品小型化。智能化,既提高了產品的功能和質量,又降低了成本,簡化了設計。它迅猛的發展到了各個領域,人們也越來越感到應用單片機技術的優越性,因而單片機也得到了廣泛的應用。同時,它也不斷地完善和發展。智能恒溫箱的溫度是醫療、工業生產和食品加工等領域的關鍵,因此對溫度的測量及控制始終占據著重要的地位。市場上常見的溫度傳感器以電壓輸出為主要形式,不同的的傳感器其非線性曲線也各不相同,缺乏一個產品應具備的通用性和互換性。溫度傳感器應用范圍很廣

6、、使用數量很大,但是在常規的環境參數中由于溫度受其它因素影響較大,而且難以校準,因此,溫度也是最難準確測量的一個參數。常規方法測量溫度誤差大、準確度低、測量滯后的時間長。今年來,國內傳感器正向著集成化、智能化、網絡化和單片機的方向發展,為開發新一代溫度測量系統創造了有利條件。在智能恒溫箱控制系統的設計中,用數字傳感器將溫度信號以數字信號的方式傳送給單片機,經單片機處理后的溫度數值,一方面送LED數碼管顯示;另一方面與給定值經行比較,判斷溫度高低,從而采取相應的措施:加熱或者制冷。使溫度達到設定值。智能恒溫箱主要是用來控制溫度,他為農業研究、生物技術、測試提供所需的各種環境模擬條件,因此可廣泛適

7、用于藥物、紡織、食品加工等無菌試驗、穩定性檢查以及工業產品的原料性能、產品包裝、產品壽命等測試。隨著單片機技術的飛速發展,通過單片機對被控制對象控制日益廣泛,具有體積小、功能強、性價比高等特點,把單片機應用于溫度控制系統中可以起到更好的控溫作用,智能恒溫箱是使用單片機進行溫度控制的典型應用,采用單片機做主控單元可完成對溫度的采集和控制等的要求。1.2 課題研究的意義智能恒溫箱的性能在很大程度上取決于對溫度的控制性能,本課題采用單片機為主控制器,通過數字傳感器測得箱內溫度,再將溫度信號送入主控制器,來完成恒溫箱的溫度控制系統的硬件。箱內溫度可保持在設定的溫度范圍內,當設置的溫度低于實時溫度時,單

8、片機送出加熱信號;當設置的溫度低于實時溫度時,單片機送出制冷信號。1.3 課題研究的內容本次課題只設計溫度采集,溫度顯示,和溫度控制信號的送出部分,對于如何保溫,如何加熱和制冷不在此次設計的范圍內。本系統采用模塊化設計智能恒溫箱,系統上電后默認設定的恒溫溫度為20,使用時可以自行調節預期的恒溫溫度,調節范圍為099。調節好后系統會將采集來的實時溫度與設定的預期溫度進行比較,如果實時溫度比設定溫度高就開啟制冷設備,如果實時溫度比預期溫度低就開啟加熱設備。如果溫度一樣則不開啟加熱或制冷設備。在顯示電路上通常顯示的是實時的溫度,即傳感器采集來的溫度,如果想要顯示人們設定的預期溫度可以按顯示切換鍵,這

9、時顯示器上就會顯示預期溫度,幾秒鐘后跳回,顯示實時溫度。顯示實時溫度時,表示顯示的是實時溫度的發光二極管點亮。而顯示預期溫度的時候,表示顯示的是預期溫度的發光二極管點亮。本論文章節的結構和內容如下:第1章 :緒論。簡要介紹了智能恒溫箱的發展現狀,說明了課題研究的內容。第2章 :智能恒溫箱的概述。說明了恒溫箱的工作過程和主要功能,介紹了設計中需要用的單片機的基礎知識,確定了本課題要達到的設計目標。第3章 :智能恒溫箱的硬件電路設計。詳細描述了本課題各個組成電路單元的設計。第4章 :智能恒溫箱的軟件設計。編寫程序。第5章 :總結。總結本次設計,指出設計中的一些問題,提出改善意見,并展望未來的設計。

10、第2章 智能恒溫箱的系統概述2.1 系統的主要功能本系統是借用單片機采用模塊化設計的智能恒溫箱,包括溫度設定按鈕,溫度顯示,溫度調節,實時溫度顯示和預定溫度顯示轉換按鈕,溫度采集等(根據需要也可另設或者多設相關功能)。顯示系統除了顯示實時的溫度還能顯示設定的溫度,也就是人們想要保持的溫度。系統的主要功能模塊方框圖如圖2-1所示。時鐘復位電路2位七段數碼管顯示80C51單片機進入溫度設 定,溫度加、減按鍵輸入電路2個發光二極管顯示溫度調節電路溫度采集電路顯示切換按鍵電路圖2-1 系統主要功能模塊方框圖本系統是采用模塊化設計的智能恒溫箱,在生活中有廣泛的應用,系統上電后默認設定的恒溫溫度為20,使

11、用時可以自行調節預期的恒溫溫度,調節范圍為099。調節好后系統會將采集來的實時溫度與設定的預期溫度進行比較,如果實時溫度比設定溫度高就開啟制冷設備,如果實時溫度比預期溫度低就開啟加熱設備。如果溫度一樣則不開啟加熱或制冷設備。在顯示電路上通常顯示的是實時的溫度,即傳感器采集來的溫度,如果想要顯示人們設定的預期溫度可以按顯示切換鍵,這是顯示器上就會顯示預期溫度,幾秒鐘后跳回,顯示實時溫度。顯示實時溫度時,表示顯示的是實時溫度的發光二極管點亮。而顯示預期溫度的時候,表示顯示的是預期溫度的發光二極管點亮。單片機整個恒溫箱的核心,內部電路設計用匯編語言編寫。它完成了溫度參數設定,溫度采集計算,溫度顯示,

12、溫度比較,溫度調節等功能。2.2 系統需求分析1. 在使用中可以將采集來的溫度數據計算轉換為我們熟悉的攝氏溫度。2. 在099的范圍內,人們可以自由調節預期達到的溫度。3. 可以將實時溫度與預期溫度進行比對,以正常調節溫度。4. 將設定的預期溫度和實時溫度能顯示出來。5. 通常顯示實時溫度,當按下顯示切換鍵后能顯示幾秒鐘的預期溫度。2.3 智能恒溫箱的工作流程智能恒溫箱的基本工作原理:在使用恒溫箱時,系統會將從溫度傳感器采集來的溫度轉化為攝氏度的形式,與事先設定的預期溫度進行比對,然后根據比對的結果采取相應的措施(加熱,或制冷)來不斷地接近以至于達到預期的溫度。并且系統能夠顯示實時的溫度和設定

13、的預期溫度。恒溫箱的工作流程如圖2-2所示:加載程序運行進入溫度設定不進行溫度設定溫度減溫度加溫度采集與計算溫度比較并進行溫度調節顯示實時溫度無顯示切換顯示切換顯示設定溫度圖2-2 恒溫箱工作流程2.4 恒溫箱的工作過程1. 設定預期溫度。如果想調節預期的溫度,先閉合“溫度設定”開關,進入調節狀態,此時會顯示設定的溫度值,如果想加一攝氏度就按下“加1”鍵,如果想減一攝氏度就按一下“減1”鍵,溫度LED顯示器上會顯示改變后的溫度,調整范圍為099。0時再減1會跳到99,99時再加1會跳到0。要退出調節狀態,斷開“溫度設定”開關即可。2. 溫度采集和計算。單片機通過與溫度傳感器進行通信,獲取實時溫

14、度信息,并將所獲取的溫度信息數據轉化為攝氏溫度的形式存儲起來。3. 溫度比較和溫度調節。將存儲的實時攝氏溫度與設定的預期溫度經行比較。如果實時溫度高于設定溫度,則開啟制冷器;如果實時溫度低于設定溫度,則開啟加熱器。4. 實時溫度顯示。將存儲的實時溫度顯示在LED數碼管上。5. 設定溫度顯示。若想查看設定的預期溫度,則需按下“溫度顯示切換”按鍵,然后LED顯示器就會顯示設定預期的溫度,顯示時間為數秒,跳出預期溫度的顯示。若再想查看預期溫度顯示需再次按下“溫度顯示切換”按鍵。總而言之,本課題利用80C51單片機及外圍接口實現的溫度控制系統設計了恒溫箱,該恒溫箱提高了系統的可靠性,簡化了電路結構,節

15、約了成本,是一個實用的工程設計。2.5 本章小結本章主要講述了恒溫箱的工作原理和本設計系統的工作流程。在說明工作原理的過程中,突出了電路的組成單元以及這些單元如何實現溫度采集和溫度控制等功能。在說明系統流程時,結合本設計的內容,指出了參數設置的方法和意義。第3章 智能恒溫箱的硬件設計3.1 硬件電路設計概述本設計分為硬件設計和軟件設計,這兩者相互結合,不可分離:從時間上看,硬件設計的絕大部分工作量是在最初階段,到后期往往還要做一些修改。只要技術準備充分,硬件設計的大量返工是比較少的,軟件設計的任務是貫徹始終的,到中后期基本上都是軟件設計任務,隨著集成電路計數器的飛速發展,各種功能很強的芯片不斷

16、出現,使硬件電路的集成度越來越高,硬件設計的工作量在整個項目中所占的比重逐漸下降,為使硬件電路設計盡可能合理,應注意以下幾個方面:1. 盡可能采用功能強的芯片,以簡化電路。功能強的芯片可以代替若干個普通芯片,隨著生產工藝的提高,新型芯片的價格在不斷下降,并不一定比若干個普通芯片價格總和高。2. 留有設計余地。在設計硬件電路時,要考慮到將來修改擴展的方便。因為很少有一錘定音的電路設計,如果現在不留余地,將來可能要為一點小小的修改或擴展而被迫進行全面返工。3. 程序空間。選用片內程序空間足夠大的單片機,本設計采用80C51單片機。4. RAM空間,80C51單片機內部RAM不多,當要增強軟件數據處

17、理功能時,往往覺得不足。如果系統配置了外部RAM,則建議多留一些空間。如果選用8155作I/O接口,就可以增強256字節RAM。如果有大批數據需要處理,則應配置足夠的RAM,如6264、62256等。隨著軟件設計水平提高,往往只要改變或者增加軟件中的數據處理算法,就可以使系統功能提高很多,而系統的硬件不必做任何更換就使系統升級換代。只要在硬件電路設計初期考慮到這一點,就應該為系統將來升級留有足夠的RAM空間,哪怕多設計一個RAM插座,暫時不插芯片也好。I/O端口,在樣機研制出來后進行現場試用時,往往會發現一些被忽視的問題,而這些問題不是靠單純的軟件措施來解決的。如果有些新的信號需要采集,就必須

18、增加輸入檢測端:有些物理量需要控制,就必須增加輸出端。如果在硬件電路設計就預留出一些I/O端口,雖然當時空著沒用,那么要用的時候就能派上用場了。3.2 總體硬件原理圖 總體硬件原理圖如圖3-1所示,圖中主要部分U1芯片為80C51單片機,U2為溫度傳感器DS18B20。溫度傳感器接到單片機的P1.2口。兩個發光二極管“HEAT”和“COOL”分別表示傳送給加熱器和制冷器的啟動信號,分別接到單片機的P1.0,P1.1口。如果“HEAT”燈點亮表示加熱器在工作;如果“COOL”燈點亮表示制冷器在工作。按鍵“溫度顯示切換”是用于切換顯示預設的溫度的按鍵,接單片機的P2.7口。還有兩個發光二極管分別是

19、“實時溫度”和“設定溫度”,表示當前數碼管顯示的是實時溫度還是設定溫度,若“實時溫度”的發光二極管點亮表示數碼管顯示的實時溫度,若“設定溫度”的發光二極管點亮則圖3-1 總體硬件原理圖“溫度設定”接單片機的P2.2口,按鈕“加1”和“減1”“溫度設定”開關進入預期溫度的設定,按“加1”,“減1”按鈕來加減溫度。3.3 時鐘頻率電路設計單片機必須在時鐘的驅動下才能工作,在單片機內部有一個時鐘振蕩電路,只需要外接一個振蕩源就能產生一定周期的時鐘信號送到單片機內部的各個單元,決定單片的工作頻率,時鐘電路如圖3-2 所示。圖3-2 外部振蕩電路 一般選用石英晶體振蕩器。此電路大約延遲10ms后振蕩器起

20、振,在XTAL2引腳產生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要有石英晶體的頻率確定。電路中兩個電容C1、C2的作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進行微調。C1、C2的典型值為30pF。單片機工作時,由內部振蕩器產生或由外直接輸入的送至內部控制邏輯單元的時鐘信號的周期稱為時鐘周期,其大小是時鐘信號頻率的倒數,時鐘信號頻率常用fosc表示。圖中時鐘頻率為12MHz,即fosc=12MHz,則時鐘周期為1/12s。3.4 復位電路設計單片機的第9腳RST為硬件復位電路,只要在該端加上持續4個機器周期的高電平即可實現復位,復位后單片機的各個狀態都恢復到初始化狀態,其電路圖如圖3

21、-3所示。圖3-3中由按鍵以及電容C1、電阻R1、R2構成上電復位及手動電路。由于單片機是高電平復位,所以上電復位時,接通電源即可,當上電后,由于電容C1開始緩緩充電,則圖中電路由5V電源到電容到電阻R1和地之間形成一個通路,由于在R1上產生電壓降,則單片機的RST腳上為高電平,經過一段時間后電容的電充滿,此時C1處可視為斷路,單片機RST腳處電壓逐漸降為0V,即處于穩定的低電平狀態,此時單片機完成上電復位,程序從0000H開始執行。手動復位時,按一下圖中的按鈕即可,當按鍵按下的時候,單片機的9腳RST管腳處于高電平,此時單片機處于復位狀態。值得注意的是,在設計當中使用到了硬件復位電路和軟件復

22、位兩種功能,由上面所述的硬件復位之后的各狀態可知,寄存器的值都恢復到了初始值,而前面的功能介紹中提到了倒計時時間的記憶功能,該功能實現的前提條件就是不能對單片機進行硬件復位,所以設定了軟件復位功能。軟件復位實際上就是當程序執行完畢之后,將程序指針通過一條跳轉指令讓它跳轉到程序執行的起始地址。 圖3-3 硬件復位電路3.5 顯示電路的設計 顯示電路概述示功能與硬件關系極大,在這里我們使用的是七段數碼管顯示,通常在顯示上我們采用的方法一般包括兩種:一種是靜態顯示,一種是動態掃描。其中靜態顯示的特點是顯示穩定不閃爍,程序編寫簡單,但占用端口資源多;動態掃描的特點是顯示穩定程度沒有靜態顯示好,程序編寫

23、復雜,但是相對靜態顯示而言最大的優點是占用端口資源少。由于本設計需要較多的端口用于其它的功能因此采用占用端口少的動態掃描顯示的辦法。以下將對顯示電路的各個部件及整體設計做詳細的介紹。 七段LED數碼管的原理LED數碼管顯示器由8個發光二極管中的7個長條發光二極管(稱七筆段)按a、b、c、d、e、f、g順序組成“8”字形,另一個點形的發光二極管放在右下方,用來顯示小數點。數碼管按內部連接方式又分為共陽極數碼管和共陰極數碼管兩種。若內部8個發光二極管的陽極連在一起接電源正極,就成為共陽極數碼管;若8個發光二極管的陰極連在一起接地,測稱為共陰極數碼管。本次設計所用的到的共陰極數碼管的引腳如圖3-4所

24、示,外部有10個引腳,其中1和6引腳連通,作為公共端接地。圖3-4 一位共陰極數碼管引腳圖從LED數碼的結構可以看出,不同筆段的組合就何以構成不同的字符,例如筆段b、c被點亮時,就可以顯示數字1:當筆段a、b、c被點亮時,就可以顯示數字7;只要控制7個發光二極管按一定要求亮與滅,就能顯示出十六進制字符0F。將控制數碼管顯示字符的各字段代碼稱為顯示代碼或字段碼。數碼管顯示碼是表述二進制數與數碼管所顯示字符的對應關系的,如表3-1所示。對于共陰極數碼管,由于8個發光二極管的陰極已連在一起接地,所以,只要控制各字段的正極,就可以控制發光二極管的亮與滅。表3-1 七段顯示譯碼器的真值表及段碼表字 符h

25、 g f e d c b a字段碼01 1 0 0 0 0 0 00 0 1 1 1 1 1 1共陽字碼段C0H共陰字碼段3FH11 1 1 1 1 0 0 10 0 0 0 0 1 1 0共陽字碼段F9H共陰字碼段06H21 0 1 0 0 1 0 00 1 0 1 1 0 1 1共陽字碼段A4H共陰字碼段5BH31 0 1 1 0 0 0 00 1 0 0 1 1 1 1共陽字碼段B0H共陰字碼段4FH41 0 0 1 1 0 0 10 1 1 0 0 1 1 0共陽字碼段99H共陰字碼段66H51 0 0 1 0 0 1 00 1 1 0 1 1 0 1共陽字碼段92H共陰字碼段6DH6

26、1 0 0 0 0 0 1 00 1 1 1 1 1 0 1共陽字碼段82H共陰字碼段7DH71 1 1 1 1 0 0 00 0 0 0 0 1 1 1共陽字碼段F8H共陰字碼段07H81 0 0 0 0 0 0 00 1 1 1 1 1 1 1共陽字碼段80H共陰字碼段7FH91 0 0 1 0 0 0 00 1 1 0 1 1 1 1共陽字碼段90H共陰字碼段6FHA1 0 0 0 1 0 0 00 1 1 1 0 1 1 1共陽字碼段88H共陰字碼段77HB1 0 0 0 0 0 1 10 1 1 1 1 1 0 0 共陽字碼段83H共陰字碼段7CHC1 1 0 0 0 1 1 00

27、0 1 1 1 0 0 1共陽字碼段C6H共陰字碼段39HD1 0 1 0 0 0 0 10 1 0 1 1 1 1 1共陽字碼段A1H共陰字碼段5EHE1 0 0 0 0 1 1 00 1 1 1 1 0 0 1共陽字碼段86H共陰字碼段79HF1 0 0 0 1 1 1 00 1 1 1 0 0 0 1共陽字碼段8EH共陰字碼段71H 顯示電路整體設計顯示電路如圖3-5 所示:圖3-5 顯示電路圖中RP1為電阻盒,相當于8個獨立的電阻的一端接在一起并接電源,另外一端分別接出引線,在顯示電路中作為上拉電阻。圖中有2個七段LED數碼管,它們的公共端1、2分別接到單片機的P2.0、P2.1口,單

28、片機的這2個I/O口輸出位選信號用于動態掃描。而所謂動態掃描就是指我們采用分時的方法,輪流控制各個LED數碼管的公共端,使各個顯示器輪流點亮。在輪流點亮掃描過程中,每位數碼管的點亮時間是極為短暫的(約1ms),但由于人的視覺暫留現象及發光二極管的余輝效應,盡管實際上各位數碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩定的顯示數據,不會有閃爍感。而單片機的P0.0P0.6口則負責將字段碼數據傳送給LED數碼管。3.6 開關鍵盤設計 指撥開關指撥開關面板上通常會標有“ON”或其他記號,若將開關撥到“ON”的一邊,則接點接通(on),撥到另一邊則為斷開(off)。若要以開關作為輸入電

29、路,通常會接一個電阻到Vcc或GND,做上拉電阻或下拉電阻,如圖3-6所示有兩種開關電路可供選擇。 a) b)圖3-6 開關電路本設計的溫度設定允許和退出按鍵是選用如圖3-6中a)所示的設計,低電平為進入溫度設定,高電平為退出溫度設定。 按鍵開關 按鍵開關為機械彈性開關,當按下鍵帽時,按鍵內的復位彈簧片被壓縮,動片觸電與靜片觸電相連,鍵盤的兩個引腳被接通;松手后,復位彈簧將動片彈開,使動片與靜片脫離接觸,鍵盤的兩個引腳被斷開。由于機械接觸點的彈性作用,一個按鍵從開始接上至接觸穩定要經過510ms的抖動時間,在此期間,有抖動發生。按鍵抖動波形如圖3-7所示。 圖3-7按鍵抖動電壓波形按鍵開關輸入

30、需要解決的兩個主要問題是判斷是否有按鍵按下和消除按鍵抖動的影響。按鍵的確認反映在電壓上,就是和按鍵相連的引腳呈現出高電平還是低電平。消除按鍵的抖動通常有硬件、軟件兩種消除方法。一般在按鍵較多時,采用軟件的方法消除抖動,即在第一次檢測到有按鍵按下時,執行一段延時1215ms的子程序后,再確認該鍵電平是否任保持為閉合狀態電平,如果保持為閉合狀態電平就可以確認真有按鍵按下,從而消除抖動的影響。一般電子裝置中都設計有按鍵輸入,用以控制程序執行時數據的輸入或是特殊功能的設置及操作。在控制電路中,如果按鍵數不多是可以使用一個按鍵對應一條輸入位線控制,即獨立式按鍵。這種接法,一根輸入線上的按鍵是否被按下,不

31、會影響其他輸入線上的工作狀態。因此,通過檢測輸入線的電平狀態就可以很容易判斷哪個鍵按下了。獨立式按鍵可以用單穩態鎖存器消除抖動。如果監控程序中的讀鍵操作安排在主程序(后臺程序)或鍵盤中斷(外部中斷)子程序中,則該延時子程序便可直接插入讀鍵過程中。如果讀鍵過程安排在定時中斷子程序中,就可省去專門的延時子程序,利用兩次定時中斷的時間間隔來完成抖動處理。3.7 指示燈電路在實時溫度和設定溫度切換時,為了明白LED數碼管顯示的是哪種溫度,可以用兩個發光二極管來指示,如果標有“實時溫度”標記的發光二極管點亮,則表示數碼管顯示的是實時溫度,如果標有“設定溫度”標記的發光二極管點亮,則表示數碼管顯示的是設定

32、溫度。這樣就不至于混淆了。如圖3-9所示為溫度指示燈電路。圖3-9 溫度指示燈電路圖中兩個發光二極管分別與單片機的P2.6,P2.5口相連,單片機把顯示何種溫度的信號送給這兩個口,對應的發光二極管就會點亮,信號為低電平有效。3.8 溫度采集電路溫度采集電路如圖3-10所示:圖3-10 溫度采集電路圖中U2為溫度采集電路的核心部件,溫度傳感器DS18B20,下面將詳細介紹它的參數和用法。DS18B20內部的低溫度系數振蕩器是一個振蕩頻率隨溫度變化很小的振蕩器,為計數器1提供一頻率穩定的計數脈沖。高溫度系數振蕩器是一個振蕩頻率對溫度很敏感的振蕩器,為計數器2提供一個頻率隨溫度變化的計數脈沖。初始時

33、,溫度寄存器被預置成-55,每當計數器1從預置數開始減計數到0時,溫度寄存器中寄存的溫度值就增加1,這個過程重復進行,直到計數器2計數到0時便停止。初始時,計數器1預置的是與-55相對應的一個預置值。以后計數器1每一個循環的預置數都由斜率累加器提供。為了補償振蕩器溫度特性的非線性性,斜率累加器提供的預置數也隨溫度相應變化。計數器1的預置數也就是在給定溫度處使溫度寄存器寄存值增加1計數器所需要的計數個數。DS18B20內部的比較器以四舍五入的量化方式確定溫度寄存器的最低有效位。在計數器2停止計數后,比較器將計數器1中的計數剩余值轉換為溫度值后與0.25進行比較,若低于0.25,溫度寄存器的最低位

34、就置0;若高于0.25,最低位就置1;若高于0.75時,溫度寄存器的最低位就進位然后置0。這樣,經過比較后所得的溫度寄存器的值就是最終讀取的溫度值了,其最后位代表0.5,四舍五入最大量化誤差為1/2LSB,即0.25。溫度寄存器中的溫度值以9位數據格式表示,最高位為符號位,其余8位以二進制補碼形式表示溫度值。測溫結束時,這9位數據轉存到暫存存儲器的前兩個字節中,符號位占用第一字節,8位溫度數據占據第二字節。DS18B20測量溫度時使用特有的溫度測量技術。DS18B20內部的低溫度系數振蕩器能產生穩定的頻率信號;同樣的,高溫度系數振蕩器則將被測溫度轉換成頻率信號。當計數門打開時,DS18B20進

35、行計數,計數門開通時間由高溫度系數振蕩器決定。芯片內部還有斜率累加器,可對頻率的非線性度加以補償。測量結果存入溫度寄存器中。一般情況下的溫度值應該為9位,但因符號位擴展成高8位,所以最后以16位補碼形式讀出。DS18B20工作過程一般遵循以下協議:初始化ROM操作命令存儲器操作命令處理數據 初始化單總線上的所有處理均從初始化序列開始。初始化序列包括總線主機發出一復位脈沖,接著由從屬器件送出存在脈沖。存在脈沖讓總線控制器知道DS1820 在總線上且已準備好操作。 ROM操作命令一旦總線主機檢測到從屬器件的存在,它便可以發出器件ROM操作命令之一。所有ROM操作命令均為8位長。這些命令列表如下:R

36、ead ROM(讀ROM)33H此命令允許總線主機讀DS18B20的8位產品系列編碼,唯一的48位序列號,以及8位的CRC。此命令只能在總線上僅有一個DS18B20的情況下可以使用。如果總線上存在多于一個的從屬器件,那么當所有從片企圖同時發送時將發生數據沖突的現象(漏極開路會產生線與的結果)。Match ROM( 符合ROM)55H此命令后繼以64位的ROM數據序列,允許總線主機對多點總線上特定的DS18B20尋址。只有與64位ROM序列嚴格相符的DS18B20才能對后繼的存貯器操作命令作出響應。所有與64位ROM序列不符的從片將等待復位脈沖。此命令在總線上有單個或多個器件的情況下均可使用。S

37、kip ROM( 跳過ROM )CCH在單點總線系統中,此命令通過允許總線主機不提供64位ROM編碼而訪問存儲器操作來節省時間。如果在總線上存在多于一個的從屬器件而且在Skip ROM命令之后發出讀命令,那么由于多個從片同時發送數據,會在總線上發生數據沖突(漏極開路下拉會產生線與的效果)。Search ROM( 搜索ROM)F0H當系統開始工作時,總線主機可能不知道單線總線上的器件個數或者不知道其64位ROM編碼。搜索ROM命令允許總線控制器用排除法識別總線上的所有從機的64位編碼。Alarm Search(告警搜索)ECH此命令的流程與搜索ROM命令相同。但是,僅在最近一次溫度測量出現告警的

38、情況下,DS18B20才對此命令作出響應。告警的條件定義為溫度高于TH 或低于TL。只要DS18B20一上電,告警條件就保持在設置狀態,直到另一次溫度測量顯示出非告警值或者改變TH或TL的設置,使得測量值再一次位于允許的范圍之內。貯存在EEPROM內的觸發器值用于告警。 存儲器操作命令Write Scratchpad(寫暫存存儲器)4EH這個命令向DS18B20的暫存器中寫入數據,開始位置在地址2。接下來寫入的兩個字節將被存到暫存器中的地址位置2和3。可以在任何時刻發出復位命令來中止寫入。Read Scratchpad(讀暫存存儲器)BEH這個命令讀取暫存器的內容。讀取將從字節0開始,一直進行

39、下去,直到第9(字節8,CRC)字節讀完。如果不想讀完所有字節,控制器可以在任何時間發出復位命令來中止讀取。Copy Scratchpad(復制暫存存儲器)48H這條命令把暫存器的內容拷貝到DS18B20的E2存儲器里,即把溫度報警觸發字節存入非易失性存儲器里。如果總線控制器在這條命令之后跟著發出讀時間隙,而DS18B20又正在忙于把暫存器拷貝到E2存儲器,DS18B20就會輸出一個“0”,如果拷貝結束的話,DS18B20 則輸出“1”。如果使用寄生電源,總線控制器必須在這條命令發出后立即起動強上拉并最少保持10ms。Convert T(溫度變換)44H這條命令啟動一次溫度轉換而無需其他數據。

40、溫度轉換命令被執行,而后DS18B20保持等待狀態。如果總線控制器在這條命令之后跟著發出讀時間隙,而DS18B20又忙于做時間轉換的話,DS18B20將在總線上輸出“0”,若溫度轉換完成,則輸出“1”。如果使用寄生電源,總線控制器必須在發出這條命令后立即起動強上拉,并保持500ms。Recall E2(重新調整E2)B8H這條命令把貯存在E2中溫度觸發器的值重新調至暫存存儲器。這種重新調出的操作在對DS18B20上電時也自動發生,因此只要器件一上電,暫存存儲器內就有了有效的數據。在這條命令發出之后,對于所發出的第一個讀數據時間片,器件會輸出溫度轉換忙的標識:“0”=忙,“1”=準備就緒。Rea

41、d Power Supply(讀電源)B4H對于在此命令發送至DS18B20之后所發出的第一讀數據的時間片,器件都會給出其電源方式的信號:“0”=寄生電源供電,“1”=外部電源供電。 處理數據DS18B20的高速暫存存儲器由9個字節組成,其分配如表3-2所示。當溫度轉換命令發布后,經轉換所得的溫度值以二字節補碼形式存放在高速暫存存儲器的第0和第1個字節。單片機可通過單線接口讀到該數據,讀取時低位在前,高位在后。表3-2 DS18B20暫存器字節分配溫度/二進制表示十六進制表示符號位(5位)數據位(11位)+1250 0 0 0 01 1 1 1 1 0 1 0 0 0 007D0H+25.06

42、250 0 0 0 00 0 1 1 0 0 1 0 0 0 10191H+10.1250 0 0 0 00 0 0 1 0 1 0 0 0 1 000A2H+0.50 0 0 0 00 0 0 0 0 0 0 1 0 0 00008H00 0 0 0 00 0 0 0 0 0 0 0 0 0 00000H-0.51 1 1 1 11 1 1 1 1 1 1 1 0 0 0FFF8H-10.1251 1 1 1 11 1 1 0 1 0 1 1 1 1 0FF5EH-25.6251 1 1 1 11 1 0 0 1 1 0 1 1 1 1FE6FH-551 1 1 1 11 0 0 1 0 0

43、 1 0 0 0 0FC90H 上表是DS18B20溫度采集轉化后得到的12位數據,存儲在DS18B20的兩個8比特的RAM中,二進制中的前面5位是符號位,如果測得的溫度大于或等于0,這5位為0,只要將測到的數值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數值需要取反加1再乘于0.0625即可得到實際溫度。溫度轉換計算方法舉例:例如當DS18B20采集到+125的實際溫度后,輸出為07D0H,則:實際溫度=07D0H0.0625=20000.0625=125.0。例如當DS18B20采集到-55的實際溫度后,輸出為FC90H,則應先將11位數據位取反加1得370H(符號

44、位不變,也不作為計算),則:實際溫度=370H0.0625=8800.0625=55.0。3.9 本章小結本章詳細的講述了以80C51為核心元件的恒溫箱的硬件電路具體設計過程,分析了具體電路的工作原理。在設計過程中,實現溫度控制的是通過編寫程序的方法集成在80C51內部。接著將程序下載到硬件電路中,配合周邊的溫度采集電路,時鐘電路,溫度控制電路,顯示電路等,制作出符合設計要求的恒溫箱。第4章 軟件設計4.1 軟件任務分析軟件任務分析和硬件電路設計結合進行,哪些功能由硬件完成,哪些任務由軟件完成,在硬件電路設計基本定型后,也就基本上決定下來了。軟件任務分析環節是為軟件設計做一個總體規劃。從軟件的

45、功能來看可分為兩大類:一類是執行軟件,它能完成各種實質性的功能,如測量,計算,顯示,打印,輸出控制和通信等;另一類是監控軟件,它是專門用來協調各執行模塊和操作者的關系,使在系統軟件中充當組織調度角色的軟件。這兩類軟件的設計方法各有特色,執行軟件的設計偏重算法效率,與硬件關系密切,千變萬化。軟件任務分析時,應將各執行模塊一一列出,并為每一個執行模塊進行功能定義和接口定義(輸入輸出定義)。在對各執行模塊進行定義時,將要牽扯到的數據結構和數據類型問題也一并規劃好。各執行模塊規劃好后,就可以設計監控程序了。首先根據系統功能和鍵盤設置選擇一種最適合的監控程序結構。相對來講,執行模塊任務明確單純,比較容易

46、編程,而監控程序較易出問題。這如同當一名操作工人比較容易,而當一個廠長就比較難一樣。軟件任務分析的另一個內容是如何安排監控軟件和執行模塊。整個系統軟件可分為后臺程序(背景程序)和前臺程序。后臺程序指主程序及其調用的子程序,這類程序對實時性要求不是太高,延時幾十毫秒甚至幾百毫秒也沒關系,故通常將監控程序(鍵盤解釋程序),顯示程序和打印程序等與操作者打交道的程序放在后臺程序中執行;而前臺程序安排一些實時性要求較高的內容,如定時系統和外部中斷。也可以將全部程序均安排在前臺,后臺程序為“使系統進入睡眠狀態”,以利于系統節電和抗干擾。4.2 程序流程圖在本程序中包括了以下主要的程序,主程序,溫度設定子程

47、序,溫度讀取及轉換子程序,顯示溫度子程序,比較溫度子程序,顯示切換子程序。主程序流程圖如圖4-1所示:圖4-1 主程序流程圖溫度設定子程序流程圖如圖4-2所示:圖4-2 溫度設定子程序流程圖溫度采集計算子程序如圖4-3所示:圖4-3 溫度采集計算子程序流程圖溫度比較處理子程序流程圖如圖4-4所示讀取實時溫度值實時溫度與設定溫度相等嗎?實時溫度比設定值大?開啟制冷開啟加熱N返回NYY圖4-4 溫度比較處理子程序流程圖溫度顯示子程序如圖4-5所示:選通十位地址,送顯示字符延時約12ms選通個位地址,送顯示字符延時約12ms返回圖4-5 溫度顯示子程序根據這些流程圖編寫出的最終源程序見附錄D4.3

48、本章小結本章是恒溫箱的軟件設計,實現恒溫箱的主要功能是通過編寫程序的方法集成在80C51內部。將程序下載到硬件電路中,實現溫控功能。結論與展望三個多月的畢業設計即將結束了,我深刻感受到專業知識的缺乏,同時,在整個設計過程中我也感受到自身知識的進步,特別是在單片機控制系統方面。設計是以80C51單片機為核心進行的,數據采樣模塊采用可直接輸出數字量的數字溫度傳感器DS18B20,使系統的軟、硬件都簡化了很多;采用繼電器驅動模塊作為為系統的降溫部分,大大地簡化了系統硬件電路。通過對風機的控制可實現糧庫溫度的自動控制。由于采用數字溫度傳感器DS18B20采集溫度,所以,詳細介紹了DS18B20的運用;

49、軟件設計方面采用匯編語言對系統的軟件編程,為了便于編寫、調試、修改和增刪,系統軟件的編制采用了模塊化的設計方法。鑒于溫度控制的發展趨勢,在以后的實踐中對系統還要做進一步的改進:硬件方面,采用DSP, ARM或者利用第一章提到的片上系統SOC對系統的硬件進行重新設計,軟件方面,摒棄傳統的前后臺系統軟件編程模式,改用基于實時操作系統的系統軟件開發;控制算法方面,嘗試采用現在得到快速發展的智能控制方法,如模糊控制、神經網絡控制和模糊PID控制等等。致謝本課題是在代廣珍導師的悉心指導下完成的,從論文的選題、系統設計、到修改定稿都沒有離開代老師的無私幫助,通過本次設計,本人在代老師的指引下學到了許多知識

50、,這些是在平時的學習中得不到的知識,他嚴謹的治學態度、淵博的學識和悉心的指導使我受益非淺。在此,向代老師表以崇高的敬意和由衷的感謝!還要感謝各位評閱老師,經過你們的認真評閱和指正,將會使我的設計的系統更加完善。在此,我向你們致以最誠摯的謝意!安徽工程大學電氣工程學院的老師們,在平時嚴謹的治學和勤懇的教育,讓我在平時打下堅實的基礎,才能順利完成本次設計,可以說沒有你們的教誨和指導,我們也不會取得今天的成績。我想對他們說一聲:感謝你們的教導和關心,您們辛苦了!本次課程設計的完成還離不開我身邊同學和一些老師的幫忙,在系統軟件設計方面同學給了我很大的幫助,因為期間我一直在外實習工作,許多事都要麻煩在校的老師和同學幫忙,在此,向他們表示感謝!鑒于本人所學知識有限,經驗不足,又是初次研究這種復雜的設計,在此過程中難免存在一些錯誤和不足之處,懇請各位老師給予批評和指正。 作者: 2010年 6 月 16 日 參考文獻1何立民. 單片機高級教程應用與設計M.北京:北京航空航天大學出版社,2007.12 胡漢才.單片機原理及接口技術M.北京:清華大學出版社,19993歐陽文.ATMEL89系列單片機的原理與開發實踐M.北京:中國電力出版社,2007.6 4樊尚春.傳感器技術及應用M.北京航空航天大學出版社,2004.85高鵬等.Protel99入門與提高M.人

溫馨提示

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

評論

0/150

提交評論