📄 开短路检测控制箱.asm
字号:
;一出一入法
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;项目: 开短路检测控制箱开发 时间: 2006年5月22日
;设计部门:金宝 自动化课 设计人员:王家春
;*******************************************************
;寄存器说明:
;50H→8255选择 51H→PAPBPC选择 52H→属性地址
;53H→属性值 54H→扫描初值 55H~56h~57H→输出三个端口
;58~59h~5A→另一端数据接收判断 5BH→OK NG 判断
;---定义------------------------------------------------
LED_OK EQU P3.0
LED_NG EQU P3.1
K_XYB EQU P3.2
P_IN EQU 9BH
P_OUT EQU 80H
PA_OUT EQU 8BH
PB_OUT EQU 99H
PC_OUT EQU 92H
;---------------------------------
CS1_PA EQU 8000H
CS1_PB EQU 8001H
CS1_PC EQU 8002H
CS1_SX EQU 8003H
CS2_PA EQU 8004H
CS2_PB EQU 8005H
CS2_PC EQU 8006H
CS2_SX EQU 8007H
CS3_PA EQU 8008H
CS3_PB EQU 8009H
CS3_PC EQU 800AH
CS3_SX EQU 800BH
CS4_PA EQU 800CH
CS4_PB EQU 800DH
CS4_PC EQU 800EH
CS4_SX EQU 800FH
CS5_PA EQU 8010H
CS5_PB EQU 8011H
CS5_PC EQU 8012H
CS5_SX EQU 8013H
CS6_PA EQU 8014H
CS6_PB EQU 8015H
CS6_PC EQU 8016H
CS6_SX EQU 8017H
CS7_PA EQU 8018H
CS7_PB EQU 8019H
CS7_PC EQU 801AH
CS7_SX EQU 801BH
CS8_PA EQU 801CH
CS8_PB EQU 801DH
CS8_PC EQU 801EH
CS8_SX EQU 801FH
;---------------------------------
; 开始
;********************************************************
ORG 0000H
AJMP MAIN_CCH
ORG 0003H
RETI
ORG 000BH
RETI
ORG 0013H
RETI
ORG 001BH
RETI
ORG 0023H
RETI
ORG 0030H
MAIN_CCH:
NOP
NOP
LCALL DELAY_100U
MOV SP,#70H
MOV P0,#0FFH
MOV P1,#0FFH
MOV P2,#0FFH
MOV P3,#0FFH
MOV R4,#64
MOV R0,#2FH
CCH_00: INC R0
MOV A,#00H
MOV @R0,A
DJNZ R4,CCH_00
;30H~~6FH,寄存器清零
;----------------------------------
;-------------------------------------------------------------
; 主程序开始 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;-------------------------------------------------------------
NOP
NOP
XYB_00:JB K_XYB,$
LCALL DELAY_30M
JB K_XYB,XYB_00
XYB_01:JNB K_XYB,$
LCALL DELAY_30M
JNB K_XYB,XYB_01
;----------------------------------
DL_KL_LP:
NOP
NOP
LCALL DL_KL
;----------------------------------
AJMP DL_KL_LP
;--------------------------------------------------------------
; 主程序结束
;**************************************************************
;--------------------------------------------------------------
; 开路短路测试子程序 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;--------------------------------------------------------------
DL_KL:
MOV 50H,#00H
MOV 51H,#00H
CDL_LP:
MOV A,50H
CJNE A,#04H,CS_INC
MOV 50H,#00H
AJMP CS_LED_OK
CS_INC:MOV A,50H
INC A
MOV 50H,A
;--------------------------选择8255
PAPBPC:
MOV A,51H
CJNE A,#03H,P_INC
MOV 51H,#00H
AJMP CDL_LP
P_INC:MOV A,51H
INC A
MOV 51H,A
;--------------------------PAPBPC口选择
;------------------------------------------------------------------
LCALL DL_XZ_Z ;调用选择值@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;------------------------------------------------------------------
SX_LOOP: ;设定属性
MOV DPH,#80H
MOV DPL,52H
MOV A,53H
MOVX @DPTR,A
;---------------------------------------
MOV 54H,#0FEH
SC_LOOP: ;输出
MOV DPH,#80H
MOV DPL,55H
MOV A,#0FFH
MOVX @DPTR,A
MOV DPH,#80H
MOV DPL,56H
MOV A,#0FFH
MOVX @DPTR,A
MOV DPH,#80H
MOV DPL,57H
MOV A,54H
MOVX @DPTR,A
;-------------------------------------------------------------------
LCALL DELAY_30M ;延时 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;-------------------------------------------------------------------
MOV DPH,#80H
MOV DPL,5CH
MOV A,#P_IN
MOVX @DPTR,A
MOV DPH,#80H
MOV DPL,58H
MOVX A,@DPTR
CJNE A,#0FFH,CS_LED_NG
MOV DPH,#80H
MOV DPL,59H
MOVX A,@DPTR
CJNE A,#0FFH,CS_LED_NG
MOV DPH,#80H
MOV DPL,5AH
MOVX A,@DPTR
CJNE A,54H,CS_LED_NG
;------------------------------------------------------------------
MOV 5BH,#00H
LCALL IO_SM ;其它IO口扫描检测 @@@@@@@@@@@@@@@@@@@@@@
MOV A,5BH
CJNE A,#00H,CS_LED_NG
;------------------------------------------------------------------
MOV A,54H
CJNE A,#0EFH,CZ_ZY
AJMP PAPBPC
CZ_ZY: MOV A,54H
RL A
MOV 54H,A
AJMP SC_LOOP
CS_LED_NG:
SETB LED_OK
CLR LED_NG
AJMP TC_DL_KL
CS_LED_OK:
SETB LED_NG
CLR LED_OK
TC_DL_KL:
NOP
NOP
RET
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;开路短路测试结束
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;------------------------------------------------------------------
; 其它8255口测试子程序 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;------------------------------------------------------------------
IO_SM_NG_Z:
AJMP IO_SM_NG
IO_SM:
MOV A,50H
CJNE A,#01H,SM_CS11
AJMP SM_CS02
SM_CS11:
MOV DPH,#80H
MOV DPL,#CS5_SX
MOV A,#P_IN
MOVX @DPTR,A
MOV DPH,#80H
MOV DPL,#CS5_PA
MOVX A,@DPTR
CJNE A,#0FFH,IO_SM_NG_Z
MOV DPH,#80H
MOV DPL,#CS5_PB
MOVX A,@DPTR
CJNE A,#0FFH,IO_SM_NG_Z
MOV DPH,#80H
MOV DPL,#CS5_PC
MOVX A,@DPTR
CJNE A,#0FFH,IO_SM_NG_Z
;-------------------------------------------
SM_CS02:MOV A,50H
CJNE A,#02H,SM_CS12
AJMP SM_CS03
SM_CS12:
MOV DPH,#80H
MOV DPL,#CS6_SX
MOV A,#P_IN
MOVX @DPTR,A
;----------------------------
MOV DPH,#80H
MOV DPL,#CS6_PA
MOVX A,@DPTR
CJNE A,#0FFH,IO_SM_NG
MOV DPH,#80H
MOV DPL,#CS6_PB
MOVX A,@DPTR
CJNE A,#0FFH,IO_SM_NG
MOV DPH,#80H
MOV DPL,#CS6_PC
MOVX A,@DPTR
CJNE A,#0FFH,IO_SM_NG
;-------------------------------------------
SM_CS03:
MOV A,50H
CJNE A,#03H,SM_CS13
AJMP SM_CS04
SM_CS13:
MOV DPH,#80H
MOV DPL,#CS7_SX
MOV A,#P_IN
MOVX @DPTR,A
;----------------------------
MOV DPH,#80H
MOV DPL,#CS7_PA
MOVX A,@DPTR
CJNE A,#0FFH,IO_SM_NG
MOV DPH,#80H
MOV DPL,#CS7_PB
MOVX A,@DPTR
CJNE A,#0FFH,IO_SM_NG
MOV DPH,#80H
MOV DPL,#CS7_PC
MOVX A,@DPTR
CJNE A,#0FFH,IO_SM_NG
;-------------------------------------------
SM_CS04:
MOV A,50H
CJNE A,#03H,SM_CS14
AJMP T_SM_CS
SM_CS14:
MOV DPH,#80H
MOV DPL,#CS8_SX
MOV A,#P_IN
MOVX @DPTR,A
;----------------------------
MOV DPH,#80H
MOV DPL,#CS8_PA
MOVX A,@DPTR
CJNE A,#0FFH,IO_SM_NG
MOV DPH,#80H
MOV DPL,#CS8_PB
MOVX A,@DPTR
CJNE A,#0FFH,IO_SM_NG
MOV DPH,#80H
MOV DPL,#CS8_PC
MOVX A,@DPTR
CJNE A,#0FFH,IO_SM_NG
;--------------------------------------------
T_SM_CS:NOP
NOP
RET
IO_SM_NG:
MOV 5BH,#0FFH
AJMP T_SM_CS
;------------------------------------------------------------------
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;------------------------------------------------------------------
; 延时子程序 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;------------------------------------------------------------------
DELAY_30M:
NOP
NOP
MOV R6,#60
NOP
NOP
D1:MOV R7,#250
NOP
NOP
DJNZ R7,$
NOP
NOP
DJNZ R6,D1
NOP
NOP
RET
DELAY_100U:
NOP
NOP
MOV R5,#50
NOP
NOP
DJNZ R5,$
NOP
NOP
RET
;------------------------------------------------------------------
; 地址和数据选择 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;------------------------------------------------------------------
DL_XZ_Z:
MOV A,51H
PABC_A: CJNE A,#01H,PABC_B
MOV A,50H
CJNE A,#01H,PA_CS01
LJMP PA_CS11
PA_CS01:CJNE A,#02H,PA_CS02
LJMP PA_CS12
PA_CS02:CJNE A,#03H,PA_CS03
LJMP PA_CS13
PA_CS03:CJNE A,#04H,PABC_A
LJMP PA_CS14
;-----------------------------
PABC_B: CJNE A,#02H,PABC_C
MOV A,50H
CJNE A,#01H,PB_CS01
LJMP PB_CS11
PB_CS01:CJNE A,#02H,PB_CS02
LJMP PB_CS12
PB_CS02:CJNE A,#03H,PB_CS03
LJMP PB_CS13
PB_CS03:CJNE A,#04H,PABC_B
LJMP PB_CS14
;-----------------------------
PABC_C: CJNE A,#03H,TC_XZ_Z
MOV A,50H
CJNE A,#01H,PC_CS01
LJMP PC_CS11
PC_CS01:CJNE A,#02H,PC_CS02
LJMP PC_CS12
PC_CS02:CJNE A,#03H,PC_CS03
LJMP PC_CS13
PC_CS03:CJNE A,#04H,PABC_C
AJMP PC_CS14
TC_XZ_Z:
NOP
NOP
RET
;--------------------------------------------------------------------
; 扫描端口表 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;--------------------------------------------------------------------
;PA
PA_CS11:
MOV 52H,#CS1_SX
MOV 53H,#PA_OUT
MOV 55H,#CS1_PC
MOV 56H,#CS1_PB
MOV 57H,#CS1_PA
MOV 5CH,#CS5_SX
MOV 58H,#CS5_PC
MOV 59H,#CS5_PB
MOV 5AH,#CS5_PA
LJMP TC_XZ_Z
PA_CS12:
MOV 52H,#CS2_SX
MOV 53H,#PA_OUT
MOV 55H,#CS2_PC
MOV 56H,#CS2_PB
MOV 57H,#CS2_PA
MOV 5CH,#CS6_SX
MOV 58H,#CS6_PC
MOV 59H,#CS6_PB
MOV 5AH,#CS6_PA
LJMP TC_XZ_Z
PA_CS13:
MOV 52H,#CS3_SX
MOV 53H,#PA_OUT
MOV 55H,#CS3_PC
MOV 56H,#CS3_PB
MOV 57H,#CS3_PA
MOV 5CH,#CS7_SX
MOV 58H,#CS7_PC
MOV 59H,#CS7_PB
MOV 5AH,#CS7_PA
LJMP TC_XZ_Z
PA_CS14:
MOV 52H,#CS4_SX
MOV 53H,#PA_OUT
MOV 55H,#CS4_PC
MOV 56H,#CS4_PB
MOV 57H,#CS4_PA
MOV 5CH,#CS8_SX
MOV 58H,#CS8_PC
MOV 59H,#CS8_PB
MOV 5AH,#CS8_PA
LJMP TC_XZ_Z
;*****************************************
;PB
PB_CS11:
MOV 52H,#CS1_SX
MOV 53H,#PB_OUT
MOV 55H,#CS1_PA
MOV 56H,#CS1_PC
MOV 57H,#CS1_PB
MOV 5CH,#CS5_SX
MOV 58H,#CS5_PA
MOV 59H,#CS5_PC
MOV 5AH,#CS5_PB
LJMP TC_XZ_Z
PB_CS12:
MOV 52H,#CS2_SX
MOV 53H,#PB_OUT
MOV 55H,#CS2_PA
MOV 56H,#CS2_PC
MOV 57H,#CS2_PB
MOV 5CH,#CS6_SX
MOV 58H,#CS6_PA
MOV 59H,#CS6_PC
MOV 5AH,#CS6_PB
LJMP TC_XZ_Z
PB_CS13:
MOV 52H,#CS3_SX
MOV 53H,#PB_OUT
MOV 55H,#CS3_PA
MOV 56H,#CS3_PC
MOV 57H,#CS3_PB
MOV 5CH,#CS7_SX
MOV 58H,#CS7_PA
MOV 59H,#CS7_PC
MOV 5AH,#CS7_PB
LJMP TC_XZ_Z
PB_CS14:
MOV 52H,#CS4_SX
MOV 53H,#PB_OUT
MOV 55H,#CS4_PA
MOV 56H,#CS4_PC
MOV 57H,#CS4_PB
MOV 5CH,#CS8_SX
MOV 58H,#CS8_PA
MOV 59H,#CS8_PC
MOV 5AH,#CS8_PB
LJMP TC_XZ_Z
;*******************************************
;PC
PC_CS11:
MOV 52H,#CS1_SX
MOV 53H,#PC_OUT
MOV 55H,#CS1_PB
MOV 56H,#CS1_PA
MOV 57H,#CS1_PC
MOV 5CH,#CS5_SX
MOV 58H,#CS5_PB
MOV 59H,#CS5_PA
MOV 5AH,#CS5_PC
LJMP TC_XZ_Z
PC_CS12:
MOV 52H,#CS2_SX
MOV 53H,#PC_OUT
MOV 55H,#CS2_PB
MOV 56H,#CS2_PA
MOV 57H,#CS2_PC
MOV 5CH,#CS6_SX
MOV 58H,#CS6_PB
MOV 59H,#CS6_PA
MOV 5AH,#CS6_PC
LJMP TC_XZ_Z
PC_CS13:
MOV 52H,#CS3_SX
MOV 53H,#PC_OUT
MOV 55H,#CS3_PB
MOV 56H,#CS3_PA
MOV 57H,#CS3_PC
MOV 5CH,#CS7_SX
MOV 58H,#CS7_PB
MOV 59H,#CS7_PA
MOV 5AH,#CS7_PC
LJMP TC_XZ_Z
PC_CS14:
MOV 52H,#CS4_SX
MOV 53H,#PC_OUT
MOV 55H,#CS4_PB
MOV 56H,#CS4_PA
MOV 57H,#CS4_PC
MOV 5CH,#CS8_SX
MOV 58H,#CS8_PB
MOV 59H,#CS8_PA
MOV 5AH,#CS8_PC
LJMP TC_XZ_Z
;****************************************************************
END
;寄存器说明:
;50H→8255选择 51H→PAPBPC选择 52H→属性地址
;53H→属性值 54H→扫描初值 55H~56h~57H→输出三个端口
;58~59h~5A→另一端数据接收判断 5BH→OK NG 判断
;---定义------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -