基于51单片机的zigbee餐桌呼叫系统设计
0、毕业设计选题原则说明(重点)
- 选题之前,同学们要弄明白一件事情,做毕业设计是干什么用的!
- 这里我告诉大家,毕业设计对于你来说,不是让你去搞研究,掌握运用所学知识的,也不是让你去比谁做的毕业设计多么牛逼,多么厉害。
- 说白点,它的作用就是一个,让你顺利毕业,能够拿到学位证,毕业证而已!!!
- 当你明白这一点后,作毕业设计的要求就是在满足老师的要求后,越简单越好,这样不但容易去做,而且你自己也容易去理解,掌握,同样也能花最少的钱!!!
- 满足老师的要求,这个没办法,毕竟他是决定你是否能通过答辩的人。
- 每年都有很多同学找到我的时候,后悔当初为什么要把功能写的那么复杂,后悔没有提前找我咨询一下!所以在这里提醒同学们,提交开题报告之前一定要多想想,咨询下以往的学长学姐,不要自己随便写一堆提交上去!!!
- 大家找不到学长学姐的话,也可以找我咨询,我可以给大家一些建议。
- 点击此处即可咨询
1、项目简介
1.1 系统构成
- 1、系统由两个从机与一个主机构成
- 2、主机由stc89c52单片机+zigbee模块+电源电路+按键电路+报警电路+LED指示灯电路+LCD1602显示屏电路构成
- 3、从机由stc89c52单片机+zigbee模块+电源电路+按键电路构成
1.2 系统功能
- 1、主机接收从机呼叫信息,并显示设备号与呼叫等级
- 2、等级分为两种,使用蜂鸣器与红黄led报警
- 3、紧急报警,蜂鸣器紧促报警,红灯亮
- 4、正常报警,蜂鸣器正常报警,黄灯亮
- 5、主机可以关闭报警
1.3 演示视频
2、部分电路设计
2.1 STM32单片机核心板电路设计
-
51单片机最小系统是确保51系列单片机能够正常工作的最基本电路配置,通常包括电源电路、晶振电路、复位电路。这些组件共同为单片机提供稳定的工作环境和必要的时钟信号,确保单片机能够准确地执行程序指令。
-
电源电路:为单片机提供稳定的工作电压,通常采用5V电源供电。电源电路的设计要保证单片机在不同工作条件下都能获得稳定的电压输出,以确保单片机的正常工作。
-
晶振电路:提供单片机工作所需的时钟信号。晶振电路通过晶振和电容组成,为单片机提供稳定的工作脉冲,确保单片机的定时和同步需求。
-
复位电路:实现单片机的复位功能,类似于电脑的重启。复位电路通过电容和电阻的配合,实现单片机在上电启动时的自动复位,以及通过手动按键实现复位功能,保证单片机在程序跑飞或异常情况下能够重新开始执行程序。
-
单片机最小系统原理图如下图所示:
2.2 按键电路设计
-
在按键产品中,轻触按键作为重要的分类产品之一,其本质就是电子开关。其工作原理是通过轻触按键内部金属弹片受力后弹开,进而实现电路的接通和断开。通过轻轻按下按键,即可使开关接通;松开按键则使开关断开连接。这种设计在电子设备中得到广泛应用,其简单、可靠的操作特性使其成为人机交互中不可或缺的一环。
-
其具体电路原理图如下图所示:
2.3 LCD1602液晶显示电路设计
-
LCD1602液晶模块是一种专门用来显示字母、数字、符号的点阵型液晶模块,能够同时显示16x02即32个字符。它由若干个5x7或者5x10的点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。
-
其具体电路原理图如下图所示:
-
实物图如下:
3.4、ZigBee通信模块电路设计
-
选用DL-20 zigbee无线串口透传模块,它是一款全双工无线透明传输通信模块。
-
DL-20无线串口透传模块使用CC2530芯片。CC2530是适用于IEEE 802.15.4、Zigbee和RF4CE应用的系统芯片(SoC),它能够以极低的成本构建强健的网络节点。
-
电路图
-
实物图
3、部分代码展示
3.1 LCD1602显示字符串
/***********************************************
函数名称:DispStr
功 能:让液晶从某个位置起连续显示一个字符串
参 数:x--位置的列坐标
y--位置的行坐标
ptr--指向字符串存放位置的指针
返回值 :无
***********************************************/
void DispStr(uchar x,uchar y,uchar *ptr)
{
uchar *temp;
uchar i,n = 0;
temp = ptr;
while(*ptr++ != '\0') n++; //计算字符串有效字符的个数
for (i=0;i<n;i++)
{
Disp1Char(x++,y,temp[i]);
if (x == 0x10)
{
break;
}
}
}
3.2 修改蜂鸣器鸣叫频率
/*
输入参数 open_cnt: 无源蜂鸣器鸣叫的时间
输入参数 time: 控制无源蜂鸣器的声音频率
*/
void beep_wuyuan(unsigned int open_cnt, unsigned char time)
{
while(open_cnt != 0)
{
beep = !beep;
open_cnt--;
DelayUs2x(time);
}
open_cnt = 0;
beep = 1;
}
3.3 串口初始化
void UART_Init(void)
{
SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收
TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重装
TH1 = 0xFD; // TH1: 重装值 9600 波特率 晶振 11.0592MHz
TL1 = TH1;
TR1 = 1; // TR1: timer 1 打开
EA = 1; //打开总中断
ES = 1; //打开串口中断
}
4、资料下载
- 视频链接:https://www.bilibili.com/video/BV1z4421Z7R9
- 视频评论区获取资料链接