nRF24L01+51单片机无线语音点滴报警系统

发布者:机器人总动员最新更新时间:2020-01-02 来源: 51hei关键字:nRF24L01  51单片机  无线语音  点滴报警系统 手机看文章 扫描二维码
随时随地手机看文章

使用的51单片机作为主控芯片,两个51单片机通过24L01通信,一个检测吊瓶滴液的速度,如果太快太慢或者不滴液都会报警,并发送到主机,输液者也可以主动通过按键呼叫主机,丛机用1602显示,主机用12864显示。

 

Altium Designer画的原理图和PCB图如下:

 

单片机源程序如下:

#include

#include

#include "keys.h"

#include "24L01.h"

#include "LCD1602.h"

#define uint unsigned int

#define uchar unsigned char

sbit YeDi=P2^0;//红外信号采集口

sbit Speaker=P2^4;//蜂鸣器


uchar TX_buf[32]=0;

uchar View_Con=0;

uchar View_Change=1;

uchar View_Con_Change=1;

uint  Cap_Data=100;

uint  Cap_View=0;


uchar View_Data[8];


uint YeDi_Num=0;


void InitTimer0(void)

{

    TMOD |= 0x01;

    TH0 = 0x0D8;         //10000us

    TL0 = 0x0F0;

    EA = 1;

    ET0 = 1;

    TR0 = 1;

}


void InitTimer1(void)

{

    TMOD |= 0x10;

    TH1 = 0x0FC;   //1000us

    TL1 = 0x18;

    EA = 1;

    ET1 = 1;

    

}



void main()

{

TX_buf[1]=0;

TX_buf[2]=2;

TX_buf[3]=5;

TX_buf[4]=4;

InitLcd();

Lcd_1602_word(0x80,16,"    NRF24L01    ");      //1602第一行显示      NRF24L01

//Lcd_1602_word(0xc0,16,"   Connecting   ");       //1602第二行显示       Connecting

while(NRF24L01_Check());     //检查24L01是否存在

NRF24L01_Init();    //开机的时候需要初始化24l01

InitTimer0();        //定时计数器0初始化

InitTimer1();        //定时计数器1初始化

    Lcd_1602_word(0xc0,16,"   Connecting   ");

while(1)

  {

   if(Key_Change)     //如果Key_Change为真

    {

     Key_Change=0;

     View_Change=1;

     switch(Key_Value)    //选择键值

      {

       case 1:

              {

               View_Con_Change=1;

               if(View_Con==0)

                {

                 View_Con=1;

                 TR1 = 1;

                 Cap_View=Cap_Data*100;

                }

               if(View_Con==2)

                {

                 View_Con=1;

                 TR1 = 1;

                } 

               break;

              }

       case 2:

                 {

               if(View_Con==0)               //液滴加

                {

                 if(Cap_Data<=500)

                  Cap_Data+=10;

                }

               break;

              }

       case 3:

                 {

               if(View_Con==0)

                {

                 if(Cap_Data>10)              //液滴减

                  Cap_Data-=10;

                }

               break;

              }

       case 4:

                 {

               if(View_Con==1)

                {

                 TR1 = 0;

                 YeDi_Num=0;

                 View_Con=2;

                 View_Con_Change=1;

                 TX_buf[0]=0xf5;//蜂鸣器响

                 TX_buf[5]=4;//用户呼叫

               NRF24L01_TxPacket(TX_buf);

                 NRF24L01_TxPacket(TX_buf);

        

                }

               break;

              }

      }

    }

   if(View_Change)

    {

      View_Change=0;

      if(View_Con_Change)

       {

           View_Con_Change=0;

        switch(View_Con)

         {

          case 0:Lcd_1602_word(0x80,16,"Infusion Set:   ");Lcd_1602_word(0xc0,16,"                ");break;

           case 1:Lcd_1602_word(0x80,16,"In The Infusion ");Lcd_1602_word(0xc0,16,"                ");Speaker=1;break;

          case 2:

                  {

                 Lcd_1602_word(0x80,16,"****Warning*****");Lcd_1602_word(0xc0,16,"****Warning*****");Speaker=0;

                 if(TX_buf[5]<4)

                  while(1);

                 break;

                }

         }

       }

     switch(View_Con)

         {

          case 0:

                  {

                 View_Data[0]=Cap_Data/100+0x30;

                 View_Data[1]=Cap_Data%100/10+0x30;

                 View_Data[2]=Cap_Data%10+0x30;

                 View_Data[3]='m';

                 View_Data[4]='l';

                 if(View_Data[0]==0x30)

                  View_Data[0]=' ';

                 Lcd_1602_word(0xcb,5,View_Data);

                 break;

                }

           case 1:

                  {

                 View_Data[0]=Cap_View/10000+0x30;

                 View_Data[1]=Cap_View%10000/1000+0x30;

                 View_Data[2]=Cap_View%1000/100+0x30;

                 View_Data[3]='.';

                 View_Data[4]=Cap_View%100/10+0x30;

                 View_Data[5]=Cap_View%10+0x30;

                 View_Data[6]='m';

                 View_Data[7]='l';

                 if(View_Data[0]==0x30)

                  {

                   View_Data[0]=' ';

                   if(View_Data[1]==0x30)

                    {

                     View_Data[1]=' ';

                    }

                  }

                 Lcd_1602_word(0xc8,8,View_Data);

                 break;

                }

         }

    }

  }

}


void Timer0Interrupt(void) interrupt 1

{

    static     uchar YeDi_Con;

    static  uchar Key_Time0_Con;

    TH0 = 0xfc;

    TL0 = 0x18;

    Key_Time0_Con++;

    switch(YeDi_Con)

     {

      case 0:

              {

             if(YeDi==1)

              YeDi_Con++;

             break;

            }

      case 1:

              {

             if(YeDi==0)

              {

[1] [2]
关键字:nRF24L01  51单片机  无线语音  点滴报警系统 引用地址:nRF24L01+51单片机无线语音点滴报警系统

上一篇:51单片机知识点之独立按键设总开关与分开关
下一篇:单片机DIY小型电压表

推荐阅读最新更新时间:2024-11-08 15:00

51单片机控制RTL8019AS实现以太网通讯
  互联网络硬件、软件的迅猛发展,使得网络用户呈指数增长,在使用 计算机 进行网络互联的同时,各种家电设备、仪器仪表以及工业生产中的数据采集与控制设备在逐步地走向网络化,以便共享网络中庞大的信息资源。在电子设备日趋网络化的背景下,利用廉价的51单片机来控制RTL8019AS实现以太网通讯具有十分重要的意义。 1 以太网(Ethernet)协议 一个标准的以太网物理传输帧由七部分组成(如表1所示,单位:字节)。 表1 以太网的物理传输帧结构表 PR SD DA SA TYPE DATA FCS 同步位 分隔位 目的地址 源地址 类型字段 数据段 帧校验序列 7 1 6 6 2
[网络通信]
51单片机PCF8591 DA转换源码
单片机源程序如下: /**********************51实验开发板例程************************ * 平台:HJ-C52 + Keil U4 + STC89C52RD ******************************************************************/ /*----------------------------------------------- 名称:IIC协议 PCF8591ADDA转换 内容:此程序通过IIC协议对DAAD芯片操作, 并输出模拟量,用LED亮度渐变指示 -----------------------
[单片机]
AT89S51单片机的各种系统板的功能介绍
AT89S51单片机实验及实践系统板(以后简介系统板)集成多个硬件资源模块,每个模块各自可以成为独立的单元,也可以相互组合,因此,可以为不同阶层的单片机爱好者及单片机开发者提供不同的开发环境。要购买此实验板请联系qq125739409 注明“实验板” 每个硬件模块介绍如下: 1.继电器控制模块 系统板上提供了2路继电器控制模块,分布在系统板的最左上端区域中,输入信号由Realy in 1和Realy in 2端口输入分别控制两路继电器,继电器控制的信号分别由最上端的两个插针输入和输出。分别称为“com1 open1 short1”,“com2 open2 short2”,由于这个两个继电器是单刀单掷控制,当继电器不吸合时,“c
[单片机]
AT89S<font color='red'>51单片机</font>的各种系统板的功能介绍
51单片机-IIC总线与时序
IIC总线是飞利浦公司上世纪80年代设计出来的一种总线通信方式,主要用来连接整体电路,它可以一个总线结构上连接多个设备。 很多人听到IIC总线、SPI总线、485总线什么的就会晕,其实,数据传输的接线方式,大体上就是两种:一种是并行接口,一种是串行接口。 并行接口是什么?用并行方式来传输数据的接口。假如我想传输几个8位的数据,那好,单片机上用8个IO传送数据,每次就能传送一个。假如想传输几个16位的数据呢?那就要用16个IO!优点是速度快,缺点是占用的IO太多了。 串行接口是什么?是指数据在有限的几个IO上按照顺序,一位一位的进行传输。这类有很多:UART、IIC、SPI、CAN、USB等等
[单片机]
学<font color='red'>51单片机</font>-IIC总线与时序
51单片机运行过程
注: 1.ROM:只读存储器,单片机的只读存储区大多用于存储程序固又称程序存储器。 51单片机是EPROM,所谓的EPROM是可擦除的只读存储器。可以把原来的程序擦除了,再写一个新的进去。 断电后是可以保存的,数据存储器(RAM)是不能保存的。 RAM只能在程序执行的时候不断地重新存储定义的变量。如int x,int y 可以通过code这个指令来将定义的变量放在ROM,而不是RAM中,节省RAM资源 2.RAM:随机存取存储器,用于存储定义的变量等,速度快 51单片机的RAM存储容量远小于ROM,但是速度非常之快 内部详细图示 内部的结构看似十分复杂,但是大致上可以分为两个部分:运算器(红色框)和控制器(蓝色
[单片机]
<font color='red'>51单片机</font>运行过程
基于AT89S51单片机控制的八路LED显示设计
一、单片机的内部结构 AT89S51单片机兼容标准8051的指令系统及引脚。下面以AT89S51单片机为例,简要介绍51系列单片机的内部结构。 通常,单片机片内含CPU、ROM、RAM、并行I/O口、定时器/计数器、中断控制系统、时钟电路、系统总线等。 1.中央处理器(CPU) 中央处理器是AT89S51单片机的核心,完成运算和控制功能。其CPU能处理8位二进制数或代码。 2.程序存储器 程序存储器用于存放用户编写的程序、原始数据或表格,分为片内程序存储器和片外程序存储器。 AT89S51采用片内、片外统一编址的64kB(0000H~FFFFH)程序存储器地址空间。片内有4kB Flash Memery.地址范围为0
[单片机]
基于AT89S<font color='red'>51单片机</font>控制的八路LED显示设计
MCS-51单片机终端介绍及外中断软件编程
MCS-51单片机有多个中断源,以8051为例,有5个中断源,两个外中断、两个定时中断和一个串行中断,这一节我们讨论外中断软件编程。 外中断是由外部原因引起的中断,有两个中断源。即外中断0(INT0)和外中断1(INT1),中断请求信号由引脚P3.2(INT0)和P3.3(INT1)输入。 外中断请求信号有两种方式,一是电平方式,二是脉冲方式。可通过有关控制位的定义进行规定。 电平方式为低电平有效,只需在单片机的(INT0)和(INT1)中断请求输入端采样到有效的低电平时,就会激活外部中断。 脉冲方式则在脉冲的后负跳沿有效,即在相邻两个机器周期对中断请求引入端进行采样中,如前一次为高,后一次为低即为有效中断请
[单片机]
MCS-<font color='red'>51单片机</font>终端介绍及外中断软件编程
AT89C2051单片机的晶闸管触发电路设计
自晶闸管被用作开关元件以来,其触发电路经过了晶闸管分离元件阶段和集成电路阶段后进入了 单片机 嵌入阶段。使用以单片机为核心的触发电路虽然避免了前两个阶段元件多、故障率高和低智能化的缺点,但可靠性、迅速性和抗干扰性还存在诸多不足。 本设计详细介绍了一种基于 AT89C2051 单片机 的晶闸管触发电路,具有高集成度、智能化、体积小、安全、迅速、可靠稳定等优点,今后必将被广泛应用。文中以晶闸管投切电容器为例来详细说明触发电路的工作原理。 1 触发电路的硬件设计 硬件电路以ATMEL公司的AT89C2051单片机为核心,包括晶闸管过零检测电路、控制器投切命令电路、脉冲隔离放大电路等几部分组成,硬件框图如图1所示。 2 触发电
[电源管理]
AT89C20<font color='red'>51单片机</font>的晶闸管触发电路设计
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved