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

📄 开短路检测控制箱.asm

📁 开短路检测控制箱(51单片机开发例子子程序)
💻 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 + -