版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
畢業(yè)設計-36-引言網(wǎng)絡通信技術的發(fā)展,使監(jiān)控系統(tǒng)廣泛應用于工農(nóng)業(yè)生產(chǎn)等領域,因此,糧情檢測技術糧情檢測屬監(jiān)控系統(tǒng)范疇,近年來,由于計算機技術、超大規(guī)模集成電路技術和的研究在軟、硬件等方面都有了一定的進展。早期糧情監(jiān)測主要采用溫度計測量法,它是將溫度計放入特制的插桿中,根據(jù)經(jīng)驗插在糧堆的多個測溫點,管理人員定期拔出讀數(shù),確定糧溫的高、低,決定是否倒糧。這種方法對儲糧有一定的作用,但由于溫度計精度、人工讀數(shù)的人為因素等原因,溫度檢測不僅速度慢,而且精度低,抽樣不徹底,局部糧溫過高不易被及時發(fā)現(xiàn),導致因局部糧食發(fā)霉變質(zhì)引起大面積壞糧的情況時有發(fā)生。隨著科技的發(fā)展,從1978年開始,采用電阻式溫度傳感器、采樣器、模數(shù)轉換器、報警器等組成的儲糧監(jiān)測系統(tǒng)出現(xiàn),它可對各糧庫的各個測溫點進行巡回檢測,檢測速度、精度大大提高,降低了勞動強度,但由于電阻傳感器的靈敏度低,致檢測精度、系統(tǒng)可靠性還不夠理想。至1990年,糧情檢測系統(tǒng)有了很大的改善和提高,系統(tǒng)在布線上采用矩陣式布線技術,簡化了數(shù)據(jù)采集部分的線路,在傳感器方面應用了半導體、熱電偶等器件;在線路傳輸上采用了串行傳輸方式,從而減少了傳輸線根數(shù);采用單板機進行數(shù)據(jù)處理,并采用各種手段提高數(shù)據(jù)傳輸及檢測速度,通過軟硬件技術的結合,檢測精度和可靠性較前有很大提高。但溫度傳感器的線性度差,系統(tǒng)的檢測精度仍不理想,無法大面積推廣。近年來,隨著單片機功能的日益強大和計算機的廣泛應用,糧情檢測的準確性、穩(wěn)定性要求越來越高。尋找最佳配置和最好的性價比成為糧情監(jiān)測研究的熱點國外在糧情監(jiān)控技術上已達到了很成熟的地步,高科技數(shù)字式傳感器廣泛應用于糧情檢測系統(tǒng)。這種傳感器采用了半導體集成電路與微控制器最新技術,在一個管芯上集成了半導體溫度檢測芯片、數(shù)據(jù)信號轉換芯片、計算機接口芯片,轉換、溫度補償?shù)裙δ?。由于?shù)字溫度傳感器直接傳出數(shù)字量,從而解決了溫度信號長距離傳輸問題及傳輸過程中因干擾和衰減而導致的精度降低等問題。目前,國內(nèi)出現(xiàn)了豐富的數(shù)字傳感器配套產(chǎn)品,如遠程控制模塊、中繼器、接插器、分線器等,技術也比較成熟。數(shù)字傳感技術、通信技術、計算機成為當今信息技術的的三大基礎,計算機監(jiān)控技術已成人們關注的熱點。
1項目說明防潮、防霉、防腐、防爆是糧庫日常工作的重要內(nèi)容,是衡量糧庫管理質(zhì)量的重要指標。它直接影響到儲備物資的壽命和工作可靠性。為保證日常工作的順利進行,首要問題是加強倉庫內(nèi)溫度的監(jiān)測工作,因為溫度的升高,就意味著糧庫內(nèi)的有氧呼吸的加強,就意味著馬上就要發(fā)生腐爛霉變。因此我們需要一種造價低廉、使用方便且測量準確的溫度測量儀。1.1設計目標設計一個基于51單片機的溫度濕度報警器,實現(xiàn)運行參數(shù)設置和顯示功能,通過485總線方式和上位機通信。設計要求:(1)掌握溫度報警器的工作原理和設計方法;(2)掌握51系列單片機編程;(3)掌握485總線通信機理;(4)學會Protell99SE畫圖工具;1.2研究內(nèi)容和研究方法(1)根據(jù)系統(tǒng)功能要求并且考慮系統(tǒng)的實用性和可操作性,進行系統(tǒng)的整體方案設計。該方案采用模塊化設計方法,以方便系統(tǒng)調(diào)試和用戶的使用。(2)系統(tǒng)硬件設計。主要內(nèi)容包括芯片的選擇、芯片的功能介紹、芯片外圍電路的設計等。(3)系統(tǒng)軟件設計。主要包括系統(tǒng)主程序,記數(shù)程序,采樣子程序,讀顯示子程序,寫顯示RAM子程序,報警子程序。本設計以實用為出發(fā)點,力求設計原理簡單,開發(fā)成本低,易于實現(xiàn)。器件選擇上,也考慮到實際應用的具體情況。單片機控制可靠性高,溫濕度傳感器采集信號誤差小,穩(wěn)定度高,整個系統(tǒng)使用簡單,經(jīng)濟,有很強實用性。1.3方案選擇1.3.1單片機芯片的選擇方案和論證方案一采用MSP430F449芯片作為硬件核心,采用FlashROM,內(nèi)部具有4KBROM存儲空間,能于1.8V-3.6V的超低壓工作,適合手持設備。但是編程環(huán)境復雜,編程風格與MS-51相差很大。用MSP430編程較之MS-51繁瑣,故不采用MSP430F449。方案二采用AT89C52,片內(nèi)ROM全都采用FlashROM;能在4V-5.5V電壓工作;同時也與MCS-51系列單片機完全兼容。該芯片內(nèi)部存儲器為8KBROM存儲空間,同樣具有89C51的功能。由于其與MS-51完全兼容,故編程簡單。AT89C52的性能完全滿足本設計對單片機的要求。所以選擇采用AT89C52作為主控制系統(tǒng)。1.3.2顯示模塊的選擇方案和論證方案一采用LED數(shù)碼管動態(tài)掃描,LED數(shù)碼管價格適中,對于顯示數(shù)字最合適,但是顯示字母不合適。而且采用動態(tài)掃描法與單片機連接時,占用的單片機時間多。所以不采用此種作為顯示。方案二采用點陣式數(shù)碼管顯示,點陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費,且價格也相對較高,所以也不用此種作為顯示。方案三采用LCD液晶顯示屏,液晶顯示屏的顯示功能強大,可顯示大量字母,圖形,顯示多樣,清晰可見,但是價格一般,需要的接口線較少,所以在此設計中采用LCD液晶顯示屏作為顯示。1.3.3溫濕度傳感器的選擇方案和論證方案一分別采用溫度傳感器和濕度傳感器分開采集溫度和濕度,這種設計需要用到兩個傳感器分別采集數(shù)據(jù)而且還需要用到A/D轉換電路,實際連接電路比較麻煩。方案二進而考慮到用溫濕度繼集成傳感器,在單片機電路設計中,所以可以采用一只溫濕度集成傳感器SHT75,此傳感器可以很容易直接讀取被測溫濕度值,內(nèi)部進行轉換,直接輸出數(shù)字信號,可以滿足設計要求。所以選擇方案二。綜上各方案所述,對此次作品的方案選定:采用AT89C52作為主控制系統(tǒng);SHT75作為溫濕度傳感器;LCD1602顯示屏作為顯示。
2系統(tǒng)的整體設計2.1系統(tǒng)的組成根據(jù)系統(tǒng)總體功能,將其劃分為以下幾個功能模塊:微處理器CPU、溫濕度傳感器、鍵盤、LCD顯示,LED狀態(tài)報警,蜂鳴器報警,整個系統(tǒng)的構成如圖2.1所示。圖2.1整體系統(tǒng)構成2.2系統(tǒng)工作流程AT89C52單片機是整個系統(tǒng)的核心,他來接收溫濕度信號并控制協(xié)調(diào)各個模塊使其能正常工作。SHT75溫濕度傳感器采集溫濕度信號,將信號直接送至單片機進行運算,得到合適的溫濕度。顯示部分由液晶芯片LCD1602配合單片機完成。報警部分由按鍵控制設置,配合顯示部分來設置溫濕度的報警閾值,實際溫濕度超過閾值是有蜂鳴器和LED燈共同報警。單片機通過RS485總線方式與上位機進行通訊,并實時顯示溫濕度值。因89C52內(nèi)含8KB的EEPROM,不需外擴展存儲器,可使系統(tǒng)整體結構簡單。2.3系統(tǒng)的功能介紹本系統(tǒng)可對溫濕度值進行實時檢測,測溫范圍可為-40~+123.8℃,根據(jù)糧倉內(nèi)實際溫度變化情況,將測溫范圍設定為0-70。C??蓽y濕度測量范圍是(0-100)%RH,這也足以滿足對濕度的測量要求。所測溫濕度值通過LCD1602顯示芯片顯示。整個系統(tǒng)測量精度高、穩(wěn)定性好,性能上能夠達到遠距離測量溫濕度的要求,適于安置在糧倉內(nèi)進行檢測。
3系統(tǒng)的硬件設計本章從器件選擇、性能特點、電路分析等方面對硬件系統(tǒng)進行了討論。3.1AT89C52單片機功能介紹3.11芯片簡介AT9C52是一個低電壓,高性能CMOS8位單片機,片內(nèi)含8kbytes的可反復擦寫的只讀程序存儲器(PEROM)和256bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產(chǎn),兼容標準MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,內(nèi)置功能強大的微型計算機的AT89C52提供了高性價比的解決方案。主要性能參數(shù)如下。主要性能?與MCS-51單片機產(chǎn)品兼容?8K字節(jié)在系統(tǒng)可編程Flash存儲器?1000次擦寫周期?全靜態(tài)操作:0Hz~33Hz?三級加密程序存儲器?32個可編程I/O口線?三個16位定時器/計數(shù)器?八個中斷源?全雙工UART串行通道?低功耗空閑和掉電模式?掉電后中斷可喚醒?看門狗定時器?雙數(shù)據(jù)指針?掉電標識符圖3.1AT89C52引腳圖3.12AT89C52各引腳在設計中的應用引腳圖如圖3.1P0口:P0口是一組8位漏極開路型雙向I/O口,也即地址/數(shù)據(jù)總線復用口。作為輸出口用時,每位能吸收電流的方式驅動8個TTL邏輯門電路,對端口P0寫“l(fā)”時,可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉換地址(低8位)和數(shù)據(jù)總線復用,在訪問期間激活內(nèi)部上拉電阻。在Flash編程時,P0口接收指令字節(jié)。而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。本系統(tǒng)P0口用于與LCD1602進行數(shù)據(jù)傳輸。P1口:P1是一個帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“l(fā)”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。P2口:P2是一個帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對端口P2寫“l(fā)”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。本系統(tǒng)P2口用于進行報警系統(tǒng)的信號傳輸。P3口:P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫入“l(fā)”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的P3口將用上拉電阻輸出電流(IIL)。本系統(tǒng)P3口用于接收SHT75傳感器的溫濕度信號,P3.2和P3.3用于鍵盤輸入的外部中斷,P3.2用于INT0(外部中斷0),P3.3用于INT1(外部中斷1)。RST:復位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復位。ALE/PROG:當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的l/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應設置ALE禁止位無效。PSEN:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89C52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖。在此期間,當訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為0000H—FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器中的指令。Flash存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當然這必須是該器件是使用12V編程電壓Vpp。XTAL1:振蕩器反相放大器的及內(nèi)部時鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。3.13時鐘振蕩器AT89C52中有一個用于構成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個放大器作為反饋元件的片外石英晶體或陶瓷諧振器一起構成自激振蕩器,振蕩電路參見圖3.2。圖3.2振蕩電路3.2溫濕度采集系統(tǒng)3.2.1集成溫濕度傳感器的選擇SHT75(如圖3.3)是盛世瑞恩溫濕度傳感器系列中插針型的傳感器。傳感器把傳感元件和信號處理集成起來,輸出全標定的數(shù)字信號。傳感器采用專利的CMOSens?技術,確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個電容性聚合體測濕敏感元件、一個用能隙材料制成的測溫元件,并在同一芯片上,與14位的A/D轉換器以及串行接口電路實現(xiàn)無縫連接。因此,該產(chǎn)品具有品質(zhì)卓越、超快響應、抗干擾能力強、極高的性價比等優(yōu)點。每個傳感器芯片都在極為精確的濕度腔室中進行標定,校準系數(shù)以程序形式儲存在OTP內(nèi)存中,在標定的過程中使用。傳感器在檢測信號的處理過程中要調(diào)用這些校準系數(shù)。兩線制的串行接口與內(nèi)部的電壓調(diào)整,使外圍系統(tǒng)集成變得快速而簡單。微小的體積、極低的功耗,使SHT75成為各類應用的首選。圖3.3SHT75傳感器3.2.2SHT75的性能特點(如圖3.4)圖3.4SHT75性能特點3.2.3溫濕度測量電路電源引腳:SHT75的供電電壓為2.4-5.5V,建議供電電壓為3.3V。在電源引腳(VDD,GND)之間可增加一個100nF的電容,用以去耦濾波。SHT75的串行接口,在傳感器信號的讀取及電源損耗方面,都做了優(yōu)化處理;傳感器不能按照IC協(xié)議編址,但是,如果IC總線上沒有掛接別的元件,傳感器可以連接到IC總線上,但單片機必須按照傳感器的協(xié)議工作。圖3.5為典型應用電路連接。圖3.5電路連接圖串行時鐘輸入(SCK):SCK用于微處理器與SHT75之間的通訊同步。由于接口包含了完全靜態(tài)邏輯,因而不存在最小SCK頻率。串行數(shù)據(jù)(DATA):DATA三態(tài)門用于數(shù)據(jù)的讀取。DATA在SCK時鐘下降沿之后改變狀態(tài),并僅在SCK時鐘上升沿有效。數(shù)據(jù)傳輸期間,在SCK時鐘高電平時,DATA必須保持穩(wěn)定。為避免信號沖突,微處理器應驅動DATA在低電平。需要一個外部的上拉電阻(例如:10kΩ)將信號提拉至高電平。上拉電阻通常已包含在微處理器的I/O電路中。3.2.4輸出轉換為物理量相對濕度:為了補償濕度傳感器的非線性以獲取準確數(shù)據(jù),請參閱圖3.6,建議使用如下公式修正讀數(shù):RHlinear=c1+c2·SORH+c3·SORH2(%RH)圖3.6相對濕度轉換相對濕度對于溫度依賴性的補償:由于實際溫度與測試參考溫度25℃(~77℉)的顯著不同,濕度信號需要溫度補償。溫度校正粗略對應于0.12%RH/℃@50%RH,溫度補償系數(shù)請參閱圖3.7。RHtrue=(T°C-25)?(t1+t2?SORH)+RHlinear圖3.7溫度補償系數(shù)溫度:由能隙材料PTAT(正比于絕對溫度)研發(fā)的溫度傳感器具有極好的線性??捎萌缦鹿綄?shù)字輸出轉換為溫度值,溫度轉換系數(shù)請閱圖3.8:圖3.8溫度轉換系數(shù)露點:SHT75不能直接測量露點,但可由溫度和濕度值計算。SHT75系列產(chǎn)品可以同時實現(xiàn)高質(zhì)量的露點測量。對于溫度范圍為-40-50℃,如下的近似計算可得出高精度的露點值,系數(shù)請參閱圖3.9:圖3.9露點系數(shù)3.3顯示電路1602液晶顯示器以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點,在各類儀表和低功耗系統(tǒng)中得到廣泛的應用。1602液晶為16字X2行的字符型液晶。該液晶與數(shù)碼管相比有如下優(yōu)點:1.位數(shù)多,可顯示32位,32個數(shù)碼管體積相當龐大了。2.顯示內(nèi)容豐富,可顯示所有數(shù)字和大、小寫字母。3.程序簡單,如果用數(shù)碼管動態(tài)顯示,會占用很多時間來刷新顯示,而1602自動完成此功能。圖3.10為字符型LCD的引腳定義圖3.11為液晶與單片機接法圖3.10引腳定義圖3.11液晶與單片機接法1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了不同的點陣字符圖形,這些字符有,阿拉伯數(shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,其中數(shù)字與字母同ASCII碼兼容。其內(nèi)部還有自定義字符(CGRAM),可用于存儲自已定義的字符。1602模塊的設定,讀寫,與光標控制都是通過指令來完成,共有11條指令,如表3.1:表3.1:指令RSRWD7D6D5D4D3D2D1D01清屏00000000012光標返回000000001*3輸入模式00000001I/DS4顯示控制0000001DCB5光標/字符移位000001S/CR/L**6功能00001DLNF**7置字符發(fā)生器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標志和地址01BF計數(shù)器地址10寫數(shù)據(jù)到指令7.8所設地址10要寫的數(shù)據(jù)11從指令7.8所設的地址讀數(shù)據(jù)11讀出的數(shù)據(jù)3.4按鍵電路單片機應用系統(tǒng)中的按鍵或鍵盤都是以開關狀態(tài)來設置控制功能或輸入數(shù)據(jù)。為了方便設置溫濕度報警閾值的修改,我一共涉及了5個按鍵。如圖3.12當有按鍵按下時,信號變?yōu)榈碗娖剑到y(tǒng)做完與門運算后像單片機P3.2口輸入低電平,這時系統(tǒng)執(zhí)行外部中斷。圖3.12按鍵電路3.5超溫報警本設計采用蜂鳴器報警方式,當采集到的溫度經(jīng)過修正后超過了系統(tǒng)設置的閾值時,則P3.0口輸出低電平,U6是光耦,此處起電平匹配作用,3腳輸入低電平,6腳即輸出低電平,此時Q1即PNP三極管導通,蜂鳴器有電流流過即發(fā)聲報警。連接方式如圖3.13圖3.13蜂鳴器連接方式3.6RS485遠程通訊串口是一種接口標準,它規(guī)定了接口的電氣標準,簡單說只是物理層的一個標準。沒有規(guī)定接口插件電纜以及使用的協(xié)議,所以只要我們使用的接口插件電纜符合串口標準就可以在實際中靈活使用,在串口接口標準上使用各種協(xié)議進行通訊及設備控制。RS-485總線,在要求通信距離為幾十米到上千米時,廣泛采用RS-485串行總線。RS-485采用平衡發(fā)送和差分接收,因此具有抑制共模干擾的能力。加上總線收發(fā)器具有高靈敏度,能檢測低至200mV的電壓,故傳輸信號能在千米以外得到恢復。RS-485采用半雙工工作方式,任何時候只能有一點處于發(fā)送狀態(tài),因此,發(fā)送電路須由使能信號加以控制。RS-485標準接口是單片機系統(tǒng)種常用的一種串行總線之一。與RS-232C比較,其性能有許多改進,細節(jié)如圖3.14所示圖3.14RS485改進RS-485接口可連接成半雙工和全雙工兩種通信方式。常見的半雙工通信芯片有MAX481、MAX483、MAX485、MAX487等,全雙工通信芯片有MAX488、MAX489、MAX490、MAX491等。下面以MAX485為例來介紹RS-485串行接口的應用。MAX485的封裝有DIP、SO和uMAX三種,其中DIP封裝的管腳如圖3.15所示。圖3.15MAX封裝管腳管腳的功能如下:
RO:接收器輸出端。若A比B大200mV,RO為高;反之為低電平。
RE:接收器輸出使能端。RE為低時,RO有效;為高時,RO呈高阻狀態(tài)。
DE:驅動器輸出使能端。若DE=1,驅動器輸
出A和B有效;若DE=0,則它們呈高阻態(tài)。若
驅動器輸出有效,器件作為線驅動器用,反之
作為線接收器用。
DI:驅動器輸入端。DI=0,有A=0,B=1;
當DI=1,則A=1,B=0。
GND:接地。
A:同相接收器輸入和同相驅動器輸出。
B:反相接收器輸入和反相驅動器輸出。
VCC:電源端,一般接+5V。MAX485典型的工作電路如圖3.16所示,其中平衡電阻Rp通常取100~300歐姆。MAX485的收發(fā)功能見圖3.17。圖3.16MAX485典型工作電路圖3.17MAX收發(fā)功能89C52與MAX485的接口電路如圖3.18所示。P1.7用來控制MAX485的接收或發(fā)送,其余操作同串口。圖3.1889C52與MAX485的接口電路
4系統(tǒng)整體硬件電路系統(tǒng)整體硬件電路包括,傳感器數(shù)據(jù)采集電路,溫度顯示電路,上下限報警電路,按鍵電路,單片機主板電路,LED狀態(tài)電路等,如圖4.1所示。圖4.1中有五個獨立式按鍵可以分別調(diào)整溫度計的上下限報警設置,并且切換顯示。圖中蜂鳴器可以在被測溫度不在上下限范圍內(nèi)時,發(fā)出報警鳴叫聲音,同時LED燈閃爍。顯示電路的液晶是使用的并行傳輸,這種顯示最大的優(yōu)點就是傳輸速度快,而且液晶顯示比較清晰。系統(tǒng)還配置了利用RS485總線方式與上位機通訊的功能,上位機能夠實時獲得系統(tǒng)所收集的溫濕度信息并實時顯示。圖4.1系統(tǒng)整體硬件電路
5系統(tǒng)軟件算法分析系統(tǒng)程序主要包括主程序,讀出溫濕度子程序,,溫度轉換命令子程序,計算溫度子程序,顯示數(shù)據(jù)刷新子程序等。5.1主程序主程序的主要功能是負責溫濕度的實時顯示、讀出并處理SHT75的測量的當前溫濕度值,溫濕度測量每1s進行一次。這樣可以在一秒之內(nèi)測量一次被測溫濕度,其程序流程見圖5.1所示。圖5.1主程序流程圖部分源程序:#include<AT89X52.h> //AT89C52單片機頭文件#include<intrins.h> #include<SHT75.H> //SHT75操作頭文件#include<lcd1602.h> //LCD1602操作頭文件#include<ini_51int.h> //51中斷初始化頭文件////宏定義#defineHI 0x01#defineLOW 0x00#defineY 0XFF#defineN 0X00#defineTEMP_FLG 0X01#defineHUMI_FLG 0X02#defineDEW_FLG 0X03#defineNON_FLG 0X04//定義按鍵接口#defineSET ((P1&(1<<2))>>2) //p1.2,設置(切換)#defineTEN ((P1&(1<<3))>>3) //P1.3,×10#defineADD ((P1&(1<<4))>>4) //P1.4,增加#defineDEC ((P1&(1<<5))>>5) //P1.5,減少#defineOK ((P1&(1<<6))>>6) //P1.6,確認退出//變量定義signedintTEMP_value=0; //溫度值signedintHUMI_value=0; //濕度值signedintDEW_value=0; //露點值signedinttemp_alarm_value=90; //預置溫度上限報警值,大于此值報警,可通過鍵盤調(diào)節(jié)signedinthumi_alarm_value=90; //預置濕度上限報警值,大于此值報警,可通過鍵盤調(diào)節(jié)signedintdew_alarm_value=90; //預置露點上限報警值,大于此值報警,可通過鍵盤調(diào)節(jié)unsignedcharsetting_model=N; //是否進入設定狀態(tài)的標志變量unsignedcharsetting_item_num=0; //設置內(nèi)容序號,0-無,1-temp,2-humi,unsignedcharsetting_item=NON_FLG; //標記設定項目的變量unsignedchartimes=1; //增減倍率//定義輸出信號接口sbitbuzzer_alarm =P3^0; //蜂鳴器 sbitworking_led =P3^3; //系統(tǒng)工作指示燈sbitsetting_led =P3^4; //設置狀態(tài)指示燈sbitten_led =P3^5; //×10狀態(tài)指示sbittemp_alarm_led =P3^6; //溫度超限報警指示燈sbithumi_alarm_led =P3^7; //濕度超限報警指示燈sbitdew_alarm_led =P1^7; //露點超限報警指示燈unsignedintloop1_roll=0; //控制滾動顯示速度unsignedintloop2_led=0; //控制狀態(tài)指示燈閃爍快慢5.2讀出溫濕度子程序讀出溫濕度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進行CRC校驗,校驗有錯時不進行溫濕度數(shù)據(jù)的改寫。其程序流程圖如圖5.2示部分源程序://函數(shù)名:display_temp()//功能:輸出顯示溫度及限值信息//voiddisplay_temp(){ display_from(1); //設置顯示起始位置,第一行 lcd_printchar("Temperature:"); //輸出字符 display_from(18); //設置顯示起始位置,第二行 display_full_num(TEMP_value); //輸出溫度數(shù)值 lcd_printchar("/"); display_full_num(temp_alarm_value); //輸出設定的溫度報警限值 lcd_printchar(""); lcd_wdata(0xdf); //° lcd_wdata(0x43); //C lcd_printchar("");}////函數(shù)名:display_humi()//功能:輸出顯示濕度及限值信息//voiddisplay_humi(){ display_from(1); //設置顯示起始位置,第一行 lcd_printchar("Humidity:"); //輸出字符 display_from(18); //設置顯示起始位置,第二行 display_full_num(HUMI_value); //輸出濕度數(shù)值 lcd_printchar("/"); display_full_num(humi_alarm_value); //輸出設定的濕度報警數(shù)值 lcd_printchar("%");}////函數(shù)名:display_dew()//功能:輸出顯示露點及限值信息//voiddisplay_dew(){ display_from(1); //設置顯示起始位置,第一行 lcd_printchar("DewPoint:"); //輸出字符 display_from(18); //設置顯示起始位置,第二行 display_full_num(DEW_value); //輸出露點數(shù)值 lcd_printchar("/"); display_full_num(dew_alarm_value); //輸出設定的露點報警數(shù)值 lcd_printchar(""); lcd_wdata(0xdf); //° lcd_wdata(0x43); //C lcd_printchar("");}圖5.2讀溫濕度流程圖5.3溫濕度轉換命令子程序溫度轉換命令子程序主要是發(fā)溫度轉換開始命令,當采用12位分辨率時轉換時間約為750ms,在本程序設計中采用1s顯示程序延時法等待轉換的完成。溫度轉換命令子程序流程圖如圖5.3所示圖5.3溫濕度轉換流程圖5.4LED狀態(tài)子程序系統(tǒng)設置了5個LED狀態(tài)燈,分別用作工作指示、設置狀態(tài)指示、x10狀態(tài)指示、溫度過超限報警指示、濕度超限報警指示和露點超限報警指示。voidled_control(){ //工作指示 working_led=0; //設置狀態(tài)指示 if(setting_model==Y) { if(loop2_led<=2) //使LED閃爍 { setting_led=0; } else { setting_led=1; } } else { setting_led=1; } //×10狀態(tài)指示 if(times==10) { ten_led=0; } else { ten_led=1; } //溫度過高報警指示 if(TEMP_value>=temp_alarm_value) { if(loop2_led<=2) { temp_alarm_led=0; //led發(fā)光 } else { temp_alarm_led=1; //led熄滅 } } else { temp_alarm_led=1; } //濕度過高報警指示 if(HUMI_value>=humi_alarm_value) { if(loop2_led<=2) //使LED閃爍 { humi_alarm_led=0; } else { humi_alarm_led=1; } } else { humi_alarm_led=1; } //露點過高報警指示 if(DEW_value>=dew_alarm_value) { if(loop2_led<=2) //使LED閃爍 { dew_alarm_led=0; } else { dew_alarm_led=1; } } else { dew_alarm_led=1; } //發(fā)聲報警 if((temp_alarm_led==0)||(humi_alarm_led==0)||(dew_alarm_led==0)) { if(loop2_led<=1) //使LED閃爍 { buzzer_alarm=0; } else { buzzer_alarm=1; } } else { buzzer_alarm=1; }}
5.5顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器中的顯示數(shù)據(jù)進行刷新操作,當最高顯示位為0時將符號顯示位移入下一位。程序流程圖如圖5.5。圖5.5顯示刷新流程圖voidmain(){ int_ini(); //外部中斷初始化 lcd_init(); //lcd初始化 init_uart(); //串口初始化 while(1) { sht75_sample(); //采集一次溫度濕度數(shù)據(jù),并更新現(xiàn)有數(shù)據(jù) display_1602(); //輸出顯示數(shù)據(jù) led_control(); //監(jiān)控溫濕度數(shù)據(jù),并及時輸出報警等信息 loops(); }}
6實際仿真截圖6.1SHT75傳感器仿真截圖如圖6.1中,顯示的為SHT75運行時的狀態(tài),當前檢測到的溫度為20℃,濕度為27%。圖6.1SHT75運行時的狀態(tài)6.2LCD1602液晶屏仿真截圖下圖中顯示的為LCD1602運行時的狀態(tài),圖6.2中顯示的是當前檢測到的溫度為20℃。圖6.2當前檢測的溫度圖6.3中顯示的為當前檢測到的濕度為27%圖6.3當前檢測的濕度圖6.4顯示的為當前檢測到的露點為圖6.4當前檢測的露點
6.3設置溫濕度報警閾值界面仿真截圖圖6.5為設置溫度閾值界面,當前閾值為90度,通過按鍵可更改為任意值。圖6.5當前溫度閾值圖6.6為更改閾值到80度。圖6.6更改后的閾值圖6.7為設置濕度閾值界面,當前閾值為60%,通過按鍵可更改
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年關于《黨政機關厲行節(jié)約反對浪費條例》知識題庫(附答案)
- 2025護士考點試題及答案
- 銀行入營考試題目及答案
- 等壓式焊炬試題及答案
- 大連莊河去年考試題及答案
- 未來五年ZTG燭式過濾機企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略分析研究報告
- 普外科引流管并發(fā)癥預防與處理
- 2026黑龍江齊齊哈爾市建華區(qū)消防大隊政府專職消防員招聘11人備考題庫必考題
- 中共自貢市貢井區(qū)委社會工作部2025年新興領域黨建工作專員招聘參考題庫必考題
- 內(nèi)江市第六人民醫(yī)院2025年員額人員招聘(14人)參考題庫附答案
- 2024-2025閩教版小學英語五年級上冊期末考試測試卷及參考答案(共3套)
- 組件設計文檔-MBOM構型管理
- 臨床協(xié)調(diào)員CRC年度總結
- 編鐘樂器市場洞察報告
- 負壓沖洗式口腔護理
- 山東省泰安市2024-2025學年高一物理下學期期末考試試題含解析
- 凈化車間液氮洗操作規(guī)程
- 《中電聯(lián)標準-抽水蓄能電站鋼筋混凝土襯砌水道設計導則》
- 【可行性報告】2023年硫精砂項目可行性研究分析報告
- 道路綠化養(yǎng)護投標方案(技術方案)
- 2023年內(nèi)蒙古呼倫貝爾市海拉爾區(qū)公開招聘公辦幼兒園控制數(shù)人員80名高頻筆試、歷年難易點考題(共500題含答案解析)模擬試卷
評論
0/150
提交評論