📄 com_a.asm.bak
字号:
NAME COM_A ;模块名
;定义重定位段
?PR?Data_Send?COM_A SEGMENT CODE
?PR?Data_Recv?COM_A SEGMENT CODE
?PR?Delay?COM_A SEGMENT CODE
;对外声明4个不可重入函数
PUBLIC Data_Send
PUBLIC Data_Recv
PUBLIC Delay
;子程序
;-------------------------------------------------------------------------
RSEG ?PR?Data_Send?COM_A
Data_Send:
PUSH ACC
PUSH 01H
MOV R1,#8
MOV A,R7
CLR P2.0
LCALL Delay
LCALL Delay
LOOP: RRC A
MOV P2.0,C
LCALL Delay
LCALL Delay
DJNZ R1,LOOP
SETB P2.0
LCALL Delay
LCALL Delay
POP 01H
POP ACC
RET
;-------------------------------------------------------------------------
RSEG ?PR?Delay?COM_A
Delay: PUSH 00H
PUSH 01H
MOV R0,#1
LOOP2: MOV R1,#12 //12MHZ R1=#12
LOOP1: NOP
DJNZ R1,LOOP1
DJNZ R0,LOOP2
POP 01H
POP 00H
RET
;-------------------------------------------------------------------------
RSEG ?PR?Data_Recv?COM_A
Data_Recv: PUSH ACC
PUSH PSW
PUSH 00H
MOV R0,#8
Data_Recv1: JB P2.1,Data_Recv1
LCALL Delay
JB P2.1,Data_Recv1
LCALL Delay
LOOP3: LCALL Delay
MOV C,P2.1
RRC A
LCALL Delay
DJNZ R0,LOOP3
MOV R7,A
EXT: POP 00H
POP PSW
POP ACC
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -