微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51单片机的315M接收头接收汇编程序(从机)

51单片机的315M接收头接收汇编程序(从机)

时间:11-28 来源:互联网 点击:
;防盗器子机程序

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 ;报警器响一下

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top