




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上基于單片機的溫度及壓力智能控制系統(tǒng)設(shè)計摘 要本文設(shè)計了以AT89C51單片機為核心的溫度和壓力控制系統(tǒng)的工作原理以及設(shè)計方法。溫度信號由溫度傳感器PT100采集,再由變送器將信號變換為0-5V的信號給PCF8591芯片。單片機最后通過IIC總線將模擬量信號讀回來或者發(fā)送出去。壓力信號也是由壓力傳感器采集回來,再由變送器變換為0-5V的電壓信號給PCF8591芯片。PCF8591芯片是支持4路模擬量輸入,1路模擬量輸出的8位芯片,并且支持IIC總線,最大可以同時接8個同樣的芯片。單片機將采集回來的信號經(jīng)過計算與處理后將溫度和壓力值顯示在LCD1602液晶上,設(shè)計中介紹了
2、控制系統(tǒng)的硬件電路,包括:溫度、壓力檢測電路、溫度控制電路、壓力控制電路、電源電路、報警電路、顯示電路、單片機最小系統(tǒng)電路、按鍵電路和其他一些單片機的接口電路。本設(shè)計中還介紹了軟件程序編寫部分,都采用模塊化的結(jié)構(gòu)編程。軟件程序部分主要包括:主程序、顯示程序、溫度和壓力采集子程序、按鍵子程序、控制輸出子程序等。關(guān)鍵詞: A/D轉(zhuǎn)換;單片機;溫度及壓力采集;智能控制AbstractIn this paper, the design of the working principle and designing method of AT89C51 microcontroller as the core
3、 to the temperature and pressure control system. Temperature signal from the temperature sensor PT100 acquisition, and then by the transmitter signal into the 0-5V signal to the PCF8591 chip. SCM through IIC bus to analog signals read back or send out. The pressure signal is returned from the pressu
4、re sensor, the transmitter is converted to the 0-5V voltage signal to the PCF8591 chip. The PCF8591 chip is supported by 4 analog input, 8 bit chip 1 analog output, and support for IIC bus, the maximum can connect 8 of the same chip. SCM will the collected signals through the calculation and process
5、ing after the temperature and pressure values are displayed in the LCD1602 crystal, the design introduces the hardware circuit, control system includes: temperature, pressure detecting circuit, temperature control circuit, pressure control circuit, power supply circuit, alarm circuit, display circui
6、t, MCU minimum system circuit, a key circuit and some other mcu. This design also describes the software programming, the programming modular structure. The software includes: main program, display program, temperature and pressure acquisition subroutine, subroutine keys, control output subroutine.K
7、eywords: A/Dtransformation temperature and pressure acquisition intelligent control;目 錄1 緒論1.1研究背景及現(xiàn)狀單片機自從20世紀70年代產(chǎn)生以來,已經(jīng)廣泛地應用在工業(yè)自動化控制、自動檢測、機電一體化設(shè)備、智能儀器儀表、家用電器、汽車電子等各個方面。單片機具有功能齊全,抗干擾能力強,應用可靠,前景廣闊,簡單方便等優(yōu)點。此外,單片機還具有體積小、應用靈活性強、性能價格比高等特點,在嵌入式微控制系統(tǒng)中具有非常重要的地位。從工業(yè)自動化、智能儀器儀表、自動控制、消費類電子產(chǎn)品等方面直到國防尖端技術(shù)領(lǐng)域,單片機都起
8、著十分重要的作用。近些年來,隨著微機的發(fā)展,單片機的應用在人們的日常生活和工作中顯得越來越重要。工業(yè)過程控制也是它的一個重要應用領(lǐng)域。由單片機而構(gòu)成的嵌入式系統(tǒng)越來越受到世人的關(guān)注。因此,可以毫不夸張的說,沒有單片機的儀器不能算是先進的儀器,沒有單片機的過程控制系統(tǒng)不能稱做是智能控制系統(tǒng)。溫度控制是與人們?nèi)粘I钕⑾⑾嚓P(guān)的,在各個領(lǐng)域溫度的控制都有不同的意義。很多控制領(lǐng)域中都有大量的用電來加熱的設(shè)備,比如用于熱處理的電加熱爐,用于融化金屬的電阻爐以及溫度控制箱等。使用單片機來對它們進行控制不僅具有控制方便、靈活性大、簡單等一些特點,而且還可以大大提高產(chǎn)品的質(zhì)量,通常單片機將采集到的溫度數(shù)據(jù)與設(shè)
9、定的溫度上、下限進行比較,并由此作出判斷是否啟動繼電器來開啟加熱設(shè)備,在設(shè)計中通常還加入常用的LCD液晶顯示或者LED顯示等常用的顯示電路,使得整個設(shè)計更加靈活、完全。國內(nèi)外的溫度控制系統(tǒng)發(fā)展都非常迅速,并在智能化、參數(shù)自整定、自適應等方面取得了不同的成果。目前的溫度控制大多都是采用智能調(diào)節(jié)器,國產(chǎn)調(diào)節(jié)器的精度和分辨率比較國外的較低,溫度的控制效果也不是很理想但價格非常便宜,國外的調(diào)節(jié)器精度和分辨率都比較高,價格較貴。德國、美國、日本、瑞典等技術(shù)領(lǐng)先,都生產(chǎn)出了商品化的,性能優(yōu)異的溫度控制器以及儀器儀表,并在各個行業(yè)已經(jīng)廣泛應用。壓力的測量對于實時監(jiān)測以及安全生產(chǎn)都具有非常重要的意義。在工業(yè)應
10、用中,為了高效并且安全的生產(chǎn),就必須要有效的控制生產(chǎn)過程中的一些重要數(shù)比諸如壓力、溫度、流量等主要參數(shù)。因為壓力的控制在一般生產(chǎn)過程中都起著決定性的安全作用,因此更有必要準確的測量壓力。為了測得不同位置的壓力數(shù)據(jù),本設(shè)計的壓力測量系統(tǒng)。通過壓力傳感器將需要測量的壓力信號轉(zhuǎn)變?yōu)殡娦盘?,再由變送器最終轉(zhuǎn)換為0-5V的電壓信號給PCF8591AD-DA芯片。單片機通過IIC總線將模擬數(shù)據(jù)讀回來再根據(jù)變換公式做數(shù)據(jù)處理,最終將溫度和壓力值顯示在LCd1602上。芯片轉(zhuǎn)換時間受IIC總線速率影響,可以最大支持8個相同的PCF8591芯片,即最大支持32路模擬量輸入,8路模擬量輸出。鍵盤輸入是單片機控制系
11、統(tǒng)常用的實現(xiàn)人際對話的輸入設(shè)備。通過鍵盤,向單片機控制系統(tǒng)輸入各種數(shù)據(jù)或者命令,也可以通過鍵盤,設(shè)置單片機控制系統(tǒng)工作于預定的模式。1.2 實現(xiàn)溫度及壓力智能控制的意義溫度、壓力都是過程生產(chǎn)中非常重要的參數(shù),它們是生產(chǎn)過程中判斷設(shè)備是否正常運行的關(guān)鍵因素。在生產(chǎn)過程中對于溫度和壓力的控制也就顯的極為重要。比如在化工生產(chǎn)過程中,壓力能影響物料平衡,也能影響化學的反應速度,是標志著生產(chǎn)過程是否可以正常進行的極為重要的參數(shù)。從安全生產(chǎn)的角度,壓力的檢測也是很重要的。如:保證壓力容器內(nèi)的壓力值要在安全的指標之內(nèi),確保易燃易爆等介質(zhì)的壓力不能超標等等。總之,溫度與壓力的檢測是通常是生產(chǎn)過程中不可缺少的環(huán)
12、節(jié),只有嚴格按照生產(chǎn)工藝的要求來保持溫度及壓力的穩(wěn)定,才能保證生產(chǎn)的正常進行。因此溫度及壓力準確測量與控制在現(xiàn)實生活中是非常重要的。2 系統(tǒng)方案設(shè)計及論證2.1溫度、壓力采集方案選擇2.1.1溫度采集方案比較1.使用DS18B20模塊本方案的優(yōu)點是:采集溫度精度較高,接線簡單;缺點:單總線方式,當系統(tǒng)需要擴容時要另外占用單片機管腳資源。并且遠距離傳輸時,因為是單總線方式,不能傳到太遠。2.普通熱敏電阻優(yōu)點:價格低廉缺點:電路設(shè)計相對較為復雜些,精度低。3.PT100鉑電阻方式優(yōu)點:精度高,使用方便,配合專用的變送器能遠距離傳輸。缺點:價格較為低廉2.1.2壓力采集方案1.壓力傳感器配合變送器方
13、式優(yōu)點:價格相對低廉,可靠性高,能較遠距離傳輸,精度較高缺點:相對帶通信功能的壓力模塊,擴容是需要占用AD通道2.壓力采集帶通信專用模塊優(yōu)點:采集精度高,更智能,擴容時不需要占用任何硬件資源缺點:造價高。本設(shè)計中溫度采集選用PT100鉑電阻的測溫方式,PT100鉑電阻傳感器會根據(jù)溫度的不同,自身阻值也會有相應的變化,專用的變送器只需要街上PT100鉑電阻及電源就可以輸出標準的4-20mA或者是0-20mA信號,本設(shè)計選用輸出0-20mA信號,選用電流信號是因為當較遠距離傳輸時變送器相當于恒流源輸出,減小線路阻值帶來的誤差,當接到本設(shè)計中的控制板時,再通過串接250歐姆的電阻來將電流信號轉(zhuǎn)換為0
14、-5V的電壓信號。壓力采集方案選用壓力傳感器配合變送器方式,壓力采集原理也是如此,不同的是前端傳感器不是PT100而是壓力傳感器。接線示意圖如圖2-1所示。設(shè)計溫度控制輸出采用開關(guān)量的輸出方式,控制原理為當溫度實際值大于等于溫度上限值時停止加熱,當溫度實際值小于等于下限值時,開始加熱。壓力控制方式采用外接變頻器控制電機,進而控制管道壓力的方式,原理為當壓力實際值小于等于下限值時,控制板將電機的供電,并給變頻器輸入相應的控制值,控制算法采用建議的模糊控制算法,即在一定的時間內(nèi)檢測到前后兩次的壓力值變化的大小,如果變化很小,說明給出的值小了,需要加大此值,如果變化一般,說明給出的值合適,如果變化很
15、大,說明給出的值大了,需要減小此值。本設(shè)計默認分為6檔判斷。即壓力差值的6個檔位分別為小于等于0.05MPa;大于0.05MPa并且小于等于0.1MPa;大于0.1MPa并且小于等于0.15MPa;大于0.15MPa并且小于等于0.2MPa;大于0.2MPa并且小于等于0.25MPa;大于0.25MPa并且小于等于0.3MPa;圖2-1 接線示意圖2.2系統(tǒng)結(jié)構(gòu)總框圖 本控制系統(tǒng)的主控部分由單片機AT89C51構(gòu)成。通過按鍵電路可以進行溫度及壓力的上、下限值的設(shè)定,溫度及壓力的實際值通過PCF8591AD-DA芯片采集,模擬量的輸出也是通過PCF8591芯片輸出的。當壓力超過報警限值時,有蜂鳴
16、器報警。顯示部分用的主要期間是LCD1602液晶屏。按鍵部分采用四按鍵的方式進行設(shè)定,溫度及壓力的開關(guān)量輸出方式使用繼電器。電源需要外接+5V的干凈電源。圖2-2系統(tǒng)結(jié)構(gòu)總框圖2.3 單片機的選擇單片機AT89C51是美國的ATMEL公司生產(chǎn)的一款低電壓、高性能的CMOS的8位單片機,芯片內(nèi)部含有4K字節(jié)的可擦寫的只讀程序存儲區(qū)以及128個字節(jié)的數(shù)據(jù)存儲器,該芯片是采用高密度和非易失性存儲技術(shù)生產(chǎn)的,兼容了以往標準的MCS-51產(chǎn)品的指令系統(tǒng),單片機片內(nèi)含有通用的8位中央處理器,AT89C51單片機具有不錯的性價比以及可靠性和應用性,此單片機可以靈活的應用在各種控制領(lǐng)域之中。AT89C51芯片
17、提供以下一些標準的功能:(1).4K字節(jié)的閃存(2).128字節(jié)的內(nèi)部數(shù)據(jù)存儲區(qū)(3).32個I/O口線,可以輸入或者輸出(4).兩個16位定時或者計數(shù)器(5).一個5向量兩級的中斷結(jié)構(gòu)(6).有一個全雙工的串行口單片機(AT89C51)的工作可以降至0HZ的靜態(tài)的邏輯操作,并且還支持兩種可以通過軟件來選擇節(jié)約電能的工作模式:(1).空閑工作方式:停止單片機的工作,但是允許數(shù)據(jù)存儲器(RAM)、定時或者計數(shù)器、通信口以及中斷程序的工作。(2).掉電的方式:保存數(shù)據(jù)存儲器(RAM)中的內(nèi)容,但是單片機的晶振電路停止工作并且禁止其它所有部件的工作一直到下一個硬件復位。AT89C51引腳圖如圖2-3
18、所示。圖2-3 AT89C51單片機引腳圖引腳功能說明:Vcc:電源電壓正 GND:電源電壓負 P0口:P0口是8位的漏極開路型的雙向I/O口,即地址或者數(shù)據(jù)總線的復位口。如果P0口作為輸出端口時,每個端口能驅(qū)動8個邏輯門電路,如果對端口寫“1”時,可以作為高阻抗輸入端口來使用。如果在訪問外部數(shù)據(jù)存儲器或者程序存儲器的時候,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復用,此時的P0端口激活內(nèi)部的上拉電阻。 P1口:P1端口是帶有內(nèi)部上拉電阻的8位的雙向口。P1端口的輸出可以驅(qū)動(輸入或輸出)4個TTL邏輯門電路。如果對端口寫“1”時,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可以當作輸入端口使用。
19、因為內(nèi)部存在上拉電阻,假如某個引腳被外部信號拉低時會輸出一個電流。P2口:P2端口是帶有內(nèi)部上拉電阻的8位的雙向口,P2端口可以驅(qū)動(輸入或輸出電流)4個TTL邏輯門電路。如果對端口寫“1”,通過內(nèi)部的上拉電阻把P2端口拉到高電平,此時P2端口可以作為輸入口。P3口:P3端口是帶有內(nèi)部上拉電阻的8位的雙向口。P3端口輸出緩沖級可以驅(qū)動(輸入或輸出)4個TTL邏輯門電路。如果P3端口寫入“1”時,他們被內(nèi)部上拉電阻拉高并可作為輸入口。此時,被外部拉低的P3端口將用上拉電阻輸出電流。P3端口還接收一些用于閃存編程和程序校驗的控制信號。 RST:復位。當單片機工作時,復位引腳如果有兩個機器周期以上的
20、高電平信號就可以讓單片機復位。 XTAL1、XTAL2:振蕩器輸入端。 2.4 溫度傳感器pt100是鉑熱電阻,鉑電阻的阻值會隨著溫度的不同而改變。PT字符后的100即表示此電阻在0時的阻值為100歐姆,當它在100時它的阻值大約為138.5歐姆。工作原理:當PT100鉑電阻在0的時候它的阻值大約為100歐姆,它的阻值會隨著溫度上升而近似勻速的增長。但是它們之間的關(guān)系卻并不是簡單的正比的直線關(guān)系,而是更趨近于一條拋物線。鉑電阻阻值隨溫度變化的計算公式如下:-200<t<0 Rt=R01+At+Bt*t+C(t-100)t*t*t (1) 0t<850 Rt=R0(1+At+B
21、t2) (2) Rt為當t時的鉑電阻的電阻值,R0為當0時的鉑電阻的阻值。公式中的A,B,系數(shù)都是實驗測定的。標準的 DIN IEC751系數(shù):A=3.9083E-3、 B=-5.775E-7、 C=-4.183E-12 。根據(jù)韋達公式求得阻值大于等于100歐姆的Rt -t的換算公式: 0t<850 t=(sqrt(A*R0)2-4*B*R0*(R0-Rt)-A*R0)/2/B/R0 PT100鉑電阻溫度傳感器器是一種以白金(Pt)作成的電阻式的溫度檢測器,屬于正阻系數(shù),它的電阻和溫度變化的關(guān)系式如下:R=Ro(1+T)式中=0.00392,Ro為100(在0的電阻值),T為攝氏溫度&l
22、t;br>因此白金作成的電阻式溫度檢測器,又稱為PT100。 2.5 壓力傳感器液壓壓力傳感器是工業(yè)中最為常見的一種壓力傳感器,它廣泛應用于各種工業(yè)自控的環(huán)境中,涉及石油管道、鐵路交通、水利水電、生產(chǎn)自控、智能建筑、航空航天、石化、軍工、電力、油井、船舶、管道送風、機床、鍋爐負壓等等眾多的行業(yè)。工作原理:液壓壓力傳感器的工作原理為壓力直接作用在傳感器的薄膜片上,使膜片產(chǎn)生與介質(zhì)壓力成正比的微小位移,讓傳感器的電阻發(fā)生了變化,再用電子線路檢測這一變化,并且轉(zhuǎn)換輸出一個對應于這個壓力的標準的電信號。常見參數(shù):全密封、平膜型不銹鋼焊接結(jié)構(gòu)、高靈敏度、小體積、零點滿度可調(diào)節(jié)。 應用領(lǐng)域:液壓、中
23、央空調(diào)系統(tǒng) 、壓鑄、恒壓供水、機械、機車制動系統(tǒng)輕工、冶金、環(huán)保、石化、空壓機等其他自動控制系統(tǒng) 。實物圖如圖2-4所示。圖2-4 平模傳感器量 程: -0.1011000(MPa) 輸出信號: 420mA(二線制)、05V、15V、010V(三線制) 綜合精度: 0.1%FS、0.25%FS、0.5%FS供電電壓: 24DCV(936DCV) 介質(zhì)溫度: -2085150 環(huán)境溫度: 常溫(-2085) 量程溫度漂移: ±0.05%FS 零點溫漂移: ±0.05%FS補償溫度: 070 安全過載: 150%FS 極限過載: 200%FS 響應時間: 5 mS(上升到90%
24、FS) 絕緣電阻: 大于2000M (100VDC) 負載電阻: 電流輸出型:最大800;電壓輸出型:大于5K 密封等級: IP65 長期穩(wěn)定性能: 0.1%FS/年 振動影響: 在機械振動頻率20Hz1000Hz內(nèi),輸出變化小于0.1%FS 機械連接(螺紋接口):M20×1.5等,其它螺紋可依據(jù)客戶要求設(shè)計電氣接口(信號接口): 緊線螺母+四芯屏蔽線 2.6 A/D-D/A轉(zhuǎn)換器PCF8591芯片是一個單片集成、低功耗、單獨供電、8-bit CMOS數(shù)據(jù)獲取器件。PCF8591具有4個模擬量輸入、1個模擬量輸出以及1個串行I²C總線接口。PCF8591芯片的3個地址引腳A
25、0、 A1和A2可以用于硬件地址編程,允許在同個I²C總線上最多接入8個PCF8591器件,而不需要額外的硬件。在PCF8591芯片上輸入輸出的地址和控制和數(shù)據(jù)信號都是通過雙線雙向I²C總線以串行的方式進行傳輸?shù)?。PCF8591的功能包括多路模擬輸入、內(nèi)置跟蹤保持、8-bit模數(shù)轉(zhuǎn)換和8-bit數(shù)模轉(zhuǎn)換。PCF8591的最大轉(zhuǎn)化速率由I²C總線的最大速率決定。AIN0AIN3:模擬信號的輸入端。A0A3:引腳的地址端。VDD、VSS:電源端。(2.56V)SDA、SCL:IIC總線的數(shù)據(jù)線、時鐘線。OSC:外部時鐘的輸入端,內(nèi)部時鐘的輸出端。EXT:內(nèi)、外部時鐘選
26、擇線,使用內(nèi)部時鐘時EXT要接地。AGND:模擬信號接地端。圖2-5 PCF8591引腳圖2.7液晶LCD1602LCD1602字符型的液晶顯示模塊是一種專門用于顯示字母、符號、數(shù)字等點陣式的LCD,目前常用的有16*1、16*2、20*2以及40*2行等樣式的模塊。下面以長沙太陽人電子有限公司的生產(chǎn)的LCD1602字符型液晶顯示器為例,來做簡單的介紹。一般的LCD1602字符型液晶顯示器實物如圖2-6所示:圖2-6 LCD1602液晶實物圖3 鍋爐溫度和壓力控制系統(tǒng)硬件電路的設(shè)計3.1 最小單片機系統(tǒng) 單片機的最小系統(tǒng),是指用最少的元器件組成的并可以正常工作的單片機系統(tǒng),對本設(shè)計來說,單片機
27、最小系統(tǒng)應該包括:單片機,晶振電路以以及復位電路。3.1.1 晶振電路典型的晶振值一般取11.0592MHz(因為可以準確地計算得到9600波特率和19200波特率,常用用于有串口通訊的場合)/12MHz。在圖3-1中,晶振Y2與電容C8、C9構(gòu)成了單片機的晶體振蕩電路。本設(shè)計當中的晶振選用的是無源晶振,晶振為11.0592MHz。起振電容選用的是兩個22pF的小電容。 圖3-1 晶振電路3.1.2 復位電路在圖3-2中,S2、C6及R18構(gòu)成了復位電路。此單片機是高電平復位,即當按鍵S1按下時,單片機的RST引腳被拉高,單片機被復位;當按鍵S1松開后,單片機的RST引腳被下拉電阻R18拉低,
28、單片機開始執(zhí)行用戶程序。電容C6是濾波電容,防止按鍵S1按下的瞬間,單片機的RST引腳電平信號抖動,影響單片機的工作。圖3-2復位電路剛上電的時候或者觸動按鈕后C6兩端的電壓為0,這時RST為高電平,而它高電平保持的時間是由電阻R18和電容C6的時間常數(shù)決定,由公式(3-1)可知,電容C6充電的時間常數(shù)等于0.22ms,遠遠大于2s,即使復位管腳RST高電平的時間保持2s以上,保證了單片機正常復位。 R*C (3-1) 3.2 溫度及壓力采集電路設(shè)計如圖3-3所示,PCF8591芯片是一個帶4路模擬量輸入,1路模擬量輸出以及IIC總線的芯片。此IIC總線上最多可以掛8片PCF8591芯片。溫度
29、采集占用第一路模擬量采集通道即AN0,壓力采集占用模擬量采集通道第二路即AN1。模擬量輸出接AOUT即J6。此處的信號電平都是0-5V的電平信號。圖3-3模擬量采集模塊3.3溫度及壓力控制輸出電路設(shè)計 溫度及壓力控制輸出電路如圖3-4所示。圖中控制原理石油PNP三極管控制繼電器,從而控制外界強電。Q1部分電路為溫度控制電路,Q2部分電路為壓力控制電路。以Q1部分電路舉例來說明此部分電路的工作原理,Q1與Q2部分的電路原理是一樣的。D2是指示燈,R3是限流電阻,當P3.0為高電平時,Q1截至,繼電器不吸合,當P3.1為低電平時Q1導通,繼電器吸合。當繼電器吸合時,指示燈亮,繼電器不吸合時,指示燈
30、滅。圖3-4溫度及壓力控制輸出電路3.4鍵盤及顯示電路顯示器件用LCD1602,如圖3-5所示。排阻Rp2為P0口的上拉電阻。單片機管腳P2.4、P2.5、P2.6、P2.7分別對應按鍵S3、S4、S6、S7。按鍵S3為菜單(確定)鍵,S4為設(shè)置高位按鍵,S6為設(shè)置中位按鍵,S7為設(shè)置低位按鍵。高、中、低位按鍵都是每按一次相應位置數(shù)據(jù)加一。設(shè)置好后按S3確定鍵。設(shè)置順序分別為設(shè)置溫度上限,壓力上限,溫度下限,壓力下限。最后設(shè)置完后按確定鍵S3則退出設(shè)置環(huán)境。圖中的D8為模擬量采集指示燈。正常運行時D8會每隔幾秒就閃爍一次。圖3-5鍵盤及顯示電路3.6 報警電路設(shè)計本系統(tǒng)采用蜂鳴器報警的方式來發(fā)
31、出報警信息。圖3-6中U5為蜂鳴器,三極管Q3為驅(qū)動三極管,R5為限流電阻,當單片機管腳P3.3為高電平時,三極管Q3截至,蜂鳴器不發(fā)聲;當單片機管腳P3.3為低電平時,三極管Q3導通,蜂鳴器發(fā)出聲音。來達到報警提示的功能。本設(shè)計只設(shè)計了壓力報警提示,當壓力實際值超過設(shè)定的報警限值時,蜂鳴器會發(fā)出聲音報警,當壓力實際值在正常范圍內(nèi)時,蜂鳴器停止發(fā)聲。圖 3-6 報警電路3.7電源電路設(shè)計 在圖3-7中D9為電源指示燈,R6為限流電阻,電容C10與C11都為濾波電容。本設(shè)計選用外界直流5V電源的方式供電。圖3-7電源電路4 系統(tǒng)軟件設(shè)計4.1系統(tǒng)總流程圖設(shè)計 系統(tǒng)程序的流程圖如圖4-1所示。圖4
32、-1系統(tǒng)程序流程圖上電后,系統(tǒng)首先初始化,初始化完成后開始采集模擬量值,判斷按鍵程序,之后再判斷各值是否在正常范圍內(nèi),如果不在范圍內(nèi)做出相應的操作。最后輸出控制邏輯。4.2部分程序說明 程序部分大致分為主程序、LCD顯示程序、模擬量采集程序、模擬量輸出程序、按鍵設(shè)置程序、自動控制程序等部分。4.2.1主程序main() LCD_Initialise();/LCD初始化AD_CHANNEL=0;T_OUT=1; /關(guān)閉溫度輸出alarm_OUT=1; /關(guān)閉報警輸出 while(1) ISendByte(PCF8591,0x41); D0=IRcvByte(PCF8591); /ADC0 模數(shù)轉(zhuǎn)
33、換1 Delay_1ms(5); Convert_To_Voltage(D0,0); /求溫度LCD_Line_12=Voltage2;LCD_Line_13=Voltage1;LCD_Line_15=Voltage0; ISendByte(PCF8591,0x40); D1=IRcvByte(PCF8591); /ADC0 模數(shù)轉(zhuǎn)換1 Delay_1ms(5); Convert_To_Voltage(D1,1); /求壓力LCD_Line_22=Voltage2;LCD_Line_24=Voltage1;LCD_Line_25=Voltage0;P_time=P_time+1; /時間計數(shù)
34、/* ISendByte(PCF8591,0x42); D2=IRcvByte(PCF8591); /ADC2模數(shù)轉(zhuǎn)換3 ISendByte(PCF8591,0x43); D3=IRcvByte(PCF8591); /ADC3 模數(shù)轉(zhuǎn)換4*/ while (menu_bit=1) key_read(); /按鍵讀取函數(shù) P0=0X0e; /顯示開,光標開,閃爍 lcd_enable(); if (set_bit=0)|(set_bit=2) key_set(); /按鍵設(shè)置 elseif (set_bit=1)|(set_bit=3) key_set1(); /按鍵設(shè)置 if (set_bit
35、=0)|(set_bit=1) P0=0X80; /設(shè)置第1行顯示地址 else if (set_bit=2)|(set_bit=3) P0=0XC0; /設(shè)置第2行顯示地址 lcd_enable(); /調(diào)用LCD顯示設(shè)置函數(shù) if (set_bit=0)|(set_bit=1) write_h(); / else if (set_bit=2)|(set_bit=3) write_l(); / key_read(); /按鍵讀取函數(shù)RC4、RC5、RC6、RC7分別為四個按鍵,按下瞬間,Trg值分別為16,,3,64,128 if (Trg=16) /菜單鍵按下時 bai=TH/100; s
36、hi=TH%100/10; ge=TH%10; menu_bit=1; /菜單鍵標志 auto_t_p(); /自動控溫及控壓子程序 Delay_1ms(5); DACconversion(PCF8591,0x40, D2); /DAC 數(shù)模轉(zhuǎn)換 LCD_Display_A_Line(0x00, LCD_Line_1); LCD_Display_A_Line(0x40, LCD_Line_2); 4.2.2 LCD顯示程序bit LCD_Busy_Check() /LCD忙檢測 bit Result; /結(jié)果標志位LCD_RS = 0;LCD_RW = 1;LCD_EN = 1;Delay4u
37、s(); /延時4usResult = (bit)(P0&0x80);LCD_EN = 0;return Result; /輸出結(jié)果標志位void LCD_Write_Command(uchar cmd)/LCD控制命令 while(LCD_Busy_Check(); /while循環(huán)LCD_RS = 0;LCD_RW = 0;LCD_EN = 0;_nop_(); /短延時_nop_();P0 = cmd;Delay4us();/延時4usLCD_EN = 1;Delay4us();LCD_EN = 0;void LCD_Write_Data(uchar dat) /LCD寫數(shù)據(jù)wh
38、ile(LCD_Busy_Check(); /while循環(huán)LCD_RS = 1;LCD_RW = 0;LCD_EN = 0;P0 = dat;Delay4us();LCD_EN = 1;Delay4us();LCD_EN = 0; void LCD_Initialise() /LCD初始化 LCD_Write_Command(0x38);Delay_1ms(5);LCD_Write_Command(0x0c);Delay_1ms(5);LCD_Write_Command(0x06);Delay_1ms(5);LCD_Write_Command(0x01);Delay_1ms(5);void
39、LCD_Set_Position(uchar pos) /LCD設(shè)置顯示位置LCD_Write_Command(pos | 0x80); void LCD_Display_A_Line(uchar Line_Addr,uchar s) /LCD顯示行設(shè)置 uchar i;LCD_Set_Position(Line_Addr);for(i=0;i<16;i+) LCD_Write_Data(si);4.2.3 模擬量采集程序void Convert_To_Voltage(unsigned long int val,uchar a) /數(shù)據(jù)轉(zhuǎn)換,轉(zhuǎn)換到電壓值 if (a=0) /求溫度 va
40、l=100*val/26 ; /數(shù)據(jù)轉(zhuǎn)換Voltage2 = val/100+'0'Voltage1 = val%100/10+'0'Voltage0 = val%10+'0'T_R=(Voltage2-'0')*100+(Voltage1-'0')*10+(Voltage0-'0'); /溫度實際值 else /求壓力 val=100*val/255 ;/數(shù)據(jù)轉(zhuǎn)換Voltage2 = val/100+'0'Voltage1 = val%100/10+'0'Volta
41、ge0 = val%10+'0'P_R=(Voltage2-'0')*100+(Voltage1-'0')*10+(Voltage0-'0'); /壓力實際值/*DAC 變換, 轉(zhuǎn)化函數(shù) */bit DACconversion(unsigned char sla,unsigned char c, unsigned char Val) Start_I2c(); /啟動總線 SendByte(sla); /發(fā)送器件地址 if(ack=0)return(0); SendByte(c); /發(fā)送控制字節(jié) if(ack=0)return(0
42、); SendByte(Val); /發(fā)送DAC的數(shù)值 if(ack=0)return(0); Stop_I2c(); /結(jié)束總線 return(1);/*ADC發(fā)送字節(jié)命令數(shù)據(jù)函數(shù) */bit ISendByte(unsigned char sla,unsigned char c) Start_I2c(); /啟動總線 SendByte(sla); /發(fā)送器件地址 if(ack=0)return(0); SendByte(c); /發(fā)送數(shù)據(jù) if(ack=0)return(0); Stop_I2c(); /結(jié)束總線 return(1);/*ADC讀字節(jié)數(shù)據(jù)函數(shù) */unsigned char
43、 IRcvByte(unsigned char sla) unsigned char c; Start_I2c(); /啟動總線 SendByte(sla+1); /發(fā)送器件地址 if(ack=0)return(0); c=RcvByte(); /讀取數(shù)據(jù)0 Ack_I2c(1); /發(fā)送非就答位 Stop_I2c(); /結(jié)束總線 return(c);4.2.4按鍵設(shè)置程序/*按鍵設(shè)置函數(shù)*/* 函數(shù)名 : key()* 函數(shù)功能 : 按鍵函數(shù)1.無按鍵按下時,P1=0xff;ReadData 0; Trg 0; Cont 0;2.P1.0按下時,P1.0=0;ReadData 0x01;
44、Trg 0x01(Trg只會在這個時候?qū)坏闹禐?,其它時候都為0); Cont 0x01; 3.P1.0長按住時,P1.0=0;ReadData 0x01; Trg 0x00;Cont 0x01;如果是P1.1按鍵那么Trg,Cont對應值都為2;如果是P1.2按鍵那么Trg,Cont對應值都為4;是P1.3按鍵那么Trg,Cont對應值都為8* 輸入 : 無* 輸出 : 無*/void key_read() /按鍵讀取函數(shù) unsigned char temp = P2|0x0f; /將臨時變量temp的低高四位置一,高四位不變 unsigned char ReadData = temp
45、0xff; / 1 Trg = ReadData & (ReadData Cont); / 2 Cont = ReadData; /-/延時函數(shù)void delay() int i; for(i=0;i<0x100;i+); /-/LCD顯示設(shè)置函數(shù)void lcd_enable() LCD_RS=0; /該字節(jié)數(shù)據(jù)為命令,而不是數(shù)據(jù) LCD_RW=0; /此次操作為寫,而不是讀 LCD_EN=0; /拉低使能信號 delay(); /保持使能信號為低一段時間 LCD_EN=1; /拉高使能信號,建立LCD操作所需要的上升沿 /-按鍵設(shè)置子程序-void key_set()if
46、(Trg=32) /設(shè)置百位鍵按下 bai+; if (bai>9) bai=0; else if (Trg=64) /設(shè)置十位鍵按下 shi+; if (shi>9) shi=0; else if (Trg=128) /設(shè)置個位鍵按下 ge+; if (ge>9) ge=0; else if (Trg=16) /設(shè)置菜單鍵按下 set_bit=set_bit+1; result=bai*100+shi*10+ge; P0=0X0C; /顯示開,光標關(guān) lcd_enable(); if (set_bit=1) TH=result; bai1=PH/100; shi1=PH%1
47、00/10; ge1=PH%10; else if(set_bit=3) TL=result; bai1=PL/100; shi1=PL%100/10; ge1=PL%10; if (set_bit>=4) menu_bit=0; /標志清零 set_bit=0; 4.2.5自動控制子程序void auto_t_p() /自動控溫及控壓子程序 if (T_R<=TL) /如果實際溫度小于等于設(shè)定下限溫度 T_OUT=0; /加熱 else if(T_R>=TH) /如果實際溫度大于等于設(shè)定上限溫度 T_OUT=1; /停止加熱 if (P_R<=PL) /如果實際溫度小
48、于等于設(shè)定下限溫度 P_OUT=0; /升壓 P_ctrl(); /升壓控制 alarm_OUT=0; /報警輸出 else if(P_R>=PH) /如果實際溫度大于等于設(shè)定上限溫度 P_OUT=1; /停止升壓 D2=0; /升壓系數(shù)輸出清零 alarm_OUT=0; /報警輸出else if(P_R>=PL)&&(P_R<=PH) /在正常值范圍內(nèi) alarm_OUT=1; /關(guān)閉報警輸出5 仿真運行本設(shè)計通過proteus7.8仿真已經(jīng)完全沒有問題。仿真如圖5-1所示。單片機的管腳P2.4、P2.5、P2.6、P2.7接的按鍵分別為菜單(確定)按鍵、設(shè)置高位數(shù)據(jù)按鍵、設(shè)置中位數(shù)據(jù)按鍵、設(shè)置低位數(shù)據(jù)按鍵。P3.0、P3.1、P3.2、P3.3管腳接的LED分別代表溫度控制開關(guān)量輸出、壓力開關(guān)量控制輸出、模擬量采集指示及報警輸出指示。LCD1602上顯示的“T-25.3C”,
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/TS 23541-2:2025 EN Health informatics - Categorial structure for representation of 3D human body position system - Part 2: Body movement
- 石砌體臺階施工方案
- 管涵橋施工方案
- 2025年度智能家居產(chǎn)品傭金支付及智能家居服務合同
- 二零二五年度事業(yè)單位聘用合同:事業(yè)單位物業(yè)管理人員崗位服務合同
- 二零二五年度文化旅游產(chǎn)業(yè)合作終止合同
- 二零二五年度公司股東內(nèi)部關(guān)于戰(zhàn)略合作的框架協(xié)議
- 2025年度服裝廠員工保密與競業(yè)禁止合同
- 2025年度洗浴場所員工激勵機制與雇傭協(xié)議
- 二零二五年度物聯(lián)網(wǎng)設(shè)備技術(shù)顧問服務協(xié)議
- GB/T 2572-2005纖維增強塑料平均線膨脹系數(shù)試驗方法
- 2023年江蘇省中學生生物奧林匹克競賽試題及答案
- 領(lǐng)導干部應對新媒體時代
- 維修質(zhì)量檢驗制度
- 食管支架植入術(shù)后護理課件
- 品質(zhì)控制計劃(QC工程圖)
- 海外派遣人員管理辦法
- 混凝土灌注樁質(zhì)量平行檢查記錄(鋼筋籠)
- 汽車營銷學(全套課件)
- 現(xiàn)澆墩臺身軸線偏位、全高豎直度檢測記錄表
- 激光共聚焦顯微鏡校準規(guī)范編制說明
評論
0/150
提交評論