;防盗器子机程序
FSDY EQU P1.7 ;发射电源端,高电平为输出
FSKZ EQUP1.6 ;发射操控端,低电平有用
FSDD EQU P1.5 ;发射操控D端,高电平操控有用
FSCC EQU P1.4 ;发射操控C端,高电平操控有用
FSBB EQU P1.3 ;发射操控B端,高电平操控有用
CGDY EQU P1.2 ;传感器电源端,高电平为输出
SPK1 EQU P1.1 ;报警喇叭,高电平为输出,暂时不必
DYAD EQU P1.0 ;电源AD输入端
CGQ1 EQU P3.0 ;振荡传感器
CGQ2 EQU P3.1 ;微波传感器
JSVT EQU P3.2 ;接纳头VT端
JSDD EQU P3.3 ;接纳头D输出端,有用高电平输出
JSCC EQU P3.4 ;接纳头C输出端,有用高电平输出
JSBB EQU P3.5 ;接纳头B输出端,有用高电平输出
LED1 EQU P3.7 ;指示灯
P1MO EQU 91H
P1M1 EQU 92H
P1MA EQU 00000001B
P1MB EQU 10111110B
JSBM EQU 00111100B;设置接纳端口状况,屏蔽P3.7、P3.6、P3.1、P3.0
KJBM EQU 00100000B;设定开机编码为011(即接纳头B为0、C为1、D为1)
ZDBM EQU 00110000B;设定振荡勘探报警编码为110
WBBM EQU 00101000B;设定微波勘探报警编码为101
DYBM EQU 00010000B;设定子机电源低压报警编码为010,也是接纳寻车
GJBM EQU 00001000B;设定2分钟联络子机一次编号为001,也是接纳发动
DYBJ EQU 80H ;设定电源低电压(9V以下)报警值
;┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
;A/D转化程序。
ADC_CONTR EQU 0C5H ;A/D转化寄存器
ADC_DATA EQU 0C6H ;A/D转化成果寄存器,
;为10位A/D转化成果的高8位
;ADC_LOW2 EQU 0BEH ;A/D转化成果寄存器,低2位有用,
;为10位A/D转化成果的低2位
;假如不必ADC_L0W2的低2位,
;只用ADC_DATA的8位,则为8位A/D转化
ADC_Powerl0 EQU 11100000B;P1.0作为A/D输入
;界说变量
ADC_Chl0 EQU 32H ;0通道A/D转化成果
;┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
ORG 0000H ;程序履行开端地址
LJMP KS ;跳至KS
ORG 0003H ;外中止0中止程序进口
LJMP INT00 ;中止回来
ORG 000BH ;守时器T0中止程序进口
LJMP INTT0 ;跳至INTT0中止服务程序
ORG 0013H ;外中止1中止进口
RETI ;中止回来
ORG 001BH ;守时器T1中止程序进口
RETI ;中止回来
ORG 0023H ;串口中止进口地址
RETI
ORG 100H
;开机初始化
KS: ACALL CLEAR1 ;设定初值
MOV PSW,#00H ;设程序状况字寄存器为00
MOV SCON,#00H ;设串行口操控寄存器为00
CLR LED1 ;指示灯提示通电
ACALL YS2 ;延时
SETB LED1 ;关指示灯
;—————————————————————-
;开机检测
ACALL ADAD
SUBB A,#DYBJ ;与预订值比较
ACALL CLEAR1 ;从头设定初值
JNC KS2 ;电压低报警,正常才干开防盗器
MOV A,#20 ;低压则接连报警20次
KS1: ACALL DYFS ;电压低发射010报警信号
CLR LED1 ;红灯亮
ACALL YS2 ;延时
SETB LED1 ;红灯灭
ACALL YS2 ;延时
DEC A
JNZ KS1
CLR LED1 ;红灯闪20次后常亮
ORL PCON,#2 ;进入掉电形式,只要复位才干发动
NOP
NOP
NOP
AJMP KS ;软件圈套
;————————————————–
;电源电压检测(AD转化)后进入待机状况
;————————————————–
KS2: CLR IT0 ;外部中止低电平触发
SETB EA ;开总中止答应
SETB EX0 ;开外部中止0
KS3: ORL PCON,#01H ;进入待机,只要外中止或复位才干发动
NOP ;退出中止后设置软件圈套
NOP
NOP
CJNE A,#KJBM,KS2 ;有必要是开机信号,信号不对回来持续进入待机
;————————————————–
;开端进入防盗状况
;————————————————–
KS0: SETB CGDY ;翻开振荡和微波勘探头电源
CLR A ;A清零
CLR LED1 ;进入报警监测状况,指示灯亮
SETB SPK1 ;报警器响一下,进入防盗状况
ACALL YS3 ;延时
CLR SPK1 ;关报警器
ACALL KJFS ;发射011回应主机,表明收到并进入防盗状况
SETB LED1 ;指示灯灭
ACALL YS2
;————————————————–
;
;————————————————–
MOV TMOD,#00010001B;设守时器T1为计数器方法(方法1)
MOV TH0,#3CH ;设T1为100mS
MOV TL0,#0B0H
SETB ET0 ;答应守时器T1中止
SETB TR0 ;发动计数器T1
MOV 30H,#00H ;100ms时刻计数器清零
MOV R0,#00H ;10s时刻到标志位清零
MOV 34H,#00H
MOV 33H,#0FH
MOV 35H,#00H
MOV R1,#0FH
;————————————————–
;正式进入防盗状况
;————————————————–
KS4: JNB CGQ1,KS5 ;检测振荡传感器是否输出(有盗情)
ACALL YS1
JNB CGQ1,KS5
CLR TR0 ;关守时中止
INC 35H
MOV A,35H
CJNE A,#10,S2
DEC 35H
SETB SPK1 ;报警器响一下
ACALL YS2 ;延时
CLR SPK1 ;关报警器
SJMP KS5
S2: ACALL ZDFS ;检测到振荡传感器有输出,发射110报警信号
ACALL YS2 ;延时
SETB TR0 ;开守时中止答应
KS5: JB CGQ2,KS6 ;检测微波传感器是否输出(有盗情)
;ACALL YS1
;JB CGQ2,KS6
CLR TR0 ;关守时中止
DJNZ R1,S1
INC R1
SETB SPK1 ;报警器响一下,进入防盗状况
ACALL YS2 ;延时
CLR SPK1 ;关报警器
SJMP KS6
S1: ACALL WBFS ;检测到微波传感器有输出,发射101报警信号
ACALL YS2 ;延时
SETB TR0 ;开守时中止答应
KS6: CJNE R0,#01H,KS7 ;10S检测一次电源电压
CLR TR0 ;关守时中止
ACALL ADAD ;调用电源电压检测程序
ACALL CLEAR2 ;从头设定初值
SUBB A,#DYBJ ;与预订值比较
CLR A ;A清零
MOV R0,#00H ;10s时刻到标志位清零
SETB TR0 ;开守时中止答应
JNC KS7 ;电压低报警
CLR TR0 ;关守时中止
ACALL DYFS ;电压低发射010报警信号
SETB TR0 ;开守时中止答应
DJNZ 33H,KS7
CLR LED1
CLR TR0 ;关守时中止
AJMP KS2
KS7: MOV A,P3 ;收到子机的反应信号则判别是否正确
ANL A,#JSBM ;屏蔽P3.7、P3.6、P3.1、P3.0
CJNE A,#GJBM,KS8 ;检测是否收到主机的关机信号
CLR ET0 ;无信号则关守时器T1中止
CLR CGDY ;关传感器电源
CLR LED1 ;进入报警监测状况,指示灯亮
SETB SPK1 ;报警器响一下,进入防盗状况
ACALL YS2 ;延时
CLR SPK1 ;关报警器
ACALL YS3 ;延时
SETB SPK1 ;报警器响一下,进入防盗状况
ACALL YS3 ;延时
CLR SPK1 ;关报警器
ACALL GJFS ;调用关机发射程序
SETB LED1 ;进入报警监测状况,指示灯亮
JNB JSVT,$ ;等候主机中止发射
AJMP KS2 ;回来进入待机状况
KS8: CJNE A,#KJBM,S3
JNB JSVT,$ ;等候主机中止发射
AJMP KS0 ;回来进入待机状况
S3: CJNE A,#DYBM,S4
SETB SPK1 ;报警器响一下,进入防盗状况
ACALL YS3 ;延时
CLR SPK1 ;关报警器
MOV R1,#01H
S4: AJMP KS4
;****************************************************************
;—————————————————————-
;以下为子程序
;—————————————————————-
;—————————————————————-
;以下为开机发射程序
;—————————————————————-
;主机开机子机发射编码011给主机以联通
KJFS: CLR LED1 ;指示灯亮
CLR FSBB ;B端为0
SETB FSCC ;C端为1
SETB FSDD ;D端为1
CLR FSKZ ;答应发射
ACALL TZFS ;调用中止发射程序
RET ;回来
;—————————————————————-
;以下为振荡输出(有盗情)的发射程序
;—————————————————————-
;振荡输出(有盗情)发射编码110给主机进行报警
ZDFS: CLR LED1 ;指示灯亮
SETB FSBB ;B端为1
SETB FSCC ;C端为1
CLR FSDD ;D端为0
CLR FSKZ ;答应发射
ACALL TZFS ;调用中止发射程序
RET ;回来
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/fenxiao/255871.html