用于电动车或摩托车的三合一的报警器,喇叭,转向灯操纵器,振动报警器三种功效集一体[精彩]
用于电动车或摩托车的三合一的报警器,喇叭,转向灯控制器,振动报警器三种功能集一体
用于电动车或摩托车的三合一的报警器,喇叭,转向灯控制器,振动报警器三种功能集一体。
INDF == 0X0 TCC == 0X1 PC == 0X2 STATUS == 0X3 RSR == 0X4 PORT5 == 0X5
PORT6 == 0X6
INTF == 0XF
;
PDRAM == 0X10
; == 0X11 ; == 0X12 ; == 0X13 ; == 0X14 ; == 0X15
RF_ZD_JS == 0X16 ;遥控接收为数及振动次数
BJ_5 == 0X17 ;报警5次 DTRAM1 == 0X18 DTRAM2 == 0X19 A_BUFF == 0X1A STATUS_BUFF == 0X1B TURN_JS == 0X1C
BIAO2 == 0X1D TURN_RAM1 == 0X1E
TURN_RAM2 == 0X1F
POWER_YS == 0X20
DIDI_TIME == 0X21 ;判断数据功能位 LABA_JS == 0X22
YSRAM == 0X23 SECRAM == 0X24 PC_RAM == 0X25 ; == 0X26 ; == 0X27 ;频率变化循环周期存储
; == 0X28 ;同频率周期存储
; == 0X29
; == 0X2A ;声音循环次数
TCCRAM == 0X2B ; == 0X2C ;同频率周期计数
; == 0X2D ;频率变化循环周期计数
; == 0X2E ; == 0X2F ;
;************************************* ;DTRAM1 0X18
ZD_H == 0 ;振动传感器高电平为高
BJ_DT == 1 ;高不能检测振动传感器
RF_BUZZER == 2 ;DTRAM1,7高为遥控接收时间中断,低为声音时间中断
; == 3 ERROR_TURN == 4 ;转向灯短路 TURN_BUZZ == 5
TURN_DT == 6
LABA_DT == 7 ;
;**************************************** ;DTRAM2 0X19
CAN_RF == 0 ;高为报警时允许接收遥控
ONE_TWO_BJ == 1 ;DTRAM2,1高为第二次报警,低为第一次报警
TCC_H == 2 ;DTRAM2,2 高TCC_RAM增加频率高,低反
之
LABA_HIGH == 4
ALARM_DT == 5 ;高为警戒 POWER_H == 6 ;高为电门打开 LIGHT_H == 7 ;高为闪灯亮 ;*****************************************
;PORT5
BUZZ_JC == 2;喇叭按钮
POWER_JC == 3;通电检测
;****************
;PORT6
TURN_JC == 0;转向检测
ZD_JC == 2;振动检测 TURN_OUT == 5;转向输出 BUZZER == 7;喇叭 ;******************************************
ORG 0
JMP START
ORG 8
DISI
MOV A_BUFF,A
MOV A,STATUS
MOV STATUS_BUFF,A
DEC 0x12
JBC 0x3,2
DEC 0x13
JBS DTRAM1,RF_BUZZER
JMP BUZZ_INT
MOV A,@0x38
MOV TCC,A
JMP INT_EXIT ;
BUZZ_INT:
JBS DTRAM1,LABA_DT
JMP BUZZ_BJ ;
;*****
BUZZ_LABA:
MOV A,@0X80
XOR PORT6,A
JBS DTRAM2,LABA_HIGH
JMP BUZZ_LABA_XIANG
BC DTRAM2,LABA_HIGH
CALL GIVE_LABA
MOV TCCRAM,A
INC LABA_JS
MOV A,@10
SUB A,LABA_JS
JBC STATUS,0
CLR LABA_JS
JMP BUZZ_INT2 ;
GIVE_LABA:
MOV A,LABA_JS
ADD PC,A
RETL @222
RETL @7
RETL @7
RETL @222
RETL @44
RETL @157
RETL @151
RETL @151
RETL @157
RETL @44 ;
BUZZ_LABA_XIANG:
BS DTRAM2,LABA_HIGH
MOV A,@244
MOV TCCRAM,A
;
BUZZ_INT2:
MOV A,TCCRAM
MOV TCC,A
JMP INT_EXIT
;********************************
BUZZ_BJ:
MOV A,0x2a
ADD PC,A
JMP ONE_MUSIC
JMP TWO_MUSIC
JMP THREE_MUSIC
JMP FOUR_MUSIC
JMP FIVE_MUSIC
JMP SIX_MUSIC ;**********************第一种声音 0X29=X10 0X28=X8
TCCRAM=X8A
ONE_MUSIC:
MOV A,@0X80
XOR PORT6,A
DJZ 0x28
JMP INT_EXIT
BS 0x28,3
JBS 0x17,2
JMP ONE_DOWN
INC TCCRAM
MOV A,@0xC5;ca
SUB A,TCCRAM
JBC 0x3,0
BC 0x17,2
JMP INT_EXIT ;
ONE_DOWN:
DEC TCCRAM
MOV A,@0x85;8b
SUB A,TCCRAM
JBC 0x3,0
JMP INT_EXIT
BS 0x17,2
BS 0x17,4
DJZ 0x29
JMP INT_EXIT
INC 0x2a
CALL GIVE_TWO_DATA ;*************************** INT_EXIT:
MOV A,TCCRAM
ADD TCC,A
BC INTF,0
SWAPA STATUS_BUFF
MOV 0x3,A
SWAP A_BUFF
SWAPA A_BUFF
RETI ;*************************** GIVE_ONE_DATA:
MOV A,@0x0
CONTW
BS 0x17,2
BC 0x17,4
CLR 0x2a
MOV A,@0xE;10
MOV 0x29,A
MOV A,@0x8
MOV 0x28,A
MOV A,@0x84;8a ;
START_MUSIC:
MOV TCCRAM,A
MOV TCC,A
BS PORT6,BUZZER
CLR 0xf
MOV A,@0x1
IOW 0xf
ENI
RETL @0x0 ;**********************第二种声音 0X29=XF 0X28=X3 TCCRAM=X8E
TWO_MUSIC:
MOV A,@0X80
XOR PORT6,A
DJZ 0x28
JMP INT_EXIT
MOV A,@0x3
MOV 0x28,A
DJZ TCCRAM
JMP INT_EXIT
MOV A,@0x88;8e
MOV TCCRAM,A
DJZ 0x29
JMP INT_EXIT
INC 0x2a
CALL GIVE_THREE_DATA
JMP INT_EXIT ;
GIVE_TWO_DATA:
MOV A,@0xf
MOV 0x29,A
MOV A,@0x3
MOV 0x28,A
MOV A,@0x88;8e
JMP START_MUSIC ;**********************第三种声音 0X29=X4 0X28=X7 0X27=X70
TCCRAM=X7A
THREE_MUSIC:
MOV A,@0X80
XOR PORT6,A
DJZ 0x27
JMP INT_EXIT
DJZ 0x28
JMP INT_EXIT
JBS 0x17,7
JMP THREE_DOWN
BC 0x17,7
MOV A,@0x74;7a
MOV TCCRAM,A
MOV A,@0x7
MOV 0x28,A
MOV A,@0x70
MOV 0x27,A
DJZ 0x29
JMP INT_EXIT
INC 0x2a
CALL GIVE_FOUR_DATA
JMP INT_EXIT ;
GIVE_THREE_DATA:
MOV A,@0x7
MOV 0x28,A
MOV A,@0x70
MOV 0x27,A
BC 0x17,7
MOV A,@0x4
MOV 0x29,A
MOV A,@0x74;7a
JMP START_MUSIC ;**********************第四种声音 0X29=X2 0X28=X13
TCCRAM=X3D CONTW=01 FOUR_MUSIC:
MOV A,@0X80
JBS 0x17,6
XOR PORT6,A
DJZ 0x28
JMP INT_EXIT
MOV A,@0x13
MOV 0x28,A
INC TCCRAM
MOV A,@0xB0;b6
SUB A,TCCRAM
JBS 0x3,0
JMP INT_EXIT
JBS 0x17,6
JMP FOUR_DOWN
BC 0x17,6
MOV A,@0x38;3d
MOV TCCRAM,A
DJZ 0x29
JMP INT_EXIT
INC 0x2a
CALL GIVE_FIVE_DATA
JMP INT_EXIT GIVE_FOUR_DATA:
MOV A,@0x1
CONTW
BC 0x17,6
MOV A,@0x13
MOV 0x28,A
MOV A,@0x2
MOV 0x29,A
MOV A,@0x38;3d
JMP START_MUSIC ;**********************第五种声音 0X29=X8 0X28=X21 0X27=X1D
TCCRAM=XC7
FIVE_MUSIC:
MOV A,@0X80
JBS 0x17,6
XOR PORT6,A
DJZ 0x27
JMP INT_EXIT
JBS 0x17,7
JMP L0xaf
BC 0x17,7
MOV A,@0x1d
MOV 0x27,A
MOV A,@0xBC;c7
MOV TCCRAM,A
DJZ 0x28
JMP INT_EXIT
JBC 0x17,6
JMP FIVE_DOWN
BS 0x17,6
BC PORT6,BUZZER
BS 0x17,7
MOV A,@0x2
MOV 0x28,A
CLR 0x27
CLR TCCRAM
JMP INT_EXIT L0XAF:
BS 0x17,7
MOV A,@0x8
MOV 0x27,A
MOV A,@0xB4;bc
MOV TCCRAM,A
JMP INT_EXIT FIVE_DOWN:
BC 0x17,6
MOV A,@0x21
MOV 0x28,A
DJZ 0x29
JMP INT_EXIT
INC 0x2a
CALL GIVE_SIX_DATA
JMP INT_EXIT GIVE_FIVE_DATA:
MOV A,@0x0
CONTW
BC 0x17,6
BC 0x17,7
MOV A,@0x8
MOV 0x29,A
MOV A,@0x21
MOV 0x28,A
MOV A,@0x1d
MOV 0x27,A
MOV A,@0xBC;c7
JMP START_MUSIC ;**********************第六种声音 0X29=X8 0X28=X7
TCCRAM=X99
SIX_MUSIC:
MOV A,@0X80
XOR PORT6,A
DJZ 0x28
JMP INT_EXIT
MOV A,@0x7
MOV 0x28,A
DEC TCCRAM
MOV A,@0x0D;14
SUB A,TCCRAM
JBC 0x3,0
JMP INT_EXIT
MOV A,@0x92;99
MOV TCCRAM,A
DJZ 0x29
JMP INT_EXIT
CLR 0x2a
CALL GIVE_ONE_DATA
JMP INT_EXIT ;
GIVE_SIX_DATA:
MOV A,@0x8
MOV 0x29,A
MOV A,@0x7
MOV 0x28,A
MOV A,@0x92;99
JMP START_MUSIC ;*************
THREE_DOWN:
BS 0x17,7
MOV A,@0xA3;a9
MOV TCCRAM,A
MOV A,@0xa
MOV 0x28,A
MOV A,@0xeb
MOV 0x27,A
JMP INT_EXIT ;*************
FOUR_DOWN:
BS 0x17,6
BC PORT6,BUZZER
MOV A,@0x9c
MOV TCCRAM,A
JMP INT_EXIT ;******************************* START:
WDTC
CALL CSH
CALL STOP_MUSIC
CALL CLEAR_RAM
CALL SEC_YS
MOV A,@0x15 ;26
MOV 0X15,A
BS DTRAM1,ZD_H
MOV A,@6
MOV TURN_JS,A
;
WAIT:
WDTC
CALL ZDJC_SUB
CALL POWER_SUB
CALL ZDJC_SUB
CALL LABA_TURN_SUB
CALL TIME_100MS
CALL ZDJC_SUB
CALL TIME_100MS
JMP WAIT
;***************************报警后等待15秒恢复原始状态
WAIT_SEC15:
WDTC
JBC DTRAM2,ONE_TWO_BJ
JMP WAIT_SEC15_1
RET
WAIT_SEC15_1:
CALL TIME_100MS
MOV A,@0x1
SUB A,0X11
JBS 0x3,0
RET
BC DTRAM2,ONE_TWO_BJ
RET
;******************************************
ZDJC_SUB:
WDTC
JBC DTRAM1,BJ_DT
RET
JBS DTRAM2,ALARM_DT
RET
;******振动检测
JBC BIAO2,0
JMP ZDJC_SUB1
BC DTRAM1,ZD_H
JBC PORT6,ZD_JC
BS DTRAM1,ZD_H
BS BIAO2,0
RET
ZDJC_SUB1:
JBS DTRAM1,ZD_H
JMP LOW_HIGH
JBC PORT6,ZD_JC
RET
NOP
JBC PORT6,ZD_JC
RET
; JBC PORT6,ZD_JC ; RET
JMP ZDJC_EXIT LOW_HIGH:
JBS PORT6,ZD_JC
RET
NOP
JBS PORT6,ZD_JC
RET
; JBS PORT6,ZD_JC ; RET
;
ZDJC_EXIT:
CALL GIVE_ONE_DATA
BS DTRAM1,BJ_DT
JMP TWO_BJ ; 第二次报警
;
;************************** CLEAR_RAM:
MOV A,@0x11
MOV 0x4,A
MOV A,@0x1F
MOV PDRAM,A CLEAR_RAM1:
WDTC
CLR INDF
INC 0x4
DJZ PDRAM
JMP CLEAR_RAM1
RET
;************************** STOP_MUSIC:
DISI
WDTC
MOV A,@0x87
CONTW
MOV A,@0x9f
IOW 0xe
MOV A,@0x1
IOW 0xf
CLR TCC
CLR 0x2f
CLR 0X11
BC PORT6,BUZZER
RET
;**********************100MS计数 TIME_100MS:
WDTC
JBS 0xf,0
RET
BC 0xf,0
INC 0x2f
JBS 0x3,2
RET
INC 0X11
RET
;*********************** CSH:
MOV A,@0x0D ;0000,1100
IOW PORT5
MOV A,@0x05 ;0000,0101
IOW PORT6
CLR PORT5
CLR PORT6
MOV A,@0xff
IOW 0xB
MOV A,@0x04 ;ADDNEW
IOW 0xC
MOV A,@0xff
IOW 0xd
RET
;**********************第二次报警 TWO_BJ:
WDTC
BS DTRAM1,BJ_DT
MOV A,@0X9
MOV 0X14,A
CALL GIVE_ONE_DATA BJ1:
MOV A,@0x19
MOV 0x13,A
CLR 0x12
BJ2:
WDTC
JBC PORT5,POWER_JC
JMP CLOSE_ALARM
JBS 0X13,7
JMP BJ2
DJZ 0X14
JMP BJ1
BJ_END:
CALL STOP_MUSIC
CLR 0X2F
JMP JJ_WAIT ;
;***********
CLOSE_ALARM:
DISI
WDTC
CALL STOP_MUSIC
BC DTRAM2,ALARM_DT
BC DTRAM1,BJ_DT
INC PC_RAM
BC 0x3,0
RET
;******************************************
SEC_YS:
MOV A,@0x4
MOV SECRAM,A SEC_YS1:
CALL YS
DJZ SECRAM
JMP SEC_YS1
RET
;******************** YS:
MOV A,@0xc8
MOV YSRAM,A YS1:
MOV A,@0xc8
MOV PDRAM,A YS2:
NOP
WDTC
DJZ PDRAM
JMP YS2
DJZ YSRAM
JMP YS1
RET ;******************* KEY_YS:
MOV A,@0xC;10
MOV YSRAM,A KEY_YS1:
MOV A,@0xc8
MOV PDRAM,A
KEY_YS2:
JBS PORT6,TURN_JC
BC PORT6,TURN_OUT
WDTC
DJZ PDRAM
JMP KEY_YS2
DJZ YSRAM
JMP KEY_YS1
RET ;************************ L0X34A:
BC PORT6,BUZZER
MOV A,@0xc8
MOV PDRAM,A L0X34D:
NOP
WDTC
DJZ PDRAM
JMP L0x34d
RET
;************************* POWER_SUB:
JBS PORT5,POWER_JC
JMP POWER_CLOSE
CALL KEY_YS
JBS PORT5,POWER_JC
JMP POWER_EXIT
BS DTRAM2,POWER_H
BC DTRAM2,ALARM_DT
BC DTRAM2,ONE_TWO_BJ
JMP POWER_EXIT
POWER_CLOSE:
JBS DTRAM2,ALARM_DT ;ADDNEW
CALL KEY_YS
JBC PORT5,POWER_JC
JMP POWER_EXIT
JBS DTRAM2,POWER_H
JMP POWER_EXIT
CALL STOP_MUSIC
BC DTRAM1,LABA_DT
BC DTRAM2,POWER_H
BC PORT6,BUZZER
BC PORT6,TURN_OUT
BC DTRAM2,LIGHT_H
BC DTRAM1,TURN_BUZZ
BC DTRAM1,TURN_DT
BC DTRAM1,BJ_DT
BC DTRAM2,ALARM_DT
BC DTRAM1,ERROR_TURN
CLR BIAO2
MOV A,@6
MOV TURN_JS,A
MOV A,@2
MOV POWER_YS,A WAIT_POWER:
JBC PORT5,POWER_JC
JMP POWER_EXIT
CALL YS
DJZ POWER_YS
JMP WAIT_POWER
CALL GIVE_ONE_DATA TISHIYIN:
WDTC
JBS 0X29,0
JMP TISHIYIN
CALL STOP_MUSIC
NOP
POWER_EXIT:
RET
;************************* LABA_TURN_SUB:
JBS DTRAM2,POWER_H
JMP LABA_PD
JBS PORT5,BUZZ_JC
JMP LABA_MUER LABA_BUZZ:
CALL KEY_YS
JBS PORT5,BUZZ_JC
JMP LABA_MUER
JBC DTRAM1,LABA_DT
JMP TURN_SUB
MOV A,@0X82
CONTW
;ADDNEW
MOV A,@244
MOV TCCRAM,A
MOV TCC,A ;
BC 0xf,0 ; MOV A,@0xF5 ; MOV TCC,A
ENI
BS PORT6,BUZZER
BS DTRAM1,LABA_DT
BS DTRAM2,LABA_HIGH
CLR LABA_JS
JMP TURN_SUB ;*******
LABA_MUER:
CALL KEY_YS
JBC PORT5,BUZZ_JC
JMP LABA_BUZZ
CALL STOP_MUSIC
CLR LABA_JS
BC DTRAM1,LABA_DT ;*********
TURN_SUB:
JBC DTRAM1,TURN_DT
JMP PLAY_TURN
JBC PORT6,TURN_JC
JMP TURN_LABA_EXIT
CALL KEY_YS
JBC PORT6,TURN_JC
JMP TURN_LABA_EXIT
BS DTRAM1,TURN_DT ;
PLAY_TURN:
JBC DTRAM2,LIGHT_H
JMP PLAY_TURN1 ;
JBC DTRAM1,ERROR_TURN ;ADD
JMP PLAY_TURN0 ;ADD
BS PORT6,TURN_OUT
NOP
;
JBC PORT6,TURN_JC ;ADD
JMP PLAY_TURN0 ;ADD
MOV A,@1
MOV TURN_JS,A
BS DTRAM1,ERROR_TURN ;
PLAY_TURN0:
DJZ TURN_JS
JMP TURN_LABA_EXIT
BC PORT6,TURN_OUT
BS DTRAM2,LIGHT_H
MOV A,@19
JBC DTRAM1,ERROR_TURN
MOV A,@10
MOV TURN_JS,A
BC DTRAM1,TURN_BUZZ
JMP TURN_LABA_EXIT ;
PLAY_TURN1: ;灯灭喇叭响
JBC DTRAM1,LABA_DT
JMP PLAY_TURN2
JBS DTRAM1,TURN_BUZZ
CALL BUZZ_SUB
BS DTRAM1,TURN_BUZZ PLAY_TURN2:
BC PORT6,TURN_OUT
JBS PORT6,TURN_JC
JMP PLAY_TURN3
CALL KEY_YS
JBC PORT6,TURN_JC
JMP TURN_CLOSE PLAY_TURN3:
DJZ TURN_JS
JMP TURN_LABA_EXIT
BC PORT6,TURN_OUT
BC DTRAM2,LIGHT_H
MOV A,@6
JBC DTRAM1,ERROR_TURN ;ADD
MOV A,@1 ;ADD
MOV TURN_JS,A TURN_LABA_EXIT:
RET
;
TURN_CLOSE:
BC PORT6,BUZZER
BC PORT6,TURN_OUT
BC DTRAM2,LIGHT_H
BC DTRAM1,TURN_DT
BC DTRAM1,TURN_BUZZ
BC DTRAM1,ERROR_TURN
MOV A,@6
MOV TURN_JS,A
RET
;***********进入警戒 LABA_PD:
JBC DTRAM2,ALARM_DT
RET
JBS PORT5,BUZZ_JC;ADD
RET
CALL KEY_YS
JBS PORT5,BUZZ_JC;ADD
RET
ENT_ALARM:
MOV A,@3
MOV BJ_5,A ;
ENT_WAIT:
CALL BUZZ_SUB
DJZ BJ_5
JMP ENT_WAIT1
CALL STOP_MUSIC
CLR 0X2F
JJ_WAIT:
CALL TIME_100MS
MOV A,@0X0F;10
SUB A,0x2f
JBS 0x3,0
JMP JJ_WAIT
BS DTRAM2,ALARM_DT
BC DTRAM1,BJ_DT
CLR BIAO2
RET
ENT_WAIT1:
MOV A,@0x80
MOV YSRAM,A
CALL YS1
JMP ENT_WAIT ;************************* BUZZ_SUB:
MOV A,@60
MOV DIDI_TIME,A BUZZ_SUB1:
BS PORT6,BUZZER
CALL BUZZ_YS
BC PORT6,BUZZER
CALL BUZZ_YS
DJZ DIDI_TIME
JMP BUZZ_SUB1
RET
;
BUZZ_YS:
MOV A,@0x70;80
MOV PDRAM,A BUZZ_YS1:
NOP
WDTC
DJZ PDRAM
JMP BUZZ_YS1
RET
;