基于AT89S51單片機(jī)的教室燈光智能控制系統(tǒng)設(shè)計(jì)_第1頁(yè)
基于AT89S51單片機(jī)的教室燈光智能控制系統(tǒng)設(shè)計(jì)_第2頁(yè)
基于AT89S51單片機(jī)的教室燈光智能控制系統(tǒng)設(shè)計(jì)_第3頁(yè)
基于AT89S51單片機(jī)的教室燈光智能控制系統(tǒng)設(shè)計(jì)_第4頁(yè)
基于AT89S51單片機(jī)的教室燈光智能控制系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基于AT89S51單片機(jī)的教室燈光智能控制系統(tǒng)設(shè)計(jì)一、系統(tǒng)設(shè)計(jì)要求:該系統(tǒng)以AT89S51單片機(jī)作為控制模塊的核心部件,采用熱釋紅外人體傳感器檢測(cè)人體的存在,采用光敏三極管構(gòu)成的電路檢測(cè)環(huán)境光的強(qiáng)度;根據(jù)教室合理開(kāi)燈的條件,通過(guò)對(duì)人體存在信號(hào)和環(huán)境光信號(hào)的識(shí)別與判斷,完成對(duì)教室燈光的智能控制,避免了教室用電的大量浪費(fèi)。系統(tǒng)還具有報(bào)警功能;同時(shí)還采用了軟/硬件的“看門(mén)狗”等抗干擾措施二、系統(tǒng)控制方案分析 該控制器以自然光強(qiáng)度和人體存在作為控制器的主要輸入?yún)?shù),能夠?qū)崿F(xiàn)自動(dòng)與手動(dòng)控制相兼容。在自然環(huán)境光較強(qiáng)光線足夠時(shí),無(wú)論人是否存在,都不開(kāi)燈;在自然環(huán)境光較弱時(shí),有人存在且超過(guò)一定時(shí)間,控制器自動(dòng)

2、打開(kāi)電燈,直到人離開(kāi)后再延時(shí)一定時(shí)間后關(guān)燈。同時(shí),還可設(shè)置作息時(shí)間來(lái)控制,夜晚超過(guò)12點(diǎn),若還有人存在,則關(guān)閉自動(dòng)控制器的運(yùn)行,改用開(kāi)關(guān)來(lái)手動(dòng)控制,以解決因特殊情況下,自動(dòng)控制器的不人性化運(yùn)行。 所研究的教室燈光控制器主要是由硬件和軟件兩大部分組成。硬件部分是前提,是整個(gè)系統(tǒng)執(zhí)行的基礎(chǔ),它主要為軟件提供程序運(yùn)行的平臺(tái)。而軟件部分,是對(duì)硬件端口所體現(xiàn)的信號(hào),加以采集、分析、處理,最終實(shí)現(xiàn)控制器所要實(shí)現(xiàn)的各項(xiàng)功能,達(dá)到設(shè)計(jì)目的。三、系統(tǒng)控制模塊的硬件設(shè)計(jì) 系統(tǒng)控制模塊的硬件構(gòu)成及簡(jiǎn)介 系統(tǒng)控制單元是以AT89S51單片機(jī)主控模塊為核心,其它外圍電路主要包括:環(huán)境光采集電路、時(shí)鐘模塊、熱釋紅外傳感器

3、模塊、看門(mén)狗模塊、按鍵電路、EEPROM存儲(chǔ)模塊、超時(shí)報(bào)警模塊、數(shù)碼管顯示模塊,其結(jié)構(gòu)框圖如圖2-1所示。 圖2.1系統(tǒng)控制結(jié)構(gòu)框圖 環(huán)境光模塊采用光敏三極管來(lái)檢測(cè)環(huán)境光的強(qiáng)度,有光照時(shí),電阻減小,隨著光照強(qiáng)度的減弱,電阻逐漸增大,把光信號(hào)轉(zhuǎn)化成電信號(hào),實(shí)現(xiàn)對(duì)光強(qiáng)度的檢測(cè)。 人體存在傳感器模塊采用HP-208是基于紅外線技術(shù)的智能產(chǎn)品,實(shí)現(xiàn)對(duì)人體存在的檢測(cè)。 硬件時(shí)鐘模塊采用具有充電能力的低功耗,具有臨時(shí)性存放數(shù)據(jù)的RAM寄存器的實(shí)時(shí)時(shí)鐘芯片DS1302。該電路的接口簡(jiǎn)單、價(jià)格低廉、使用方便,被廣泛的使用。 系統(tǒng)數(shù)據(jù)存儲(chǔ)及故障保護(hù)部分由X5045組成,X5045是一種串行通訊的512字節(jié)EEP

4、ROM,同時(shí)兼有看門(mén)狗和電源監(jiān)控功能鍵盤(pán)模塊。1.系統(tǒng)控制的主要硬件電路 考慮到本系統(tǒng)安裝時(shí)受環(huán)境影響因素比較多,且教室控制設(shè)備中的人體存在傳感器、光敏三極管等經(jīng)常會(huì)因環(huán)境情形變化而不穩(wěn)定,所以在設(shè)計(jì)過(guò)程中,電子元器件的選用、線路布置和設(shè)備的安放要充分考慮到抗干擾問(wèn)題。2. 系統(tǒng)主控電路 本系統(tǒng)的主控模塊采用AT89S51作為主控芯片,它是一種低功耗,8位CMOS工藝處理器,具有8K在線可編程Flash存儲(chǔ)器,片內(nèi)的Flash可多次編程,為在線編程提供了方便。片內(nèi)有128字節(jié)的RAM,4KB的EEPROM,由于合理的安排使用片內(nèi)RAM空間,所以沒(méi)有片外擴(kuò)展的RAM,使電路結(jié)構(gòu)簡(jiǎn)潔。該芯片的主要

5、特征見(jiàn)如表2.1:表2.1 AT89S51主要特征單片機(jī)最小系統(tǒng)如圖2-2所示: 圖2-2 單片機(jī)最小系統(tǒng)3.系統(tǒng)供電電路 系統(tǒng)供電原理如圖2-3所示,采用+5V電壓供電。本設(shè)計(jì)采用輸出電壓為9V的變壓器。系統(tǒng)接通220V交流電源后,將220V交流電變壓到9V,經(jīng)過(guò)二極管全波整流、電解電容C1,C2濾波,再經(jīng)正輸出穩(wěn)壓器LM7805,為了緩沖負(fù)載突變,改善瞬態(tài)響應(yīng),輸出端還采用了電容C3,C4,最后得到+5V的直流電壓,用于給控制系統(tǒng)中單片機(jī)系統(tǒng)及其它外圍電路的Vcc端供電。. 圖2-3 系統(tǒng)供電電路4.數(shù)據(jù)采集電路 教室的環(huán)境光強(qiáng)度和人體存在與否是系統(tǒng)主要的輸入?yún)?shù),因此教室中的環(huán)境光照強(qiáng)度

6、和人體存在成為系統(tǒng)數(shù)據(jù)采集的主要對(duì)象。常見(jiàn)的環(huán)境光強(qiáng)度采集器件主要有光敏二極管和光敏三極管,考慮抗干擾的需要,選用靈敏度較高的光敏三極管。此外,人體存在傳感器要求靈敏度高,可靠性強(qiáng)。環(huán)境光強(qiáng)度采集電路 光電傳感器是一種能夠?qū)⒐廪D(zhuǎn)化為電量的傳感器。采用的光敏三極管除了具有光敏二極管將光信號(hào)轉(zhuǎn)化為電信號(hào)的功能外,還具有對(duì)電信號(hào)的放大功能。在無(wú)光照時(shí),三極管的穿透電流很小,為暗電流,有光照時(shí),產(chǎn)生的Ib增大,成為光電流Ie,光電流的大小與光照強(qiáng)度成正比,于是在負(fù)載電阻上就能得到隨光照強(qiáng)度變化而變化的電信號(hào)。光敏三極管具有靈敏度高,體積小,工作電壓低,工作電流小,發(fā)光均勻穩(wěn)定,響應(yīng)速度快,壽命長(zhǎng)等特點(diǎn)

7、。環(huán)境光采集電路原理如圖為2-4所示。當(dāng)環(huán)境光照強(qiáng)度大于一定程度時(shí),光敏三極管D6呈現(xiàn)低阻狀態(tài)1K,三極管Q12的基極電壓升高,Q12管飽和導(dǎo)通,集電極輸出低電平。當(dāng)環(huán)境光強(qiáng)度小于一定程度時(shí),光敏三極管D6呈現(xiàn)高阻狀態(tài)100,使三極管Q12截止,集電極輸出高電平。其中調(diào)節(jié)R26阻值,可使三極管Q12受環(huán)境光強(qiáng)度影響在適當(dāng)?shù)牧炼认聦?dǎo)通。圖2-4環(huán)境光電路人體存在信號(hào)采集電路人體存在傳感器采用HP-208-N-L人體感應(yīng)模塊(低電平輸出)?;诩t外線技術(shù)的自動(dòng)控制產(chǎn)品,靈敏度高,可靠性強(qiáng),廣泛應(yīng)用于各類(lèi)自動(dòng)感應(yīng)電器中。人體傳感器的1號(hào)引腳為電源信號(hào)端VCC,2號(hào)引腳為采集信號(hào)輸出端OUT,3號(hào)引腳

