基于單片機的排隊叫號系統(tǒng)設(shè)計_第1頁
基于單片機的排隊叫號系統(tǒng)設(shè)計_第2頁
基于單片機的排隊叫號系統(tǒng)設(shè)計_第3頁
基于單片機的排隊叫號系統(tǒng)設(shè)計_第4頁
基于單片機的排隊叫號系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第1章緒論近年來,隨著科學(xué)的發(fā)展和人們消費水平的提高,社會各界尤其是在辦公商務(wù)服務(wù)業(yè)競爭的生活越來越大。越來越多的企業(yè)將營業(yè)廳服務(wù)質(zhì)量作為企業(yè)形象的一個重要指標(biāo),這種做法得到了客戶的認(rèn)可。經(jīng)濟增加肯定會增加企業(yè)的辦事質(zhì)量,營業(yè)廳的排隊問題也更加明顯。根據(jù)調(diào)查顯示,客戶服務(wù),高峰,有時需要等待幾個小時,這似乎已經(jīng)成為司空見慣的現(xiàn)象,這將影響消費者的情緒。對于營業(yè)廳的服務(wù)質(zhì)量低下,越來越多的客戶感到不滿意,因此排隊擁擠帶來的疲勞、煩感問題成為人們需要考慮的問題,營造更加高效、人性化服務(wù)環(huán)境已成為當(dāng)前急需解決的現(xiàn)實問題。排隊叫號系統(tǒng)是利用電腦的科學(xué)管理客戶排隊的系統(tǒng),為銀行、通訊、稅務(wù)、工商、政府機構(gòu)等部門的大廳工作設(shè)計而成的,完美地解決了客戶在辦理業(yè)務(wù)時所遇到的各種排隊、擁擠和混亂現(xiàn)象,為客戶辦理業(yè)務(wù)帶來莫大的便利。本課題探索的是研制一款無人排隊的排隊叫號機,它主要由主控制器、鍵盤、數(shù)碼管顯示電路、蜂鳴器電路等部分組成。

系統(tǒng)使用中央處理器進(jìn)行控制,通過按鍵取號,在數(shù)碼管上顯示排隊的號碼,通過按鍵叫號,在數(shù)碼管上顯示叫到的號碼,由揚聲器發(fā)出聲音提示客戶。本系統(tǒng)采用單片機STC89C52進(jìn)行控制,利用數(shù)碼管顯示信息,蜂鳴器發(fā)聲進(jìn)行提示方式,模擬排隊管理系統(tǒng),科學(xué)地處理各種排隊情況。操縱靈活,控制簡單,制作成本較低,性價比較高。排隊技術(shù)目前已集成音樂,語音合成,呼叫,呼叫終端等多種功能,號碼發(fā)放也由取號機自動打印到觸摸屏查詢?nèi)√?、按鍵取號、特殊識別取號等等。目前國內(nèi)外的排隊叫號系統(tǒng)廣泛應(yīng)用于金融、醫(yī)院、電信以及各級政府對外服務(wù)窗口等行業(yè),已經(jīng)非常的成熟,免除了不舒服的站立式排隊,現(xiàn)代的高科技產(chǎn)品,徹底解決了銀行,醫(yī)院和其他服務(wù)企業(yè)站隊等待,服務(wù)障礙問題,深化和提高服務(wù)質(zhì)量。

第2章系統(tǒng)分析及原理介紹2.1系統(tǒng)的基本功能和工作原理2.1.1基本功能本系統(tǒng)主要利用STC89C52單片機和液晶1602顯示,采用開關(guān)來對液晶和蜂鳴器加以控制以完成一個排隊和叫號過程的系統(tǒng)??蛻敉ㄟ^取號開關(guān)進(jìn)行取號操作,當(dāng)取號步驟完成后,系統(tǒng)會記錄客戶的隊伍號,并由窗口工作人員通知客戶,此時窗口工作人員點擊窗口按鈕,蜂鳴器發(fā)聲,提示客戶到窗口辦理業(yè)務(wù)2.1.2工作原理本系統(tǒng)采用單片機STC89C52和我們用1602液晶顯示器,由延遲和簡單的C語言程序設(shè)計實現(xiàn)周期寫。以單片機STC89C52為核心,通過編程控制1602液晶顯示信息和蜂鳴器發(fā)聲提示。串行通信原理的應(yīng)用,使1602液晶顯示,完成取號、叫號功能。2.2排隊系統(tǒng)工作流程排隊系統(tǒng)基本工作流程十分簡單,客戶到達(dá)服務(wù)大廳后,先到取號端上按鍵取號,得到自己的服務(wù)票號后,到相應(yīng)的休息位置等待工作人員,同時關(guān)注相關(guān)顯示屏信息和蜂鳴器提醒,當(dāng)被叫到自己的票號時,根據(jù)語音提示和顯示屏幕的顯示信息到相應(yīng)窗口辦理業(yè)務(wù)工作人員在指定窗口,可以看到叫號終端上顯示的等待人數(shù),開始為客戶服務(wù)時按下開關(guān)鍵開始工作,每服務(wù)完一個客戶后就可以按開關(guān)鍵呼叫下一位顧客,當(dāng)所呼叫的客戶在規(guī)定時間內(nèi)不到就可以跳過此客戶,按開關(guān)呼叫下一位客戶。2.3系統(tǒng)整體設(shè)計2.3.1硬件概要設(shè)計智能排隊的排隊系統(tǒng),其具體要求和的全功能仿真,通過取號,排隊,服務(wù)基站代替人群排隊的過程,。根據(jù)客戶按下的按鈕,機器自動排號顯示編號,并在液晶顯示器上面顯示。客戶可以在休息室休息或做別的選擇,當(dāng)一個窗口顯示客戶的編碼時,蜂鳴器會在同一時間的發(fā)出聲音,用以提醒客戶接受服務(wù)。各窗口工作人員按下開關(guān),可以接受當(dāng)前一位客戶并為其服務(wù),此次服務(wù)結(jié)束后工作人員按鈕呼叫下一位客戶,液晶顯示號碼自動跳轉(zhuǎn)到下一個。上述情況,我們用單片機實現(xiàn)綜合性的管理和控制,蜂鳴器模塊,主要模塊,顯示模塊集成在主機。這些設(shè)備是相互獨立的,由STC89C52單片機控制,通過按鍵傳送數(shù)據(jù)到單片機,操作簡單,并且有蜂鳴器與窗口顯示器提示相對應(yīng)。用STC89C52芯片,獨立的關(guān)鍵站(客戶),獨立的鍵(代表四個窗口店員控制端),無源蜂鳴器(播放蜂鳴聲的作用),1602液晶顯示的信息和相應(yīng)的外圍電路。2.3.2軟件概要設(shè)計本文排隊叫號系統(tǒng)軟件設(shè)計使用Keil進(jìn)行調(diào)試,Protues進(jìn)行仿真。Keil把用戶的每個工程都當(dāng)作一個項目。當(dāng)打開一個項目時,所有相關(guān)聯(lián)的程序也進(jìn)入了調(diào)試窗口。即使是只有一個源程序,沒有工程也不能進(jìn)行編譯、鏈接和仿真??蛻舳送ㄟ^按鍵完成取號,數(shù)碼管顯示排隊、等待人數(shù)情況;主機通過按鍵完成叫號,數(shù)碼管顯示叫到的號碼,并通過蜂鳴器發(fā)聲提示;客戶端和主機通過串行通信方式完成排隊取號功能。(1)信息處理部分客戶通過取號按鍵完成取號過程,然后單片機通過處理將取號信息發(fā)送到打印機部分進(jìn)行排隊號碼的打印。(2)主系統(tǒng)信息處理主系統(tǒng)由單片機負(fù)責(zé)完成對整個叫號機排隊系統(tǒng)的運作,首先STC89C52接收來自取號機的取號數(shù)據(jù),處理之后將信息反饋給取號機,并將數(shù)據(jù)保存,當(dāng)窗口有提示服務(wù)信息的時候,單片機會將排隊的序號信息發(fā)送到窗口,并且將信息及時的發(fā)送到大廳液晶屏幕顯示及蜂鳴器。及時的通知客戶辦理業(yè)務(wù)。(3)叫號系統(tǒng)設(shè)計第一位顧客開始窗口叫號時,工作人員通過按鍵將信息輸入到單片機,經(jīng)處理過后,將客戶排隊的號碼發(fā)送到窗口端,此時窗口端的液晶顯示器即可顯示客戶的號碼,客戶就可以根據(jù)提示來到相應(yīng)的窗口進(jìn)行業(yè)務(wù)服務(wù)。(4)語音系統(tǒng)設(shè)計此模塊采用無源蜂鳴器發(fā)聲,通過單片機向P15端口低電平,經(jīng)過三極管的放大電路放大,使蜂鳴器的發(fā)聲提示。(5)液晶顯示部分液晶顯示部分采用的是LCD1602液晶,此液晶顯示器可以顯示漢字,字母和數(shù)字,當(dāng)有呼叫信息時,會將客戶信息將顯示在屏幕上,提示客戶接受人工服務(wù)。

第3章主要硬件參數(shù)3.1STC89C52RC單片機宏晶科技推出的STC89C52RC單片機是新一代高速低功耗超強抗干擾的單片機,它的指令代碼完全適合傳統(tǒng)8051單片機,6時鐘/機器周期和12時鐘/機器周期可以隨意選擇。由于使用protues仿真時軟件中并沒有STC89C52RC單片機,由于STC89C52RC指令代碼完全適合傳統(tǒng)8051單片機,因此我們使用AT89C51代替STC89C52RC進(jìn)行仿真。在實物制作中仍使用STC89C52RC。3.1.1單片機的CPU結(jié)構(gòu)單片機的中央處理器是整個單片機的核心部件,主要由運算器和控制器兩個部分組成。(1)運算器是計算機的運算部件,可以完成各種算術(shù)運算,邏輯運算,并可以進(jìn)行位運算。算術(shù)邏輯部件是運算器的核心,此外,運算器中還有暫存器1、暫存器2、累加器、程序狀態(tài)字、寄存器B、ALU、和布爾處理器。運算的結(jié)果將影響程序狀態(tài)中的標(biāo)。布爾處理器是單片機的一個重要組成部分,有自己的位累加器Cy和相應(yīng)的指令系統(tǒng)及位尋址區(qū)和I/O空間。布爾處理器在位測試,外設(shè)的控制及復(fù)雜組合邏輯電路的求解方面提供了方便的方法。(2)控制器是單片機的指揮控制部件,它主要包括程序計數(shù)器,指令寄存器,指令譯碼器,數(shù)據(jù)指針寄存器,堆棧指針,緩沖器及定時控制電路等。它的主要任務(wù)是對指令進(jìn)行譯碼,通過定時和控制電路發(fā)出各種控制信號,使各部件協(xié)調(diào)工作,完成指令所需的操作。3.1.2STC89C52RC引腳功能說明1電源引腳(2根)(1)VCC(引腳40):電源電壓(2)VSS(引腳20):接地2時鐘電路引腳(2根)(1)XTAL1(引腳19):接外部振蕩晶體和微調(diào)電容的一端。在片內(nèi)它是振蕩電路反相放大器的輸入端,在采用外部時鐘時,該引腳接地。(2)XTAL2(引腳18):來自片內(nèi)反向振蕩器的輸出。若采需用外部時鐘電路時,該引腳輸入外部時鐘脈沖。單片機正常工作時,該引腳應(yīng)有脈沖信號輸出。3控制引腳(4根)(1)ALE/EQ\*jc2\*hps12\o\ad(\s\up11(___________),PROG)(引腳30):地址鎖存控制信號/編程脈沖輸入端當(dāng)訪問外部存儲器時,該引腳輸出的信號作為鎖存低8位地址的控制信號。在編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的六分之一,因此它可用作對外部輸出脈沖或用于定時目的。(2)EQ\*jc2\*hps12\o\ad(\s\up11(__________),PSRN)(引腳29):外部程序存儲器的選通信號當(dāng)訪問外部程序存儲器時,此腳輸出負(fù)脈沖選通信號,PC的16位地址數(shù)據(jù)將出現(xiàn)P0和P2口上,外部程序存儲器則把指令數(shù)據(jù)放到P0口上,由CPU讀入并執(zhí)行。在外部程序存儲器取指期間,每個機器周期兩次EQ\*jc2\*hps12\o\ad(\s\up11(__________),PSEN)信號有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的EQ\*jc2\*hps12\o\ad(\s\up11(__________),PSEN)將不出現(xiàn)。(3)EQ\*jc2\*hps12\o\ad(\s\up11(_____),EA)/VPP(引腳31):外部程序存儲器地址輸入端/編程電壓輸入端。當(dāng)EQ\*jc2\*hps12\o\ad(\s\up11(_____),EA)保持低電平時,只訪問片外程序存儲器,不管是否有內(nèi)部程序存儲器;當(dāng)EQ\*jc2\*hps12\o\ad(\s\up11(_____),EA)端保持高電平時,只訪問片內(nèi)程序存儲器,而超過4KB地址則自動轉(zhuǎn)到片外存儲器1000H讀取指令。8031單片機片內(nèi)無ROM,所以該引腳接地。對于EPROM型單片機,在編程寫入期間,此引腳也用于施加12V編程電壓。(4)RESET/TPD(引腳9):復(fù)位/備用電源輸入引腳該引腳上輸入24個時鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。VCC掉電期間,此腳可接上備用電源,以保證單片機內(nèi)部RAM的數(shù)據(jù)不丟失。4輸入/輸出引腳(1)P0.0~P0.7(引腳39~引腳32):8位準(zhǔn)雙向并行I/O口P0口可作為通用雙向I/O口。在外接數(shù)據(jù)、程序存儲器時,可作為低8位地址/數(shù)據(jù)總線復(fù)用引腳。(2)P1.0~P1.7(引腳1~引腳8):8位準(zhǔn)雙向并行I/O口P1口可用作通用雙向I/O(3)P2.0~P2.7(引腳21~引腳28):8位準(zhǔn)雙向并行I/O口P2口可用作通用雙向I/O口。在外接數(shù)據(jù)、程序存儲器時,可作為高8位地址輸出引腳。P2口在FLASH編程和校驗時接受高8位地址信號和控制信號。(4)P4.0~P4.7(引腳10~引腳17):8位準(zhǔn)雙向并行I/O口P3口除了作為通用I/O口使用以外,每一個引腳都可以復(fù)用。STC89C52引腳圖如圖3.1所示:圖3.1STC89C52引腳圖3.1.3單片機的存儲器單片機程序存儲器和數(shù)據(jù)存儲器相互獨立,在物理結(jié)構(gòu)上有四個存儲空間:片內(nèi)程序存儲器、片外程序存儲器、片內(nèi)數(shù)據(jù)存儲器、片外數(shù)據(jù)存儲器。單片機的外部數(shù)據(jù)存儲器和I/O接口采用統(tǒng)一編址方式。由于仿真所使用的芯片是AT89C51,所以我們介紹單片機的存儲器以AT89C51為例。1數(shù)據(jù)存儲器:數(shù)據(jù)存儲器包括內(nèi)部數(shù)據(jù)存儲器和外部數(shù)據(jù)存儲器兩個空間,51單片機外部數(shù)據(jù)存儲器空間大小為64KB,地址空間為0000H~0FFFH,內(nèi)部數(shù)據(jù)存儲器為128個字節(jié),地址空間為00H~7FH。內(nèi)部數(shù)據(jù)存儲器和外部數(shù)據(jù)存儲器在00H~7FH范圍內(nèi)地址會出現(xiàn)重疊現(xiàn)象,單片機通過不同的指令格式加以區(qū)分,訪問片內(nèi)RAM可采用多種尋址方式。若采用間接尋址方式,間接尋址寄存器只能R0或R1。2內(nèi)部RAM內(nèi)部RAM共128個單元,可分為工作寄存器區(qū)、位尋址區(qū)和數(shù)據(jù)緩沖區(qū)。(1)工作寄存器區(qū)(00H~1FH):該區(qū)的32個單元被均勻的分為四組,每組包含八個8位寄存器,均以R0~R7來命名,常稱這些寄存器為通用寄存器。CPU當(dāng)前由程序狀態(tài)字PSW中的D3和D4位來選擇的。通過修改PSW中的RS0和RS1兩位,就可以選擇任一組工作寄存器,這有利于提高CPU的效率和響應(yīng)中斷的速度。(2)位尋址區(qū)(20H~2FH):片內(nèi)RAM的20H~2FH單位為位尋址區(qū),它們既可作為一般單元用字節(jié)尋址,也可以對其中某位進(jìn)行尋址。位尋址區(qū)共有16個字節(jié),128位,位地址為00H~7FH。(3)堆棧和數(shù)據(jù)緩沖區(qū)(30H~7FH):該區(qū)的地址范圍為30H~7FH,用于存放用戶的數(shù)據(jù),對這部分區(qū)域的使用不作任何規(guī)定和限制,堆棧一般開辟在這個區(qū)域。3特殊功能寄存器51單片機把CPU中的專用寄存器,I/O鎖存器,中斷、串行口與定時/計數(shù)器內(nèi)的各種控制寄存器和狀態(tài)寄存器都作為特殊功能寄存器,它們離散地分布在地址為80H~FFH的范圍內(nèi),該范圍稱為特殊功能寄存區(qū)。51單片機有21個特殊功能寄存器,它們只能通過直接尋址的方式進(jìn)行訪問,書寫時既可用寄存器符號,也可用寄存器單元地址。4程序存儲器程序存儲器用于存放表格常數(shù)和程序,8051單片機內(nèi)部有4KBROM,片外可擴展64KB的ROM,二者統(tǒng)一編址。如果EQ\*jc2\*hps12\o\ad(\s\up11(————),EA)引腳接VCC(+5V),則程序計數(shù)器PC的值在0~0FFFH(即前4KB)之間時,CPU將從片內(nèi)ROM這取指令,而當(dāng)PC的值大于0FFFH時,則轉(zhuǎn)入外部ROM中取指令;如果EQ\*jc2\*hps12\o\ad(\s\up11(———),EA)引腳接地時,則內(nèi)部ROM區(qū)間被忽略,所有的取指令操作將在片外ROM中進(jìn)行。片外ROM和片外RAM的地址出現(xiàn)了重疊,要訪問ROM這的常數(shù),可使用MOVC指令,該指令在執(zhí)行時將使EQ\*jc2\*hps12\o\ad(\s\up11(——————),PSEN)信號失效;而訪問片外RAM,使用的是MOVX指令,該指令執(zhí)行時將使EQ\*jc2\*hps12\o\ad(\s\up11(———),RD)和EQ\*jc2\*hps12\o\ad(\s\up11(————),WR)信號失效。程序存儲器中某些單元保留給系統(tǒng)使用,用來存放引導(dǎo)程序和各個中斷源的入口地址,每個中斷源之間只有8個存儲單元空間,8個單元通常不能存下一個完整的中斷服務(wù)程序,因此往往需要在中斷入口地址這存放一條無條件轉(zhuǎn)移指令,轉(zhuǎn)到用戶設(shè)計的中斷服務(wù)程序的入口地址。3.1.4單片機最小系統(tǒng)設(shè)計單片機的最小系統(tǒng)是能使單片機工作的最少器件構(gòu)成的系統(tǒng)。對于AT89C51單片機,由于其內(nèi)部有4KB可在線編程的Flash存儲器,用它組成最小系統(tǒng)時,不需機外擴展程序存儲器,只要有電源,復(fù)位電路和時鐘電路即可,因此,由AT89C51單片機組成的最小系統(tǒng)如圖3.2所示:圖3.2單片機最小系統(tǒng)3.2液晶顯示器LCD液晶顯示器的主要材料是液態(tài)晶體。它本身不發(fā)光,靠液晶態(tài)物質(zhì)的液晶分子排列狀態(tài)在電場中的改變而調(diào)節(jié)外界光而被動顯示。被動型顯示適用于人眼視覺,不易引起疲勞,被動型顯示還不怕光沖刷。所謂光沖刷是指環(huán)境光改變較亮?xí)r,顯示的信息被沖淡,從而使顯示不清晰。而被動型顯示,由于它是靠反射外部光達(dá)到目的的,所以外部光越強,反射光也越強,顯示的內(nèi)容也越清晰。LCD主要用于低壓微功耗的便攜式儀表,如通信器材。計算器。電子手表等,另外電視機,計算機的用量也很大。3.2.1液晶顯示器的原理及分類LCD之所以能發(fā)光顯示信息,是因為它可以通過特定的驅(qū)動方式來調(diào)節(jié)光源亮度。夾在導(dǎo)電玻璃電極間的液晶進(jìn)過加工,內(nèi)部分子呈90°扭曲;若一個平面上的分子呈南北方向排列,則另一個平面上的分子呈東西方向排列,位于兩個平面內(nèi)的分子被迫進(jìn)入一種90°的扭曲狀態(tài)。由于光線順著分子方向傳播,所以光線進(jìn)過液晶也被扭轉(zhuǎn)90°。當(dāng)液晶加上電壓時,分子便會重新垂直排列,使光線能直射出去,而不發(fā)生任何扭轉(zhuǎn)。自然光線是發(fā)散的,因此利用偏光片形成一張網(wǎng),阻斷不與這些線平行的所有光線。如果兩張光片的線正好垂直,就能完全阻斷那些已近極化的光線。液晶的顯示是由于在顯示像素上施加了電場,這個電場由顯示像素前后兩電極上的電位信號合成產(chǎn)生。在顯示像素上建立直流電場是非常容易的,但過強的直流電場會導(dǎo)致液晶材料的化學(xué)反應(yīng)以及電極老化,迅速降低液晶使用壽命,因此必須建立交流驅(qū)動電場。用于驅(qū)動的交流電場其直流成分量越小越好,通常要求小于50mV。在實際應(yīng)用中,由于采用了數(shù)字電路驅(qū)動,所以這種交流電場是通過脈沖電壓信號來建立的。顯示像素上交流電場的強弱可由交流電壓的有效值表示:當(dāng)有效值大于液晶電壓的閥值電壓時,像素處于顯示狀態(tài);當(dāng)有效值小于液晶的閥值電壓時,像素不產(chǎn)生光電效應(yīng);當(dāng)有效值在液晶的閥值電壓附近時,液晶將呈現(xiàn)較弱的光電效應(yīng),這樣會影響液晶顯示的對比度。液晶顯示驅(qū)動通過調(diào)節(jié)施加在液晶顯示器件電極上的電位信號的相位、峰值、頻率等,建立驅(qū)動電場,以實現(xiàn)液晶顯示器件的顯示效果。液晶顯示驅(qū)動的方式有很多種,常用的驅(qū)動方法有靜態(tài)驅(qū)動和動態(tài)驅(qū)動。3.2.2LCD1602液晶1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形,1602采用標(biāo)準(zhǔn)的16腳接口,其中:第1腳:GND為電源地第2腳:VCC接5V電源正極第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時可以讀忙信號,當(dāng)RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。第7~14腳:D0~D7為8位雙向數(shù)據(jù)端。第15~16腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。LCD1602引腳圖如圖4.2所示:圖4.2LCD1602引腳圖3.2.31602液晶模塊的讀寫操作1602液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實現(xiàn)的。(說明: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:低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符。指令7:字符發(fā)生器RAM地址設(shè)置。指令8:DDRAM地址設(shè)置。指令9:讀忙信號和光標(biāo)地址BF:為忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。

第4章系統(tǒng)流程圖本次畢業(yè)設(shè)計要求完成得系統(tǒng),其具體功能可以完全模擬人群在實際生活中的排隊過程。取號、排隊、叫號等功能,實現(xiàn)系統(tǒng)自動代替人進(jìn)行排隊的過程??梢栽诜?wù)大廳放置一臺取號機,客戶若想獲得服務(wù)可以按“取號”按鈕,單片機接收到輸入的信息后,會在排隊的人數(shù)上面加1,并將最終的號碼通知客戶,客戶拿到號碼到等候室等候呼叫自己的號碼。在這個過程中取票機會將客戶剛剛拿到的號碼發(fā)送到系統(tǒng),工作人員看見后并作出應(yīng)答,通過窗口按鍵通知客戶到所在窗口辦理業(yè)務(wù),同時此號碼顯示在窗口顯示屏上顯示并用蜂鳴提示,整個服務(wù)完成后,取票機準(zhǔn)備下一次的取號,整個過程非常迅速。系統(tǒng)流程圖4.1:開始開始初始化客戶取號LCD顯示隊伍號碼窗口呼叫客戶LCD顯示信息,蜂鳴器發(fā)聲提示結(jié)束初始化客戶取號LCD顯示隊伍號碼窗口呼叫客戶LCD顯示信息,蜂鳴器發(fā)聲提示結(jié)束圖4.1系統(tǒng)流程圖

