当前位置: 首页 > news >正文

【51单片机】【protues仿真】 基于51单片机叫号系统

目录

一、主要功能

二、使用步骤

三、硬件资源

四、软件设计

五、实验现象

一、主要功能

1、LCD1602液晶显示当前号数和各窗口号数
2、按键​取号和叫号

二、使用步骤

基于51单片机的排队叫号系统设计通常包含取号管理、窗口叫号、语音播报和显示控制等核心功能模块。

三、硬件资源

1、51单片机核心模块
2、按键模块
3、LCD1602显示模块

四、软件设计

#include "common.h"
#include "lcd1602.h"
#include "WT588D.h"

//按键引脚
sbit key3 = P1^2;//排队取号
sbit key2 = P1^1;//窗口2键
sbit key1 = P1^0;//窗口1键

unsigned char WaitNumber = 0;//等待人数
unsigned char Number = 0;//排队号
unsigned char CallNumber = 0;//呼叫号

unsigned int Time = 500;//延时时间
bit flag = 0;

void VoicePlayback(uchar num,uchar temp)//语音播报
{
      unsigned char a,b,wei;
      
      a = num/10;//十位
      b = num%10;//个位
      if(num >= 10)wei = 2;
      else wei = 1;
    
      Line_1A(11);//请
      delay_ms(Time);
      delay_ms(Time);
      if(wei == 1)
        {
                Line_1A(b);
              delay_ms(Time);
        }
        else
        {
              Line_1A(a);
                delay_ms(Time);
              delay_ms(Time);
                Line_1A(10);//十
              delay_ms(Time);
              if(b != 0)
                {
                      delay_ms(Time);
                        Line_1A(b);
                      delay_ms(Time);
                }
        }
        delay_ms(Time);
      Line_1A(12);//号
      delay_ms(Time);
        delay_ms(Time-50);
        Line_1A(13);//到
      delay_ms(Time);
        delay_ms(Time);
        if(temp == 1)//1
        {
                Line_1A(1);
        }
        else if(temp == 2)//2
        {
                Line_1A(2);
        }
        delay_ms(Time);
        delay_ms(Time);
        Line_1A(12);//号
      delay_ms(Time);
        delay_ms(Time-50);
        Line_1A(14);//窗口
}

void qiping()//清屏第一行
{
        if(flag == 0)
        {
                flag = 1;
                lcd_write_str(0,0,"                ");
        }
}

void main()
{

    lcd_init();//1602初始化
        lcd_write_str(0,0,"     Welcome    ");
        lcd_write_str(0,1,"Wait:00   Num:00");
        while(1)
        {
             KeyScan();//按键扫描
             delay_ms(1);
        }
}

五、实验现象

演示视频:

http://www.dtcms.com/a/357262.html

相关文章:

  • 基于EB的K3XX_GPT定时器中断的实现方法
  • 精通与AI对话的艺术:如何通过角色扮演获得精准输出
  • 【Rust】 6. 字符串学习笔记
  • Day12-python文件操作(二)
  • java开发连接websocket接口
  • STM32CubeMX(十八)USB-MSC:外部flash模拟U盘
  • Day17_【机器学习—特征预处理(归一化和标准化)】
  • 期权杂记(二)
  • Hadoop(六)
  • 迁移学习实战:医疗影像识别快速突破方案
  • 【实时Linux实战系列】实时数据可视化技术实现
  • Python OpenCV图像处理与深度学习:Python OpenCV开发环境搭建与入门
  • 嵌入式Linux驱动开发:设备树与平台设备驱动
  • 2023年12月GESP5级C++真题解析,包括选择判断和编程
  • 嵌入式-定时器的输入捕获,超声波获距实验-Day23
  • 如何使用 Vector 连接 Easysearch
  • 【实时Linux实战系列】实时环境监控系统的架构与实现
  • PPT处理控件Aspose.Slides教程:使用 C# 编程将 PPTX 转换为 XML
  • 【实时Linux实战系列】基于实时Linux的虚拟现实应用开发
  • 趣味学Rust基础篇(所有权)
  • 【DeepSeek】公司内网部署离线deepseek+docker+ragflow本地模型实战
  • 《跳出“技术堆砌”陷阱,构建可演进的软件系统》
  • 【PyTorch】神经风格迁移项目
  • 每周资讯 | 《恋与深空》获科隆游戏展2025“最佳移动游戏奖”;8月173个版号下发
  • 【小白笔记】访问GitHub 账户的权限英文单词解释
  • nvm使用和node使用
  • 【前端教程】用 JavaScript 实现4个常用时间与颜色交互功能
  • centos8部署miniconda、nodejs
  • webpack升级
  • 飞牛Nas每天定时加密数据备份到网盘,基于restic的Backrest笔记分享