單片機課程設計報告 排隊叫號系統(tǒng)設計_第1頁
單片機課程設計報告 排隊叫號系統(tǒng)設計_第2頁
單片機課程設計報告 排隊叫號系統(tǒng)設計_第3頁
單片機課程設計報告 排隊叫號系統(tǒng)設計_第4頁
單片機課程設計報告 排隊叫號系統(tǒng)設計_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

單片機原理與接口技術課程設計(報告)《單片機原理與接口技術》課程設計(報告)題目:排隊叫號系統(tǒng)設計摘要排隊叫號系統(tǒng)(排隊機、叫號機)是針對銀行、醫(yī)院、工商、稅務、通訊、政府機構等部門的大廳工作流程設計的,是利用電腦的科學管理客戶排隊的系統(tǒng),很好地解決了客戶在服務機構辦理業(yè)務時所遇到的各種排隊、擁擠和混亂現(xiàn)象,為客戶辦理業(yè)務帶來莫大的方便和愉悅。本課題研究的是一款智能排隊叫號機,排隊系統(tǒng)主要由單片機,完整的鍵盤,顯示電路,蜂鳴器電路組成。通過串行通信方式傳輸處理數(shù)據(jù);通過按鍵取號,在LCD1602上顯示排隊的號碼以及當前正在等待的人數(shù);通過按鍵叫號,在LCD1602液晶顯示屏顯示叫到的號碼,蜂鳴器發(fā)出聲音提示客戶。本文設計的系統(tǒng)有良好的人機交互界面,模擬排隊管理,論文主要研究了排隊叫號系統(tǒng)的實現(xiàn)方法,研究結果對現(xiàn)實具有重要的指導意義。研究結果肯定了單片機完成排隊叫號系統(tǒng)的可能性。科學地處理各種排隊情況,操作簡便,控制靈活,顯示清晰,制作成本低,性價比較高。本文的特色是采用通俗易懂的語言,向大家介紹了排隊叫號系統(tǒng)的原理以及設計思路,對日常的生產生活具有一定的影響。關鍵詞:單片機;AT89C51;排隊叫號;LCD1602目錄TOC\o"1-3"\h\u17588第1章概述 第1章概述1.1課題背景近年來,隨著我國社會經(jīng)濟的持續(xù)快速發(fā)展,資金流動加快,服務行業(yè)的不斷增加,加之我國政府正在努力構建和諧社會、服務型政府,大量的用戶越來越頻繁的光顧金融系統(tǒng)、電信、醫(yī)療、政府辦事大廳等服務部門,時代的發(fā)展給這些服務型行業(yè)提出新的服務理念,也給這些行業(yè)和部門帶來了巨大的壓力。伴隨著經(jīng)濟全球化的大浪潮,各行各業(yè)之間的競爭逐漸加劇、每個服務行業(yè)業(yè).務量在不斷增長,業(yè)務種類也日益增多,排隊等候已成為人們經(jīng)常面臨的實際問題。在銀行、醫(yī)院、電信、稅務、工商等營業(yè)大廳里,前擁后擠、雜亂無章的排隊等候,己是司空見慣的現(xiàn)象,很多窗口也因而秩序混亂,為保護用戶隱私而設置的“l(fā)米線”也形同虛設。一方面客戶因為長時間的站立排隊透支體力和精力而疲憊不堪,另一方面工作人員也為長時間遭受眾多客戶的圍繞而不勝其煩,影響了服務質量。因此,改善服務質量、樹立良好的企業(yè)形象,解決客戶勞累的排隊現(xiàn)象、創(chuàng)造人性化務環(huán)境已成為急需解決的問題。長時間的站立排隊使用戶疲憊和厭煩,用戶渴望尊重隱私,期望“個性化服務”,只排一個隊,只接受“一對一服務”。對服務部門來講,使用排隊機是提高服務質量,提升服務形象,吸引顧客的有利措施。隨著信息技術的突飛猛進,智能排隊管理系統(tǒng)應運而生。智能排隊管理系統(tǒng)是一種綜合運用計算機技術、網(wǎng)絡技術、多媒體技術、通信控制技術等的高新技術產品,此系統(tǒng)完全模擬人群的排隊過程,實現(xiàn)了計算機系統(tǒng)代替客戶進行排隊的過程曰。使用排隊系統(tǒng)后,用戶在票號機上取票后,在休息區(qū)舒適地等待,聽到呼叫后才去對應的窗口辦理事務,服務人員面對一個安靜的環(huán)境,面對一個客戶,可以專心辦理業(yè)務,提高了工作效率。我國人口眾多,辦事排隊一直是一個令人頭痛的問題?,F(xiàn)今,隨著服務行業(yè)業(yè)務種類的細化和增加,服務內容和工作量加大,這個問題變得尤為突出。嘈雜、無序、不公平、不合理、低效等一直是排隊中困擾顧客和服務人員的問題.電子排隊管理系統(tǒng)很好地解決了這些問題,可以廣泛地應用于銀行、醫(yī)院等窗口服務單位.銀行自動叫號系統(tǒng)就是電子排隊管理統(tǒng)的一種―,是針對銀行服務窗口的特點而設計的.這里以ATMEL公司的AT89C51單片機為核心,設計了一個簡單的把客戶與服務機構相結合的主從機排隊叫號系統(tǒng)。模擬排隊叫號管理,科學地處理各種排隊情況1.2課題現(xiàn)狀排隊技術的應用是體現(xiàn)了科技以人為本的需要,是全社會文明發(fā)展的產物,也是人類文明發(fā)展的必然趨勢。排隊技術最早出現(xiàn)在歐美等西方國家,開始的排隊系統(tǒng)僅限于工作人員的人工呼叫,隨著現(xiàn)代技術的不斷發(fā)展特別是計算機技術的應用,使排隊技術的發(fā)展也突飛猛進,目前己具備多種功能如樂音提示、語音合成呼叫(voice一calling);呼叫終端(operationterminal);以柜臺顯示(counterdisplay)和綜合顯示(MainDisplay)為主的各種數(shù)碼管顯示、LCD顯示、LED顯示、PDP顯示…;號碼發(fā)放也由取號機自動打印(TicketDispenser)到觸摸屏查詢取號、按鍵取號、特殊識別取號等等。排隊技術產品的出現(xiàn)徹底改變了以前許多需要長時間排隊場所的無序模式,也被越來越多的行業(yè)所采用,以提高管理水平和自身競爭力。在我國,排隊產品概念的引進時間也不長,特別是在中國加入WTO以后,大批國人走出國門,將很多優(yōu)秀和先進的服務方法、理念帶回國內?!芭抨牸夹g”也隨之被引進國內,并在我國特有的高速經(jīng)濟發(fā)展的環(huán)境里得到迅速的普及和應用??蛻魧ε抨犗到y(tǒng)的使用也逐漸習慣,并樂于接受131。我國的排隊技術產品也經(jīng)由1998年--2001年的起步期、2001--2003年的發(fā)展期、到現(xiàn)階段的高速發(fā)展期,市場也逐漸成熟,逐漸生產出多種適應我國國清的排隊系統(tǒng)產品,并具有應用領域廣、工作流程復雜、綜合技術要求高的等特點。我國是一個人口大國,隨著經(jīng)濟發(fā)展速度的加快,大量的用戶越來越多的光顧金融、電信、醫(yī)療、政府辦事大廳等場所,使得窗口服務的快捷和舒適越來越被人們所重視。隨著精神文明與物質文明的進一步提高,電子排隊技術必將為更多的用戶所接受,并由日常工作中的輔助設備逐漸成為必備的設施之一,人們期待低成本、功能完善、可靠性高的排隊管理系統(tǒng)來使工作和生活變得輕松、和諧。第2章總體設計方案2.1設計要求1、主機通過按鍵完成叫號,數(shù)碼管顯示被叫的號碼;蜂鳴器響,提醒顧客接受服務;語音播報提醒顧客;2、從機通過串行通信方式完成排隊取號功能;3、從機顯示隊列排在前面的顧客數(shù);4、通過實際程序設計和調試,逐步掌握模塊化程序設計方法和調試技術。2.2方案論證排隊技術在國內外都已經(jīng)達到相當智能的水平。智能排隊叫號系統(tǒng)有我了解的基本三種方案:都是基于ATMEL公司生產51系列單片機芯片,第一種是基于AT89C51單片機為核心由主從機的按鍵控制、數(shù)碼顯示和蜂鳴器提示音綜合設計;第二種是基于AT89C52單片機為核心通過STC89C52單片機直接擴展的獨立鍵盤,完成排隊取號流程(本系統(tǒng)取號、叫號都是直接利用系統(tǒng)的中斷О按鍵控制),單片機控制數(shù)碼管顯示排隊等待情況,控制蜂鳴器發(fā)聲完成叫號功能。方案一系統(tǒng)采用如圖2.1所示的主要硬件電路,運用串行通信原理通過按鍵給計數(shù)器脈沖,達到計數(shù)+1和銷號-1的功能,并通過譯碼器驅動數(shù)碼管顯示,完成取號、叫號功能,同時叫號按鍵外接有源蜂鳴器實現(xiàn)提示客戶的作用。在選用我們常用單片機芯片AT89C51和數(shù)碼顯示管LM016L,運用較簡單的延時和循環(huán)C語言程序設計來實現(xiàn)。這樣設計可以使客戶的視覺和聽覺都得到相應的信息提示。主機主機主機芯片AT89C51顯示LCD按鍵蜂鳴器從機從機芯片AT89C51顯示LCD按鍵圖2.1方案一系統(tǒng)方框圖方案二系統(tǒng)采用如2.2所示的電路,通過STC89C52單片機直接擴展的獨立鍵盤,完成排隊取號流程(本系統(tǒng)取號、叫號都是直接利用系統(tǒng)的中斷О按鍵控制單片機控制數(shù)碼管顯示排隊等待情況,控制蜂鳴器發(fā)聲完成叫號功能。系統(tǒng)采用STC89C52單片機完成整個系統(tǒng)的控制流程。從機通過單片機的中斷О按鍵,當系統(tǒng)檢測到按下時完成取號功能。主機同樣通過單片機的中斷0按鍵,當系統(tǒng)檢測到按下時完成叫號功能。運用的芯片和程序相對較為復雜,不易實現(xiàn)。圖2.2方案二系統(tǒng)方框圖方案三系統(tǒng)采用如圖2.3所示的電路,通過按鍵給計數(shù)器脈沖,并通過譯碼器驅動數(shù)碼管顯示,完成取號、叫號功能,同時叫號按鍵外接有源蜂鳴器實現(xiàn)提示客戶的作用。圖2.3方案三系統(tǒng)方框圖方案一通過綜合使用計數(shù)器、譯碼器、數(shù)碼管為一體的數(shù)碼顯示管LM016L??梢暂^好的實現(xiàn)排隊叫號的基本功能,而且在客戶端和服務機構兩方面都能很方便的使用和控制,利用串行通信原理,由簡單的51單片機芯片實現(xiàn),達到復雜問題簡單化的目的,是設計理論的趨勢;方案二的電路設計相對而言復雜,可操作性不強,故不采用;方案三通過綜合使用計數(shù)器、譯碼器,數(shù)碼管,可以較好的實現(xiàn)排隊叫號的基本功能,但需要較多的硬件電路,實現(xiàn)復雜。綜合各條件從簡單實現(xiàn)考慮,我選擇方案一。2.3系統(tǒng)組成與工作原理2.3.1系統(tǒng)組成本設計主要利用單片機AT89C51芯片和1602液晶顯示,采用按鍵來對顯示器和蜂鳴器加以控制來完成一個主從機分別管理排隊和叫號的系統(tǒng)。其主要功能是分別利用客戶端使用一個從機排隊﹐服務機構使用一個主機來管理從機的排隊信息。具體功能如下:(1)從機:客戶通過按鍵依次加1完成取號,由1602液晶顯示當前客戶在排隊中的位置。設定最大的排隊人數(shù)是10人,當排隊人數(shù)超過10時,顯示排隊已滿,并停止排隊。(2)主機:設有4個辦理業(yè)務的窗口,通過按鍵來完成叫號,由1602液晶顯示“NO.**cometoNO.**window,Please”,并配有蜂鳴器發(fā)出蜂鳴聲“叮咚”加以提示;排隊是否空或已滿,空、滿都在1602液晶上顯示相關字樣;在服務機構端可按鍵顯示剩余排隊人數(shù)等信息。2.3.2系統(tǒng)工作原理本系統(tǒng)選用我們常用單片機芯片AT89C51和1602液晶,運用C語言程序設計編寫較簡單的延時和循環(huán)來實現(xiàn)。以AT89C51單片機為核心,由主從機的按鍵控制1602液晶顯示和蜂鳴器提示音。系統(tǒng)采用如圖2.4所示的主要硬件電路,運用串行通信原理通過按鍵給計數(shù)器脈沖,達到計數(shù)+1和銷號-1的功能,并通過1602液晶顯示,完成取號、叫號功能,同時叫號按鍵外接有源蜂鳴器實現(xiàn)提示客戶的作用。主機主機主機芯片AT89C51顯示LCD按鍵蜂鳴器從機從機芯片AT89C51顯示LCD按鍵圖2.4系統(tǒng)原理圖第3章硬件設計3.1硬件系統(tǒng)介紹本智能排隊叫號系統(tǒng)這一課題,其具體要求和功能完全模擬人群排隊過程,通過取號、排隊等待、叫號服務等功能代替人們站隊,實現(xiàn)機器自動代替人排隊的過程。在大廳明顯處放置一臺主從機,顧客來到后按“取號”鍵,從機自動排號并在顯示器上顯示你在隊列中的位置;顧客根據(jù)顯示器上的序號與等待人數(shù),可選擇在大廳休息處休息或辦別的事,當某窗口號顯示顧客序號,同時音響提示音響起時,該顧客便可前往相應窗口接受“一對一”的服務。每位窗口工作人員使用蜂鳴器接受主機命令,可按鍵受理下一位序號客戶業(yè)務,每服務完一位顧客后再按鍵,呼叫器上的號碼自動跳到下一個序號受理序號,同時此號碼顯示在窗口顯示屏上顯示并用蜂鳴提示,以提示顧客前來接受服務??傮w設計框圖如圖3.1硬件設計總體框圖所示。圖3.1硬件總體設計方框圖綜合以上情況,我們采用上位單片機(主機)實現(xiàn)綜合管理和控制,將蜂鳴器模塊、主要按鍵模塊、顯示器模塊等集成在主機內。下位從機包括一個按鍵模塊和窗口顯示模塊,這些設備相互獨立,均由AT89C51單片機芯片控制。通過按鍵KO傳送數(shù)據(jù)到主機,主機接受從機發(fā)送來的命令和數(shù)據(jù)作出相應的顯示,操作簡單并有1602液晶顯示顯示、蜂鳴器與窗口顯示器一一對應,使用時將用于設置窗口號的撥碼開關撥到相應位置即可。用AT89C51單片機芯片、獨立按鍵叫號(顧客使用)、獨立按鍵(代表四個窗口營業(yè)員控制端)、無源蜂鳴器(起到發(fā)出提示音的作用)、1602液晶顯示信息以及相應的輔助外圍電路部分。3.2主要電路設計單片機AT89C51、6M晶震、lnF電容、22uf/10V電容、10K和100電阻共陽極數(shù)碼顯示管、按鍵、蜂鳴器、與門。3.2.1主機部分電路如圖3.2所示,主機部分實現(xiàn)的功能是服務機構接收從取號終端發(fā)送的票號信息并對排隊進行智能管理,主要包括:窗口叫號、液晶顯示、蜂鳴器“叮咚”聲提示、統(tǒng)計剩余排隊人數(shù)、插隊管理等。圖3.2主機部分電路圖3.2.2從機部分電路如圖3.3所示,從機部分主要實現(xiàn)的功能是客戶按鍵取號,通過按鍵KO依次加1取號并在1602液晶屏上顯示客戶抽取的票號,上限為10人,當取號達到上限后,通過液晶屏顯示“Thequeueisfull,pleasewait”的信息提示隊列已滿。當客戶抽取票號后,從機會通過串行通信將票號信息發(fā)送至主機。圖3.3從機部分電路圖3.3功能部分電路設計3.3.1單片機最小系統(tǒng)電路單片機AT89C51的最小系統(tǒng)電路。包括時鐘振蕩電路、復位電路兩個部分圖3.4即為AT89C51單片機的最小系統(tǒng)結構圖。圖3.4最小系統(tǒng)電路圖在AT89C51中有一個構成內部震蕩器的高增益反向放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外接石英或陶瓷震蕩器一起構成自激震蕩器震蕩電路。外接石英晶體(或陶瓷震蕩器)及電容C1、C2接在放大器的震蕩回路中構成并聯(lián)震蕩電路。對外接電容C1、C2雖然沒有非常嚴格的要求,但電容的大小會輕微影響震蕩頻率的高低、震蕩工作的穩(wěn)定性、起震的難易程序及溫度穩(wěn)定性,如果使用石英晶體,推薦使用30pF±10pF,而如果使用陶瓷諧振器建議選擇40pF士10pF圖3.5即為本系統(tǒng)用到的外部震蕩電路。圖3.5外部震蕩電路圖復位電路中采用手動按鍵產生復位信號,完成單片機啟動,確定單片機的初始狀態(tài)。單片機要復位,本質上是在其RESET腳上保持一定時間的高電平,單片機檢測到這個電平保持時間大于它要求的時間就會自動復位。通常在單片機工作出現(xiàn)混亂或“死機”時,使用手動復位可實現(xiàn)單片機“重啟”。它們是單片機進行正常工作所必需的部分。RST/VPD(9腳)復位信號時鐘電路工作后,在引腳上出現(xiàn)兩個機器周期的高電平,芯片內部進行初始復位,復位后片內存儲器的狀態(tài)如表所示,P1—P3口輸出高電平,初始值07H寫入堆棧指針SP、清0程序計數(shù)器PC和其余特殊功能寄存器,但始終不影響片內RAM狀態(tài),只要該引腳保持高電平,89C51將循環(huán)復位,RAT/VPD從高電平到低電平單片機將從0號單元開始執(zhí)行程序,另外該引腳還具有復用功能,只要將VPD接+5V備用電源,一旦Vcc電位突然降低或斷電,能保護片內RAM中的信息不丟失,恢復電后能正常工作。AT89C81通常采用上電自動復位和開關手動復位,我們采用的是手動復位開關如圖4.6手動開關所示。手動開關未按下之前,電容正極處于家電狀態(tài),當按鍵按下去后,VCC與GND導通,電容放電,從而實現(xiàn)放電。圖3.6所示即為本系統(tǒng)的復位電路。圖3.6復位電路圖3.3.21602液晶顯示部分電路在數(shù)字測量儀表和各種數(shù)字系統(tǒng)中,都需要將數(shù)字量直觀的顯示出來,一方面供人們直接讀取測量和運算的結果;另一方面用于監(jiān)視數(shù)字系統(tǒng)的工作情況。因此,數(shù)字顯示電路是許多數(shù)字設備不可缺少的部分。數(shù)字顯示電路通常由譯碼器、驅動器和顯示器等部分組成,如圖3.7顯示器原理所示。按鍵按鍵輸入按鍵輸入按鍵輸入按鍵輸入輸入信號圖3.7顯示器原理圖在本次設計中主要由1602液晶顯示器及排阻構成顯示電路部分。PO口是一個三態(tài)雙向口,除了高、低態(tài)以外還有一個高阻態(tài),如果不接上拉電阻,當端口處于高電平1的狀態(tài)下,實際上端口對地、對Vcc電阻都是無窮大,即本質上是不確定狀態(tài),因此需要上拉電阻RESPACK-8.P2口為一個內部上拉電阻的8位雙向I/0口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入,故不要再加上拉電阻。由1602液晶的引腳功能可知其電路連接如圖3.8所示。在排號按鍵KO操作的時候,其顯示的是“YourNo.is**!”并按鍵依次+1,當隊列為空時會顯示“Sorry,thequeueisempty!”,當隊列滿時會顯示“Thequeueisfull,pleasewait”;在排號按鍵K1、K2、K3、K4操作的時候,其顯示的是“No.**cometono.**window,please!”;按鍵waiting時,顯示的是剩余隊列人數(shù);按鍵insert時,其顯示是“insert”。圖3.81602液晶顯示部分電路圖3.3.3按鍵部分電路由與門和開關按鍵組成,由其完成的功能設計硬件原理如圖3.9所示。按鍵接口都主要在P1輸入口處按鍵輸入,運用按鍵中斷的方式達到隊列排號的取號和叫號的功能。在取號操作由從機的KO鍵實現(xiàn)。初始化內部程序,使計數(shù)從01開始,當按鍵次數(shù)小于10時,由循環(huán)加1,當取號等于10時,停止排隊。叫號主機的按鍵設計就要復雜一點,采用的中斷要和與門一起完成。4個獨立的窗口叫號按鍵實時的取得輸入排在最前的號碼,當4個窗口中任意一個窗口已經(jīng)使用了該號碼后,就進行銷號處理。此時中斷中的號碼通過與門消號-1和延時的效果。另外的功能按鍵與其設計原理基本一致。圖3.9按鍵部分電路圖3.3.4蜂鳴器電路如圖3.10蜂鳴器部分所示。在按鍵K1、K2、K3、K4操作的時候,其蜂鳴器會發(fā)出“叮咚”提示顧客的提示音。本設計運用延時程序控制接蜂鳴器的端口輸出。圖3.10蜂鳴器部分電路圖3.3.5TXD串行發(fā)送和RXD串行接收電路按照通信方式,可將數(shù)據(jù)傳輸線路分為單工、半雙工、全雙工三種通信方式。在單工方式下,通信線的一端連接發(fā)送器,另一端連接接收器,它們形成單向連接,只允許數(shù)據(jù)按照一個固定的方向傳送;在半雙工方式下,系統(tǒng)中的每個通信設備都由一個發(fā)送器和一個接收器組成,通過收發(fā)開關接到通信線路上,數(shù)據(jù)可以雙向傳輸,但是不能同時在兩個方向上同時傳送,即每次只能一個站發(fā)送,另一個接收,其收發(fā)開關并不是實際的物理開關,而是由軟件控制的電子開關;全雙工通信系統(tǒng)的每一端都包含發(fā)送器和接收器,數(shù)據(jù)可以同時在兩個方向上傳送。盡管許多串行通信接口電路具有全雙工通信能力,在實際應用中,由于半雙工方式簡單、實用,因而大多數(shù)情況采用半雙工方式。本設計的傳送數(shù)據(jù)是在半雙工方式下運行的,兩AT89C51芯片的串行發(fā)送和串行接收端口對應連接,如圖3.11所示。圖3.11串行口通信部分電路圖第4章軟件設計4.1排隊系統(tǒng)主從機軟件總體設計4.1.1系統(tǒng)從機(取號終端)軟件設計取號終端的事件發(fā)生概率服從隨機按先來先排的公平排隊﹐由于只有一臺專門的從機來負責,可以簡單其流程,而在邏輯上服從隊列的先入先出算法。通過單片機的中斷KO按鍵,當系統(tǒng)檢測到按下時完成取號功能。隊列的上限是10人,當隊列中排一人時,隊列加1,直到滿隊。主要的流程如下圖4.1從機流程圖所示。圖4.1從機流程圖4.1.2系統(tǒng)主機(叫號終端)軟件設計主機初始化后,主機通過單片機的中斷按鍵,當系統(tǒng)檢測到按下時完成相應功能。(1)接收從機發(fā)送來的信息,若隊列為空顯示“Hello!”;若隊列未滿,則在隊列取號按鍵的時候調用叫號程序實現(xiàn)“**isleft”的字樣;若隊列已滿,則重復顯示“11isleft”。(2)如有窗口應答并命令時,運用延時程序控制蜂鳴器的運作,4個獨立的按鍵代表4個窗口實現(xiàn)顯示叫號兩用功能。(3)可以根據(jù)統(tǒng)計程序來統(tǒng)計此隊列中還有多少人在排隊等待中。總的流程是從機將最前顧客號碼發(fā)送到該主機,主機接收后可以窗口顯示并提示音呼叫.統(tǒng)計剩余人數(shù)、重置排隊等功能。主要的流程如下圖4.2主機流程圖所示。圖4.2主機流程圖4.2各功能模塊的軟件設計4.2.1蜂鳴器蜂鳴器子程序的主要功能是運用延時函數(shù)實現(xiàn)不同頻率的聲音輸出。序中主要的結構流程如下圖4.3蜂鳴器子程序所示。圖4.3蜂鳴器流程圖4.2.2LCD顯示子程序程序中主要的結構流程如下圖4.4LCD顯示流程圖所示。圖4.4LCD顯示流程圖4.2.3窗口消號處理子程序利用與門和循環(huán)左移的方式實現(xiàn)器消號的功能,其主要的流程結構如下圖4.5窗口消號處理子程序所示。圖4.5窗口消號處理流程圖第5章系統(tǒng)仿真運行當點擊PROTUES軟件的全速運行按鈕時2,軟件提示沒有錯誤,并得到如圖5.1所示的仿真圖。我們可以再PROTEUS中仿真人們在排隊時的幾種必要的過程:取號、叫號、蜂鳴、顯示、統(tǒng)計。圖5.1運行開始圖當點擊全速運行按鈕,將出現(xiàn)如下圖5.2所示仿真結果,表示的是判斷隊列為空時主從機運行的結果,沒有人進行排隊。圖5.2運行結果圖當有人進行排隊時,按KO鍵中的排隊輸入號碼,即是現(xiàn)實中排在隊伍中等待的模擬部分,在此過程中你的順序已經(jīng)在隊列中確定,此時你可以節(jié)省時間從事另外的某些事情,最大排隊數(shù)是10。當排隊數(shù)達到最大時,從機部分顯示的是“Thequeueisfull,pleasewaiting!”,(這隊列已經(jīng)滿了,請等一等)而主機部分的號碼顯示為“**isleft”。如圖5.3所示。圖5.3按K0鍵5次的結果圖當某窗口需要叫號時,可以按K1/K2/K3/K4鍵代表不同的獨立窗口并有提示音,即相當于模擬人排在隊伍中等待窗口內的呼叫。由按鍵中斷方式實現(xiàn)LCD數(shù)碼顯示功能,由延時程序控制蜂鳴器的提示音。達到雙重保險效果:看顯示器的“No.(排隊號碼)cometoNo(按鍵代表的窗口)window,Please",(請幾號到幾號窗口來),同時有“叮咚”加以提示客戶,這樣確保不會因不留意二錯過機會。如圖5.4所示。圖5.4按K1鍵4次的結果圖當你在窗口前想要了解你所在的隊伍中還剩余多少人要辦理業(yè)務時,即在人們排隊時焦急等待的在計算何時輪到自己時的現(xiàn)象。可按waiting鍵,運用窗口消號處理和鍵盤中斷來處理此項功能。即為顯示還有多少人在排隊等待中,其LCD數(shù)碼顯示為共辦理了幾人業(yè)務。如圖5.5所示為排隊6人,1號窗口已經(jīng)辦理了前2人的業(yè)務,按waiting鍵時,LCD顯示的是“04isleft”(剩余4人)。圖5.5按WAITING鍵的結果圖

總結本設計論文系統(tǒng)描述了應用ATMEL公司的AT89C51單片機及其外圍電路實現(xiàn)排隊叫號系統(tǒng)。通過這次的課程設計,使我對單片機有了更深的認識,從理論和實踐上都得到了很大的提高,所以這次任務的完成是我學到了很多東西。本設計討論了排隊按鍵模塊,語音提示呼叫模塊,顯示模塊等主要功能模塊。期中重點和難點是實現(xiàn)排隊的+1程序、叫號按鍵-1程序與相應的顯示和按鍵中斷設計。從基本要實現(xiàn)的方案制定,再到硬件電路的選擇,到制作原理電路,最后進行程序調試的4個階段的設計。在此期間我遇到很多困難,在一次一次的失敗嘗試中迫使我不得不更加努力的學習深入的內容。從課程設計中,學到了單片機AT89C51的內部結構及其工作原理,了解了最小系統(tǒng)電路的工作原理,還有LCD1602液晶顯示器的工作原理,鞏固了單片機的使用能力,提高了自己動手的能力,學到了很多經(jīng)驗,并且提高了自己分析問題的能力和創(chuàng)新能力,得到了理論聯(lián)系實際的機會,做出了成果。使自己在硬件設計方面樹立了信心,為以后從事這方面的工作打好了基礎,這也是這次課程設計的最大收獲。

參考文獻[1]康萬新.畢業(yè)設計指導及案例剖析—應用電子技術方向[M].北京:清華大學出版社,2007.[2]楊連國.醫(yī)院智能排隊叫號系統(tǒng)的設計與實現(xiàn)[D].南京:東南大學,2006.[3]胡漢才.單片機原理及其接口技術[M].北京:清華大學出版社,2004.[4]郭天祥.新概念51單片機C語言教程[M].北京:電子工業(yè)出版社,2009.[5]閻石.數(shù)字電子技術[M].北京:高等教育出版社,1998.[6]滕麗麗.基于單片機的銀行排隊系統(tǒng)的設計[J].信息科技,2010,11(2):246-247.[7]史毓達,曲豪.嵌入式排隊系統(tǒng)叫號器終端設計與實現(xiàn)[J].湖北第二師苑學院學報,2009,26(8):94-95.[8]彭偉.單片機C語言程序設計實訓100例:基于8051+Proteus仿真[M].北京:電子工業(yè)出版社,2009.[9]鄭鋒,王巧芝,陳繪兵等.51單片機應用系統(tǒng)典型模塊開發(fā)大全[M].北京:中國鐵道出版社,2010.[10]張靖武,周靈彬.單片機系統(tǒng)的PROTEUS設計與仿真[M].北京:電子工業(yè)出版社,2007.

附錄主機程序#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitRS=P2^0;sbitRW=P2^1;sbitE=P2^2;sbitkey0=P1^0;sbitkey1=P1^1;sbitkey2=P1^2;sbitkey3=P1^3;sbitkey4=P1^4;sbitkey5=P1^5;sbitkey6=P1^6;sbitkey7=P1^7;sbitcd=P2^7;sbitBEEP=P2^6;sbithold=P3^4;uintsev=0;uintsev1=0;uintsev2=0;uintsev3=0;uintsev4=0;uintm=0,i=0;uintrank[10]={0};uintnum=0;uintjz=0;uintLengthFlag=0;uintnum_count=1;uchardatatest[]="Hello!";uchardataprompt1[]="YourNo.is00!";uchardataprompt2[]="No.00cometoNo";uchardataprompt3[]="0.window,please!";ucharpdataprompt4[]="Thequeueis";ucharpdataprompt5[]="full,pleasewait";ucharpdataprompt6[]="Sorry,thequeue";ucharpdataprompt7[]="isempty!";uchardataprompt8[]="00isleft";ucharpdataprompt9[]="Allis00";ucharpdataprompt10[]="W1-00";ucharpdataprompt11[]="W2-00";ucharpdataprompt12[]="W3-00";ucharpdataprompt13[]="W4-00";uchardataprompt14[]="Insert";voiddelay(intn){intk,j; for(k=0;k<=n;k++) for(j=0;j<=10;j++);}voiddelay1s(intn){intk,j; for(k=0;k<=n;k++) for(j=0;j<=120;j++);}voidSPEAKER(uintx){for(i=0;i<=200;i++) { delay(x); BEEP=~BEEP; } BEEP=1;}voiddelay1ms(unsignedintms){uintk,j; for(k=0;k<ms;k++) for(j=0;j<100;j++);}voidLCD_w_com(unsignedcom){RW=0; RS=0; E=1; P0=com; delay1ms(40); E=0; RW=1;}voidLCD_w_dat(uchardat){RW=0; RS=1; E=1; P0=dat; delay1ms(40); E=0; RW=1;}voidgotoxy(unsignedx,unsignedy){if(x==1)LCD_w_com(0x80+y); elseLCD_w_com(0xC0+y);}voidclear_LCD(void){LCD_w_com(0x01);LCD_w_com(0x02);}voidinit_LCD(void){LCD_w_com(0x38); LCD_w_com(0x0c); LCD_w_com(0x06); gotoxy(1,0); for(i=0;i<=5;i++) {LCD_w_dat(test[i]); }}voidQueueNumProcess(){rank[LengthFlag]=num_count; LengthFlag++; if(LengthFlag>10){hold=0;} //else{LengthFlag++;}}voidClearNumProcess(){num=rank[0]; for(i=0;i<LengthFlag;i++) rank[i]=rank[i+1]; LengthFlag--; if(LengthFlag<10){hold=1;} sev++;}voidmain(void){EA=1; EX0=1; EX1=1; IT0=1; IT1=1; clear_LCD(); init_LCD(); while(1) { delay1s(10000); clear_LCD(); gotoxy(1,0); for(i=0;i<=5;i++) { LCD_w_dat(test[i]); } delay1s(10000); clear_LCD(); prompt8[0]=LengthFlag/10+'0'; prompt8[1]=LengthFlag%10+'0'; gotoxy(1,0); for(m=0;m<=9;m++) { LCD_w_dat(prompt8[m]); } delay1s(10000); clear_LCD(); ClearNumProcess(); prompt2[3]=(num)/10+'0'; prompt2[4]=(num)%10+'0'; prompt3[1]=jz+'0'; gotoxy(1,0); for(m=0;m<=15;m++) { LCD_w_dat(prompt2[m]); } gotoxy(2,0); for(m=0;m<=15;m++) { LCD_w_dat(prompt3[m]); } }}voidint_x0()interrupt0{if(!key1){jz=1;sev1++;} if(!key2){jz=2;sev2++;}if(!key3){jz=3;sev3++;} if(!key4){jz=4;sev4++;} if(!key0) { while(!key0); if(LengthFlag<=10) { clear_LCD(); QueueNumProcess(); prompt1[11]=(num_count)/10+'0'; prompt1[12]=(num_count)%10+'0'; num_count++; } else { clear_LCD(); gotoxy(1,2); for(m=0;m<=10;m++) { LCD_w_dat(prompt4[m]); } gotoxy(2,0); for(m=0;m<=15;m++) { LCD_w_dat(prompt5[m]); } } key5=0; } if((!key1||!key2||!key3||!key4)&&key0) { while((!key1||!key2||!key3||!key4)&&key0); { SPEAKER(11); delay(200); SPEAKER(15); if(LengthFlag<1) { clear_LCD(); gotoxy(1,0); for(m=0;m<=15;m++) { LCD_w_dat(prompt6[m]); } gotoxy(2,0); for(m=0;m<=8;m++) { LCD_w_dat(prompt7[m]); } } else { clear_LCD(); ClearNumProcess(); prompt2[3]=(num)/10+'0'; prompt2[4]=(num)%10+'0'; prompt3[1]=jz+'0'; gotoxy(1,0); for(m=0;m<=15;m++) { LCD_w_dat(prompt2[m]); } gotoxy(2,0); for(m=0;m<=15;m++) { LCD_w_dat(prompt3[m]); } } }}}voidint_x1()interrupt2{if(!key5) { key5=1; clear_LCD(); prompt8[0]=LengthFlag/10+'0'; prompt8[1]=LengthFlag%10+'0'; gotoxy(1,0); for(m=0;m<=9;m++) { LCD_w_dat(prompt8[m]); } } if(!key6) { clear_LCD(); prompt9[7]=(sev)/10+'0'; prompt9[8]=(sev)%10+'0'; gotoxy(1,0); for(m=0;m<=9;m++) { LCD_w_dat(prompt9[m]); } } if(!key7) { clear_LCD(); prompt10[5]=sev1/10+'0'; prompt10[6]=sev1%10+'0'; prompt11[5]=sev2/10+'0'; prompt11[6]=sev2%10+'0'; prompt12[5]=sev3/10+'0'; prompt12[6]=sev3%10+'0'; prompt13[5]=sev4/10+'0'; prompt13[6]=sev4%10+'0'; gotoxy(1,0); for(m=0;m<=7;m++) { LCD_w_dat(prompt10[m]); } gotoxy(1,8); for(m=0;m<=7;m++) { LCD_w_dat(prompt11[m]); } gotoxy(2,0); for(m=0;m<=7;m++) { LCD_w_dat(prompt12[m]); } gotoxy(2,8); for(m=0;m<=7;m++) { LCD_w_dat(prompt13[m]); } } if(!cd) { clear_LCD(); gotoxy(1,0); for(m=0;m<=6;m++) { LCD_w_dat(prompt14[m]); } LengthFlag++; for(i=1;i<LengthFlag;i++) rank[LengthFlag-i]=rank[LengthFlag-i-1]; rank[0]=10; } IT1=0;}從機程序#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitRS=P2^0;sbitRW=P2^1;sbitE=P2^2;sbitkey0=P1^0;sbithold=P3^4;bitflag=0;uintm=0,i=0;uintrank[10]={0};uintLengthFlag=0

溫馨提示

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

評論

0/150

提交評論