电商网站建设规划开发方案,wordpress收款生成源码,广州市网页设计制作,十大免费cad制图软件文章目录 前言资料获取设计介绍设计程序具体实现截图设计获取 前言 #x1f497;博主介绍#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师#xff0c;一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们… 文章目录 前言资料获取设计介绍设计程序具体实现截图设计获取 前言 博主介绍✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生希望您们都共创辉煌✌ 精彩专栏 推荐订阅 单片机设计精品实战案例✅ 感兴趣的可以先收藏起来还有大家在毕设选题项目以及论文编写等相关问题都可以给我留言咨询希望帮助更多的人 资料获取
文章底部名片详细资料联系我。
设计介绍
基于单片机的餐厅呼叫控制系统仿真设计是一个综合性的工程旨在通过融合单片机技术、呼叫控制原理以及系统仿真等多个领域的专业知识提升餐厅的运营效率和顾客体验。以下是对该设计的一个详细介绍
一、系统概述 基于单片机的餐厅呼叫控制系统主要由单片机作为控制核心配合按键模块、显示模块、提示模块等硬件组件实现呼叫请求的发起、接收、处理与反馈。顾客通过按键模块发起呼叫请求单片机接收到请求后通过显示模块展示呼叫信息并利用提示模块通知服务员。服务员根据提示及时处理呼叫请求从而完成整个呼叫服务流程。
设计程序 /****************************************************************************
******餐厅呼叫系统数码管显示无线遥控呼叫1号房间0101、0102、0000********
****************************************************************************/
//头文件
#include reg52.h
#define uchar unsigned char
#define uint unsigned int
#define WEI P2 //定义P2口和P0口
#define DUAN P0
//各无线模块输出定义引脚
sbit R1_01P1^0;
sbit R1_02P1^1;
sbit R1_00P1^2;
sbit R2_01P1^3;
sbit R2_02P1^4;
sbit R2_00P1^5;
sbit R3_01P1^6;
sbit R3_02P1^7;
sbit R3_00P3^1;
//应答按键
sbit yingdaP3^7;
//蜂鸣器
sbit buzz P3^6;
//数码管显示数组
uchar code tab_duan[]{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; //0-9共阳显示码
uchar code tab_wei[]{0x7f,0xdf,0xf7,0xfd};//数码管位选
uchar bdata tab[4];
uchar h,sec;//定义全局变量
uchar flag1,flag2,flag3,flag4;void display(); //声明显示函数
/****************************************************************************
******函数名称delayuint x**********************************************
******作用延时x ms函数*****************************************************
****************************************************************************/
void delay(uint x)
{uint i,j;for(i0;ix;i)for(j0;j110;j);
}
/****************************************************************************
******函数名称KEY******************************************************
******作用扫描按键*********************************************************
****************************************************************************/
void KEY()
{if(R1_011) //当1餐桌1号请求1时{tab[1]1; //请求编号置1flag11; //餐桌号置1while(R1_01) display(); //按键释放} if(R1_021) //一号餐桌有请求2时{tab[1]2; //请求编号置2flag11; //餐桌号置1while(R1_02) display(); //按键释放} if(R1_001) //一号餐桌无请求时{tab[1]0; //请求编号置0flag10; //餐桌编号置0while(R1_00) display(); //按键释放} if(R2_011) //当二号餐桌... ... 同上{tab[2]1;flag21;while(R2_01) display();} if(R2_021){tab[2]2;flag21;while(R2_02) display(); }if(R2_001){tab[2]0;flag20;while(R2_00) display();} if(R3_011){tab[3]1;flag31;while(R3_01) display(); }if(R3_021){tab[3]2;flag31;while(R3_02) display(); }if(R3_001){tab[3]0;flag30;while(R3_00) display();} if(yingda0) //应答按键按下时清零各餐桌呼叫{tab[1]0; //餐桌请求清零flag10; //餐桌号清零tab[2]0;flag20;tab[3]0;flag30;while(!yingda) display(); //按键释放}
}
/****************************************************************************
******函数名称display**************************************************
******作用根据呼叫状态显示不同状态*****************************************
****************************************************************************/
void display()
{WEItab_wei[0]; //打开第一位DUANtab_duan[0]; //送入第一位显示数据delay(1); //延时1msDUANtab_duan[10]; //清屏WEItab_wei[2]; //打开第二位DUANtab_duan[0]; //送入第二位数据delay(1); //延时1msDUANtab_duan[10]; //清屏 以下同理if(sec1) //循环显示变量为1时{if(flag11) //如果一号餐桌有请求{ //显示一号餐桌的请求编号WEItab_wei[1];DUANtab_duan[flag1];delay(1);DUANtab_duan[10];WEItab_wei[3];DUANtab_duan[tab[1]];delay(1);DUANtab_duan[10]; } else //如果一号餐桌没有请求sec2; //循环显示变量直接赋值为2用于显示下个餐桌的请求}if(sec2) //循环显示变量为2{if(flag21) //2号餐桌是否有请求{ //显示2号餐桌的请求WEItab_wei[1];DUANtab_duan[flag21];delay(1);DUANtab_duan[10];WEItab_wei[3];DUANtab_duan[tab[2]];delay(1);DUANtab_duan[10]; }else //没有请求sec3; //循环显示变量直接赋值3用于显示下个餐桌的请求}if(sec3){if(flag31){WEItab_wei[1];DUANtab_duan[flag32];delay(1);DUANtab_duan[10];WEItab_wei[3];DUANtab_duan[tab[3]];delay(1);DUANtab_duan[10]; }elsesec1;}if(flag10flag20flag30) //没有呼叫时数码管显示0000{WEItab_wei[1];DUANtab_duan[0];delay(1);DUANtab_duan[10];WEItab_wei[3];DUANtab_duan[0];delay(1);DUANtab_duan[10];}
}
/****************************************************************************
******函数名称init*****************************************************
******作用定时的初始化函数*************************************************
****************************************************************************/
void init()
{TMOD0x01; //工作方式TH00x3c; //赋初值TL00xb0;EA1; //打开中断总开关ET01; //打开中断允许开关TR01; //打开定时器开关
}
/****************************************************************************
******函数名称main*****************************************************
******作用程序的入口每个工程文件中都要有一个main函数*********************
****************************************************************************/
void main()
{init(); //调用初始化函数R1_010;R1_020;R1_000;R2_010;R2_020;R2_000;R3_010;R3_020;R3_000; //将各无线模块输入引脚置低电平用来采集高电平信号while(1) //进入循环{KEY(); //调用按键函数display(); //调用显示函数}
}
/****************************************************************************
******函数名称time0()******************************************************
******作用定时器T0的服务函数定时器中断进入时需要完成的任务***************
****************************************************************************/
void time0() interrupt 1
{uchar m;TH00x3c;TL00xb0; //重新赋初值m;if(m%50(tab[1]!0||tab[2]!0||tab[3]!0))buzz!buzz; //有呼叫时蜂鸣器闪烁else if(tab[1]0tab[2]0tab[3]0)buzz1; //无呼叫时关闭蜂鸣器if(m40) {m0;sec;if(sec4)sec1;}
}
具体实现截图 设计获取 文章下方名片联系我即可~ 精彩专栏推荐订阅在下方专栏 毕业设计精品实战案例 收藏关注不迷路 文末获取设计