郭悅,夏琬嬌,段昱臻
(燕京理工學(xué)院,河北廊坊,065000)
隨著計算機(jī)技術(shù)的不斷發(fā)展,統(tǒng)計器的應(yīng)用也越來越廣泛[1-4]。由于圖書館學(xué)習(xí)的同學(xué)很多,尤其每每到復(fù)習(xí)周的時候,座位成了炙手可熱。由于圖書館座位不可提前占座,學(xué)生們需要當(dāng)天去占用,由于復(fù)習(xí)周學(xué)習(xí)人數(shù)暴增,可能出現(xiàn)進(jìn)入圖書館閱覽室辛苦找了半天,卻沒有座位,這就很耽誤復(fù)習(xí)時間。如果能在圖書館入口及每個閱覽室門口一款實(shí)時圖書館人數(shù)統(tǒng)計器顯示現(xiàn)有人數(shù),方便查看以便節(jié)省時間。
本系統(tǒng)設(shè)計可以實(shí)現(xiàn)以下功能:可以統(tǒng)計圖書館閱覽室進(jìn)入與出去的人數(shù)而且設(shè)置上限人數(shù)以防止人數(shù)太多發(fā)生擁擠,實(shí)時顯示圖書館閱覽室的總?cè)藬?shù)。系統(tǒng)并且?guī)в星辶銖?fù)位功能,按下清零按鍵后清除當(dāng)前統(tǒng)計的人數(shù),并且重新計數(shù),并顯示液晶屏幕上。本設(shè)計的按鍵模塊帶有設(shè)置上限人數(shù)按鍵以及設(shè)置人數(shù)加減鍵,同時帶有超過上限人數(shù)時由蜂鳴器與發(fā)光二極管的聲光報警模塊。
本設(shè)計的整體方案為:根據(jù)系統(tǒng)功能需求,選擇紅外傳感器作為人數(shù)的監(jiān)測模塊,將圖書館閱覽室門口分為入口和出口兩個通道,將紅外傳感器放置于的兩通道的側(cè)邊,一側(cè)的通道檢測出去的人數(shù),另一側(cè)的通道檢測進(jìn)入的人數(shù),當(dāng)有人通過兩側(cè)的通道時遮擋紅外傳感器發(fā)射端,紅外傳感器接收端輸出電平由高為低,由電平變化反映到單片機(jī)中從而單片機(jī)發(fā)出指令,對所統(tǒng)計的人數(shù)的數(shù)據(jù)進(jìn)行加減從而顯示進(jìn)來J與出去人數(shù)C,同時實(shí)時統(tǒng)計室內(nèi)的總?cè)藬?shù)Z。同時選用LCD1602液晶顯示屏作為顯示模塊,將檢測到的人數(shù)統(tǒng)計顯示出來。通過按鍵模塊進(jìn)行上限人數(shù)的設(shè)置。當(dāng)人數(shù)統(tǒng)計達(dá)到上限人數(shù)時,選用的是蜂鳴器二極管構(gòu)成的聲光報警模塊,進(jìn)行報警提示。本設(shè)計的核心控制模塊是AT89C52單片機(jī),控制整體運(yùn)行與各模塊協(xié)調(diào)工作,系統(tǒng)整體模塊設(shè)計圖如圖1所示。
圖1 整體模塊設(shè)計圖
該系統(tǒng)由主控模塊AT89C52單片機(jī),按鍵模塊S2、S3、S4,LCD1602液晶顯示屏顯示模塊,紅外傳感器的人數(shù)檢測模塊,蜂鳴器與發(fā)光二極管的聲光報警模塊。
主控模塊在整體設(shè)計中占據(jù)重要地位,起到對其余各個模塊的控制和協(xié)調(diào)功能。采用AT89C52單片機(jī)芯片作為主控模塊[5]。8位I/O接口P0-P3,與本設(shè)計外部的器件進(jìn)行通信與控制,兩個計數(shù)器,可以實(shí)現(xiàn)本設(shè)計的計數(shù)功能。引腳說明:時鐘電路引腳:XTAL1(19腳)和XTAL2(18腳),由于選用外部時鐘,因此XTAL1(19腳)接地。復(fù)位電路中:控制信號引腳RST(9腳):高電平信號輸入可以復(fù)位。ALE/PROG(30腳):地址鎖存信號端懸空。 以及PSEN(29腳):可以作為讀取存儲器的選通端。輸入/輸出端口P0/P1/P2/P3:P0口(P0.0~P0.7,32~39腳)和P1口(P1.0~P1.2,1~3腳)接顯示模塊LCD1602液晶顯示屏作為輸出單片機(jī)指令。P2口(P2.0~P2.1,21~22腳)接紅外傳感器使檢測到進(jìn)入與出去的人數(shù)作為輸入到單片機(jī)。P3口(P3.5~P3.7,15~17腳)接按鍵模塊中,P3.5:T1 計數(shù)器接設(shè)置上限人數(shù)按鍵S2。P3.6:外部數(shù)據(jù)存儲寫選通接按鍵S3上限人數(shù)加一。P3.7:外部數(shù)據(jù)存儲讀選通接按鍵S4上限人數(shù)減一。單片機(jī)最小系統(tǒng)是由AT89C52單片機(jī)、上拉電阻P1、復(fù)位電路、時鐘電路組成[6]。如圖2所示。
圖2 單片機(jī)最小系統(tǒng)電路圖
本設(shè)計的顯示模塊中要求顯示界面顯示的進(jìn)入人數(shù)J出去人數(shù)C和總?cè)藬?shù)Z的一些參數(shù)。采用LCD1602液晶顯示屏作為顯示模塊,主要技術(shù)是液晶制透光度技術(shù),顯示數(shù)字為熒綠的色彩。通過單片機(jī)控制LCD1602液晶顯示屏顯示數(shù)字,與一般數(shù)碼管比較,可以整體同時顯示。相較于數(shù)碼管來說看起來更清晰更明朗。
該模塊的原理:當(dāng)紅外檢測模塊檢測到有人經(jīng)過時,紅外接收電路輸出口將輸出一個高電平,這個高電平信號傳遞給主控模塊單片機(jī)完成計數(shù);用AT89C52的P0口分別作為數(shù)據(jù)線,用P1.2、P1.1、P1.0分別作為LCD液晶顯示屏的引腳接單片機(jī)的引腳EN、R/W、RS。這個顯示模塊主要為:將統(tǒng)計出來進(jìn)入的人數(shù)J置于第二行左端出去人數(shù)C置于第二行右端,第一行中間顯示總?cè)藬?shù)Z(即進(jìn)入人數(shù)J減出去人數(shù)C),同時實(shí)時一起顯示在LCD1602液晶顯示屏上,如圖3所示。
圖3 單片機(jī)與LCD1602接口
本系統(tǒng)的按鍵模塊中應(yīng)用獨(dú)立按鍵,按鍵的一端接IO口,且IO口接高電平,另一端接地。當(dāng)按鍵沒有按下時,IO接地。通過檢測與按鍵連接的IO口電平高低就可以判斷是否按下的按鍵。S1為復(fù)位按鍵,復(fù)位,系統(tǒng)開始重新工作;S3為增加按鍵,使設(shè)置上限人數(shù)增加;S4為減少按鍵,使設(shè)置上限人數(shù)減少;S2為開始設(shè)置上限人數(shù)/清零按鍵,可以進(jìn)行上限人數(shù)的設(shè)置或清除當(dāng)前統(tǒng)計的人數(shù),重新計數(shù),所圖4所示。
圖4 上限人數(shù)設(shè)置按鍵電路原理圖
本模塊設(shè)計的原理:紅外傳感器的紅外發(fā)射管發(fā)射的紅外線在能感應(yīng)的在一定范圍內(nèi),若沒有障礙物時,紅外傳感器的發(fā)射端發(fā)射出去的紅外線會因?yàn)閭鞑ゾ嚯x越遠(yuǎn)而紅外線的能量減少因而逐漸減弱,最后消失。若有障礙物時,紅外傳感器的發(fā)射端發(fā)射出去的紅外線遇到障礙物,就像蝙蝠或雷達(dá)定位一樣,應(yīng)用反射定理,紅外線被反射回到紅外傳感器的接收端[7]。
人數(shù)檢測模塊應(yīng)用的紅外傳感器是將紅外線反射回來的光變化轉(zhuǎn)化為電變化,將電平信號傳遞給單片機(jī)使之控制從而實(shí)現(xiàn)對人數(shù)的檢測[8]。它的組成包括:紅外傳感器發(fā)射端、紅外傳感器接收端以及檢測電路。檢測進(jìn)入人數(shù)J的紅外傳感器接單片機(jī)的接口P2.1口;檢測出去人數(shù)C的紅外傳感器接單片機(jī)的接口P2.0口。紅外傳感器將光的變化轉(zhuǎn)變?yōu)殡娖降淖兓箚纹瑱C(jī)的P2.1口與P2.0口的電平同時發(fā)生不同的變化使單片機(jī)發(fā)出不同的指令,從而完成對進(jìn)入人數(shù)J與出去人數(shù)C以及最終的總?cè)藬?shù)Z的統(tǒng)計,所圖5所示。
圖5 紅外傳感器與單片機(jī)接口圖
軟件處理聲光報警,利用蜂鳴器響起與發(fā)光二極管持續(xù)發(fā)光同時進(jìn)行人數(shù)達(dá)到上限報警。當(dāng)所測人數(shù)超過設(shè)置的上限人數(shù)時,數(shù)據(jù)口高電平,聲光報警輸出。聲光報警電路硬件連接如圖6。檢測進(jìn)出的紅外傳感器分別安裝在圖書館閱覽室門的兩側(cè)的通道,當(dāng)紅外傳感器探測到通道有人進(jìn)過時,紅外傳感器將此信號傳遞給單片機(jī),單片機(jī)接到此信號。若閱覽室總?cè)藬?shù)Z超過之前的預(yù)設(shè)人數(shù)時,單片機(jī)發(fā)出指令給P1.4端,由單片機(jī)接口P1.4連接的聲光報警模塊,從而聲光報警啟動,蜂鳴器響起同時發(fā)光二極管持續(xù)發(fā)亮。
圖6 聲光報警電路接圖
開機(jī)后,系統(tǒng)開始初始化,首先檢測S1鍵是否為低電平,若S1為低電平,則表示已按下S1鍵,根據(jù)圖書館閱覽室的最大人數(shù)容納量設(shè)置上限人數(shù);依次檢測S2鍵/S3鍵是否為低電平,若S2/S3鍵為低電平,表示已按下S2/S3鍵,增加/減少上限人數(shù)。之后再次檢測S1是否為低電平,當(dāng)人通過入口或出口時,紅外傳感器檢測經(jīng)過從中經(jīng)過的人數(shù),就可以檢測到進(jìn)入人數(shù)J或出去人數(shù)C,同時單片機(jī)將計數(shù)顯示指令給LCD1602液晶顯示屏使之顯示由進(jìn)入人數(shù)J與出去人數(shù)C相減得出總?cè)藬?shù)Z。若總?cè)藬?shù)超過預(yù)設(shè)上限人數(shù)時,單片機(jī)給出指令使聲光報警模塊感應(yīng)蜂鳴器響起發(fā)光二極管持續(xù)發(fā)亮;若有人依然通過進(jìn)入口或出口,被紅外傳感器檢測,并被單片機(jī)控制計數(shù)統(tǒng)計LCD1602顯示屏顯示人數(shù)但是報警模塊并未消除提醒人數(shù)達(dá)到上限。當(dāng)總?cè)藬?shù)Z低于預(yù)設(shè)總?cè)藬?shù)時;或者S1為低電平即S1按下則重新計數(shù);那么聲光報警才消失。主程序如圖7所示。
圖7 主程序流程圖
本文應(yīng)用AT889C52單片機(jī),具有集成度高、低功耗等很多強(qiáng)大的功能,在各個領(lǐng)域電子產(chǎn)品上有廣泛應(yīng)用。
其硬件電路應(yīng)用模擬電子技術(shù),主要包括一些簡單電路設(shè)計,比如:單片機(jī)最小系統(tǒng),紅外傳感器模塊、按鍵電路模塊,聲光報警電路模塊等。其軟件方面,應(yīng)用C語言根據(jù)程序框圖編寫程序,C語言簡潔緊湊、靈活方便而且應(yīng)用范圍廣,在很多電子產(chǎn)品的編程上也有廣泛應(yīng)用。
本設(shè)計檢測人數(shù)模塊中選用的紅外傳感器感應(yīng)范圍為5米左右,存在一定的誤差。例如:當(dāng)很多同學(xué)兩兩或更多結(jié)伴進(jìn)入圖書館閱覽室時易漏計人數(shù);在裝置處有人來回走動時易多次計算人數(shù);以及紅外傳感器的感應(yīng)范圍有限,因此可能會把靠近紅外傳感器周圍的人統(tǒng)計時多計數(shù)??梢圆捎门抨?duì)依次進(jìn)出,進(jìn)出的通道的標(biāo)識明顯、醒目,以及采用將進(jìn)出通道用材料加寬加高加厚以防止把周圍的人數(shù)計數(shù)等措施來解決誤差。