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

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

时间:11-28 来源:互联网 点击:

ACALL DYJC1 ;检测电源电压

LOP1: POP PSW ;PSW出栈

POP ACC ;ACC出栈

SETB TR0 ;开计数器T1

RETI ;中断返回

;----------------------------------------------------------------

;以下电源电压检测程序

;----------------------------------------------------------------

DYJC1:JB DYJC,LOP3 ;检测电源电压

CLR LED1 ;发光管亮

ACALL DIDI ;是则2声DI报警

ACALL DIDI

DJNZ R0,LOP3 ;报警超过5次,连续报警多次后关机并进入掉电模式

MOV A,#20 ;低压则连续报警20次

LOP2: ACALL DIDI

ACALL YS2

DEC A

JNZ LOP2

SETB LED1 ;发光管灭

ORL PCON,#2 ;进入掉电模式,只有复位才能启动

NOP

NOP

NOP

AJMP KS1 ;软件陷阱

LOP3: RET

NOP

NOP

NOP

AJMP KS1 ;软件陷阱

;----------------------------------------------------------------

;以下为报警子程序

;----------------------------------------------------------------

;DI声报警子程序

DIDI: MOV 20H,#0F0H ;DI声提示音

L111: SETB SPK1 ;开喇叭

ACALL L222 ;延时时间比INT1长

CLR SPK1 ;关喇叭

ACALL L222 ;

DJNZ 20H,L111 ;不为零转

RET

L222: MOV R2,#08H ;

S00EB:PUSH 02H ;R2(复位后R2即为02H)存放时间常数,进栈保护

L00ED:PUSH 02H ;R2进栈保护

L00EF:PUSH 02H ;进栈

L00F1:DJNZ R2,$ ;R2不为零等待

POP 02H ;出栈

DJNZ R2,L00EF ;R2不为零转

POP 02H ;出栈

DJNZ R2,L00ED ;R2不为零转

POP 02H ;出栈

DJNZ R2,S00EB ;R2不为零转

RET ;子程序返回

;----------------------------------------------------------------

;以下为延时子程序

;----------------------------------------------------------------

;延时子程序

YS1: MOV R6,#0FFH

Y11: MOV R7,#0FFH

Y12: NOP

NOP

NOP

DJNZ R7,Y12

DJNZ R6,Y11

RET

;----------------------------------------------------------------

YS2: MOV R5,#08H ;中长时间延时

Y20: MOV R6,#0FFH

Y21: MOV R7,#0FFH

Y22: NOP

NOP

NOP

DJNZ R7,Y22

DJNZ R6,Y21

DJNZ R5,Y20

RET

;----------------------------------------------------------------

YS3: MOV R5,#50 ;长长时间延时

Y30: MOV R6,#0FFH

Y31: MOV R7,#0FFH

Y32: NOP

NOP

NOP

DJNZ R7,Y32

DJNZ R6,Y31

DJNZ R5,Y30

RET

ORG 0300H

NOP

NOP

NOP

LJMP KS1 ;软件陷阱

END

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

网站地图

Top