📄 switchoutput.s
字号:
.module SwitchOutput.c
.area text
.dbfile SwitchOutput.c
.dbfunc e SwitchOutput_Init _SwitchOutput_Init fV
_SwitchOutput_Init::
.dbline -1
.dbline 18
; //[SwitchOutput.c]开关驱动-------------------------------------------------*
; //本文件包含: *
; // (1)SwitchOutput_Init:定义控制开关的MCU的I/O引脚为输出 *
; // (2)SwitchOutput:将某引脚模拟为开关的开闭 *
; //硬件连接: *
; // (1)本处的开关是接触器,由MCU的I/O引脚控制 *
; // (2)控制引脚=高电平时,模拟开关的闭状态;反之,模拟开关的开状态; *
; //-------------------------------------------------------------------------*
;
; #include"SwitchOutput.h" //该头文件中包含了开关控制引脚定义和相关函数声明
;
; //SwitchOutput_Init:定义控制开关的MCU引脚为输出----------------------------*
; //功能:定义控制开关的MCU引脚为输出,并模拟开关初始为开 *
; //参数:无 *
; //返回:无 *
; //-------------------------------------------------------------------------*
; void SwitchOutput_Init(void)
; {
.dbline 19
; SwitchOutput_D=0xFF; //令开关输出端口为输出
lda #-1
sta 0x4
.dbline 20
; SwitchOutput_P=0x00; //初始输出全为低,模拟开关的开状态
clr 0
.dbline -2
L27:
.dbline 0 ; func end
rts
.dbend
.dbfunc e SwitchOutput _SwitchOutput fV
; Status -> 3,X
; PinNo -> 2,X
_SwitchOutput::
.dbline -1
tsx
.dbline 30
; }
;
; //SwitchOutput:驱动开关"开"、"闭"------------------------------------------*
; //功能:通过给某引脚设定状态来模拟开关的开闭 *
; //参数:PinNo=需设定状态的引脚(0~7) *
; // Status=Open,开;Status=Close,闭 *
; //返回:无 *
; //-------------------------------------------------------------------------*
; void SwitchOutput(INT8U PinNo,INT8U Status)
; {
.dbline 31
; if(Status==0)
lda 3,X
bne L29
.dbline 32
; SwitchOutput_P &=~(1<<PinNo); //开关“开”
mov #1,*__r0
lda 2,X
and #7
beq X1
X0:
lsl *__r0
dbnza X0
X1:
com *__r0
lda 0
and *__r0
sta 0
bra L30
L29:
.dbline 34
mov #1,*__r0
lda 2,X
and #7
beq X3
X2:
lsl *__r0
dbnza X2
X3:
lda 0
ora *__r0
sta 0
L30:
.dbline -2
L28:
.dbline 0 ; func end
rts
.dbsym l Status 3 c
.dbsym l PinNo 2 c
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -