基于單片機(jī)的生產(chǎn)車間環(huán)境測(cè)試儀的設(shè)計(jì)畢業(yè)設(shè)計(jì)_第1頁(yè)
基于單片機(jī)的生產(chǎn)車間環(huán)境測(cè)試儀的設(shè)計(jì)畢業(yè)設(shè)計(jì)_第2頁(yè)
基于單片機(jī)的生產(chǎn)車間環(huán)境測(cè)試儀的設(shè)計(jì)畢業(yè)設(shè)計(jì)_第3頁(yè)
基于單片機(jī)的生產(chǎn)車間環(huán)境測(cè)試儀的設(shè)計(jì)畢業(yè)設(shè)計(jì)_第4頁(yè)
基于單片機(jī)的生產(chǎn)車間環(huán)境測(cè)試儀的設(shè)計(jì)畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 2014屆本科生畢業(yè)設(shè)計(jì) 分類號(hào):tp311.52題 目: 基于單片機(jī)的生產(chǎn)車間環(huán)境測(cè)試儀的設(shè)計(jì)作 者 姓 名: 陳遙 學(xué) 號(hào): 2010103124 學(xué) 院: 機(jī)械與電子工程學(xué)院 專 業(yè): 自動(dòng)化 指導(dǎo)教師姓名: 張翠俠 陳秀萍 指導(dǎo)教師職稱: 講師 工程師 2014年5月9日摘 要 本設(shè)計(jì)是利用單片機(jī)實(shí)現(xiàn)溫度、濕度等生產(chǎn)環(huán)境的測(cè)量與控制。系統(tǒng)采用集溫濕度傳感器與a/d轉(zhuǎn)換器為一體的sht11芯片,通過(guò)單片機(jī)處理進(jìn)行顯示,其它模塊包括了實(shí)時(shí)時(shí)鐘/日期產(chǎn)生電路和超限報(bào)警處理電路,對(duì)所測(cè)量的值進(jìn)行實(shí)時(shí)顯示和報(bào)警處理。本文介紹了基于atmel公司的at89c51系列單片機(jī)的溫濕度實(shí)時(shí)測(cè)量與控制系

2、統(tǒng)和顯示系統(tǒng)的設(shè)計(jì),包括介紹了硬件結(jié)構(gòu)原理,并分析了相應(yīng)的軟件的設(shè)計(jì)及其要點(diǎn),包括測(cè)試精度高等眾多的優(yōu)點(diǎn)。關(guān)鍵詞: at89c51; sht11; lcd; ds1302; 溫濕度控制abstract this design is that using single chip microcomputer to realize the temperature and humidity measurement and control of the production environment.the system adopts sht11 chip which set temperature an

3、d humidity sensor and a/d converter as a whole,and display through the single-chip processing.other modules include real-time clock /date generation circuit and alarm circuit,and they are real time display and alarm processing the measured value.this paper introduces the design of temperature and hu

4、midity measurement and control system and display system that based on the at89c51 series mcu of atmel company.the paper introduces the hardware structure principle and analysis of the design and key points of corresponding software,including many advantages such as high accuracy in test.key words:

5、at89c51; sht11; lcd; ds1302; temperature and humidity control目 錄緒 論11 整體方案設(shè)計(jì)22 硬件設(shè)計(jì)部分32.1 芯片介紹32.1.1溫濕度傳感器32.1.2 單片機(jī)32.1.3 ds130242.1.4 lcd160452.2模塊功能介紹52.2.1 復(fù)位電路部分52.2.2 傳感器電路部分62.2.3 時(shí)鐘電路部分72.2.4 顯示電路部分72.2.5 超限處理電路部分82.3 整體電路圖93 軟件設(shè)計(jì)104 仿真軟件和仿真測(cè)試114.1 proteus簡(jiǎn)介114.2 keil c51編譯器簡(jiǎn)介114.3 仿真測(cè)試12結(jié) 論

6、14參考文獻(xiàn)15附 錄16致 謝32緒 論近年來(lái)我國(guó)工業(yè)生產(chǎn)一直都在飛速發(fā)展,隨著工業(yè)生產(chǎn)水平的提高,對(duì)生產(chǎn)環(huán)境的要求越來(lái)越苛刻,主要體現(xiàn)在生產(chǎn)環(huán)境的溫度和濕度的控制上,例如:面粉加工場(chǎng)、電子產(chǎn)品裝配車間、特殊材料加工工場(chǎng)等場(chǎng)所,都必須嚴(yán)格控制環(huán)境的溫度及相對(duì)濕度,使其保持在一定的范圍內(nèi)。從安全生產(chǎn)的角度來(lái)說(shuō),對(duì)生產(chǎn)環(huán)境進(jìn)行監(jiān)測(cè)也是必要的,在危險(xiǎn)發(fā)生前可以提前預(yù)警,及時(shí)發(fā)現(xiàn)并且排除危險(xiǎn),確保工作人員的人生安全,也避免了工業(yè)財(cái)產(chǎn)的損失?,F(xiàn)代溫濕度傳感器測(cè)量技術(shù)主要以數(shù)據(jù)采集為依據(jù),主要類型包括:虛擬儀器、智能儀器、數(shù)字式儀器等等。伴隨電子科學(xué)技術(shù)的進(jìn)一步發(fā)展,數(shù)據(jù)采集系統(tǒng)也發(fā)生了日新月異的變化,

7、其整體的性能、實(shí)用性方面都有所改進(jìn)。因此,依托于數(shù)據(jù)采集結(jié)構(gòu)而發(fā)展的溫濕度傳感器測(cè)量系統(tǒng)在實(shí)際應(yīng)用中也發(fā)揮這越來(lái)越重要的作用。目前,許多外國(guó)大型企業(yè)都很重視傳感器的研發(fā)工作,例如,日本的figaro公司、芬蘭的vaisala公司等,都致力于傳感器的發(fā)展和完善,以保障其在整個(gè)銷售市場(chǎng)的競(jìng)爭(zhēng)力。在九十年代,先后出現(xiàn)了集成溫度濕度測(cè)量套件和應(yīng)用于濕度傳感器的測(cè)試系統(tǒng),這個(gè)新技術(shù)的產(chǎn)生都大大刺激了傳感器的進(jìn)一步發(fā)展。與此同時(shí),國(guó)內(nèi)許多機(jī)構(gòu)也在傳感器測(cè)試裝置的研發(fā)上不斷探索、研發(fā)。例如通過(guò)采用傳統(tǒng)電子儀器進(jìn)行設(shè)計(jì)研發(fā)而成的多種動(dòng)態(tài)測(cè)試系統(tǒng)、動(dòng)進(jìn)樣裝置的氣體傳感器智能測(cè)試系統(tǒng)等等,這些成績(jī)都體現(xiàn)了我國(guó)在傳

8、感器領(lǐng)域取得的成就。最近幾年,國(guó)內(nèi)外溫濕度傳感器測(cè)量系統(tǒng)正向著集成化、智能化發(fā)展,隨著科研人員的不斷努力,該類型系統(tǒng)取得的巨大的成就。滿足各類工業(yè)生產(chǎn)對(duì)于環(huán)境溫濕度的不同需求,可以隨時(shí)進(jìn)行調(diào)節(jié),對(duì)于不利情況能夠及時(shí)的作出顯示,并能夠采取相應(yīng)的措施提醒用戶進(jìn)行調(diào)整,以達(dá)到最適宜的溫濕度。在此的基礎(chǔ)上,本次研究主要是為了設(shè)計(jì)一款結(jié)構(gòu)簡(jiǎn)單、測(cè)量精度高、工作穩(wěn)定可靠的基于單片機(jī)的生產(chǎn)環(huán)境溫濕度測(cè)試儀??梢杂捎脩舾鶕?jù)環(huán)境要求設(shè)定系統(tǒng)的溫濕度閾值;系統(tǒng)實(shí)時(shí)地測(cè)量顯示環(huán)境的溫濕度值,實(shí)現(xiàn)溫濕度自動(dòng)控制,使其在較寬的溫度范圍內(nèi)具有較高的測(cè)試精度;同時(shí)還可以根據(jù)用戶設(shè)定報(bào)警閾值報(bào)警,一旦發(fā)現(xiàn)環(huán)境溫濕度超限,立即

9、報(bào)警。1 整體方案設(shè)計(jì)本次設(shè)計(jì)的核心部件單片機(jī)使用的是最常用的at89c51,信號(hào)采集及處理部分由sht11構(gòu)成,進(jìn)入單片機(jī)后經(jīng)處理后通過(guò)lcd1604顯示溫濕度,信號(hào)顯示采用的液晶屏為5x7點(diǎn)陣,一行可顯示16字,四行。其他組成部分為實(shí)時(shí)時(shí)鐘發(fā)生電路,產(chǎn)生同現(xiàn)在相同的時(shí)間和具體日期,通過(guò)lcd1604液晶模塊顯示。在軟件設(shè)計(jì)部分有對(duì)測(cè)量的溫濕度進(jìn)行上下值的設(shè)定,當(dāng)測(cè)量超過(guò)限定值,通過(guò)超限報(bào)警處理電路對(duì)其進(jìn)行處理分別顯示不同的二極管燈亮,蜂鳴器產(chǎn)生長(zhǎng)鳴。 硬件中包括一個(gè)開(kāi)關(guān),為復(fù)位開(kāi)關(guān)。開(kāi)機(jī)后,所有器件初始化,ds1302 產(chǎn)生實(shí)時(shí)時(shí)間和日期,溫濕度傳感器sht11開(kāi)始進(jìn)行溫濕度測(cè)量和計(jì)算,最

