• 方案介紹
    • 1.主要功能:
    • 2.仿真
    • 3.程序
    • 4.設(shè)計(jì)報(bào)告
    • 2 總體設(shè)計(jì)方案
    • 5.設(shè)計(jì)資料內(nèi)容清單
  • 附件下載
  • 推薦器件
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

51單片機(jī)雙機(jī)串口數(shù)碼管顯示排隊(duì)叫號(hào)仿真設(shè)計(jì)( proteus仿真+程序+報(bào)告+講解視頻)

2024/08/29
2110
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

設(shè)計(jì)資料獲取聯(lián)系方式.doc

共1個(gè)文件

51單片機(jī)雙機(jī)串口數(shù)碼管顯示排隊(duì)叫號(hào)仿真設(shè)計(jì)( proteus仿真+程序+報(bào)告+講解視頻)

仿真圖proteus 7.8及以上

程序編譯器:keil 4/keil 5

編程語(yǔ)言:C語(yǔ)言

設(shè)計(jì)編號(hào):S0034

1.主要功能:

設(shè)計(jì)要求

采用51單片機(jī)作為核心控制器

1、主機(jī)通過(guò)按鍵完成叫號(hào),數(shù)碼管顯示被叫的號(hào)碼,蜂嗚器響,提醒顧客接受服務(wù);

2、從機(jī)通過(guò)串行通信方式完成排隊(duì)職號(hào)功能;

3、從機(jī)顯示隊(duì)列中排在其前面的顧客數(shù);

任務(wù)安排

組員1:多機(jī)通信程序設(shè)計(jì)

組員2:數(shù)碼管顯示程序設(shè)計(jì)功能

組員3:根據(jù)組員1和組員2的子程序完成設(shè)計(jì)所需功能程序設(shè)計(jì)

從機(jī)顯示隊(duì)列中排在其前面的顧客數(shù);

以下為本設(shè)計(jì)資料展示圖:

2.仿真

開(kāi)始仿真

點(diǎn)擊開(kāi)始按鍵后,開(kāi)始仿真后先取號(hào),點(diǎn)一次取號(hào)鍵領(lǐng)取一個(gè)號(hào)碼。當(dāng)前是六號(hào),前面還有5個(gè)人排隊(duì),正在辦理業(yè)務(wù)的是01號(hào)。

img

3.程序

img

叫號(hào)機(jī)代碼

#include "reg51.h"
#define uchar unsigned char
#define uint unsigned int
sbit k1=P3^4;//按鈕
sbit k2=P3^5;//休息
sbit beep=P2^3;//蜂鳴器
sbit duan=P2^6;
sbit wei=P2^7;//數(shù)碼管
uint beep_time=0;
uchar mode=0;//模式
//數(shù)碼管編碼
uchar code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar num1=0;//號(hào)碼
uchar num2=0;//叫號(hào)數(shù)字 

//延時(shí)
void delay(uint i)
{
	while(i--);
}
//主函數(shù)
void main()
{
	uchar k=0;
	SCON=0X50;			//設(shè)置為工作方式1
	TMOD=0X21;			//設(shè)置計(jì)數(shù)器工作方式2
	TH1=0XFD;			
	TL1=0XFD;
	ES=1;						//打開(kāi)接收中斷
	TR1=1;					//打開(kāi)計(jì)數(shù)器

	TH0=(65536-1000)/256;
	TL0=(65536-1000)%256;	
	ET0=1;//打開(kāi)定時(shí)器0中斷允許
	EA=1;//打開(kāi)總中斷
	TR0=1;//打開(kāi)定時(shí)器
	while(1)
	{
		//叫號(hào)
		if(!k1 &&(k!=1))
		{
			k=1;
			if(num2<num1)
			{
			 	mode=1;
				num2++;
				SBUF=num2;while(!TI);TI=0;
			 	beep_time=1000;
			}
			else
				mode=0;
			 
		}
		//休息 
		if(!k2 &&(k!=2))
		{
			 k=2;
			 mode=0;
		} 
		//顯示
		if(mode>0)
		{
			P0=0;duan=1;delay(1);duan=0;//消隱
			P0=0xfe;wei=1;delay(1);wei=0;//位選
			P0=smgduan[num2/10];duan=1;delay(1);duan=0;//數(shù)據(jù)
			delay(50);
			P0=0;duan=1;delay(1);duan=0;//消隱
			P0=0xfd;wei=1;delay(1);wei=0;//位選
			P0=smgduan[num2%10];duan=1;delay(1);duan=0;//數(shù)據(jù)
			delay(50);
		}
		else
		{
			P0=0x40;duan=1;delay(1);duan=0;//減號(hào)
			P0=0;wei=1;delay(1);wei=0;//位選
		}
		if(k1 && k2)
			k=0;
	}
}
//定時(shí)器0中斷
void Timer0() interrupt 1
{
	if(beep_time>0)//蜂鳴器響
	{
		beep_time--;
		beep=!beep;
	}
	else
		beep=1;
	TH0=(65536-1000)/256;
	TL0=(65536-1000)%256;
}
//串口中斷
void Usart() interrupt 4
{
	uchar i;

	i=SBUF;//出去接收到的數(shù)據(jù)
	RI = 0;//清除接收中斷標(biāo)志位
	num1=i;
}

