📄 main.lis
字号:
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 + -