10、后通過(guò)lcd液晶顯示器顯示結(jié)果。在測(cè)量結(jié)果中有超過(guò)設(shè)定的溫濕度上下限的,通過(guò)超限模塊作出反應(yīng)。 其他是一些附件,比如復(fù)位、晶振電路,整體電路框圖如圖1。at89c51ds1302 超限模塊sht11lcd1604信號(hào)顯示晶振電路復(fù)位電路 電源圖1 整體電路框圖 2 硬件設(shè)計(jì)部分 2.1 芯片介紹 2.1.1溫濕度傳感器 (1)sht11簡(jiǎn)介 sht11 是瑞士scnsirion 公司推出的一款數(shù)字溫濕度傳感器芯片。溫濕度傳感器sht11集溫度傳感器和濕度傳感器于一體,因此采用sht11 進(jìn)行溫濕度實(shí)時(shí)監(jiān)測(cè)的系統(tǒng)具有精度高、成本低、體積小、接口簡(jiǎn)單等優(yōu)點(diǎn)。 (2)sht11的引腳功能 sht11

11、溫濕度傳感器采用smd(lcc)表面貼片封裝形式,接口非常簡(jiǎn)單,引腳名稱及排列順序如圖2所示。圖2 sht11引腳圖 各引腳的功能如下: >> 腳1和4-信號(hào)地和電源,其工作電壓范圍是2.45.5 v; >> 腳2和腳3-二線串行數(shù)字接口,其中da-ta為數(shù)據(jù)線,sck為時(shí)鐘線; >> 腳58-未連接。2.1.2 單片機(jī)89c51 是一種帶4k 字節(jié)可編 程可 擦除 只讀 存儲(chǔ) 器的低電壓,高性能cmos8位微處理器,俗稱單片機(jī)。89c2051是一種帶2k字節(jié)可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用atmel高

12、密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲(chǔ)器組合在單個(gè)芯片中,atmel的89c51是一種高效微控制器,89c2051是它的一種精簡(jiǎn)版本。89c51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。它的引腳如圖3所示。圖3 at89c51引腳圖2.1.3 ds1302ds1302是dallas公司推出的涓流充電時(shí)鐘芯片,內(nèi)含有一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31字節(jié)靜態(tài)ram,通過(guò)簡(jiǎn)單的串行接口與單片機(jī)進(jìn)行通信。實(shí)時(shí)時(shí)鐘/日歷電路提供秒分時(shí)日、日期月年的信息。每月的天數(shù)和閏年的天數(shù)可自動(dòng)調(diào)整,時(shí)鐘操作可通過(guò)am/pm指示決定采用2

13、4或12小時(shí)格式。ds1302與單片機(jī)之間能簡(jiǎn)單地采用同步串行的方式進(jìn)行通信僅需用到三個(gè)口線:res復(fù)位、i/o數(shù)據(jù)線、 sclk串行時(shí)鐘。時(shí)鐘/ram的讀/寫數(shù)據(jù)以一個(gè)字節(jié)或多達(dá)31個(gè)字節(jié)的字符組方式通信,ds1302工作時(shí)功耗很低,保持?jǐn)?shù)據(jù)和時(shí)鐘信息時(shí)功率小于1mw,引腳如圖4所示。圖4 ds1302引腳圖2.1.4 lcd1604(1)字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號(hào)等點(diǎn)陣式lcd,目前常用16*1,16*2,16*4和20*2行等的模塊。(2)引腳功能說(shuō)明 如表1所示。表1 引腳接口說(shuō)明表1604lcd采用標(biāo)準(zhǔn)16腳接口,各引腳接口說(shuō)明如表 編號(hào)符號(hào)引腳說(shuō)明1vss

14、地2vdd正極3v0液晶顯示偏壓4rs數(shù)據(jù)/命令選擇5r/w讀/寫選擇6e讀寫信號(hào)7d0數(shù)據(jù)8d1數(shù)據(jù)9d2數(shù)據(jù)10d3數(shù)據(jù)11d4數(shù)據(jù)12d5數(shù)據(jù)13d6數(shù)據(jù)14d7數(shù)據(jù)15、16空腳1604液晶模塊的讀寫操作,屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。2.2模塊功能介紹 2.2.1 復(fù)位電路部分 這種復(fù)位電路的工作原理是:?jiǎn)纹瑱C(jī)的復(fù)位電路在剛接通電時(shí),剛開(kāi)始電容是沒(méi)有電的,電容內(nèi)的電阻很低,通電后,5v 的電通過(guò)電阻給電容進(jìn)行充電,電容兩端的電會(huì)由0v慢慢的升到4v左右(此時(shí)間很短一般小于0.3秒),rc構(gòu)成的微分電路在上電瞬間產(chǎn)生一個(gè)微分脈沖,其寬度大于兩個(gè)機(jī)器周期,89c51將復(fù)位。正

