• 大小: 6.9MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-22
  • 语言: 其他
  • 标签: BPC,解码  

资源简介

BPC解码详细资料,包括解码程序,程序是在阿莫论坛下载的,我将其移植到51单片机上,并对源码的每行代码进行了详细的注释。对源码进行了修改和优化,源码接收部分没问题,但是解码和校验部分有问题,导致会漏掉很多有用数据帧,修改后解决了解码和校验的问题,在信号好时基本能在1分钟内解码并接收。

资源截图

代码片段和文件信息

#include “app.h“
#include “hcs201.h“
#include “hwUart.h“
#include “hcs_66bitcode.h“
#include “signle_led.h“
#include “keypad.h“

typedef enum
{
  STATE_MACHINE_NORNAL
  STATE_MACHINE_LEARNING
}state_machine_en;

static u1t _timer;
static u1t _timer2;
static boolt _flag_hold;
static u1t _io_debug;

boolt flag_sec;
u4t debug4;
state_machine_en state_machine;


#define FILTER_COUNT_RESET      50
#define FILTER_COUNT_END_POINT  0xff
static void Io_filter(u1t* out u1t in)
{
  static u1t previous_in=0timer=FILTER_COUNT_RESET;
  if (in == previous_in)
  {
    if (timer != FILTER_COUNT_END_POINT)
    {
      if (--timer == FILTER_COUNT_END_POINT)
      {
        *out = previous_in;
      }
    }
  }
  else
  {
    previous_in = in;
    timer = FILTER_COUNT_RESET;
  }
}

void App_timer(void)
{
  if (++_timer==100)    
  {
    _timer = 0;
    flag_sec = true;
  }
  if (++_timer2==10)    
  {
    _timer2 = 0;
    //o_led = !o_led;
  }
  Io_filter(&_io_debug i_debug);
}

void Led()
{
  if (_timer<50)
  {
    o_led2 = 0;
  }
  else
  {
    o_led2 = 1;
  }
}

static void App_state_machine(void)
{
  if (Keypad_curkey_view()==KEY_UP)
  {
    o_up = 1;
  }
  else
  {
    o_up = 0;
  }
  if (Keypad_curkey_view()==KEY_DOWN)
  {
    o_down = 1;
  }
  else
  {
    o_down = 0;
  }
  if (Keypad_get_this(KEY_HOLD)==true)
  {
    o_hold = 1;
    _flag_hold = true;
  }
  if (Keypad_curkey_view()==KEY_STOP)
  {
    o_hold = 1;
    _flag_hold = false;
  }
  else
  {
    if (_flag_hold==false)
    {
      o_hold = 0;
    }
  }
}

void App_process(void)
{
  switch (state_machine)
  {
  case STATE_MACHINE_NORNAL:
    keypad_process(KET_DETECT_MODE_NORMAL);
    Led();
    App_state_machine();
    if (_io_debug==0)
    {
      state_machine = STATE_MACHINE_LEARNING;
      o_led = 0;
      o_led2 = 0;
      Serial_number_reset();
    }
    break;
  case STATE_MACHINE_LEARNING:
    keypad_process(KET_DETECT_MODE_LEARN);
    if (_io_debug==1)
    {
      state_machine = STATE_MACHINE_NORNAL;
    }
    else if (Keypad_get_key()>0)
    {     
      if (Hcs201_learn_serial_number(bit_code_analyze.fixed_portion.st.serial_number bit_code_analyze.encrypted_portion.st.sync_counter))
      {
        Signle_led_light(10 1 1);
      }
      else
      {
        Signle_led_light(10 10 3);
      }
    }
    break;
  }
}

void App_init(void)
{
  state_machine = STATE_MACHINE_NORNAL;
  _io_debug = 0xff;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2560  2010-03-05 20:04  BPC解码\avr c\bpc\app.c

     文件        166  2010-02-02 11:21  BPC解码\avr c\bpc\app.h

     文件      18211  2007-12-13 19:54  BPC解码\avr c\bpc\ATmega8.h

     文件       2263  2008-12-24 21:50  BPC解码\avr c\bpc\buzzer.c

     文件        345  2010-01-29 14:55  BPC解码\avr c\bpc\buzzer.h

     文件       2092  2010-03-05 19:59  BPC解码\avr c\bpc\common.h

     文件      86045  2010-02-28 02:17  BPC解码\avr c\bpc\Debug\Exe\iar.d90

     文件      20963  2010-02-28 02:06  BPC解码\avr c\bpc\Debug\List\app.lst

     文件      19238  2010-02-28 02:06  BPC解码\avr c\bpc\Debug\List\app.s90

     文件      12029  2010-02-28 02:06  BPC解码\avr c\bpc\Debug\List\buzzer.lst

     文件      13238  2010-02-28 02:06  BPC解码\avr c\bpc\Debug\List\buzzer.s90

     文件      19645  2010-02-28 02:06  BPC解码\avr c\bpc\Debug\List\eeprom.lst

     文件      20120  2010-02-28 02:06  BPC解码\avr c\bpc\Debug\List\eeprom.s90

     文件      52445  2010-02-28 02:06  BPC解码\avr c\bpc\Debug\List\hcs201.lst

     文件      51783  2010-02-28 02:06  BPC解码\avr c\bpc\Debug\List\hcs201.s90

     文件      27160  2010-02-28 02:06  BPC解码\avr c\bpc\Debug\List\hcs_66bitcode.lst

     文件      26847  2010-02-28 02:06  BPC解码\avr c\bpc\Debug\List\hcs_66bitcode.s90

     文件      26640  2010-02-28 02:06  BPC解码\avr c\bpc\Debug\List\hwUart.lst

     文件      28469  2010-02-28 02:06  BPC解码\avr c\bpc\Debug\List\hwUart.s90

     文件      22049  2010-02-28 02:06  BPC解码\avr c\bpc\Debug\List\intTimer1.lst

     文件      26475  2010-02-28 02:06  BPC解码\avr c\bpc\Debug\List\intTimer1.s90

     文件      10659  2010-02-28 02:06  BPC解码\avr c\bpc\Debug\List\intTimer2Comp.lst

     文件      14332  2010-02-28 02:06  BPC解码\avr c\bpc\Debug\List\intTimer2Comp.s90

     文件      17735  2010-02-28 02:06  BPC解码\avr c\bpc\Debug\List\keeloq_decode.lst

     文件      17228  2010-02-28 02:06  BPC解码\avr c\bpc\Debug\List\keeloq_decode.s90

     文件      13512  2010-02-28 02:06  BPC解码\avr c\bpc\Debug\List\keypad.lst

     文件      13580  2010-02-28 02:06  BPC解码\avr c\bpc\Debug\List\keypad.s90

     文件      16699  2010-02-28 02:17  BPC解码\avr c\bpc\Debug\List\lcm.lst

     文件      21297  2010-02-28 02:17  BPC解码\avr c\bpc\Debug\List\lcm.s90

     文件      17344  2010-02-28 02:06  BPC解码\avr c\bpc\Debug\List\main.lst

............此处省略473个文件信息

评论

共有 条评论

相关资源