第5章系統(tǒng)電路及仿真結(jié)果5.1晶振電路STC89C52單片機的時鐘有兩種方式:一種是內(nèi)部振蕩方式,它是利用單片機內(nèi)部的振蕩電路,產(chǎn)生時鐘信號,這種方式單片機的時鐘引腳上接石英晶體和振蕩電容器;另外一種是外部振蕩方式,他是把外部已有的時鐘信號接入單片機。下面介紹這兩種方式。(1)內(nèi)部振蕩方式:單片機內(nèi)部有一個用于構(gòu)成振蕩器的高增益反向放大器,它的輸入端為XTAL1引腳,輸出端為XTAL2引腳,分別是單片機的19腳和18腳,其頻率范圍為f=0~12MHZ。(2)外部振蕩方式:單片機的內(nèi)部工作時鐘也可以由外部振蕩器提供,這時,對HMOS型芯片,外部振蕩器信號接XTAL2,即內(nèi)部時鐘發(fā)生器的輸出端,而XTAL1引腳接地。對CHMOS型芯片,外部振蕩信號接XTAL1,即內(nèi)部時鐘發(fā)生器的輸入端,而XTAL2引腳不用。對于本次課設(shè),我們采用內(nèi)部振蕩方式,晶振電路圖如圖5.1所示:圖5.1晶振電路圖5.2開關(guān)電路開關(guān)電路如圖5.2所示,取號開關(guān)接單片機P1.0口,窗口1開關(guān)接P1.1口,窗口2開關(guān)接P1.2口。圖5.2開關(guān)電路5.3LCD1602電路要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,液晶顯示在執(zhí)行每條指令之前一定要確認(rèn)模塊的標(biāo)志,低電平表示不忙,否則此指令失效。單片機P0.0到P0.7分別接液晶顯示器的D0到D7口,1602的RS口接單片機P2.6,RW接單片機P2.5,E接單片機的P2.7口。電路圖如圖5.3所示:圖5.3LCD電路圖5.4蜂鳴器電路三極管主要作用是起到放大功能,單片機的IO口驅(qū)動能力不夠讓蜂鳴器發(fā)出聲音,所以我們通過三極管放大驅(qū)動電流,從而可以讓蜂鳴器發(fā)出聲音。輸出低電平,三極管導(dǎo)通,電流通過蜂鳴器讓蜂鳴器發(fā)出聲音,當(dāng)輸出高電平時,三極管截止,沒有電流流過蜂鳴器,所以就不會發(fā)出聲音。蜂鳴器電路如圖5.4所示:圖5.4蜂鳴器電路圖