15、因?yàn)檫@樣,復(fù)位腳的電由低電位升到高電位,引起了內(nèi)部電路的復(fù)位工作,rst端電壓慢慢下降,降到一定電壓值以后,即為低電平,單片機(jī)開(kāi)始正常工作(這是單片機(jī)的上電復(fù)位,也叫初始化復(fù)位);當(dāng)按下復(fù)位鍵時(shí),電容兩端放電,電容又回到0v了,于是又進(jìn)行了一次復(fù)位工作(這是手動(dòng)復(fù)位原理)。圖5 手動(dòng)復(fù)位及晶振電路2.2.2 傳感器電路部分 此模塊是整個(gè)電路設(shè)計(jì)的信號(hào)采集及初步處理的模塊,由溫濕度傳感器芯片sht11構(gòu)成,主要的功能結(jié)構(gòu)在前面的芯片介紹中已有,這里不重新介紹。圖6 sht11傳感器電路2.2.3 時(shí)鐘電路部分 此模塊是系統(tǒng)時(shí)間的實(shí)時(shí)顯示而設(shè)計(jì)的,主要由芯片ds1302構(gòu)成,其中引腳rst、clk

16、、i/o分別接單片機(jī)p3.0、p3.1、p3.2口,屬于控制引腳。此模塊是產(chǎn)生實(shí)時(shí)的系統(tǒng)時(shí)間和日歷,能對(duì)某個(gè)確定環(huán)境的實(shí)時(shí)溫濕度控制起到一定的作用。芯片連接電路簡(jiǎn)單,時(shí)間日期準(zhǔn)確。圖7 實(shí)時(shí)時(shí)鐘電路2.2.4 顯示電路部分 此模塊是由lcd1604芯片組成的日期時(shí)間和實(shí)時(shí)溫濕度顯示的電路部分。lcd1604是一個(gè)四行每行16字的液晶顯示屏,d0-d7接p0口,rs、rw、e接p3.5、p3.6、p3.7起控制作用。圖8 lcd1604顯示及其連接電路2.2.5 超限處理電路部分 此部分電路是由5個(gè)發(fā)光二極管和一個(gè)蜂鳴報(bào)警器構(gòu)成,分別是d0、d1、d2、d4和d5,蜂鳴器接單片機(jī)的p1.0口,發(fā)

17、光二極管與單片機(jī)的連接部分如圖所示。d0、d1、d2、d4、d5 分別代表著發(fā)光、降溫、加熱、干燥和加濕,一旦傳感器測(cè)定的溫濕度超過(guò)設(shè)定的限額,就會(huì)產(chǎn)生不同的發(fā)光反應(yīng),起警示作用,同時(shí)蜂鳴報(bào)警器連續(xù)發(fā)出“滴” 的聲音。圖9 超限處理警示電路部分圖10 蜂鳴器電路2.3 整體電路圖圖11 整體電路圖3 軟件設(shè)計(jì)軟件設(shè)計(jì)是本次設(shè)計(jì)中不可缺少的環(huán)節(jié),貫穿了整個(gè)畢業(yè)設(shè)計(jì),是本次設(shè)計(jì)能夠完成的最重要的環(huán)節(jié)之一。軟件部分經(jīng)本人調(diào)試可以運(yùn)行,能夠正確顯示結(jié)果。具體模塊由一個(gè)c(xc.c)主函數(shù)文件和8個(gè)h文件構(gòu)成。 reg51.h(8051的相關(guān)參數(shù)初始化); absacc.h; intrins.h(偽本征

18、函數(shù)); math.h(數(shù)學(xué)公式函數(shù));lcd1604.h(1604液晶顯示函數(shù)); ds1302.h(實(shí)時(shí)時(shí)間/日期產(chǎn)生函數(shù));sht11.h(溫濕度采集計(jì)算函數(shù)); set_key.h;(限額報(bào)警函數(shù))。 根據(jù)溫濕度監(jiān)控系統(tǒng)功能,系統(tǒng)軟件流程圖如圖12所示。開(kāi)始單片機(jī)開(kāi)機(jī)初始化lcd初始化 ds1302初始化 sht11初始化ds1302運(yùn)行 確定時(shí)間/日期sht11運(yùn)行進(jìn)行溫濕度采集與測(cè)量lcd顯示實(shí)時(shí)溫濕度檢測(cè)溫濕度是否改變yn等待 圖12 主程序框圖 點(diǎn)擊運(yùn)行按鍵,仿真開(kāi)始運(yùn)行。首先單片機(jī)開(kāi)機(jī)初始化,然后lcd、ds1302、sht11初始化,喇叭發(fā)出一聲提示音,各個(gè)模塊開(kāi)始運(yùn)行,d

19、s1302運(yùn)行確定時(shí)間和日期,sht11運(yùn)行進(jìn)行溫濕度的采集和測(cè)量,最后lcd顯示日期時(shí)間以及溫濕度測(cè)量值;當(dāng)環(huán)境溫度濕度發(fā)生改變時(shí),lcd都會(huì)實(shí)時(shí)準(zhǔn)確顯示當(dāng)前溫濕度值。4 仿真軟件和仿真測(cè)試本設(shè)計(jì)用到了proteus和keil c51兩種軟件,兩者能完美的結(jié)合在一起,實(shí)現(xiàn)虛擬的實(shí)物效果,也就是仿真效果。 4.1 proteus簡(jiǎn)介 proteus軟件是來(lái)自英國(guó)labcenter electronics公司的eda工具軟件,proteus軟件有十多年的歷史,在全球廣泛使用,除了其具有和其它eda工具一樣的原理布圖、pcb自動(dòng)或人工布線及電路仿真的功能外,其革命性的功能是,他的電路仿真是互動(dòng)的,

