资源简介
本系统采用51单片机和NRF2401实现无线数据传输通信和实时报警功能, 设计一套低成本通用型的病房呼叫系统。整个系统采用无线通信的方式, 降低了复杂的布线、安装检修和拆卸的难度, 并可监控多个病房且便于扩充升级。
本系统中,主机接收从机的呼叫命令,主机接收到从机呼叫命令后,主机发生声光报警,已经呼叫过的从机再次按下,当主机没有处理的时候,主机不再显示该从机的呼叫,主机处理完某一个病房呼叫信号后,可以通过按键取消相应的呼叫从机号,从机可以再次继续呼叫

代码片段和文件信息
#include“delay.h“ //延时函数头文件
#include“lcd1602.h“ //LCD1602头文件
#include “nrf24l01.h“ //NRF24L01头文件
sbit BUZZER = P1^1; //蜂鸣器输出端口
sbit KEY = P3^7; //呼应按键
unsigned int cnt = 0;
sbit key1=P1^2;
sbit key2=P1^7;
sbit key3=P1^3;
sbit LED1=P2^0;
sbit LED2=P2^1;
sbit LED3=P2^2;
sbit LED4=P2^3;
uchar flag_01 = 0flag_02 = 0flag_03 = 0flag_04 = 0;
uchar first_flag = 0 sencond_flag=0third_flag=0fourth_flag=0;
uchar temp_flag = 0;
void delay_ms(uint ms)
{
uint ij;
for(i=ms;i>0;i--)
for(j=110;j>0;j--);
}
//uchar RX_LAST[4] = {0};
void LED_init()
{
P2=0xff;
}
void Alarm()
{
uint tt=10bb=50;
while(tt--)
{
bb=20;
BUZZER=~BUZZER;
while(bb--);
}
BUZZER=1;
}
void BEEP_A()
{
BUZZER=0;
delay_ms(200);
BUZZER=1;
}
/************************************************
** 函数名称 : void main(void)
** 函数功能 : 主函数
** 输 入 : 无
** 输 出 : 无
** 说 明 :
************************************************/
void main(void)
{
uchar res = 0;
uchar flagNo1=0;
uchar RxBuf[12]={0};//接收缓存数组
uchar disp[16]={“Number: “};//显示数组
LCD_Init();//LCD初始化
WriteChar(1016“Sickbed Calling “);//第一行显示“Sickbed Calling ”
LED_init();
//无线模块检测
while(NRF24L01_Check())
{
Alarm();
Delay(200);
BUZZER=1;
Delay(200);
}
init_NRF24L01();//无线模块初始化
cnt=1;
while(1)
{
res=nRF24L01_RxPacket(RxBuf);//接收从机数据
SetRX_Mode();//配置为接收模块
// //判断
// if(RxBuf[0]==0XFF || RxBuf[1]==0X00 || RxBuf[10]==0X00 || RxBuf[11]==0XFF)
// {
// switch(RxBuf[2])
// {
// case 0x01: flagNo1=1; disp[8]=‘1‘; Alarm(); break; //1号
// case 0x02: flagNo1=2; disp[10]=‘2‘; Alarm(); break;//2号
// case 0x03: flagNo1=3; disp[12]=‘3‘; Alarm(); break;//3号
// case 0x04: flagNo1=4; disp[14]=‘4‘; Alarm(); break;//4号
// }
// }
// //呼应处理
// if(!KEY)
// {
// BUZZER=1;//关闭蜂鸣器
// disp[8]=‘ ‘;disp[10]=‘ ‘;disp[12]=‘ ‘;disp[14]=‘ ‘;//清空显示
// }
//if(!key1)
//{
// RxBuf[2]=1;
// while(!key1);
//}
//if(!key2)
//{
// RxBuf[2]=2;
// while(!key2);
//}
//if(!key3)
//{
// RxBuf[2]=3;
// while(!key3);
//}
//RxBuf[0]=0XFF;RxBuf[1]=0X00; RxBuf[10]=0X00;RxBuf[11]=0XFF;
/****************************************************************************************************************/
//判断
if((RxBuf[0]==0XFF || RxBuf[1]==0X00 || RxBuf[10]==0X00 || RxBuf[11]==0XFF)&&RxBuf[2]!=0)
{
// if(cnt<5)
// RX_LAST[cnt-1]=RxBuf[2];
if(cnt==1)
{
switch(RxBuf[2])
{
case 0x01: flagNo1=1; flag_01=1;first_flag=1;disp[8]=‘1‘; Alarm();LED1=0; break; //1号
case 0x02: flagNo1=1; flag_02=1;first_flag=2;disp[8]=‘2‘; Alarm(); LED2=0;break;//2号
case 0x03: flagNo1=1; flag_03=1;first_flag=3;disp[8]=‘3‘; Alarm();LED3=0; break;//3号
case 0x04: flagNo1=1; flag_04=1;first_flag=4;disp[8]=‘4‘; Alarm();LED4=0; break;//4号
}
cnt++;
}
else if(cnt==2)
{
temp_flag=first_
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-10-20 10:32 源程序主机---OK\
文件 489 2018-10-17 22:06 源程序主机---OK\delay.h
文件 1783 2018-10-17 22:06 源程序主机---OK\lcd1602.h
文件 23722 2018-10-20 09:42 源程序主机---OK\main.c
文件 64771 2018-10-20 09:42 源程序主机---OK\main.LST
文件 39067 2018-10-20 09:42 源程序主机---OK\main.OBJ
文件 8125 2018-10-17 22:06 源程序主机---OK\nrf24l01.h
文件 33252 2018-10-20 09:45 源程序主机---OK\医院无线呼叫系统主机
文件 1056 2018-10-18 20:34 源程序主机---OK\医院无线呼叫系统主机.build_log.htm
文件 8621 2018-10-20 09:45 源程序主机---OK\医院无线呼叫系统主机.hex
文件 56 2018-10-20 09:45 源程序主机---OK\医院无线呼叫系统主机.lnp
文件 39340 2018-10-20 09:45 源程序主机---OK\医院无线呼叫系统主机.M51
文件 2118 2018-10-20 09:45 源程序主机---OK\医院无线呼叫系统主机.plg
文件 57808 2018-10-20 09:50 源程序主机---OK\医院无线呼叫系统主机.uvopt
文件 13252 2018-10-17 22:06 源程序主机---OK\医院无线呼叫系统主机.uvproj
文件 57806 2018-10-19 21:16 源程序主机---OK\医院无线呼叫系统主机_uvopt.bak
文件 0 2018-10-17 22:07 源程序主机---OK\医院无线呼叫系统主机_uvproj.bak
文件 32768 2018-10-17 22:07 源程序主机---OK\医院无线呼叫系统主机程序流程图.doc
目录 0 2018-10-20 10:32 源程序从机\
文件 458 2018-10-17 22:05 源程序从机\delay.h
文件 2073 2018-10-17 22:05 源程序从机\LCD1602.h
文件 1933 2018-10-19 11:30 源程序从机\main.c
文件 5613 2018-10-19 11:30 源程序从机\main.LST
文件 13876 2018-10-19 11:30 源程序从机\main.OBJ
文件 5667 2018-10-17 22:05 源程序从机\nrf24l01.h
文件 12706 2018-10-19 20:20 源程序从机\医院无线呼叫系统从机
文件 3442 2018-10-19 20:20 源程序从机\医院无线呼叫系统从机.hex
文件 56 2018-10-19 20:20 源程序从机\医院无线呼叫系统从机.lnp
文件 14479 2018-10-19 20:20 源程序从机\医院无线呼叫系统从机.M51
文件 214 2018-10-19 21:11 源程序从机\医院无线呼叫系统从机.plg
文件 86081 2018-10-18 22:58 源程序从机\医院无线呼叫系统从机.uvgui.Administrator
............此处省略5个文件信息
- 上一篇:pos系统的需求功能分析建模
- 下一篇:图书管理系统设计说明书
相关资源
- 51 单片机 红外避障小车 大集合136
- STC8951系列单片机中方指南
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 浙江工业大学2005-2006学年单片机习题
- 单片机与PC机串口通讯仿真
- 毕业设计 单片机 对讲机 protues仿真
评论
共有 条评论