基于单片机无线餐馆呼叫系统

发表时间:2020/11/20   来源:《中国电业》2020年7月第19期   作者:佘胜安 李彦乐 林媛媛 何俊
[导读] NRF24L01射频模块进行无线传输,开发出低成本、低功耗、相对较远的传输距离以及
        佘胜安  李彦乐  林媛媛  何俊
        宿州学院 机械与电子工程学院  安徽宿州  234000
        【摘要】NRF24L01射频模块进行无线传输,开发出低成本、低功耗、相对较远的传输距离以及能够实现稳定通信的餐馆茶楼无线呼叫系统。其应用前景宽广,可操作性强。本项目设计采用了Nordic公司推出的NRF24L01射频芯片,并且有低功耗的单片机STC89C52控制完成实现短距离无线数据通信的优势。该设计具有成本低、功耗低、传输速度快、软件设计简洁简单以及通信稳定可靠稳定等特点。
        【关键词】NRF24L01射频模块;LCD1602液晶显示模块;STC89C52单片机
        1 设计背景及意义
        随着人们生活水平的步步上升,人们对餐饮、娱乐服务水平的要求也变得越来越高。在餐馆和茶楼等地方,NRF24L01呼叫系统可以作为联系消费者和服务人员的专用呼叫系统,成为了餐馆茶楼的所需设备之一。本设计是以STCT89C52单片机为核心,通过无线发射模块(NRF24L01)发射传输信号,无线接收模块接收信号,经STCT89C52芯片处理,当消费者按下按键时,服务台显示消费者的座位号,服务员按下响应按键取消当前呼叫,实现消费者与服务员的无线远距离沟通。
        2 NRF24L01简介
        2.1 NRF24L01的工作原理
        首先把NRF24L01无线模块模块分成主机模块和从机模块。如果NRF24L01无线模块处于发送射数据的状态的时候,我们先用软件把主机的AT89C52单片机配置成发射数据的模式,然后也通过软件把nRF24L01的缓存区写入接收节点地址TX_ADDR以及有效的数据即“TX_PLD”,其操作按照一定的时序由软件的SPI口写入到单片机中,需要注意的是无线模块的TX_PLD需要在CSN位为低电平的时候连续的写入其中,但是TX_ADDR在发射的时候只要写入一次就可以了,将CE位配置为高电平而且将其保持至少 10us的时间,然后进行130u s的延迟 ,再发送数据。假如NRF无线模块的自动应答打开了,当无线模块在发送数据之后就会马上进入到RX的模式,并且接收主机发送过来的信号数据(自动应答的RX地址和无线模块接收节点地址TX_ADDR保持一致)。如果单片机主机收到从机发送的信号,那么就可以认为这次通信成功,发送模块的TX_DS位置高电平,于此同时TX_PLD从TX FIFO中除去;假如没有收到应答信号﹐那么就会进行自动重新发射该数据(自动重发已经完全打开),假如重复发送的次数即ARC达到了上限﹐MAX_RT或TX_DS置高时,导致IRQ位变低,那么MAX_RT位置高电平,TX FIFO数据位保留以便在次重发;从而产生中断,指令发送传递到主控芯片。最终当主机数据发送成功的时候,假如CE位为低电平,那么nRF无线模块就表明着进入到了空闲模式1的 状态;假如主机打的发送堆栈中有接收到的数据而且CE位为高电平,那么当单片机进入到下一次发射指令环节中时;假如发送堆栈中无数据且CE位为高,就代表着进入到了空闲模式2中。
        当AT89C51主控芯片接收到由从机发送的数据的时候,我们先把无线模块配置通过软件设置为接收的模式,然后让单片机进行130us时间的延时 ,当从机的单片机处于接收的状态而且接收到了主机发送过来的数据的时候。若无线模块的主机接收端检查到了有效的地址,以及单片机CRC校验成功的时候,单片机就会把接收到的数据包存储在接收端存储空间中,同时将单片机的中断寄存器的接收标志位DR置高电平,中断IRQ位变成低电平,从而触发中断,并且提醒主控芯片去提取接收的数据。假如此时开启了自动应答指令,那么单片机的接收端会在同一个时间段中进入发射状态。最后单片机接收成功时,CE变低,则无线模块进入到空闲模式1。


        3 系统硬件设计
        3.1 AT89C52单片机
        STC89C52单片机的供电电源采用5V供电,NRF24L01模块采用3.3V供电,二者相互通信,完成无线通信任务。
        NRF24L01无线餐馆呼叫系统的主控芯片是使用STC89C52单片机,该芯片资源丰富,操作简单。采用SPI的通信方式,相比较于单片机的串口通信以及IIC通信,其速度更快,操作更加简单,项目的整体数据的传输变得更加稳定。
        
        3.2 电源模块
        整个无线餐馆呼叫系统采用7.2V镉镍电池供电,镉镍电池的7.2V电流经芯片TPS7350,把7.2V直流电压转 换成5V,给STC89C52芯片供电,整个转压电路加入10uf钽电容和104电容进行滤波处理,过滤那些杂波,使得供电的电压更加的稳定。得到的5V电压经过TPS7335芯片,将5V转化为3.3V电压,给LCD1602和NRF24L01无线模块供电,同样也加了电容,过滤杂波,使得外设模块的正常工作。

        3.3 显示模块
        餐馆无线呼叫系统采用LCD1602液晶显示模块进行及时显示餐馆呼叫的信息 ,我们用的LCD1602有8个数据口,采用5V或者3V供电,通过IIC通信的
        方式进行数据的打印和显示。整个LCD1602模块由8个数据口 、数据/命令、读/写指令、使能指令构成,显示模块增加了HD44780主控驱动电路、HD4410扩展驱动电路、电容、电阻组成。能够更好的将信息显示出来。

        4 系统框图和程序框图
        4.1 系统框图
        NRF24L01无线餐馆呼叫系统,由AT89C51单片机接受并且处理由NRF24L01无线模块发送接受的信号,及时处理餐馆呼叫系统中遇到的各种情况,并且将情况的信息显示在LCD1602上。下图是整个系统的流程图。
        
        4.2 程序
        本设计将程序分为两个部分,NRF24L01的主机部分和从机部分,主机发出指令,从机应答指令,通过SPI的通信方式完成就接收操作。
        整个程序是在KEIL4的环境下编写,调用<reg 52.h>的头文件,将程序的整体模块化,可以更好的对程序进行改动和优化,对一些寄存器进行初始化PSW = 0x00;PCON = 0x00;IP = 0x00;IE = 0x00; 然后对所需的定时器中断进行配置,最后把SPI的通信完成,将上面的综合运用在一起,即可完成无线餐馆呼叫系统的项目[1]。

        5. 器件安装与调试
        5.1 元器件的安装
        1.检测元件
        根据我们项目的要求,提前购买我们所需要的电子元器件,所需的各类模块、电阻、电容,均需要一一检测其好坏,用万用表检测所购买的电阻是否合乎我们的要求。将自己画好的PCB电路板提前送到厂家打印,最后还需将电路板的线路反复检查,防止VCC和GND的导通或者一些引脚线路没有连接到对应的焊控中。
【参考文献】
[1] 谭浩强. C程序设计[M].北京:清华大学出版社,1999 .
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: