唐緒松 魏冬冬(北京理工大學宇航學院,北京 100081)
?
基于AT89S51單片機的自習室管理系統(tǒng)
唐緒松 魏冬冬
(北京理工大學宇航學院,北京 100081)
摘 要:本文以AT89S51單片機為核心,設(shè)計了一個自習室管理系統(tǒng),以幫助學生快速有效地選擇自習教室,使得學校教室資源可以得到合理高效地利用。教室部分系統(tǒng)作為基本主題,通過紅外計數(shù)、按鍵等方式對教室狀態(tài)進行采集判斷,然后采用有線通信方式與上位機進行通信,具有體積小、效率高、成本低、結(jié)構(gòu)簡單和可靠性強的優(yōu)點。
關(guān)鍵詞:AT89S51;單片機;紅外計數(shù);自習室管理系統(tǒng)
學校的空閑教室是學生們最喜歡用于上自習的地方,在教室自習雖然避免了下課后去圖書館找座的時間浪費。但是,由于每間教室分配的教學任務(wù)不同,其使用的時間和狀況也不同,所以想要在自己上課的教學樓找到一個空閑的教室也不是一件容易的事。
通過采用單片機控制的自習室管理系統(tǒng),可以簡單有效地解決上述問題,方便學生快速有效地找到合適的自習教室。通過單獨置于的教室的子系統(tǒng)對當前教室的使用情況和使用人數(shù)進行記錄,然后在教學樓相應(yīng)的區(qū)域進行顯示。這樣,學生可以通過系統(tǒng)顯示的內(nèi)容在其所處的教學樓內(nèi)進行自習室的選擇,大大節(jié)省了盲目找座的時間,對教室資源的高效使用也有很大的意義。
本系統(tǒng)主要包含兩個主體部分:教室單元和大廳單元(即總顯示部分)。系統(tǒng)的工作流程如下:
每個教室的使用狀態(tài)有“上課中”、“自習(人少)”和“自習(人多)”3種?,F(xiàn)用3種不同顏色的LED燈表示當前教室狀態(tài):紅色代表“上課中”;綠色代表“自習(人少)”;黃色代表“自習(人多)”。單片機通過對當前教室信息進行判斷,并且實時將教室信息用LED燈表示,并且在本樓層進行顯示。每個教室的使用信息數(shù)據(jù)由單片機通過有線通信的方式向上一級發(fā)送,然后位于大廳的單片機讀取各個樓層教室的使用數(shù)據(jù)并且點亮大廳的教室使用狀態(tài)燈。
各模塊間的關(guān)系如圖1所示。
圖1
自習室管理系統(tǒng)的主要部分是對教室的狀態(tài)信息進行采集與判斷,這里采用單片機作為控制中心。和51系列單片機兼容。片內(nèi)的存儲器允許在線重新編程或用常規(guī)的非易失性存
圖2
AT89S51是一種低功耗高性能的8位單片機,片內(nèi)帶有一個4KB的Flash在線可編擦除只讀存儲器,它采用了CMOS工藝和ATMEL公司的高密度非易失性存儲器技術(shù),而且其輸出引腳和指令系統(tǒng)儲器編程器來編程。同時已具有三級程序存儲器保密的性能。在眾多的51系列單片機中,要算ATMEL公司的AT89S51更實用,因為它不僅和MCS-51系列單片機指令、管腳完全兼容,而且它將通用CPU和在線可編程Flash集成在一個芯片上。AT89S51單片機對開發(fā)設(shè)備的要求很低,開發(fā)時間也大大縮短,方便使用。
2.1 教室單元設(shè)計
2.1.1 教室人數(shù)
對于自習室的使用來說,并不需要精確知道每個教室當前有多少人,因此采用紅外對管的方式對教室人數(shù)進行計算,原理如圖2所示。
將兩組紅外線發(fā)射接收對管安裝在圖2中所示的墻壁上,外側(cè)的紅外線發(fā)射接收對管的位置為P1,內(nèi)側(cè)的位置為P2,這里P1的P2之間需要有一定的間隔距離。此時根據(jù)P1和P2的觸發(fā)順序可以有兩種情況:P1先觸發(fā),P2后觸發(fā);P2先觸發(fā),P1后觸發(fā)。前者表示有人進入教室,這時總?cè)藬?shù)加1,后者表示有人離開教室,此時總?cè)藬?shù)減1。
計數(shù)過程流程圖如圖3所示,其中Pa=1代表位置P1處的紅外線發(fā)射接收對管被觸發(fā),Pb=1代表位置P2處的紅外線發(fā)射接收對管被觸發(fā)。
部分計數(shù)代碼如下:
MOV 20H,#0 // 清零
MAIN:MOV A,P1.0
ORL A,P1.1
MOV 45H,A
JNB 45H,MAIN
JNB P1.0,D1
JNB P1.1,MAIN
INC 20H //滿足進入條件,加1
SJMP MAIN
D1:JNB P1.1,MAIN
JNB P1.0,MAIN
DEC 20H //滿足離開條件,減1
SJMP MAIN
2.1.2 教室狀態(tài)
每個教室的使用狀態(tài)有“上課中”、“自習(人少)”和“自習(人多)”3種。現(xiàn)用3種不同顏色的LED燈表示當前教室狀態(tài):紅色代表“上課中”;綠色代表“自習(人少)”;黃色代表“自習(人多)”。上課狀態(tài)由控制按鍵決定,按鍵按下表示處于“上課中”,否則處于“自習”狀態(tài)。
取教室容量為A,當前教室學生數(shù)為B,考慮到一般自習教室的自習人數(shù)大約為教室容量A的80%,因此可令教室容量A的70%作為判斷教室容量狀態(tài)的標志:在自習狀態(tài)下,若B>70%A,則亮黃燈,否則亮綠燈。
2.1.3 數(shù)據(jù)收發(fā)
通過有線通信的方式實現(xiàn)AT89S51單片機與上位機的數(shù)據(jù)收發(fā)。給每個教室分配不同的端口地址。由于自習教室人員流動情況較小,單片機與服務(wù)器的通信頻率采用當有新數(shù)據(jù)需要傳送時進行通信,以降低系統(tǒng)的資源占用,提高系統(tǒng)的使用效率。
2.1.4 教室系統(tǒng)設(shè)計
考慮到實際應(yīng)用情況,采用AT89S51單片機的中斷系統(tǒng)對是否上課進行判斷,當中斷未出現(xiàn)時,單片機繼續(xù)監(jiān)控學生出入,當“上下課”中斷產(chǎn)生時,單片機跳出主程序,優(yōu)先執(zhí)行中斷,實現(xiàn)教室狀態(tài)信息燈的控制。具體設(shè)計流程如圖4所示。
由AT89S51單片機的P3.2引腳引入外部中斷INT0,外部中斷源INT0為低電平有效,當P3.2引腳輸入低電平時,單片機相應(yīng)該中斷,執(zhí)行相應(yīng)的中斷處理子程序。
部分主要代碼如圖5所示。
需要說明的是,跳出執(zhí)行的中斷處理子程序的功能只負責修改狀態(tài)燈的亮滅情況,不對計數(shù)器進行任何操作。
2.2 大廳單元設(shè)計
放置在大廳的是系統(tǒng)的總顯示系統(tǒng),用于集中顯示各教室的使用狀況。通過一片AT89S51單片機接收下級系統(tǒng)發(fā)送的狀態(tài)信息,并且由特定的端口地址取出對應(yīng)教室的使用狀況數(shù)據(jù),點亮對應(yīng)狀態(tài)指示燈。
圖3
圖4
圖5
本文所設(shè)計的系統(tǒng)具有體積小、效率高、成本低、結(jié)構(gòu)簡單和可靠性強的優(yōu)點。通過安裝該系統(tǒng),可以使高校的教室得到更加合理地利用,提高資源的利用率,避免了教室的空置和浪費。對于學生來說,該系統(tǒng)提供的教室信息也便于其快速有效地選擇自習教室,從而避開上課教室和自習人多的教室,大大減少了時間的浪費。相較于其他單片機來說,AT89S51具有價格低廉、功能強大的特點,因此,基于AT89S51單片機的該系統(tǒng)容易得到接受與推廣,具有很高的實用價值。
參考文獻
[1]蘭建軍,潘鳳紅.圖書館閱覽室座位信息管理系統(tǒng)[J].科技信息,2007(34):608-623.
[2]劉大杰.基于單片機和紅外接近開關(guān)的圖書館座位管理系統(tǒng)[J].電子工程師,2006,32(5):73-75.
[3]周興華.單片機智能化產(chǎn)品C語言設(shè)計實例詳解[M].北京:北京航空航天大學出版社,2006.
[4]范洪剛,魏學海,任思璟.51單片機自學筆記[M].北京:北京航空航天大學出版社,2010.
[5]陳永甫.紅外探測與控制電路[M].北京:人民郵電出版社,2003.
中圖分類號:TM762
文獻標識碼:A