📄 mei.asm
字号:
;********************************
;* 文件: mei.asm
;* 开发: xieweizhi
;* 日期: 2007.06
;* 功能: 实现联动门功能
;********************************
;$nomod51
;$include<reg51.inc>
;**********位定义****************
SIG_LOCK1 EQU P1.0 ;门1开锁信号,高电平开,低电平关
SIG_PASS1 EQU P1.1 ;门1密码信号,密码有效为高
LOCK1 EQU P1.2 ;门1开关信号,关上为低,打开为高
SIG_LOCK2 EQU P1.3
SIG_PASS2 EQU P1.4
LOCK2 EQU P1.5
SIG_LOCK3 EQU P0.0
SIG_PASS3 EQU P0.1
LOCK3 EQU P0.2
SIG_LOCK4 EQU P0.3
SIG_PASS4 EQU P0.4
LOCK4 EQU P0.5 ;以上与门1类同
S1 EQU P3.6
S2 EQU P3.5
S3 EQU P3.4
S4 EQU P3.3
S5 EQU P3.2
S6 EQU P3.1
S7 EQU P3.0
S8 EQU P1.7
S9 EQU P1.6
AudioLL EQU P0.6
AudioRR EQU P0.7
S12 EQU P2.3
S13 EQU P2.2
S14 EQU P2.1
S15 EQU P2.0
powerCON EQU P3.7
KEY1 EQU P2.7 ;紧急全锁按钮
KEY2 EQU P2.6 ;紧急全开按钮
KEY3 EQU P2.5 ;单门开启按钮
KEY4 EQU P2.4 ;
;********************************
ORG 0000H
AJMP MAIN
ORG 0100H
;***********主程序开始***********
MAIN: MOV SP,#60H
MOV P1,00H ;置P1初始信号
MOV P0,00H ;置P0初始信号
MOV P2,0FH ;置P2初始信号
MOV R0,#0 ;标置位
LCALL DELAY_11
START: MOV A,R0
JNZ ALL_CLOSE ;进入全锁
JB SIG_PASS1, DOOR1B ;开1B门
JB SIG_PASS2, DOOR1A ;开1A门
JB SIG_PASS3, DOOR2A ;开2A门
JB SIG_PASS4, DOOR2B ;开2B门
JB KEY1, ALL_CLOSE ;进入全锁
JB KEY2, ALL_OPEN ;进入全开
AJMP MAIN
;********开1B门程序************
DOOR1B:
JNB SIG_PASS1,DOOR1B
CLR SIG_PASS1
SETB SIG_LOCK1 ;开门
LCALL DELAY_11
CLR SIG_LOCK1
LCALL DELAY_11
CLR SIG_LOCK1 ;关门
JB SIG_PASS1,DOOR1B
RET
;********开1A门程序************
DOOR1A:
JNB SIG_PASS2,DOOR1A
CLR SIG_PASS2
SETB SIG_LOCK2 ;开门
LCALL DELAY_11
CLR SIG_LOCK2
LCALL DELAY_11
CLR SIG_LOCK2
JB SIG_PASS2,DOOR1B
RET
;********开2A门程序************
DOOR2A:
JNB SIG_PASS3,DOOR2A
CLR SIG_PASS3
SETB SIG_LOCK3 ;开门
LCALL DELAY_11
CLR SIG_LOCK3
LCALL DELAY_11
CLR SIG_LOCK3
JB SIG_PASS3,DOOR1B
RET
;********开2B门程序************
DOOR2B:
JNB SIG_PASS4,DOOR2B
CLR SIG_PASS4
SETB SIG_LOCK4 ;开门
LCALL DELAY_11
CLR SIG_LOCK4
LCALL DELAY_11
CLR SIG_LOCK4
JB SIG_PASS4,DOOR1B
RET
;************全锁************
ALL_CLOSE:
JNB KEY1,ALL_CLOSE
CLR SIG_LOCK1
CLR SIG_LOCK2
CLR SIG_LOCK3
CLR SIG_LOCK4
MOV R0,#1
LCALL DELAY_11
LCALL ALL_OPEN
;************全开************
ALL_OPEN:
JNB KEY2,ALL_OPEN
SETB SIG_LOCK1
SETB SIG_LOCK1
SETB SIG_LOCK1
SETB SIG_LOCK1
LCALL DELAY_11
CLR SIG_LOCK1
CLR SIG_LOCK2
CLR SIG_LOCK3
CLR SIG_LOCK4
MOV R0,#0
AJMP START
;************延时程序********
DELAY_11:
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -