资源简介
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个文件信息
评论
共有 条评论