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

📄 system.s

📁 《深入浅出AVR单片机——从ATmega48/88/168开始》的实例程序源代码
💻 S
字号:
	.module System.c
	.area text(rom, con, rel)
	.dbfile D:\设计项目\深入浅出AVR\光盘文件\实例程序源代码\实例12_复杂闪烁控制\实例12_复杂闪烁控制_热水器控制/RD_LED_FLASH.h
	.dbfunc e LED_ON _LED_ON fV
;         LEDNum -> R20
	.even
_LED_ON::
	rcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 69
; /***********************************************************
; *   源程序说明:                                           *
; *   版本:                                                 *
; *   作者:                                                 *
; *   创建日期:                                             *
; * -------------------------------------------------------- *
; *  [支 持 库]                                              *
; *   支持库名称:PF_Config.h                                *
; *   需要版本:  -----                                      *
; *   支持库说明:硬件平台配置声明库                         *
; * -------------------------------------------------------- *
; *  [版本更新]                                              *
; *   修改:                                                 *
; *   修改日期:                                             *
; *   版本:                                                 *
; * -------------------------------------------------------- *
; *  [版本历史]                                              *
; * -------------------------------------------------------- *
; *  [使用说明]                                              *
; ***********************************************************/
; 
; /********************
; * 头 文 件 配 置 区 *
; ********************/
; # include "RD_LED_FLASH.h"
; # include "PF_Config.h"
; 
; /********************
; *   系 统 宏 定 义  *
; ********************/
; 
; /*------------------*
; *   常 数 宏 定 义  *
; *------------------*/
; 
; /*------------------*
; *   动 作 宏 定 义  *
; *------------------*/
; 
; /********************
; *  模块结构体定义区 *
; ********************/
; 
; /********************
; *   模块函数声明区  *
; ********************/
; 
; /********************
; *   模块变量声明区  *
; ********************/
; 
; /***********************************************************
; *   函数说明:主函数                                       *
; *   输入:    无                                           *
; *   输出:    无                                           *
; *   调用函数:System_INIT()                                *
; ***********************************************************/
; void main(void)
; {
;     System_INIT();               //代码初始化
;     
;     FlashStatu[4] = Heat_OK;
;     FlashStatu[3] = Heat;
;     FlashStatu[2] = Power_OFF;
;     FlashStatu[1] = LW;
;     FlashStatu[0] = Heat;
; 
;     while(TRUE)                  //超级循环
;     {
	.dbline 70
;         if (DoFLASH == TRUE)
	mov R17,R20
	subi R17,255    ; addi 1
	ldi R16,1
	rcall lsl8
	mov R2,R16
	com R2
	in R3,0x8
	and R3,R2
	out 0x8,R3
	.dbline -2
L1:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r LEDNum 20 c
	.dbend
	.dbfunc e LED_OFF _LED_OFF fV
;         LEDNum -> R20
	.even
_LED_OFF::
	rcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 74
;         {
;             LED_Flash();         //当闪烁执行标志为真时,调用闪烁控制函数
;             DoFLASH = FALSE;
;         }
	.dbline 75
;     }
	mov R17,R20
	subi R17,255    ; addi 1
	ldi R16,1
	rcall lsl8
	in R2,0x8
	or R2,R16
	out 0x8,R2
	.dbline -2
L2:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r LEDNum 20 c
	.dbend
	.dbfunc e StatuOFF _StatuOFF fV
;         LEDNum -> R20
	.even
_StatuOFF::
	rcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 86
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
	.dbline 87
; }
	mov R16,R20
	rcall _LED_OFF
	.dbline -2
L3:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r LEDNum 20 c
	.dbend
	.dbfunc e StatuHeat _StatuHeat fV
;         LEDNum -> R20
	.even
_StatuHeat::
	rcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 98
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
	.dbline 99
; }
	mov R16,R20
	rcall _LED_ON
	.dbline -2
L4:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r LEDNum 20 c
	.dbend
	.dbfunc e StatuOK _StatuOK fV
;         LEDNum -> R20
	.even
_StatuOK::
	rcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 110
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
	.dbline 111
; }
	lds R2,_TimeStamp
	lds R3,_TimeStamp+1
	tst R2
	brne X0
	tst R3
	breq L8
X0:
	lds R24,_TimeStamp
	lds R25,_TimeStamp+1
	cpi R24,1
	ldi R30,0
	cpc R25,R30
	breq L9
	rjmp L6
X1:
	.dbline 112
; }
L8:
	.dbline 114
; }
; }
	.dbline 115
; }
	mov R16,R20
	rcall _LED_ON
	.dbline 116
; }
	rjmp L7
L9:
	.dbline 120
; }
; }
; }
; }
	.dbline 121
; }
	mov R16,R20
	rcall _LED_OFF
	.dbline 122
; }
L6:
L7:
	.dbline -2
L5:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r LEDNum 20 c
	.dbend
	.dbfunc e StatuLW _StatuLW fV
;         LEDNum -> R20
	.even
_StatuLW::
	rcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 135
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
	.dbline 136
; }
	lds R2,_TimeStamp
	lds R3,_TimeStamp+1
	sbrs R2,0
	rjmp L11
	.dbline 137
; }
	mov R16,R20
	rcall _LED_ON
	rjmp L12
L11:
	.dbline 139
	mov R16,R20
	rcall _LED_OFF
L12:
	.dbline -2
L10:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r LEDNum 20 c
	.dbend
	.dbfunc e LED_Flash _LED_Flash fV
;              i -> R22
	.even
_LED_Flash::
	rcall push_gset2
	.dbline -1
	.dbline 150
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
	.dbline 154
; }
; }
; }
; }
	clr R22
	rjmp L17
L14:
	.dbline 155
; }
	.dbline 156
; }
	ldi R24,<_FlashStatu
	ldi R25,>_FlashStatu
	mov R30,R22
	clr R31
	add R30,R24
	adc R31,R25
	ldd R20,z+0
	clr R21
	cpi R20,0
	cpc R20,R21
	breq L21
X2:
	cpi R20,1
	ldi R30,0
	cpc R21,R30
	breq L22
	cpi R20,2
	ldi R30,0
	cpc R21,R30
	breq L23
	cpi R20,3
	ldi R30,0
	cpc R21,R30
	breq L24
	rjmp L18
X3:
	.dbline 157
; }
L21:
	.dbline 159
; }
; }
	.dbline 160
; }
	mov R16,R22
	rcall _StatuOFF
	.dbline 161
; }
	rjmp L19
L22:
	.dbline 165
; }
; }
; }
; }
	.dbline 166
; }
	mov R16,R22
	rcall _StatuHeat
	.dbline 167
; }
	rjmp L19
L23:
	.dbline 171
; }
; }
; }
; }
	.dbline 172
; }
	mov R16,R22
	rcall _StatuOK
	.dbline 173
; }
	rjmp L19
L24:
	.dbline 177
; }
; }
; }
; }
	.dbline 178
; }
	mov R16,R22
	rcall _StatuLW
	.dbline 179
; }
L18:
L19:
	.dbline 182
L15:
	.dbline 154
	inc R22
L17:
	.dbline 154
	cpi R22,5
	brlo L14
	.dbline -2
L13:
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 22 c
	.dbend
	.dbfile D:\设计项目\深入浅出AVR\光盘文件\实例程序源代码\实例12_复杂闪烁控制\实例12_复杂闪烁控制_热水器控制\System.c
	.dbfunc e main _main fV
	.even
_main::
	.dbline -1
	.dbline 59
	.dbline 60
	rcall _System_INIT
	.dbline 62
	ldi R24,2
	sts _FlashStatu+4,R24
	.dbline 63
	ldi R24,1
	sts _FlashStatu+3,R24
	.dbline 64
	clr R2
	sts _FlashStatu+2,R2
	.dbline 65
	ldi R24,3
	sts _FlashStatu+1,R24
	.dbline 66
	ldi R24,1
	sts _FlashStatu,R24
	rjmp L31
L30:
	.dbline 69
	.dbline 70
	lds R24,_DoFLASH
	cpi R24,1
	brne L33
	.dbline 71
	.dbline 72
	rcall _LED_Flash
	.dbline 73
	clr R2
	sts _DoFLASH,R2
	.dbline 74
L33:
	.dbline 75
L31:
	.dbline 68
	rjmp L30
X4:
	.dbline -2
L25:
	.dbline 0 ; func end
	ret
	.dbend

⌨️ 快捷键说明

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