📄 system.lis
字号:
.module System.c
.area text(rom, con, rel)
0000 .dbfile D:\设计项目\深入浅出AVR\光盘文件\实例程序源代码\实例12_复杂闪烁控制\实例12_复杂闪烁控制_警报灯\System.c
0000 .dbfunc e LED_Flash _LED_Flash fV
.even
0000 _LED_Flash::
0000 .dbline -1
0000 .dbline 65
0000 ; /*********************************************************/
0000 ; /* */
0000 ; /* 实例12 复杂闪烁控制 警报灯 */
0000 ; /* */
0000 ; /* 程序设计 江海波 */
0000 ; /* */
0000 ; /* 编写时间 : 2007-05 版本 : V1.0 */
0000 ; /* */
0000 ; /* 提示 : 代码受版权保护,示例程序用于工程应谨慎 */
0000 ; /* */
0000 ; /* E-mail : soundman@sohu.com */
0000 ; /*-------------------------------------------------------*/
0000 ; /* 硬件环境: */
0000 ; /* */
0000 ; /* 实验电路板,ATmega48单片机,CPU时钟1MHz */
0000 ; /* ------------------------------------------------------*/
0000 ; /* 软件环境: */
0000 ; /* */
0000 ; /* ICCAVR 6.31A */
0000 ; /* ------------------------------------------------------*/
0000 ; /* 最后修改时间: */
0000 ; /* */
0000 ; /*-------------------------------------------------------*/
0000 ; /* 历史版本纪录: */
0000 ; /* */
0000 ; /*********************************************************/
0000 ;
0000 ; /********************
0000 ; * 头 文 件 配 置 区 *
0000 ; ********************/
0000 ; # include "PF_Config.h"
0000 ;
0000 ; /********************
0000 ; * 系 统 宏 定 义 *
0000 ; ********************/
0000 ;
0000 ; /*------------------*
0000 ; * 常 数 宏 定 义 *
0000 ; *------------------*/
0000 ;
0000 ; /*------------------*
0000 ; * 动 作 宏 定 义 *
0000 ; *------------------*/
0000 ;
0000 ; /********************
0000 ; * 模块结构体定义区 *
0000 ; ********************/
0000 ;
0000 ; /********************
0000 ; * 模块函数声明区 *
0000 ; ********************/
0000 ;
0000 ; /********************
0000 ; * 模块变量声明区 *
0000 ; ********************/
0000 ;
0000 ; /***********************************************************
0000 ; * 函数说明:LED闪烁控制函数 *
0000 ; * 输入: 无 *
0000 ; * 输出: 无 *
0000 ; * 调用函数: *
0000 ; ***********************************************************/
0000 ;
0000 ; void LED_Flash (void)
0000 ; {
0000 .dbline 66
0000 ; switch (TimeStamp)
0000 20900000 lds R2,_TimeStamp
0004 30900100 lds R3,_TimeStamp+1
0008 2220 tst R2
000A 11F4 brne X0
000C 3320 tst R3
000E 89F1 breq L4
0010 X0:
0010 80910000 lds R24,_TimeStamp
0014 90910100 lds R25,_TimeStamp+1
0018 8130 cpi R24,1
001A E0E0 ldi R30,0
001C 9E07 cpc R25,R30
001E 69F1 breq L5
0020 8230 cpi R24,2
0022 E0E0 ldi R30,0
0024 9E07 cpc R25,R30
0026 69F1 breq L6
0028 8330 cpi R24,3
002A E0E0 ldi R30,0
002C 9E07 cpc R25,R30
002E 69F1 breq L7
0030 8A30 cpi R24,10
0032 E0E0 ldi R30,0
0034 9E07 cpc R25,R30
0036 69F1 breq L8
0038 8B30 cpi R24,11
003A E0E0 ldi R30,0
003C 9E07 cpc R25,R30
003E 69F1 breq L9
0040 8C30 cpi R24,12
0042 E0E0 ldi R30,0
0044 9E07 cpc R25,R30
0046 69F1 breq L10
0048 8D30 cpi R24,13
004A E0E0 ldi R30,0
004C 9E07 cpc R25,R30
004E 69F1 breq L11
0050 8431 cpi R24,20
0052 E0E0 ldi R30,0
0054 9E07 cpc R25,R30
0056 69F1 breq L12
0058 8531 cpi R24,21
005A E0E0 ldi R30,0
005C 9E07 cpc R25,R30
005E 59F1 breq L13
0060 8631 cpi R24,22
0062 E0E0 ldi R30,0
0064 9E07 cpc R25,R30
0066 49F1 breq L14
0068 8731 cpi R24,23
006A E0E0 ldi R30,0
006C 9E07 cpc R25,R30
006E 39F1 breq L15
0070 27C0 rjmp L2
0072 X1:
0072 .dbline 67
0072 ; {
0072 L4:
0072 .dbline 69
0072 ; case 0 :
0072 ; {
0072 .dbline 70
0072 ; LED_ON_A;
0072 88B1 in R24,0x8
0074 8D7D andi R24,221
0076 88B9 out 0x8,R24
0078 .dbline 70
0078 .dbline 71
0078 ; break;
0078 23C0 rjmp L3
007A L5:
007A .dbline 75
007A ; }
007A ;
007A ; case 1 :
007A ; {
007A .dbline 76
007A ; LED_OFF_A;
007A 88B1 in R24,0x8
007C 8262 ori R24,34
007E 88B9 out 0x8,R24
0080 .dbline 76
0080 .dbline 77
0080 ; break;
0080 1FC0 rjmp L3
0082 L6:
0082 .dbline 81
0082 ; }
0082 ;
0082 ; case 2 :
0082 ; {
0082 .dbline 82
0082 ; LED_ON_A;
0082 88B1 in R24,0x8
0084 8D7D andi R24,221
0086 88B9 out 0x8,R24
0088 .dbline 82
0088 .dbline 83
0088 ; break;
0088 1BC0 rjmp L3
008A L7:
008A .dbline 87
008A ; }
008A ;
008A ; case 3 :
008A ; {
008A .dbline 88
008A ; LED_OFF_A;
008A 88B1 in R24,0x8
008C 8262 ori R24,34
008E 88B9 out 0x8,R24
0090 .dbline 88
0090 .dbline 89
0090 ; break;
0090 17C0 rjmp L3
0092 L8:
0092 .dbline 93
0092 ; }
0092 ;
0092 ; case 10 :
0092 ; {
0092 .dbline 94
0092 ; LED_ON_B;
0092 88B1 in R24,0x8
0094 8B7E andi R24,235
0096 88B9 out 0x8,R24
0098 .dbline 94
0098 .dbline 95
0098 ; break;
0098 13C0 rjmp L3
009A L9:
009A .dbline 99
009A ; }
009A ;
009A ; case 11 :
009A ; {
009A .dbline 100
009A ; LED_OFF_B;
009A 88B1 in R24,0x8
009C 8461 ori R24,20
009E 88B9 out 0x8,R24
00A0 .dbline 100
00A0 .dbline 101
00A0 ; break;
00A0 0FC0 rjmp L3
00A2 L10:
00A2 .dbline 105
00A2 ; }
00A2 ;
00A2 ; case 12 :
00A2 ; {
00A2 .dbline 106
00A2 ; LED_ON_B;
00A2 88B1 in R24,0x8
00A4 8B7E andi R24,235
00A6 88B9 out 0x8,R24
00A8 .dbline 106
00A8 .dbline 107
00A8 ; break;
00A8 0BC0 rjmp L3
00AA L11:
00AA .dbline 111
00AA ; }
00AA ;
00AA ; case 13 :
00AA ; {
00AA .dbline 112
00AA ; LED_OFF_B;
00AA 88B1 in R24,0x8
00AC 8461 ori R24,20
00AE 88B9 out 0x8,R24
00B0 .dbline 112
00B0 .dbline 113
00B0 ; break;
00B0 07C0 rjmp L3
00B2 L12:
00B2 .dbline 117
00B2 ; }
00B2 ;
00B2 ; case 20 :
00B2 ; {
00B2 .dbline 118
00B2 ; LED_ON_C;
00B2 4398 cbi 0x8,3
00B4 .dbline 118
00B4 .dbline 119
00B4 ; break;
00B4 05C0 rjmp L3
00B6 L13:
00B6 .dbline 123
00B6 ; }
00B6 ;
00B6 ; case 21 :
00B6 ; {
00B6 .dbline 124
00B6 ; LED_OFF_C;
00B6 439A sbi 0x8,3
00B8 .dbline 124
00B8 .dbline 125
00B8 ; break;
00B8 03C0 rjmp L3
00BA L14:
00BA .dbline 129
00BA ; }
00BA ;
00BA ; case 22 :
00BA ; {
00BA .dbline 130
00BA ; LED_ON_C;
00BA 4398 cbi 0x8,3
00BC .dbline 130
00BC .dbline 131
00BC ; break;
00BC 01C0 rjmp L3
00BE L15:
00BE .dbline 135
00BE ; }
00BE ;
00BE ; case 23 :
00BE ; {
00BE .dbline 136
00BE ; LED_OFF_C;
00BE 439A sbi 0x8,3
00C0 .dbline 136
00C0 .dbline 137
00C0 ; break;
00C0 L2:
00C0 L3:
00C0 .dbline -2
00C0 L1:
00C0 .dbline 0 ; func end
00C0 0895 ret
00C2 .dbend
00C2 .dbfunc e main _main fV
.even
00C2 _main::
00C2 .dbline -1
00C2 .dbline 149
00C2 ; }
00C2 ; }
00C2 ; }
00C2 ;
00C2 ; /***********************************************************
00C2 ; * 函数说明:主函数 *
00C2 ; * 输入: 无 *
00C2 ; * 输出: 无 *
00C2 ; * 调用函数:System_INIT() *
00C2 ; ***********************************************************/
00C2 ; void main(void)
00C2 ; {
00C2 .dbline 150
00C2 ; System_INIT(); //代码初始化
00C2 00D0 rcall _System_INIT
00C4 08C0 rjmp L18
00C6 L17:
00C6 .dbline 153
00C6 ;
00C6 ; while(TRUE) //超级循环
00C6 ; {
00C6 .dbline 154
00C6 ; if (DoFLASH == TRUE)
00C6 80910000 lds R24,_DoFLASH
00CA 8130 cpi R24,1
00CC 21F4 brne L20
00CE .dbline 155
00CE ; {
00CE .dbline 156
00CE ; LED_Flash(); //当闪烁执行标志为真时,调用闪烁控制函数
00CE 98DF rcall _LED_Flash
00D0 .dbline 157
00D0 ; DoFLASH = FALSE;
00D0 2224 clr R2
00D2 20920000 sts _DoFLASH,R2
00D6 .dbline 158
00D6 ; }
00D6 L20:
00D6 .dbline 159
00D6 L18:
00D6 .dbline 152
00D6 F7CF rjmp L17
00D8 X2:
00D8 .dbline -2
00D8 L16:
00D8 .dbline 0 ; func end
00D8 0895 ret
00DA .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -