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

📄 keypwm.lis

📁 avr基础程序大全
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0084           ;     uchar key;
 0084           ;     delay(10);
 0084 0AE0              ldi R16,10
 0086 10E0              ldi R17,0
 0088 BBDF              xcall _delay
 008A                   .dbline 52
 008A           ;       if(key_press())
 008A E9DF              xcall _key_press
 008C 0023              tst R16
 008E 49F1              breq L15
 0090           X3:
 0090                   .dbline 53
 0090           ;       {
 0090                   .dbline 54
 0090           ;       key=PIND;
 0090 40B3              in R20,0x10
 0092                   .dbline 55
 0092           ;       key&=0X1c;
 0092 4C71              andi R20,28
 0094                   .dbline 56
 0094           ;       switch(key)
 0094 5527              clr R21
 0096 4431              cpi R20,20
 0098 E0E0              ldi R30,0
 009A 5E07              cpc R21,R30
 009C B9F0              breq L22
 009E           X4:
 009E 84E1              ldi R24,20
 00A0 90E0              ldi R25,0
 00A2 8417              cp R24,R20
 00A4 9507              cpc R25,R21
 00A6 2CF0              brlt L24
 00A8           X5:
 00A8           L23:
 00A8 4C30              cpi R20,12
 00AA E0E0              ldi R30,0
 00AC 5E07              cpc R21,R30
 00AE 51F0              breq L21
 00B0           X6:
 00B0 11C0              xjmp L17
 00B2           L24:
 00B2 4831              cpi R20,24
 00B4 E0E0              ldi R30,0
 00B6 5E07              cpc R21,R30
 00B8 09F0              breq L20
 00BA           X7:
 00BA 0CC0              xjmp L17
 00BC           L20:
 00BC                   .dbline 61
 00BC           ;       {
 00BC           ;          
 00BC           ;          case 0X18:
 00BC           ;                        
 00BC           ;              key_valu=5;
 00BC 85E0              ldi R24,5
 00BE 80931900          sts _key_valu,R24
 00C2                   .dbline 63
 00C2           ;                 
 00C2           ;                  break;
 00C2 0BC0              xjmp L26
 00C4           L21:
 00C4                   .dbline 66
 00C4           ;                case 0X0c: 
 00C4           ;                         
 00C4           ;              key_valu=10;
 00C4 8AE0              ldi R24,10
 00C6 80931900          sts _key_valu,R24
 00CA                   .dbline 67
 00CA           ;                  break;
 00CA 07C0              xjmp L26
 00CC           L22:
 00CC                   .dbline 70
 00CC           ;          case 0X14:
 00CC           ;                        
 00CC           ;              key_valu=15;
 00CC 8FE0              ldi R24,15
 00CE 80931900          sts _key_valu,R24
 00D2                   .dbline 72
 00D2           ;                  
 00D2           ;                       break;
 00D2 03C0              xjmp L26
 00D4           L17:
 00D4                   .dbline 74
 00D4           ;         default:      
 00D4           ;             key_valu=0;          
 00D4 2224              clr R2
 00D6 20921900          sts _key_valu,R2
 00DA                   .dbline 75
 00DA           ;       }
 00DA           L25:
 00DA                   .dbline 76
 00DA           ;         while(key_press());
 00DA           L26:
 00DA                   .dbline 76
 00DA C1DF              xcall _key_press
 00DC 0023              tst R16
 00DE E9F7              brne L25
 00E0           X8:
 00E0                   .dbline 77
 00E0           ;       }
 00E0 03C0              xjmp L16
 00E2           L15:
 00E2                   .dbline 79
 00E2           ;       else
 00E2           ;       {
 00E2                   .dbline 80
 00E2           ;         key_valu=16;
 00E2 80E1              ldi R24,16
 00E4 80931900          sts _key_valu,R24
 00E8                   .dbline 81
 00E8           ;       }
 00E8           L16:
 00E8                   .dbline 82
 00E8           ;       return key_valu;
 00E8 00911900          lds R16,_key_valu
 00EC                   .dbline -2
 00EC           L14:
 00EC                   .dbline 0 ; func end
 00EC 5991              ld R21,y+
 00EE 4991              ld R20,y+
 00F0 0895              ret
 00F2                   .dbsym r key 20 c
 00F2                   .dbend
 00F2                   .dbfunc e main _main fV
 00F2           ;              i -> R10
                        .even
 00F2           _main::
 00F2                   .dbline -1
 00F2                   .dbline 85
 00F2           ; }
 00F2           ; void main()
 00F2           ; {
 00F2                   .dbline 86
 00F2           ;     uchar i=0;
 00F2 AA24              clr R10
 00F4                   .dbline 87
 00F4           ;     DDRA=0xff;
 00F4 8FEF              ldi R24,255
 00F6 8ABB              out 0x1a,R24
 00F8                   .dbline 88
 00F8           ;       DDRB=0XFF;
 00F8 87BB              out 0x17,R24
 00FA                   .dbline 90
 00FA           ;       
 00FA           ;        DDRD|=0X30;
 00FA 81B3              in R24,0x11
 00FC 8063              ori R24,48
 00FE 81BB              out 0x11,R24
 0100                   .dbline 92
 0100           ;       
 0100           ;       TCCR1A=0X63;
 0100 83E6              ldi R24,99
 0102 8FBD              out 0x2f,R24
 0104                   .dbline 93
 0104           ;       TCCR1B=0X13;
 0104 83E1              ldi R24,19
 0106 8EBD              out 0x2e,R24
 0108                   .dbline 95
 0108           ;       
 0108           ;       OCR1A=1249;
 0108 81EE              ldi R24,1249
 010A 94E0              ldi R25,4
 010C 9BBD              out 0x2b,R25
 010E 8ABD              out 0x2a,R24
 0110                   .dbline 96
 0110           ;       OCR1B=31;
 0110 8FE1              ldi R24,31
 0112 90E0              ldi R25,0
 0114 99BD              out 0x29,R25
 0116 88BD              out 0x28,R24
 0118 2DC0              xjmp L30
 011A           L29:
 011A                   .dbline 100
 011A           ;       
 011A           ;       
 011A           ;       while(1)
 011A           ;       {
 011A                   .dbline 101
 011A           ;          if(key_press())
 011A A1DF              xcall _key_press
 011C 0023              tst R16
 011E 51F1              breq L32
 0120           X9:
 0120                   .dbline 102
 0120           ;          {
 0120                   .dbline 103
 0120           ;              i=key_scan();
 0120 AFDF              xcall _key_scan
 0122 A02E              mov R10,R16
 0124                   .dbline 104
 0124           ;                  switch(i)
 0124 4A2D              mov R20,R10
 0126 5527              clr R21
 0128 4A30              cpi R20,10
 012A E0E0              ldi R30,0
 012C 5E07              cpc R21,R30
 012E A1F0              breq L38
 0130           X10:
 0130 8AE0              ldi R24,10
 0132 90E0              ldi R25,0
 0134 8417              cp R24,R20
 0136 9507              cpc R25,R21
 0138 2CF0              brlt L41
 013A           X11:
 013A           L40:
 013A 4530              cpi R20,5
 013C E0E0              ldi R30,0
 013E 5E07              cpc R21,R30
 0140 31F0              breq L37
 0142           X12:
 0142 14C0              xjmp L34
 0144           L41:
 0144 4F30              cpi R20,15
 0146 E0E0              ldi R30,0
 0148 5E07              cpc R21,R30
 014A 59F0              breq L39
 014C           X13:
 014C 0FC0              xjmp L34
 014E           L37:
 014E                   .dbline 107
 014E           ;                  {
 014E           ;                    case 5:
 014E           ;                           OCR1B=31;
 014E 8FE1              ldi R24,31
 0150 90E0              ldi R25,0
 0152 99BD              out 0x29,R25
 0154 88BD              out 0x28,R24
 0156                   .dbline 108
 0156           ;                               break;
 0156 0EC0              xjmp L35
 0158           L38:
 0158                   .dbline 110
 0158           ;                        case 10:
 0158           ;                           OCR1B=62;
 0158 8EE3              ldi R24,62
 015A 90E0              ldi R25,0
 015C 99BD              out 0x29,R25
 015E 88BD              out 0x28,R24
 0160                   .dbline 111
 0160           ;                               break;
 0160 09C0              xjmp L35
 0162           L39:
 0162                   .dbline 113
 0162           ;                        case 15:
 0162           ;                           OCR1B=93; 
 0162 8DE5              ldi R24,93
 0164 90E0              ldi R25,0
 0166 99BD              out 0x29,R25
 0168 88BD              out 0x28,R24
 016A                   .dbline 114
 016A           ;                               break;
 016A 04C0              xjmp L35
 016C           L34:
 016C                   .dbline 117
 016C           ;                       
 016C           ;                       default:
 016C           ;                           OCR1B=124;          
 016C 8CE7              ldi R24,124
 016E 90E0              ldi R25,0
 0170 99BD              out 0x29,R25
 0172 88BD              out 0x28,R24
 0174                   .dbline 118
 0174           ;                  }
 0174           L35:
 0174                   .dbline 119
 0174           ;          }
 0174           L32:
 0174                   .dbline 120
 0174           ;       }
 0174           L30:
 0174                   .dbline 99
 0174 D2CF              xjmp L29
 0176           X14:
 0176                   .dbline -2
 0176           L28:
 0176                   .dbline 0 ; func end
 0176 0895              ret
 0178                   .dbsym r i 10 c
 0178                   .dbend
 0178           ; }

⌨️ 快捷键说明

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