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

📄 main.lis

📁 用AVR单片机做的一些程序,包括跑马灯显示,PWM产生,ADC转换等
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0096                   .dbline 79
 0096           ;       unsigned int i;
 0096           ; 
 0096           ;       i = 1000;                                                                                       /*防按键颤动代码*/
 0096 08EE              ldi R16,1000
 0098 13E0              ldi R17,3
 009A 03C0              xjmp L18
 009C           L17:
 009C                   .dbline 80
 009C           ;       while (i --) {
 009C                   .dbline 81
 009C           ;               if ((PINE & (1 << PE4)) != 0) {                                 /*按键是否为低电平*/
 009C 0C9B              sbis 0x1,4
 009E 01C0              rjmp L20
 00A0                   .dbline 81
 00A0                   .dbline 82
 00A0           ;                       return ;
 00A0 0DC0              xjmp L16
 00A2           L20:
 00A2                   .dbline 84
 00A2           L18:
 00A2                   .dbline 80
 00A2 1801              movw R2,R16
 00A4 0150              subi R16,1
 00A6 1040              sbci R17,0
 00A8 2220              tst R2
 00AA C1F7              brne L17
 00AC 3320              tst R3
 00AE B1F7              brne L17
 00B0           X1:
 00B0                   .dbline 86
 00B0           ;                       }
 00B0           ;               }
 00B0           ; 
 00B0           ;       PORTB ^= (1 << PB4);                                                            /*PB1电平取反*/
 00B0 80E1              ldi R24,16
 00B2 28B2              in R2,0x18
 00B4 2826              eor R2,R24
 00B6 28BA              out 0x18,R2
 00B8           L22:
 00B8                   .dbline 87
 00B8           L23:
 00B8                   .dbline 87
 00B8           ;       while ((PINE & (1 << PE4)) == 0);                                       /*等待按键松开*/
 00B8 0C9B              sbis 0x1,4
 00BA FECF              rjmp L22
 00BC                   .dbline -2
 00BC           L16:
 00BC 2990              ld R2,y+
 00BE 2FBE              out 0x3f,R2
 00C0 8991              ld R24,y+
 00C2 1991              ld R17,y+
 00C4 0991              ld R16,y+
 00C6 3990              ld R3,y+
 00C8 2990              ld R2,y+
 00CA                   .dbline 0 ; func end
 00CA 1895              reti
 00CC                   .dbsym r i 16 i
 00CC                   .dbend
                        .area vector(rom, abs)
                        .org 24
 0018 0C946600          jmp _Int5
                        .area text(rom, con, rel)
 00CC                   .dbfile E:\ICCAVR\project\AVRMEG~3\icc\006-INT-LED\main.c
 00CC                   .dbfunc e Int5 _Int5 fV
                        .even
 00CC           _Int5::
 00CC 2A92              st -y,R2
 00CE 8A93              st -y,R24
 00D0 2FB6              in R2,0x3f
 00D2 2A92              st -y,R2
 00D4                   .dbline -1
 00D4                   .dbline 92
 00D4           ; }
 00D4           ; 
 00D4           ; /*外部中断INT5,任意电平变化触发*/
 00D4           ; #pragma interrupt_handler Int5: 7
 00D4           ; void Int5(void) {
 00D4                   .dbline 93
 00D4           ;       PORTB ^= (1 << PB5);                                                            /*PB1电平取反*/
 00D4 80E2              ldi R24,32
 00D6 28B2              in R2,0x18
 00D8 2826              eor R2,R24
 00DA 28BA              out 0x18,R2
 00DC                   .dbline -2
 00DC           L25:
 00DC 2990              ld R2,y+
 00DE 2FBE              out 0x3f,R2
 00E0 8991              ld R24,y+
 00E2 2990              ld R2,y+
 00E4                   .dbline 0 ; func end
 00E4 1895              reti
 00E6                   .dbend
                        .area vector(rom, abs)
                        .org 28
 001C 0C947300          jmp _Int6
                        .area text(rom, con, rel)
 00E6                   .dbfile E:\ICCAVR\project\AVRMEG~3\icc\006-INT-LED\main.c
 00E6                   .dbfunc e Int6 _Int6 fV
 00E6           ;              i -> R16,R17
                        .even
 00E6           _Int6::
 00E6 2A92              st -y,R2
 00E8 3A92              st -y,R3
 00EA 0A93              st -y,R16
 00EC 1A93              st -y,R17
 00EE 8A93              st -y,R24
 00F0 2FB6              in R2,0x3f
 00F2 2A92              st -y,R2
 00F4                   .dbline -1
 00F4                   .dbline 98
 00F4           ; }
 00F4           ; 
 00F4           ; /*外部中断INT4,下降沿触发*/
 00F4           ; #pragma interrupt_handler Int6: 8
 00F4           ; void Int6(void) {
 00F4                   .dbline 101
 00F4           ;       unsigned int i;
 00F4           ; 
 00F4           ;       i = 1000;                                                                                       /*防按键颤动代码*/
 00F4 08EE              ldi R16,1000
 00F6 13E0              ldi R17,3
 00F8 03C0              xjmp L28
 00FA           L27:
 00FA                   .dbline 102
 00FA           ;       while (i --) {
 00FA                   .dbline 103
 00FA           ;               if ((PINE & (1 << PE6)) != 0) {                                 /*按键是否为低电平*/
 00FA 0E9B              sbis 0x1,6
 00FC 01C0              rjmp L30
 00FE                   .dbline 103
 00FE                   .dbline 104
 00FE           ;                       return ;
 00FE 0BC0              xjmp L26
 0100           L30:
 0100                   .dbline 106
 0100           L28:
 0100                   .dbline 102
 0100 1801              movw R2,R16
 0102 0150              subi R16,1
 0104 1040              sbci R17,0
 0106 2220              tst R2
 0108 C1F7              brne L27
 010A 3320              tst R3
 010C B1F7              brne L27
 010E           X2:
 010E                   .dbline 108
 010E           ;                       }
 010E           ;               }
 010E           ; 
 010E           ;       PORTB ^= (1 << PB6);                                                            /*PB1电平取反*/
 010E 80E4              ldi R24,64
 0110 28B2              in R2,0x18
 0112 2826              eor R2,R24
 0114 28BA              out 0x18,R2
 0116                   .dbline -2
 0116           L26:
 0116 2990              ld R2,y+
 0118 2FBE              out 0x3f,R2
 011A 8991              ld R24,y+
 011C 1991              ld R17,y+
 011E 0991              ld R16,y+
 0120 3990              ld R3,y+
 0122 2990              ld R2,y+
 0124                   .dbline 0 ; func end
 0124 1895              reti
 0126                   .dbsym r i 16 i
 0126                   .dbend
                        .area vector(rom, abs)
                        .org 32
 0020 0C949300          jmp _Int7
                        .area text(rom, con, rel)
 0126                   .dbfile E:\ICCAVR\project\AVRMEG~3\icc\006-INT-LED\main.c
 0126                   .dbfunc e Int7 _Int7 fV
 0126           ;              i -> R16,R17
                        .even
 0126           _Int7::
 0126 2A92              st -y,R2
 0128 3A92              st -y,R3
 012A 0A93              st -y,R16
 012C 1A93              st -y,R17
 012E 8A93              st -y,R24
 0130 9A93              st -y,R25
 0132 2FB6              in R2,0x3f
 0134 2A92              st -y,R2
 0136                   .dbline -1
 0136                   .dbline 113
 0136           ; }
 0136           ; 
 0136           ; /*外部中断INT4,上升沿触发*/
 0136           ; #pragma interrupt_handler Int7: 9
 0136           ; void Int7(void) {
 0136                   .dbline 116
 0136           ;       unsigned int i;
 0136           ; 
 0136           ;       i = 1000;                                                                                       /*防按键颤动代码*/
 0136 08EE              ldi R16,1000
 0138 13E0              ldi R17,3
 013A 03C0              xjmp L34
 013C           L33:
 013C                   .dbline 117
 013C           ;       while (i --) {
 013C                   .dbline 118
 013C           ;               if ((PINE & (1 << PE7)) == 0) {                                 /*按键是否为高电平*/
 013C 0F99              sbic 0x1,7
 013E 01C0              rjmp L36
 0140                   .dbline 118
 0140                   .dbline 119
 0140           ;                       return ;
 0140 0EC0              xjmp L32
 0142           L36:
 0142                   .dbline 121
 0142           L34:
 0142                   .dbline 117
 0142 1801              movw R2,R16
 0144 0150              subi R16,1
 0146 1040              sbci R17,0
 0148 2220              tst R2
 014A C1F7              brne L33
 014C 3320              tst R3
 014E B1F7              brne L33
 0150           X3:
 0150                   .dbline 123
 0150           ;                       }
 0150           ;               }
 0150           ; 
 0150           ;       PORTB ^= (1 << PB7);                                                            /*PB1电平取反*/
 0150 80E8              ldi R24,128
 0152 90E0              ldi R25,0
 0154 28B2              in R2,0x18
 0156 3324              clr R3
 0158 2826              eor R2,R24
 015A 3926              eor R3,R25
 015C 28BA              out 0x18,R2
 015E                   .dbline -2
 015E           L32:
 015E 2990              ld R2,y+
 0160 2FBE              out 0x3f,R2
 0162 9991              ld R25,y+
 0164 8991              ld R24,y+
 0166 1991              ld R17,y+
 0168 0991              ld R16,y+
 016A 3990              ld R3,y+
 016C 2990              ld R2,y+
 016E                   .dbline 0 ; func end
 016E 1895              reti
 0170                   .dbsym r i 16 i
 0170                   .dbend

⌨️ 快捷键说明

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