8、為地信號(hào)端GND。其硬件連接如圖2-5 圖 2-5 人體存在信號(hào)采集電路5.系統(tǒng)時(shí)鐘電路 根據(jù)教室燈光使用特性,該系統(tǒng)還應(yīng)受到時(shí)間的控制,因此本研究還加入硬件時(shí)鐘電路以保證系統(tǒng)的智能化運(yùn)行。 考慮到本系統(tǒng)停電時(shí)需為時(shí)鐘電路提供電源、且不占用太多單片機(jī)資源,于是采用具有充電能力的實(shí)時(shí)時(shí)鐘芯片DS1302,作為臨時(shí)性存放數(shù)據(jù)的RAM寄存器。此芯片采用的是串行通信方式,還可為掉電保護(hù)電源提供充電功能,也可以將此功能關(guān)閉。該芯片對(duì)年、月、日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V5.5V。DS1302只需三根線即可與單片機(jī)進(jìn)行通信,體積小,使用簡(jiǎn)單,時(shí)鐘精度較高,滿足系統(tǒng)的要求,其引

9、腳圖如圖2-6所示。 圖2-6 DS1302的引腳圖各引腳的功能為: Vcc1:主電源;Vcc2:備份電源。當(dāng)Vcc2>Vcc1+0.2V時(shí),由Vcc2向DS1302供電,當(dāng)Vcc2< Vcc1時(shí),由Vcc1向DS1302供電。 SCLK:串行時(shí)鐘,輸入,控制數(shù)據(jù)的輸入與輸出; I/O:三線接口時(shí)的雙向數(shù)據(jù)線; CE:輸入信號(hào),在讀、寫(xiě)數(shù)據(jù)期間,必須為高。 DS1302與單片機(jī)接口電路連接如圖2-7,其中Vcc2外接3.6V可充電的鋰電池,為DS1302的備用電源。Vcc1外接供電 模塊的穩(wěn)定輸出電壓+5V,為DS1302的主電源。DS1302由Vcc1和Vcc2兩者中較大者供電。

10、系統(tǒng)正常運(yùn)行時(shí),Vcc1大于Vcc2,因此由Vcc1給DS1302供電,在主電源關(guān)閉的情況下,則由Vcc2給DS1302供電,保持時(shí)鐘的連續(xù)運(yùn)行。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送,與單片機(jī)的復(fù)位信號(hào)相連。時(shí)鐘輸入端SCLK接單片機(jī)P1.5引腳,進(jìn)行時(shí)鐘控制。 圖 2-7 時(shí)鐘電路6.繼電器驅(qū)動(dòng)電路 繼電器驅(qū)動(dòng)接口電路如圖2-8所示,這里繼電器由相應(yīng)的PNP型號(hào)的9012三極管來(lái)驅(qū)動(dòng)。開(kāi)機(jī)時(shí),單片機(jī)初始化后的P3.5、P3.6 為高電平,三極管截止,所以開(kāi)機(jī)后繼電器始終處于釋放狀態(tài)。如果P3.5、P3.6 為低

11、電平,三極管的基極就會(huì)被拉低而產(chǎn)生足夠的基極電流,使三極管導(dǎo)通,繼電器就會(huì)得電吸合,從而驅(qū)動(dòng)負(fù)載,點(diǎn)亮相應(yīng)電燈。繼電器的輸出端并聯(lián)100歐的電阻和6800皮法電容,目的是避免繼電器吸合與釋放期間產(chǎn)生火花。繼電器線圈兩端反相并聯(lián)的二極管是起到吸收反向電動(dòng)勢(shì)的功能,保護(hù)相應(yīng)的驅(qū)動(dòng)三極管,這種繼電器驅(qū)動(dòng)方式硬件結(jié)構(gòu)比較簡(jiǎn)單。 圖2-8 繼電器驅(qū)動(dòng)電路7.超時(shí)報(bào)警電路 本系統(tǒng)采用的超時(shí)報(bào)警電路如圖2-9所示。單片機(jī)的P3.4端口外加一個(gè)10K的上拉電阻,再經(jīng)過(guò)限流電阻100歐與三極管C945的基極相連。當(dāng)P3.4 端口為低電平,即基極為低電平時(shí),三極管導(dǎo)通,驅(qū)動(dòng)蜂鳴器發(fā)出聲音,以示教室燈工作超時(shí)。若P

