项目——排队叫号系统设计

文章首发于我的个人博客

github项目地址:https://github.com/Kevinnan-teen/MCU-Projects-Collection

【项目对你有帮助的话,就star/fork走一波吧!】

类似食堂取餐的模式。首先,学生排队,服务员使用键盘给顾客分配号码,按下确定键,数码管显示当前队列中的人数、刚刚进入队列的号码,并通过串口通信的方式将队列人数和当前分配的号码发送给从机,从机将数据显示在1602液晶屏上。另外,主机通过键盘按键选择取餐功能,按下出队键,叫到要取餐的号码,并通过语音播报取餐号码。

一、环境依赖

  • windows10
  • Keil uVision5
  • stc-isp烧录
  • Proteus 8 Professional

二、项目结构说明

  1. src:主机和从机 C代码
    • server(主机代码)
      • main.c:主程序入口
      • FIFOQUEUE.h/FIFOQUEUE.c:FIFO循环队列实现
      • config.h:FIFO循环队列配置
      • server_uart.h/server_uart.c:双机串口通信服务端代码
    • client(从机代码)
      • main.c:主程序入口
      • lcd.h/lcd.c:1602A显示屏驱动程序
      • client_uart.h/client_uart.h:双机串口通信客户端代码
  2. resources:芯片手册、电路图等
  3. QueueSystem_proteus_simulation:proteus电路仿真

三、硬件清单

硬件 数量(个)
STC89C52RC(DIP-40) 2
11.0592MHZ无源晶振 2
74HC573 2
4位共阴数码管 2
1602A液晶显示屏 1
4x3薄膜键盘 1
1k 9针排阻 2
YF017语音芯片 1
扬声器 1
10k变阻器 1
30pf陶瓷电容 4
104陶瓷电容 2

四、最佳实践

src目录下提供了主机和从机的源代码,您可以先新建两个keil项目(51单片机),然后分别将这两部分代码添加到你新建的keil工程下面,编译并生成hex文件。

**仿真:**然后使用Proteus打开QueueSystem_proteus_simulation目录下的Proteus仿真电路,并将上一步生成的两个hex文件分别添加到两块8051单片机中,进行仿真。

面包板连接注意事项:

  • 不推荐使用面包板专供电源,电压可能达不到5V,导致单片机P口输出高低电平有问题,而且如果使用面包板专用电源的GND,那么串口通信是无法实现的(可能是面包板电源的GND电压也有问题)。在我调试硬件的过程中,有超过一半的问题都是电源问题引起的,所以我建议如果你有51核心板,可以使用杜邦线将该板子的VCC和GND接到你的面包板电路中,而不是使用面包板专用电源。
  • 我是用的是102孔面包板,这种面包板左右两侧和上下两侧的电源不是连通的,需要你自己用跳线连接。
  • 尽量使用跳线进行连接,最终的电路美观而且运行稳定。(不建议大范围使用杜邦线)
  • 对于51单片机来说,要进行双机串口通信,两个单片机的晶振应当相同,我建议使用11.0592MHZ的无源晶振,再加两个30pf的陶瓷电容连城晶振电路。(11.0592MHZ计算的波特率无误差)
  • 数码管应注意是共阴还是共阳。
  • 51单片机P0口要接1k的上拉电阻(使用9针排阻)。

**项目运行逻辑:**先通过4x3薄膜键盘输入两位数字,然后按下#按键(即确定键),即可将该号码添加到队列中

  • 7
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值