單片機課程設計-排隊叫號系統設計_第1頁
單片機課程設計-排隊叫號系統設計_第2頁
單片機課程設計-排隊叫號系統設計_第3頁
單片機課程設計-排隊叫號系統設計_第4頁
單片機課程設計-排隊叫號系統設計_第5頁
已閱讀5頁,還剩32頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 課程設計單片機系統課 程 設 計成績評定表設計課題 排隊叫號系統設計 學院名稱 : 電氣工程學院 專業班級 : 學生 : 學 號 : 指導教師 : 設計地點 : 設計時間 : 指導教師意見:成績: 簽名: 年 月 日單片機系統課 程 設 計 課程設計名稱: 排隊叫號系統設計 專 業 班 級 : 學 生 姓 名 : 學 號 : 指 導 教 師 : 課程設計地點: 課程設計時間: 單片機系統 課程設計任務書學生專業班級學號題 目課題性質工程設計課題來源選題指導教師主要內容參數 利用排隊叫號系統,實現以下功能: 1、取票:顧客取一張號票嗎,上面有號碼、等候人數、時間等 2、休息等待:持號票在休息區

2、休息并留意顯示屏音箱叫號 3、按鍵叫號:工作人員辦完一筆業務后按下叫號器上的下一位按鈕 4、前去辦理:叫號時根據顯示屏音箱的信息到指定位置享受一對一的效勞。任務要求進度第1-2天:熟悉課程設計任務及要求,查閱技術資料,確定設計方案。第3-4天:按照確定的方案設計單元電路。要求畫出單元電路圖,元件及元件參數選擇要有依據,各單元電路的設計要有詳細論述。第5-6天:軟件設計,編寫程序。第7-8天:實驗室調試。第9-10天:撰寫課程設計報告。要求內容完整、圖表清晰、文理流暢、格式標準、方案合理、設計正確,篇幅不少于6000字。主要參考資料1 康萬新.畢業設計指導及案例剖析應用電子技術方向M.北京:清華

3、大學出版社,2007.2 楊連國.醫院智能排隊叫號系統的設計與實現D.南京:東南大學,2006.3 胡漢才.單片機原理及其接口技術M.北京:清華大學出版社,2004.審查意見系教研室主任簽字: 年 月 日 目    錄 摘  要 .11、緒論 .2 1.1課題背景 .2 1.2課題的研究內容與目標 .22、系統需求分析與整體設計 .3 2.1系統的根本功能和工作原理 .3 2.1.1排隊系統的根本功能 .3 2.1.2工作原理 .3 2.2排隊系

4、統工作流程 .4  2.2.1數據處理流程 .4 2.2.2客戶工作流程 .5 2.2.3工作人職工作流程 .5 2.3系統整體設計 .5 2.3.1硬件概要設計 .5 2.3.2軟件概要設計 .63、系統硬件設計 .7 3.1主要電路設計 .7 3.1.1主機局部電路 .7 3.1.2從機局部電路 .9 3.2功能局部電路設計 .9 3.2.1單片機最小系統電路 .9 3.2.2液晶顯示電路 .12 3.2.3按鍵局部電路 .13 3

5、.2.4蜂鳴器電路 .14 3.2.5 TXD串行發送和RXD串行接收電路 .154、系統軟件設計 .15 4.1排隊系統主從機軟件設計 .15 4.1.1系統從機取號終端軟件設計 .15 4.1.2系統主機叫號終端的設計 .16 4.2主要子程序流程圖 .17 4.2.1蜂鳴器子程序 .17 4.2.2 LCD顯示子程序 .17 4.2.3窗口消號處理子程序 .185、系統Proteus仿真實現 .19 5.1系統的硬件實現.19 5.2系統的軟件實現.19 5.3系統集成與仿真.2

6、0結  論 .23參 考 文 獻 .24附錄A 主機程序清單 .25附錄B 總體設計圖 .30 摘 要排隊叫號系統是針對銀行、工商、稅務、通訊、政府機構等部門的大廳工作流程設計的,是利用電腦的科學管理客戶排隊的系統,能夠很好地解決客戶在效勞機構辦理業務時所遇到的各種排隊、擁擠和混亂現象,為客戶辦理業務帶來莫大的方便和愉悅。本課題研究的是一款無人排隊的排隊叫號系統,它主要由系統主從機、鍵盤、顯示電路、蜂鳴器電路等局部構成。系統利用AT89C51單片機進行控制,通過串行通信方式傳輸處理數據