12、3.4端口為高電平,即基極為高電平時(shí),三極管截止,蜂鳴器不工作,教室燈工作正常。本系統(tǒng)采用超時(shí)報(bào)警電路方便了管理人員對(duì)教室燈的管理,能夠科學(xué)、有效地管理教室電燈。 圖2-9超時(shí)報(bào)警電路8.按鍵控制電路 按鍵控制電路如圖2-10所示。按鍵的輸入信號(hào)分別接到P2.0,P2.1,P2.2,P2.3,用二極管和與門(mén)電路將按鍵信號(hào)引到外中斷0的引腳P3.2。按鍵控制電路采用單片機(jī)P2口的低4個(gè)口作按鍵的輸入信號(hào)端,信號(hào)取自電阻的分壓。當(dāng)按鍵未按下時(shí),P2.0P2.3端口的電壓接近電源電壓,為高電平,當(dāng)某一按鍵按下時(shí),對(duì)應(yīng)端口被按紐開(kāi)關(guān)短接到地,為低電平。單片機(jī)檢測(cè)4個(gè)端口電平的變化,從而確定是哪個(gè)鍵被按

13、下。鍵盤(pán)工作方式采用中斷掃描方式,4個(gè)二極管和10K電阻組成與門(mén)電路,當(dāng)任一鍵按下時(shí),與門(mén)輸出P3.2引腳的電平都會(huì)由高為低。P3.2第二功能是外部中斷0的輸入引腳,我們利用其電平的變化產(chǎn)生中斷,在中斷服務(wù)程序中讀入P2口低4位信號(hào),確定哪個(gè)鍵按下,執(zhí)行相應(yīng)的按鍵功能,0.1pf電容和10K電阻組成濾波電路,消除按鍵的抖動(dòng)。 圖2-10按鍵控制電路9.系統(tǒng)看門(mén)狗電路 在單片機(jī)工作過(guò)程中,不可避免的會(huì)由于外界的干擾而產(chǎn)生程序跑飛、死機(jī)甚至造成整機(jī)癱瘓等情況。為了能夠及時(shí)恢復(fù)單片機(jī)的工作,只能采用重新復(fù)位的方法,因此還應(yīng)該在硬件設(shè)計(jì)中使用看門(mén)狗電路,這樣在單片機(jī)發(fā)生死機(jī)的情況下,看門(mén)狗將產(chǎn)生一個(gè)復(fù)

14、位信號(hào)給單片機(jī),使單片機(jī)復(fù)位,重新執(zhí)行程序。由于系統(tǒng)同時(shí)需要看門(mén)狗和EEPROM,所以本設(shè)計(jì)中使用芯片X5045。X5045的引腳排列如圖2-11。 圖2-11 X5045的引腳圖看門(mén)狗定時(shí)器的預(yù)置時(shí)間是通過(guò)X5045的狀態(tài)寄存器的相應(yīng)位來(lái)設(shè)定的。如表2.2狀態(tài)寄存器所示,X5045狀態(tài)寄存器共有6位。其中WD1.WD0和看門(mén)狗電路有關(guān),其余位和EEPROM的工作設(shè)置有關(guān)。表2.2 狀態(tài)寄存器 WD1=0,WD0=0,預(yù)置時(shí)間為1.4S, WD1=0,WD0=1,預(yù)置時(shí)間為0.6S, WD1=1,WD0=0,預(yù)置時(shí)間為0.2S, WD1=1,WD0=1,禁止看門(mén)狗工作。 看門(mén)狗電路的定時(shí)時(shí)間長(zhǎng)

15、短可由具體應(yīng)用程序的循環(huán)周期決定,通常比系統(tǒng)正常工作時(shí)最大循環(huán)周期的時(shí)間略長(zhǎng)即可。 X5045硬件部分連接如圖2-12。 圖2-12 系統(tǒng)看門(mén)狗電路系統(tǒng)看門(mén)狗電路由系統(tǒng)數(shù)據(jù)存儲(chǔ)及故障保護(hù)部分組成,X5045是一種串行通信512字節(jié)的EEPROM,同時(shí)兼有看門(mén)狗和電源監(jiān)控功能,X5045有三種可編程看門(mén)狗周期,上電和VCC低于檢測(cè)門(mén)限時(shí),輸出復(fù)位信號(hào),X5045輸出復(fù)位高電平有效,為了復(fù)位更加可靠,其復(fù)位輸出端外接一個(gè)10K的上拉電阻,并與AT89S51的復(fù)位端相連??撮T(mén)狗能在電源上電、掉電期間產(chǎn)生一個(gè)復(fù)位信號(hào)。該芯片還帶有一個(gè)1.4秒的看門(mén)狗定時(shí)器可用來(lái)監(jiān)控單片機(jī)的工作。如果在1.4秒內(nèi)未檢測(cè)

