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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2483|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

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

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
工程采用KEIL4環(huán)境。采用國產(chǎn)51芯片。主機(jī)長按綁定鍵后進(jìn)入綁定狀態(tài),此時(shí)顯示會(huì)閃爍提示。當(dāng)從機(jī)上也長按綁定鍵時(shí),從機(jī)會(huì)將芯片的UID碼發(fā)送給主機(jī)。主機(jī)收到UID碼后保存到主機(jī)的FALSH中實(shí)現(xiàn)掉電保存,完成綁定。顯示器變?yōu)槌A痢?br /> 后期主機(jī)發(fā)送數(shù)據(jù)串時(shí)會(huì)連同UID一起發(fā)送。從機(jī)只有收到了和自己UID相匹配的數(shù)據(jù)時(shí)才解析。本樣例中是主機(jī)控制從機(jī)三個(gè)繼電器。



單片機(jī)源程序如下:
  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é)為數(shù)據(jù)空間,注意:不同型號(hào)芯片F(xiàn)LASH容量不同,定義的FLASH_SIZE也不同,應(yīng)用時(shí)要根據(jù)實(shí)際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();                                                                       //定時(shí)功能
  132.          
  133.            if(SART_FLAG!=0)                                                                                           //運(yùn)行狀態(tài)
  134.             {
  135.                      proecss_lw();                                                                 //濾網(wǎng)功能
  136.                             proecss_light();                                             //顯示背光功能
  137.                                  WDT_FeedDog();                                                                             //喂狗
  138.                            proecss_FLZ();                                                           //負(fù)離子功能
  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);                //擦除數(shù)據(jù)扇區(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                                                                                                                //停止時(shí)
  167.                      {
  168.                             FLZ=0;                                                                                           //負(fù)離子關(guān)
  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
復(fù)制代碼

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



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

使用道具 舉報(bào)

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

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 色妹子综合网 | 超碰在线国产 | 国产ts人妖系列高潮 | 亚洲日本视频 | 亚洲视频在线观看一区二区三区 | 国产一级在线 | 久久精品国产免费 | 性xxxxx | 超碰人人插 | 成人精品一区亚洲午夜久久久 | 久久久精品一区 | 中文字幕97| 午夜寂寞影院列表 | 亚洲一区二区三区福利 | 色视频一区二区 | 亚洲视频免费 | 欧美久久久久 | 欧美精品综合在线 | 国产精品日本一区二区在线播放 | 99re在线视频| 精品久久久久久久久久久久久 | 99精品99 | 精品国产欧美一区二区 | 国产黄色在线 | 日韩免费激情视频 | 亚洲精品一区二区三区蜜桃久 | 国户精品久久久久久久久久久不卡 | 久久精品亚洲 | 国产一区二区三区免费视频 | 久久精品国产精品青草 | 久久九九免费 | 免费小视频在线观看 | 成人毛片网站 | 日韩黄色小视频 | 久草青青草| 欧美一区二区三区精品免费 | 日本在线一区二区三区 | 亚洲国产视频一区二区 | 影音先锋欧美资源 | 综合久久综合久久 | 91精品国产乱码久久久久久久久 |