武漢理工大學(xué)通信工程應(yīng)用技術(shù)課程設(shè)計報告_第1頁
武漢理工大學(xué)通信工程應(yīng)用技術(shù)課程設(shè)計報告_第2頁
武漢理工大學(xué)通信工程應(yīng)用技術(shù)課程設(shè)計報告_第3頁
武漢理工大學(xué)通信工程應(yīng)用技術(shù)課程設(shè)計報告_第4頁
武漢理工大學(xué)通信工程應(yīng)用技術(shù)課程設(shè)計報告_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

-.z.智能排隊系統(tǒng)摘要隨著現(xiàn)代技術(shù)的不斷開展特別是計算機技術(shù)的應(yīng)用,使排隊技術(shù)的開展也突飛猛進。智能排隊機或稱智能排隊系統(tǒng)是一種綜合運用計算機技術(shù)、網(wǎng)絡(luò)技術(shù)、多媒體技術(shù)、通訊控制技術(shù)的高新技術(shù)產(chǎn)品。它完全模擬了人群排隊過程,通過取號、進隊、排隊等待、叫號效勞等功能,取代各類效勞性窗口傳統(tǒng)的由顧客站立排隊的方式,實現(xiàn)了計算機系統(tǒng)代替客戶進展排隊的過程。適用于各類窗口效勞行業(yè),目前在國外已經(jīng)廣泛應(yīng)用于金融、醫(yī)院、電信、以及各級政府對外效勞窗口等行業(yè)。銀行自動叫號系統(tǒng)就是電子排隊管理統(tǒng)的一種,是針對銀行效勞窗口的特點而設(shè)計的。這里以ATMEL公司的AT89C52單片機為核心,設(shè)計了一個簡單的把客戶與效勞機構(gòu)相結(jié)合的排隊叫號系統(tǒng)。模擬排隊叫號管理,科學(xué)地處理各種排隊情況,操作簡便,控制靈活,顯示清晰,制作本錢低,性價比擬高。關(guān)鍵詞:排隊技術(shù)智能排隊系統(tǒng)銀行排隊叫號系統(tǒng)AT89C52AbstractWiththedevelopmentofmoderntechnology,especiallytheapplicationofcomputertechnology,thequeuingtechnologyalsodevelopsbyleapsandbounds.IntelligentAutomaticCallDistributororintelligentqueuingsystemisakindofhighandnewtechnologyproductsofthecomprehensiveuseofcomputertechnology,networktechnology,multimediatechnologyandcommunicationcontroltechnology.Itcompletelysimulatesthecrowdqueueprocess.Throughthefunctionsoftakingnumber,intotheteam,waitingforthequeue,callingthenumberandsoon,itreplacesallkindsofservicewindowofthetraditionalwaybythecustomertostandinline,andrealizingthecomputersysteminsteadoftheprocessofthecustomerslineup.itissuitableforallkindsofwindowserviceindustry,andatpresentithasbeenwidelyusedinforeignfinancial,hospital,telecommunications,andgovernment'sforeignservicewindowatalllevels,etc.Bankautomaticstationsystemiselectronicqueuingmanagementsystemwhichisdesignedaccordingtothecharacteristicsofthebankservicewindow.HeretakingATMELcompany'sAT89C52single-chipmicrocomputerasthecore,idesignasimplecallingthenumbersystemwhichcombinethecustomerswiththefacilitatingagency.Itsimulatesthequeuestationmanagementandscientificlyprocessesallkindsofqueuingsituation.Itissimpletooperate,smarttocontrol,andthedisplayisclear,andtheproductionisoflowcost,highcostperformance.Keywords:queuingtechnologyIntelligentAutomaticCallDistributorBankqueuingstationsystemAT89C521設(shè)計目的與任務(wù)要求1.1設(shè)計目的通過課程設(shè)計,使學(xué)生加強對電子電路的理解,學(xué)會對電路分析計算以及設(shè)計。進一步提高分析解決實際問題的能力,通過完成綜合設(shè)計型和創(chuàng)新性實驗及訓(xùn)練,創(chuàng)造一個動腦動手﹑獨立開展電路實驗的時機,鍛煉分析﹑解決電子電路問題的實際本領(lǐng),實現(xiàn)由課本知識向?qū)嶋H能力的轉(zhuǎn)化。1.2設(shè)計任務(wù)銀行叫號調(diào)度系統(tǒng):1.銀行門口有一個叫號機,在客戶操作下可打印出一個順序號;客戶按照順序號依次到銀行窗口辦理業(yè)務(wù);2.叫號機支持兩類業(yè)務(wù):現(xiàn)金業(yè)務(wù)和非現(xiàn)金業(yè)務(wù)。辦理現(xiàn)金業(yè)務(wù)的窗口有3個,辦理非現(xiàn)金業(yè)務(wù)的窗口有2個,稱為綜合窗口;現(xiàn)金業(yè)務(wù)窗口只能辦理現(xiàn)金業(yè)務(wù),而綜合業(yè)務(wù)窗口可以辦理現(xiàn)金業(yè)務(wù)和非現(xiàn)金業(yè)務(wù);3.非現(xiàn)金業(yè)務(wù)優(yōu)先級高,綜合業(yè)務(wù)窗口只有在沒有非現(xiàn)金業(yè)務(wù)情況下,才能辦理現(xiàn)金業(yè)務(wù);4.銀行工作人員在辦理了一個客戶業(yè)務(wù)后,按一個呼叫按鈕,由系統(tǒng)安排其下一個辦理業(yè)務(wù)的順序號;順序號在窗口前的LED屏上顯示的同時進展語音播音,提示客戶前來辦理業(yè)務(wù);設(shè)計一個叫號調(diào)度系統(tǒng),實現(xiàn)對辦理銀行業(yè)務(wù)的排隊和調(diào)度。1.3設(shè)計要求1.制定出業(yè)務(wù)調(diào)度控制規(guī)則;2.進展系統(tǒng)總體設(shè)計,畫出系統(tǒng)構(gòu)成框架圖;3.進展銀行業(yè)務(wù)前端排隊子系統(tǒng)的詳細(xì)設(shè)計;4.進展銀行業(yè)務(wù)調(diào)度系統(tǒng)的詳細(xì)設(shè)計;5.進展業(yè)務(wù)提示子系統(tǒng)〔LED屏顯示、語音提示〕的詳細(xì)設(shè)計;5.設(shè)計調(diào)度系統(tǒng)與排隊子系統(tǒng)、提示子系統(tǒng)的通信方式和通信協(xié)議;6.總結(jié)整個系統(tǒng)的設(shè)計,形成文檔,作為課程設(shè)計的結(jié)果提交。7.鼓勵進展完整的理論設(shè)計-編程-仿真過程。2方案設(shè)計由于在上課過程中接觸到了單片機的有關(guān)知識,對單片機的使用及編程都比擬熟悉,而嵌入式ARM板沒有接觸過,因此不太熟悉它的原理及使用,因此本次課程設(shè)計采用單片機來實現(xiàn),即用AT89C52單片機作為整個系統(tǒng)的控制核心,分別設(shè)計叫號電路、取號電路、顯示電路及聲音提示等外圍電路與單片機的對應(yīng)引腳相連接,然后編寫程序下載到單片機中通過單片機來控制外圍電路的功能,從而實現(xiàn)整個系統(tǒng)的功能仿真本次課程設(shè)計以單片機AT89C52為主體的模擬仿真系統(tǒng)。叫號局部和業(yè)務(wù)處理局部選擇鍵盤電路模式,顯示局部選擇LM016L液晶顯示模塊。3根本原理3.1鍵盤電路根本原理鍵盤分編碼鍵盤和非編碼鍵盤,鍵盤上閉合鍵的識別由專用的硬件編碼器實現(xiàn),并產(chǎn)生按鍵編碼號或鍵值的稱為編碼鍵盤,如計算機鍵盤。而靠軟件編程來識別的稱為非編碼鍵盤,在單片機組成的各種系統(tǒng)中,用的最多的是非編碼鍵盤。非編碼鍵盤又分為矩陣鍵盤和獨立鍵盤,分別如圖3.1〔a〕〔b〕所示。圖3.1〔a〕矩陣鍵盤圖3.1〔b〕獨立鍵盤

鍵盤掃描原理:在這種非編碼鍵盤的單片機系統(tǒng)中,鍵盤處理程序首先執(zhí)行有無按鍵按下的程序段,當(dāng)確認(rèn)有按鍵按下后,下一步就要識別哪一個按鍵被按下,對鍵的識別常采用逐行〔逐列〕掃描的方法。首先判斷有無按鍵按下。方法是:向行線輸出全掃描字00H,把全部行線置為低電平,然后將列線的電平狀態(tài)讀入到累加器A中,如果有按鍵按下,會使列線電平被拉至低電平,是列輸入不全為1。判斷鍵盤哪一個鍵被按下。方法是:一次給行線送低電平,然后查所有列線狀態(tài),稱為行掃描,如果全為1,則所按下鍵不在此行,如果不全為1,則所按下鍵必在此行,而且是在與零電平列線相交的交點上的那個鍵。在此,按鍵的位置碼并不等于按鍵的實際定義鍵值,因此還必須進展轉(zhuǎn)換,即鍵值譯碼。在本次課程設(shè)計中,由于只需采用兩個取號鍵盤和五個效勞窗口鍵盤,所以我采用了獨立鍵盤來實現(xiàn),在程序中直接對連接鍵盤的單片機引腳進展掃描,假設(shè)引腳為0且延時去抖動之后仍為低電平則說明該鍵盤按下了。3.2ATC89C52根本原理單片機ATC89C52具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設(shè)計需要,很適合便攜手持式產(chǎn)品的設(shè)計使用系統(tǒng)可用二節(jié)電池供電。晶振采用12MHZ。其芯片管腳圖如圖3.2所示。圖3.2ATC89C52單片機VCC:電源。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當(dāng)FIASH進展校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫1時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進展存取時,P2口輸出地址的高八位。在給出地址"1〞時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進展讀寫時,P2口輸出其特殊功能存放器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入1后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流〔ILL〕這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下:P3.0R*D〔串行輸入口〕P3.1T*D〔串行輸出口〕P3.2/INT0〔外部中斷0〕P3.3/INT1〔外部中斷1〕P3.4T0〔記時器0外部輸入〕P3.5T1〔記時器1外部輸入〕P3.6/WR〔外部數(shù)據(jù)存儲器寫選通〕P3.7/RD〔外部數(shù)據(jù)存儲器讀選通〕P3口同時為閃爍編程和編程校驗接收一些控制信號。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想制止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執(zhí)行MOV*,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE制止,置位無效。PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲〔0000H-FFFFH〕,不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源。3.3LCD液晶顯示根本原理3.3.1LM061L液晶模塊LM016L液晶模塊采用HD44780控制器,hd44780具有簡單而功能較強的指令集,可以實現(xiàn)字符移動,閃爍等功能,LM016L與單片機MCU通訊可采用8位或4位并行傳輸兩種方式,hd44780控制器由兩個8位存放器,指令存放器〔IR〕和數(shù)據(jù)存放器〔DR〕忙標(biāo)志〔BF〕,顯示數(shù)RAM〔DDRAM〕,字符發(fā)生器ROMA〔CGOROM〕字符發(fā)生器RAM〔CGRAM〕,地址計數(shù)器RAM(AC)。IR用于存放指令碼,只能寫入不能讀出,DR用于存放數(shù)據(jù),數(shù)據(jù)由內(nèi)部操作自動寫入DDRAM和CGRAM,或者暫存從DDRAM和CGRAM讀出的數(shù)據(jù),BF為1時,液晶模塊處于內(nèi)部模式,不響應(yīng)外部操作指令和承受數(shù)據(jù),DDTAM用來存儲顯示的字符,能存儲80個字符碼。CGRAM是為用戶編寫特殊字符留用的,它的容量僅64字節(jié),可以自定義8個5*7點陣字符或者4個5*10點陣字符,AC可以存儲DDRAM和CGRAM的地址,如果地址碼隨指令寫入IR,則IR自動把地址碼裝入AC,同時選擇DDRAM或CGRAM,LM016L 液晶模塊如圖3.3.1-1所示,其引腳功能如表3.3.1-1所示:圖3.3.1-1LM016L液晶表3.3.1-1LM016L液晶引腳功能引腳符號功能說明1VSS一般接地2VDD接電源〔+5V〕3V0液晶顯示器比照度調(diào)整端,接正電源時比照度最弱,接地電源時比照度最高〔比照度過高時會產(chǎn)生"鬼影〞,使用時可以通過一個10K的電位器調(diào)整比照度〕。4RSRS為存放器選擇,高電平1時選擇數(shù)據(jù)存放器、低電平0時選擇指令存放器。5R/WR/W為讀寫信號線,高電平1時進展讀操作,低電平0時進展寫操作。6EE(或EN)端為使能(enable)端,下降沿使能。7DB0底4位三態(tài)、雙向數(shù)據(jù)總線0位〔最低位〕8DB1底4位三態(tài)、雙向數(shù)據(jù)總線1位9DB2底4位三態(tài)、雙向數(shù)據(jù)總線2位10DB3底4位三態(tài)、雙向數(shù)據(jù)總線3位11DB4高4位三態(tài)、雙向數(shù)據(jù)總線4位12DB5高4位三態(tài)、雙向數(shù)據(jù)總線5位13DB6高4位三態(tài)、雙向數(shù)據(jù)總線6位14DB7高4位三態(tài)、雙向數(shù)據(jù)總線7位〔最高位〕〔也是busyflang〕LM016L液晶模塊內(nèi)部的控制器共有11條控制指令,如表所示:表3.3.2-1控制命令表3.3.2LM016L的指令說明及時序LM016L液晶模塊內(nèi)部的控制器共有11條控制指令,如表所示:表3.3.2-1控制命令表序號指令RSR/WD7D6D5D4D3D2D1D0功能1復(fù)位顯示器0000000001清屏,光標(biāo)歸位2光標(biāo)返回000000001*設(shè)置地址計數(shù)器清零,DDRAM數(shù)據(jù)不變,光標(biāo)移到左上角3字符進入模式00000001I/DS設(shè)置字符進入時的屏幕移位方式4顯示開/關(guān)控制0000001DCB設(shè)置顯示開關(guān),光標(biāo)開關(guān),閃爍開關(guān)5光標(biāo)或字符移位000001S/CR/L**設(shè)置字符與光標(biāo)移動6功能設(shè)置00001LNF**設(shè)置DL,顯示行數(shù),字體7設(shè)置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址設(shè)置6位的CGRAM地址以讀/寫數(shù)據(jù)8設(shè)置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址設(shè)置7位的DDRAM地址以讀/寫數(shù)據(jù)9讀忙標(biāo)志或地址01BF計數(shù)器地址讀忙標(biāo)志及地址計數(shù)器10寫數(shù)據(jù)到CGRAM或DDRAM10寫入一字節(jié)數(shù)據(jù),需要先設(shè)置RAM地址向CGRAM/DDRAM寫入一字節(jié)的數(shù)據(jù)11從CGRAM或DDRAM讀數(shù)據(jù)11讀取入一字節(jié)數(shù)據(jù),需要先設(shè)置RAM地址從CGRAM/DDRAM讀取一字節(jié)的數(shù)據(jù)I/D=1遞增,I/D=0遞減。S=0時顯示屏不移動,S=1時,如果I/D=1且有字符寫入時顯示屏左移,否則右移。D=1顯示屏開,D=0顯示屏關(guān)。C=1時光標(biāo)出現(xiàn)在地址計數(shù)器所指的位置,C=0時光標(biāo)不出現(xiàn)。B=1時光標(biāo)出現(xiàn)閃爍,B=0時光標(biāo)不閃爍。S/C=0時,RL=0則光標(biāo)左移,否則右移。S/C=1時,RL=0則字符和光標(biāo)左移,否則右移。DL=1時數(shù)據(jù)長度為8位,DL=0時為使用D7-D4共4位,分兩次送一字節(jié)。N=0為單行顯示,N=1時為雙行顯示。F=1時為510點陣字體,F(xiàn)=0時為57點陣字體。BF=1時LCD忙,BF=0時LCD就緒。LM016L液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實現(xiàn)的?!舱f明:1為高電平、0為低電平〕指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。指令3:光標(biāo)和顯示模式設(shè)置I/D:光標(biāo)移動方向,高電平右移,低電平左移S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。指令4:顯示開關(guān)控制。D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo)B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標(biāo)或顯示移位S/C:高電平時移動顯示的文字,低電平時移動光標(biāo)。指令6:功能設(shè)置命令DL:高電平時為4位總線,低電平時為8位總線N:低電平時為單行顯示,高電平時雙行顯示F:低電平時顯示5*7的點陣字符,高電平時顯示5*10的點陣字符。指令7:字符發(fā)生器RAM地址設(shè)置。指令8:DDRAM地址設(shè)置。指令9:讀忙信號和光標(biāo)地址BF:為忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。

與HD44780相兼容的芯片時序表如:表3.3.2-2根本操作時序表讀狀態(tài)輸入RS=L,R/W=H,E=H輸出D0~D7=狀態(tài)字寫指令輸入RS=L,R/W=L,D0~D7=指令碼,E=高脈沖輸出無讀數(shù)據(jù)輸入RS=H,R/W=H,E=H輸出D0~D7=數(shù)據(jù)寫數(shù)據(jù)輸入RS=H,R/W=L,D0~D7=數(shù)據(jù),E=高脈沖輸出無4系統(tǒng)設(shè)計4.1業(yè)務(wù)調(diào)度控制規(guī)則設(shè)計由于本次課設(shè)要求是叫號機支持兩類業(yè)務(wù):現(xiàn)金業(yè)務(wù)和非現(xiàn)金業(yè)務(wù)。辦理現(xiàn)金業(yè)務(wù)的窗口有3個,辦理非現(xiàn)金業(yè)務(wù)的窗口有2個,稱為綜合窗口;現(xiàn)金業(yè)務(wù)窗口只能辦理現(xiàn)金業(yè)務(wù),而綜合業(yè)務(wù)窗口可以辦理現(xiàn)金業(yè)務(wù)和非現(xiàn)金業(yè)務(wù);非現(xiàn)金業(yè)務(wù)優(yōu)先級高,綜合業(yè)務(wù)窗口只有在沒有非現(xiàn)金業(yè)務(wù)情況下,才能辦理現(xiàn)金業(yè)務(wù);銀行工作人員在辦理了一個客戶業(yè)務(wù)后,按一個呼叫按鈕,由系統(tǒng)安排其下一個辦理業(yè)務(wù)的順序號;順序號在窗口前的LED屏上顯示的同時進展語音播音,提示客戶前來辦理業(yè)務(wù)。因此,本次我設(shè)計的銀行叫號系統(tǒng)其業(yè)務(wù)調(diào)度規(guī)則如下:銀行設(shè)置兩個取號機,分別是現(xiàn)金業(yè)務(wù)取號機和非現(xiàn)金業(yè)務(wù)取號機,顧客根據(jù)自身辦理業(yè)務(wù)來選擇對應(yīng)叫取號機打印自己的號碼;銀行共設(shè)置五個叫號機,其中2個非現(xiàn)金業(yè)務(wù)叫號機和3個現(xiàn)金業(yè)務(wù)叫號機來分別對應(yīng)5個效勞窗口;現(xiàn)金業(yè)務(wù)窗口只能處理現(xiàn)金業(yè)務(wù);非現(xiàn)金業(yè)務(wù)窗口能處理兩種業(yè)務(wù),但假設(shè)有非現(xiàn)金業(yè)務(wù),非現(xiàn)金業(yè)務(wù)窗口優(yōu)先處理非現(xiàn)金業(yè)務(wù),完成后才處理現(xiàn)金業(yè)務(wù)。非現(xiàn)金業(yè)務(wù)和現(xiàn)金業(yè)務(wù)待處理的堆積量分別均為20人,以免引起取號過多等待效勞的人數(shù)過多導(dǎo)致超負(fù)荷效勞。4.2前端排隊子系統(tǒng)設(shè)計前端排隊子系統(tǒng)我主要是靠2個按鍵來模擬兩個取號機,以LM016L液晶顯示來模擬打印機顯示客戶的號碼,然后通過程序來控制顧客取號排隊的過程。其電路圖如圖4.2-1所示,取號排隊流程圖如圖4.2-2所示。圖4.2-1取號排隊電路圖圖4.2-2排隊取號流程圖4.3銀行業(yè)務(wù)調(diào)度系統(tǒng)設(shè)計銀行業(yè)務(wù)調(diào)度系統(tǒng)主要實現(xiàn)的就是對顧客業(yè)務(wù)的處理,5個處理窗口共分為2個非現(xiàn)金業(yè)務(wù)和3個現(xiàn)金業(yè)務(wù)的處理窗口,在仿真中我采用了5個按鍵來模擬著5個處理窗口,然后通過程序來控制單片機實現(xiàn)整個業(yè)務(wù)的分類處理和優(yōu)先理處理的問題。其流程圖如下列圖所示,電路圖如圖4.3-1所示:圖4.3-1業(yè)務(wù)調(diào)度電路圖4.4業(yè)務(wù)提示子系統(tǒng)設(shè)計4.4.1液晶顯示電路本次課設(shè)我采用了LM016L液晶來模擬顯示,主要對排隊取號的號碼進展顯示〔模擬實際系統(tǒng)中的打印機〕以及對效勞窗口叫號的顯示,其電路如圖4.4.1-1所示,單片機P1口接LM016L的8個雙向數(shù)據(jù)線接口,P3.4接LM016L的數(shù)據(jù)/命令選擇端,P3.5接LM016L的使能信號。通過對RS以及E的上下電平進展寫指令和寫數(shù)據(jù)操作來控制LM016L的顯示。圖4.4.1-1顯示系統(tǒng)4.4.2聲音提示電路實際銀行排隊叫號系統(tǒng)中,當(dāng)效勞窗口可以效勞時,會有播送播報對應(yīng)的"請**號顧客到**號窗口〞的提示音,但是由于PROTUES里面沒有語音芯片,沒方法進展錄音仿真,于是本課設(shè)里面我采用了簡單的蜂鳴器發(fā)聲電路來模擬實際的語音電路,以簡單的蜂鳴器發(fā)聲來到達聲音提示的效果,其電路圖如圖4.4.2-1所示。圖4.4.2-1蜂鳴器聲音提示電路4.5系統(tǒng)總設(shè)計整個銀行排隊叫號系統(tǒng)的原理電路圖如圖4.5-1所示,其程序流程圖如圖4.5-2所示。圖4.5-1系統(tǒng)總原理圖圖4.5-2系統(tǒng)總流程圖5仿真結(jié)果及分析首先,我將非現(xiàn)金業(yè)務(wù)取號鍵按兩次,結(jié)果如圖5-1顯示,說明非現(xiàn)金業(yè)務(wù)取號正常。圖5-1非現(xiàn)金業(yè)務(wù)取號然后分別按下現(xiàn)金業(yè)務(wù)的叫號窗口1、2、3的對應(yīng)鍵,結(jié)果均如圖5-2所示,說明現(xiàn)金業(yè)務(wù)窗口不能處理非現(xiàn)金業(yè)務(wù),且無現(xiàn)金業(yè)務(wù)排隊時其窗口顯示隊列空。圖5-2現(xiàn)金業(yè)務(wù)窗口的限制然后依次按下非現(xiàn)金業(yè)務(wù)處理窗口1、2對應(yīng)鍵,結(jié)果如圖5-3所示,同時蜂鳴器發(fā)聲,說明非現(xiàn)金業(yè)務(wù)能正常處理非現(xiàn)金業(yè)務(wù)。圖5-3非現(xiàn)金業(yè)務(wù)處理然后,我按下四次現(xiàn)金業(yè)務(wù)取號鍵,其結(jié)果如圖5-4顯示,說明現(xiàn)金業(yè)務(wù)取號正常。圖5-4現(xiàn)金業(yè)務(wù)取號然后,我一次按下了現(xiàn)金業(yè)務(wù)處理窗口3、4、5,結(jié)果如5-5所示,同時蜂鳴器發(fā)聲,說明現(xiàn)金業(yè)務(wù)處理正常。圖5-5現(xiàn)金業(yè)務(wù)處理

然后,我又按下一次非現(xiàn)金業(yè)務(wù)取號鍵,結(jié)果如5-6顯示,說明現(xiàn)金和非現(xiàn)金業(yè)務(wù)共同取號正常。圖5-6綜合取號然后,我按下非現(xiàn)金業(yè)務(wù)處理窗口1,結(jié)果顯示如圖5-7,同時蜂鳴器發(fā)聲,說明非現(xiàn)金業(yè)務(wù)的優(yōu)先級在現(xiàn)金業(yè)務(wù)之前。圖5-6非現(xiàn)金業(yè)務(wù)的優(yōu)先權(quán)然后,我再次按下非現(xiàn)金業(yè)務(wù)處理窗口1,結(jié)果顯示如圖5-7,同時蜂鳴器發(fā)聲,說明非現(xiàn)金業(yè)務(wù)處理窗口在處理完非現(xiàn)金業(yè)務(wù)之后也能處理現(xiàn)金業(yè)務(wù)。圖5-7非現(xiàn)金業(yè)務(wù)窗口處理現(xiàn)金業(yè)務(wù)然后,我將現(xiàn)金業(yè)務(wù)和非現(xiàn)金業(yè)務(wù)取號窗口各按21次,其顯示均如圖5-8所示,說明非現(xiàn)金業(yè)務(wù)和現(xiàn)金業(yè)務(wù)都能限制待處理人數(shù)在20人以內(nèi)。圖5-8排隊隊列已滿綜上所述,所設(shè)計的銀行排隊叫號系統(tǒng)能夠正確實現(xiàn)所需的功能,性能優(yōu)良。6心得體會通過這幾天的單片機的課設(shè)設(shè)計,我在理論的根底上更深刻的掌握了單片機的深層內(nèi)容及實際生活中的應(yīng)用,實訓(xùn)鍛煉了自己動手能力和思維能力,還有在軟件方面的編程能力,讓我受益匪淺,同時也暴露出一些平時學(xué)習(xí)上的問題,讓我深刻反思。這些問題的發(fā)現(xiàn)將為我以后的學(xué)習(xí)和工作找明道路,查漏補缺為進一步學(xué)習(xí)作好準(zhǔn)備。通過實訓(xùn),讓我更熟悉掌握了KeiluVision3,ProteusISIS,Protel99SE這些應(yīng)用程序的運用,讓我懂得了如何編寫一些簡單的程序,學(xué)會了如何制作單片機應(yīng)用程序,這幾天我經(jīng)過同學(xué)的耐心的講解和指導(dǎo)通過自己認(rèn)真的動手操作,終于將一個完整的能完成實習(xí)要求的單片機原理圖制作出來了。但在實訓(xùn)中間暴露出很多問題:對平時上課講的理論知識沒有完全掌握消化,到了實際操作中還得請教教師和同學(xué),在編程和畫圖的時候不能持之以恒,怕麻煩和容易否認(rèn)自己。這些問題的發(fā)現(xiàn),有助于提高我在以后的工作和學(xué)習(xí)中對此類問題的認(rèn)識,確保不在同一問題上再次犯錯。嚴(yán)謹(jǐn)求實、踏實務(wù)實,是我這次實訓(xùn)的深刻總結(jié)。參考文獻:[1]謝自美.電子線路設(shè)計·實驗·測試(第三版).:華中科技大學(xué)出版社[2]李群芳.單片微型計算機與接口技術(shù)〔第3版〕.電子工業(yè)出版社,2008[3]劉教瑜.單片機原理及應(yīng)用.武漢理工大學(xué)出版社,2011[4]張東亮.單片機原理與應(yīng)用.人民郵電出版社,2009[5]郭天祥.51單片機C語言教程——入門、提高、開發(fā)、拓展全攻略.電子工業(yè)出版社,2009[6]章工榮.計算機高級應(yīng)用.高等教育出版社,2004[7]李文成.計算機程序設(shè)計根底.科學(xué)出版社,2007[8]張錦程.C語言高級程序設(shè)計及其講解.機械工業(yè)出版社,2000附錄:源程序#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbitrs=P3^4;sbite=P3^5;sbitrs2=P3^2;sbite2=P3^3;sbitkey1=P1^0;//非現(xiàn)金業(yè)務(wù)取號sbitkey2=P1^1;sbitkey3=P1^2;sbitsounder=P3^7;sbitkey4=P1^3;sbitkey5=P1^4;sbitkey6=P1^5;sbitkey7=P1^6;//現(xiàn)金業(yè)務(wù)取號ucharprompt1[]="YourNo.is00!";ucharprompt2[]="No.00GoToWin.0";ucharprompt3[]="Queueisfull";ucharprompt4[]="Queueisempty!";ucharprompt5[]="Welcome!";staticuintnum_count=0;//現(xiàn)金業(yè)務(wù)排隊取的號碼staticuintidatarank_number[20]={0};//排隊叫號存儲的數(shù)組staticuintnum=0;//窗口消的現(xiàn)金號碼staticintRankFlag=0;//現(xiàn)金取號的標(biāo)志staticintClearNumFlag=0;//消號的標(biāo)志staticuintLengthFlag=0;//現(xiàn)金業(yè)務(wù)隊列長度取一次號時+1,消一次號時-1staticuintidatarank_number1[20]={0};//非現(xiàn)金業(yè)務(wù)排隊叫號存儲的數(shù)組staticuintnum1=0;//窗口消的非現(xiàn)金號碼staticintRankFlag1=0;//非現(xiàn)金取號的標(biāo)志staticintClearNumFlag1=0;//消號的標(biāo)志staticuintLengthFlag1=0;//非現(xiàn)金業(yè)務(wù)隊列取一次號時+1,消一次號時-1uintidata*dataq1=rank_number1;uintidata*dataq2=rank_number;/*延時函數(shù)*/voiddelay(uintn){while(n--);}/*****************************************LCD1602*顯示屏命令寫入函數(shù)******************************************/voidLCD_write_(uchar){e=0;rs=0;P0=;delay(1000);e=1;delay(1000);e=0;}voidLCD_write_com2(uchar){e2=0;rs2=0;P2=;delay(1000);e2=1;delay(1000);e2=0;}/*****************************************LCD1602*顯示屏數(shù)據(jù)寫入函數(shù)******************************************/voidLCD_write_data(uchardat){e=0;rs=1;P0=dat;delay(1000);e=1;delay(1000);e=0;}voidLCD_write_data2(uchardat){e2=0;rs2=1;P2=dat;delay(1000);e2=1;delay(1000);e2=0;}/*****************************************LCD1602*顯示屏清空顯示******************************************/voidLCD_clear(void){LCD_write_(0*01);delay(1000);}voidLCD_clear2(void){LCD_write_com2(0*01);delay(1000);}

