51单片机双机串口数码管显示排队叫号仿真设计( proteus仿真+程序+报告+讲解视频)
51单片机双机串口数码管显示排队叫号仿真设计
- 1.主要功能:
- 2.仿真
- 3.程序
- 4.设计报告
- 1.1 设计背景与意义
- 1.2 设计目的
- 1.3 设计要求及内容
- 1.4 本文结构安排
- 2 总体设计方案
- 2.1 系统需求及方案设计
- 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号。
3.程序
叫号机代码
#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; //设置为工作方式1TMOD=0X21; //设置计数器工作方式2TH1=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;}elsemode=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;}elsebeep=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; //设置为工作方式1TMOD=0X21; //设置计数器工作方式2TH1=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,含各种框图。
部分内容
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)操作简单、功能完善、精确度高。
5.设计资料内容清单
见文章开头视频
51单片机双机串口数码管显示排队叫号仿真设计( proteus仿真+程序+报告+讲解视频)相关推荐
- 51单片机入门——动态数码管显示详解
51单片机:动态数码管显示 - 模块图 - 显示原理 – 消抖 静态数码管技术 + 人眼视觉停留 显示原理类似于以前的 胶片机放影视,也就是只要我切换的速度足够快你就看不出来其实我是一次次显示的(滑稽 ...
- 【51单片机】七段数码管显示实验+详细讲解
[51单片机]七段数码管显示实验 前言 一.兵马未动,粮草先行--认识七段数码管 1.关于显示器 2.七段数码管 3.七段数码管的结构 4.数码管显示方法 二.数码管显示程序 1.静态显示 效果 2. ...
- 单片机学习笔记————51单片机实现带数码管显示的象棋比赛专用计时器
一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...
- 51单片机静态动态数码管显示
51单片机静态动态数码管显示 通过此实训了解动态数码管的显示原理,掌握编码方法.共阴极和其阴极数码管的不同之处及常用设计方法. 实训设备 这里使用的377锁存器模块控制的数码管下面就是电路图 显示内容 ...
- 单片机学习笔记————51单片机实现带数码管显示的加法简易计算器
一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...
- 51单片机七人多数表决器仿真设计( proteus仿真+程序+报告+讲解视频)
51单片机七人多数表决器仿真设计( proteus仿真+程序+报告+讲解视频) 仿真图proteus 7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0033 51 ...
- 51单片机开发 矩阵键盘中断实验与简易计算器及proteus仿真
51单片机开发 矩阵键盘中断实验与简易计算器及proteus仿真 文章目录 51单片机开发 矩阵键盘中断实验与简易计算器及proteus仿真 实验内容 一.实验一 矩阵键盘中断实验 数码管显示 1.仿 ...
- 基于51单片机的PWM控制直流电机设计( proteus仿真+程序+报告+讲解视频)
基于51单片机的PWM控制直流电机设计( proteus仿真+程序+报告+讲解视频) 仿真图proteus 7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0031 ...
- Arduino:数码管显示原理详解和Proteus仿真实验
Arduino:数码管显示原理详解和Proteus仿真实验 Proteus仿真 数码管介绍 数码管是半导体发光元件,其基本单元是发光二极管.根据段数,数码管分为七段管和八段管. 八段管比七段管还多一个 ...
最新文章
- cookie 免密登录_python
- 到成都去是联想的必然选择
- Class与Style绑定
- python3 执行系统命令
- 浏览器地址栏运行HTML代码(谷歌)
- androidstuido_schooltest_4_phone
- linux系统下的“静态库和动态库”专题之二:库的创建和使用
- 分布式服务下的关键技术(转)
- python 日期格式校验_python – 如何验证时间格式?
- 远程管理口怎么看地址_红烧羊肉怎么样做才能滋味浓郁,咸甜适口,且回味有奶香?看这里...
- java基础知识点_JAVA基础知识
- Leaflet文档阅读笔记-Zoom levels笔记
- html 缩小页面 重叠,如何获得两个平行四边形完美重叠并在HTML中动态调整大小?...
- python tkinter Checkbutton控件
- 简便 or 缺陷?Python 内置函数大揭秘!| 技术头条
- 国内最火的 HTML、CSS、JavaScript 开源项目 Top 榜,你知多少?
- java如何简单的将一个三位正整数分解成三个数
- mysql错误:Table XXX is marked as crashed and should be repaire
- mysql挂马_虚拟主机/数据库中挂马清理方法
- 高效办公小妙招(三)——15个鲜为人知的的小众网站
热门文章
- IC基础知识(一)CMOS器件
- 魅族手机支持鸿蒙os吗,魅族宣布接入鸿蒙OS,哪款产品将“尝鲜”?
- 1.权限认证java.lang.IllegalArgumentException: Cannot pass a null GrantedAuthority collection
- Sqlmap学习笔记(叁)
- 解决mei_me 0000:00:16.0:initialization failed.错误
- 2019考研浙大计算机经验帖
- LoRA: 大语言模型个性化的最佳实践
- 富贵的人送人用财物,仁德的人送人用言辞
- Android App 上架流程汇总
- 2015年软件评测师真题精选