20、針對(duì)微處理器的應(yīng)用,還可以直接在基于原理圖的虛擬原型上編程,并實(shí)現(xiàn)軟件源碼級(jí)的實(shí)時(shí)調(diào)試,如有顯示及輸出,還能看到運(yùn)行后輸入輸出的效果,配合系統(tǒng)配置的虛擬儀器如示波器、邏輯分析儀等。 其功能模塊:個(gè)易用而又功能強(qiáng)大的isis原理布圖工具;prospice混合模型spice仿真; ares pcb設(shè)計(jì)。 prospice 仿真器的一個(gè)擴(kuò)展proteus vsm:便于包括所有相關(guān)的器件的基于微處理器設(shè)計(jì)的協(xié)同仿真。此外,還可以結(jié)合微控制器軟件使用動(dòng)態(tài)的鍵盤,開(kāi)關(guān),按鈕,leds甚至lcd顯示cpu模型。 4.2 keil c51編譯器簡(jiǎn)介 keil c51標(biāo)準(zhǔn)c編譯器為8051微控制器的軟件開(kāi)發(fā)提供

21、了c語(yǔ)言環(huán)境,同時(shí)保留了匯編代碼高效,快速的特點(diǎn)。c51 編譯器的功能不斷增強(qiáng),使你可以更加貼近c(diǎn)pu本身,及其它的衍生產(chǎn)品。c51已被完全集成到uvision2的集成開(kāi)發(fā)環(huán)境中,這個(gè)集成開(kāi)發(fā)環(huán)境包含:編譯器,匯編 器,實(shí)時(shí)操作系統(tǒng),項(xiàng)目管理器,調(diào)試器。uvision2 ide可為它們提供單一而靈活的開(kāi)發(fā)環(huán)境。 工程(project)是由源文件、開(kāi)發(fā)工具選項(xiàng)以及編程說(shuō)明三部分組成的。一個(gè)單一的uvision2工程能夠產(chǎn)生一個(gè)或多個(gè)目標(biāo)程序。產(chǎn)生目標(biāo)程序的源文件構(gòu)成“組”。開(kāi)發(fā)工具選項(xiàng)可以對(duì)應(yīng)目標(biāo),組或單個(gè)文件。 uvision2包含一個(gè)器件數(shù)據(jù)庫(kù)(device database),可以自動(dòng)設(shè)置

22、匯編器、編譯器、連接定位器及調(diào)試器選項(xiàng),來(lái)滿足用戶充分利用特定微控制器的要求。此數(shù)據(jù)庫(kù)包含:片上存儲(chǔ)器和外圍設(shè)備的信息,擴(kuò)展數(shù)據(jù)指針(extra data pointer)或者加速器(math accelerator)的特性。uvision2可以為片外存儲(chǔ)器產(chǎn)生必要的連接選項(xiàng):確定起始地址和規(guī)模。 4.3 仿真測(cè)試整個(gè)軟件通過(guò)c語(yǔ)言編程,先在keil c51集成開(kāi)發(fā)環(huán)境下將編好的程序進(jìn)行編譯、調(diào)試,調(diào)試通過(guò)后會(huì)生成“*.hex”文件。運(yùn)行proteus模擬仿真軟件,打開(kāi)已繪制好的仿真電路原理圖,選中單片機(jī)at89c51,右鍵點(diǎn)擊at89c51,出現(xiàn)對(duì)應(yīng)的對(duì)話框,在program file中找到

23、編譯好的“*.hex”文件,然后點(diǎn)擊“ok”就可以進(jìn)行仿真了,仿真結(jié)果如圖13所示。圖13 仿真運(yùn)行效果lcd液晶顯示四行分別顯示“date:*”、“time:*”、“temper:*”、“humidi:*”,其中“*”為測(cè)定的數(shù)據(jù)。sht11顯示值為溫濕度測(cè)量所得的 模擬值,可以通過(guò)sht11上的按鍵調(diào)整模擬值,得到相應(yīng)的試驗(yàn)效果。圖14 sht11運(yùn)行效果本次試驗(yàn)溫度臨界值設(shè)定為20t80,濕度臨界值設(shè)定為30h90。如當(dāng)溫度在臨界值范圍,濕度大于臨界值時(shí),此時(shí)d1燈亮,喇叭發(fā)出警報(bào)聲,d4燈亮,提示車間過(guò)于潮濕,需要干燥。如圖15所示。圖15 仿真測(cè)量效果經(jīng)過(guò)一系列的仿真試驗(yàn),得到了七種

24、試驗(yàn)結(jié)果,如表2所示(注:表示燈點(diǎn)亮,×表示燈熄滅)。表2 仿真試驗(yàn)結(jié)果溫度范圍濕度范圍d1聲音d2降溫d3加熱d4干燥d5加濕120t8030h90×××××2h<30×××3h>90×××4t<2030h90×××5t>80×××6t<20h<30××7t>80h>90×× d1燈亮,喇叭發(fā)出警報(bào)聲,提醒人員過(guò)來(lái)檢查;d2燈亮

