久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2624|回復: 0
打印 上一主題 下一主題
收起左側

CC1101主從機 收發(fā) 綁定 源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:449458 發(fā)表于 2019-10-7 14:26 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
工程采用KEIL4環(huán)境。采用國產51芯片。主機長按綁定鍵后進入綁定狀態(tài),此時顯示會閃爍提示。當從機上也長按綁定鍵時,從機會將芯片的UID碼發(fā)送給主機。主機收到UID碼后保存到主機的FALSH中實現(xiàn)掉電保存,完成綁定。顯示器變?yōu)槌A痢?br /> 后期主機發(fā)送數據串時會連同UID一起發(fā)送。從機只有收到了和自己UID相匹配的數據時才解析。本樣例中是主機控制從機三個繼電器。



單片機源程序如下:
  1. #ifndef _MAIN_C_
  2. #define _MAIN_C_

  3. /*********************************************************************************************************************/
  4. #include "ca51f_config.h"
  5. #include "ca51f2sfr.h"
  6. #include "ca51f2xsfr.h"
  7. #include "gpiodef_f2.h"
  8. #include "system.h"
  9. #include "uart.h"
  10. #include "irc.h"
  11. #include "key.h"
  12. #include "timer.h"
  13. #include "uid.h"
  14. #include "adc.h"
  15. #include "delay.h"
  16. #include "exint.h"
  17. #include "pwm.h"
  18. #include  "gpio.h"
  19. #include "co2.h"
  20. #include "led.h"
  21. #include "flash.h"
  22. #include "process.h"
  23. #include "wdt.h"
  24. #include"cc1101.h"
  25. #include <intrins.h>
  26. #define data_len 8
  27. extern xdata char light_time;
  28. extern xdata unsigned char FLZ_TIME,MOT_TIME;
  29. extern char i,j;
  30. extern unsigned int M_speed,F_speed;
  31. unsigned char IRC_KEY_VOLUE;
  32. xdata char wind_leve=1,SART_FLAG=0,WORK_MOD=0,WORK_TIME=0;
  33. unsigned int CO2;
  34. extern unsigned int FANG_pluse;
  35. extern unsigned int works_time;
  36. extern xdata int CO2_VOLUE;
  37. extern char time_flag;
  38. extern xdata unsigned int detection_time;
  39. char CO2_falg=0;        
  40. extern code unsigned char num[10];
  41. extern xdata unsigned char error;
  42. unsigned char lw_static=3;
  43. extern signed int   temperature;
  44. extern xdata unsigned char co2_error;
  45. extern char Voltage_P;   
  46. xdata unsigned char rx_buffer[data_len]={0,0,0,0,0,0,0,0};//rx data
  47. xdata unsigned  char Tx_SUID[data_len]={0,0,0,0,0,0,0,0};
  48. xdata unsigned char  binding[data_len]={0xfe,0xbb,0,0,0,0,0xff,0xEF};
  49. xdata unsigned char binding_flag;
  50. extern xdata char tx_cc1101;
  51. extern xdata char binding_EN;
  52. extern char flash_write_en;               
  53. xdata unsigned char flash_read_buff[11]={0};                               //用于讀寫FLASH中間緩存
  54. xdata start_time=0;
  55. void main(void)
  56. {
  57.         
  58. //         unsigned long int UID;
  59.          PADRD        = FLASH_SIZE*4 - 1;                //劃分FLASH最后256字節(jié)為數據空間,注意:不同型號芯片F(xiàn)LASH容量不同,定義的FLASH_SIZE也不同,應用時要根據實際FLASH容量定義
  60.          
  61.          
  62. //        LCD_LED_WriteLram(4,lw_static);
  63.         Timer0_init();
  64.         Timer1_init();
  65. #ifdef UART0_EN
  66.         Uart0_Initial(UART0_BAUTRATE);
  67. #endif
  68. #ifdef UART1_EN
  69.         Uart1_Initial(UART1_BAUTRATE);
  70. #endif
  71. #ifdef UART2_EN
  72.         Uart2_Initial(UART2_BAUTRATE);
  73. #endif

  74.         EA = 1;
  75. //    UID=Read_32bit_UID();
  76. #ifdef PRINT_EN
  77. //        uart_printf("Remote control example!\n");
  78. //        Delay_ms(200);
  79. //        uart_printf ("UID = %ld\n",UID);                //打印UID?
  80.         Delay_ms(200);
  81. #endif
  82.         ADC_init();
  83.         INT0_init();
  84.         INT2_init();
  85.           //LED_init(LEN_IRCH,COM_L,COM_L,7,30);
  86.         IO_init();
  87.         ADC_read_AD4();
  88.         Delay_ms(200);
  89.         ADC_read_AD5();
  90.         Delay_ms(200);
  91.         BELL=0;
  92.         SYEN=1;
  93.         FLZ=0;
  94.         light_time=0;
  95.   read_co2();
  96. //        LCD_RamCo2();
  97.         PWM_init();
  98.         Delay_ms(200);
  99.         LED_init(LEN_IRCH,COM_L,COM_L,7,30);
  100.         LCD_RamAll();
  101.         Delay_ms(1000);
  102.         LCD_RamClear();
  103.         IRC_init();
  104.         CC1101_Init();                                                   //無線模塊初始化
  105.         WDT_init(WDTS_IRCH,WDRE_int,0x708);                                              //看門狗初始化
  106.         Data_Area_Mass_Read(0,binding,8);
  107.         lw_static= Data_Area_Read_Byte(8);
  108.    CO2_VOLUE= Data_Area_Read_Byte(9)*256+Data_Area_Read_Byte(10);
  109.         // CO2_VOLUE=
  110. //        PWM_set(12);
  111.         while(1){
  112.                     WDT_FeedDog();                                                                                         //喂狗
  113.                          if(j>45&& SART_FLAG!=0)
  114.                         {         
  115.                     if (co2_error==1)
  116.                            error=1;
  117.                            else if(F_speed==0)
  118.                            error=2;
  119.                            else if(M_speed==0)
  120.                            error =5;
  121.                            else if(temperature<-20 || temperature>60)
  122.                             error =3;
  123.                                 else
  124.                                 error =0;
  125.                           ADC_read_AD4();        
  126.                           Delay_ms(10);
  127.                                 j=0;
  128.                   }

  129.        process_IRC();                                                             //遙控功能
  130.                          WDT_FeedDog();                                                                                           //喂狗
  131.        process_timer();                                                                       //定時功能
  132.          
  133.            if(SART_FLAG!=0)                                                                                           //運行狀態(tài)
  134.             {
  135.                      proecss_lw();                                                                 //濾網功能
  136.                             proecss_light();                                             //顯示背光功能
  137.                                  WDT_FeedDog();                                                                             //喂狗
  138.                            proecss_FLZ();                                                           //負離子功能
  139.                                  if(start_time>8)
  140.                          process_co2();
  141.                            proecss_MOTO();
  142.                            process_err();                                                                                    
  143.          process_flash();               
  144.                 if(detection_time==5)
  145.                  {  
  146.                            ADC_read_AD5();         
  147.                      PWM_set(12);
  148.                      Delay_ms(3000);
  149.                          if(F_speed<1000)
  150.                    {
  151.         lw_static=1; LCD_LED_WriteLram(2,((LCD_LED_ReadLram(2)&0xfc)|0x02)); LCD_LED_WriteLram(0,LCD_LED_ReadLram(0)&0xfb); }
  152.                     else if(F_speed<2000)
  153.                          {
  154.          lw_static=2;LCD_LED_WriteLram(2,(LCD_LED_ReadLram(2)|0x03));  LCD_LED_WriteLram(0,LCD_LED_ReadLram(0)&0xfb); }  
  155.                         else
  156.                         {
  157.          lw_static=3;LCD_LED_WriteLram(2,(LCD_LED_ReadLram(2)|0x03)); LCD_LED_WriteLram(0,LCD_LED_ReadLram(0)|0x04); }
  158.                       // Data_Area_Sector_Erase(0);                //擦除數據扇區(qū)0
  159.                // Data_Area_Write_Byte(0,lw_static);
  160.                     detection_time=0;
  161.                           flash_write_en=1;                        
  162.      }
  163.                          proecss_cc1101();
  164.                         
  165.            }
  166.            else                                                                                                                //停止時
  167.                      {
  168.                             FLZ=0;                                                                                           //負離子關
  169.                                   LCD_RamClear();
  170.                                   Delay_ms(200);
  171.                                   wind_leve=0;
  172.                                   PWM_set(0);
  173.           WORK_MOD=0;
  174.                         }
  175.                         
  176.             
  177.                
  178.         
  179.         }
  180. }
  181. #endif
復制代碼

所有資料51hei提供下載:
CC1101從機.zip (162.1 KB, 下載次數: 34)
cc1101 主機.zip (401.95 KB, 下載次數: 31)



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 激情视频网站 | 亚洲精品一区二区三区在线 | 最新国产在线 | 亚洲一区二区三区观看 | 日韩久久综合网 | 久久免费观看视频 | 夜色www国产精品资源站 | 精品久久一区 | 99久久夜色精品国产亚洲96 | 欧美一区二区免费 | 久久精品亚洲一区二区三区浴池 | 国产亚洲成av人片在线观看桃 | 色综合天天天天做夜夜夜夜做 | 91国内精品| 久久久99国产精品免费 | 欧美aⅴ | 成人在线影视 | 色黄爽| 亚洲 欧美 日韩在线 | 欧美a级成人淫片免费看 | 国产精品久久久久一区二区三区 | 国产免费一二三区 | 99福利视频导航 | 一区二区不卡 | 色爱综合网 | 国精久久 | 亚洲一区二区免费视频 | 欧美视频一区二区三区 | 国产欧美精品 | 日本免费视频在线观看 | 很很干很很日 | 成人欧美一区二区三区在线播放 | 久久九精品 | 中文字幕在线观看一区二区 | 欧美在线视频一区二区 | 免费黄篇 | 欧美成人激情 | 一区二区三区免费 | jvid精品资源在线观看 | 欧美成人一区二区三区 | 日韩手机在线视频 |