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

📄 784.asm

📁 AT89S52单片机的一个2输入4输出跳转程序根据输入的不同做出不同的超做。
💻 ASM
字号:
;=================================================================================
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;/////////////////////////////////////////////////////////////////////////////////
;//		ACT;	根据P1口输入的2路信号的变化输出4路控制信号		//
;//			INPUT 00,OUTPUT +0V	(空载)				//
;//			INPUT 01,OUTPUT +2.5V	(轻载)				//
;//			INPUT 10,OUTPUT +5V	(满载)				//
;//			INPUT 11,OUTPUT +10V	(重载)				//
;//		NAME;	FIRE BIRD						//
;//		TIME;	2008/02/18						//
;/////////////////////////////////////////////////////////////////////////////////
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;=================================================================================
;
;=================================================================================
;/////////////////////////////////////////////////////////////////////////////////
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;=================================================================================
; USERDEFINED
; DEFINED P1 FOR INTPUT 
INPUT		EQU	P1
; USERDEFINED BIT FOR OUTPUT
ONOFF		BIT	P0.0
UP5V		BIT	P0.1
DOWN5V		BIT	P0.2
UP25V		BIT	P0.3
DOWN25V		BIT	P0.4
; USERDEFINED
KONG		DATA	00H
QING		DATA	01H
MAN		DATA	02H
ZHONG		DATA	03H
;=================================================================================
;/////////////////////////////////////////////////////////////////////////////////
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;=================================================================================
; ENTRY ADDRESS
		ORG	0000H
		AJMP	MAIN		; MAIN FUNCTION ENTRY ADDRESS
		ORG	000BH
		LJMP	DOG		; T0 INTERRUPT_ISR ENTRY ADDRESS
		ORG	0030H
;=================================================================================
MAIN:		MOV	SP,#60H
;		MOV	TMOD,#01H
;		SETB	ET0		; ENABLE T0 INTERRUPT
;		SETB	PT0		; ENABLE T0 INTERRUPT TO HIGHEST
;		MOV	TH0,#0FFH
;		MOV	TL0,#0FFH
;		SETB	TR0		; ENABLE T0
;		SETB	EA		; CPU INTERRUPT ON
		MOV	INPUT,#0FFH
		LCALL	CLROUT
;

;=================================================================================
; DO LOOP (WAITING LOAD)
KONGZAI:	MOV	A,INPUT
		ANL	A,#03H
		CJNE	A,#KONG,QINGZAI
		SJMP	KONGZAI	
;
;=================================================================================
; LOAD QINGZAI
QINGZAI:	CJNE	A,#QING,MANZAI
QINGZAI1:	MOV	A,INPUT
		ANL	A,#03H
		CJNE	A,#QING,UNLOADQINGZAI
		SJMP	QINGZAI1

; UNLOAD QINGZAI(RETURN 0)
UNLOADQINGZAI:	LCALL	UNLOADQING
		SJMP	MANZAI
;
;=================================================================================
; LOAD MANZAI
MANZAI:		CJNE	A,#MAN,ZHONGZAI
MANZAI1:	MOV	A,INPUT
		ANL	A,#03H
		CJNE	A,#MAN,UNLOADMANZAI
		SJMP	MANZAI1

; UNLOAD MANZAI(RETURN 0)
UNLOADMANZAI:	LCALL	UNLOADMAN
		SJMP	ZHONGZAI
;
;=================================================================================
; LOAD ZHONGZAI
ZHONGZAI:	CJNE	A,#ZHONG,KONGZAI
ZHONGZAI1:	MOV	A,INPUT
		ANL	A,#03H
		CJNE	A,#ZHONG,UNLOADZHONGZAI
		SJMP	ZHONGZAI1

; UNLOAD ZHONGZAI(RETURN 0)
UNLOADZHONGZAI:	LCALL	UNLOADZHONG
		SJMP	KONGZAI
;
;=================================================================================
;/////////////////////////////////////////////////////////////////////////////////
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;=================================================================================
; LOAD QINGZAI
LOADQING:	;LCALL	CLROUT
		SETB	UP25V
		LCALL	DELAY
		CLR	UP25V
		LCALL	DELAY
		RET
;
;=================================================================================
; LOAD MANZAI
LOADMAN:	;LCALL	CLROUT
		SETB	UP5V
		LCALL	DELAY
		CLR	UP5V
		LCALL	DELAY
		RET
;
;=================================================================================
; LOAD ZHONGZAI
LOADZHONG:	LCALL	LOADMAN
		LCALL	LOADMAN
		RET
;
;=================================================================================
;/////////////////////////////////////////////////////////////////////////////////
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;=================================================================================
; UNLOAD QINGZAI
UNLOADQING:	;LCALL	CLROUT
		SETB	DOWN25V
		LCALL	DELAY
		CLR	DOWN25V
		LCALL	DELAY
		RET
;
;=================================================================================
; UNLOAD MANZAI
UNLOADMAN:	;LCALL	CLROUT
		SETB	DOWN5V
		LCALL	DELAY
		CLR	DOWN5V
		LCALL	DELAY
		RET
;
;=================================================================================
; UNLOAD ZHONGZAI
UNLOADZHONG:	LCALL	UNLOADMAN
		LCALL	UNLOADMAN
		RET
;
;=================================================================================
;/////////////////////////////////////////////////////////////////////////////////
;=================================================================================
; 喂狗程序
WATCHDOG:	MOV	TH0,#0FFH
		MOV	TL0,#0FFH
		SETB	TR0
		RET

; 空弹断点地址
DOG:		POP	ACC
		POP	ACC
		CLR	A
		PUSH	ACC		;将返回地址换成 0000H,以便实现软件复位
		PUSH	ACC
		RETI
;
;=================================================================================
;CLEAR OUT
CLROUT:		MOV	P0,#00H
		;SETB	ONOFF
		RET
;
;=================================================================================
;延时50MS
DELAY:		MOV	R1,#0EAH
;		LCALL	WATCHDOG
DELAY1:		MOV	R0,#6AH
LOOP:		DJNZ	R0,LOOP
		DJNZ	R1,DELAY1
		RET
;
;=================================================================================
;/////////////////////////////////////////////////////////////////////////////////
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;=================================================================================
		END
;=================================================================================
;/////////////////////////////////////////////////////////////////////////////////
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;//		NO MOR								//
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;/////////////////////////////////////////////////////////////////////////////////
;=================================================================================

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -