加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

51单片机双机串口数码管显示排队叫号仿真设计( proteus仿真+程序+报告+讲解视频)

08/29 12:49
956
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
实物图
相关方案
  • 方案介绍
    • 1.主要功能:
    • 2.仿真
    • 3.程序
    • 4.设计报告
    • 2 总体设计方案
    • 5.设计资料内容清单
  • 相关文件
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

51单片机双机串口数码管显示排队叫号仿真设计( proteus仿真+程序+报告+讲解视频)

仿真图proteus 7.8及以上

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0034

1.主要功能:

设计要求

采用51单片机作为核心控制器

1、主机通过按键完成叫号,数码管显示被叫的号码,蜂呜器响,提醒顾客接受服务;

2、从机通过串行通信方式完成排队职号功能;

3、从机显示队列中排在其前面的顾客数;

任务安排

组员1:多机通信程序设计

组员2:数码管显示程序设计功能

组员3:根据组员1和组员2的子程序完成设计所需功能程序设计

从机显示队列中排在其前面的顾客数;

以下为本设计资料展示图:

2.仿真

开始仿真

点击开始按键后,开始仿真后先取号,点一次取号键领取一个号码。当前是六号,前面还有5个人排队,正在办理业务的是01号。

img

3.程序

img

叫号机代码

#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;//数码管
uint beep_time=0;
uchar mode=0;//模式
//数码管编码
uchar code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar num1=0;//号码
uchar num2=0;//叫号数字 

//延时
void delay(uint i)
{
	while(i--);
}
//主函数
void main()
{
	uchar k=0;
	SCON=0X50;			//设置为工作方式1
	TMOD=0X21;			//设置计数器工作方式2
	TH1=0XFD;			
	TL1=0XFD;
	ES=1;						//打开接收中断
	TR1=1;					//打开计数器

	TH0=(65536-1000)/256;
	TL0=(65536-1000)%256;	
	ET0=1;//打开定时器0中断允许
	EA=1;//打开总中断
	TR0=1;//打开定时器
	while(1)
	{
		//叫号
		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;//数据
			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;//数据
			delay(50);
		}
		else
		{
			P0=0x40;duan=1;delay(1);duan=0;//减号
			P0=0;wei=1;delay(1);wei=0;//位选
		}
		if(k1 && k2)
			k=0;
	}
}
//定时器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;//出去接收到的数据
	RI = 0;//清除接收中断标志位
	num1=i;
}

取号机代码

#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;//数码管
uint beep_time=0;
uint time=0;
//数码管编码
uchar code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar num1=0;//号码
uchar num2=0;//叫号数字 

//延时
void delay(uint i)
{
	while(i--);
}
//主函数
void main()
{
	uchar k=0;
	SCON=0X50;			//设置为工作方式1
	TMOD=0X21;			//设置计数器工作方式2
	TH1=0XFD;			
	TL1=0XFD;
	ES=1;						//打开接收中断
	TR1=1;					//打开计数器

	TH0=(65536-1000)/256;
	TL0=(65536-1000)%256;	
	ET0=1;//打开定时器0中断允许
	EA=1;//打开总中断
	TR0=1;//打开定时器
	while(1)
	{
		//拿号
		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;//数据
			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;//数据
			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;//数据
			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;//数据
			delay(50);
		}
		else
		{
			P0=0x40;duan=1;delay(1);duan=0;//减号
			P0=0;wei=1;delay(1);wei=0;//位选
		}
		if(k1)
			k=0;
	}
}

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

	i=SBUF;//出去接收到的数据
	RI = 0;//清除接收中断标志位
	num2=i;
}

4.设计报告

报告格式规范,字数6584,含各种框图。

img

部分内容

1.1 设计背景与意义

排队论(又称随机服务系统)是研究系统由于随机因素的干扰而出现排队(或拥塞)现象的规律的一门学科,它适用于一切服务系统,包括公共服务系统、通信系统计算机系统等。可以说,凡是出现拥塞现象的系统,都属于随机服务系统。一个对象通过拥塞系统接受服务必须经过三个环节,即到达、排队等候处理、接受服务和离去。例如在医院中,排队流程如下:患者在挂号的同时领取排队号码,然后到候诊区候诊;当为前一患者完成诊断后,医生通过本系统呼叫队列中下一位患者,患者就可直接到空闲诊室行排队等候服务。

