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

下載本文檔

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

文檔簡介

1、 B排隊(duì)叫號機(jī)的實(shí)現(xiàn) 目目 錄錄1.引言.- 1 -2.系統(tǒng)功能分析及設(shè)計(jì)要求 .- 2 -3.系統(tǒng)框圖.- 2 -4.主要應(yīng)用器件及技術(shù)原理.- 2 - 4.1 微處理器介紹.- 2 - 4.1.1、MCS-51 單片機(jī)的特點(diǎn).- 2 - 4.1 2、MCS-51 單片機(jī)的結(jié)構(gòu).- 3 - 4.2 液晶 LCD1602 的介紹.- 3- 4.2.1 字符型液晶顯示器的顯示原理.- 3- 4.2.2 液晶 LCD1602 的簡介.- 4 -5.系統(tǒng)硬件電路設(shè)計(jì).- 8 - 5.1 晶振電路.- 8- 5.2 液晶顯示電路.- 9 - 5.3 聲音提示電路.- 10 -6系統(tǒng)測試.- 11 -7

2、系統(tǒng)軟件設(shè)計(jì).- 13 - 7.1 系統(tǒng)軟件流程圖.- 13 - 7.2 系統(tǒng)程序設(shè)計(jì).- 13 - 7.2.1 主程序.- 13 - 7.2.2 液晶 LCD1602 顯示處理程序.- 20 - 7.2.3 按鍵檢測程序.- 21 -8結(jié)束語.- 23 -9致謝辭.- 24-10參考文獻(xiàn).- 25 - 1 / 24排隊(duì)叫號系統(tǒng)設(shè)計(jì)排隊(duì)叫號系統(tǒng)設(shè)計(jì)1.1.引言引言近年來,隨著科學(xué)技術(shù)的迅猛發(fā)展和人們生活水平的日益提高,各行各業(yè)特別是服務(wù)行業(yè)的競爭也逐漸激烈。服務(wù)質(zhì)量作為體現(xiàn)企業(yè)的公眾形象、服務(wù)理念、管理水平的標(biāo)準(zhǔn)已越來越受到服務(wù)和被服務(wù)雙方所關(guān)注,而營業(yè)窗口正是代表銀行、醫(yī)院、電信、稅務(wù)、工商

3、等企業(yè)服務(wù)質(zhì)量的重要場所。隨著服務(wù)行業(yè)業(yè)務(wù)量的增長及業(yè)務(wù)種類的增加,排隊(duì)等候已成為人們面臨的實(shí)際問題。長期以來,人們在銀行、醫(yī)院、電信、稅務(wù)、工商等營業(yè)大廳里前擁后擠、雜亂無章地排隊(duì)等候, 有時一站就是一個多小時,這已是司空見慣的現(xiàn)象,極大地影響了服務(wù)質(zhì)量。員工坐著服務(wù)、客戶站著等待的服務(wù)方式與“用戶就是上帝” 的服務(wù)宗旨完全背道而馳!改善服務(wù)質(zhì)量、樹立良好形象,解決勞累的排隊(duì)現(xiàn)象、創(chuàng)造人性化服務(wù)環(huán)境已成為急需解決的問題。設(shè)計(jì)一套排隊(duì)抽號的服務(wù)系統(tǒng),可以很好的解決因排隊(duì)引起的種種問題,排隊(duì)系統(tǒng)應(yīng)運(yùn)而生。此系統(tǒng)完全模擬人群排隊(duì)過程,通過取票進(jìn)隊(duì)、排隊(duì)等待、叫號服務(wù)等功能,詮釋了人性化的服務(wù)理念,

4、舒緩顧客等待的急噪情緒,使人們在等候服務(wù)的過程中擁有一個相對自由的空間,是科技以人為本的真正體現(xiàn)。本文基于單片機(jī)的排隊(duì)叫號系統(tǒng),由客戶端和主機(jī)終端組成,有LCD大屏幕顯示信息,讓客戶知道自己的隊(duì)號,并有叫號提示音提醒客戶,方便快捷,可以滿足日常的服務(wù)行業(yè)排隊(duì)叫號,所以非常有意義。 2 / 242.系統(tǒng)功能分析及設(shè)計(jì)要求一個很好的叫號系統(tǒng),它的功能設(shè)計(jì)首先要符合用戶的習(xí)慣,同時操作方便,易學(xué),易用。本系統(tǒng)由鍵盤輸入系統(tǒng)、單片機(jī)系統(tǒng)、屏幕顯示系統(tǒng)及叫號提示音系統(tǒng)組成,系統(tǒng)分為兩個部分:抽號部分和叫號部分,其控制核心為AT89C51 單片機(jī),選用此單片機(jī)編程簡單,開發(fā)工具便于使用,能滿足很好的滿足排

5、隊(duì)抽號的控制數(shù)據(jù)處理。抽號部分和叫號部分采用一塊 LCD 液晶顯示器,這樣顯示數(shù)據(jù)直觀,便于客戶理解,抽號部分輸入只需使用一個抽號按鍵即可,便于客戶操作,叫號部分包括叫兩個號鍵,系統(tǒng)采用自動清零,無需人工操作 3 / 243.系統(tǒng)框圖設(shè)備上電后,顯示器屏幕亮,無信息顯示。當(dāng)客戶按鍵后,每按一下,隊(duì)伍加 1,顯示器顯示客戶隊(duì)伍號;排滿 20 位后,再按取號鍵,屏幕顯示“隊(duì)伍滿” 。當(dāng)客服叫號時,隊(duì)伍減 1,程序進(jìn)行信息處理,在顯示器上顯示“幾號客戶到幾號窗口” ,同時進(jìn)行聲音提示;當(dāng)隊(duì)伍空時,顯示“隊(duì)伍空” ,顯示器屏幕清空,儲存的隊(duì)伍號碼歸零處理1602 液晶顯示液晶顯示 AT89C51單片機(jī)

6、單片機(jī)叫號提示音叫號提示音終端窗口叫終端窗口叫號號客戶端客戶端取號取號 4 / 244.主要應(yīng)用器件及技術(shù)原理4.1 微處理器介紹4.1.1、MCS-51 單片機(jī)的特點(diǎn):(1)小巧靈活、成本低、易于產(chǎn)品化。能組裝成各種智慧式測控設(shè)備及智能儀器儀表。(2)可靠性好,應(yīng)用范圍廣。單片機(jī)芯片本身是按工業(yè)測控環(huán)境要求設(shè)計(jì)的,抗干擾性強(qiáng),能適應(yīng)各種惡劣的環(huán)境,這是其它機(jī)種無法比擬的。(3)易擴(kuò)展,很容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng),控制功能強(qiáng)。單片機(jī)的邏輯控制功能很強(qiáng),指令系統(tǒng)有各種控制功能指令,可以對邏輯功能比較復(fù)雜的系統(tǒng)進(jìn)行控制。(4)具有通訊功能,可以很方便地實(shí)現(xiàn)多機(jī)和分布式控制,形成控制網(wǎng)絡(luò)和遠(yuǎn)程控制

7、。正是由于 51 系列單片機(jī)具有以上優(yōu)點(diǎn),所以成為本次畢業(yè)設(shè)計(jì)所選用的處理器。4.1 2、MCS-51 單片機(jī)的結(jié)構(gòu)AT89C51 是一種帶 4K 字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能 CMOS8 位微處理器,俗稱單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除 100 次。從工作原理上講,單片機(jī)就是一種微型計(jì)算機(jī),是一種“程序存儲式”計(jì)算機(jī)。它是在一塊硅片上集成了中央處理器(CPU)、隨機(jī)內(nèi)存(RAM)、程序內(nèi)存(ROM 或 EPROM)、定時/計(jì)數(shù)器以及各種 I/O 接口,

8、也就是集成在一塊芯片上的計(jì)算機(jī)。圖 4.1 MCS-51 單片機(jī)的結(jié)構(gòu) 5 / 244.2 液晶 LCD1602 的介紹4.2.1 字符型液晶顯示器的顯示原理用 LCD 顯示一個字符時比較復(fù)雜,因?yàn)橐粋€字符由 6x8 或 8x8 點(diǎn)陣組成,既要找到和顯示屏幕上某幾個位置對應(yīng)的顯示 RAM 區(qū)的 8 個字節(jié),還要使每字節(jié)的不同位為“1” ,其它的為“0” ,為“1”的點(diǎn)亮,為“0”的不亮。這樣一來就組成某個字符。但對于內(nèi)帶字符發(fā)生器的控制器來說,顯示字符就比較簡單了,可以讓控制器工作在文本方式,根據(jù)在 LCD 上開始顯示的行列號及每行的列數(shù)找出顯示 RAM 對應(yīng)的地址,設(shè)立游標(biāo),在此送上該字符對

9、應(yīng)的代碼即可。4.2.2 液晶 LCD1602 的簡介 6 / 24 7 / 24 8 / 245.5.系統(tǒng)硬件電路設(shè)計(jì)系統(tǒng)硬件電路設(shè)計(jì)系統(tǒng) Proteus 仿真圖:圖中主要以 AT89C51 為控制核心,包括顯示電路,音樂提示電路,晶振電路。 圖 5.1 電路仿真5.1 晶振電路AT89C51 中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳 XTAL1和 XTAL2 分別是該放大器的輸入端和輸出端。這個放大器與作為回饋組件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器。 9 / 24外接石英晶體(或陶瓷諧振器)及電容 C1、C2 接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對外接電容 C1、C

10、2 雖然沒有十分嚴(yán)格的要求,但是電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性,如果使用石英晶體,我們推薦電容使用 30pF10pF,而如果使用陶瓷諧振器建議選用 40pF10pF。使用外部振蕩器時,外部振蕩信號應(yīng)直接加到 XTAL1,而 XTAL2 懸空。內(nèi)部方式時,時鐘發(fā)生器對振蕩脈沖二分頻,如晶振為 12MHz,時鐘頻率就為6MHz。晶振的頻率可以在 1MHz-24MHz 內(nèi)選擇。電容取 30PF 左右。本系統(tǒng)采用內(nèi)部方式,晶振選用 12MHz。圖 5.2 晶體內(nèi)部方式5.2 液晶顯示電路如下圖 5.3,P1 口接 LCD1602 的 8 個雙向數(shù)

11、據(jù)線接口,P3.4 接 1602 的數(shù)據(jù)/命令選擇端,P3.5 接 1602 的讀/寫選擇端,P3.6 接 1602 的使能信號。BLA、BLK 分別是 1602 的背光源的正負(fù)極,VL 是 1602 對比度調(diào)整端。本文是通過對 RS、RW 以及 E 的高低電平進(jìn)行寫指令和寫數(shù)據(jù)操作來控制 1602 的顯示的。 10 / 24 圖 5.3 液晶顯示電路5.3 聲音提示電路 使用最簡單的蜂鳴器來作為提示音部分,通過改變端口高低電平來進(jìn)行發(fā)聲,并對延時進(jìn)行修改來調(diào)試發(fā)聲頻率,從而修改發(fā)出的聲音的好壞 圖 5.4 聲音提示電路圖 11 / 246系統(tǒng)仿真仿真是在軟件 Proteus 7.4 上進(jìn)行的

12、,用 C 語言編寫的程序,通過 keil 生成了hex 文件,經(jīng)過調(diào)試,仿真實(shí)現(xiàn)了排隊(duì)叫號系統(tǒng)的功能客戶取號圖按下客戶端取號按鍵,屏幕顯示“Your No.is 03!” 圖 6.1 客戶端顯示 12 / 24窗口叫號圖按下窗口服務(wù)叫號按鍵一,屏幕顯示“No.03 Come to No.1 window, please”圖 6.2 窗口服務(wù)叫號顯示 13 / 247 7系統(tǒng)軟件設(shè)計(jì)系統(tǒng)軟件設(shè)計(jì)7.1 系統(tǒng)軟件流程圖開始開始初始化初始化客戶取號客戶取號隊(duì)伍號碼累加隊(duì)伍號碼累加1602 顯示信息顯示信息窗口消號窗口消號隊(duì)伍號碼遞減隊(duì)伍號碼遞減信息處理信息處理隊(duì)伍空顯示器初始化、清零結(jié)束結(jié)束 聲音提

13、示聲音提示7.2 系統(tǒng)程序設(shè)計(jì)7.2.1 主程序設(shè)備上電后,顯示器屏幕亮,無信息顯示。當(dāng)客戶按鍵后,每按一下,隊(duì)伍加 1,顯示器顯示客戶隊(duì)伍號;排滿 20 位后,再按取號鍵,屏幕顯示“隊(duì)伍滿” 。當(dāng)客服叫號時,隊(duì)伍減 1,程序進(jìn)行信息處理,在顯示器上顯示“幾號客戶到幾號窗口” ,同時進(jìn)行聲音提示;當(dāng)隊(duì)伍空時,顯示“隊(duì)伍空” ,顯示器屏幕清空,儲存的隊(duì)伍號碼歸零處理。#include#define uchar unsigned char#define uint unsigned intsbit rs=P20;sbit rw=P21;sbit e=P22;sbit key1=P10; 14 / 2

14、4sbit key2=P11;sbit key3=P12;sbit sounder=P37;uchar prompt1=Your No.is 00!; uchar prompt2=No.00 Go To Win.0; uchar prompt3=Queue is full ; uchar prompt4=Queue is empty !; uint num_count=0; /排隊(duì)叫的號碼uint rank_number20=0; /排隊(duì)叫號存儲的數(shù)組uint num=0; /窗口消的號碼int RankFlag=0; /叫號的標(biāo)志int ClearNumFlag=0; /消號的標(biāo)志uint

15、LengthFlag=0; /隊(duì)列長度 叫一次號時+1,消一次號時-1/*延時函數(shù)*/void delay(uint n) while (n-);/*LCD1602 *顯示屏命令寫入函數(shù)*/void LCD_write_com(uchar com) e=0; rs=0; rw=0; P0= com; delay(1000); e=1; delay(1000); e=0; /* 15 / 24LCD1602 *顯示屏數(shù)據(jù)寫入函數(shù)*/void LCD_write_data(uchar dat) e=0; rs=1; rw=0; P0 = dat; delay(1000); e=1; delay(1

16、000); e=0;/*LCD1602 *顯示屏清空顯示*/void LCD_clear(void) LCD_write_com(0 x01); delay(1000);/*LCD1602 顯示屏初始化函數(shù)*/void LCD_init(void) LCD_write_com(0 x38); /*顯示模式設(shè)置*/ delay(100); LCD_write_com(0 x38); delay(100); LCD_write_com(0 x38); delay(100); LCD_write_com(0 x38); LCD_write_com(0 x08); /*顯示關(guān)閉*/ LCD_write

17、_com(0 x01); /*顯示清屏*/ 16 / 24 LCD_write_com(0 x06); /*顯示光標(biāo)移動設(shè)置*/ delay(100); LCD_write_com(0 x0C); /*顯示開及光標(biāo)設(shè)置*/*簡單的蜂鳴器提示音*/void sound() uint a;for(a=0;a500;a+)sounder=0;delay(61);sounder=1;/*獲取鍵值函數(shù)*/uint sweep_key() uint jianzhi; if(key1=0)delay(1000);if(key1=0)jianzhi=1;RankFlag=1;if(key2=0|key3=0)

18、 delay(1000);if(key2=0)jianzhi=2;if(key3=0)jianzhi=3;ClearNumFlag=1;return (jianzhi);/* 17 / 24叫號機(jī) 按一次一號鍵變量+1,最大為 20 */ void QueueNumProcess()if(RankFlag=1) /判斷叫號標(biāo)志是否有效 if ( LengthFlag20) num_count+; rank_numberLengthFlag = num_count; LengthFlag+; /*窗口消號處理函數(shù)*/void ClearNumProcess() uint i; if (Clear

19、NumFlag=1) /判斷消號標(biāo)志是否有效 num=rank_number0; /把消的號賦給全局變量 num for(i=0;i=20 ) LCD_clear(); LCD_write_com(0 x80+0 x02); delay(100); for(i=0;i16;i+) LCD_write_data(prompt3i); delay(100); else QueueNumProcess(); prompt111=(num_count)/10+0; prompt112=(num_count)%10+0; LCD_clear(); LCD_write_com(0 x80+02); del

20、ay(100); for(i=0;i15;i+) LCD_write_data(prompt1i); /Your No.is 00!; delay(100); RankFlag=0; 19 / 24 if(jz=2|jz=3) & ClearNumFlag=1) if(LengthFlag=0) LCD_clear(); LCD_write_com(0 x80+0); delay(1000); for(i=0;i16;i+) LCD_write_data(prompt4i);/Queue is empty ; delay(100); delay(65535);/無人排隊(duì)時屏幕自動清屏,計(jì)數(shù)歸零

21、LCD_clear();num_count=0; else ClearNumProcess(); /消號處理,營業(yè)員操作 sound(); prompt23=num/10+0; prompt24=num%10+0; prompt215=(jz-1)+0;LCD_clear(); LCD_write_com(0 x80+0); delay(100); for(i=0;i16;i+) LCD_write_data(prompt2i); /No.00 come to No.0; delay(100); ClearNumFlag=0; 20 / 24/*main 函數(shù)*/void main() uin

22、t Kvalue; LCD_init(); while(1) Kvalue=sweep_key(); /獲取鍵值 if (RankFlag=1 | ClearNumFlag=1)/判斷叫號標(biāo)志和消號標(biāo)志是否有效 CheckButtonProcess(Kvalue); delay(200); RankFlag=0; /使叫號標(biāo)志無效 ClearNumFlag=0; /使消號標(biāo)志無效 Kvalue=0; /鍵值清 0 7.2.2 液晶 LCD1602 顯示處理程序/*LCD1602 *顯示屏命令寫入函數(shù)*/void LCD_write_com(uchar com) e=0; rs=0; rw=0; P0= com; delay(1000); e=1; delay(1000); e=0; /*LCD1602 *顯示屏數(shù)據(jù)寫入函數(shù)*/void LCD_write_data(uchar dat) 21 / 24 e=0; rs=1; rw=0; P0 = dat; delay(1000); e=1; delay(1000)

溫馨提示

  • 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

提交評論