7、;通過按鍵取號,在LCD1602上顯示排隊的號碼以及當前正在等待的人數;通過按鍵叫號,在LCD1602上顯示叫到的號碼,由蜂鳴器發出聲音提示客戶。這種現代化的高科技產品徹底解決了銀行、工商、稅務、通訊、政府機構等部門的效勞大廳普遍存在的站立等候、效勞無序的問題,同時免除了令客戶不舒服的站立式排隊,深化完善了效勞的質量。本系統采用AT89C51單片機進行控制,利用LCD1602顯示,蜂鳴器鳴叫提示的人機交互界面,模擬排隊管理系統,科學的處理各種排隊情況,具有操作簡便、控制靈活、顯示清晰、制作本錢低、性價比擬高等特點。關鍵詞:AT89C51;LCD1602;排隊;取號;叫號 1、 緒論 1.1課題

8、背景 近年來,隨著我國社會經濟的持續快速開展,資金流動加快,效勞行業的不斷增加,加之我國政府正在努力構建和諧社會、效勞型政府,大量的用戶越來越頻繁的光臨金融系統、電信、醫療、政府辦事大廳等效勞部門,時代的開展給這些效勞型行業提出新的效勞理念,也給這些行業和部門帶來了巨大的壓力。伴隨著經濟全球化的大浪潮,各行各業之間的競爭逐漸加劇、每個效勞行業業務量在不斷增長,業務種類也日益增多,排隊等候已成為人們經常面臨的實際問題。在銀行、醫院、電信、稅務、工商等營業大廳里,前擁后擠、雜亂無章的排隊等候,已是司空見慣的現象,很多窗口也因而秩序混亂,為保護用戶隱私而設置的“1米線也形同虛設。一方面客戶因為長時間

9、的站立排隊透支體力和精力而疲憊不堪,另一方面工作人員也為長時間遭受眾多客戶的圍繞而不勝其煩,影響了效勞質量。因此,改善效勞質量、樹立良好的企業形象,解決客戶勞累的排隊現象、創造人性化務環境已成為急需解決的問題。長時間的站立排隊使用戶疲憊和厭煩,用戶渴望尊重隱私,期望“個性化效勞,只排一個隊,只接受“一對一效勞。對效勞部門來講,使用排隊系統是提高效勞質量,提升效勞形象,吸引顧客的有利措施。隨著信息技術的突飛猛進,智能排隊管理系統應運而生。智能排隊管理系統是一種綜合運用計算機、網絡、多媒體、通信控制等技術的高新技術產品,此系統完全模擬人群的排隊過程,實現了計算機系統代替客戶進行排隊的過程。使用排隊

10、系統后,用戶在取號終端上取票后,在休息區舒適地等待,聽到呼叫后才去對應的窗口辦理事務,效勞人員面對一個安靜的環境,面對一個客戶,可以專心辦理業務,提高了工作效率。本文以ATMEL公司的AT89C51單片機為核心,設計了一個簡單的把客戶與效勞機構相結合的主從機排隊叫號系統。模擬排隊叫號管理,科學地處理各種排隊情況,具有操作簡便、控制靈活、顯示清晰、制作本錢低、性價比擬高等特點。1.2課題的研究內容與目標智能排隊叫號系統主要分為兩個大局部:主機和從機。其中主機局部要實現由從機的排隊按鍵決定已排隊人數;在已排隊人數的前提下由按鍵K1、K2、K3、K4分別代表4個不同的窗口所叫到的號碼;顯示剩余的排隊

11、人數有WAITING鍵。主要由單片機最小系統、1602液晶顯示、蜂鳴器、效勞機構按鍵和ATMEL 公司的AT89C51本芯片構成。從機局部比擬主機而言簡單些,只要完成客戶取號的功能。相對主機而言少了蜂鳴器和按鍵數。從機主要實現的是客戶端的排隊順序記錄,限制排隊上限并傳送信息給主機。2、 系統需求分析與整體設計 2.1 系統的根本功能和工作原理 2.1.1排隊系統的根本功能 本設計主要利用單片機AT89C51芯片和1602液晶顯示,采用按鍵來對顯示器和蜂鳴器加以控制來完成一個主從機分別管理排隊和叫號的系統。其主要功能是分別利用客戶端使用一個從機排隊,效勞機構使用一個主機來管理從機的排隊信息。具體