16、到其工作,出現(xiàn)故障,內(nèi)部定時(shí)器將使看門(mén)狗WD1處于低電平狀態(tài),為系統(tǒng)提供保護(hù),避免死機(jī)、程序跑飛或進(jìn)入死循環(huán)等意外的發(fā)生。四、控制模塊軟件設(shè)計(jì)1.系統(tǒng)監(jiān)控主程序模塊 監(jiān)控程序按模塊分為監(jiān)控主程序和命令處理子程序叫。監(jiān)控主程序的基本任務(wù)是調(diào)用子程序,一個(gè)主程序可以調(diào)用多個(gè)子程序,對(duì)于51系列單片機(jī),系統(tǒng)資源有限,主程序通常是一個(gè)無(wú)限循環(huán)的過(guò)程,即是一個(gè)反復(fù)調(diào)用子程序的過(guò)程。子程序主要分為中斷子程序和功能子程序,它們之間可以互相嵌套和調(diào)用,即中斷子程序可以調(diào)用功能子程序。在應(yīng)用軟件的設(shè)計(jì)中,盡可能各個(gè)功能模塊寫(xiě)成子程序的形式,并通過(guò)主程序調(diào)用。而命令處理子程序完成各種命令所規(guī)定的具體操作,它按各種

17、命令再分為不同的子程序模塊,它的編程方法與功能要求及系統(tǒng)應(yīng)用密切相關(guān)。 監(jiān)控主程序是整個(gè)控制系統(tǒng)的核心部分,其它外圍模塊一般都需經(jīng)過(guò)監(jiān)控模塊實(shí)現(xiàn)其在控制系統(tǒng)中的作用。監(jiān)控主程序接受和分析來(lái)自鍵盤(pán)的命令,進(jìn)而把控制轉(zhuǎn)到相應(yīng)的處理子程序的入口,起引導(dǎo)作用。 本系統(tǒng)監(jiān)控主程序模塊主要包括對(duì)系統(tǒng)外圍器件輸入、輸出參數(shù)的初始化自檢,看門(mén)狗的激活,多任務(wù)操作模塊的調(diào)用(系統(tǒng)中的信號(hào)采集處理、時(shí)鐘管理、按鍵接收處理、驅(qū)動(dòng)顯示模塊),實(shí)時(shí)中斷處理等。除初始化和自檢外,監(jiān)控主程序一般總是把其余部分連接起來(lái)構(gòu)成一個(gè)無(wú)限循環(huán),系統(tǒng)所有功能都在這一循環(huán)中周而復(fù)始的有選擇的執(zhí)行。 1)系統(tǒng)自檢初始化 系統(tǒng)自檢初始化是保

18、證整個(gè)控制系統(tǒng)能夠正常運(yùn)行的重要條件,系統(tǒng)加電復(fù)位后,直接進(jìn)入自檢初始化程序,完成系統(tǒng)的自檢及初始化。初始化過(guò)程主要是對(duì)一些控制寄存器(如中斷控制)、數(shù)據(jù)區(qū)和外部芯片(如時(shí)鐘芯片DS1302等)進(jìn)行初始參數(shù)設(shè)置和定義。本系統(tǒng)中的自檢初始化主要指各接口芯片的檢測(cè)、芯片內(nèi)部設(shè)定參數(shù)的初始化及系統(tǒng)內(nèi)部寄存器的初始化。 各接口芯片的檢測(cè)主要檢測(cè)各芯片是否已處于準(zhǔn)備工作的就緒狀態(tài),有無(wú)硬件故障等,如檢測(cè)各位LED是否正常顯示系統(tǒng)設(shè)置開(kāi)機(jī)時(shí)的界面,檢測(cè)硬件時(shí)鐘DS1302是處于更換芯片后初次使用為起振狀態(tài),還是處于備用電源供電振蕩保持狀態(tài),即檢測(cè)系統(tǒng)中控制時(shí)間表的有效性,檢測(cè)熱釋紅外傳感器輸出信號(hào)是否正常

19、體現(xiàn)人體存在的信息,檢測(cè)光采集電路輸出的信號(hào)等。若時(shí)鐘芯片處于啟動(dòng)狀態(tài),則需要對(duì)其進(jìn)行初始化并啟動(dòng)實(shí)時(shí)時(shí)鐘。 系統(tǒng)內(nèi)部寄存器初始化主要是指在數(shù)據(jù)緩沖區(qū)內(nèi),各用戶(hù)定義的數(shù)據(jù)變量的初始化賦值及部分特殊功能寄存器SFR的復(fù)位初始化,單片機(jī)復(fù)位后,程序計(jì)數(shù)器PC指向程序存儲(chǔ)器的入口地址。000單元,程序狀態(tài)字寄存器PSW清零,片內(nèi)存儲(chǔ)器選擇工作寄存器,用戶(hù)標(biāo)志位F0為0狀態(tài),堆棧指針SP指向07H,其它定時(shí)器、中斷允許寄存器IE,累加器ACC等皆為00H.。2)定時(shí)中斷處理設(shè)計(jì) 定時(shí)中斷是利用單片機(jī)內(nèi)部的定時(shí)器定時(shí),時(shí)間到或計(jì)數(shù)值已滿引起的中斷,內(nèi)部定時(shí)器的計(jì)數(shù)器可以對(duì)內(nèi)部時(shí)鐘或從外部引線T0和T1輸

20、入的外部脈沖進(jìn)行計(jì)數(shù)。計(jì)數(shù)器的溢出信號(hào)作為中斷請(qǐng)求信號(hào),去置位定時(shí)器溢出標(biāo)志位,向單片機(jī)的CPU申請(qǐng)中斷。 定時(shí)中斷為周期性中斷,每隔一定的時(shí)間會(huì)中斷一次。本系統(tǒng)中設(shè)定的定時(shí)中斷主要用來(lái)構(gòu)造多任務(wù)操作系統(tǒng),在系統(tǒng)響應(yīng)中斷后,無(wú)需對(duì)斷點(diǎn)實(shí)施現(xiàn)場(chǎng)保護(hù),可直接進(jìn)行多任務(wù)時(shí)間的劃分工作,使相應(yīng)的操作任務(wù)進(jìn)入就緒狀態(tài),即該中斷可以啟動(dòng)有關(guān)的任務(wù)操作。該定時(shí)中斷處理程序框圖如圖3-1所示: 圖3-1 定時(shí)中斷處理程序框圖本系統(tǒng)還采用了外部中斷,此外部中斷主要用來(lái)判斷是否有外來(lái)信號(hào)輸入,若有,就采集下來(lái)并加以處理;若無(wú),則返回到主循環(huán)。 2. 數(shù)據(jù)采集模塊 本控制系統(tǒng)中的數(shù)據(jù)采集對(duì)象為環(huán)境光信號(hào)及人體存在信

21、號(hào),在程序設(shè)計(jì)中對(duì)這兩個(gè)數(shù)據(jù)的采集放置在多任務(wù)模塊中實(shí)施定時(shí)采集。數(shù)據(jù)采集軟件的實(shí)現(xiàn) 本系統(tǒng)考慮到環(huán)境光足夠亮?xí)r,無(wú)論是否有人體存在都不開(kāi)燈;而環(huán)境光不夠亮?xí)r,有人體存在才開(kāi)燈,無(wú)人體存在則不開(kāi)燈。本系統(tǒng)邏輯定義為:環(huán)境光亮?xí)r為邏輯“0"(符合光采集電路輸出信號(hào)狀態(tài)),暗時(shí)為“1",人體存在為“1",人體不存在為“0",開(kāi)燈為“1”,關(guān)燈為“0",那么環(huán)境光與人體存在可以用以下的邏輯關(guān)系表來(lái)表示,如表所示3.1:表3.1 環(huán)境光與人體存在邏輯關(guān)系上表數(shù)據(jù)表明可將環(huán)境光參數(shù)與人體存在參數(shù)進(jìn)行與操作,又由于繼電器是低電平驅(qū)動(dòng),所以要將采集處理后的信

22、號(hào)進(jìn)行非操作,才可以驅(qū)動(dòng)繼電器工作,即可得到教室燈的狀態(tài)。 3.時(shí)鐘模塊 在系統(tǒng)啟動(dòng)自檢初始化時(shí),首先會(huì)對(duì)時(shí)鐘芯片DS1302的運(yùn)行狀態(tài)進(jìn)行判斷,當(dāng)檢測(cè)到DS1302處于啟動(dòng)狀態(tài)時(shí)才對(duì)其進(jìn)行初始化,啟動(dòng)時(shí)鐘。實(shí)時(shí)時(shí)鐘芯片DS1302的初始化及其讀寫(xiě)程序設(shè)計(jì)的關(guān)鍵是要遵循其時(shí)序要求。 1)數(shù)據(jù)輸入輸出 在對(duì)DS1302進(jìn)行各種操作之前,必須先對(duì)其初始化,即需要把復(fù)位輸入RST端置為高電平,如果RST輸入為低電平,那么所有的數(shù)據(jù)傳送中止,且I/O引腳變?yōu)楦咦杩範(fàn)顟B(tài)。在數(shù)據(jù)讀/寫(xiě)完后,RST端應(yīng)置成低電平,以防止外部干擾對(duì)DS1302內(nèi)部時(shí)鐘的影響。 同時(shí),為了防止復(fù)位輸入端受到外部的干擾,要求上電

23、時(shí),在主電源引腳Vcc22.5V之前,RST必須為邏輯0。無(wú)論是讀操作還是寫(xiě)操作,都必須在開(kāi)頭的8個(gè)時(shí)鐘周期內(nèi)把提供地址和命令信息的8位數(shù)據(jù)裝入到DS1302的移位寄存器中。地址/命令信息用于指明40個(gè)寄存器中的哪個(gè)進(jìn)行何種操作。數(shù)據(jù)在SCLK的上升沿串行輸入,在開(kāi)始的8個(gè)時(shí)鐘周期把命令字裝入移位寄存器之后,若跟隨的是寫(xiě)命令字節(jié),則在下8個(gè)SCLK周期的上升沿輸入數(shù)據(jù)字節(jié),若跟隨在讀命令字節(jié)的8個(gè)SCLK周期之后,在下8個(gè)SCLK周期的下降沿輸出數(shù)據(jù)字節(jié)。程序流程如圖3-3所示: 圖3-3數(shù)據(jù)輸入輸出流程圖2)時(shí)鐘程序設(shè)計(jì) 驅(qū)動(dòng)程序 /寄存器宏定義 #define WRITE_SECOND 0

24、x80 #define WRITE_MINUTE 0x82 #define WRITE_HOUR 0x84 #define READ_SECOND 0x81 #define READ_MINUTE 0x83 #define READ_HOUR 0x85 #define WRITE_PROTECT 0x8E /位尋址寄存器定義 sbit ACC_7 = ACC7; /管腳定義 sbit SCLK = P35; / DS1302時(shí)鐘信號(hào) 7腳 sbit DIO= P36; / DS1302數(shù)據(jù)信號(hào) 6腳sbit CE = P37; / DS1302片選 5腳 /地址、數(shù)據(jù)發(fā)送子程序 void Wr

25、ite1302 ( unsigned char addr,dat ) unsigned char i,temp; CE=0; /CE引腳為低電平,數(shù)據(jù)傳送中止 SCLK=0; /清零時(shí)鐘總線 CE = 1; /CE引腳為高電平,邏輯控制有效 /發(fā)送地址 for ( i=8; i>0; i- ) /循環(huán)8次移位 SCLK = 0; temp = addr; DIO = (bit)(temp&0x01); /每次傳輸?shù)妥止?jié) addr >>= 1; /右移一位 SCLK = 1; /發(fā)送數(shù)據(jù) for ( i=8; i>0; i- ) SCLK = 0; temp =

26、dat; DIO = (bit)(temp&0x01); dat >>= 1; SCLK = 1; CE = 0; /數(shù)據(jù)讀取子程序 unsigned char Read1302 ( unsigned char addr ) unsigned char i,temp,dat1,dat2; CE=0; SCLK=0; CE = 1; /發(fā)送地址 16 for ( i=8; i>0; i- ) /循環(huán)8次移位 SCLK = 0; temp = addr; DIO = (bit)(temp&0x01); /每次傳輸?shù)妥止?jié) addr >>= 1; /右移一

27、位 SCLK = 1; /讀取數(shù)據(jù) for ( i=8; i>0; i- ) ACC_7=DIO; SCLK = 1; ACC>>=1; SCLK = 0; CE=0; dat1=ACC; dat2=dat1/16; /數(shù)據(jù)進(jìn)制轉(zhuǎn)換 dat1=dat1%16; /十六進(jìn)制轉(zhuǎn)十進(jìn)制 dat1=dat1+dat2*10; return (dat1); /初始化DS1302 void Initial(void) Write1302 (WRITE_PROTECT,0X00); /禁止寫(xiě)保護(hù) Write1302 (WRITE_SECOND,0x56); /秒位初始化 Write1302

28、 (WRITE_MINUTE,0x34); /分鐘初始化 Write1302 (WRITE_HOUR,0x12); /小時(shí)初始化 Write1302 (WRITE_PROTECT,0x80); /允許寫(xiě)保護(hù) 4.顯示驅(qū)動(dòng)模塊 系統(tǒng)運(yùn)行過(guò)程中的數(shù)據(jù)顯示是人機(jī)交互對(duì)話的一個(gè)重要通道。通過(guò)的顯示系統(tǒng)數(shù)據(jù),我們才可以更好的了解系統(tǒng)運(yùn)行的狀態(tài),從而方便對(duì)整個(gè)系統(tǒng)進(jìn)行必要的操作。本系統(tǒng)中采用共陽(yáng)極的數(shù)碼管,其中采用ULN2803作為驅(qū)動(dòng)數(shù)碼管的段選的芯片,采用簡(jiǎn)單又便宜的9012三極管來(lái)驅(qū)動(dòng)數(shù)碼管的位選,節(jié)約成本,程序編寫(xiě)簡(jiǎn)單。 考慮到數(shù)碼管驅(qū)動(dòng)信號(hào)要求的電流較大,采用功率驅(qū)動(dòng)器件ULN2803芯片。此芯

