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

📄 system.lis

📁 《深入浅出AVR单片机——从ATmega48/88/168开始》的实例程序源代码
💻 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 + -