12、功能如下: (1)從機:客戶通過按鍵依次加1完成取號,由1602液晶顯示當前客戶在排隊中的位置。設定最大的排隊人數是10人,當排隊人數超過10時,顯示排隊已滿,并停止排隊。 (2)主機:設有4個辦理業務的窗口,通過按鍵來完成叫號,由1602液晶顯示“NO.* come to NO.* window,Please,并配有蜂鳴器發出蜂鳴聲“叮咚加以提示;排隊是否空或已滿,空、滿都在1602液晶上顯示相關字樣;在效勞機構端可按鍵顯示剩余排隊人數等信息。 2.1.2工作原理 本系統選用我們常用單片機芯片AT89C51和1602液晶,運用C語言

13、程序設計編寫較簡單的延時和循環來實現。以AT89C51單片機為核心,由主從機的按鍵控制1602液晶顯示和蜂鳴器提示音。系統采用如圖2.1所示的主要硬件電路,運用串行通信原理通過按鍵給計數器脈沖,到達計數+1和銷號-1的功能,并通過1602液晶顯示,完成取號、叫號功能,同時叫號按鍵外接有源蜂鳴器實現提示客戶的作用。31 圖2.1 系統原理圖 2.2 排隊系統工作流程 2.2.1 數據處理流程如圖2.2 所示,排隊系統根本流程圖以要處理的排隊信息為主體,由客戶在系統從機取號終端上按鍵后產生的一條記錄開始,給出了數據處理的整個流程。 圖2.2 數據處理流程圖 2.2.2 客戶工作流程客戶到達效勞大廳

14、后,先到排隊系統從機取號終端上按鍵取號,得到自己的效勞票號后,到相應的休息位置等候語音提示,同時關注相關顯示屏幕和語音提示的信息,當被叫到自己的票號時,根據語音提示和顯示屏幕的顯示信息到相應窗口辦理業務。 2.2.3 工作人職工作流程工作人員到達指定窗口后,即可看到叫號終端上顯示的等待人數,待準備好效勞客戶時按下“呼叫鍵開始工作,每效勞完一個客戶后就按“呼叫鍵呼叫下一位顧客,當所呼叫的客戶在規定時間內不到時可以按“呼叫鍵再次呼叫客戶。 2.3 系統整體設計 2.3.1 硬件概要設計 本智能排隊叫號系統這一課題,其具體要求和功能完全模擬人群排隊過程,通過取號、排隊等待、叫號效勞等功能代替人們站隊

15、,實現機器自動代替人排隊的過程。在大廳明顯處放置一臺主從機,顧客來到后按“取號鍵,從機自動排號并在顯示器上顯示你在隊列中的位置;顧客根據顯示器上的序號與等待人數,可選擇在大廳休息處休息或辦別的事,當某窗口號顯示顧客序號,同時音響提示音響起時,該顧客便可前往相應窗口接受“一對一的效勞。每位窗口工作人員使用蜂鳴器接受主機命令,可按鍵受理下一位序號客戶業務,每效勞完一位顧客后再按鍵,呼叫器上的號碼自動跳到下一個序號受理序號,同時此號碼顯示在窗口顯示屏上顯示并用蜂鳴提示,以提示顧客前來接受效勞。總體設計框圖如圖2.2 硬件設計總體框圖所示。 圖2.2 硬件設計總體框圖綜合以上情況,我們采用上位單片機(

16、主機)實現綜合管理和控制,將蜂鳴器模塊、主要按鍵模塊、顯示器模塊等集成在主機內。下位從機包括一個按鍵模塊和窗口顯示模塊,這些設備相互獨立,均由AT89C51 單片機芯片控制。通過按鍵K0 傳送數據到主機,主機接受從機發送來的命令和數據作出相應的顯示,操作簡單并有1602 液晶顯示顯示、蜂鳴器與窗口顯示器一一對應,使用時將用于設置窗口號的撥碼開關撥到相應位置即可。用AT89C51 單片機芯片、獨立按鍵叫號顧客使用、獨立按鍵代表四個窗口營業員控制端、無源蜂鳴器起到發出提示音的作用、1602 液晶顯示信息以及相應的輔助外圍電路部 2.3.2 軟件概要設計 (1) 主機局部主機局部又稱為叫號效勞終端,

17、主要實現接收從機數據并處理數據的功能。主要由以下幾局部構成:串行通信局部:本局部的功能是接收從機發送的數據;捕獲按鍵信息局部:本局部以中斷的方式捕獲按鍵信息,根據不同的按鍵來實現不同的功能;液晶顯示局部:本局部通過給1602 液晶顯示器寫入指令和數據對要實現的功能進行顯示;蜂鳴器局部:本局部通過給單片機相應接口送入上下電平并加以延時,使其實現發出“叮咚聲進行延時;處理數據局部:本局部主要接收到的數據進行處理,實現叫號、消號、統計等功能。(2) 從機局部從機局部又稱取號終端,主要實現客戶取號并將獲取數據發送至主機。主要分為以下幾局部:串行通信局部:本局部是將用戶獲取的數據發送至主機;捕獲按鍵信息

18、局部:本局部通過按鍵使用戶獲得票號信息;液晶顯示局部:本局部通過給1602 液晶顯示器對用戶獲取的票號信息進行顯示。3、 系統硬件設計 3.1 主要電路設計 3.1.1 主機局部電路如圖3.1 所示,主機局部實現的功能是效勞機構接收從取號終端發送的票號信息并對排隊進行智能管理,主要包括:窗口叫號、液晶顯示、蜂鳴器“叮咚聲提示、統計剩余排隊人數、插隊管理等。 圖3.1 主機局部 3.1.2 從機局部電路如圖3.2 所示,從機局部主要實現的功能是客戶按鍵取號,通過按鍵K0 依次加1取號并在1602 液晶屏上顯示客戶抽取的票號,上限為10 人,當取號到達上限后,通過液晶屏顯示“The queue i

19、s full,please wait的信息提示隊列已滿。當客戶抽取票號后,從時機通過串行通信將票號信息發送至主機。 圖3.2 從機局部 3.2 功能局部電路設計3.2.1 單片機最小系統電路單片機AT89C51 的最小系統電路。包括時鐘振蕩電路、復位電路兩個局部。圖3.3 即為AT89C51 單片機的最小系統結構圖。 圖3.3 單片機最小系統在AT89C51 中有一個構成內部震蕩器的高增益反向放大器,引腳XTAL1 和XTAL2分別是該放大器的輸入端和輸出端。這個放大器與作為反應元件的片外接石英或陶瓷震蕩器一起構成自激震蕩器震蕩電路。外接石英晶體或陶瓷震蕩器及電容C1、C2 接在放大

20、器的震蕩回路中構成并聯震蕩電路。對外接電容C1、C2 雖然沒有非常嚴格的要求,但電容的大小會輕微影響震蕩頻率的上下、震蕩工作的穩定性、起震的難易程序及溫度穩定性,如果使用石英晶體,推薦使用30pF±10pF,而如果使用陶瓷諧振器建議選擇40pF±10pF圖3.4 即為本系統用到的外部震蕩電路。 圖3.4 外部震蕩電路復位電路中采用手動按鍵產生復位信號,完成單片機啟動,確定單片機的初始狀態。單片機要復位,本質上是在其RESET 腳上保持一定時間的高電平,單片機檢測到這個電平保持時間大于它要求的時間就會自動復位。通常在單片機工作出現混亂或“死機時,使用手動復位可實現單片機“重啟

21、。它們是單片機進行正常工作所必需的局部。RST/VPD9 腳復位信號時鐘電路工作后,在引腳上出現兩個機器周期的高電平,芯片內部進行初始復位,復位后片內存儲器的狀態如表所示,P1P3 口輸出高電平,初始值07H 寫入堆棧指針SP、清0 程序計數器PC 和其余特殊功能存放器,但始終不影響片內RAM 狀態,只要該引腳保持高電平,89C51 將循環復位,RAT/VPD 從高電平到低電平單片機將從0 號單元開始執行程序,另外該引腳還具有復用功能,只要將VPD接+5V 備用電源,一旦Vcc 電位突然降低或斷電,能保護片內RAM 中的信息不喪失,恢復電后能正常工作。AT89C81 通常采用上電自動復位和開關

22、手動復位,我們采用的是手動復位開關如圖4.6 手動開關所示。手動開關未按下之前,電容正極處于家電狀態,當按鍵按下去后,VCC 與GND 導通,電容放電,從而實現放電。圖3.5 所示即為本系統的復位電路。 圖3.5 復位電路 3.2.2 1602 液晶顯示電路在數字測量儀表和各種數字系統中,都需要將數字量直觀的顯示出來,一方面供人們直接讀取測量和運算的結果;另一方面用于監視數字系統的工作情況。因此,數字顯示電路是許多數字設備不可缺少的局部。數字顯示電路通常由譯碼器、驅動器和顯示器等局部組成,如圖3.6 顯示器原理所示。 圖3.6 顯示器原理在本次設計中主要由1602液晶顯示器及排阻構成顯示電路局

23、部。P0 口是一個三態雙向口,除了高、低態以外還有一個高阻態,如果不接上拉電阻,當端口處于高電平1 的狀態下,實際上端口對地、對Vcc 電阻都是無窮大,即本質上是不確定狀態,因此需要上拉電阻RESPACK-8。P2 口為一個內部上拉電阻的8 位雙向I/O 口,P2 口緩沖器可接收,輸出4 個TTL 門電流,當P2 口被寫“1時,其管腳被內部上拉電阻拉高,且作為輸入,故不要再加上拉電阻。由1602 液晶的引腳功能可知其電路連接如圖3.7 所示。在排號按鍵K0 操作的時候,其顯示的是“Your No. is *!并按鍵依次+1,當隊列為空時會顯示“Sorry,the queue isempty!,

24、當隊列滿時會顯示“The queue is full,please wait;在排號按鍵K1、K2、K3、K4 操作的時候,其顯示的是“No.* come tono.*window,please!;按鍵waiting 時,顯示的是剩余隊列人數;按鍵insert 時,其顯示是“insert。 圖3.7 1602 液晶顯示局部 3.2.3 按鍵局部電路由與門和開關按鍵組成,由其完成的功能設計硬件原理如圖3.8 所示。按鍵接口都主要在P1 輸入口處按鍵輸入,運用按鍵中斷的方式到達隊列排號的取號和叫號的功能。在取號操作由從機的K0 鍵實現。初始化內部程序,使計數從01 開始,當按鍵次數小于10 時,由

25、循環加1,當取號等于10 時,停止排隊。叫號主機的按鍵設計就要復雜一點,采用的中斷要和與門一起完成。4 個獨立的窗口叫號按鍵實時的取得輸入排在最前的號碼,當4 個窗口中任意一個窗口已經使用了該號碼后,就進行銷號處理。此時中斷中的號碼通過與門消號-1 和延時的效果。另外的功能按鍵與其設計原理根本一致。 圖3.8 按鍵局部 3.2.4 蜂鳴器電路如圖3.9 蜂鳴器局部所示。在按鍵K1、K2、K3、K4 操作的時候,其蜂鳴器會發出“叮咚提示顧客的提示音。本設計運用延時程序控制接蜂鳴器的端口輸出。 圖3.9 蜂鳴器局部 3.2.5 TXD 串行發送和RXD 串行接收電路按照通信方式,可將數據傳輸線路分

26、為單工、半雙工、全雙工三種通信方式。在單工方式下,通信線的一端連接發送器,另一端連接接收器,它們形成單向連接,只允許數據按照一個固定的方向傳送;在半雙工方式下,系統中的每個通信設備都由一個發送器和一個接收器組成,通過收發開關接到通信線路上,數據可以雙向傳輸,但是不能同時在兩個方向上同時傳送,即每次只能一個站發送,另一個接收,其收發開關并不是實際的物理開關,而是由軟件控制的電子開關;全雙工通信系統的每一端都包含發送器和接收器,數據可以同時在兩個方向上傳送。盡管許多串行通信接口電路具有全雙工通信能力,在實際應用中,由于半雙工方式簡單、實用,因而大多數情況采用半雙工方式。本設計的傳送數據是在半雙工方

27、式下運行的,兩AT89C51 芯片的串行發送和串行接收端口對應連接,如圖3.10 所示。 圖3.10 串行通信局部4 系統軟件設計 4.1 排隊系統主從機軟件設計 4.1.1 系統從機取號終端軟件設計取號終端的事件發生概率服從隨機按先來先排的公平排隊,由于只有一臺專門的從機來負責,可以簡單其流程,而在邏輯上服從隊列的先入先出算法。通過單片機的中斷K0 按鍵,當系統檢測到按下時完成取號功能。隊列的上限是10 人,當隊列中排一人時,隊列加1,直到滿隊。主要的流程如下列圖4.1 從機流程圖所示。 圖4.1 從機流程圖 4.1.2 系統主機叫號終端的設計主機初始化后,主機通過單片機的中斷按鍵,當系統檢

28、測到按下時完成相應功能。(1) 接收從機發送來的信息,假設隊列為空顯示“Hello!;假設隊列未滿,那么在隊列取號按鍵的時候調用叫號程序實現“* is left的字樣;假設隊列已滿,那么重復顯示“11 is left。(2) 如有窗口應答并命令時,運用延時程序控制蜂鳴器的運作,4 個獨立的按鍵代表4 個窗口實現顯示叫號兩用功能。(3) 可以根據統計程序來統計此隊列中還有多少人在排隊等待中。總的流程是從機將最前顧客號碼發送到該主機,主機接收后可以窗口顯示并提示音呼叫、統計剩余人數、重置排隊等功能。主要的流程如下列圖 4.2 主機流程圖所示。 圖4.2 主機流程圖 4.2 主要子程序流程圖 4.2

29、.1 蜂鳴器子程序蜂鳴器子程序的主要功能是運用延時函數實現不同頻率的聲音輸出。程序中主要的結構流程如下列圖4.3 蜂鳴器子程序所示。 4.2.2 LCD 顯示子程序LCD 顯示子程序的主要通過控制1602 液晶使其對排隊系統的各種提示信息進行顯示。主要包括對1602 液晶寫指令、寫數據、清屏等局部。程序中主要的結構流程如下列圖4.4LCD 顯示流程圖所示。 圖4.4 LCD 顯示流程圖 4.2.3 窗口消號處理子程序利用與門和循環左移的方式實現器消號的功能,其主要的流程結構如下列圖 4.5 窗口消號處理子程序所示。 圖4.5 窗口消號處理子程序5 系統Proteus 仿真實現 5.1 系統的硬

30、件實現主要利用AT89C51 單片機芯片在Proteus 仿真平臺上繪制原理圖。其用到的元器件有:AND、AND-5、AT89C51、BUTTON、CAP、CRYSTAL、LM016L、RES、RESPACK-8、SOUNER。原理圖繪制如附錄C 總體設計圖所示。 5.2 系統的軟件實現原理圖繪制完成后是程序的加載和編譯。本設計在Keil uvision4 編譯器中來實現程序的編譯。使用匯編語言或C 語言要使用編譯器,以便把寫好的程序編譯為機器碼,才能把HEX 可執行文件寫入單片機內。KEIL uVISION 是眾多單片機應用開發軟件中最優秀的軟件之一,它支持眾多不同公司的MCS51 架構的芯

31、片,甚至ARM,它集編輯,編譯,仿真等于一體,它的界面和常用的微軟VC+的界面相似,界面友好,易學易用,在調試程序,軟件仿真方面也有很強大的功能。(1) 程序編譯 啟動 KEIL,選擇Project->New Project,在彈出的對話框中輸入工程的名字,點擊保存;選擇ATMEL 公司的AT89C51 單片機。 點擊FILE,在翻開列表選項中選擇新建,在翻開的窗口內,按照設計的要求,根據程序流程圖,編寫程序,點擊保存,保存文件類型為以.C 為后綴的文件。文件名為與所建工程名相同。在本設計中需要加載兩個程序主機子程序和從機子程序,輸入新建程序。 在Source Group 1 上點擊右鍵

