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

📄 main.lis

📁 avr icc 平台开发的pwm模拟功能
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0112 3CC0              rjmp L10
 0114                   .dbline 66
 0114           ;         {
 0114                   .dbline 67
 0114           ;             delay_nms(10);    //按键消抖
 0114 0AE0              ldi R16,10
 0116 10E0              ldi R17,0
 0118 0E940000          xcall _delay_nms
 011C                   .dbline 68
 011C           ;             if(!(PINA&(1<<KeyUp)))
 011C C899              sbic 0x19,0
 011E 36C0              rjmp L12
 0120                   .dbline 69
 0120           ;             {
 0120           L14:
 0120                   .dbline 70
 0120           L15:
 0120                   .dbline 70
 0120           ;                 while(!(PINA&(1<<KeyUp)));  //等待按键释放
 0120 C89B              sbis 0x19,0
 0122 FECF              rjmp L14
 0124                   .dbline 71
 0124           ;                 if(OcrReg >= (Icr1Reg+1))
 0124 80910700          lds R24,_Icr1Reg
 0128 90910800          lds R25,_Icr1Reg+1
 012C 0196              adiw R24,1
 012E 20900500          lds R2,_OcrReg
 0132 30900600          lds R3,_OcrReg+1
 0136 2816              cp R2,R24
 0138 3906              cpc R3,R25
 013A CCF0              brlt L17
 013C                   .dbline 72
 013C           ;                 {
 013C                   .dbline 73
 013C           ;                     for(i=0;i<5;i++)
 013C 4427              clr R20
 013E 09C0              xjmp L22
 0140           L19:
 0140                   .dbline 74
 0140                   .dbline 75
 0140 84E0              ldi R24,4
 0142 2BB2              in R2,0x1b
 0144 2826              eor R2,R24
 0146 2BBA              out 0x1b,R2
 0148                   .dbline 76
 0148 08EC              ldi R16,200
 014A 10E0              ldi R17,0
 014C 0E940000          xcall _delay_nms
 0150                   .dbline 77
 0150           L20:
 0150                   .dbline 73
 0150 4395              inc R20
 0152           L22:
 0152                   .dbline 73
 0152 4530              cpi R20,5
 0154 A8F3              brlo L19
 0156                   .dbline 78
 0156           ;                     {
 0156           ;                         PORTA ^= (1<<Above);
 0156           ;                         delay_nms(200);
 0156           ;                     }
 0156           ;                     ClearLine(2);
 0156 02E0              ldi R16,2
 0158 0E940000          xcall _ClearLine
 015C                   .dbline 79
 015C           ;                     LCD_DisplayString(2,1,"Value MAX!");
 015C 80E0              ldi R24,<L23
 015E 90E0              ldi R25,>L23
 0160 9983              std y+1,R25
 0162 8883              std y+0,R24
 0164 21E0              ldi R18,1
 0166 02E0              ldi R16,2
 0168 0E940000          xcall _LCD_DisplayString
 016C                   .dbline 80
 016C           ;                 }
 016C 0FC0              xjmp L18
 016E           L17:
 016E                   .dbline 82
 016E           ;                 else
 016E           ;                 {
 016E                   .dbline 83
 016E           ;                     PORTA |= (1<<Above);
 016E DA9A              sbi 0x1b,2
 0170                   .dbline 84
 0170           ;                     OcrReg += STEP;                    
 0170 80910500          lds R24,_OcrReg
 0174 90910600          lds R25,_OcrReg+1
 0178 805C              subi R24,192  ; offset = 64
 017A 9F4F              sbci R25,255
 017C 90930600          sts _OcrReg+1,R25
 0180 80930500          sts _OcrReg,R24
 0184                   .dbline 85
 0184           ;                     OCR = OcrReg;
 0184 9BBD              out 0x2b,R25
 0186 8ABD              out 0x2a,R24
 0188                   .dbline 86
 0188           ;                     ShowValue(OcrReg);
 0188 8C01              movw R16,R24
 018A 58DF              xcall _ShowValue
 018C                   .dbline 87
 018C           ;                 }
 018C           L18:
 018C                   .dbline 88
 018C           ;             }
 018C           L12:
 018C                   .dbline 89
 018C           ;         }
 018C           L10:
 018C                   .dbline 90
 018C           ;         if(!(PINA&(1<<KeyDown)))
 018C C999              sbic 0x19,1
 018E 39C0              rjmp L24
 0190                   .dbline 91
 0190           ;         {
 0190                   .dbline 92
 0190           ;             delay_nms(10);    //按键消抖
 0190 0AE0              ldi R16,10
 0192 10E0              ldi R17,0
 0194 0E940000          xcall _delay_nms
 0198                   .dbline 93
 0198           ;             if(!(PINA&(1<<KeyDown)))
 0198 C999              sbic 0x19,1
 019A 33C0              rjmp L26
 019C                   .dbline 94
 019C           ;             {
 019C           L28:
 019C                   .dbline 95
 019C           L29:
 019C                   .dbline 95
 019C           ;                 while(!(PINA&(1<<KeyDown)));  //等待按键释放
 019C C99B              sbis 0x19,1
 019E FECF              rjmp L28
 01A0                   .dbline 96
 01A0           ;                 if(OcrReg <= 0)
 01A0 2224              clr R2
 01A2 3324              clr R3
 01A4 40900500          lds R4,_OcrReg
 01A8 50900600          lds R5,_OcrReg+1
 01AC 2414              cp R2,R4
 01AE 3504              cpc R3,R5
 01B0 CCF0              brlt L31
 01B2                   .dbline 97
 01B2           ;                 {
 01B2                   .dbline 98
 01B2           ;                     for(i=0;i<5;i++)
 01B2 4427              clr R20
 01B4 09C0              xjmp L36
 01B6           L33:
 01B6                   .dbline 99
 01B6                   .dbline 100
 01B6 88E0              ldi R24,8
 01B8 2BB2              in R2,0x1b
 01BA 2826              eor R2,R24
 01BC 2BBA              out 0x1b,R2
 01BE                   .dbline 101
 01BE 08EC              ldi R16,200
 01C0 10E0              ldi R17,0
 01C2 0E940000          xcall _delay_nms
 01C6                   .dbline 102
 01C6           L34:
 01C6                   .dbline 98
 01C6 4395              inc R20
 01C8           L36:
 01C8                   .dbline 98
 01C8 4530              cpi R20,5
 01CA A8F3              brlo L33
 01CC                   .dbline 103
 01CC           ;                     {
 01CC           ;                         PORTA ^= (1<<Below);
 01CC           ;                         delay_nms(200);
 01CC           ;                     }
 01CC           ;                      ClearLine(2);
 01CC 02E0              ldi R16,2
 01CE 0E940000          xcall _ClearLine
 01D2                   .dbline 104
 01D2           ;                     LCD_DisplayString(2,1,"Value MIN!");
 01D2 80E0              ldi R24,<L37
 01D4 90E0              ldi R25,>L37
 01D6 9983              std y+1,R25
 01D8 8883              std y+0,R24
 01DA 21E0              ldi R18,1
 01DC 02E0              ldi R16,2
 01DE 0E940000          xcall _LCD_DisplayString
 01E2                   .dbline 105
 01E2           ;                 }
 01E2 0FC0              xjmp L32
 01E4           L31:
 01E4                   .dbline 107
 01E4           ;                 else
 01E4           ;                 {
 01E4                   .dbline 108
 01E4           ;                     PORTA |= (1<<Below);
 01E4 DB9A              sbi 0x1b,3
 01E6                   .dbline 109
 01E6           ;                     OcrReg -= STEP;
 01E6 80910500          lds R24,_OcrReg
 01EA 90910600          lds R25,_OcrReg+1
 01EE 8054              subi R24,64
 01F0 9040              sbci R25,0
 01F2 90930600          sts _OcrReg+1,R25
 01F6 80930500          sts _OcrReg,R24
 01FA                   .dbline 110
 01FA           ;                     OCR = OcrReg;
 01FA 9BBD              out 0x2b,R25
 01FC 8ABD              out 0x2a,R24
 01FE                   .dbline 111
 01FE           ;                     ShowValue(OcrReg);
 01FE 8C01              movw R16,R24
 0200 1DDF              xcall _ShowValue
 0202                   .dbline 112
 0202           ;                 }
 0202           L32:
 0202                   .dbline 113
 0202           ;             }
 0202           L26:
 0202                   .dbline 114
 0202           ;         }       
 0202           L24:
 0202                   .dbline 115
 0202           L8:
 0202                   .dbline 63
 0202 86CF              xjmp L7
 0204           X0:
 0204                   .dbline -2
 0204                   .dbline 116
 0204           ;     }
 0204           ; }
 0204           L5:
 0204 2296              adiw R28,2
 0206                   .dbline 0 ; func end
 0206 0895              ret
 0208                   .dbsym r i 20 c
 0208                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\NEW\AVR_PWM\main.c
 0000           _temp::
 0000                   .blkb 1
 0001                   .dbsym e temp _temp c
 0001           _KeyDown::
 0001                   .blkb 1
 0002                   .dbfile D:\NEW\AVR_PWM/main.h
 0002                   .dbsym e KeyDown _KeyDown c
 0002           _KeyUp::
 0002                   .blkb 1
 0003                   .dbsym e KeyUp _KeyUp c
                        .area data(ram, con, rel)
 0009                   .dbfile D:\NEW\AVR_PWM/main.h
 0009           L37:
 0009                   .blkb 11
                        .area idata
 0009 56616C7565204D494E2100    .byte 'V,'a,'l,'u,'e,32,'M,'I,'N,33,0
                        .area data(ram, con, rel)
 0014                   .dbfile D:\NEW\AVR_PWM/main.h
 0014           L23:
 0014                   .blkb 11
                        .area idata
 0014 56616C7565204D41582100    .byte 'V,'a,'l,'u,'e,32,'M,'A,'X,33,0
                        .area data(ram, con, rel)
 001F                   .dbfile D:\NEW\AVR_PWM/main.h
 001F           L6:
 001F                   .blkb 9
                        .area idata
 001F 50574D207465737400        .byte 'P,'W,'M,32,'t,'e,'s,'t,0
                        .area data(ram, con, rel)
 0028                   .dbfile D:\NEW\AVR_PWM/main.h
 0028           L4:
 0028                   .blkb 9
                        .area idata
 0028 4F43523141203D2000        .byte 'O,'C,'R,49,'A,32,61,32,0
                        .area data(ram, con, rel)
 0031                   .dbfile D:\NEW\AVR_PWM/main.h
 0031           L3:
 0031                   .blkb 5
                        .area idata
 0031 3030303000        .byte 48,48,48,48,0
                        .area data(ram, con, rel)
 0036                   .dbfile D:\NEW\AVR_PWM/main.h

⌨️ 快捷键说明

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