📄 784.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 + -