取號(hào)機(jī)代碼

#include "reg51.h"
#define uchar unsigned char
#define uint unsigned int
sbit k1=P3^4;//按鈕
sbit beep=P2^3;//蜂鳴器
sbit duan=P2^6;
sbit wei=P2^7;//數(shù)碼管
uint beep_time=0;
uint time=0;
//數(shù)碼管編碼
uchar code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar num1=0;//號(hào)碼
uchar num2=0;//叫號(hào)數(shù)字 

//延時(shí)
void delay(uint i)
{
	while(i--);
}
//主函數(shù)
void main()
{
	uchar k=0;
	SCON=0X50;			//設(shè)置為工作方式1
	TMOD=0X21;			//設(shè)置計(jì)數(shù)器工作方式2
	TH1=0XFD;			
	TL1=0XFD;
	ES=1;						//打開(kāi)接收中斷
	TR1=1;					//打開(kāi)計(jì)數(shù)器

	TH0=(65536-1000)/256;
	TL0=(65536-1000)%256;	
	ET0=1;//打開(kāi)定時(shí)器0中斷允許
	EA=1;//打開(kāi)總中斷
	TR0=1;//打開(kāi)定時(shí)器
	while(1)
	{
		//拿號(hào)
		if(!k1 &&(k!=1))
		{
			 k=1;
			 num1++;
			 SBUF=num1;while(!TI);TI=0;
			 beep_time=500;
			 time=5000;
		} 
		//顯示
		if(time>0)
		{
			P0=0;duan=1;delay(1);duan=0;//消隱
			P0=0xfe;wei=1;delay(1);wei=0;//位選
			P0=smgduan[num1/10];duan=1;delay(1);duan=0;//數(shù)據(jù)
			delay(50);
			P0=0;duan=1;delay(1);duan=0;//消隱
			P0=0xfd;wei=1;delay(1);wei=0;//位選
			P0=smgduan[num1%10];duan=1;delay(1);duan=0;//數(shù)據(jù)
			delay(50);

			P0=0;duan=1;delay(1);duan=0;//消隱
			P0=0xef;wei=1;delay(1);wei=0;//位選
			P0=smgduan[(num1-num2)/10];duan=1;delay(1);duan=0;//數(shù)據(jù)
			delay(50);
			P0=0;duan=1;delay(1);duan=0;//消隱
			P0=0xdf;wei=1;delay(1);wei=0;//位選
			P0=smgduan[(num1-num2)%10];duan=1;delay(1);duan=0;//數(shù)據(jù)
			delay(50);
		}
		else
		{
			P0=0x40;duan=1;delay(1);duan=0;//減號(hào)
			P0=0;wei=1;delay(1);wei=0;//位選
		}
		if(k1)
			k=0;
	}
}

//串口中斷
void Usart() interrupt 4
{
	uchar i;

	i=SBUF;//出去接收到的數(shù)據(jù)
	RI = 0;//清除接收中斷標(biāo)志位
	num2=i;
}

