呂守向 湯紫雄
(福州理工學(xué)院工學(xué)院 福建福州 350506)
電子叫號(hào)管理系統(tǒng)在排隊(duì)等待和排隊(duì)秩序等方面具有一定的改善意義。本文提出的電子叫號(hào)管理系統(tǒng)就是一款基于AT89C51來(lái)設(shè)計(jì)的智能呼叫管理系統(tǒng)。該系統(tǒng)由客戶端和主機(jī)終端組成,并通過(guò)LCD來(lái)顯示叫號(hào)信息,輔以呼叫提示音讓該系統(tǒng)提供的服務(wù)更加人性化。
電子叫號(hào)管理電路采用如圖1所示的結(jié)構(gòu)。所設(shè)計(jì)的電子叫號(hào)管理系統(tǒng)主要在客戶端執(zhí)行取號(hào)使之從機(jī)生成一組隊(duì)列,再由主機(jī)端對(duì)從機(jī)所生成的隊(duì)列實(shí)行統(tǒng)計(jì)管理。系統(tǒng)主要為兩個(gè)部分:抽號(hào)部分(從機(jī))和叫號(hào)部分(主機(jī)),其控制核心[1]為ATMEL公司的AT89C51單片機(jī),能很好的滿足排隊(duì)抽號(hào)的控制數(shù)據(jù)處理。整個(gè)系統(tǒng)的組成主要包含了按鍵模塊、主機(jī)控制模塊、LCD顯示模塊、放號(hào)廣播模塊等。其中取號(hào)模塊和放號(hào)模塊由相互獨(dú)立的 LCD顯示器分別給予顯示。取號(hào)功能通過(guò)按鍵即可實(shí)現(xiàn),對(duì)于放號(hào)呼叫則有四個(gè)按鍵。
圖1 系統(tǒng)結(jié)構(gòu)
系統(tǒng)中主機(jī)部分要實(shí)現(xiàn)由從機(jī)的排隊(duì)按鍵決定已排隊(duì)人數(shù)。在已知已排隊(duì)人數(shù)的前提下由按鍵K1/K2/K3/K4分別代表4個(gè)不同的窗口所叫到的號(hào)碼;顯示剩余的排隊(duì)人數(shù)有waiting鍵。從機(jī)部分只要完成客戶取號(hào)的功能。相對(duì)主機(jī)而言少了蜂鳴器和按鍵數(shù)。從機(jī)主要實(shí)現(xiàn)的是客戶端[2]的排隊(duì)順序記錄,限制排隊(duì)上限并傳送信息給主機(jī)。在主從機(jī)任務(wù)分工明確的條件下實(shí)現(xiàn)以上內(nèi)容,最后利用keil編譯完再進(jìn)行proteus仿真和成軟硬件設(shè)計(jì)和系統(tǒng)仿真。
(一)顯示電路。如圖2所示,P2.2連向顯示器的使能信號(hào),P2.1連向顯示器讀/寫端,P2.0連向顯示器數(shù)據(jù)/命令端,P0端連向顯示器8個(gè)數(shù)據(jù)接口。VL則用于調(diào)整顯示器的對(duì)比度。顯示器的控制可通過(guò)對(duì)E、RS、RW、的電平執(zhí)行寫入來(lái)實(shí)現(xiàn)。
圖2 顯示電路
(二)按鍵電路。按鍵電路如圖3所示,為簡(jiǎn)化分析,定義隊(duì)列長(zhǎng)度為10。首先由K0執(zhí)行取號(hào)輸入,開始計(jì)數(shù)。在取號(hào)頻率小于設(shè)定隊(duì)列長(zhǎng)度前提條件下,執(zhí)行+1操作直至取號(hào)數(shù)等于事先定義的長(zhǎng)度10時(shí),則不再排隊(duì)。放號(hào)主機(jī)的中斷和與門一同完成。假設(shè)4個(gè)工作人員在放號(hào)終端放出號(hào)碼,號(hào)碼最小的那位排隊(duì)人員前往指定放號(hào)終端,此時(shí)已受理該業(yè)務(wù)的那個(gè)放號(hào)終端就應(yīng)該自動(dòng)執(zhí)行銷號(hào)操作。中斷的號(hào)碼也應(yīng)通過(guò)與門執(zhí)行銷號(hào)-1操作和延時(shí)操作。
圖3 按鍵電路
(三)放號(hào)電路。如圖4所示,放號(hào)呼叫功能經(jīng)由蜂鳴電路端口的電平變化來(lái)實(shí)現(xiàn)。每一次放號(hào)呼叫前后時(shí)間間隔長(zhǎng)短可通過(guò)設(shè)置延遲來(lái)完成。四個(gè)按鍵執(zhí)行取號(hào)放號(hào)操作時(shí)蜂鳴器都將發(fā)出放號(hào)廣播聲。本次設(shè)計(jì)運(yùn)用延時(shí)程序[3]控制接蜂鳴器的端口輸出。
圖4 放號(hào)電路
(一)設(shè)計(jì)取號(hào)從機(jī)。當(dāng)系統(tǒng)運(yùn)行并掃描到K0開關(guān)閉合時(shí)就默認(rèn)取號(hào)操作開始執(zhí)行,便開始生成隊(duì)列。由于本次設(shè)計(jì)定義了隊(duì)列長(zhǎng)度為10,故計(jì)數(shù)器隨著隊(duì)列取號(hào)數(shù)的不斷增加循環(huán)執(zhí)行+1操作直至隊(duì)列長(zhǎng)度達(dá)到10才終止。其流程如圖5所示。
圖5 從機(jī)流程
(二)設(shè)計(jì)放號(hào)主機(jī)。根據(jù)排隊(duì)隊(duì)伍的不同狀態(tài),對(duì)LCD進(jìn)行相應(yīng)的顯示控制。如有窗口應(yīng)答并命令時(shí),運(yùn)用延時(shí)程序控制蜂鳴器的運(yùn)行[4],窗口顯示并以提示音呼叫。4個(gè)獨(dú)立的按鍵代表4個(gè)窗口實(shí)現(xiàn)顯示、叫號(hào)兩用功能。整個(gè)流程為將排隊(duì)人員中號(hào)碼最小的那個(gè)號(hào)傳到主機(jī),主機(jī)開始計(jì)算并與隊(duì)列長(zhǎng)度做比較進(jìn)而將號(hào)碼顯示在顯示器上并發(fā)出廣播,同時(shí)重新排列后續(xù)的號(hào)碼。
(三)設(shè)計(jì)放號(hào)廣播。放號(hào)呼叫功能經(jīng)由蜂鳴電路端口的電平變化來(lái)實(shí)現(xiàn)。每一次放號(hào)呼叫前后時(shí)間間隔長(zhǎng)短可通過(guò)設(shè)置延遲來(lái)完成。最后通過(guò)調(diào)用主程序?qū)崿F(xiàn)廣播功能。這樣的設(shè)計(jì)可使得系統(tǒng)提供的服務(wù)更加人性化[5]。其流程如圖6所示。
圖6 放號(hào)廣播流程
(四)設(shè)計(jì)顯示和銷號(hào)程序。銷號(hào)功能可以利用與門和循環(huán)左移的方式實(shí)現(xiàn)。顯示器和銷號(hào)流程如圖7、8所示。
圖7 顯示器流程
圖8 銷號(hào)流程
利用AT89C51在Proteus平臺(tái)上進(jìn)行原理圖的繪制。繪制完成后對(duì)程序編譯[6]得到HEX可執(zhí)行文件再加載到芯片進(jìn)行仿真[7]測(cè)試。測(cè)試結(jié)果如圖9-11所示。
圖9 系統(tǒng)測(cè)試一
圖10 系統(tǒng)測(cè)試二
圖11 系統(tǒng)測(cè)試三
本次設(shè)計(jì)以AT89C51為核心,分別對(duì)LCD1602為數(shù)碼顯示器、按鍵、叫號(hào)模塊等外圍電路進(jìn)行設(shè)計(jì)。通過(guò)對(duì)各模塊進(jìn)行軟件編程并借助Proteus對(duì)設(shè)計(jì)的電子叫號(hào)管理系統(tǒng)進(jìn)行測(cè)試。最終實(shí)現(xiàn)了對(duì)排隊(duì)進(jìn)行智能呼叫管理的功能。