版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、摘要本文設計了一種自動凈水器的控制系統(tǒng),提供溫度控制、開關量輸出、數據保存、水位檢測等關鍵部件的設計思路及方案,給出了相應的硬件電路和軟件流程,實現機器的自動運行。溫度控制采用了PID控制,很好的解決了溫度控制系統(tǒng)具有非線性、純滯后、大慣性等特點,系統(tǒng)實現了對溫度設定值的設置和對溫度升降的控制,并利用LCD液晶顯示器顯示溫度控制過程,另外用紅、綠發(fā)光二極管作為溫度報警器。水位監(jiān)測是利用兩組開關的控制實現的,用蜂鳴器作為水位監(jiān)測報警器。通過測試,證明了系統(tǒng)穩(wěn)定可靠。關鍵詞:自動凈水器;溫度控制;水位監(jiān)測;PID控制ABSTRACTThis article designed an automati
2、c water purification machine control system, temperature control, switch output, data storage, water detection and so on key parts of the design ideas and solutions, gives the corresponding hardware circuit and software process, the implementation of the machine to run automatically. Temperature con
3、trol adopted PID control, which is a very good solution to the temperature control system, which has the characteristics of nonlinear, pure time-delay, large inertia. The system realized the temperature set point set up and control of the temperature rise and fall, and use the LCD display shows the
4、temperature control process, in addition the system takes red and green light-emitting diodes (leds) as the temperature alarm. The system takes the use of two sets of switch control ast the simulation of Water level monitoring, and a buzzer as the alarm of water level monitoring. Through the test, w
5、hich has proved that the system is stable and reliable.Key words: automatic purifier; Temperature control;Water level monitoring;PID control目錄摘要.ABSTRACT第一章 緒論.11.1 意義.11.2 國內外現狀及水平.1第二章 硬件設計.42.1 設計方案圖.42.2 AT89C51芯片介紹.52.3 溫度控制部分.92.4 水位監(jiān)測部分.14第三章 軟件設計163.1 主函數程序設計.163.2 溫度控制程序設計.183.3 鍵盤掃描程序設計.22
6、第四章 系統(tǒng)測試254.1 溫度控制測試.254.2 水位監(jiān)測測試.30總結.31參考文獻.32致謝.33第一章 緒論1.1 意義水是人類生命的源泉,人們對飲用水質的要求及相應的標準在不斷提高。人類經歷了由最初的簡單的沉淀凈水到傳統(tǒng)的煮沸處理,發(fā)展到現在的深度凈化飲用水。在發(fā)達國家飲用水凈化處理工藝已經很成熟且凈水機的使用也相當普及,但在我國,這種凈水機目前仍不為大眾消費者所熟悉。所以設計功能完善、經濟實用的智能凈水機具有積極的社會意義。1.2 國內外現狀及水平家用凈水器,是近幾年來發(fā)展了一個全新的技術領域,它的發(fā)展,為人類的生活質量,提供了一個新的選擇空間,也給人類的生命質量創(chuàng)造了新的可能。
7、因此,我們希望走近家用凈水器行業(yè),去發(fā)現它的現狀與前景,為未來的健康生活提供一些幫助。當今世界上凈水器最大的生產國和出口國就是中國,中國凈水器產業(yè)正加速進入品牌、技術和產品的洗牌階段。在生產制造業(yè)當中,擁有核心技術尤為重要,水家電也是如此。凈水器自發(fā)展以來,凈化技術多次更迭,在生活水平日益提高的今天,人們對飲水健康需求呼聲甚高。品種單一、功能單一的產品以及慢慢地淘汰,凈水器正向智能化、時尚化、個性化方面發(fā)展。凈水器廠家也在慢慢向高端化轉型??v觀全球凈水行業(yè),發(fā)達國家的凈水發(fā)展市場并不大,而在發(fā)展中國家,由于經濟的發(fā)展,污染處理不及時,或者是技術落后、經濟的限制的原因,對于生態(tài)、水質的污染程度有
8、不同程度的提高,人類的疾病發(fā)生率大大提高,因此急需水質的處理、凈化,處理以后的水質對于人類的健康,起到了非常積極的作用。以中國的家用凈水器行業(yè)看,以濾材過濾水質的的居多,以粗濾,粗濾加精濾為主要方向,每天的產量不大,一般在每天2到300公斤左右,過濾以后水質,普遍稱之為弱堿水、小分子團水。從技術上看,粗濾的技術過程,只是簡單地過濾了自來水中的一部分雜質,如果能過濾掉水中微生物,其實是根本不可能的,同時自來水本身對于微生物含量的控制,是能夠達到標準的,而對于水中的重金屬、有害礦物質成份、余氯、鹵類成份及富營養(yǎng)化物質,不管是那種過濾技術或者說是那種材料,其過濾以后,這些有害物質如何排除呢?是否積累
9、在濾材上?如果是積累在濾材上,那么是否有可能再次回到水里?事實上濾材成了一個藏污納垢的重要場所,一般半年到一年更換一次濾材的時間長度,水質的安全程度有多高?家用凈水器凈水以后的標準和自來水標準一樣。幾乎所有的廠家采用的標準是衛(wèi)生部的生活飲用水水質標準。這個標準和自來水的標準完全一致,標準偏低,產量小,無法改變水質的“病態(tài)”,是目前家用凈水器行業(yè)最明顯的特征,那么家用凈水器的優(yōu)勢在那里呢?優(yōu)勢在于方便,多數的家用凈水器可以直接安裝在水龍頭上直接過濾,出現的水在一部分地區(qū)的確有明顯的改善。因為那些管道舊、水質差、鐵銹嚴重的自來水,險些之外,凈水似乎效果并不明顯。部分家用凈水器存在安全隱患。有一部分
10、家用凈水器的濾材中有添加微量元素、礦物質材料,這些材料中有鋅、堿性材料,事實人體不需要另外添加微量元素,只要生活中注意多樣化的食物膳食方式,微量元素不存在缺乏,而如果在水里另外添加,則有中毒的可能性。弱堿性只是一個概念,非實質上的弱堿。改變水質的性質,除非能改變水的分子結構,而改變水的分子結構需要外在的能量供給,純粹的過濾何來的外在能量供給?因此弱堿水只有二種可能,那就是添加堿性材料,要以就是純粹,并非實質上的弱堿水。而用堿性材料添加,就算緩慢溶解,PH值的控制同樣有難度,是否會對人體產生堿中毒?小分子團水,是通過能量來打開氫鍵與水分子間的鏈接,而且必須持續(xù)不間斷地進行,才能使水分子變小。真正
11、的小分子團水的口感微甜,有濃厚感,不像普通水那么清淡。如果說用酒來形容,那么普通水就是剛剛釀造完成的酒,口感極差。而小分子團水就是陳年的酒,口感極醇厚,帶有微甜。小分子團水是否又是另外一個新概念?家用凈水器行業(yè)的突破口,在于技術的創(chuàng)新,未來的前景一片大好。以目前全球的自來水現狀,水質都處于“病態(tài)”,水本身源于自然,而采用集中供水以后,水的流動性變弱,在自然環(huán)境下與氧氣的接觸少,水中的溶解氧明顯不夠,因此水就成了一種液體,對于人體的作用非常有限。而在自然環(huán)境下的了生態(tài)水,因為經過不斷在流動、撞擊,與空氣中氧氣親密接觸,加臭氧層自然消毒,水成了“生命之源”“百藥之王”,如今這些功能基本喪失,未來是
12、否能夠恢復,需要家用凈水器行業(yè)的共同努力,為人類創(chuàng)造一片全新的、自然生態(tài)的未來,健康將不再難。國內外知名企業(yè)及機構陸續(xù)進入凈水器行業(yè),智能化已經成為企業(yè)對高端市場的一種定位。越來越多的企業(yè)注意到創(chuàng)新對于企業(yè)發(fā)展的必要性以及重要性。凈水器行業(yè)更加趨向智能化、時尚化以及個性化。眾多知名企業(yè)與國際專業(yè)機構以及企業(yè)聯(lián)合,在產品技術方面進行創(chuàng)新,從而推進企業(yè)及行業(yè)市場拓展及品牌的強化。企業(yè)在實力與責任兩種創(chuàng)新機制的推動下,未來幾年,中國凈水器行業(yè)格局將會發(fā)生重大變化。第二章 硬件設計2.1 設計方案圖基于51單片機的智能凈水器控制系統(tǒng)設計方案圖如圖2.1所示AT89C51數字量輸出擴展高溫消毒殺菌溫度控
13、制加熱,制冷燈報警顯示故障檢查水位檢查按鍵LCD顯示溫度傳感器濾波電 路圖2.1 系統(tǒng)方案圖本系統(tǒng)采用AT89C51作為設計的核心元件,利用LM016L液晶顯示器作為顯示器件,主要由溫度控制電路、溫度報警電路、水位監(jiān)測電路和水位報警電路等部分組成。加熱器采用proteus軟件中的加熱器模型(oven)進行仿真,溫度報警分別采用紅、綠發(fā)光二極管進行仿真,水位監(jiān)測采用雙列直插開關組進行模擬仿真,水位報警采用proteus軟件中的蜂鳴器進行仿真。在仿真中,加熱器模型輸出與溫度成比例的電壓信號,經過ADC0831數模轉換器轉換后,ADC0831數模轉換器可將電壓信號轉換成與爐溫相對應的數字信號,送入5
14、1單片機中由單片機完成數據處理后送LCD顯示。當水溫低于或者高于設定溫度值時,紅色發(fā)光二極管點亮報警,加熱器進行加熱或者停止加熱處理;當水溫接近設定溫度值時,綠色發(fā)光二極管點亮,表示溫度正常。由于proteus中沒有水位監(jiān)測的傳感器可仿真,在這里采用雙列直插開關組進行模擬仿真,配合蜂鳴器作為水位報警裝置。兩個開關分別反映了水位過高和水位過低的情形,當打開開關1或者開關2時,蜂鳴器都會報警表示水位過高或者過低。2.2 AT89C51芯片介紹AT系列單片機是美國ATMEL公司在IntelMCS51單片機技術基礎上開發(fā)出的一種新產品,片內帶有4k E2ROM,編程擦除全部采用電實現(有5V和12V兩
15、種模式),既能進行在線編程擦寫,亦可采用電話線進行遠程編程擦寫??芍貜托詮?,使用壽命長,可重復擦寫 1000次以上,并且擦寫速度快,4k編程大約需3s,擦除僅需10ms。程序保存時間長,可達100年,與IntelMCS51系列單片機完全兼容,且有超強的加密功能,能完全替代IntelMCS8751Intel MCS8752和Intel MCS87C51Intel MCS87C52,低電壓,低電流,低功耗,除了有DIP、PLCC、QFP等多種封裝形式,還有商用級、工業(yè)級、汽車用級、軍用級等多種規(guī)格。因此,目前它在微計算機產品開發(fā)中的應用越來越“火”。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只
16、讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提 供了一種靈活性高且價廉的方案。圖2.2 AT89C51芯片2.2.1管腳說明VCC:供電電壓。 GND:接地。 P0口:P0口為一個8位
17、漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。 P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。
18、 P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優(yōu)勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。 P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個
19、TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如:口管腳 備選功能P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時器0外部輸入)P3.5 T1(記時器1外部輸入)P3.6 /WR(外部數據存儲器寫選通)P3.7 /RD(外部數據存儲器讀選通)P3口同時為閃爍編程和編程校驗接收一些控制信號。 RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機
20、器周期的高電平時間。 ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 /PSEN:外部程序存儲器的選
21、通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。 /EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。2.2.2振蕩器特性 XTAL1
22、和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,XTAL2應不接。有余輸入至內部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。2.2.3芯片擦除 整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復編程以前,該操作必須被執(zhí)行。 此外,AT89C51設有穩(wěn)態(tài)邏輯,可以在低
23、到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內容并且凍結振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止。 2.3 溫度控制部分2.3.1 溫度控制電路溫度控制電路圖如圖2.3所示圖2.3 溫度控制電路圖溫度控制在科學研究和工業(yè)生產中具有重要意義,其控制系統(tǒng)具有非線性、純滯后、大慣性等特點,導致傳統(tǒng)的控制方式超調大、調節(jié)時間長、控制精度低。因此在設計溫度控制系統(tǒng)中經常采用PID進行控制,PID控制作為自動控制系統(tǒng)中常用的一種控制方法,在工程中的應用非常廣泛。本文設計了以AT8
24、9C51單片機為核心的加熱器溫度控制系統(tǒng),采用PID控制方法,并結合Proteus仿真平臺進行了仿真研究。在系統(tǒng)中,加熱器模型輸出與溫度成比例的電壓信號,經過信號調理電路轉換后,與AT89C51的A/D轉換通道連接,轉換成與爐溫相對應的數字信號,由單片機完成數據處理后送LCD顯示。將測量溫度與設定溫度進行比較,對其差值進行PID運算得出控制量,根據控制量計算出PWM占空比,通過單片機PWM端口輸出PWM波驅動三極管的導通和關閉,達到控制發(fā)熱絲的導通時間,以實現對爐溫的控制。加熱器(OVEN)為Proteus提供的加熱器模型,通過對該模型的參數設定,可改變發(fā)熱絲及加熱容器的參數,以接近被控對象模
25、型。本系統(tǒng)溫度控制器的電熱元件是發(fā)熱絲。當容器內溫度升高至設定溫度時,溫度控制器會發(fā)出信號停止加熱。但這時發(fā)熱絲的溫度會高于設定溫度,發(fā)熱絲還將會對被加熱的器件進行加熱,即使溫度控制器發(fā)出信號停止加熱,被加熱器件的溫度還往往繼續(xù)上升幾度,然后才開始下降。當下降到設定溫度的下限時,溫度摔制器又開始發(fā)出加熱的信號,開始加熱,但發(fā)熱絲要把溫度傳遞到被加熱器件需要一定的時間。通常開始重新加熱時,溫度繼續(xù)下降幾度。所以,傳統(tǒng)的定點開關控制溫度會有正負誤差幾度的現象,但這不是溫度控制器本身的問題,而是整個熱系統(tǒng)的結構性問題,使溫度控制器控溫產生一種慣性溫度誤差。在本系統(tǒng)溫度控制電路中,采用三極管作控制開關
26、,其原理是利用三極管的飽和和截止特性。圖2.2中,三極管為PNP型三極管,當PWM端輸入為低電平時,三極管工作于飽和狀態(tài),集電極C和發(fā)射極E之間可視為短路,這時加熱器開始加熱;當PWM端輸入為高電平時,三極管工作于截止狀態(tài),集電極C和發(fā)射極E之間可視為斷路,這時加熱器停止加熱。在三極管與加熱器之間還需要做一個比較精確的過零負脈沖電路,讓脈沖發(fā)生于過零點以前,這樣我們就可以在過零點以前先關閉輸出,脈沖寬度越窄越好,至少這個脈沖寬度不能大于1ms,過零脈沖的識別也需要一點小小的處理,防止假脈沖混入,防止電網煩擾,這是軟件上的問題。2.3.2溫度值設定電路溫度值設定電路如圖2.4所示圖2.4 溫度值
27、設定電路本系統(tǒng)中溫度值設定電路利用兩個按鍵進行設置,圖2.3中KEY2連接的是溫度值增加按鍵,KEY3連接的是溫度值減小按鍵,分別連接單片機的P1.5端口和P1.6端口。為了方便較大幅度改變設定的溫度值,這里可將按鍵處理為長按和短按,長按時溫度值以10度增加或減小,短按時溫度以1度增加或減小。2.3.3 溫度報警電路溫度報警電路如圖2.5所示圖2.5 溫度報警電路溫度報警電路是利用兩個發(fā)光二極管組成。發(fā)光二極管簡稱為LED,由鎵(Ga)與砷(AS)、磷(P)的化合物制成的二極管,當電子與空穴復合時能輻射出可見光,因而可以用來制成發(fā)光二極管,在電路及儀器中作為指示燈,或者組成文字或數字顯示。磷砷
28、化鎵二極管發(fā)紅光,磷化鎵二極管發(fā)綠光,碳化硅二極管發(fā)黃光。 它是半導體二極管的一種,可以把電能轉化成光能,常簡寫為LED。發(fā)光二極管與普通二極管一樣是由一個PN結組成,也具有單向導電性。當給發(fā)光二極管加上正向電壓后,從P區(qū)注入到N區(qū)的空穴和由N區(qū)注入到P區(qū)的電子,在PN結附近數微米內分別與N區(qū)的電子和P區(qū)的空穴復合,產生自發(fā)輻射的熒光。不同的半導體材料中電子和空穴所處的能量狀態(tài)不同。當電子和空穴復合時釋放出的能量多少不同,釋放出的能量越多,則發(fā)出的光的波長越短。常用的是發(fā)紅光、綠光或黃光的二極管,本電路中采用發(fā)紅光和綠光二極管。當容器內溫度低于設定溫度值時,加熱器開始加熱,這時發(fā)紅光二極管亮,
29、表示正在加熱,直到容器內溫度達到設定溫度值時發(fā)綠光二極管亮;當容器內溫度高于設定溫度值時,加熱器停止加熱,容器內溫度開始下降,這時發(fā)紅光二極管亮,直到容器內溫度達到設定溫度值時發(fā)綠光二極管亮。2.3.4 顯示電路顯示電路如圖2.6所示圖2.6 顯示電路我們對液晶顯示器并不陌生。液晶顯示模塊已作為很多電子產品的通過器件,如在計算器、萬用表、電子表及很多家用電子產品中都可以看到,顯示的主要是數字、專用符號和圖形。在單片機的人機交流界面中,一般的輸出方式有以下幾種:發(fā)光管、LED數碼管、液晶顯示器。發(fā)光管和LED數碼管比較常用,軟硬件都比較簡單。在單片機系統(tǒng)中應用晶液顯示器作為輸出器件有以下幾個優(yōu)點
30、: 顯示質量高 由于液晶顯示器每一個點在收到信號后就一直保持那種色彩和亮度,恒定發(fā)光,而不像陰極射線管顯示器(CRT)那樣需要不斷刷新新亮點。因此,液晶顯示器畫質高且不會閃爍。 數字式接口 液晶顯示器都是數字式的,和單片機系統(tǒng)的接口更加簡單可靠,操作更加方便。 體積小、重量輕 液晶顯示器通過顯示屏上的電極控制液晶分子狀態(tài)來達到顯示的目的,在重量上比相同顯示面積的傳統(tǒng)顯示器要輕得多。功耗低 相對而言,液晶顯示器的功耗主要消耗在其內部的電極和驅動IC上,因而耗電量比其它顯示器要少得多。液晶顯示器(LCD)具有功耗低、體積小、質量
31、輕、功耗小的特點。點陣字符型液晶顯示器把 LCD控制器、點陣驅動器、字符存儲器集成在一塊印刷電路板上,構成便于應用的液晶模塊。這類液晶模塊不僅可以顯示數字、字符,還可以顯示各種圖形符號以及少量自定義符號,并且可以實現屏幕的上下左右滾動、文字的閃爍等功能;人機界面友好,使用操作也更加靈活、方便,使其日益成為各種儀器儀表等設備的首選。本設計的顯示電路采用的是LM016L液晶顯示器,主要用來顯示當前實際溫度值和設定值。在仿真中,加熱器模型輸出與溫度成比例的電壓信號,經過ADC0831數模轉換器轉換后,ADC0831數模轉換器可將電壓信號轉換成與爐溫相對應的數字信號,送入51單片機中由單片機完成數據處
32、理后送LCD顯示。設定值一旦設定就顯示不變,而實際溫度值通常是變化的。當實際溫度值低于設定值時,LCD上就會顯示實際溫度值在上升,直到實際溫度值達到設定溫度值;當實際溫度值高于設定溫度值時,LCD就會顯示實際溫度值在下降,直到達到設定溫度值。2.4 水位監(jiān)測部分2.4.1 水位監(jiān)測電路水位監(jiān)測電路如圖2.7所示圖2.7 水位監(jiān)測電路由于Proteus中沒有水位監(jiān)測的傳感器可仿真,為了實現水位監(jiān)測功能,在這里采用雙列直插開關組進行模擬仿真。開關1和開關2分別連接單片機的P1.4端口和P1.7端口。當按下開關1(即開關1置1)時,表示水位超過警戒線;當按下開關2(即開關2置1)時,表示水位低于警戒
33、線。2.4.2 水位報警電路在單片機應用的設計上,很多方案都會用到蜂鳴器,大部分都是使用蜂鳴器來做提示或報警。蜂鳴器分為有源蜂鳴器與無源蜂鳴器,這里的“源”不是指電源,而是指震蕩源,也就是說,有源蜂鳴器內部帶有震蕩源,所以只有一通電就會叫,而無源蜂鳴器內部不帶震蕩源,所以如果用直流信號無法令其鳴叫,必須用2K-5K的方波去驅動它。本系統(tǒng)水位報警電路如圖2.8所示,水位報警電路采用Proteus中的有源蜂鳴器進行仿真。蜂鳴器的一端接地,另一端通過三極管接入單片機的P2.6端口,這里的三極管同樣是作開關電路。圖2.7中,三極管為PNP型三極管,當水位監(jiān)測電路中的開關置1時,產生低電平信號輸入單片機
34、內,經單片機處理后,由P2.6端口輸出一個低電平信號,三極管工作于飽和狀態(tài),集電極C和發(fā)射極E之間可視為短路,三極管導通,蜂鳴器發(fā)聲報警。當水位監(jiān)測電路中的開關置0時,表示水位正常,P2.6端口輸出高電平,三極管工作于截止狀態(tài),集電極C和發(fā)射極E之間可視為斷路,三極管關閉,蜂鳴器停止發(fā)聲。圖2.8 水位報警電路第三章 軟件設計3.1 主函數程序設計整個軟件架構采用狀態(tài)機的方法,系統(tǒng)節(jié)拍為200us,溫度采集部分精度1度,溫控部分采用PID控制。超調量14%,誤差在正負1度。3.1.1 主流程圖圖3.1 主流程圖如圖3.1是系統(tǒng)主流程圖。主函數是軟件部分的核心,程序的運行首先是從主函數開始執(zhí)行的
35、。主函數的開始時系統(tǒng)的初始化,主要有定時器0的初始化、LCD1602的初始化和PID參數的初始化。然后開中斷,判斷定時中斷技術標志為多少。當定時中斷計數標志為30時獲取按鍵值;當定時中斷計數標志為35時處理按鍵值;當定時中斷計數標志為70時顯示設定的溫度;當定時中斷計數標志為80時進行AD采樣;當定時中斷計數標志為82時顯示實時溫度;當定時中斷計數標志為98時溫度控制處理函數。判斷定時中斷計數標志處理完后系統(tǒng)進入空虛狀態(tài),這時候系統(tǒng)又返回之前的判斷定時中斷計數標志。3.1.2 主函數程序uint8 SetTemp = 50; /復位設置溫度值uint8 KeyValue = 0; /復位按鍵值
36、uint8 InterTime = 0; /中斷計數標志uint8 PWM_Level = 0; /PWM占空比 sbit PWM = P25; /設置P25口為PWM輸出口sbit SPEEK = P26; /配置P26口為喇叭輸出口/測試程序運行時間sbit FLAG1 = P30;sbit FLAG2 = P31;sbit FLAG3 = P32;sbit FLAG4 = P33;/測試程序運行時間 */void TimeInit0(void);void CMPTemper(int sample);void KeyHandl(uint8 *KeyData);void Display(ui
37、nt8 StartXPos, uint8 StartYPos, uint8 Tvalue);void main() uint8 KeyValue,Temp; /按鍵臨時值TimeInit0();/定時器0初始化 LCD1602_Init();/LCD1602初始化LCD1602_Write_String(0,1,"real T: C");/顯示界面設置LCD1602_Write_String(1,1,"set T: C");PID_Paga_Init();/PID參數初始化OPEN_INTER();/開中斷while(1) switch(InterTim
38、e) case 30: GetKey(&KeyValue); /獲取按鍵值 break;case 35: FLAG2 = 1; KeyHandl(&KeyValue); /處理按鍵值 FLAG2 = 0; break;case 70: Display(1,7,SetTemp); /顯示設定的溫度 break;case 80: Temp = Adc0831_C(); Temp = Temp>>1; / Temp * 5 * 25 /255 break;case 82: Display(0,8,Temp); /顯示溫度 break;case 98: FLAG4 = 1;
39、 CMPTemper(PIDCalc(Temp); /溫度控制 FLAG4 = 0; break;default: break; PCON = 0x01; /進入空閑模式 3.2 溫度控制程序設計在系統(tǒng)中,加熱器模型輸出與溫度成比例的電壓信號,經過信號調理電路轉換后,與AT89C51的A/D轉換通道連接,轉換成與爐溫相對應的數字信號,由單片機完成數據處理后送LCD顯示。將測量溫度與設定溫度進行比較,對其差值進行PID運算得出控制量,根據控制量計算出PWM占空比,通過單片機PWM端口輸出PWM波驅動三極管的導通和關閉,達到控制發(fā)熱絲的導通時間,以實現對爐溫的控制3.2.1 PID算法設計及實現在
40、自動控制系統(tǒng)中,PID控制是應用非常廣泛的一種控制方法。由于加熱器溫升與電壓接通時間基本成正比,這就構成了PID調節(jié)的基礎。設t為采樣時間(ti×T,其中T為采樣周期,i為正整數),模擬PID控制器調節(jié)規(guī)律的數學模型可以用微分方程來表示u(t)Kpe(t)+T式中:Kp為比例系數;T1為積分時間;T為微分時間。由于單片機不能對連續(xù)的控制算式直接進行運算,在單片機控制系統(tǒng)中就必須對控制規(guī)律進行離散化的算法設計。加熱器控制系統(tǒng)為一時間離散控制系統(tǒng),可以采用數字式的差分方程來取代連續(xù)系統(tǒng)的微分方程,從而將PID算式離散化。數字PID控制算法的差分方程為u(t)Kpe(t)+e(n)e(n1
41、)+u=Kpe(n)+KI+KDe(n)e(n1) +u式中:Kp為比例系數;KI為積分系數;KD為微分系數。根據差分方程并結合溫控系統(tǒng)的具體情況,可以編寫出PID算法子程序,圖4是PID算法程序模塊的流程圖。PID運算過程中所有參數和計算值均以多字節(jié)浮數表示。系統(tǒng)運行過程中,通過定時器間隔50ms中斷1次,完成1次PID控制運算,根據運算結果對PWM波的占空比進行修改。在一般情況下,輸出控制增量會在一個相對較小的范圍內波動,最后達到平滑控制。在程序中輸出量大小設定了上下限值,可以防止在突發(fā)情況下溫控系統(tǒng)控制的崩潰現象。3.2.2 溫度控制流程圖圖3.2 溫度控制流程圖如圖3.2是溫度控制流程
42、圖。由于溫度控制系統(tǒng)具有非線性、純滯后、大慣性等特點,導致傳統(tǒng)的控制方式超調大、調節(jié)時間長、控制精度低。因此在設計溫度控制系統(tǒng)中經常采用PID進行控制,PID算法及實現已經在前面進行了介紹。3.2.3 溫度控制程序int SetIntegral = 0;PID spid;uint8 ConstantTemperatuer = 1; /設定一個恒溫范圍的絕對值,方便CPU對恒溫情況下的處理sbit LED_GREEN = P21; /綠燈表示系統(tǒng)是否處在恒溫的狀態(tài) sbit LED_RED = P20;/紅燈表示系統(tǒng)是否處在加熱的狀態(tài)void PID_Paga_Init(void);/* 功能
43、: *PID清零初始化 入口參數 : 出口參數 :*/void PIDInit (struct PID *spid) memset( spid,0,sizeof(struct PID); /* 功能 : *PID算法函數,及誤差的處理函數 入口參數 :NextPoint = 當前采集到的溫度值 出口參數 :*/ int PIDCalc(int NextPoint ) int dError,Error,PIDIntegral = 0,PIDDerivative = 0; Error = spid.SetPoint - NextPoint; / 偏差 if(abs(Error) < SetI
44、ntegral) /設定一個積分門限,防止積分飽和,同時也是為了分段PID方便spid.Proportion = 40; / Set PID Coefficients spid.Integral = 1; spid.Derivative =100; spid.SumError += Error; / 積分spid.SumError = 6; PIDIntegral = spid.Integral * spid.SumError; / 積分項 elsespid.Proportion = 65; / Set PID Coefficients spid.Integral = 0; spid.Deri
45、vative =100;if(abs(Error) <= ConstantTemperatuer)/如果溫度誤差在設定值的+-1度左右恒溫,綠燈亮,紅燈滅 LED_GREEN = 0;LED_RED = 1;else/否則綠燈滅,紅燈亮LED_GREEN = 1;LED_RED = 0;dError = Error - spid.PrevError; / 當前微分PIDDerivative = spid.Derivative * dError; spid.PrevError = spid.LastError; spid.LastError = Error; return (spid.Pr
46、oportion * Error / 比例項 + PIDIntegral + PIDDerivative); / 微分項 /* 功能 : *PID參數初始化 入口參數 : 出口參數 :*/void PID_Paga_Init(void)PIDInit(&spid); / Initialize Structure spid.Proportion = 100; / Set PID Coefficients spid.Integral = 0; spid.Derivative =0; spid.SetPoint = 50; / Set PID Setpoint3.3 鍵盤掃描程序設計3.3.
47、1 鍵盤掃描函數流程圖圖3.3 鍵盤掃描函數流程圖系統(tǒng)的鍵盤掃描函數流程圖如圖3.3所示。程序的開始首先是判斷是否有鍵按下,沒有就直接轉到結束,有則進行下一輪判斷按鍵的狀態(tài)。這時按鍵有四個狀態(tài),當按鍵為消抖、按下和長按狀態(tài)時系統(tǒng)分別進行置按下、置長按、置連接狀態(tài),然后繼續(xù)判斷按鍵是否松開,若是則置松開狀態(tài),若否則返回鍵值;當按鍵為松開狀態(tài)時系統(tǒng)將置消抖狀態(tài),然后返回鍵值結束。3.3.2 鍵盤函數程序uint8 KeyScanf(void)if(io_Key_1 = 0)return KEY_VALUE_1;if(io_Key_2 = 0)return KEY_VALUE_2;if(io_Key
48、_3 = 0)return KEY_VALUE_3;if(io_Key_4 = 0)return KEY_VALUE_4;else return KEY_NULL; /鍵盤處理函數void GetKey(uint8 *KeyValue) static uint8 s_u8KeyStatue = KEY_STATUE_INIT,s_u8LastValue = KEY_NULL,s_u8KeyTimeCount = 0;uint8 KeyTemp;KeyTemp = KeyScanf();switch(s_u8KeyStatue)case KEY_STATUE_INIT: if(KEY_NULL
49、!= KeyTemp) s_u8KeyStatue= KEY_STATUE_WOBBLE; s_u8LastValue = KeyTemp; break;case KEY_STATUE_WOBBLE: s_u8KeyStatue = KEY_STATUE_PRESS; break;case KEY_STATUE_PRESS: if(s_u8LastValue = KeyTemp) s_u8KeyStatue = KEY_STATUE_LONG; KeyTemp = KeyTemp & KEY_DOWN ; else s_u8KeyStatue = KEY_STATUE_INIT; br
50、eak;case KEY_STATUE_LONG :if(s_u8LastValue = KeyTemp) s_u8KeyTimeCount+;if(s_u8KeyTimeCount=KEY_LONG_COUNT) s_u8KeyTimeCount = 0; KeyTemp &= KEY_LONG; s_u8KeyStatue = KEY_STATUE_CONTINUE; else s_u8KeyStatue= KEY_STATUE_RELEASE; break; case KEY_STATUE_CONTINUE:if(s_u8LastValue = KeyTemp) s_u8KeyT
51、imeCount+;if(s_u8KeyTimeCount= KEY_CONTINUE_COUNT) s_u8KeyTimeCount = 0; KeyTemp &= KEY_CONTINUE; else s_u8KeyStatue= KEY_STATUE_RELEASE; break; case KEY_STATUE_RELEASE: s_u8LastValue &= KEY_UP; KeyTemp = s_u8LastValue; s_u8KeyStatue = KEY_STATUE_INIT; break; default :break; *KeyValue = KeyTemp;第四章 系統(tǒng)測試4.1 溫度控制測試對系統(tǒng)溫度控制的測試主要是測試:加熱器加熱時,溫度是否上升,液晶顯示器顯示是否正常,紅綠發(fā)光二極管發(fā)光是否正常;溫度達到設定值時,液晶顯示器是否正常顯示,紅綠發(fā)光二極管是否正常發(fā)光;加熱器停止工作時,溫度是否下降,液晶顯示器是否正常顯示,紅綠發(fā)光二極管是否正常發(fā)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年設備貸款合同標準文本
- 生態(tài)守護之旅
- 解密地球:地理學之旅
- 培訓資源使用協(xié)議書(2篇)
- 多媒體設計服務協(xié)議書(2篇)
- 揭秘谷雨季的奧妙
- 鐵路工程項目投資與建設合同
- 專業(yè)封陽臺工程協(xié)議條款(2024年修訂)版
- 餐廳供貨商合同協(xié)議書范本
- 山林購買合同范本
- 建筑施工進度管理-項目進度管理概述(施工組織)
- 初中九年級美術期末藝術測評指標試卷及答案
- 新生入職紀委培訓課件
- 違停抓拍方案
- 《生殖系統(tǒng)》課程教學大綱
- 心臟搭橋手術與心臟搭橋手術知情同意書
- 檢驗科質控總結匯報
- 醫(yī)院婦產科2024年度工作總結
- 破產法培訓課件銀行
- 歷史文化古城
- 中小學綜合實踐活動課程指導綱要解讀
評論
0/150
提交評論