第6章仿真結(jié)果實驗板通電后,液晶顯示器亮。當(dāng)客戶按取號鍵后,每按一下,隊伍加1,顯示器顯示客戶編碼;當(dāng)系統(tǒng)排滿20位后,再按取號鍵,屏幕就會顯示“Queueisfull!”此時達(dá)到取號上限。當(dāng)工作人員呼叫客戶時,按窗口按鈕,此時隊伍減1,程序進(jìn)行信息處理,液晶上顯示客戶的編號,同時蜂鳴器進(jìn)行聲音提示;當(dāng)所有的客戶都接受完服務(wù)時,隊伍沒有人,液晶顯示“Queueisempty!”,顯示器屏幕清空,儲存的隊伍號碼歸零處理。本次畢業(yè)設(shè)計采用protues軟件進(jìn)行仿真,將keil軟件編譯生成的hex文件導(dǎo)入單片機中,點擊取號按鍵,液晶顯示如圖6.1所示圖6.1取號仿真結(jié)果當(dāng)取號步驟完成好,系統(tǒng)會記錄客戶的隊伍號,并由窗口工作人員通知客戶,此時窗口工作人員點擊窗口按鈕,蜂鳴器發(fā)聲,提示客戶到窗口辦理業(yè)務(wù),仿真結(jié)果顯示如圖6.2所示圖6.2窗口仿真結(jié)果

第7章系統(tǒng)程序#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitrs=P2^6;sbitrw=P2^5;sbite=P2^7;sbitkey1=P1^0;sbitkey2=P1^1;sbitkey3=P1^2;sbitsounder=P1^5;uchars1[]="YourNo.is00!";uchars2[]="No.00GoToWin.0";uchars3[]="Queueisfull!";uchars4[]="Queueisempty!";uintnum1=0;//排隊叫的號碼uintrank[20]={0};//排隊叫號存儲的數(shù)組uintnum2=0;//窗口消的號碼intFlag=0;//叫號的標(biāo)志intClearFlag=0;//消號的標(biāo)志uintLength=0;//隊列長度叫一次號時+1,消一次號時-1/*延時函數(shù)*/voiddelay(uintn){while(n--);}/*****************************************LCD1602*顯示屏命令寫入函數(shù)******************************************/voidwrite_com(ucharcom){e=0;rs=0;rw=0;P0=com;delay(1000);e=1;delay(1000);e=0;}/*****************************************LCD1602*顯示屏數(shù)據(jù)寫入函數(shù)******************************************/voidwrite_data(uchardate){e=0;rs=1;rw=0;P0=date;delay(1000);e=1;delay(1000);e=0;}/*****************************************LCD1602*顯示屏清空顯示******************************************/voidclear(void){write_com(0x01);delay(1000);}/*****************************************LCD1602顯示屏初始化函數(shù)*****************************************/voidinit(void){write_com(0x38);/*顯示模式設(shè)置*/delay(100);write_com(0x38);delay(100);write_com(0x38);delay(100);write_com(0x38);write_com(0x08);/*顯示關(guān)閉*/write_com(0x01);/*顯示清屏*/write_com(0x06);/*顯示光標(biāo)移動設(shè)置*/delay(100);write_com(0x0C);/*顯示開及光標(biāo)設(shè)置*/}/*簡單的蜂鳴器提示音*/voidsound(){uinta;for(a=0;a<500;a++){ sounder=0; delay(61); sounder=1;}}/*獲取鍵值函數(shù)*/uintkey(){uintjianzhi;if(key1==0){ delay(1000); if(key1==0) jianzhi=1; Flag=1;} if(key2==0||key3==0){delay(1000); if(key2==0) jianzhi=2; if(key3==0) jianzhi=3; ClearFlag=1;} return(jianzhi);}/*****************************************叫號機按一次一號鍵變量+1,最大為20*****************************************/voidQueueNum(){if(Flag==1)//判斷叫號標(biāo)志是否有效{if(Length<20){ num1++; rank[Length]=num1;}Length++;}}/*****************************************窗口消號處理函數(shù)*****************************************/voidClearNum(){uinti;if(ClearFlag==1)//判斷消號標(biāo)志是否有效{num2=rank[0];//把消的號賦給全局變量numfor(i=0;i<19;i++)//讓數(shù)組整體左移一個存儲單元,即把消得號刪除{ rank[i]=rank[i+1];}Length--;}}/*****************************************檢測到按鍵后,檢測函數(shù)處理及LCD顯示處理*****************************************/voidCheckButton(uintm)//m代表檢測到的鍵值{uintjz,i;jz=m;if((jz==1)&&(Flag==1)){ //當(dāng)隊列人數(shù)達(dá)到20時,提示 //Queueisfull if(Length>=20) { clear(); write_com(0x80+0x02);delay(100);for(i=0;i<16;i++){write_data(s3[i]); delay(100);} } else { QueueNum(); s1[11]=(num1)/10+'0'; s1[12]=(num1)%10+'0'; clear(); write_com(0x80+02);delay(100);for(i=0;i<15;i++){write_data(s1[i]);//"YourNo.is00!"; delay(100);}Flag=0; }}if((jz==2||jz==3)&&ClearFlag==1){ if(Length==0) { clear(); write_com(0x80+0);delay(1000);for(i=0;i<16;i++){write_data(s4[i]);//"Queueisempty"; delay(100);} delay(65535); //無人排隊時屏幕自動清屏,計數(shù)歸零 clear(); num1=0; } else { ClearNum();//消號處理,營業(yè)員操作 sound(); s2[3]=num2/10+'0'; s2[4]=num2%10+'0'; s2[15]=(jz-1)+'0'; clear(); write_com(0x80+0);delay(100);for(i=0;i<16;i++){write_data(s2[i]);//"No.00cometoNo.0";delay(100);} ClearFlag=0; }}}/*****************************************main函數(shù)*****************************************/voidmain(){uinta;init();while(1){ a=key();//獲取鍵值 if(Flag==1||ClearFlag==1)//判斷叫號標(biāo)志和消號標(biāo)志是否有效 CheckButton(a); delay(200); Flag=0;//使叫號標(biāo)志無效 ClearFlag=0;//使消號標(biāo)志無效 a=0;//鍵值清0}}

