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

📄 system.s

📁 《深入浅出AVR单片机——从ATmega48/88/168开始》的实例程序源代码
💻 S
字号:
	.module System.c
	.area text(rom, con, rel)
	.dbfile D:\设计项目\深入浅出AVR\光盘文件\实例程序源代码\实例12_复杂闪烁控制\实例12_复杂闪烁控制_警报灯\System.c
	.dbfunc e LED_Flash _LED_Flash fV
	.even
_LED_Flash::
	.dbline -1
	.dbline 65
; /*********************************************************/
; /*                                                       */
; /*          实例12   复杂闪烁控制 警报灯                 */
; /*                                                       */
; /*                 程序设计 江海波                       */
; /*                                                       */
; /*        编写时间 : 2007-05     版本 : V1.0             */
; /*                                                       */
; /*     提示 : 代码受版权保护,示例程序用于工程应谨慎      */
; /*                                                       */
; /*           E-mail : soundman@sohu.com                  */
; /*-------------------------------------------------------*/
; /* 硬件环境:                                             */
; /*                                                       */
; /*     实验电路板,ATmega48单片机,CPU时钟1MHz             */
; /* ------------------------------------------------------*/
; /* 软件环境:                                             */
; /*                                                       */
; /*     ICCAVR 6.31A                                      */
; /* ------------------------------------------------------*/
; /* 最后修改时间:                                         */
; /*                                                       */
; /*-------------------------------------------------------*/
; /* 历史版本纪录:                                         */
; /*                                                       */
; /*********************************************************/
; 
; /********************
; * 头 文 件 配 置 区 *
; ********************/
; # include "PF_Config.h"
; 
; /********************
; *   系 统 宏 定 义  *
; ********************/
; 
; /*------------------*
; *   常 数 宏 定 义  *
; *------------------*/
; 
; /*------------------*
; *   动 作 宏 定 义  *
; *------------------*/
; 
; /********************
; *  模块结构体定义区 *
; ********************/
; 
; /********************
; *   模块函数声明区  *
; ********************/
; 
; /********************
; *   模块变量声明区  *
; ********************/
; 
; /***********************************************************
; *   函数说明:LED闪烁控制函数                              *
; *   输入:    无                                           *
; *   输出:    无                                           *
; *   调用函数:                                             *
; ***********************************************************/
; 
; void LED_Flash (void)
; {
	.dbline 66
;     switch (TimeStamp)
	lds R2,_TimeStamp
	lds R3,_TimeStamp+1
	tst R2
	brne X0
	tst R3
	breq L4
X0:
	lds R24,_TimeStamp
	lds R25,_TimeStamp+1
	cpi R24,1
	ldi R30,0
	cpc R25,R30
	breq L5
	cpi R24,2
	ldi R30,0
	cpc R25,R30
	breq L6
	cpi R24,3
	ldi R30,0
	cpc R25,R30
	breq L7
	cpi R24,10
	ldi R30,0
	cpc R25,R30
	breq L8
	cpi R24,11
	ldi R30,0
	cpc R25,R30
	breq L9
	cpi R24,12
	ldi R30,0
	cpc R25,R30
	breq L10
	cpi R24,13
	ldi R30,0
	cpc R25,R30
	breq L11
	cpi R24,20
	ldi R30,0
	cpc R25,R30
	breq L12
	cpi R24,21
	ldi R30,0
	cpc R25,R30
	breq L13
	cpi R24,22
	ldi R30,0
	cpc R25,R30
	breq L14
	cpi R24,23
	ldi R30,0
	cpc R25,R30
	breq L15
	rjmp L2
X1:
	.dbline 67
;     {
L4:
	.dbline 69
;         case 0 :
;         {
	.dbline 70
;             LED_ON_A;
	in R24,0x8
	andi R24,221
	out 0x8,R24
	.dbline 70
	.dbline 71
;             break;
	rjmp L3
L5:
	.dbline 75
;         }
; 
;         case 1 :
;         {
	.dbline 76
;             LED_OFF_A;
	in R24,0x8
	ori R24,34
	out 0x8,R24
	.dbline 76
	.dbline 77
;             break;
	rjmp L3
L6:
	.dbline 81
;         }
; 
;         case 2 :
;         {
	.dbline 82
;             LED_ON_A;
	in R24,0x8
	andi R24,221
	out 0x8,R24
	.dbline 82
	.dbline 83
;             break;
	rjmp L3
L7:
	.dbline 87
;         }
; 
;         case 3 :
;         {
	.dbline 88
;             LED_OFF_A;
	in R24,0x8
	ori R24,34
	out 0x8,R24
	.dbline 88
	.dbline 89
;             break;
	rjmp L3
L8:
	.dbline 93
;         }
; 
;         case 10 :
;         {
	.dbline 94
;             LED_ON_B;
	in R24,0x8
	andi R24,235
	out 0x8,R24
	.dbline 94
	.dbline 95
;             break;
	rjmp L3
L9:
	.dbline 99
;         }
; 
;         case 11 :
;         {
	.dbline 100
;             LED_OFF_B;
	in R24,0x8
	ori R24,20
	out 0x8,R24
	.dbline 100
	.dbline 101
;             break;
	rjmp L3
L10:
	.dbline 105
;         }
; 
;         case 12 :
;         {
	.dbline 106
;             LED_ON_B;
	in R24,0x8
	andi R24,235
	out 0x8,R24
	.dbline 106
	.dbline 107
;             break;
	rjmp L3
L11:
	.dbline 111
;         }
; 
;         case 13 :
;         {
	.dbline 112
;             LED_OFF_B;
	in R24,0x8
	ori R24,20
	out 0x8,R24
	.dbline 112
	.dbline 113
;             break;
	rjmp L3
L12:
	.dbline 117
;         }
; 
;         case 20 :
;         {
	.dbline 118
;             LED_ON_C;
	cbi 0x8,3
	.dbline 118
	.dbline 119
;             break;
	rjmp L3
L13:
	.dbline 123
;         }
; 
;         case 21 :
;         {
	.dbline 124
;             LED_OFF_C;
	sbi 0x8,3
	.dbline 124
	.dbline 125
;             break;
	rjmp L3
L14:
	.dbline 129
;         }
; 
;         case 22 :
;         {
	.dbline 130
;             LED_ON_C;
	cbi 0x8,3
	.dbline 130
	.dbline 131
;             break;
	rjmp L3
L15:
	.dbline 135
;         }
; 
;         case 23 :
;         {
	.dbline 136
;             LED_OFF_C;
	sbi 0x8,3
	.dbline 136
	.dbline 137
;             break;
L2:
L3:
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e main _main fV
	.even
_main::
	.dbline -1
	.dbline 149
;         }
;     }
; }
; 
; /***********************************************************
; *   函数说明:主函数                                       *
; *   输入:    无                                           *
; *   输出:    无                                           *
; *   调用函数:System_INIT()                                *
; ***********************************************************/
; void main(void)
; {
	.dbline 150
;     System_INIT();               //代码初始化
	rcall _System_INIT
	rjmp L18
L17:
	.dbline 153
; 
;     while(TRUE)                  //超级循环
;     {
	.dbline 154
;         if (DoFLASH == TRUE)
	lds R24,_DoFLASH
	cpi R24,1
	brne L20
	.dbline 155
;         {
	.dbline 156
;             LED_Flash();         //当闪烁执行标志为真时,调用闪烁控制函数
	rcall _LED_Flash
	.dbline 157
;             DoFLASH = FALSE;
	clr R2
	sts _DoFLASH,R2
	.dbline 158
;         }
L20:
	.dbline 159
L18:
	.dbline 152
	rjmp L17
X2:
	.dbline -2
L16:
	.dbline 0 ; func end
	ret
	.dbend

⌨️ 快捷键说明

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