📄 ledbright.lis
字号:
00C2 379A sbi 0x6,7
00C4 .dbline 111
00C4 369A sbi 0x6,6
00C6 .dbline 112
00C6 ; WDR();
00C6 A895 wdr
00C8 L29:
00C8 .dbline 114
00C8 ; do
00C8 ; {
00C8 .dbline 115
00C8 ; ;
00C8 .dbline 116
00C8 L30:
00C8 .dbline 116
00C8 ; }while(!(ADCSR&(1<<ADIF)));
00C8 349B sbis 0x6,4
00CA FECF rjmp L29
00CC .dbline 119
00CC ; //if(vol_avg!=2)
00CC ; //{
00CC ; pot_vol=ADCL;
00CC 24B0 in R2,0x4
00CE 3324 clr R3
00D0 30920500 sts _pot_vol+1,R3
00D4 20920400 sts _pot_vol,R2
00D8 .dbline 120
00D8 ; pot_vol|=(uint)(ADCH<<8);
00D8 25B0 in R2,0x5
00DA 3324 clr R3
00DC 322C mov R3,R2
00DE 2224 clr R2
00E0 40900400 lds R4,_pot_vol
00E4 50900500 lds R5,_pot_vol+1
00E8 4228 or R4,R2
00EA 5328 or R5,R3
00EC 50920500 sts _pot_vol+1,R5
00F0 40920400 sts _pot_vol,R4
00F4 .dbline 121
00F4 ; pot_vol=(uchar)(pot_vol/4);
00F4 1201 movw R2,R4
00F6 3694 lsr R3
00F8 2794 ror R2
00FA 3694 lsr R3
00FC 2794 ror R2
00FE 3324 clr R3
0100 30920500 sts _pot_vol+1,R3
0104 20920400 sts _pot_vol,R2
0108 .dbline 132
0108 ; //vol_avg++;
0108 ; // vol_to=vol_to+(uint)pot_vol;
0108 ; // return;
0108 ; //}
0108 ; // else
0108 ; // {
0108 ;
0108 ; // adc_l=(uchar)(vol_to/2);//high bit
0108 ; // vol_to=0;
0108 ; // }
0108 ; return pot_vol;
0108 022D mov R16,R2
010A .dbline -2
010A L28:
010A .dbline 0 ; func end
010A 0895 ret
010C .dbend
010C .dbfunc e manu_mode _manu_mode fV
.even
010C _manu_mode::
010C .dbline -1
010C .dbline 136
010C ; }
010C ;
010C ; void manu_mode(void)
010C ; {
010C .dbline 143
010C ; //unsigned char i;
010C ; //bitset(PORTD,1);
010C ; //bitclr(PORTD,0);
010C ;
010C ; //if((PINC&0x02))
010C ;
010C ; pwmopen(pot_charge());
010C D6DF rcall _pot_charge
010E A7DF rcall _pwmopen
0110 .dbline -2
0110 L32:
0110 .dbline 0 ; func end
0110 0895 ret
0112 .dbend
0112 .dbfunc e sw_check _sw_check fV
.even
0112 _sw_check::
0112 .dbline -1
0112 .dbline 147
0112 ;
0112 ; }
0112 ; void sw_check(void)
0112 ; {
0112 .dbline 148
0112 ; if (!(PINC&0x02)){uchsw=1;auto_mode();}//自动模式
0112 9999 sbic 0x13,1
0114 05C0 rjmp L34
0116 .dbline 148
0116 .dbline 148
0116 81E0 ldi R24,1
0118 80930300 sts _uchsw,R24
011C .dbline 148
011C ABDF rcall _auto_mode
011E .dbline 148
011E 04C0 rjmp L35
0120 L34:
0120 .dbline 149
0120 .dbline 149
0120 2224 clr R2
0122 20920300 sts _uchsw,R2
0126 .dbline 149
0126 F2DF rcall _manu_mode
0128 .dbline 149
0128 L35:
0128 .dbline -2
0128 L33:
0128 .dbline 0 ; func end
0128 0895 ret
012A .dbend
012A .dbfunc e vlr_v _vlr_v fV
.even
012A _vlr_v::
012A .dbline -1
012A .dbline 154
012A ; else {uchsw=0;manu_mode();}//手动模式
012A ; }
012A ;
012A ;
012A ; void vlr_v(void)
012A ; {
012A .dbline 155
012A ; num=1;
012A 81E0 ldi R24,1
012C 90E0 ldi R25,0
012E 90930200 sts _num+1,R25
0132 80930100 sts _num,R24
0136 .dbline 157
0136 ;
0136 ; pot_vol=0;
0136 2224 clr R2
0138 3324 clr R3
013A 30920500 sts _pot_vol+1,R3
013E 20920400 sts _pot_vol,R2
0142 .dbline 158
0142 ; uchsw=0;
0142 20920300 sts _uchsw,R2
0146 .dbline 159
0146 ; pwm=0;
0146 20920000 sts _pwm,R2
014A .dbline -2
014A L36:
014A .dbline 0 ; func end
014A 0895 ret
014C .dbend
014C .dbfunc e main _main fV
.even
014C _main::
014C .dbline -1
014C .dbline 163
014C ;
014C ; }
014C ; void main(void)
014C ; {
014C .dbline 165
014C ;
014C ; init_devices();
014C 73DF rcall _init_devices
014E .dbline 166
014E ; vlr_v();
014E EDDF rcall _vlr_v
0150 .dbline 167
0150 ; TCCR1B=0x00; //停止PWM
0150 2224 clr R2
0152 2EBC out 0x2e,R2
0154 .dbline 168
0154 ; TCCR1A=0x00;
0154 2FBC out 0x2f,R2
0156 5BC0 rjmp L39
0158 L38:
0158 .dbline 170
0158 ; while(1)
0158 ; {
0158 .dbline 171
0158 ; if (!(PINC&0x04))
0158 9A99 sbic 0x13,2
015A 09C0 rjmp L41
015C .dbline 172
015C ; {
015C .dbline 173
015C ; PORTD=0;
015C 2224 clr R2
015E 22BA out 0x12,R2
0160 .dbline 174
0160 ; DDRD=0;
0160 21BA out 0x11,R2
0162 .dbline 175
0162 ; TCCR1A = 0x82; //打开PWM
0162 82E8 ldi R24,130
0164 8FBD out 0x2f,R24
0166 .dbline 176
0166 ; TCCR1B = 0x19;
0166 89E1 ldi R24,25
0168 8EBD out 0x2e,R24
016A .dbline 177
016A ; sw_check();
016A D3DF rcall _sw_check
016C .dbline 178
016C ; }
016C 50C0 rjmp L42
016E L41:
016E .dbline 180
016E ; else
016E ; {
016E .dbline 181
016E ; clpwm();
016E 7BDF rcall _clpwm
0170 .dbline 182
0170 ; bitclr(PORTB,1);
0170 C198 cbi 0x18,1
0172 .dbline 183
0172 ; for(num=1;0x80>num;num=num*2) //由亮变暗
0172 81E0 ldi R24,1
0174 90E0 ldi R25,0
0176 90930200 sts _num+1,R25
017A 80930100 sts _num,R24
017E 17C0 rjmp L46
0180 L43:
0180 .dbline 184
0180 ; {
0180 .dbline 185
0180 ; if (!(PINC&0x04)) break;
0180 9A99 sbic 0x13,2
0182 01C0 rjmp L47
0184 .dbline 185
0184 1DC0 rjmp L45
0186 L47:
0186 .dbline 186
0186 20900100 lds R2,_num
018A 30900200 lds R3,_num+1
018E 22BA out 0x12,R2
0190 .dbline 187
0190 21BA out 0x11,R2
0192 .dbline 188
0192 59DF rcall _delay
0194 .dbline 189
0194 58DF rcall _delay
0196 .dbline 190
0196 57DF rcall _delay
0198 .dbline 191
0198 L44:
0198 .dbline 183
0198 20910100 lds R18,_num
019C 30910200 lds R19,_num+1
01A0 02E0 ldi R16,2
01A2 10E0 ldi R17,0
01A4 00D0 rcall empy16s
01A6 10930200 sts _num+1,R17
01AA 00930100 sts _num,R16
01AE L46:
01AE .dbline 183
01AE 20900100 lds R2,_num
01B2 30900200 lds R3,_num+1
01B6 80E8 ldi R24,128
01B8 90E0 ldi R25,0
01BA 2816 cp R2,R24
01BC 3906 cpc R3,R25
01BE 04F3 brlt L43
01C0 L45:
01C0 .dbline 192
01C0 ; PORTD=num;
01C0 ; DDRD=num;
01C0 ; delay();
01C0 ; delay();
01C0 ; delay();
01C0 ; }
01C0 ; for(num=0x80;1<num;num=num/2)//由暗变亮
01C0 80E8 ldi R24,128
01C2 90E0 ldi R25,0
01C4 90930200 sts _num+1,R25
01C8 80930100 sts _num,R24
01CC 17C0 rjmp L52
01CE L49:
01CE .dbline 193
01CE ; {
01CE .dbline 194
01CE ; if (PINC&0x04) break;
01CE 9A9B sbis 0x13,2
01D0 01C0 rjmp L53
01D2 .dbline 194
01D2 1DC0 rjmp L51
01D4 L53:
01D4 .dbline 195
01D4 20900100 lds R2,_num
01D8 30900200 lds R3,_num+1
01DC 22BA out 0x12,R2
01DE .dbline 196
01DE 21BA out 0x11,R2
01E0 .dbline 197
01E0 32DF rcall _delay
01E2 .dbline 198
01E2 31DF rcall _delay
01E4 .dbline 199
01E4 30DF rcall _delay
01E6 .dbline 200
01E6 L50:
01E6 .dbline 192
01E6 22E0 ldi R18,2
01E8 30E0 ldi R19,0
01EA 00910100 lds R16,_num
01EE 10910200 lds R17,_num+1
01F2 00D0 rcall div16s
01F4 10930200 sts _num+1,R17
01F8 00930100 sts _num,R16
01FC L52:
01FC .dbline 192
01FC 20900100 lds R2,_num
0200 30900200 lds R3,_num+1
0204 81E0 ldi R24,1
0206 90E0 ldi R25,0
0208 8215 cp R24,R2
020A 9305 cpc R25,R3
020C 04F3 brlt L49
020E L51:
020E .dbline 201
020E ; PORTD=num;
020E ; DDRD=num;
020E ; delay();
020E ; delay();
020E ; delay();
020E ; }
020E ; }
020E L42:
020E .dbline 202
020E L39:
020E .dbline 169
020E A4CF rjmp L38
0210 X0:
0210 .dbline -2
0210 L37:
0210 .dbline 0 ; func end
0210 0895 ret
0212 .dbend
.area bss(ram, con, rel)
0000 .dbfile D:\PROTEU~1.7\ICCAVR~1\LED渐明渐暗\LEDBRIGHT.C
0000 _pwm:
0000 .blkb 1
0001 .dbsym s pwm _pwm c
0001 _num::
0001 .blkb 2
0003 .dbsym e num _num I
0003 _uchsw:
0003 .blkb 1
0004 .dbsym s uchsw _uchsw c
0004 _pot_vol:
0004 .blkb 2
0006 .dbsym s pot_vol _pot_vol i
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -