initio.asm

来自「本文以举例的方式从硬件和软件原理上阐述了如何运用SPBA01B对MCU进行IO扩」· 汇编 代码 · 共 51 行

ASM
51
字号
.PUBLIC _InitIO
.PUBLIC _ShowRes
.PUBLIC _GetIOAData
.PUBLIC _ClearIOAData

.DEFINE Port_IOA_Attrib 0x7003
.DEFINE Port_IOA_Dir    0x7002
.DEFINE Port_IOA_Data   0x7000

.DEFINE Port_IOB_Attrib 0x7008
.DEFINE Port_IOB_Dir    0x7007
.DEFINE Port_IOB_Data   0x7005

.CODE
_ShowRes: .proc
	push R1, R5 to [SP]
	R5 = SP + 5
	R4 = [R5+3]				//param1	
	[0x7005] = R4
	pop R1, R5 from [SP]
	retf
.endp

_GetIOAData: .proc
	R1 = [Port_IOA_Data]
	retf
.endp

_ClearIOAData: .proc
	R1 = [Port_IOA_Data]
	R1 &= 0x00FF
	[Port_IOA_Data] = R1
	retf
.endp

_InitIO: .proc
	R1=0xFFFF
	[Port_IOB_Attrib] = R1		//Set port B to output
	[Port_IOB_Dir] = R1			//Set port B to output
	R1 = 0
	[Port_IOB_Data] = R1
	R1=0x00FF
	[Port_IOA_Attrib] = R1		//Set port A15-A8 as input, port A7-A0 as output
	[Port_IOA_Dir] = R1
	R1 = 0
	[Port_IOA_Data] = R1
	retf
.endp

.END

⌨️ 快捷键说明

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