基于STC單片機(jī)的排隊(duì)管理系統(tǒng)的設(shè)計(jì)
摘要:為改善營(yíng)業(yè)窗口的服務(wù)質(zhì)量和工作效率,解決枯燥無(wú)序的排隊(duì)問(wèn)題,采用STC89C52單片機(jī)控制語(yǔ)音芯片、打印機(jī)、LCD顯示屏來(lái)模擬人工叫號(hào)過(guò)程,完成號(hào)碼的打印、存儲(chǔ)、顯示及播報(bào)工作;采用MAX485擴(kuò)展RS-485總線接口,實(shí)現(xiàn)分布式串行通信。該系統(tǒng)能滿(mǎn)足簡(jiǎn)單的排隊(duì)需求,具有開(kāi)發(fā)成本低,占用空間小等優(yōu)點(diǎn),有較好的市場(chǎng)應(yīng)用前景。
關(guān)鍵詞:排隊(duì)管理系統(tǒng);STC單片機(jī);語(yǔ)音芯片;串行通信
排隊(duì)問(wèn)題是銀行、醫(yī)院、工商、稅務(wù)、電信等行業(yè)普遍存在的問(wèn)題、設(shè)計(jì)一款模擬人工叫號(hào)過(guò)程,通過(guò)取號(hào)、進(jìn)隊(duì)、等待、叫號(hào)服務(wù)等功能代替人們站隊(duì)辛苦的排隊(duì)管理系統(tǒng)一直以來(lái)都是公共服務(wù)部門(mén)的迫切需求。然而,現(xiàn)在市場(chǎng)上主流產(chǎn)品的結(jié)構(gòu)形式大都是基于PC機(jī)的,此傳統(tǒng)模式占用PC機(jī)僅用于實(shí)現(xiàn)觸摸屏觸摸取號(hào)的功能及使用頻率較少的系統(tǒng)管理功能,其制造成本和開(kāi)發(fā)成本很高,使得許多中小行業(yè)都望而怯步,為了克服這一缺點(diǎn),文中系統(tǒng)采用性能強(qiáng)大、價(jià)格低廉的單片機(jī)來(lái)實(shí)現(xiàn)綜合管理和控制,設(shè)計(jì)并研制出體積小、結(jié)構(gòu)簡(jiǎn)單、可靠性高、維護(hù)操作方便、性?xún)r(jià)比較高的排隊(duì)管理系統(tǒng),文中介紹了該排隊(duì)管理系統(tǒng)的結(jié)構(gòu)及控制原理,并重點(diǎn)闡述了該排隊(duì)系統(tǒng)的組成及軟、硬件設(shè)計(jì)方案。
1 排隊(duì)管理系統(tǒng)結(jié)構(gòu)和功能
排隊(duì)管理系統(tǒng)由主顯示屏、語(yǔ)音單元、打印機(jī)及通信模塊組成,具體結(jié)構(gòu)如圖1所示。
控制系統(tǒng)的核心是微控制器STC89C52單片機(jī),由主機(jī)系統(tǒng)的P0口控制打印機(jī)和語(yǔ)音叫號(hào)功能的實(shí)現(xiàn),部分P1口控制顯示屏及按鍵操作,系統(tǒng)上電后,液晶顯示屏處于“您好歡迎光臨”的界面,系統(tǒng)根據(jù)取號(hào)按鍵的不同對(duì)不同的業(yè)務(wù)類(lèi)型分別進(jìn)行計(jì)數(shù),在顧客按取按鍵后,液晶顯示屏將顯示業(yè)務(wù)類(lèi)型供顧客選擇,待顧客選擇完畢,系統(tǒng)便控制微型打印機(jī)打印出相應(yīng)的票號(hào),之后返回主界面,當(dāng)查詢(xún)到從機(jī)有叫號(hào)請(qǐng)求時(shí),系統(tǒng)將控制語(yǔ)音播報(bào)單元播放相應(yīng)的語(yǔ)音提示信息。同時(shí)相應(yīng)從機(jī)的LED顯示屏顯示將要受理的顧客號(hào)。
2 系統(tǒng)硬件電路設(shè)計(jì)
2.1 顯示模塊設(shè)計(jì)
液晶顯示器選用北京青云公司生產(chǎn)的的帶中文字庫(kù)的LCM128645ZK液晶顯示屏,采用串行接口的方式傳輸數(shù)據(jù),以減少I(mǎi)/O口的使用,連接電路如圖2所示。P1_0、P1_1、P1_2引腳分別與LCM128645ZK的E(SCLK)、R/W(SID)和RS(CS)引腳相連。另外,引腳“VR”和“V0”之間接有可變電阻(0~10 kΩ),用來(lái)調(diào)節(jié)顯示區(qū)域的底色。
在模塊初始化階段,需要進(jìn)行功能設(shè)定,本次設(shè)計(jì)將其設(shè)為8-bit控制界面,基本指令集動(dòng)作,設(shè)置其為整體顯示,清DDRAM添滿(mǎn)“20H”并設(shè)定DDRAM的位址AC=0,最后位址清零,延時(shí)0.5 s以保證模塊初始化功能完成后就可以輸入數(shù)據(jù)了。
2.2 打印機(jī)模塊設(shè)計(jì)
打印機(jī)選用POS58行式熱敏微型打印機(jī)。它的打印速度快,環(huán)境適應(yīng)性強(qiáng),支持ANK字符、自定義字符和漢字字符的倍寬、倍高打印以及不同密度點(diǎn)圖及下裝圖形的打印,還可以調(diào)整字符的行間距。本設(shè)計(jì)采用并行接口的形式傳輸數(shù)據(jù),支持BUSY握手協(xié)議,其接口插座為DB25針型插座。通過(guò)P0口傳輸數(shù)據(jù)來(lái)控制微型打印機(jī)進(jìn)行打印工作,其中/STB端連接單片機(jī)的/RD端,/BUSY連接其INT1端。當(dāng)打印功能鍵按下,并用業(yè)務(wù)選擇功能鍵選擇了需要打印的業(yè)務(wù)類(lèi)型時(shí),若/BUSY為高電平時(shí),表示打印機(jī)忙,此時(shí)不能接受數(shù)據(jù),如果檢測(cè)到的信號(hào)為低電平,則將數(shù)據(jù)送到P0口,即將數(shù)據(jù)送到了打印機(jī)的數(shù)據(jù)口,然后軟件置/STB端為0,因?yàn)椋疭TB端是下降沿時(shí)允許輸入數(shù)據(jù),延時(shí)短暫的時(shí)間后,再置/STB為1,此時(shí)數(shù)據(jù)已被讀入打印機(jī),這樣就可以打印出相應(yīng)的內(nèi)容了。同時(shí),當(dāng)打印機(jī)出錯(cuò)時(shí),/ERR將被電阻上拉為高電乎,本設(shè)計(jì)中將/ERR端口引腳接地。同理,/ACK引腳為低電平時(shí)表示打印機(jī)準(zhǔn)備好,可以接收數(shù)據(jù),這里也將該端口引腳接地。
2.3 語(yǔ)音模塊設(shè)計(jì)
ISD1420是由臺(tái)灣華邦(winbond)公司開(kāi)出發(fā)的典型的單片高質(zhì)量短周期語(yǔ)音錄放集成電路,采用CMOS工藝、內(nèi)部包含片上時(shí)鐘麥克前置放大器自動(dòng)增益控制、帶通濾波器平滑濾波器和功率放大器。本次設(shè)計(jì)主要用STC89C52的P0口控制ISD1420語(yǔ)音芯片的A0-A7管腳來(lái)實(shí)現(xiàn)語(yǔ)音的分段錄放工作,其連接電路如圖3所示,首先,將需要播報(bào)的語(yǔ)音分段錄至存儲(chǔ)地址,按錄音鍵即可開(kāi)始錄音,軟件控制它0.5 s后結(jié)束錄音。按放音鍵可檢查音質(zhì)的好壞,如果按下加地址鍵,可使地址加4,同時(shí)液晶顯示屏上可以顯示出此時(shí)錄音的地址。這樣就可以從該地址開(kāi)始控制語(yǔ)音的錄入。這里,由于ISD1420語(yǔ)音芯片的最長(zhǎng)錄音時(shí)間為20 s,而其最小分辨率為0.125 s,即它最多可以錄制20/0.125=160段音。而其可存放語(yǔ)音的地址單元為00H~7FH,共128個(gè)地址,由此可見(jiàn)一個(gè)地址足以存放0.125 s的語(yǔ)音,義因?yàn)榇算y行叫號(hào)機(jī)的19段語(yǔ)音每段延時(shí)0.5 s,0.5/0.125=4,可見(jiàn)為每段延時(shí)0.5 s的語(yǔ)音分配4個(gè)地址就足夠了。
在主程序中.當(dāng)查詢(xún)到從機(jī)的叫號(hào)請(qǐng)求時(shí),將依次呼叫:“請(qǐng)****號(hào)顧客到*號(hào)窗口辦理”,呼叫完畢,等待下一次呼叫請(qǐng)求。這樣也就實(shí)現(xiàn)了選段放音,其中,各按鍵的定義如表1所示。
在ISD1420語(yǔ)音芯片的音頻輸出端即SP+端口接有LM386放大器,用來(lái)放大聲音信號(hào)。驅(qū)動(dòng)8 Ω、0.5 W的喇叭放音。需要注意的是LM386的旁路端口必須接電容再接地或者懸空,不可以直接接地,否則喇叭不能發(fā)出聲音,如圖4所示。
2.4 串口通信
系統(tǒng)采用總線型主從式結(jié)構(gòu)來(lái)實(shí)現(xiàn)多機(jī)通信,即在數(shù)個(gè)單片機(jī)中,有一個(gè)是主機(jī),其余是從機(jī),從機(jī)要服從主機(jī)的調(diào)度、支配。本設(shè)計(jì)采用RS-485串行標(biāo)準(zhǔn)總線進(jìn)行數(shù)據(jù)傳輸。并采用半雙工通信的MAX485接口芯片將單片機(jī)的TTL電平轉(zhuǎn)換為RS-485電平。
MAX485芯片的結(jié)構(gòu)和引腳都非常簡(jiǎn)單,內(nèi)部含有一個(gè)驅(qū)動(dòng)器和接收器。RO和D1端分別為接收器的輸出和驅(qū)動(dòng)器的輸入端,與單片機(jī)的RXD和TXD相連接;/RE和DE端分別為接收和發(fā)送的使能端,當(dāng)/RE為邏輯0時(shí),器件處于接收狀態(tài):當(dāng)DE為邏輯1時(shí),器件處于發(fā)送狀態(tài),因?yàn)镸AX485工作在半雙工狀態(tài),所以只用單片機(jī)的P32管腳控制這兩個(gè)引腳即可;A端和B端分別為接收和發(fā)送的差分信號(hào)端,當(dāng)A引腳的電平高于B時(shí),代表發(fā)送的數(shù)據(jù)為1;當(dāng)A的電平低于B端時(shí),代表發(fā)送的數(shù)據(jù)為0。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件程序主要包括兩部分內(nèi)容,首先,將需要播報(bào)的語(yǔ)音信息儲(chǔ)存到ISD1420語(yǔ)音芯片中,為了保證每一段錄音的質(zhì)量,我們結(jié)合液晶顯示屏來(lái)編寫(xiě)這部分的程序,將每一段錄音的存放地址以十進(jìn)制的形式顯示出來(lái),由單片機(jī)的引腳P2_7引腳控制語(yǔ)音芯片的/REC引腳,P2_5控制/PLAYL鍵,當(dāng)叫號(hào)功能按鍵按下時(shí),軟件將語(yǔ)音芯片的/REC管腳置成低電平,即開(kāi)始錄音,同理,當(dāng)放音功能按鍵按下時(shí)置語(yǔ)音芯片的/PLAYL引腳為低電平,開(kāi)始放音。另外當(dāng)加地址功能鍵按下時(shí),便可以用軟件控制P0口的地址加4,因?yàn)镻0口連接著語(yǔ)音芯片的A0~A7引腳,故使得錄音的地址也相應(yīng)的加4,同時(shí)把地址轉(zhuǎn)換成十進(jìn)制數(shù)在液晶屏上顯示。按照這個(gè)方法如果哪段音沒(méi)有錄好,則可以由按鍵控制單片機(jī)回到這一地址再重新錄制。將需要播放的語(yǔ)音分段存放到語(yǔ)音芯片中之后,在主程序中,就可以把顯示部分,叫號(hào)部分和打印部分綜合起來(lái)了,這樣就構(gòu)成了一個(gè)簡(jiǎn)單的排隊(duì)管理系統(tǒng),程序流程圖如圖5所示。
4 結(jié)論
文中針對(duì)服務(wù)行業(yè)嘈雜、無(wú)序、低效的排隊(duì)問(wèn)題,設(shè)計(jì)了基于STC89C52單片機(jī)的排隊(duì)管理系統(tǒng),具有低成本、便攜化的特點(diǎn)。通過(guò)焊接電路板、調(diào)試及初步應(yīng)用實(shí)驗(yàn),表明此系統(tǒng)工作穩(wěn)定可靠,可達(dá)到設(shè)計(jì)要求,具備一定的市場(chǎng)應(yīng)用潛力。