4.設(shè)計(jì)報(bào)告

報(bào)告格式規(guī)范,字?jǐn)?shù)6584,含各種框圖。

img

部分內(nèi)容

1.1 設(shè)計(jì)背景與意義

排隊(duì)論(又稱隨機(jī)服務(wù)系統(tǒng))是研究系統(tǒng)由于隨機(jī)因素的干擾而出現(xiàn)排隊(duì)(或擁塞)現(xiàn)象的規(guī)律的一門學(xué)科,它適用于一切服務(wù)系統(tǒng),包括公共服務(wù)系統(tǒng)、通信系統(tǒng)計(jì)算機(jī)系統(tǒng)等??梢哉f(shuō),凡是出現(xiàn)擁塞現(xiàn)象的系統(tǒng),都屬于隨機(jī)服務(wù)系統(tǒng)。一個(gè)對(duì)象通過(guò)擁塞系統(tǒng)接受服務(wù)必須經(jīng)過(guò)三個(gè)環(huán)節(jié),即到達(dá)、排隊(duì)等候處理、接受服務(wù)和離去。例如在醫(yī)院中,排隊(duì)流程如下:患者在掛號(hào)的同時(shí)領(lǐng)取排隊(duì)號(hào)碼,然后到候診區(qū)候診;當(dāng)為前一患者完成診斷后,醫(yī)生通過(guò)本系統(tǒng)呼叫隊(duì)列中下一位患者,患者就可直接到空閑診室行排隊(duì)等候服務(wù)。

另一個(gè)方面,伴隨著服務(wù)行業(yè)業(yè)務(wù)量不斷增長(zhǎng),業(yè)務(wù)種類日益增多,排隊(duì)等候已成為人們經(jīng)常面臨的實(shí)際問(wèn)題。在銀行,醫(yī)院,電信,稅務(wù),工商等營(yíng)業(yè)大廳里,前擁后擠,雜亂無(wú)章的排隊(duì)等候,已是司空見(jiàn)慣的現(xiàn)象,影響了服務(wù)質(zhì)量。因此,改善服務(wù)質(zhì)量,樹(shù)立良好的企業(yè)形象,解決客戶勞累的排隊(duì)現(xiàn)象,創(chuàng)造人性化服務(wù)環(huán)境已成為急需解決的問(wèn)題。設(shè)計(jì)一套排隊(duì)抽號(hào)的服務(wù)系統(tǒng),可以很好的解決因排隊(duì)引起的種種問(wèn)題。

本系統(tǒng)通過(guò)AT89C51單片機(jī)直接擴(kuò)展獨(dú)立鍵盤,完成排隊(duì)取號(hào)流程,單片機(jī)控制數(shù)碼管顯示排隊(duì)等待情況,控制蜂鳴器發(fā)聲完成叫號(hào)功能。該系統(tǒng)有良好的人機(jī)交互界面,模擬排隊(duì)管理,科學(xué)地處理各種排隊(duì)情況,操作簡(jiǎn)便,控制靈活,顯示清晰,制作成本低,性價(jià)比較高。

1.2 設(shè)計(jì)目的

(1)鞏固和加深對(duì)單片機(jī)原理和接口技術(shù)知識(shí)的理解;

(2)培養(yǎng)根據(jù)課題需要選學(xué)參考書(shū)籍、查閱手冊(cè)和文獻(xiàn)資料的能力;

(3)學(xué)會(huì)方案論證的比較方法,拓寬知識(shí),初步掌握工程設(shè)計(jì)的基本方法;

(4)掌握常用儀器、儀表的正確使用方法,學(xué)會(huì)軟、硬件的設(shè)計(jì)和調(diào)試方法;

(5) 能按課程設(shè)計(jì)的要求編寫課程設(shè)計(jì)報(bào)告,能正確反映設(shè)計(jì)和實(shí)驗(yàn)成果,能用計(jì)算機(jī)繪制電路圖、仿真圖和流程圖。

1.3 設(shè)計(jì)要求及內(nèi)容

1、主機(jī)通過(guò)按鍵完成叫號(hào),數(shù)碼管顯示被叫的號(hào)碼,蜂嗚器響,提醒顧客接受服務(wù);

2、從機(jī)通過(guò)串行通信方式完成排隊(duì)職號(hào)功能;

3、從機(jī)顯示隊(duì)列中排在其前面的顧客數(shù);

1.4 本文結(jié)構(gòu)安排

本文圍繞著基于51單片機(jī)的排隊(duì)叫號(hào)系統(tǒng)展開(kāi)設(shè)計(jì),以排隊(duì)叫號(hào)需求為出發(fā)點(diǎn),首先明確了研究背景與意義,介紹了設(shè)計(jì)目的,并論述了設(shè)計(jì)要求及設(shè)計(jì)內(nèi)容,接下來(lái)的幾章將具體展開(kāi)相關(guān)設(shè)計(jì)與研究:

第二章介紹系統(tǒng)總體方案及相關(guān)理論知識(shí),重點(diǎn)闡述了系統(tǒng)功能需求和系統(tǒng)方案論證,接著簡(jiǎn)要介紹了系統(tǒng)硬件及軟件基本知識(shí)。

第三章重點(diǎn)展開(kāi)硬件系統(tǒng)設(shè)計(jì),首先明確叫號(hào)機(jī)及取號(hào)機(jī)硬件電路設(shè)計(jì)的思路及框架。接著依次介紹了:?jiǎn)纹瑱C(jī)最小系統(tǒng)、按鍵電路、數(shù)碼管顯示電路、蜂鳴器提醒電路、電源電路等。通過(guò)對(duì)以上重點(diǎn)電路的介紹,強(qiáng)化了硬件電路設(shè)計(jì)的細(xì)節(jié)和重點(diǎn)。

第四章展開(kāi)軟件系統(tǒng)設(shè)計(jì),通過(guò)對(duì)軟件設(shè)計(jì)進(jìn)行需求分析,明確軟件設(shè)計(jì)的目的與需求,進(jìn)一步通過(guò)程序流程圖展示設(shè)計(jì)思路及框架。接著依次介紹了主函數(shù)流程、取號(hào)機(jī)取號(hào)流程、叫號(hào)機(jī)叫號(hào)程序流程、蜂鳴器提醒流程。

第五章介紹仿真實(shí)現(xiàn)步驟,特別是仿真電路實(shí)現(xiàn)的流程和仿真測(cè)試,完美實(shí)現(xiàn)了設(shè)計(jì)需求及目標(biāo)。

第六章總結(jié)全文,總結(jié)本文所做的工作及貢獻(xiàn),并根據(jù)存在的問(wèn)題展望此課題今后的研究方向。

2 總體設(shè)計(jì)方案

2.1 系統(tǒng)需求及方案設(shè)計(jì)

為了實(shí)現(xiàn)基于51單片機(jī)的排隊(duì)叫號(hào)系統(tǒng)的設(shè)計(jì),本文將實(shí)現(xiàn)以下設(shè)計(jì)需求:

(1)取號(hào)機(jī)可實(shí)時(shí)進(jìn)行取號(hào),較好的現(xiàn)實(shí)中的取號(hào)情況;

(2)直接、清晰明了的顯示顧客排隊(duì)號(hào);

(3)叫號(hào)機(jī)通過(guò)按鍵完成叫號(hào),數(shù)碼管液晶顯示屏顯示被叫的號(hào)碼及服務(wù)的柜臺(tái)號(hào);同時(shí),蜂鳴器響,以提醒顧客接收服務(wù);

(4)操作簡(jiǎn)單、功能完善、精確度高。

img

5.設(shè)計(jì)資料內(nèi)容清單

見(jiàn)文章開(kāi)頭視頻

img

  • 設(shè)計(jì)資料獲取聯(lián)系方式.doc
    下載

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
AQY282S 1 Panasonic Electronic Components Solid State Relay,
$1.69 查看
M95M02-DRMN6TP 1 STMicroelectronics 2 Mbit serial SPI bus EEPROM

ECAD模型

下載ECAD模型
$2.36 查看
KSZ8863FLL 1 Microchip Technology Inc DATACOM, LAN SWITCHING CIRCUIT, PQFP48
$5.57 查看

相關(guān)推薦