基于單片機的課堂簽到系統設計與實現
文章出處:http://www.katarog.com 作者:雷金莉,張 偉,李永博 人氣: 發表時間:2011年11月18日
目前大多數高校里,大都采用大班(合班)上課,統計學生出勤成了教師的一大難題。針對這一問題,設計了一個課堂簽到系統,以減輕教師的負擔,提高上課效率。
1 系統設計思想
課堂簽到系統采用插卡的方法,系統的組成結構圖如圖1 所示。其中卡可以采用一些廢舊的電話卡或其它卡來制作。根據學生的學號在卡上打上與其對應的二進制的孔,利用光電傳感器,將卡號轉化為學號,送入單片機進行識別、存儲和顯示,完成學生的簽到。另外,系統中還設置了顯示未到學生學號的功能。
2 系統硬件設計
課堂簽到系統的硬件部分可分為三大部分,即插卡部分、存儲部分和顯示部分。其中,插卡部分通過自制光電傳感器來實現卡號的采集,存儲部分采用常用的SRAM6264 來實現,顯示部分采用單片機的串口驅動LED 數碼管。本系統設計中,單片機采用ATMEL 公司的AT89C51 單片機,它是一種低功耗、高速的八位CMOS 芯片,片內含有4 KB Flash ROM ,128 字節RAM ,工作電壓范圍為2 .7 ~ 6 V(實際使用+ 5 V 供電) ,32 條I/O 線,2 個16 位定時/計數器和5 個中斷源等資源。可以很方便的實現鍵盤、顯示、A/D 轉換、D/A 轉換以及控制輸出接口。
2 .1 插卡電路
插卡電路通過自制光電傳感器實現。為了節省成本,本系統中采用發光二極管和普通光敏二極管構成了光電傳感器電路,電路圖如圖2 所示。由八個高亮發光二極管、普通光敏二極管和電阻構成簡單的光電傳感器。發光二極管和光敏二極管成對相向橫裝在有機玻璃插槽孔中。學生手持簽到卡上的預制孔與此插槽孔位置對應,用卡片上預制孔的組合形態構成二進制編碼(卡碼) 。電路中反向連接的光敏二極管與排阻用來產生單片機可識別的二進制代碼,分壓電線與單片機P1 口八線相連。經測試,在普通室內燈光環境下,對應無光照和有光照2 種情況,分壓點處的電壓變化分別在0 .2 V 以下和4 .6 V 以上,滿足單片機I/O 口的高低電平需要。
2 .2 存儲器電路
存儲器部分采用SRAM6264 芯片實現,6264是8K8 位的靜態數據存儲器芯片,該芯片與51單片機的連接電路簡單,易于實現,存儲空間最多可以存放8000 個學號,足以滿足該系統的要求。電路如圖3 所示。
2 .3 顯示電路
顯示電路在學生簽到時顯示簽到的學號,并在簽到完成之后,循環顯示未到學生的學號。學生的學號通常只有后三位不同,所以本系統采用三位LED 數碼管來顯示,顯示接口是通過擴展單片機的串行口來實現。采用8 位串入并出的移位寄存器74LS164 擴展了三個級聯8 位并行輸出口,如圖4 所示。74LS164 的A 、B 為串行數據輸入端(RXD) ;Q0 ~ Q7 為并行數據輸出端;CLK為同步時鐘輸入端(TXD) ,為清除端;220 Ω 電阻為對應LED 的限流電阻。
3 系統軟件設計
課堂簽到系統是在應用程序軟件控制下實現學生簽到功能。本系統軟件采用模塊化結構編制,系統控制軟件主要包括:主程序、LED 顯示子程序、讀卡和識別子程序、存儲學號子程序以及缺席者學號顯示子程序,主程序流程圖如圖5 所示。缺席者學號的顯示采用中斷方式實現,中斷信號來源于外部事件的觸發,在本系統中設計了一個開關,作為顯示未到學生學號的中斷信號,當開關閉合時,循環顯示缺席者的學號,中斷服務程序的流程圖如圖6 所示。
本簽到系統制作成敗的關鍵是卡碼與學號能否一一對應。在編制中,要想方便快捷的得到與卡碼對應的學號使用查表的方法是當然的選擇。一般講,八位二進制代碼可以確定256 種 狀態,去除全零這個無效態則最多可以用于總人數為255 個這對于一般的合班上課足夠了。
4 結論
本系統已經完成實驗調試,并能穩定運行。一次最多可考勤255 人。使用確定人數和學校統一學號時,需提前在單片機中預置。若教學班自行編號,則卡碼與片內編碼一致,無需更改,可多班級﹑長期反復使用。學生手持的卡片(簽到卡)沒有特殊要求,手頭的廢舊卡片(如電信卡)即可。廢物利用,既不用學生花一分錢,又符合綠色環保的設計理念。該系統的硬件電路簡單,所用的電子器件較少,故成本很低。