摘要
本畢業設計是應用單片機作為控制器設計的溫濕度檢測系統,由要由溫度、濕度采集、AD轉換、單片機控制、數碼管顯示、USB連接器六部分組成 。
本設計是以89C51單片機為控制中心,這種控制芯片具有4KB的快擦寫可編程/擦除只讀存儲器EEPROM、256KB片內RAM、3個16位定時計數器、5個中斷源,無需進行系統擴展既可滿足任務要求,能較大幅度提高系統的性價比。而溫濕度傳感器我采用的是DHT11數字溫濕傳感器,它性價比比較高。DHT11數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度復合傳感器。它應用專用的數字模塊采集技術和溫濕度傳感技術,確保產品具有極高的可靠性與卓越的長期穩定性。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。因此該產品具有品質卓越、超快響應、抗干擾能力強、性價比極高等優點。
另外該系統除了能顯示溫濕度以外, 還能設置溫濕度報警閥值。
關鍵詞:溫濕度;89C51單片機;DHT11傳感器;溫濕度報警閥
Abstract
The graduation project is based on the single chip design temperature and humidity monitoring system, mainly by temperature, humidity acquisition, AD conversion, microprocessor control, digital display, usb connector composed of six parts.
The design of the control center using 89c51 microcontroller, the chip has 4KB of flash programmable / erasable read only memory EEPROM, 256 KB on-chip RAM, 3 16-bit timer counters, six interrupt sources, both without the need for system expansion to meet mission requirements, can greatly improve the system's cost. The temperature and humidity sensor I use is dht11, he cost effective. DHT11 digital temperature and humidity sensor is a calibrated digital signal output with the temperature and humidity combined sensor. Its application-specific digital modules acquisition and temperature and humidity sensor technology, to ensure that products with high reliability and excellent long-term stability. Sensor includes a resistive element and a sense of wet NTC temperature components and with a high-performance 8-bit microcontroller connected. So the product has excellent quality, fast response, anti-interference ability, high cost performance advantages.
In addition the system in addition to showing the outside temperature and humidity, but also set the temperature and humidity alarm threshold.
Keywords:Temperature and humidity; 89C51 microcontroller;dht11 Sensor
1.緒論
1.1 研究背景
由古至今,糧倉糧食的存儲是否得當對國家的經濟能否正常合理的運行有很大的影響。但是在以前的經濟和科技水平有限,所以我國糧食的存儲的環境很差,管理落后。糧庫管理的重點之一就是要合理布置測溫點,經常檢查溫度變化,以便及時發現糧食的發熱點,減少糧食的損失。然而,糧堆的熱傳遞又是那樣的緩慢,使人感知極差,需要管理人員經常進入悶熱、嗆人的倉房內觀察溫、濕度,不斷進行翻倉、通風,這種繁重的體力勞動,不僅對人體有極大地傷害,而且不科學、不及時。所以,糧食蟲蛀、霉變的情況時有發生。
1.2設計目標
1.2.1基本功能
1.檢測溫度、濕度
2.顯示溫度、濕度
3.過限報警
1.2.2主要技術參數
1.溫度檢測的范圍: -30℃±55℃
2.測量精度: 2℃
3.濕度檢測的范圍: 20%-90%RH
4.檢測精度:5%RH
5.顯示方式: 溫度:四位顯示 濕度:四位顯示;
報警方式: 三極管驅動的蜂鳴音報警
2 設計方案
溫濕度監測系統要滿足以下條件:溫濕度監測系統能完成數據采集和處理、顯示、串行通信、輸出控制信號等多種功能。由數據采集、數據調理、單片機、數據顯示等4個大的部分組成。該測控系統具有實時采集(檢測糧庫內的溫濕度)、實時顯示(對監測到的進行顯示)、實時警報(根據監測的結果,超出預設定的值的進行蜂鳴警告)的功能。
傳感器是實現測量首要環節,是監測系統的關鍵部件,如果沒有傳感器對原始被測信號進行準確可靠的捕捉和轉換,一切準確的測量和控制都將無法實現。工業生產過程的自動化測量和控制,幾乎主要依靠各種傳感器來檢測和控制生產過程中的各種參量,使設備和系統正常運行在最佳狀態,從而保證生產的高效率和高質量。
2.1 系統的總體框圖
系統的總體設計框圖如圖3-1所示。
圖3-1 系統總體框圖
本設計由信號采集、信號分析和信號處理三個部分組成的。
(一) 信號采集 由dht11溫濕度傳感器和多路模式選擇開關組成;
(二) 信號分析 由A/D轉換器和單片機80c51組成;
(三) 信號處理 由串行口LCD顯示器和報警系統等組成。
2.2溫濕度傳感器的選擇
DHT11數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度復合傳感器。它應用專用的數字模塊采集技術和溫濕度傳感技術,確保產品具有極高
的可靠性與卓越的長期穩定性。傳感器包括一個電阻式感濕元件和一個NTC測 溫元件,并與一個高性能8位單片機相連接。因此該產品具有品質卓越、超快響應、抗干擾能力強、性價比極高等優點。每個DHT11傳感器都在極為精確的濕度校驗室中進行校準。校準系數以程序的形式儲存在OTP內存中,傳感器內部在檢測信號的處理過程中要調用這些校準系數。單線制串行接口,使系統集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達20米以上,使其成為各類應用甚至最為苛刻的應用場合的最佳選則。產品為4針單排引腳封裝。連接方便,特殊封裝形式可根據用戶需求而提供。
2.3信號采集通道的選擇
在本設計系統中,溫度輸入信號為4路的模擬信號,這就需要多通道結構采用多路分時的模擬量輸入通道。這種結構的模擬量通道特點為:對ADC、S/H要求高。處理速度慢。硬件簡單,成本低。軟件比較復雜。如圖2-1所示。
圖2-1多路分時的模擬量輸入通道
2.4 本章小結
在本章中,主要講了溫濕度傳感器的硬件選擇和信號采集通道的選擇。這些選擇是在實用性和價格低廉方面考慮的,如果條件允許可以選擇性能更加強大的傳感器和一個專門的多路選擇的的模塊。在下一章中,介紹系統的總體設計所用到主要芯片。
3 主要芯片簡介
3.1 DHT11數字傳感器
數字溫濕度傳感DHT11是由廣州奧松有限公司生產的一款溫濕度一體化的數字傳感器。
3.1.1 主要特性
DHT11數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度復合傳感器。它應用專用的數字模塊采集技術和溫濕度傳感技術,確保產品具有極高的可靠性與卓越的長期穩定性。傳感器包括一個電阻式感濕元件和一個NTC 測溫元件,并與一個高性能8位單片機相連接。因此該產品具有品質卓越、超快響應、抗干擾能力強、性價比極高等優點。每個DHT11傳感器都在極為精確的 濕度校驗室中進行校準。校準系數以程序的形式儲存在OTP內存中,傳感器內部在檢測信號的處理過程中要調用這些校準系數。單線制串行接口,使系統集 成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達20米以上,使其成為各類應用甚至最為苛刻的應用場合的最佳選則。產品為4針單排引腳 封裝。連接方便,特殊封裝形式可根據用戶需求而提供。
3.1.2 應用領域
該DHT11可以用于暖通空調、測試及檢測設備、汽車、數據記錄器、消費品、自動控制、濕度調節器及醫療等應用領域。
3.1.3 接口說明
建議連接線長度短于20米時用5K上拉電阻,大于20米時根據實際情況使用合適的上拉電阻。
圖3-2 dht11應用電路
3.1.4 電源引腳
DHT11的供電電壓為3-5.5V。傳感器上電后,要等待1s以越過不穩定狀態在此期間無需發送任何指令。電源引腳(VDD,GND)之間可增加一個100nF的電容,用以去耦濾波。
3.1.5 封裝信息
3.1.6 DHT11引腳圖
圖3-4 引腳圖
3.1.7 注意事項
溫度影響 氣體的相對濕度,在很大程度上依賴于溫度。因此在測量濕溫時,應盡可能保證濕度傳感器在同一溫度下工作。如果與釋放熱量的電子元件共用一個印刷線 路板,在安裝時應盡可能將DHT11遠離電子元件,并安裝在熱源下方,同時保持 外殼的良好通風。為降低熱傳導,DHT11與印刷電路板其它部分的銅鍍層應盡可 能最小,并在兩者之間留出一道縫隙。光線長時間暴露在太陽光下或強烈的紫外線輻射中,會使性能降低。配線注意事項DATA信號線材質量會影響通訊距離和通訊質量,推薦使用高質量屏蔽線。
3.2 ADC0832與單片機89C51
3.2.1 A/D轉換
3.2.1.1 A/D轉換器的特點
ADC0832 是美國國家半導體公司生產的一種8 位分辨率、雙通道A/D轉換
芯片。由于它體積小,兼容性強,性價比高而深受單片機愛好者及企業歡迎,
其目前已經有很高的普及率。學習并使用ADC0832 可是使我們了解A/D轉換器
的原理,有助于我們單片機技術水平的提高。
ADC0832 具有以下特點:
8位分辨率;
雙通道A/D轉換;
輸入輸出電平與TTL/CMOS相兼容;
5V電源供電時輸入電壓在0~5V之間;
工作頻率為250KHZ,轉換時間為32μS;
一般功耗僅為15mW;
8P、14P—DIP(雙列直插)、PICC 多種封裝;
商用級芯片溫寬為0°C to +70°C,工業級芯片溫寬為−40°C to +85°C;
3.2.1.2 ADC0832元件說明
ADC0832 為 8 位分辨率 A/D 轉換芯片,其最高分辨可達 256 級,可以適應一般的模擬量轉換要求。其內部電源輸入與參考電壓的復用,使得芯片的模擬 電壓輸入在 0~5V 之間。芯片轉換時間僅為 32μS,據有雙數據輸出可作為數據 校驗,以減少數據誤差,轉換速度快且穩定性能強。獨立的芯片使能輸入,使 多器件掛接和處理器控制變的更加方便。通過 DI 數據輸入端,可以輕易的實現 通道功能的選擇。
3.2.1.3 芯片頂視圖
圖3-5 ADC0832 芯片頂視圖
芯片接口說明:
GND 芯片參考 0 電位(地)。
DI 數據信號輸入,選擇通道控制。
DO 數據信號輸出,轉換數據輸出。
CLK 芯片時鐘輸入。
VCC/REF 輸入及參考電壓輸入(復用)。
CS 片選使能,低電平芯片使能。
CH0 模擬輸入通道 0,或作為 IN+/-使用。
CH1 模擬輸入通道 1,或作為 IN+/-使用。
3.2.1.4 ADC0832 與單片機的接口電路
ADC0832與單片機的接口電路如圖3-7所示
圖3-6 接口電路圖
3.2.1.5 單片機對 ADC0832 的控制原理
正常情況下 ADC0832 與單片機的接口應為 4 條數據線,分別是 CS、CLK、 DO、DI。但由于 DO 端與 DI 端在通信時并未同時有效并與單片機的接口是雙 向的,所以電路設計時可以將 DO 和 DI 并聯在一根數據線上使用。(見圖 3-7)
當ADC0832未工作時其CS輸入端應為高電平此時芯片禁用,CLK 和DO/DI 的電平可任意。當要進行A/D轉換時須先將CS使能端置于低電平并且保持低電平直到轉換完全結束。此時芯片開始轉換工作,同時由處理器向芯片時鐘輸入端 CLK 輸入時鐘脈沖,DO/DI 端則使用 DI 端輸入通道功能選擇的 數據信號。在第1個時鐘脈沖的下沉之前 DI 端必須是高電平,表示啟始信號。在第 2、3個脈沖下沉之前 DI 端應輸入 2 位數據用于選擇通道功能,其功能項見表3-1。
表3-1 Adc0832 單端 mux 模式
Mux 地址 | 頻道 | ||
Sgl/dif | Odd/sign | 0 | 1 |
1 | 0 | + |
|
1 | 1 |
| + |
表3-2 Adc0832 多端 mux 模式
Mux地址 | 頻道 | ||
Sgl/dif | Odd/sign | 0 | 1 |
0 | 0 | + | - |
0 | 1 | - | + |
|
|
|
|
如表3-1,表3-2所示,當此 2 位數據為“1”、“0”時,只對 CH0 進行單通道轉換。當 2 位數據為“1”、“1”時,只對CH1進行單通道轉換。當2位數據為“0”、“0”時,將CH0作為正輸入端 IN+,CH1 作為負輸入端 IN-進行輸入。 當 2 位 數據為“0”、“1”時,將 CH0 作為負輸入端 IN-,CH1 作為正輸入端 IN+進行 輸入。到第3個脈沖的下沉之后 DI 端的輸入電平就失去輸入作用。
此后 DO/DI 端則開始利用數據輸出 DO 進行轉換數據的讀取。從第4個脈沖下沉開始由 DO 端輸出轉換數據最高位 DATA7,隨后每一個脈沖下沉 DO端輸出下一位數據。直到第 11個脈沖時發出最低位數據 DATA0,一個字節的數據輸出完成。也正是 從此位開始輸出下一個相反字節的數據,即從第11個字節的下沉輸出 DATD0。隨后輸出 8 位數據,到第19個脈沖時數據輸出完成也標志著一次 A/D 轉換的結束。最后將 CS 置高電平禁用芯片,直接將轉換后的數據進行處理就可以了。更詳細的時序說明請見圖3-7。
作為單通道模擬信號輸入時 ADC0832 的輸入電壓是 0~5V 且 8 位分辨率時的電壓精度為 19.53mV。如果作為由 IN+與 IN-輸入的輸入時,可是將電壓值設定在某一個較大范圍之內,從而提高轉換的寬度。但值得注意的是,在進行 IN+與 IN-的輸入時如果IN-的電壓大于IN+的電壓則轉換后的數據結果始終為00H。
3.2.2 單片機89c51
為了設計此系統,我們采用了80c51單片機作為控制芯片。89C51是MCS-51系列單片機中CHMOS工藝的一個典型品種 ;其它廠商以8951為基核開發出的CMOS工藝單片機產品統稱為89C51系列。該系列單片機是采用高性能的靜態89C51 設計 由先進CMOS 工藝制造并帶有非易失性Flash 程序存儲器 全部支持12時鐘和6 時鐘操作 P89C51X2 和P89C52X2/54X2/58X2 分別包含128 字節和256 字節RAM 32條I/O 口線3 個16位定時/計數器 6 輸入4優先級嵌套中斷結構1 個串行I/O 口可用于多機通信I/O 擴展或全雙工UART以及片內振蕩器和時鐘電路。此外,由于器件采用了靜態設計,可提供很寬的操作頻率范圍,頻率可降至0 。可實現兩個由軟件選擇的節電模式,空閑模式和掉電模式,空閑模式凍結CPU但RAM定時器,串口和中斷系統仍然工作掉電模式保存RAM的內容 但是凍結振蕩器 導致所有其它的片內功能停止工作。由于設計是靜態的時鐘可停止而不會丟失用戶數據 運行可從時鐘停止處恢復。
圖3-7 ADC0832時序圖
3.2.2.1 89c51的基本結構
89C51的微處理器(CPU)
運算器
累加器ACC ;
寄存器B ;
程序狀態字寄存器PSW。
控制器
程序計數器PC ;
指令寄存器IR ;
定時與控制邏輯。
89C51的片內存儲器
內部ROM容量4K字節
內部RAM容量128字節
89C51的I/O口及功能單元
四個8位的并行口,即P0~P3。它們均為雙向口,既可作為輸入,又可作為輸出。每個口各有8條I/O線。
有一個全雙工的串行口(利用P3口的兩個引腳P3.0和P3.1);
有2個16位的定時/計數器 ;
有1套完善的中斷系統。
89C51的特殊功能寄存器(SFR)
低功耗的閑置和掉電模式
片內振蕩器和時鐘電路
圖3-8 89c51結構圖
3.2.2.2 89c51的引腳圖
圖3-9 89C51引腳圖
89C51的制作工藝為CMOS,采用40管腳雙列直插DIP封裝,引腳說明如下:
VCC:供電電壓。
GND:接地。
P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。
P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。
P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。
P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個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腳兩個機器周期的高電平時間。
ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ALE禁止,置位無效。
/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。
/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。
XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。
XTAL2:來自反向振蕩器的輸出。
3.2.2.3 89c51的存儲器配置
圖3-10 89C51存儲器配置
程序存儲器
與ROM密切相關的兩個引腳
地址鎖存允許信號端
外部程序存儲器允許輸出信號端
當ROM容量不夠時,盡量選擇高容量存儲器空間的單片機,如89C52,89C54,89C58等,應避免外擴程序存儲器,因為會增加硬件負擔.
通過16位PC尋址,最大可尋址64kB地址空間
數據存儲器
數據存儲器用于存放運算中間的結果、數據暫存、緩沖、標志位、待測程序等功能。
片內的128B的RAM地址為00H~7FH,供用戶做RAM用,但是在這中間的前32單元,00H~1FH即引用地址尋址做用戶RAM用,常常做工作寄存器區,分做四組,每組由8個單元組成通用寄存器R0~R7,任何時候都由其中一組作為當前工作寄存器,通過RS0,RS1的內容來決定選擇哪一個工作寄存器。
低128字節中的20H~2FH共16字節可用位尋址方式訪問各位,共128個位地址,30H~7FH共80個單元為用戶RAM區,作堆棧或數據緩沖用,片內RAM不夠用時,須擴展片外數據存儲器。此時單片機通過P2口和P0口選出6位地址,使用ALE作低8位的鎖存信號,再由P0口寫入或讀出數據。寫時用,讀時用
做外部數據存儲器的選通信號
特殊功能寄存器SFR
表3-3 特殊功能寄存器SFR的位置
3.2.2.4 89C51的工作模式
有四種工作模式:模式0,模式1,模式2,模式3
模式0:選擇定時器的高8位和低5位組成一個13位定時器/計數器。TL低5位溢出時向TH進位,TH溢出時向中斷標志位TF進位,并申請中斷。
定時時間t=(213-初值)×振蕩周期×12;計數長度位213=8192個外部脈沖
模式1:與模式0的唯一差別是寄存器TH和TL以全部16位參與操作。定時時間t=(216-初值)×振蕩周期×12;計數長度位216=65536個外部脈沖
模式2:把TL0和TL1配置成一個自動重裝載的8位定時器/計數器。TL用作8位計數器,TH用以保存初值。TL計數溢出時不僅使TF0置1,而且還自動將TH中的內容重新裝載到TL中。
定時時間t=(28-初值)×振蕩周期×12;計數長度位28=256個外部脈沖
模式3:對T0和T1不大相同
若設T0位模式3,TL0和TH0被分為兩個相互獨立的8位計數器。TL0為8位計數器,功能與模式0和模式1相同,可定時可計數。
TH0僅用作簡單的內部定時功能,它占用了定時器T1的控制位TR1和中斷標志位TF1,啟動和關閉僅受TR1控制。
定時器T1無工作模式3,但T0在工作模式3時T1仍可設置為0~2。
3.2.2.5 89c51的系統時鐘的設計
時鐘電路是用來產生89c51單片機工作時所必須的時鐘信號,89c51本身就是一個復雜的同步時序電路,為保證工作方式的實現,89c51在唯一的時鐘信號的控制下嚴格的按時序執行指令進行工作 ,時鐘的頻率影響單片機的速度和穩定性。通常時鐘由于兩種形式:內部時鐘和外部時鐘。
我們系統采用內部時鐘方式來為系統提供時鐘信號。89c51內部有一個用于構成振蕩器的高增益反向放大器,該放大器的輸入輸出引腳為XTAL1和XTAL2,它們跨接在晶體振蕩器和用于微調的電容,便構成了一個自激勵振蕩器
電路中的C1、C2的選擇在30PF左右,但電容太小會影響振蕩的頻率、穩定性和快速性。晶振頻率為在1.2MHZ~12MHZ之間,頻率越高單片機的速度就越快,但對存儲器速度要求就高。為了提高穩定性我們采用溫度穩定性好的NPO電容,采用的晶振頻率為12MHZ。
圖3-11 系統時鐘
3.3 本章小結
本章主要介紹了主要芯片的簡介,其中重點介紹了dht11溫濕度傳感器和89c51的元件結構及其各自的工作原理。
4 硬件設計
4.1 顯示與報警的設計
4.1.1 顯示電路
該設計中我們采用顯示驅動接口芯片方式。即用MAX7219 LED顯示驅動芯片與單片機89c51和4位陰極數碼管組成顯示電路。
MAX7219是Maxim公司推出的8位LED串行顯示驅動器,它采用3線串口傳送數據,占用資源少且硬件簡單,只需一個外部電阻即可方便地調節LED的亮度;可靈活地選擇顯示器的個數( 1~8個, 級聯可成倍增加);可進行譯碼或不譯碼顯示;內含硬件動態掃描控制,可設置低功耗停機方式。
顯示電路的電路連接圖如圖4-1,圖4-2,圖4-3所示
圖4-1 max7219引腳連接圖
圖4-2 4led引腳連接圖
圖4-3 89c51引腳連接圖
4.1.2 報警電路
在微型計算機控制系統中,為了安全生產,對于一些重要的參數或系統部位,都設有緊急狀態報警系統,以便提醒操作人員注意,或采取緊急措施。其方法就是把計算機采集的數據或記過計算機進行數據處理、數字濾波,標度變換之后,與該參數上下限給定值進行比較,如果高于上限值(或低于下限值)則進行報警,否則就作為采樣的正常值,進行顯示和控制。
本設計采用峰鳴音報警電路。峰鳴音報警接口電路的設計只需購買市售的壓電式蜂鳴器,然后通過MCS-51的1根口線經驅動器驅動蜂鳴音發聲。壓電式蜂鳴器約需10mA的驅動電流,可以使用TTL系列集成電路7406或7407低電平驅動,也可以用一個晶體三極管驅動。在圖中,P3.2接晶體管基極輸入端。當P3.2輸出高電平“1”時,晶體管導通,壓電蜂鳴器兩端獲得約+5V電壓而鳴叫;當P3.2輸出低電平“0”時,三極管截止,蜂鳴器停止發聲。
圖4-4是一個簡單的使用三極管驅動的峰鳴音報警電路:
圖4-4 三極管驅動的峰鳴音報警電路
本設計是為在溫濕度測量中對溫濕度的上下限超出是的提示報警,接口位于單片機AT89C51的P3.2口,但溫濕度過限時,P3.2口被置0,本系統開始工作。
4.2 本章小結
本章介紹了硬件系統的設計部分,包括顯示電路和報警電路兩部分。而下一章我將講解軟件設計部分。
溫濕度主程序的設計應考慮以下問題:(1)溫度顯示;(2)溫濕度采樣,數字濾波;(3)越限報警(5)溫度標度轉換。通常,符合上述功能的溫濕度監測程序由主程序和T0中斷服務程序兩部分組成。
這里所需要注意的是標度變換,下面簡單的介紹一下標度變換:
標度變換的目的是要把實際采樣的二進制值轉換成BCD形式的溫度值,然后存放到顯示緩沖區34H-3BH。對一般線性儀表來說,標度變換公式為:
式中:A0為一次測量儀表的下限;Am為一次測量儀表的上限;AX為實際測量值;
N0為儀表下限所對應的數字量;Nm為儀表上限所對應的數字量;NX為測量所得數字量。
軟件部分除主程序外,還包含有中斷服務、測量、顯示、A/D 轉換等功能模塊。由于系統控制過程是由中斷服務程序實現的,本文給出了中斷服務程序流程圖(見圖4-2),從中可以看到整個程序設計的思路和概貌。
軟件設計的主程序流程圖如圖5-1所示。
第一步,先設置堆棧,堆棧完后清標志,清除暫時存儲的數據,最后再清顯示的數字。
第二步進行T0初始化,然后進行串行口初始化。
第三步進行CPU開中斷。
第四步進行掃描鍵盤之后進行溫濕度采樣。
第五步顯示采集所得到的溫濕度數據。
第六步循環進行溫濕度采樣,使得可以隔一段時間進行溫濕度數據顯示更新。
圖5-1主程序流程圖
5.3 T0中斷流程圖
軟件的中斷流程圖如圖5-2所示。
第一步先從中斷服務程序入口進入,然后保護現場,送定時器初值,最后進行記時處理。
第二步進行溫濕度采樣,接著將溫濕度值送顯示,通過指針取設定值,與已經設定好的設定值進行比較,采用控制算法。
第三步輸出溫、濕度控制量。
圖5-2 中斷服務程序框圖
5.4 報警子程序流程圖
報警子程序圖如圖5-3所示。
圖5-3報警子流程圖
5.5 溫濕度采樣子程序流程圖
溫濕度采樣子程序流程圖如圖5-4所示。
圖5-4溫濕度采集流程圖
6.1 總結
本文設計了一個簡單的單點糧庫監測系統,能自動簡單的測量糧庫一點的溫濕度并且具有溫濕度超過規定指標進行警報的功能。本系統具有硬件少,結構簡單,容易實現,性能穩定可靠,成本低等特點。
6.2 改進思路
在電子系統設計中,為了少走彎路和節省時間,應充分考慮并滿足抗干擾 的要求,避免在設計完成后再去進行抗干擾的補救措施。形成干擾的基本要素有三個:第一個是干擾源,指產生干擾的元件、設備或信號,第二個是傳播路徑,第三個是敏感器件。下面講具體的抗干擾方案。
6.2.1軟件方面
1、習慣于將不用的代碼空間全清成“0”,因為這等效于NOP,可在程序跑飛時歸位;
2、在跳轉指令前加幾個NOP,目的同1;
3、在無硬件WatchDog時可采用軟件模擬WatchDog,以監測程序的運行;
4、涉及處理外部器件參數調整或設置時,為防止外部器件因受干擾而出錯可定時將參數重新發送一遍,這樣可使外部器件盡快恢復正確;
5、通訊中的抗干擾,可加數據校驗位,可采取3取2或5取3策略;
6、在有通訊線時,如I^2C、三線制等,實際中發現將Data線、CLK線、INH線常態置為高,其抗干擾效果要好過置為低。
6.2.2硬件方面
1、地線、電源線的部線肯定重要了!
2、線路的去偶;
3、數、模地的分開;
4、每個數字元件在地與電源之間都要104電容;
5、在有繼電器的應用場合,尤其是大電流時,防繼電器觸點火花對電路的干擾,可在繼電器 線圈間并一104和二極管,在觸點和常開端間接472電容,效果不錯!
6、為防I/O口的串擾,可將I/O口隔離,方法有二極管隔離、門電路隔離、光偶隔離、電磁隔離等;
7、當然多層板的抗干擾肯定好過單面板,但成本卻高了幾倍。
8、選擇一個抗干擾能力強的器件比之任何方法都有效,我想這點應該最重要。因為器件天生的不足是很難用外部方法去彌補的,但往往抗干擾能力強的就貴些
總結本文的研究工作,主要做了下面幾點較突出的工作:
附錄 B 匯編程序
歡迎光臨 (http://www.raoushi.com/bbs/) | Powered by Discuz! X3.1 |