32、,選擇“Add Files to Group Source Group 1 ,把所有的源文件加進來。點擊Project->Build target 或者使用快捷鍵F7,編譯工程。當“Build Output窗口中提示*.c - 0 Error(s), 0 Warning(s).時,那么程序編譯成功。此時要生成.HEX 文件,右擊 Target 1,選擇Options for targettarget 1或者按F7,選擇Outputz 中勾選Create .HEX File,完成即可。在本設計中需要加載兩個.HEX 文件。(2) 程序加載在編輯環境中雙擊AT89C51,在彈出的對話框中將編

33、譯生成可執行文件1.HEX 加載進芯片中,設單片機的時鐘工作頻率為12MHZ。 5.3 系統集成與仿真當點擊Proteus 軟件的全速運行按鈕時,軟件提示沒有錯誤,并得到如圖5.1 所示的仿真圖。我們可以再Proteus 中仿真人們在排隊時的幾種必要的過程:取號、叫號、蜂鳴、顯示、統計。 圖5.1 運行時結果圖(1) 當點擊全速運行按鈕,將出現如下列圖5.2 所示仿真結果,表示的是判斷隊列為空時主從機運行的結果,沒有人進行排隊。圖5.2 運行時結果圖(2) 當有人進行排隊時,按K0 鍵中的排隊輸入號碼,即是現實中排在隊伍中等待的模擬局部,在此過程中你的順序已經在隊列中確定,此時你可以節省時間從

34、事另外的某些事情,最大排隊數是10。當排隊數到達最大時,從機局部顯示的是“The queue isfull ,please waiting!,這隊列已經滿了,請等一等而主機局部的號碼顯示為“* isleft。如圖5.3 所示。圖5.3 按K0 鍵2 次時的結果(3) 當某窗口需要叫號時,可以按K1、K2、K3、K4 鍵代表不同的獨立窗口并有提示音,即相當于模擬人排在隊伍中等待窗口內的呼叫。由按鍵中斷方式實現LCD 數碼顯示功能,由延時程序控制蜂鳴器的提示音。到達雙重保險效果:看顯示器的“No.排隊號碼come to No按鍵代表的窗口window,Please,請幾號到幾號窗口來,同時有“叮咚

35、加以提示客戶,這樣確保不會因不留意二錯過時機。如圖5.4 所示。圖5.4 按K1 鍵2 次時的結果(4) 當你在窗口前想要了解你所在的隊伍中還剩余多少人要辦理業務時,即在人們排隊時焦急等待的在計算何時輪到自己時的現象。可按waiting 鍵,運用窗口消號處理和鍵盤中斷來處理此項功能。即為顯示還有多少人在排隊等待中,其LCD 數碼顯示為共辦理了幾人業務。 如圖5.5 所示為排隊6 人,1 號窗口已經辦理了前2 人的業務,按waiting 鍵時,LCD 顯示的是“04 is left剩余4 人。圖5.5 按waiting 鍵的結果結論本設計論文系統描述了應用ATMEL 公司的AT89C51 單片機

36、及其外圍電路實現排隊叫號系統。通過這次的畢業設計,使我對單片機有了更深的認識,從理論和實踐上都得到了很大的提高,所以這次任務的完成是我學到了很多東西。首先,豐富了自己的知識面,學到了以前沒能學通的東西,具體了解了怎樣去完成一個電路的設計:從流程圖、硬件電路圖、軟件設計到編譯仿真一整套東西。本文討論了排隊按鍵模塊,語音提示呼叫模塊,顯示模塊等主要功能模塊。期中重點和難點是實現排隊的+1 程序、叫號按鍵-1程序與相應的顯示和按鍵中斷設計。從根本要實現的方案制定,再到硬件電路的選擇,到制作原理電路,最后進行程序調試的4 個階段的設計。從這次設計中,學到了單片機AT89C51 的內部結構及其工作原理,

37、了解了時鐘電路和控制電路的工作原理,還有數碼管的工作原理,穩固了C 語言的使用能力,提高了自己動手的能力,學到了很多經驗,并且提高了自己分析問題的能力和創新能力,得到了理論聯系實際的時機,做出了成果。使自己在硬件設計方面樹立了信心,為以后從事這方面的工作打好了根底,這也是這次畢業設計的最大收獲。通過本次設計,使我學到了許多書本上無法學到的知識,也使我深刻體會到單片機技術應用領域的廣泛。不僅讓我對學過的單片機知識有了很多的穩固,同時也對單片機這一門課程產生了更大的興趣。本設計涉及到?單片機原理及應用?、?模擬電子技術?等學科。讓我對專業知識有了更深的理解。我相信此次設計的制作過程將在我以后的工作

38、和生活中影響良多。參 考 文 獻1 康萬新.畢業設計指導及案例剖析應用電子技術方向M.北京:清華大學出版社,2007.2 楊連國.醫院智能排隊叫號系統的設計與實現D.南京:東南大學,2006.3 胡漢才.單片機原理及其接口技術M.北京:清華大學出版社,2004.4 郭天祥.新概念51 單片機C 語言教程M.北京:電子工業出版社,2021.5 閻石.數字電子技術M.北京:高等教育出版社,1998.6 滕麗麗.基于單片機的銀行排隊系統的設計J.信息科技,2021,11(2):246-247.7 史毓達,曲豪.嵌入式排隊系統叫號器終端設計與實現J.湖北第二師苑學院學報,2021,26(8):94-9

39、5.8 彭偉.單片機C 語言程序設計實訓100 例:基于8051+Proteus 仿真M.北京:電子工業出版社,2021.9 鄭鋒,王巧芝,陳繪兵等.51 單片機應用系統典型模塊開發大全M.北京:中國鐵道出版社,2021.10 張靖武,周靈彬.單片機系統的PROTEUS 設計與仿真M.北京:電子工業出版社,2007.附錄A 主機程序清單# include <stdio.h> # include <stdlib.h> typedef char DataType; # inc

40、lude "CallSystem.h" int main(void)  int i=0,countx=0,j=0; int a; char username2020;     LQueue lqueue;     DataType rturn; QueueInitiate(&lqueue);    &

41、#160;QueueNotEmpty(lqueue);     while(1)            system("cls");          menu();         printf("請選擇相應功能:");

42、0;        scanf("%d",&a);          fflush(stdin);          switch(a)                &#

43、160; case 1: /*排隊叫號*/                           printf("請輸入您的賬號:");              scanf(&qu

44、ot;%s",usernamei);              i+;              countx+;       if(0=QueueAppend(&lqueue,i)      

45、0;                printf("內存缺乏,警告!n");        return;                       

46、;        printf("您的序號是%03d   您前面有%d個人n",i,countx-1);               fflush(stdin);  printf("n操作完成,是否繼續N退出,任意鍵繼續n"); scanf("%c",&rturn); &

47、#160;             if(rturn='N')                 return;                 

48、          break;                   case 2: /*業務處理*/               int temp=0; &#

49、160;             if(0=countx)                               printf("無人排隊,警告!n"); 

50、;               return;                              QueueDelete(&lqueue,&temp);&#

51、160;        printf("請%03d號用戶來前臺辦理業務n",temp);               countx-;                 fflush(stdin); &

52、#160;  printf("n操作完成,是否繼續N退出,任意鍵繼續n");                scanf("%c",&rturn);               if(rturn='N')   

53、;              return;                   break; case 3: /*隊列信息瀏覽*/          

54、0;         LQNode * p;                int temp;     p=lqueue.front;       printf("還有%d個人的業務未處理:n",countx)

55、;              while(p!=NULL)                                 temp=p->data;&#

56、160;                             printf("%03d:",temp);                p=p-&

57、gt;next;                printf("%sn",usernamej);                j+;            &

58、#160;        fflush(stdin);   printf("n操作完成,是否繼續N退出,任意鍵繼續n");                 scanf("%c",&rturn);          

59、;       if(rturn='N')   return;                           break; case 4:  /*退出*/   

60、0;                       Destroy(lqueue);                 return;       

61、60;          break;              default:  break;                    封裝的頭文件: typedef&

62、#160;struct qnode         int data;  struct qnode * next; LQNode; typedef struct      LQNode * front;      LQNode * rear; LQueue;void menu()  p

溫馨提示

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

評論

0/150

提交評論