另一个方面,伴随着服务行业业务量不断增长,业务种类日益增多,排队等候已成为人们经常面临的实际问题。在银行,医院,电信,税务,工商等营业大厅里,前拥后挤,杂乱无章的排队等候,已是司空见惯的现象,影响了服务质量。因此,改善服务质量,树立良好的企业形象,解决客户劳累的排队现象,创造人性化服务环境已成为急需解决的问题。设计一套排队抽号的服务系统,可以很好的解决因排队引起的种种问题。

本系统通过AT89C51单片机直接扩展独立键盘,完成排队取号流程,单片机控制数码管显示排队等待情况,控制蜂鸣器发声完成叫号功能。该系统有良好的人机交互界面,模拟排队管理,科学地处理各种排队情况,操作简便,控制灵活,显示清晰,制作成本低,性价比较高。

1.2 设计目的

(1)巩固和加深对单片机原理和接口技术知识的理解;

(2)培养根据课题需要选学参考书籍、查阅手册和文献资料的能力;

(3)学会方案论证的比较方法,拓宽知识,初步掌握工程设计的基本方法;

(4)掌握常用仪器、仪表的正确使用方法,学会软、硬件的设计和调试方法;

(5) 能按课程设计的要求编写课程设计报告,能正确反映设计和实验成果,能用计算机绘制电路图、仿真图和流程图。

1.3 设计要求及内容

1、主机通过按键完成叫号,数码管显示被叫的号码,蜂呜器响,提醒顾客接受服务;

2、从机通过串行通信方式完成排队职号功能;

3、从机显示队列中排在其前面的顾客数;

1.4 本文结构安排

本文围绕着基于51单片机的排队叫号系统展开设计,以排队叫号需求为出发点,首先明确了研究背景与意义,介绍了设计目的,并论述了设计要求及设计内容,接下来的几章将具体展开相关设计与研究:

第二章介绍系统总体方案及相关理论知识,重点阐述了系统功能需求和系统方案论证,接着简要介绍了系统硬件及软件基本知识。

第三章重点展开硬件系统设计,首先明确叫号机及取号机硬件电路设计的思路及框架。接着依次介绍了:单片机最小系统、按键电路、数码管显示电路、蜂鸣器提醒电路、电源电路等。通过对以上重点电路的介绍,强化了硬件电路设计的细节和重点。

第四章展开软件系统设计,通过对软件设计进行需求分析,明确软件设计的目的与需求,进一步通过程序流程图展示设计思路及框架。接着依次介绍了主函数流程、取号机取号流程、叫号机叫号程序流程、蜂鸣器提醒流程。

第五章介绍仿真实现步骤,特别是仿真电路实现的流程和仿真测试,完美实现了设计需求及目标。

第六章总结全文,总结本文所做的工作及贡献,并根据存在的问题展望此课题今后的研究方向。

2 总体设计方案

2.1 系统需求及方案设计

为了实现基于51单片机的排队叫号系统的设计,本文将实现以下设计需求:

(1)取号机可实时进行取号,较好的现实中的取号情况;

(2)直接、清晰明了的显示顾客排队号;

(3)叫号机通过按键完成叫号,数码管液晶显示屏显示被叫的号码及服务的柜台号;同时,蜂鸣器响,以提醒顾客接收服务;

(4)操作简单、功能完善、精确度高。

img

5.设计资料内容清单

见文章开头视频

img

  • 设计资料获取联系方式.doc

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
TLP293-4(GB-TP,E 1 Toshiba America Electronic Components TRANSISTOR OUTPUT OPTOCOUPLER

ECAD模型

下载ECAD模型
$2.4 查看
SN65HVD232DR 1 Texas Instruments 3.3 V CAN Transceiver 8-SOIC -40 to 85

ECAD模型

下载ECAD模型
$2.3 查看
FTLF1321S1MTL 1 Finisar Corporation Transceiver, 1270nm Min, 1360nm Max, 2667Mbps(Tx), 2667Mbps(Rx), LC Connector, Through Hole Mount
$912.99 查看

相关推荐

电子产业图谱