⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mei.asm

📁 联动门的控制程序 其中,全开和全锁为紧急开关! 单开则只能打开一个门且具有互锁功能
💻 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 + -