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

📄 8255asm.asm

📁 公司电表中STC89C54RD+单片机驱动8255的程序
💻 ASM
字号:
;;;8255 PORT DEFINATION
PORTA1		EQU	97FCH
PORTB1		EQU	97FDH
PORTC1		EQU	97FEH
PORTCON1	EQU	97FFH
PORTA2		EQU	0C7F3H
PORTB2		EQU	0C7F7H
PORTC2		EQU	0C7FBH
PORTCON2	EQU	0C7FFH
CONSTATUS	EQU 80H

ISPORTA		EQU 41H	 ;PORT A
ISPORTB		EQU	42H	 ;PORT B
ISPORTC		EQU	43H	 ;PORT C
WP			BIT	P2.3

USERNUM		EQU 30H
RELAYSTATUS	BIT 00H	 ;0->UP,1->DOWN  ALSO IS 8255 SELECT


	ORG 0000H
	LJMP MAIN

ClearPorts:
	PUSH ACC
	MOV DPTR,#PORTCON1
	MOV A,#CONSTATUS
	MOVX @DPTR,A
	MOV DPTR,#PORTA1
	CLR A
	MOVX @DPTR,A
	INC DPTR
	MOVX @DPTR,A
	INC DPTR
	MOVX @DPTR,A
	MOV DPTR,#PORTCON2
	MOV A,#CONSTATUS
	MOVX @DPTR,A
	MOV DPTR,#PORTA2
	CLR A
	MOVX @DPTR,A
	MOV DPTR,#PORTB2
	MOVX @DPTR,A
	MOV DPTR,#PORTC2
	MOVX @DPTR,A
	POP ACC
	ret

WR8255:		;RELAYSTATUS: 0->IS82551,1->IS82552; R0->PORT; R1->DATA
	ACALL ClearPorts

	JB RELAYSTATUS,IS82552				;IS 82551
	MOV DPTR,#PORTA1
	CJNE R0,#ISPORTA,IS82551NA  ;IS 82551A
	MOVX @DPTR,A
	SJMP PDWAN
IS82551NA:
	CJNE R0,#ISPORTB,IS82551NB  ;IS 82551B
	INC DPTR
	MOVX @DPTR,A
	SJMP PDWAN
IS82551NB:
	MOV DPTR,#PORTC1	 		;IS 8255C
	MOVX @DPTR,A
	SJMP PDWAN
IS82552:						;IS 82552
	MOV DPTR,#PORTA2
	CJNE R0,#ISPORTA,IS82552NA  ;IS 82552A
	MOVX @DPTR,A
	SJMP PDWAN
IS82552NA:
	CJNE R0,#ISPORTB,IS82552NB  ;IS 82552B
	INC DPTR
	MOVX @DPTR,A
	SJMP PDWAN
IS82552NB:
	MOV DPTR,#PORTC2
	MOVX @DPTR,A
PDWAN:	RET

operaterelay:	   ;USERNUM;   RELAYSTATUS: 0->SHANGDIAN,1->DUANDIAN
	MOV A,USERNUM
	DEC A
	RL A
	MOV R1,A
	MOV DPTR,#USER_SELECT
	MOVC A,@A+DPTR
	MOV R0,A		;R0->PORT
	MOV A,R1
	INC A
	MOVC A,@A+DPTR	;A->DATA
	ACALL Wr8255					
	RET


MAIN:		;;TEST 
	MOV PSW,#00H	
	ACALL ClearPorts
	MOV R3,#1
	MOV R4,#15
lo:	MOV USERNUM,R3
	CLR RELAYSTATUS
	ACALL operaterelay
	SETB RELAYSTATUS
	ACALL operaterelay
	INC R3
	DJNZ R4,lo

;user_select table		
USER_SELECT: DB 41H,08H,41H,20H,42H,04H,41H,10H,41H,40H	 ;1~5hu
			 DB	42H,08H,41H,04H,41H,80H,42H,10H,41H,02H	 ;6~10hu
			 DB	42H,01H,42H,20H,41H,01H,42H,02H,42H,40H	 ;11~15hu

	END

⌨️ 快捷键说明

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