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