【文章內(nèi)容簡(jiǎn)介】
是不能驅(qū)動(dòng)蜂鳴器的,必須使用集晶體管放大電路。為了使單片機(jī)消耗的功率更小,故而采用 PNP 型晶體管 A1015。系統(tǒng)的輸入模塊采用中斷掃描的4 4 矩陣鍵盤,相比定時(shí)掃描方式,提高了MCU 的使用效率。第三章系統(tǒng)軟件設(shè)計(jì)在系統(tǒng)軟件設(shè)計(jì)中,充分考慮了與硬件電路有機(jī)結(jié)合,利用 AT89S52 單片機(jī)以及溫濕度傳感器 DHT11 許多優(yōu)異的特性實(shí)現(xiàn)對(duì)溫度和濕度的高精度測(cè)量。系統(tǒng)軟件采用模塊化設(shè)計(jì),在主程序下分成若干彼此獨(dú)立的功能模塊,如溫濕度數(shù)據(jù)采集、液晶顯示、鍵盤輸入、串口通訊模塊等。系統(tǒng)單片機(jī)代碼采用 C 語言編寫,以 Keil uVision3 為開發(fā)環(huán)境。系統(tǒng)程序主要由主程序、溫濕度采集子程序、鍵盤掃描子程序、液晶顯示子程序、報(bào)警子程序、串口發(fā)送和接收子程序等部分組成。其中,系統(tǒng)的主程序設(shè)計(jì)主要完成系統(tǒng)初始化、中斷優(yōu)先級(jí)設(shè)定以及判斷調(diào)用各模塊程序,即主要實(shí)現(xiàn)各模塊程序的鏈接。設(shè)計(jì)時(shí)只需對(duì)溫度/濕度進(jìn)行相應(yīng)的采集處理后,即可讓液晶實(shí)時(shí)顯示當(dāng)前的溫度與濕度值。而蜂鳴報(bào)警只需接上單片機(jī)的I/O口,并對(duì)其接口線進(jìn)行編程即可完成。整個(gè)控制系統(tǒng)軟件設(shè)計(jì)采用鍵盤控制方式。 主程序設(shè)計(jì)倉庫溫、濕度測(cè)控系統(tǒng)軟件設(shè)計(jì)主要由系統(tǒng)初始化、溫濕度數(shù)據(jù)采集、液晶顯示、鍵盤掃描處理、數(shù)據(jù)通信等幾部分組成。程序設(shè)計(jì)思想:首先要對(duì)系統(tǒng)進(jìn)行初始化,主要完成對(duì)單片機(jī)各功能部件初始狀態(tài)的配置。然后通過鍵盤處理模塊對(duì)現(xiàn)場(chǎng)控制信號(hào)進(jìn)行設(shè)定,設(shè)置溫、濕度的上限與下限,即報(bào)警范圍;同時(shí),鍵盤處理模塊還可以完成特殊情況下強(qiáng)制執(zhí)行信號(hào)的操作,如復(fù)位、開/關(guān)報(bào)警等。接下來通過溫濕度傳感器數(shù)據(jù)采集模塊完成對(duì)環(huán)境溫、濕度的實(shí)時(shí)數(shù)據(jù)采集及相關(guān)處理。最后通過液晶顯示屏顯示現(xiàn)場(chǎng)溫、濕度參數(shù),從而實(shí)現(xiàn)了對(duì)溫、濕度參數(shù)的實(shí)時(shí)顯示。其中,通過單片機(jī)對(duì)現(xiàn)場(chǎng)檢測(cè)到的溫、濕度實(shí)時(shí)參數(shù)與所設(shè)定的溫、濕度控制參數(shù)進(jìn)行比較,若發(fā)現(xiàn)現(xiàn)場(chǎng)監(jiān)測(cè)值超出所設(shè)定范圍,則蜂鳴器發(fā)出報(bào)警提示。此外,數(shù)據(jù)通信完成溫、濕度檢測(cè)系統(tǒng)與上位PC機(jī)之間的協(xié)議化通信,以便上位PC機(jī)能夠定時(shí)讀取測(cè)控系統(tǒng)的溫、濕度參數(shù)。系統(tǒng)程序流程圖如圖41所示:N Y開始系統(tǒng)初始化設(shè)定報(bào)警范圍鍵盤掃描處理溫、濕度數(shù)據(jù)采集顯示現(xiàn)場(chǎng)溫濕度參數(shù)溫度、濕度是否超出范圍報(bào)警 while 循環(huán)讀取溫、濕度控制參數(shù)發(fā)送溫度、濕度到上位機(jī)圖41 倉庫溫濕度檢測(cè)系統(tǒng)程序流程圖 溫濕度采集子程序設(shè)計(jì)本設(shè)計(jì)中溫濕度檢測(cè)模塊采用數(shù)字溫濕度傳感器 DHT11,當(dāng)用戶MCU發(fā)送一次開始信號(hào)后,DHT11 從低功耗模式轉(zhuǎn)換到高速模式,等待主機(jī)開始信號(hào)結(jié)束后,DHT11 發(fā)送響應(yīng)信號(hào),送出40 bit 的數(shù)據(jù),并觸發(fā)一次信號(hào)采集,用戶可選擇讀取部分?jǐn)?shù)據(jù)。該模式下,DHT11 接收到開始信號(hào)觸發(fā)一次溫濕度采集,如果沒有接收到主機(jī)發(fā)送開始信號(hào),DHT11 不會(huì)主動(dòng)進(jìn)行溫濕度采集,采集數(shù)據(jù)后轉(zhuǎn)換到低速模式。DHT11工作過程如下:總線空閑狀態(tài)為高電平,單片機(jī)把總線拉低等待DHT11響應(yīng),單片機(jī)把總線拉低必須大于18毫秒,保證DHT11能檢測(cè)到起始信號(hào)。DHT11接收到單片機(jī)的開始信號(hào)后,等待單片機(jī)開始信號(hào)結(jié)束,然后發(fā)送80us低電平響應(yīng)信號(hào)。主機(jī)發(fā)送開始信號(hào)結(jié)束后,延時(shí)等待2040us, 然后讀取DHT11的響應(yīng)信號(hào),單片機(jī)機(jī)發(fā)送開始信號(hào)后,可以切換到輸入模式或者輸出高電平, 總線由上拉電阻拉高。當(dāng)總線為低電平時(shí),說明DHT11發(fā)送響應(yīng)信號(hào)。DHT11發(fā)送響應(yīng)信號(hào)后,再把總線拉高80us,準(zhǔn)備發(fā)送數(shù)據(jù),每一bit數(shù)據(jù)都以 50us 低電平時(shí)隙開始,高電平的長(zhǎng)短決定了數(shù)據(jù)位是0還是1。如果讀取響應(yīng)信號(hào)為高電平,則DHT11沒有響應(yīng),請(qǐng)檢查線路是否連接正常。當(dāng)最后一bit數(shù)據(jù)傳送完畢后,DHT11拉低總線50us,隨后總線由上拉電阻拉高進(jìn)入空閑狀態(tài)。溫濕度采集子程序見附錄五。 液晶顯示子程序設(shè)計(jì)本設(shè)計(jì)中采用標(biāo)準(zhǔn)的 1602 液晶顯示屏。1602 液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了192種字符(160個(gè)57點(diǎn)陣字符和32個(gè)510點(diǎn)陣字符),這些字符包括阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼。本模塊字符在LCD顯示屏上的顯示位置與該字符的字符代碼在顯示緩沖區(qū)DDRAM內(nèi)的存儲(chǔ)地址一一對(duì)應(yīng)。液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,即告訴模塊在哪個(gè)位置顯示字符。1602液晶顯示流程圖如下圖所示:NNY入口對(duì)1602初始化,寫入顯示命令延時(shí)檢測(cè)忙信號(hào)STA7=0?獲得顯示RAM地址延時(shí)寫入相應(yīng)數(shù)據(jù)數(shù)據(jù)顯示完畢?返回主程序Y圖42 液晶顯示流程圖液晶顯示子程序見附錄六。 鍵盤掃描軟件設(shè)計(jì)在單片機(jī)應(yīng)用系統(tǒng)中,掃描鍵盤只是 CPU 的工作任務(wù)之一。在實(shí)際應(yīng)用中,要想做到既能及時(shí)響應(yīng)鍵操作,又不過多地占用 CPU 時(shí)間,就要根據(jù)應(yīng)用系統(tǒng)中 CPU 的忙閑情況,選擇好鍵盤的工作方式。鍵盤的工作方式一般有編程掃描方式和中斷掃描方式兩種,由于本設(shè)計(jì)中可以利用 CPU 在完成其他工作的空余,調(diào)用鍵盤掃描子程序,來響應(yīng)鍵輸入要求,因此可以選用編程掃描方式。 鍵盤掃描功能本設(shè)計(jì)中鍵盤掃描程序具備下述四個(gè)功能:(1)判別鍵盤上有無鍵按下。其方法為:掃描口輸出全掃描字“0”(即各列均為低電平),讀各行的狀態(tài),若全為“1”,則鍵盤無鍵按下,若不全為“1”,則有鍵按下。(2)去除鍵的抖動(dòng)影響。其方法為:判別到有鍵按下后,軟件延時(shí)一段時(shí)間(本設(shè)計(jì)為10ms)后,在判斷鍵盤狀態(tài),如果仍有鍵按下狀態(tài),則認(rèn)為有一個(gè)確定的鍵被按下,否則按鍵抖動(dòng)處理。(3)求按鍵位置。根據(jù)前面介紹的鍵掃描方法,逐行逐列進(jìn)行掃描,最后確定按下鍵的鍵號(hào)。確定鍵號(hào)的方法為:閉合鍵的鍵號(hào)處于低電平的行首鍵號(hào)加上處于低電平的列號(hào)。此外,閉合鍵的鍵號(hào)也可以用計(jì)算的方法獲得,計(jì)算公式為:處于低電平的行號(hào)4+低電平的列號(hào)。(4)判別按鍵是否釋放。鍵閉合一次僅進(jìn)行一次鍵功能操作,等鍵釋放以后再將鍵值送入累加器 A 中,然后執(zhí)行鍵功能操作。 鍵盤掃描工作原理鍵盤中行線通過上拉電阻接+5V,平時(shí)無按鍵動(dòng)作時(shí),行線處于高電平狀態(tài),而當(dāng)有按鍵按下時(shí),則對(duì)應(yīng)的行線與列線短接,行線電平狀態(tài)由與此行線相連的列線電平?jīng)Q定。本設(shè)計(jì)中對(duì)鍵盤的掃描方式為行掃描,即將行線接到單片機(jī)的輸入口線,列線接到單片機(jī)的輸出口線,在單片機(jī)的控制下,即可判別鍵盤中究竟是哪一個(gè)按鍵被按下。其方法是:先令第一列列線為低電平(0),其余3根列線為高電平,讀行線狀態(tài)。如果第4行都為高電平,則第一列沒有鍵閉合;如果讀出的行線狀態(tài)不全為高電平,則為低電平的行線與第一列相交的鍵處于閉合狀態(tài)。如果第一列沒有鍵閉合,接著使第二列為低電平,其余列線為高電平。用同樣的方法檢查第二列上有無鍵閉合,依此類推,最后使第四列為低電平,其余列為高電平,檢查第四列有無鍵閉合。 鍵盤掃描流程圖判斷是否有鍵按下?NYNY開始掃描鍵盤延時(shí)10 ms判斷是否真的有鍵按下?判斷是哪一個(gè)鍵?啟動(dòng)系統(tǒng)工作圖43 鍵盤掃描流程圖鍵盤掃描子程序見附錄七。 串行通信模塊本設(shè)計(jì)采用異步串行通信方式,其優(yōu)點(diǎn)是只需一對(duì)傳輸線,占用硬件資源少,從而降低了傳輸成本。異步串行通信具有異步和串行兩個(gè)特點(diǎn)。所謂串行,是指發(fā)送方和接收方之間數(shù)據(jù)信息是在單根數(shù)據(jù)線上每次傳送一個(gè)二進(jìn)制位。所謂異步,是指同一數(shù)據(jù)字符內(nèi)的定時(shí)和順序是嚴(yán)格的,而相鄰兩個(gè)數(shù)據(jù)字符之間的停頓時(shí)間可以長(zhǎng)短不一。為了實(shí)現(xiàn)數(shù)據(jù)的異步發(fā)送和接收,收發(fā)雙方必須遵守某種通信協(xié)議,這類通信協(xié)議的一個(gè)特點(diǎn)就是以幀作為數(shù)據(jù)字符的傳送單位。幀由如下四個(gè)有序的部分組成:(1)起始位:因?yàn)槠鹗嘉豢偸且?guī)定為 0,而在無傳輸時(shí),通訊線一直處于 1 狀態(tài),所以起始位使接收方感知一幀的開始,從而保證在一個(gè)幀的傳輸過程中收發(fā)雙方同步。(2)數(shù)據(jù)位:數(shù)據(jù)位表示數(shù)據(jù)字符自身。一般數(shù)據(jù)位由七個(gè)或八位二進(jìn)制組成。(3)奇偶校驗(yàn)位:接收方可依據(jù)奇偶校驗(yàn)位判斷接收是否正確,可以使用奇校驗(yàn),也可以使用偶校驗(yàn)。(4)停止位:停止位可保證在兩個(gè)幀存在間隔。因?yàn)樗偸且?guī)定1,與無傳輸時(shí)通信狀態(tài)一致,所以在多個(gè)幀連續(xù)傳輸?shù)倪^程中也能識(shí)別出起始位。一般停止位為一位或兩位。串口發(fā)送和接收子程序功能為:完成下位機(jī)和上位機(jī)的通信。單片機(jī)讀取的溫度和濕度值通過發(fā)送子程序發(fā)送給上位機(jī)并等待命令,收到命令后再繼續(xù)進(jìn)行測(cè)量。接收子程序通過接收上位機(jī)傳輸?shù)拿钸M(jìn)行系統(tǒng)自檢、參數(shù)修正等。上位機(jī)的命令發(fā)送采用間隔 10ms 反復(fù)發(fā)送的方式,直到單片機(jī)將接收到的命令返回為止。若在1s內(nèi)單片機(jī)沒有響應(yīng),則設(shè)置超時(shí),系統(tǒng)復(fù)位單片機(jī)。 小結(jié)本系統(tǒng)的軟件設(shè)計(jì)采用了 C 語言編程,只需對(duì)溫度/濕度進(jìn)行相應(yīng)的采集處理后,即可讓液晶實(shí)時(shí)顯示當(dāng)前的溫度與濕度值。報(bào)警模塊只需接上單片機(jī)的I/ O 口,并對(duì)其接口線進(jìn)行編程方可完成。本設(shè)計(jì)在焊接好電路硬件的基礎(chǔ)上,通過 ISP 下載線將軟件代碼下載至 AT89S52 單片機(jī)中完成系統(tǒng)集成。由于采用了 AT89S52 單片機(jī),性能可靠、電路簡(jiǎn)單,系統(tǒng)中還可充分利用 AT89S52 中先進(jìn)的軟件硬件資源,便于軟件系統(tǒng)的升級(jí)。第四章 結(jié)束語隨著通信、計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)據(jù)庫技術(shù)的發(fā)展,倉庫的日常管理工作正朝著信息化、自動(dòng)化的方向發(fā)展?;趩纹瑱C(jī)技術(shù)的倉庫測(cè)控系統(tǒng)已成自動(dòng)控制領(lǐng)域的重要應(yīng)用之一,對(duì)這個(gè)方向的研究具有重要的理論意義和現(xiàn)實(shí)意義。本文設(shè)計(jì)的倉庫溫、濕度測(cè)控系統(tǒng)采用AT89S52單片機(jī)為測(cè)控核心,以數(shù)字式溫度傳感器DHT11為溫、濕度數(shù)據(jù)采集器件,通過PC機(jī)作為人機(jī)接口,實(shí)現(xiàn)了數(shù)據(jù)采集與測(cè)控指令參數(shù)的設(shè)置。顯示部分已標(biāo)準(zhǔn)的1602液晶為顯示屏,具有顯示質(zhì)量高、體積小、功耗低等優(yōu)點(diǎn)。本系統(tǒng)整體設(shè)計(jì)具有界面友好、控制靈活、硬件系統(tǒng)集成度高、電路簡(jiǎn)單、功能強(qiáng)、性能可靠、成本低等特點(diǎn)。本論文從倉庫實(shí)際出發(fā)設(shè)計(jì)了一套溫、濕度測(cè)控系統(tǒng),實(shí)現(xiàn)了倉庫管理的規(guī)范化和自動(dòng)化,這正是順應(yīng)了信息化發(fā)展的大趨勢(shì),是計(jì)算機(jī)技術(shù)在自動(dòng)控制領(lǐng)域的應(yīng)用,它將給倉庫辦公信息化工作提供一個(gè)很好的解決方案,成為倉庫日常管理的最佳輔助方式之一。本次畢業(yè)設(shè)計(jì)給我的感受很深刻,使我第一次系統(tǒng)全面的回顧了大學(xué)三年所有的課程:模擬電路、數(shù)字電路、編程等等。從中我還體會(huì)到了所學(xué)理論知識(shí)的重要性:知識(shí)掌握得越多,設(shè)計(jì)得就更全面、更順利、更好。再有學(xué)會(huì)了怎樣查閱資料和利用工具書。由于一個(gè)人不可能什么都學(xué)過,什么都懂,更加不可能一學(xué)就通,因此,當(dāng)你在設(shè)計(jì)過程中需要用一些不曾學(xué)過的東西時(shí),就要去有針對(duì)性地查找資料。在設(shè)計(jì)過程中,通過大量的查閱資料,認(rèn)真研究教材,對(duì)單片機(jī)有了更為深刻的理解,在設(shè)計(jì)軟件時(shí),須仔細(xì)的分析硬件電路,畫出程序流程圖,按著各部分模塊編寫程序。畢業(yè)設(shè)計(jì)培養(yǎng)了嚴(yán)肅認(rèn)真和實(shí)事求是的科學(xué)態(tài)度和吃苦耐勞的精神以及嚴(yán)謹(jǐn)?shù)淖黠L(fēng),提高了交流溝通和團(tuán)體協(xié)作能力。這些對(duì)我以后的工作都非常有幫助的。參考文獻(xiàn)[1]劉志強(qiáng),羅慶生.一種智能化溫度檢測(cè)系統(tǒng)的設(shè)計(jì)[J].中國(guó)測(cè)試技術(shù),2003,29(3):9598[2]劉少強(qiáng).精密鉑電阻測(cè)溫方法[J].傳感器技術(shù),1999,l18(2):4144[3]陳煥生.溫度測(cè)試技術(shù)及儀表[M].北京:水利電力出版社,1985,2628[4]高光天.傳感器與信號(hào)調(diào)理器件應(yīng)用技術(shù)[M].北京:科學(xué)技術(shù)出版社,2002,8485 [5]鐘麗.精密量桿檢定中溫度補(bǔ)償技術(shù)的研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2002[6]丁英麗.基于光纖傳感器的智能溫檢測(cè)統(tǒng)的設(shè)計(jì)[J].計(jì)量與測(cè)試術(shù),2003,30(2):7478[7] 陽成軍.用單總線器件組建溫濕度測(cè)控系統(tǒng)硬件設(shè)計(jì)[J].傳感器世界2004(2):3839[8]秦永和.濕度傳感器測(cè)試系統(tǒng)[D].哈爾濱:哈爾濱工程大學(xué),2002[9]王魁漢.溫度檢測(cè)技術(shù)現(xiàn)狀與展望(上)[J],基礎(chǔ)自動(dòng)化,1997,62(3):l3[10]孫良彥.國(guó)外濕度傳感器發(fā)展動(dòng)態(tài)[J],傳感器技術(shù),1996,38(5):23[11]張毅剛,彭喜元.單片機(jī)原理與應(yīng)用設(shè)計(jì)[M] .北京:電子工業(yè)出版社,2008,3639[12]鄭爭(zhēng)兵.基于單片機(jī)與AD590 的溫度測(cè)量報(bào)警系統(tǒng)[J].國(guó)外電子測(cè)量技術(shù),2009 ,27 (1):2728 [13]石東海.單片機(jī)數(shù)據(jù)通信技術(shù)從入門到精通[M].西安:西安科技大學(xué)出版社,2003,100104致 謝此次畢業(yè)設(shè)計(jì),我遇到很多問題,通過向老師求教、和同學(xué)討論讓我知道真正完成一項(xiàng)設(shè)計(jì)是不容易的,在鞏固專業(yè)知識(shí)的同時(shí)也讓我學(xué)到了堅(jiān)持和努力,在這里我要謝謝黃智宇老師的悉心指導(dǎo),幫助解決畢業(yè)設(shè)計(jì)中遇到的許多問題,還不斷向我們傳授分析問題和解決問題的辦法,并指出了正確的努力方向,使我在畢業(yè)設(shè)計(jì)過程中少走很多彎路。從他身上學(xué)到了很多東西,他認(rèn)真負(fù)責(zé)的工作態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和深厚的理論水平都使我受益非淺。在此表示深深的敬意與感謝。并對(duì)多年來教導(dǎo)關(guān)心過我的老師表示深深的謝意和敬意。論文附件一、英文原文DescriptionThe at89s52 is a lowpower, highperformance CMOS 8bit microputer with 4K bytes of Flash Programmable and Erasable Read Only Memory (PEROM) and 128 bytes RAM. The device is manufactured using Atmel’s high density nonvolatile memory technology and is patible with the industry standard MCS51? instruction set and pi