switchoutput.s

来自「项目是为日本瑞萨工作所做的BAKE炉温控系统 整个文件夹包括设计文档」· S 代码 · 共 145 行

S
145
字号
	.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
L1:
	.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 L3
	.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 L4
L3:
	.dbline 34
	mov #1,*__r0
	lda 2,X
	and #7
	beq X3
X2:
	lsl *__r0
	dbnza X2
X3:
	lda 0
	ora *__r0
	sta 0
L4:
	.dbline -2
L2:
	.dbline 0 ; func end
	rts
	.dbsym l Status 3 c
	.dbsym l PinNo 2 c
	.dbend
	.dbfunc e LightInit _LightInit fV
_LightInit::
	.dbline -1
	.dbline 38
;   else 
;     SwitchOutput_P |=(1<<PinNo);         //开关“闭” 
; }
; 
; void LightInit(void)
; {
	.dbline 39
;   BakeLight_D|=1<<LightPin;       //令按钮开关输出端口为输出
	bset #5,0x7
	.dbline 40
;   BakeLight_P|=1<<LightPin;       //初始输出为高
	bset #5,0x3
	.dbline -2
L5:
	.dbline 0 ; func end
	rts
	.dbend
	.dbfunc e LightOut _LightOut fV
;         Status -> 2,X
_LightOut::
	.dbline -1
	tsx
	.dbline 44
; //  BakeLight_P&=~(1<<LightPin);    
; }
; void LightOut(INT8U Status)
; {
	.dbline 45
;   if(Status==1)
	lda 2,X
	cmp #1
	bne L7
	.dbline 46
;     BakeLight_P &=~(1<<LightPin);      //开关“开” 
	bclr #5,0x3
	bra L8
L7:
	.dbline 48
	bset #5,0x3
L8:
	.dbline -2
L6:
	.dbline 0 ; func end
	rts
	.dbsym l Status 2 c
	.dbend

⌨️ 快捷键说明

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