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

📄 ledbright.lis

📁 红外遥控模拟的汇编程序
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 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 + -