資源簡介
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個文件信息
評論
共有 條評論