25、,表示車間環(huán)境過(guò)熱,需要降溫;d3燈亮,表示車間環(huán)境過(guò)冷,需要加熱;d4燈亮,表示車間環(huán)境過(guò)于潮濕,需要干燥;d5燈亮,表示車間環(huán)境過(guò)于干燥,需要加濕。結(jié) 論 該系統(tǒng)主要是基于at89c51單片機(jī)的的環(huán)境測(cè)試儀的設(shè)計(jì),所謂的環(huán)境測(cè)試主要是側(cè)重于對(duì)生產(chǎn)環(huán)境的溫度與濕度的測(cè)量,整體設(shè)計(jì)采用的是以高效單片機(jī)作為核心,以sht11作為主要的采集與測(cè)量系統(tǒng),集溫度傳感器和濕度傳感器于一體的設(shè)計(jì),其中它自帶的a/d轉(zhuǎn)換器,使得此溫濕度測(cè)試儀具有精度高、成本低、體積小、接口簡(jiǎn)單等優(yōu)點(diǎn),還具有良好抗干擾能力。加上優(yōu)化程序,使得本系統(tǒng)具有很高的實(shí)用性。 單片機(jī)的應(yīng)用如今已經(jīng)在工業(yè)、電子等方方面面展示出了它的優(yōu)越

26、性,利用單片機(jī)在設(shè)計(jì)電路逐漸成了趨勢(shì),它與外圍的簡(jiǎn)單電路再加上優(yōu)化程序就可以構(gòu)建任意的產(chǎn)品,使得本設(shè)計(jì)成為現(xiàn)實(shí)。隨著單片機(jī)的日益發(fā)展,它必將在未來(lái)顯示出更大的活力,為電子設(shè)計(jì)增加更多精彩。 在設(shè)計(jì)過(guò)程中,由于時(shí)間和本人能力的限制,設(shè)計(jì)中存在一些需要改進(jìn)和優(yōu)化的地方。測(cè)量精度有待進(jìn)一步提高,軟件設(shè)計(jì)也存在不合理之處,歡迎各位老師同仁批評(píng)指正。參考文獻(xiàn)1 苗新法. 便攜式環(huán)境測(cè)試儀電源電路設(shè)計(jì)j. 通信電源技術(shù), 2010 (3): 41-42.2 鄭文強(qiáng). 環(huán)境參數(shù)測(cè)試系統(tǒng)的數(shù)據(jù)傳輸技術(shù)研究d. 中北大學(xué), 2013.3 王世磊,文環(huán)明,韓冰,等. 便捷式煤礦井環(huán)境測(cè)試儀的設(shè)計(jì)j. 中國(guó)儀器儀表

27、, 2010 (6): 29-31.4 王靜,閆增峰,孫立新. 土遺址博物館室內(nèi)熱濕環(huán)境測(cè)試與分析j. 建筑科學(xué), 2010 (8): 27-31.5 王登甲,劉艷峰,王怡,等. 拉薩市住宅建筑冬季室內(nèi)熱環(huán)境測(cè)試評(píng)價(jià)j. 建筑科學(xué),2012,27(12):20-24. 6 張友德等. 單片微型機(jī)原理、應(yīng)用和實(shí)驗(yàn)m.電子工業(yè)出版社. 7 吳經(jīng)國(guó)等.單片機(jī)應(yīng)用技術(shù)m. 中國(guó)電力出版社. 8 李群芳.單片機(jī)微型計(jì)算機(jī)與接口技術(shù)m. 電子工業(yè)出版社.9 周立功.單片機(jī)實(shí)驗(yàn)與實(shí)踐m. 北京航空航天大學(xué)出版社. 10 xu yi - min .the design for stepping motor o

28、f scm control systemj. heilongjiang science and technology institute.2005.(1)附 錄參加課題情況:參與了宿州學(xué)院一般科研項(xiàng)目(批準(zhǔn)號(hào)2013yyb01):生產(chǎn)車間“碳足跡”監(jiān)測(cè)與控制源程序:main.h#include<reg51.h> #include<absacc.h> #include<intrins.h> #include<math.h> #include<lcd1604.h> #include<ds1302.h> #include<

29、sht11.h> #include<set_key.h> void delay1ms(unsigned int count) /延時(shí)函數(shù) unsigned int i,j; for(i=0;i<count;i+) for(j=0;j<120;j+); main() systemtime currenttime; /定義時(shí)間日期結(jié)構(gòu)體 sht_dat aa; /定義溫濕度測(cè)量處理結(jié)構(gòu)體 initial_ds1302(); /ds1302初始化*/ lcd_initial(); /lcd初始化 gotoxy(0,0); /lcd顯示函數(shù) print("dat

30、e:"); gotoxy(16,0); print("temper:"); gotoxy(0,1); print("time:"); gotoxy(16,1); print("humidi:"); while(1) convert_sht(&aa,temp); /溫度轉(zhuǎn)換 convert_sht(&aa,humi); /濕度轉(zhuǎn)換 caculation_sht(&aa); /溫度和濕度的補(bǔ)償 float_convert(&aa); /將浮點(diǎn)數(shù)轉(zhuǎn)換成整型,各個(gè)位的數(shù)分別保存 doing_temp(

31、&aa); /檢測(cè)溫度是否超限 doing_humi(&aa); /檢測(cè)濕度是否超限 ds1302_gettime(&currenttime); datetostr(&currenttime); timetostr(&currenttime); gotoxy(5,0); /第一行顯示日期 print(currenttime.datestring); gotoxy(23,0); /第三行顯示溫度 print(aa.num_temp); gotoxy(28,0); print(" "); gotoxy(5,1); /第二行顯示時(shí)間 pri

32、nt(currenttime.timestring); gotoxy(23,1); /第四行顯示濕度 print(aa.num_humi); gotoxy(28,1); print(" "); delay1ms(300); /延時(shí) ds1302.h #ifndef _real_timer_ds1302 #define _real_timer_ds1302 sbit ds1302_clk = p31; /實(shí)時(shí)時(shí)鐘時(shí)鐘線引腳 sbit ds1302_io = p32; /實(shí)時(shí)時(shí)鐘數(shù)據(jù)線引腳 sbit ds1302_rst = p30; /實(shí)時(shí)時(shí)鐘復(fù)位線引腳 sbit acc0

33、= acc0; sbit acc7 = acc7; typedef struct _systemtime_ unsigned char second; unsigned char minute; unsigned char hour; unsigned char day; unsigned char month; unsigned char year; unsigned char datestring9; unsigned char timestring9; systemtime; /定義的時(shí)間類型 #define am(x) x #define pm(x) (x+12) / 轉(zhuǎn)成24小時(shí)制

34、#define ds1302_second 0x80 #define ds1302_minute 0x82 #define ds1302_hour 0x84 #define ds1302_day 0x86 #define ds1302_month 0x88 #define ds1302_year 0x8c #define ds1302_ram(x) (0xc0+(x)*2) /用于計(jì)算 ds1302_ram 地址的宏 void ds1302inputbyte(unsigned char d) /實(shí)時(shí)時(shí)鐘寫入一字節(jié)(內(nèi)部函數(shù)) unsigned char i; acc = d; for(i=8;

35、 i>0; i-) ds1302_io = acc0; /相當(dāng)于匯編中的 rrc ds1302_clk = 1; ds1302_clk = 0; acc = acc >> 1; unsigned char ds1302outputbyte(void) /實(shí)時(shí)時(shí)鐘讀取一字節(jié)(內(nèi)部函數(shù)) unsigned char i; for(i=8; i>0; i-) acc = acc >>1; /相當(dāng)于匯編中的 rrc acc7 = ds1302_io; ds1302_clk = 1; ds1302_clk = 0; return(acc); void write130

36、2(unsigned char ucaddr, unsigned char ucda) ds1302_rst = 0; ds1302_clk = 0; ds1302_rst = 1; ds1302inputbyte(ucaddr); / 地址,命令 ds1302inputbyte(ucda); / 寫1byte數(shù)據(jù) ds1302_clk = 1; ds1302_rst = 0; unsigned char read1302(unsigned char ucaddr) /讀取ds1302某地址的數(shù)據(jù) unsigned char ucdata; ds1302_rst = 0; ds1302_clk

37、 = 0; ds1302_rst = 1; ds1302inputbyte(ucaddr|0x01); / 地址,命令 ucdata = ds1302outputbyte(); / 讀1byte數(shù)據(jù) ds1302_clk = 1; ds1302_rst = 0; return(ucdata); void ds1302_setprotect(bit flag) /是否寫保護(hù) if(flag) write1302(0x8e,0x10); else write1302(0x8e,0x00); void ds1302_settime(unsigned char address, unsigned ch

38、ar value) / 設(shè)置時(shí)間函數(shù) ds1302_setprotect(0); write1302(address, (value/10)<<4 | (value%10); void datetostr(systemtime *time) time->datestring0 = time->year/10 + '0' time->datestring1 = time->year%10 + '0' time->datestring2 = '-' time->datestring3 = time-&g

39、t;month/10 + '0' time->datestring4 = time->month%10 + '0' time->datestring5 = '-' time->datestring6 = time->day/10 + '0' time->datestring7 = time->day%10 + '0' time->datestring8 = '0' void timetostr(systemtime *time) time->ti

40、mestring0 = time->hour/10 + '0' time->timestring1 = time->hour%10 + '0' time->timestring2 = ':' time->timestring3 = time->minute/10 + '0' time->timestring4 = time->minute%10 + '0' time->timestring5 = ':' time->timestring6

41、= time->second/10 + '0' time->timestring7 = time->second%10 + '0' time->datestring8 = '0' void ds1302_gettime(systemtime *time) unsigned char readvalue; readvalue = read1302(ds1302_second); time->second = (readvalue&0x70)>>4)*10 + (readvalue&0x0f)

42、; readvalue = read1302(ds1302_minute); time->minute = (readvalue&0x70)>>4)*10 + (readvalue&0x0f); readvalue = read1302(ds1302_hour); time->hour = (readvalue&0x70)>>4)*10 + (readvalue&0x0f); readvalue = read1302(ds1302_day); time->day = (readvalue&0x70)>>

43、;4)*10 + (readvalue&0x0f); readvalue = read1302(ds1302_month); time->month = (readvalue&0x70)>>4)*10 + (readvalue&0x0f); readvalue = read1302(ds1302_year); time->year = (readvalue&0x70)>>4)*10 + (readvalue&0x0f); void initial_ds1302(void) unsigned char second=re

44、ad1302(ds1302_second); if(second&0x80) ds1302_settime(ds1302_second,0); void burstwrite1302(unsigned char *pwclock) /往ds1302寫入時(shí)鐘數(shù)據(jù)(多字節(jié)方式) unsigned char i; write1302(0x8e,0x00); / 控制命令,wp=0,寫操作? ds1302_rst = 0; ds1302_clk = 0; ds1302_rst = 1; ds1302inputbyte(0xbe); / 0xbe:時(shí)鐘多字節(jié)寫命令 for (i = 8; i&g

45、t;0; i-) /8byte = 7byte 時(shí)鐘數(shù)據(jù) + 1byte 控制 ds1302inputbyte(*pwclock); / 寫1byte數(shù)據(jù) pwclock+; ds1302_clk = 1; ds1302_rst = 0; void burstread1302(unsigned char *prclock) /讀取ds1302 時(shí)鐘數(shù)據(jù)(時(shí)鐘多字節(jié)方式) unsigned char i; ds1302_rst = 0; ds1302_clk = 0; ds1302_rst = 1; ds1302inputbyte(0xbf); / 0xbf:時(shí)鐘多字節(jié)讀命令 for (i=8;

46、 i>0; i-) *prclock = ds1302outputbyte(); / 讀1byte數(shù)據(jù) prclock+; ds1302_clk = 1; ds1302_rst = 0; void ds1302_timestop(bit flag) / 是否將時(shí)鐘停止 unsigned char data; data=read1302(ds1302_second); ds1302_setprotect(0); if(flag) write1302(ds1302_second, data|0x80); else write1302(ds1302_second, data&0x7f)

47、; #endif lcd1604.h #ifndef lcd_char_1604 #define lcd_char_1604 #include <intrins.h> sbit lcdrs = p35; sbit lcdrw = p36; sbit lcden = p37; sfr dbport = 0x80; /p0=0x80,p1=0x90,p2=0xa0,p3=0xb0.數(shù)據(jù)端口 unsigned char lcd_wait(void) lcdrs=0; lcdrw=1; _nop_(); lcden=1; _nop_(); /while(dbport&0x80);/

48、 lcden=0; return dbport; #define lcd_command 0 / command #define lcd_data 1 / data #define lcd_clear_screen 0x01 / 清屏 #define lcd_homing 0x02 / 光標(biāo)返回原點(diǎn) void lcd_write(bit style, unsigned char input) lcden=0; lcdrs=style; lcdrw=0; _nop_(); dbport=input; _nop_();/注意順序 lcden=1; _nop_();/注意順序 lcden=0; _n

49、op_(); lcd_wait(); #define lcd_show 0x04 /顯示開(kāi) #define lcd_hide 0x00 /顯示關(guān) #define lcd_cursor 0x02 /顯示光標(biāo) #define lcd_no_cursor 0x00 /無(wú)光標(biāo) #define lcd_flash 0x01 /光標(biāo)閃動(dòng) #define lcd_no_flash 0x00 /光標(biāo)不閃動(dòng) void lcd_setdisplay(unsigned char displaymode) lcd_write(lcd_command, 0x08|displaymode); #define lcd_ac

50、_up 0x02 #define lcd_ac_down 0x00 / default#define lcd_move 0x01 / 畫面可平移#define lcd_no_move 0x00 /defaultvoid lcd_setinput(unsigned char inputmode) lcd_write(lcd_command, 0x04|inputmode); void lcd_initial() lcden=0; lcd_write(lcd_command,0x38); /8位數(shù)據(jù)端口,2行顯示,5*7點(diǎn)陣 lcd_write(lcd_command,0x38); lcd_set

51、display(lcd_show|lcd_no_cursor); /開(kāi)啟顯示, 無(wú)光標(biāo) lcd_write(lcd_command,lcd_clear_screen); /清屏 lcd_setinput(lcd_ac_up|lcd_no_move); /ac遞增, 畫面不動(dòng) void gotoxy(unsigned char x, unsigned char y) /x列,y行 if(y=0) lcd_write(lcd_command,0x80|x); if(y=1) lcd_write(lcd_command,0x80|(x-0x40); void print(unsigned char *str) while(*str!='0') lcd_write(lcd_data,*str); str+; #endif set_key.h #ifndef _setkey_h_ #define _setkey_h_ #include<sht11.h> float setwen_h,setwen_l,setshi_h,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論