第8章總結(jié)通過本次畢業(yè)設(shè)計,加深了對單片機的理解,學(xué)單片機就是要多實踐,老師領(lǐng)我們進(jìn)入單片機世界,精通它就得靠我們自己,靈活運用自己所學(xué)知識到自己的作品當(dāng)中。當(dāng)然在系統(tǒng)的設(shè)計過程中遇到過很多問題,我們可以在設(shè)計前可以先畫好程序流程圖,然后對應(yīng)各個模塊提出解決辦法,各個擊破。設(shè)計過程中,遇到的問題時可以再小組里面積極討論研究,這樣有助于加深對所學(xué)知識的理解,提高自身水平。作為一個自動化專業(yè)的學(xué)生,獨立完成設(shè)計是我們以后工作必需具備的能力。而這次畢業(yè)設(shè)計恰恰給我們提供了一個提高自身水平,完善知識的機會。從系統(tǒng)理論設(shè)計,到仿真過程的實現(xiàn),再到方案的確定,最后到調(diào)試電路、系統(tǒng)成型。整個設(shè)計過程都要求我們利用所學(xué)的知識進(jìn)行思考延伸,要求我們把自己所學(xué)的知識形成一個體系。本次畢業(yè)設(shè)計是對我們所學(xué)的知識的一次綜合考研。雖然過程很辛苦,但我們收獲更多的是充實,是完成項目之后的滿足感。設(shè)計中,正確的想法思路直接影響你的成果,只有你的設(shè)計方針是正確的,你才可以完成整個系統(tǒng)的仿真。所以我們在設(shè)計前必須做好充分的準(zhǔn)備,查找詳細(xì)正確的資料,一步一步進(jìn)行下去。通過這次的畢業(yè)設(shè)計,使我對單片機系統(tǒng)有了更加深的認(rèn)識,在過程中,我學(xué)到了很多的東西,有一些前輩的設(shè)計經(jīng)驗,還有對知識更加熟練的掌握,具體了解了怎樣去完成一個系統(tǒng)的設(shè)計,從總體流程圖、硬件電路、軟件調(diào)試到編譯仿真。本次畢業(yè)設(shè)計使我認(rèn)識到不管做任何事都要付出一定的努力,才會有大的收獲。同時也培養(yǎng)了我的科學(xué)嚴(yán)謹(jǐn)?shù)膶W(xué)習(xí)態(tài)度。熟練地掌握課本上的理論知識是做好本次的畢業(yè)設(shè)計的前提。只有這樣,我們才能對試驗中出現(xiàn)的問題進(jìn)行一定的分析和解決。當(dāng)然能完成本次設(shè)計,更離不開老師辛勤地指導(dǎo),每當(dāng)我

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論