摩托车防盗报警器Word文档格式.docx
《摩托车防盗报警器Word文档格式.docx》由会员分享,可在线阅读,更多相关《摩托车防盗报警器Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
欢迎乘坐某某摩托。
闭锁问候:
欢迎下次乘坐某某摩托。
并有防盗、寻车、防抢、解除等警报。
摩托车防盗器接收控制器原理图:
单片机解码模块原代码
R3EQU0X03
PORT5EQU0X05
PORT6EQU0X06
KEY_STATUSEQU0X10;
低半字节为按键标志,高半字节为控制标志
SIGNAL_LOWEQU0X11;
信号电平低计数器
SIGNAL_HIGHEQU0X12;
信号电平高计数器
DATA_RECORDEREQU0X13;
接收码数据字节
CODE_RECORDER2EQU0X14;
接收码地址高字节
CODE_RECORDER1EQU0X15;
接收码地址低字节
CODE_TOTALEQU0X16;
接收数据位计数器
KEY_COUNTEREQU0X17;
两次按键检测计数器
/**********************KEY_STATUS标志位定义***********************************/AUTORUN_KEYEQU0;
遥控键标志
LOCK_KEYEQU1;
防盗键标志
SEARCH_KEYEQU2;
寻车键标志
OPEN_KEYEQU3;
解除键标志
PRESS_FLAGEQU4;
有键按下标志
CHECK_FLAGEQU5;
校验标志
/***********************CONSTANTDEFINE*************************************/CODE_ADDRESS1EQU0B10001100;
遥控器地址码,更改常数即可实现其他遥控器收码
CODE_ADDRESS2EQU0B00101100
AUTORUN_VALUEEQU0B00000011;
遥控器相应键值,改变相应数值即可更改其功能
LOCK_VALUEEQU0B00001100
SEARCH_VALUEEQU0B00110000
OPEN_VALUEEQU0B11000000
/**********************当PORT6.2口电平为高时调用该程序收码******************/;
PORT6.2为信号输入口
collect_2262:
mova,@0xf0
AndKEY_STATUS,a
clrcode_total
clrsignal_high
collect1:
incsignal_high
MOVA,SIGNAL_HIGH
SUBA,@30
JBSR3,0
RET
clrsignal_low
calldelay20us
jbsport6,2
jmpcollect_low
jmpcollect1
collect_low:
mova,signal_high;
信号高电平宽度<
80US时滤除
suba,@4
jbcr3,0
ret
mova,@20;
信号高电平宽度在80—400US时为采集为0suba,signal_high;
信号高电平宽度在400US以上时为采集为1rrcdata_recorder
rrccode_recorder2
rrccode_recorder1
inccode_total
mova,@24
xora,code_total
jbcr3,2
jmpcollect_end
input_low:
incsignal_low
mova,signal_low;
信号低电平宽度大于800US时滤除suba,@40
jbsr3,0
jbsport6,2;
3
jmpinput_low
collect_end:
mova,code_recorder1;
校验低字节地址
xora,@code_address1
jbsr3,2
mova,code_recorder2;
校验高字节地址
xora,@code_address2
jbsKEY_STATUS,check_flag;
是否是第一串收码?
jmpstorage_data
bcKEY_STATUS,check_flag
mova,com_data_rec
xora,data_recorder
mova,data_recorder
xora,@autorun_value;
是启动键?
jmpkey1
bsKEY_STATUS,autorun_key;
置启动键标志bsKEY_STATUS,press_flag;
置有键按下标志clrkey_counter;
清除按键间隔计数器ret
key1:
xora,@open_value;
是解除键?
jmpkey2
bsKEY_STATUS,open_key
bsKEY_STATUS,press_flag
clrkey_counter
key2:
anda,@0x0c;
同时有两个键按下时不为0X30xora,@lock_value;
是防盗键?
jmpkey3
bsKEY_STATUS,lock_key
key3:
anda,@0x30
xora,@search_value;
是寻车键?
bsKEY_STATUS,search_key
storage_data:
;
第一次收码存储数据字节bsKEY_STATUS,check_flag
movcom_data_rec,a
delay20us:
wdtc
mova,@3;
9
movdelay1,a
delay20us_1:
nop
djzdelay1
jmpdelay20us_1
检测振动模块原代码:
;
数据寄存器定义
NUMBER0EQU0X1D;
振动宽度计数器
GRADEDATAEQUEQU0X1E;
当前灵敏度
COM_DATA_RECEQU0X1F;
上一次数据寄存器
PSW位定义
TCINTBITEQU0;
中断计数标志位,约为750ms(TCCRate=1:
256)VibraBITEQU1;
是否达到当前灵敏度宽度,即是否有振动
CHECK_Vibra:
CELLECTION_VIB:
CLRNUMBER;
检测振动前先把计数器清0
CLRTCC
CLRNUMBER0
BCPSW,TCINTBIT
CELLECTION_L:
采集数据子程序
MOVA,@89;
730ms
SUBA,NUMBER
JBCR3,0
BSPSW,TCINTBIT
JBCPSW,TCINTBIT
JMPCELLECTION_CN4;
是否超时
JBSPORT5,SEN
JMPCELLECTION_L
CELLECTION:
JMPCELLECTION_END
MOVA,@53;
DELAY60us
CALLDELAY0
INCNUMBER0
JMPCELLECTION
CELLECTION_END:
MOVA,GRADEDATA;
比较振动灵敏度
SUBA,NUMBER0
JMPCLRNUMBER0
BSPSW,VibraBIT;
置检测到振动标志
CELLECTION_CN4:
BCPSW,VibraBIT
CLRNUMBER0:
警报发声模块原代码
注:
警报音频率为1.8K到3.5K之间,具体请查资料
OSCILLATION:
R/C=晶振CLOCK=2
Frequency=4MHZ
=================================================================*/
Fre_COUNTEQU0X37;
'
声音频率变化计数器,从1.8~3.55KHZFre_RepeatEQU0x38;
同一频率的重复次数
SOUND_TEMPEQU0X39
Replaceprogramvariablevalueanddebugismorethaneasy.S_LoopEQU67;
MAX-MIN
S_MAXEQU138
S_MINEQU71
S_RepeatEQU4
开始0.2秒发音
SOUND200ms:
SOUND_LH:
1.8~3.55
MOVA,@S_Loop;
66=134-68
MOVFre_COUNT,A
SOUND_LH_LP:
MOVA,@S_Repeat;
MOVFre_Repeat,A
MOVA,Fre_COUNT
ADDA,@S_MIN;
repeat0_lpBSPORT6,BUZ
CALLSOUNDDELAY0
BCPORT6,BUZ
DJZFre_Repeat
JMPrepeat0_lp
DJZFre_COUNT
JMPSOUND_LH_LP
SOUND_HL:
3.55~1.8
SOUND_HL_LP:
SUBA,@S_MAX;
repeat1_lpBSPORT6,BUZ
JMPrepeat1_lp
JMPSOUND_HL_LP
SOUND_END:
**********************************************************Sound2s:
2S内短鸣两声
WARNING1:
CALLSound200ms
CALLDelay800ms
Delay800ms:
CLRTIME1;
getreadyfor0.8seconddelay.Sound_delayMOVA,@196;
delay0.8secondSUBA,TIME1
JMPSound_delay
************************************************
Sound15s:
连续报警15S
WARNING2:
MOVA,@73
MOVSOUND_TEMP,A
Sound1s_lpCALLSound200ms
JBCPORT6,SDT;
SDT上电立即中断报警
DJZSOUND_TEMP
JMPSound1s_lp
============================
SOUNDDELAY1EQU0X3A
sounddelay:
mova,@18;
sounddelay0movsounddelay1,a;
=(A*9)+3wdtc
sounddelayus_1:
djzsounddelay1
jmpsounddelayus_1