/*****************************************LCD1602顯示屏初始化函數(shù)*****************************************/voidLCD_init(void){LCD_write_(0*38);/*顯示模式設(shè)置*/delay(100);LCD_write_(0*38);delay(100);LCD_write_(0*38); delay(100);LCD_write_(0*38); //設(shè)置16*2顯示,5*7點陣,8位數(shù)據(jù)接口LCD_write_(0*08);/*顯示關(guān)閉*/LCD_write_(0*01);/*顯示清屏,指針清零*/LCD_write_(0*06);/*寫一個字符后地址指針自動加1*/delay(100);LCD_write_(0*0C);/*顯示開及不顯示光標(biāo)*/}voidLCD_init2(){LCD_write_com2(0*38); //設(shè)置16*2顯示,5*7點陣,8位數(shù)據(jù)接口LCD_write_com2(0*08);/*顯示關(guān)閉*/LCD_write_com2(0*01);/*顯示清屏,指針清零*/LCD_write_com2(0*06);/*寫一個字符后地址指針自動加1*/delay(100);LCD_write_com2(0*0C);/*顯示開及不顯示光標(biāo)*/}/*簡單的蜂鳴器提示音*/voidsound(){ uinta; for(a=0;a<500;a++) { sounder=0; delay(61); sounder=1; }}/*獲取鍵值函數(shù)*/uintsweep_key(){uintjianzhi;if(key1==0) //非現(xiàn)金取號 { delay(1000); if(key1==0) jianzhi=1; //1 RankFlag1=1; } if(key7==0) //現(xiàn)金取號 { delay(1000); if(key7==0) jianzhi=7; //7 RankFlag=1; } if(key2==0||key3==0) //非現(xiàn)金業(yè)務(wù)銷號按鍵 { delay(1000); if(key2==0) jianzhi=2; //2 if(key3==0) jianzhi=3; //3 ClearNumFlag1=1; } if(key4==0||key5==0||key6==0) //現(xiàn)金業(yè)務(wù)銷號按鍵 { delay(1000); if(key4==0) jianzhi=4; //4 if(key5==0) jianzhi=5; //5 if(key6==0) jianzhi=6; //6 ClearNumFlag=1; } return(jianzhi);}/*****************************************取號機按一次鍵變量+1,最大為20*****************************************/voidQueueNumProcess(){if(RankFlag1==1)//判斷非現(xiàn)金取號標(biāo)志是否有效{if(LengthFlag1<20){ num_count++; //總排隊人數(shù) *(q1+LengthFlag1)=num_count;}LengthFlag1++;}if(RankFlag==1)//判斷現(xiàn)金取號標(biāo)志是否有效{if(LengthFlag<20){ num_count++; *(q2+LengthFlag)=num_count;}LengthFlag++;}}

/*****************************************窗口消號處理函數(shù)*****************************************/voidClearNumProcess(){uinti; if(ClearNumFlag1==1)//判斷消號標(biāo)志是否有效{num1=*q1;//把消的非現(xiàn)金號賦給全局變量num1for(i=0;i<20;i++)//讓數(shù)組整體左移一個存儲單元,即把消得號刪除{ *(q1+i)=*(q1+i+1);}LengthFlag1--;}if(ClearNumFlag==1)//判斷消號標(biāo)志是否有效{num=*q2;//把消的號賦給全局變量numfor(i=0;i<20;i++)//讓數(shù)組整體左移一個存儲單元,即把消得號刪除{ *(q2+i)=*(q2+i+1);}LengthFlag--;}}/*****************************************檢測到按鍵后,檢測函數(shù)處理及LCD顯示處理*****************************************/voidCheckButtonProcess(uintm)//m代表檢測到的鍵值{uintjz,i;jz=m;if((jz==1)&&(RankFlag1==1)) //非現(xiàn)金業(yè)務(wù)取號{//當(dāng)隊列人數(shù)到達20時,提示//Queueisfull if(LengthFlag1>=20) { LCD_clear2(); LCD_write_com2(0*80+0*02); delay(100); for(i=0;i<16;i++) { LCD_write_data2(prompt3[i]); delay(100); } }else{ QueueNumProcess(); prompt1[11]=(num_count)/10+'0'; prompt1[12]=(num_count)%10+'0'; LCD_clear2(); LCD_write_com2(0*80+02); delay(100); for(i=0;i<15;i++) { LCD_write_data2(prompt1[i]);//"YourNo.is00!"; delay(100); }delay(65535);delay(65535);delay(65535);LCD_write_com2(0*80+02); for(i=0;i<15;i++) { LCD_write_data2(prompt5[i]);//"Welcome!"; delay(100); } RankFlag1=0;}}if((jz==7)&&(RankFlag==1)) //現(xiàn)金業(yè)務(wù)取號{//當(dāng)隊列人數(shù)到達20時,提示//Queueisfullif(LengthFlag>=20){LCD_clear2();LCD_write_com2(0*80+0*02);delay(100);for(i=0;i<16;i++){LCD_write_data2(prompt3[i]);delay(100);}}else{QueueNumProcess();prompt1[11]=(num_count)/10+'0';prompt1[12]=(num_count)%10+'0';LCD_clear2();LCD_write_com2(0*80+02);delay(100);for(i=0;i<15;i++){LCD_write_data2(prompt1[i]);//"YourNo.is00!";delay(100);}delay(65535);delay(65535);delay(65535);LCD_write_com2(0*80+02);for(i=0;i<15;i++) { LCD_write_data2(prompt5[i]);//"Welcome!"; delay(100); }RankFlag=0;}}if((jz==2||jz==3)&&ClearNumFlag1==1) //非現(xiàn)金業(yè)務(wù)銷號窗口{ if(LengthFlag1==0) //沒有非現(xiàn)金業(yè)務(wù)客戶{ if(LengthFlag==0) //沒有客戶 { LCD_clear(); LCD_write_(0*80+0); delay(1000); for(i=0;i<16;i++) { LCD_write_data(prompt4[i]);//"Queueisempty";delay(100); } delay(65535);//無人排隊時屏幕自動清屏,計數(shù)歸零LCD_clear();num_count=0; } else //但是有現(xiàn)金業(yè)務(wù)客戶 { ClearNumFlag=1; ClearNumFlag1=0; ClearNumProcess();//消號處理,營業(yè)員操作 sound(); prompt2[3]=num/10+'0'; prompt2[4]=num%10+'0'; prompt2[15]=(jz-1)+'0'; LCD_clear(); LCD_write_(0*80+0); delay(100);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論