29、片是八組NPN型達(dá)林頓功放三極管集成芯片,典型的輸入電壓是5V,集電極輸出功率可達(dá)50V×0.6A。因此采用ULN2803共陽(yáng)極數(shù)碼管的段信號(hào)驅(qū)動(dòng)器。而共陽(yáng)極數(shù)碼管的位信號(hào)驅(qū)動(dòng)則采用8個(gè)晶體管9012來(lái)實(shí)現(xiàn)。又由于ULN2803為低電平驅(qū)動(dòng),所以數(shù)據(jù)送到單片機(jī)端口前,應(yīng)在程序中先將數(shù)據(jù)取反。然后將數(shù)據(jù)送到ULN2803輸入端相連接單片機(jī)的P0端口即可。 每次先送一位要顯示的數(shù)據(jù)字節(jié),然后再送該位數(shù)碼管的地址字節(jié),直到8位顯示完全。 本系統(tǒng)在運(yùn)行過(guò)程中需要顯示查看的數(shù)據(jù)有時(shí)鐘及顯示數(shù)值。正常工作中8位顯示器顯示實(shí)時(shí)時(shí)鐘,顯示小時(shí)、分鐘、秒,其中有兩位用來(lái)顯示“”,用以分隔顯示小時(shí)、分鐘

30、和秒,這樣顯示更加清晰。五、系統(tǒng)調(diào)試運(yùn)行及問(wèn)題分析1.單片機(jī)系統(tǒng)調(diào)試方法及步驟 單片機(jī)系統(tǒng)的調(diào)試應(yīng)包括硬件及軟件兩部分,主要是通過(guò)調(diào)試發(fā)現(xiàn)硬件及軟件中存在的問(wèn)題,查看其運(yùn)行結(jié)果是否符合設(shè)計(jì)要求。 在對(duì)系統(tǒng)進(jìn)行實(shí)際調(diào)試時(shí),首先應(yīng)對(duì)硬件進(jìn)行靜態(tài)調(diào)試,同時(shí)對(duì)系統(tǒng)軟件進(jìn)行初步調(diào)試,此后再對(duì)軟件和硬件進(jìn)行動(dòng)態(tài)調(diào)試,最后才能使系統(tǒng)進(jìn)入正常工作. (1)靜態(tài)調(diào)試:靜態(tài)調(diào)試主要是排除明顯的硬件故障。在將芯片、傳感器等元件連接到電路板上時(shí),要保證各處電源極性、電壓正確,以防止因電源極性接反或電壓過(guò)高損壞芯片或傳感器。此外,插入芯片必須在斷電的情況下進(jìn)行,特別注意芯片的方向不要插反。 (2)軟件調(diào)試:在軟件調(diào)試時(shí)

31、采用在計(jì)算機(jī)上利用模擬軟件實(shí)現(xiàn)對(duì)單片機(jī)的硬件模擬、指令模擬及運(yùn)行狀態(tài)模擬,從而完成應(yīng)用軟件開(kāi)發(fā)的全過(guò)程。調(diào)試過(guò)程中的運(yùn)行狀態(tài)、各寄存器狀態(tài)、端口狀態(tài)等都可以在指定的窗口區(qū)域顯示出來(lái),通過(guò)這些顯示結(jié)果隨時(shí)跟蹤程序運(yùn)行狀態(tài),以確定程序運(yùn)行無(wú)錯(cuò)誤。 (3)動(dòng)態(tài)調(diào)試:控制系統(tǒng)的軟件和硬件是密切相關(guān)的,由于軟件模擬開(kāi)發(fā)系統(tǒng)不能對(duì)硬件部分進(jìn)行診斷,同時(shí)也不能實(shí)時(shí)在線仿真,所以用戶(hù)程序還需跟硬件連接起來(lái)進(jìn)行聯(lián)調(diào),同時(shí)對(duì)軟件和硬件進(jìn)行檢查和診斷。整個(gè)單片機(jī)系統(tǒng)進(jìn)行在線調(diào)試時(shí),需借助仿真開(kāi)發(fā)工具來(lái)對(duì)用戶(hù)軟件及硬件電路進(jìn)行診斷、調(diào)試。 在應(yīng)用系統(tǒng)各模塊電路調(diào)試成功后,將程序加載到在線仿真器上,這時(shí)就能單步或連續(xù)地執(zhí)行目標(biāo)程序,同時(shí)也可以根據(jù)需要分段設(shè)置斷點(diǎn)執(zhí)行程序。而對(duì)于一些與硬件相關(guān)的用戶(hù)程序,如接口驅(qū)動(dòng)程序等,則需要配合硬件,進(jìn)行在線調(diào)試,如果有邏輯錯(cuò)誤,也要及時(shí)糾正

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論