⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xl032_szgs01.dt

📁 完整的电动车防盗报警器源码
💻 DT
📖 第 1 页 / 共 3 页
字号:
Same_Key_Status:
	mov	a,ACC_Port
	and	a,@Key_Status_Buffer
	xor	a,Key_Value
	jbc	status,z
		jmp	Same_Key
	xor	Key_Value,a
	jmp	Quiver_Key_Samples
Same_Key:
	jbs	Key_Value,Acc;Acc_Port,Acc
		jmp	Key_Acc_Power_Off
;	bs	 System_Status,Not_Lock
	clr	Acc_Time_Counter
Key_Acc_Power_On:
	jbs	System_RF_Status,Warm_Enable	;没有设警 
		jmp	Quiver_Key_Samples
	mov	a,Sound_Event_Counter
	jbs	status,z
		jmp	Quiver_Key_Samples
	jbs	Key_Value,Acc;Acc_Port,Acc
		jmp	Quiver_Key_Samples
	bs	 System_Status,Acc_Warm
	bc	 Quiver_Counter+1,0
	bc	 System_RF_Status,Warm_Again
	jmp	Key_Warm_Status
	;======;
Key_Acc_Power_Off:
	jbs	 System_Status,Acc_Warm
		jmp	Key_Acc_Power_Off2
	bc	 System_Status,Acc_Warm
	clr	Sound_Event_Counter
;	bc	 Quiver_Counter+1,0
;	bc	 System_RF_Status,Warm_Again
	clr	System_Clock+2
Key_Acc_Power_Off2:
	jbc	System_RF_Status,Warm_Enable
		jmp	Quiver_Key_Samples	
	bc	 Sound_Control_Port,Sound_Control
	jmp	Quiver_Key_Samples
Key_Quiver:
	jbc	Quiver_Port,Quiver
		inc	Quiver_Counter
	jbs	Quiver_Port,Quiver
		clr	Quiver_Counter
	mov	a,Quiver_Edit_Event
	and	a,@0b00000011
	call	Warm_Wait_Time_Table
	sub	a,Quiver_Counter
	jbs	status,c
		jmp	RF_Samples
	jmp	Key_Warm_Status2
Key_Warm_Status:
	jbc	Quiver_Counter+1,5
		jmp	RF_Samples
Key_Warm_Status2:
	jbc	Quiver_Counter+1,0
		bs	 System_RF_Status,Warm_Again
	inc	Quiver_Counter+1
	jbc	 System_Status,Not_Sound
		bs	 System_RF_Status,No_Sound
	bc	 System_RF_Status,Quiver_Enable
	clr	System_Clock+2
	mov	a,@13
	jbc	System_RF_Status,Warm_Again
		mov	a,@5
	mov	Sound_Event_Counter,a
	bs	 System_Status,Warm_Initialize
;	bs	 Lock_Port,Lock				;报警触发就开锁电机信号 
	jbc	Check_Port,Check
		jmp	Key_Warm_Status3
	jbc	 System_Status,Acc_Warm
		jmp	RF_Samples
	jbc	Start_Port,Start
		jmp	RF_Samples
	bs	 Start_Control_Port,Start_Control
	call	Delay_50mS;Delay_200mS
	bs	 Start_Port,Start				;报警时输出高 
	call	Delay_300mS
	bc	 Start_Control_Port,Start_Control
	jmp	RF_Samples
Key_Warm_Status3:
	bc	 Start_Port,Start
	bs	 Start_Control_Port,Start_Control
	jmp	RF_Samples
;==========================================;
;-----------子程序Read_Key结束-------------;
;==========================================;


;==========================================;
Non_Sound_Event:
	bc	 Warm_Port,Warm				  ;关声音 
	clr	Sound_Event_Counter
	clr	Sound_Time_Counter+0
	clr	Sound_Time_Counter+1
	clr	Sound_Time_Counter+2
	clr	Sound_Time_Counter+3
	bc	 System_Status,Sound_Status_Flag
	bc	 Lamp_Port,Lamp		
	jbc	System_RF_Status,Warm_Enable	;报警使能时关低 
		bc	 Start_Port,Start
;	bc	 Lock_Port,Lock			  ;报警结束就关锁电机信号 
	jbc	Check_Port,Check				;为1时,不报警 
		bc	 Start_Control_Port,Start_Control
	jmp	Tcc_End
	;======;
Bi_Sound_Event:
	jbs	System_Status,Warm_Initialize
		jmp	Bi_Main_Loop_Event
	mov	Sound_Time_Counter+3,@1
	jmp	Bi_Main_Loop_Event
	;======;
Bi_Bi_Sound_Event:
	jbs	System_Status,Warm_Initialize
		jmp	Bi_Main_Loop_Event
	mov	Sound_Time_Counter+3,@2
	jmp	Bi_Main_Loop_Event
	;======;
Bi_Bi_Bi_Sound_Event:
	jbs	System_Status,Warm_Initialize
		jmp	Bi_Main_Loop_Event
	mov	Sound_Time_Counter+3,@3
	jmp	Bi_Main_Loop_Event
	;======;
Bi_Bi_Bi_Bi_Sound_Event:
	jbs	System_Status,Warm_Initialize
		jmp	Bi_Main_Loop_Event
	mov	Sound_Time_Counter+3,@4
	jmp	Bi_Main_Loop_Event
	;======;
Bi_Bi_Bi_Bi_BiSound_Event:
	jbs	System_Status,Warm_Initialize
		jmp	Bi_Main_Loop_Event
	mov	Sound_Time_Counter+3,@5
	jmp	Bi_Main_Loop_Event
	;======;	
Bi_Main_Loop_Event:
	clr	Hold_Key_Time
	jbc	System_Status,Warm_Initialize
		call	Bi_Main_Loop_Event_Tcc_Set
	;------;
	bs	 Lamp_Port,Lamp
	clr	System_Clock+1
	jbc	Warm_Port,Warm
		jmp	Bi_Main_Loop_Sound_High_Status
Bi_Main_Loop_Sound_Low_Status:
	bs	 Warm_Port,Warm
	add	tcc,@256-13					 ;延时110uS
	jmp	Tcc_End
Bi_Main_Loop_Sound_High_Status:
	bc	 Warm_Port,Warm
	mov	a,Sound_Time_Counter+2
	add	a,@13
	add	tcc,a
	;------;
	inc	Sound_Time_Counter+1			;声音变化速度 
	mov	a,Sound_Time_Counter+1
	add	a,@256-7;5
	jbs	status,c
		jmp	Tcc_End
	clr	Sound_Time_Counter+1
	;------;
	jbc	System_Status,Sound_Status_Flag
		jmp	Add_Bi_Main_Loop
Sub_Bi_Main_Loop:
	inc	Sound_Time_Counter+2
	mov	a,Sound_Time_Counter+2
	sub	a,@256-31-1					 ;260uS=(31+2)*8uS
	jbc	status,c
		jmp	Tcc_End
	bs	 System_Status,Sound_Status_Flag
	jmp	Tcc_End
Add_Bi_Main_Loop:
	dec	Sound_Time_Counter+2
	mov	a,Sound_Time_Counter+2
	sub	a,@256-66-1					 ;544uS=(68+2)*8uS
	jbs	status,c
		jmp	Tcc_End
	bc	 System_Status,Sound_Status_Flag
	;------;
	mov	Sound_Time_Counter+4,@33
Delay_mS_Bi_Main_Loop:
	bc	 Lamp_Port,Lamp
	mov	Sound_Time_Counter+0,@248  	 ;延时1000uS=8uS+4uS*248
	call	Delay_uS
	wdtc
	djz	Sound_Time_Counter+4
		jmp	Delay_mS_Bi_Main_Loop

	djz	Sound_Time_Counter+3			;声音次数 
		jmp	Tcc_End
	bc	System_Status,Find_key
	clr	System_Clock+2
	clr	Sound_Event_Counter
	bs	 System_RF_Status,RF_Key_Hold
	;------;
	jbs	 System_Status,Edit_Flag
		jmp	Tcc_End
