您的位置 首页 硬件

51单片机的315M发射头发送汇编程序

;防盗器主机程序FSDDEQUP17;发射控制D端,高电平控制有效FSCCEQUP16;发射控制C端,高电平控制有效FSBBEQUP15;发射控

;防盗器主机程序

FSDD EQU P1.7 ;发射操控D端,高电平操控有用
FSCC EQU P1.6 ;发射操控C端,高电平操控有用
FSBB EQU P1.5 ;发射操控B端,高电平操控有用
BJQ1 EQU P1.1 ;报警器,低电平报警
SPK1 EQU P1.0 ;喇叭,驱动方法为脉冲信号
LED1 EQU P3.0 ;指示灯
JSVT EQU P3.2 ;接纳头VT端
JSDD EQU P3.3 ;接纳头D输出端,有用高电平输出
JSCC EQU P3.4 ;接纳头C输出端,有用高电平输出
JSBB EQU P3.5 ;接纳头B输出端,有用高电平输出
DYJC EQU P3.7 ;主机电源电压检测端,电源电压低于9V报警提示
P1MO EQU 91H
P1M1 EQU 92H
P1MA EQU 00000000B;界说P1口状况
P1MB EQU 11100011B;设P1.7、P1.6、P1.5、P1.1、P1.0口为推挽输出
JSBM EQU 00111100B;设置接纳端口状况,屏蔽P3.7、P3.6、P3.1、P3.0
KJBM EQU 00011000B;设定开机编码为011(即接纳头B为0、C为1、D为1)
ZDBM EQU 00110000B;设定振荡勘探报警编码为110
WBBM EQU 00101000B;设定微波勘探报警编码为101
DYBM EQU 00010000B;设定子机电源低压报警编码为010
LLBM EQU 00001000B;设定3分钟联络子机一次编号为001
ORG 0000H ;程序履行开端地址
LJMP KS1 ;跳至KS1
ORG 0003H ;外中止0中止程序进口
RETI ;中止回来
ORG 000BH ;定时器T0中止程序进口
LJMP INTT0 ;中止回来
ORG 0013H ;外中止1中止进口
RETI ;中止回来
ORG 001BH ;定时器T1中止程序进口
RETI ;跳至INTT1中止服务程序
ORG 0023H ;串口中止进口地址
RETI
ORG 0100H
;开机初始化
KS1: MOV P1MO,#P1MA ;界说P1口状况
MOV P1M1,#P1MB ;设P1口部分为推挽输出
CLR SPK1 ;关喇叭
CLR BJQ1 ;关报警器
CLR FSDD ;发射电路不发射(D端为0)
CLR FSCC ;发射电路不发射(C端为0)
CLR FSBB ;发射电路不发射(B端为0)
MOV SP,#50H ;设推栈初值
MOV R0,#05H ;设低压报警次数初值
MOV PSW,#00H ;设程序状况字寄存器为00
MOV SCON,#00H ;设串行口操控寄存器为00
CLR LED1 ;指示灯提示通电
ACALL DIDI ;DI声提示通电
SETB LED1 ;关指示灯
ACALL DYJC1 ;电压检测
;—————————————————————-
KS2: JB JSVT,$ ;检测是否接纳到信号
ACALL YS1
JB JSVT,KS2
MOV A,P3 ;收到子机的反应信号则判别是否正确
ANL A,#JSBM ;屏蔽P3.7、P3.6、P3.1、P3.0
CJNE A,#KJBM,KS2 ;查看是否是开机信号
KS3: CLR LED1 ;发光管点亮指示
SETB BJQ1 ;开报警声提示
ACALL YS2 ;延时
CLR BJQ1 ;关报警声
SETB LED1 ;发光管灭
JNB JSVT,$ ;等候发射信号中止发射
MOV TMOD,#00010001B;设定时器T1为计数器方法(方法1)
MOV TH0,#3CH ;设T1为100mS
MOV TL0,#0B0H
SETB EA ;开总中止答应
SETB ET0 ;答应定时器T1中止
SETB TR0 ;发动计数器T1
MOV R1,#00H ;100ms时刻计数器清零
MOV R3,#0AH
L0: JB JSVT,$ ;检测是否接纳到信号
ACALL YS1
JB JSVT,L0
MOV A,P3 ;收到子机的反应信号则判别是否正确
ANL A,#JSBM ;屏蔽P3.7、P3.6、P3.1、P3.0
CJNE A,#KJBM,L1 ;查看是否是开机信号
CLR EA ;关总中止
SJMP KS3 ;重新开端
L1: CJNE A,#ZDBM,L2 ;检测收到的信号是否是振荡勘探报警信号
CLR TR0 ;关计数器T1
CLR LED1 ;是报警信号则发光管亮
SETB BJQ1 ;开报警声
;ACALL YS3 ;延时
;CLR BJQ1 ;关报警声
;SETB LED1 ;发光管灭
SETB TR0 ;发动计数器T1
SJMP L0 ;回来持续检测
L2: CJNE A,#WBBM,L3 ;检测收到的信号是否是微波勘探报警信号
CLR TR0 ;关计数器T1
SETB BJQ1 ;开报警声
ACALL YS3 ;延时
CLR BJQ1 ;关报警声
SETB TR0 ;发动计数器T1
SJMP L0 ;回来持续检测
L3: CJNE A,#DYBM,L4 ;检测收到的信号是否是子机低压报警信号
CLR TR0 ;关计数器T1
CLR LED1 ;发光管亮
ACALL DIDI ;是则3声DI报警
ACALL DIDI
ACALL DIDI
ACALL DIDI
ACALL DIDI
ACALL DIDI
DJNZ R3,L5
L6: ACALL DIDI
ACALL YS2
SJMP L6 ;回来持续检测
L5: SETB TR0 ;发动计数器T1
SJMP L0 ;回来持续检测
L4: CJNE A,#LLBM,L0 ;检测收到的信号是否是关机信号
CLR TR0 ;关计数器T1
ACALL DIDI ;是则3声DI报警
ACALL DIDI
ACALL DIDI
ACALL DIDI
JNB JSVT,$ ;等候发射信号中止发射
CLR BJQ1 ;关报警声
AJMP KS2 ;回来持续检测

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/yingjian/255870.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部