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

📄 misc.lis

📁 AVR单片机 C语言程序设计经典实用
💻 LIS
📖 第 1 页 / 共 3 页
字号:
                        .module misc.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\多任务模拟系统设计\misc.c
 0000                   .dbfunc e LED_OFF _LED_OFF fV
 0000           ;          Index -> R20
                        .even
 0000           _LED_OFF::
 0000 0E940000          xcall push_gset1
 0004 402F              mov R20,R16
 0006                   .dbline -1
 0006                   .dbline 24
 0006           ; //******************************************************************************
 0006           ; // File Name : Gpio.c
 0006           ; // Author    : Steaven
 0006           ; // Created   : 2008-06-09
 0006           ; // Modified  : 
 0006           ; // Revision  : V0.0
 0006           ; //******************************************************************************
 0006           ; 
 0006           ; #include "app.h"
 0006           ; 
 0006           ; //local function(s) declaration
 0006           ; INT16U swGet_Key1(void);
 0006           ; INT16U swGet_Key2(void);
 0006           ; INT16U swGet_Key3(void);
 0006           ; INT16U swGet_Key4(void);
 0006           ; 
 0006           ; //***************************************************************
 0006           ; // Function    : LED_OFF
 0006           ; // Input       : Index - LED Index,from 1 to 4
 0006           ; // Output      : none
 0006           ; // Description : Turn off specific LED indexed by Index variable
 0006           ; //***************************************************************
 0006           ; void LED_OFF(INT8U Index)
 0006           ; {
 0006                   .dbline 25
 0006           ;     PORTD |= (1 << Index);
 0006 01E0              ldi R16,1
 0008 142F              mov R17,R20
 000A 0E940000          xcall lsl8
 000E 22B2              in R2,0x12
 0010 202A              or R2,R16
 0012 22BA              out 0x12,R2
 0014                   .dbline -2
 0014                   .dbline 26
 0014           ; }
 0014           L1:
 0014 0E940000          xcall pop_gset1
 0018                   .dbline 0 ; func end
 0018 0895              ret
 001A                   .dbsym r Index 20 c
 001A                   .dbend
 001A                   .dbfunc e LED_ON _LED_ON fV
 001A           ;          Index -> R20
                        .even
 001A           _LED_ON::
 001A 0E940000          xcall push_gset1
 001E 402F              mov R20,R16
 0020                   .dbline -1
 0020                   .dbline 35
 0020           ; 
 0020           ; //***************************************************************
 0020           ; // Function    : LED_ON
 0020           ; // Input       : Index - LED Index,from 1 to 4
 0020           ; // Output      : none
 0020           ; // Description : Turn on specific LED indexed by Index variable
 0020           ; //***************************************************************
 0020           ; void LED_ON(INT8U Index)
 0020           ; {
 0020                   .dbline 36
 0020           ;     PORTD &= ~(1 << Index);
 0020 01E0              ldi R16,1
 0022 142F              mov R17,R20
 0024 0E940000          xcall lsl8
 0028 202E              mov R2,R16
 002A 2094              com R2
 002C 32B2              in R3,0x12
 002E 3220              and R3,R2
 0030 32BA              out 0x12,R3
 0032                   .dbline -2
 0032                   .dbline 37
 0032           ; }
 0032           L2:
 0032 0E940000          xcall pop_gset1
 0036                   .dbline 0 ; func end
 0036 0895              ret
 0038                   .dbsym r Index 20 c
 0038                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\多任务模拟系统设计\misc.c
 0000           L4:
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\多任务模拟系统设计\misc.c
 0001           L5:
 0001                   .blkb 1
                        .area idata
 0001 00                .byte 0
                        .area data(ram, con, rel)
 0002                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\多任务模拟系统设计\misc.c
 0002           L6:
 0002                   .blkb 1
                        .area idata
 0002 00                .byte 0
                        .area data(ram, con, rel)
 0003                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\多任务模拟系统设计\misc.c
 0003           L7:
 0003                   .blkb 1
                        .area idata
 0003 00                .byte 0
                        .area data(ram, con, rel)
 0004                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\多任务模拟系统设计\misc.c
                        .area text(rom, con, rel)
 0038                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\多任务模拟系统设计\misc.c
 0038                   .dbfunc e LED_TOGGLE _LED_TOGGLE fV
 0038                   .dbsym s bLED4_Status L7 c
 0038                   .dbsym s bLED3_Status L6 c
 0038                   .dbsym s bLED2_Status L5 c
 0038                   .dbsym s bLED1_Status L4 c
 0038           ;          Index -> R20
                        .even
 0038           _LED_TOGGLE::
 0038 0E940000          xcall push_gset1
 003C 402F              mov R20,R16
 003E                   .dbline -1
 003E                   .dbline 46
 003E           ; 
 003E           ; //***************************************************************
 003E           ; // Function    : LED_ON
 003E           ; // Input       : Index - LED Index,from 1 to 4
 003E           ; // Output      : none
 003E           ; // Description : Turn on specific LED indexed by Index variable
 003E           ; //***************************************************************
 003E           ; void LED_TOGGLE(INT8U Index)
 003E           ; {
 003E                   .dbline 51
 003E           ;     static INT8U bLED1_Status = cOFF_Status;
 003E           ;     static INT8U bLED2_Status = cOFF_Status;
 003E           ;     static INT8U bLED3_Status = cOFF_Status;
 003E           ;     static INT8U bLED4_Status = cOFF_Status;
 003E           ;     switch(Index)
 003E 5527              clr R21
 0040 4430              cpi R20,4
 0042 E0E0              ldi R30,0
 0044 5E07              cpc R21,R30
 0046 71F0              breq L11
 0048 4530              cpi R20,5
 004A E0E0              ldi R30,0
 004C 5E07              cpc R21,R30
 004E 01F1              breq L16
 0050 4630              cpi R20,6
 0052 E0E0              ldi R30,0
 0054 5E07              cpc R21,R30
 0056 89F1              breq L21
 0058 4730              cpi R20,7
 005A E0E0              ldi R30,0
 005C 5E07              cpc R21,R30
 005E 09F4              brne X1
 0060 41C0              xjmp L26
 0062           X1:
 0062 54C0              xjmp L9
 0064           X0:
 0064                   .dbline 52
 0064           ;     {
 0064           L11:
 0064                   .dbline 54
 0064           ;         case cLED1 :
 0064           ;         {
 0064                   .dbline 55
 0064           ;             if(bLED1_Status == cOFF_Status)
 0064 20900000          lds R2,L4
 0068 2220              tst R2
 006A 31F4              brne L12
 006C                   .dbline 56
 006C           ;             {
 006C                   .dbline 57
 006C           ;                 LED_ON(cLED1);
 006C 04E0              ldi R16,4
 006E D5DF              xcall _LED_ON
 0070                   .dbline 58
 0070           ;                 bLED1_Status = cON_Status;
 0070 81E0              ldi R24,1
 0072 80930000          sts L4,R24
 0076                   .dbline 59
 0076           ;             }
 0076 4AC0              xjmp L9
 0078           L12:
 0078                   .dbline 60
 0078           ;             else if(bLED1_Status = cON_Status)
 0078 81E0              ldi R24,1
 007A 80930000          sts L4,R24
 007E 8823              tst R24
 0080 09F4              brne X2
 0082 44C0              xjmp L9
 0084           X2:
 0084                   .dbline 61
 0084           ;             {
 0084                   .dbline 62
 0084           ;                 LED_OFF(cLED1);
 0084 04E0              ldi R16,4
 0086 BCDF              xcall _LED_OFF
 0088                   .dbline 63
 0088           ;                 bLED1_Status = cOFF_Status;
 0088 2224              clr R2
 008A 20920000          sts L4,R2
 008E                   .dbline 64
 008E           ;             }
 008E                   .dbline 65
 008E           ;             break;
 008E 3EC0              xjmp L9
 0090           L16:
 0090                   .dbline 68
 0090           ;         }
 0090           ;         case cLED2 :
 0090           ;         {
 0090                   .dbline 69
 0090           ;             if(bLED2_Status == cOFF_Status)
 0090 20900100          lds R2,L5
 0094 2220              tst R2
 0096 31F4              brne L17
 0098                   .dbline 70
 0098           ;             {
 0098                   .dbline 71
 0098           ;                 LED_ON(cLED2);
 0098 05E0              ldi R16,5
 009A BFDF              xcall _LED_ON
 009C                   .dbline 72
 009C           ;                 bLED2_Status = cON_Status;
 009C 81E0              ldi R24,1
 009E 80930100          sts L5,R24
 00A2                   .dbline 73
 00A2           ;             }
 00A2 34C0              xjmp L9
 00A4           L17:
 00A4                   .dbline 74
 00A4           ;             else if(bLED2_Status = cON_Status)
 00A4 81E0              ldi R24,1
 00A6 80930100          sts L5,R24
 00AA 8823              tst R24
 00AC 79F1              breq L9
 00AE                   .dbline 75
 00AE           ;             {
 00AE                   .dbline 76
 00AE           ;                 LED_OFF(cLED2);
 00AE 05E0              ldi R16,5
 00B0 A7DF              xcall _LED_OFF
 00B2                   .dbline 77
 00B2           ;                 bLED2_Status = cOFF_Status;
 00B2 2224              clr R2
 00B4 20920100          sts L5,R2
 00B8                   .dbline 78
 00B8           ;             }
 00B8                   .dbline 79
 00B8           ;             break;
 00B8 29C0              xjmp L9
 00BA           L21:
 00BA                   .dbline 82
 00BA           ;         }
 00BA           ;         case cLED3 :
 00BA           ;         {
 00BA                   .dbline 83
 00BA           ;             if(bLED3_Status == cOFF_Status)
 00BA 20900200          lds R2,L6
 00BE 2220              tst R2
 00C0 31F4              brne L22
 00C2                   .dbline 84
 00C2           ;             {
 00C2                   .dbline 85
 00C2           ;                 LED_ON(cLED3);
 00C2 06E0              ldi R16,6
 00C4 AADF              xcall _LED_ON
 00C6                   .dbline 86
 00C6           ;                 bLED3_Status = cON_Status;
 00C6 81E0              ldi R24,1
 00C8 80930200          sts L6,R24
 00CC                   .dbline 87
 00CC           ;             }
 00CC 1FC0              xjmp L9
 00CE           L22:
 00CE                   .dbline 88

⌨️ 快捷键说明

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