;	mov	Same_Key_Value,@0x0C
;	mov	RF_Byte_Buffer+2,a
;	call	Delay_100mS
	jmp	Tcc_End
Bi_Main_Loop_Event_Tcc_Set:
	bc	 System_Status,Warm_Initialize
	mov	Sound_Time_Counter+2,@256-66	;544uS=(68+2)*8uS
	clr	Sound_Time_Counter+1
	ret
	;======;
Wu_Wu_Sound_Event:
	jbc	System_Status,Warm_Initialize
		call	Wu_Wu_Sound_Event_Tcc_Set
	;------;
	jbs	System_RF_Status,No_Sound		 ;无声标志 
	jbc	Warm_Port,Warm
		jmp	Wu_Wu_Sound_High_Status
Wu_Wu_Sound_Low_Status:
	bs	 Warm_Port,Warm
	add	tcc,@256-13					 ;延时110uS
	jmp	Tcc_End
Wu_Wu_Sound_High_Status:
	bc	 Warm_Port,Warm
	mov	a,Sound_Time_Counter+2
	add	a,@13
	add	tcc,a
	;------;
	inc	Sound_Time_Counter+1			;声音变化速度 
	mov	a,Sound_Time_Counter+1
	add	a,@256-6
	jbs	status,c
		jmp	Tcc_End
	clr	Sound_Time_Counter+1
	;------;
	jbc	System_Status,Sound_Status_Flag
		jmp	Add_Wu_Wu_Sound
Sub_Wu_Wu_Sound:
	inc	Sound_Time_Counter+2
	mov	a,Sound_Time_Counter+2
	sub	a,@256-31-1					 ;260uS=(31+2)*8uS
	jbc	status,c
		jmp	Tcc_End
	bs	 System_Status,Sound_Status_Flag
	jmp	Tcc_End
Add_Wu_Wu_Sound:
	dec	Sound_Time_Counter+2
	mov	a,Sound_Time_Counter+2
	sub	a,@256-66-1					 ;544uS=(68+2)*8uS
	jbs	status,c
		jmp	Tcc_End
	bc	 System_Status,Sound_Status_Flag
	;------;
	mov	a,@13
	xor	a,Sound_Event_Counter
	jbc	status,z
		jmp	Wu_Wu_Wu_Sound_Ret
	inc	Sound_Time_Counter+3			;声音次数 
	jbs	Sound_Time_Counter+3,3
		jmp	Tcc_End
	clr	Sound_Time_Counter+3
	inc	Sound_Event_Counter
	bs	 System_Status,Warm_Initialize
	jmp	Tcc_End
Wu_Wu_Wu_Sound_Ret:
	inc	Sound_Time_Counter+3			;声音次数 
	jbs	Sound_Time_Counter+3,4
		jmp	Tcc_End
Wu_Wu_Wu_Sound_End:
	clr	Sound_Time_Counter+3
	clr	Sound_Event_Counter
	bs	 System_Status,Warm_Initialize
	clr	System_Clock+2
	jmp	Tcc_End
Wu_Wu_Sound_Event_Tcc_Set:
	bc	 System_Status,Warm_Initialize
	mov	Sound_Time_Counter+2,@256-66	;544uS=(68+2)*8uS
	clr	Sound_Time_Counter+1
	clr	Sound_Time_Counter+3
	ret
	;======;
Du__Sound_Event:
	jbc	System_Status,Warm_Initialize
		call	Du__Sound_Event_Tcc_Set
	;------;
	jbs	System_RF_Status,No_Sound		 ;无声标志 
	jbc	Warm_Port,Warm
		jmp	Du__Sound_High_Status
Du__Sound_Low_Status:
	bs	 Warm_Port,Warm
	add	tcc,@256-12					 ;延时104uS
	jmp	Tcc_End
Du__Sound_High_Status:
	bc	 Warm_Port,Warm
	mov	a,Sound_Time_Counter+2
	add	a,@12
	add	tcc,a
	;------;
	inc	Sound_Time_Counter+1			;声音变化速度 
	mov	a,Sound_Time_Counter+1
	add	a,@256-6
	jbs	status,c
		jmp	Tcc_End
	clr	Sound_Time_Counter+1
	;------;
	jbc	System_Status,Sound_Status_Flag
		jmp	Sub_Du__Sound_Event
Add_Du__Sound_Event:
	dec	Sound_Time_Counter+2
	mov	a,Sound_Time_Counter+2
	sub	a,@256-118-1					;960uS=(118+2)*8uS
	jbs	status,c
		jmp	Tcc_End
	bs	 System_Status,Sound_Status_Flag
	jmp	Tcc_End
Sub_Du__Sound_Event:
	mov	Sound_Time_Counter+2,@256-78-1  ;640uS=(78+2)*8uS
	bc	 System_Status,Sound_Status_Flag
	;------;
	inc	Sound_Time_Counter+3			;声音次数 
	jbs	Sound_Time_Counter+3,3
		jmp	Tcc_End
	clr	Sound_Time_Counter+3
	inc	Sound_Event_Counter
	bs	 System_Status,Warm_Initialize
	jmp	Tcc_End
Du__Sound_Event_Tcc_Set:
	bc	 System_Status,Warm_Initialize
	clr	Sound_Time_Counter+1
	clr	Sound_Time_Counter+3
	mov	Sound_Time_Counter+2,@256-78	;640uS=(76+4)*8uS
	ret
	;======;
Di_Du_Sound_Event:
	jbc	System_Status,Warm_Initialize
		call	Di_Du_Sound_Event_Tcc_Set
	;------;
	jbs	System_RF_Status,No_Sound		 ;无声标志 
	jbc	Warm_Port,Warm
		jmp	Di_Du_Sound_High_Status
Di_Du_Sound_Low_Status:
	bs	 Warm_Port,Warm
	add	tcc,@256-16					 ;延时136uS
	jmp	Tcc_End
Di_Du_Sound_High_Status:
	bc	 Warm_Port,Warm
	mov	a,Sound_Time_Counter+2
	add	a,@16
	add	tcc,a
	;------;
	inc	Sound_Time_Counter+1			;声音变化速度 
	jbs	Sound_Time_Counter+1,6
		jmp	Tcc_End
	clr	Sound_Time_Counter+1
	;------;
	jbc	System_Status,Sound_Status_Flag
		jmp	Sub_Di_Du_Sound_Event
Add_Di_Du_Sound_Event:
	mov	Sound_Time_Counter+2,@256-75-1  ;616uS=(75+2)*8uS
	inc	Sound_Time_Counter+4
	mov	a,Sound_Time_Counter+4
	add	a,@256-16
	jbs	status,c
		jmp	Tcc_End
	clr	Sound_Time_Counter+4
	bs	 System_Status,Sound_Status_Flag
	jmp	Tcc_End
Sub_Di_Du_Sound_Event:
	mov	Sound_Time_Counter+2,@256-104-1 ;848uS=(104+2)*8uS
	inc	Sound_Time_Counter+4
	mov	a,Sound_Time_Counter+4
	add	a,@256-12
	jbs	status,c
		jmp	Tcc_End
	clr	Sound_Time_Counter+4
	bc	 System_Status,Sound_Status_Flag
	;------;
	inc	Sound_Time_Counter+3			;声音次数 
	jbs	Sound_Time_Counter+3,2
		jmp	Tcc_End
	clr	Sound_Time_Counter+3
	inc	Sound_Event_Counter
	bs	 System_Status,Warm_Initialize
	jmp	Tcc_End
Di_Du_Sound_Event_Tcc_Set:
	bc	 System_Status,Warm_Initialize
	mov	Sound_Time_Counter+2,@256-75-1  ;616uS=(75+2)*8uS
	clr	Sound_Time_Counter+1
	clr	Sound_Time_Counter+3
	ret
	;======;
Du___Sound_Event:
	jbc	System_Status,Warm_Initialize
		call	Du___Sound_Event_Tcc_Set
	;------;
	jbs	System_RF_Status,No_Sound		 ;无声标志 
	jbc	Warm_Port,Warm
		jmp	Du___Sound_High_Status
Du___Sound_Low_Status:
	bs	 Warm_Port,Warm
	add	tcc,@256-18					 ;延时152uS
	jmp	Tcc_End
Du___Sound_High_Status:
	bc	 Warm_Port,Warm
	mov	a,Sound_Time_Counter+2
	add	a,@18
	add	tcc,a
	;------;
	inc	Sound_Time_Counter+1			;声音变化速度 
	jbs	Sound_Time_Counter+1,3
		jmp	Tcc_End
	clr	Sound_Time_Counter+1
	;------;
	jbc	System_Status,Sound_Status_Flag
		jmp	Sub_Du___Sound_Event
Add_Du___Sound_Event:
	mov	Sound_Time_Counter+2,@256-236-1 ;1904uS=(236+2)*8uS
	bs	 System_Status,Sound_Status_Flag
	jmp	Tcc_End
Sub_Du___Sound_Event:
	inc	Sound_Time_Counter+2
	mov	a,Sound_Time_Counter+2
	sub	a,@256-98-1					 ;800uS=(98+2)*8uS
	jbc	status,c
		jmp	Tcc_End
	bc	 System_Status,Sound_Status_Flag
	;------;
	inc	Sound_Time_Counter+3			;声音次数 
	jbs	Sound_Time_Counter+3,1
		jmp	Tcc_End
	clr	Sound_Time_Counter+3
	inc	Sound_Event_Counter
	bs	 System_Status,Warm_Initialize
	jmp	Tcc_End
Du___Sound_Event_Tcc_Set:
	bc	 System_Status,Warm_Initialize
	mov	Sound_Time_Counter+2,@256-236   ;1904uS=(236+2)*8uS
	clr	Sound_Time_Counter+1
	clr	Sound_Time_Counter+3
	ret
	;======;
Di_Di_Di_Sound_Event:
	jbc	System_Status,Warm_Initialize
		call	Di_Di_Di_Sound_Event_Tcc_Set
	;------;
	jbs	System_RF_Status,No_Sound		 ;无声标志 
	jbc	Warm_Port,Warm
		jmp	Di_Di_Di_Sound_High_Status
Di_Di_Di_Sound_Low_Status:
	bs	 Warm_Port,Warm
	add	tcc,@256-18					 ;延时152uS
	jmp	Tcc_End
Di_Di_Di_Sound_High_Status:
	bc	 Warm_Port,Warm
	mov	a,Sound_Time_Counter+2
	inc	Sound_Time_Counter+2
	call	Di_Di_Di_Sound_Table2
;	add	a,@18
	add	tcc,a
	;------;
	jbs	Sound_Time_Counter+1,7
		jmp	Tcc_End
	clr	Sound_Time_Counter+1
	;------;
	mov	Sound_Time_Counter+4,@250
Delay_mS_Di_Di_Di_Sound:
	mov	Sound_Time_Counter+0,@248	   ;延时1000uS=8uS+4uS*248
	call	Delay_uS
	wdtc
	djz	Sound_Time_Counter+4
		jmp	Delay_mS_Di_Di_Di_Sound
	;------;
	inc	Sound_Time_Counter+3			;声音次数 
	jbs	Sound_Time_Counter+3,2
		jmp	Tcc_End
	clr	Sound_Time_Counter+3
	inc	Sound_Event_Counter
	bs	 System_Status,Warm_Initialize
	jmp	Tcc_End
Di_Di_Di_Sound_Event_Tcc_Set:
	bc	 System_Status,Warm_Initialize
	clr	Sound_Time_Counter+1
	clr	Sound_Time_Counter+2
	clr	Sound_Time_Counter+3
	ret
	;======;
Diu_Diu_Diu_Sound_Event:
	jbc	System_Status,Warm_Initialize
		call	Diu_Diu_Diu_Sound_Event_Tcc_Set
	;------;
	jbs	System_RF_Status,No_Sound		 ;无声标志 
	jbc	Warm_Port,Warm
		jmp	Diu_Diu_Diu_Sound_High_Status
Diu_Diu_Diu_Sound_Low_Status:
	bs	 Warm_Port,Warm
	add	tcc,@256-18					 ;延时152uS
	jmp	Tcc_End
Diu_Diu_Diu_Sound_High_Status:
	bc	 Warm_Port,Warm
	mov	a,Sound_Time_Counter+2
	add	a,@18
	add	tcc,a
	;------;
	inc	Sound_Time_Counter+1			;声音变化速度 
	jbs	Sound_Time_Counter+1,1
		jmp	Tcc_End
	clr	Sound_Time_Counter+1
	;------;
	jbc	System_Status,Sound_Status_Flag
		jmp	Sub_Diu_Diu_Diu_Sound_Event
Add_Diu_Diu_Diu_Sound_Event:
	dec	Sound_Time_Counter+2
	mov	a,Sound_Time_Counter+2
	sub	a,@256-221-1					;1904uS=(236+2)*8uS
	jbs	status,c
		jmp	Tcc_End
	bs	 System_Status,Sound_Status_Flag
	jmp	Tcc_End
Sub_Diu_Diu_Diu_Sound_Event:
	mov	Sound_Time_Counter+2,@256-98-1  ;800uS=(98+2)*8uS
	bc	 System_Status,Sound_Status_Flag
	;------;
	inc	Sound_Time_Counter+3			;声音次数 
	jbs	Sound_Time_Counter+3,3
		jmp	Tcc_End
	clr	Sound_Time_Counter+3
	clr	Sound_Event_Counter
	clr	System_Clock+2
	jmp	Tcc_End
Diu_Diu_Diu_Sound_Event_Tcc_Set:
	bc	 System_Status,Warm_Initialize
	mov	Sound_Time_Counter+2,@256-221   ;1904uS=(236+2)*8uS
	clr	Sound_Time_Counter+1
	clr	Sound_Time_Counter+3
	ret
	;======;
/*
Bi___Sound_Event:
	jbc	System_Status,Warm_Initialize
		call	Bi___Sound_Tcc_Set
	;------;
	jbs	System_RF_Status,No_Sound		 ;无声标志 
	jbc	Warm_Port,Warm
		jmp	Bi___Sound_High_Status
Bi___Sound_Low_Status:
	bs	 Warm_Port,Warm
	add	tcc,@256-21					 ;延时180uS
	jmp	Tcc_End
Bi___Sound_High_Status:
	bc	 Warm_Port,Warm
	mov	a,Sound_Time_Counter+2
	inc	Sound_Time_Counter+2
	call	Di_Di_Di_Sound_Table2
;	add	a,@45;call	Bi___Sound_Table
;	add	a,@21
	add	tcc,a
	;------;
	inc	Sound_Time_Counter+1			;声音变化速度 
	jbs	Sound_Time_Counter+1,3
		jmp	Tcc_End
	clr	Sound_Time_Counter+1
	;------;
	jmp	Tcc_End
Bi___Sound_Tcc_Set:
	bc	 System_Status,Warm_Initialize
	clr	Sound_Time_Counter+1
	clr	Sound_Time_Counter+2
	clr	Sound_Time_Counter+3
	ret
	;======;
Di___Sound_Event:
	jbc	System_Status,Warm_Initialize
		call	Di___Sound_Event_Tcc_Set
	jbc	System_Status,Lamp_Off
		jmp	 No_Di___Sound_Event
	;------;
	jbs	System_RF_Status,No_Sound		 ;无声标志 
	jbc	Warm_Port,Warm
		jmp	Di___Sound_High_Status
Di___Sound_Low_Status:
;	bs	 Lamp_Port,Lamp
	bs	 Sound_Control_Port,Sound_Control
	bs	 Warm_Port,Warm
	add	tcc,@256-21					 ;延时384uS
	jmp	Tcc_End
Di___Sound_High_Status:
	bc	 Warm_Port,Warm
	mov	a,Sound_Time_Counter+2
	inc	Sound_Time_Counter+2
	call	Di_Di_Di_Sound_Table
	add	a,@21
	add	tcc,a
	;------;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -