单片机教程网

电脑版
提示:原网页已由神马搜索转码, 内容由www.51hei.com提供.
查看:6390|回复:10
打印上一主题下一主题

基于NRF24L01无线模块的一个模拟智能家居系统单片机源码

 [复制链接]
跳转到指定楼层
楼主
ID:297301发表于 2018-3-26 16:21|只看该作者|只看大图回帖奖励
基于NRF24L01无线模块的一个模拟智能家居系统。用单片机+24L01做的


包含单发送模块,接收模块,主控模块的源码


单片机源程序如下:
  1. /*****************************************                                             `
  2. 创建:陈志强
  3. 时间:2010.6.12
  4. 功能:NRF24L01射频模块C文件(发射部分)
  5. *****************************************/
  6. #include"stc15.h"
  7. #include"Allhead.h"
  8. uchar i=0;
  9. uchar j,t;
  10. uchar RxDate[4]={0};
  11. void sys_init()
  12. {
  13.        P0M1=0x00;
  14.        P0M0=0xff;       //推挽输出,否则不稳定

  15.        TMOD=0X00;
  16.        TH0=TL0=0Xfc;
  17.        TR0=1;
  18.        ET0=1;
  19.        PT0=1;             //设置为高优先级中断,保证LED正常显示,

  20.        PX1=1;
  21.        IT1=1;
  22.        EX1=1;         //红外中断
  23.        EA=1;
  24. }
  25. void main()
  26. {
  27.        sys_init();
  28.        NRF24L01Int();      

  29.        DS1302Set();         //初始化1302      
  30.       
  31.        while(1){          
  32.        NRFSetRXMode();      
  33.        if(send_flag)
  34.        {
  35.            NRFSetTxMode(TxDate);//发送温度
  36.            while(CheckACK());       //检测是否发送完毕
  37.            send_flag=0;  

  38.            NRFSetRXMode();
  39.        }
  40.        if(NRFRevDate(RxDate))
  41.        {
  42.            if(RxDate[0]==5)
  43.            {
  44.                  for(j=0;j<4;j++)
  45.                  for(t=0;t<32;t++)                                
  46.                        event_code[j][t]=kaimen[j][t];
  47.            }
  48.            else
  49.            {
  50.                  for(j=0;j<4;j++)
  51.                  for(t=0;t<32;t++)                            
  52.                        event_code[j][t]=kaimen1[j][t];
  53.            }
  54.            NRFSetRXMode();
  55.        }                                              
  56.              ds1302_load();
  57.              Delay(2);
  58.        }

  59. }
  60. /********************LED屏幕刷新**************/
  61. void timer0_init() interrupt 1
  62. {
  63.        if(++i==16) i=0;
  64.        load_data(i);      
  65.        EN=1;  //消除改变595数据时产生的阴影
  66.        send595();      
  67.        P0=i; //行选时CLK为0,不影响595寄存器数据。
  68.        EN=0;
  69.           
  70.                 
  71. }
复制代码

所有资料51hei提供下载:
基于NRF24L01无线模块的一个模拟智能家居系.rar(387.39 KB, 下载次数: 153)



评分

黑币 +4
收起理由
+ 4

查看全部评分

沙发
ID:299275发表于 2018-3-30 17:38|只看该作者
现在正好在看这方面的资料,感谢
板凳
ID:166745发表于 2018-4-1 15:09|只看该作者
非常感谢!!!!!
地板
ID:301752发表于 2018-4-9 13:47|只看该作者
有仿真图吗,都不知道电路是怎么样的
5#
ID:301752发表于 2018-4-9 21:45|只看该作者
这个用什么打开啊
6#
ID:309065发表于 2018-4-16 10:39|只看该作者
非常感谢!!!!!
7#
ID:153381发表于 2018-6-19 14:54|只看该作者
非常感谢,正在学习射频方面的
8#
ID:380389发表于 2018-8-1 19:48来自手机|只看该作者
收藏学习一下
9#
ID:32574发表于 2018-8-15 07:07|只看该作者
谢谢楼主分享,学习一下
10#
ID:423949发表于 2018-11-23 09:20|只看该作者
有款SI24R1可以替代NRF24L01,想了解可以加我
11#
ID:746201发表于 2024-3-1 09:30|只看该作者
这个可以,很好,学习一下、

手机版|小黑屋|51黑电子论坛|51黑电子论坛6群QQ管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网