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

📄 sl3010.lis

📁 单片机开发资料光盘-双龙-686M.zip
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0126 10E0              ldi R17,0
 0128 83DF              rcall _delay_ms
 012A                   .dbline 221
 012A           ;                 PORTA = 0xAA;
 012A 8AEA              ldi R24,170
 012C 8BBB              out 0x1b,R24
 012E                   .dbline 222
 012E           ;                 delay_ms(250);
 012E 0AEF              ldi R16,250
 0130 10E0              ldi R17,0
 0132 7EDF              rcall _delay_ms
 0134                   .dbline 223
 0134           ;                 remote_in = PINB & 0x0f;
 0134 66B3              in R22,0x16
 0136 6F70              andi R22,15
 0138                   .dbline 224
 0138           ;                 if(remote_in != 0x00)
 0138 09F0              breq L38
 013A                   .dbline 225
 013A           ;                   {break;}
 013A                   .dbline 225
 013A 01C0              rjmp L35
 013C           L38:
 013C                   .dbline 226
 013C           L34:
 013C                   .dbline 214
 013C EDCF              rjmp L33
 013E           L35:
 013E                   .dbline 227
 013E           L31:
 013E                   .dbline -2
 013E                   .dbline 228
 013E           ;                }
 013E           ;    }   
 013E           ; }
 013E           L17:
 013E 00D0              rcall pop_gset2
 0140                   .dbline 0 ; func end
 0140 0895              ret
 0142                   .dbsym r remote_in 22 c
 0142                   .dbsym r sw_in 20 c
 0142                   .dbend
 0142                   .dbfunc e mic_startup _mic_startup fV
 0142           ;         mic_in -> R16
                        .even
 0142           _mic_startup::
 0142                   .dbline -1
 0142                   .dbline 231
 0142           ; 
 0142           ; void mic_startup()
 0142           ; {//声控启动程序运行
 0142 04C0              rjmp L42
 0144           L41:
 0144                   .dbline 235
 0144           ;  unsigned char mic_in;
 0144           ; 
 0144           ;  while(1)//等待pc3(声控键)按键按下    
 0144           ;  {      //无键按下等待
 0144                   .dbline 236
 0144           ;   mic_in = PINC & 0x08;     //pc2=0
 0144 03B3              in R16,0x13
 0146 0870              andi R16,8
 0148                   .dbline 237
 0148           ;   if(mic_in == 0){break;}
 0148 09F4              brne L44
 014A                   .dbline 237
 014A                   .dbline 237
 014A 01C0              rjmp L43
 014C           L44:
 014C                   .dbline 238
 014C           L42:
 014C                   .dbline 234
 014C FBCF              rjmp L41
 014E           L43:
 014E                   .dbline -2
 014E                   .dbline 239
 014E           ;  }//有键按下运行下面的程序
 014E           ; }
 014E           L40:
 014E                   .dbline 0 ; func end
 014E 0895              ret
 0150                   .dbsym r mic_in 16 c
 0150                   .dbend
 0150                   .dbfunc e remote_auto_time _remote_auto_time fV
 0150           ;      remote_in -> R16
                        .even
 0150           _remote_auto_time::
 0150                   .dbline -1
 0150                   .dbline 256
 0150           ; 
 0150           ; //                #       
 0150           ; //                #
 0150           ; //                #
 0150           ; //                #
 0150           ; //                #    //  delay_time1  转弯时间
 0150           ; //        # # # # #    //  delay_time2  直行时间
 0150           ; //      # X       #    //<A>  0x04  delay_time2-50
 0150           ; //      #   B  C  #    //<B>  0x02  delay_time1+50
 0150           ; //      #  D  A   #    //<C>  0x08  delay_time1-50
 0150           ; //      #         #    //<D>  0x01  delay_time2+50
 0150           ; //        # # # #      // max: 2000   min: 200 
 0150           ; 
 0150           ; unsigned int delay_time1,delay_time2;
 0150           ; 
 0150           ; void remote_auto_time()
 0150           ; {
 0150                   .dbline 258
 0150           ;  unsigned char remote_in;
 0150           ;         remote_in = PINB & 0x0F;
 0150 06B3              in R16,0x16
 0152 0F70              andi R16,15
 0154                   .dbline 259
 0154           ;       switch (remote_in)
 0154 1127              clr R17
 0156 0030              cpi R16,0
 0158 0107              cpc R16,R17
 015A 09F4              brne X4
 015C 62C0              rjmp L48
 015E           X4:
 015E           X2:
 015E 0130              cpi R16,1
 0160 E0E0              ldi R30,0
 0162 1E07              cpc R17,R30
 0164 09F4              brne X5
 0166 4AC0              rjmp L59
 0168           X5:
 0168 0230              cpi R16,2
 016A E0E0              ldi R30,0
 016C 1E07              cpc R17,R30
 016E F1F0              breq L53
 0170 0430              cpi R16,4
 0172 E0E0              ldi R30,0
 0174 1E07              cpc R17,R30
 0176 29F0              breq L50
 0178 0830              cpi R16,8
 017A E0E0              ldi R30,0
 017C 1E07              cpc R17,R30
 017E 51F1              breq L56
 0180 50C0              rjmp L47
 0182           X3:
 0182                   .dbline 260
 0182           ;               {//检测遥控器是否有键按下
 0182           L50:
 0182                   .dbline 262
 0182           ;       case 0x04:  // < A >
 0182           ;                delay_time2 = delay_time2 - 50;
 0182 80910000          lds R24,_delay_time2
 0186 90910100          lds R25,_delay_time2+1
 018A C297              sbiw R24,50
 018C 90930100          sts _delay_time2+1,R25
 0190 80930000          sts _delay_time2,R24
 0194                   .dbline 263
 0194           ;            if(delay_time2 == 50)
 0194 8233              cpi R24,50
 0196 E0E0              ldi R30,0
 0198 9E07              cpc R25,R30
 019A 09F0              breq X6
 019C 42C0              rjmp L48
 019E           X6:
 019E                   .dbline 264
 019E           ;                  {delay_time2 = 100;}  
 019E                   .dbline 264
 019E 84E6              ldi R24,100
 01A0 90E0              ldi R25,0
 01A2 90930100          sts _delay_time2+1,R25
 01A6 80930000          sts _delay_time2,R24
 01AA                   .dbline 264
 01AA                   .dbline 265
 01AA           ;               break;
 01AA 3BC0              rjmp L48
 01AC           L53:
 01AC                   .dbline 267
 01AC           ;       case 0x02:  // < B >
 01AC           ;                delay_time1 = delay_time1 + 50;
 01AC 80910200          lds R24,_delay_time1
 01B0 90910300          lds R25,_delay_time1+1
 01B4 C296              adiw R24,50
 01B6 90930300          sts _delay_time1+1,R25
 01BA 80930200          sts _delay_time1,R24
 01BE                   .dbline 268
 01BE           ;            if(delay_time1 == 2050)
 01BE 8230              cpi R24,2
 01C0 E8E0              ldi R30,8
 01C2 9E07              cpc R25,R30
 01C4 71F5              brne L48
 01C6                   .dbline 269
 01C6           ;                  {delay_time1 = 2000;}         
 01C6                   .dbline 269
 01C6 80ED              ldi R24,2000
 01C8 97E0              ldi R25,7
 01CA 90930300          sts _delay_time1+1,R25
 01CE 80930200          sts _delay_time1,R24
 01D2                   .dbline 269
 01D2                   .dbline 270
 01D2           ;               break;
 01D2 27C0              rjmp L48
 01D4           L56:
 01D4                   .dbline 272
 01D4           ;       case 0x08:  // < C >
 01D4           ;                delay_time1 = delay_time1 - 50;
 01D4 80910200          lds R24,_delay_time1
 01D8 90910300          lds R25,_delay_time1+1
 01DC C297              sbiw R24,50
 01DE 90930300          sts _delay_time1+1,R25
 01E2 80930200          sts _delay_time1,R24
 01E6                   .dbline 273
 01E6           ;            if(delay_time1 == 50)
 01E6 8233              cpi R24,50
 01E8 E0E0              ldi R30,0
 01EA 9E07              cpc R25,R30
 01EC D1F4              brne L48
 01EE                   .dbline 274
 01EE           ;                  {delay_time1 = 100;}  
 01EE                   .dbline 274
 01EE 84E6              ldi R24,100
 01F0 90E0              ldi R25,0
 01F2 90930300          sts _delay_time1+1,R25
 01F6 80930200          sts _delay_time1,R24
 01FA                   .dbline 274
 01FA                   .dbline 275
 01FA           ;               break;
 01FA 13C0              rjmp L48
 01FC           L59:
 01FC                   .dbline 277
 01FC           ;       case 0x01:  // < D >
 01FC           ;          delay_time2 = delay_time2 + 50;
 01FC 80910000          lds R24,_delay_time2
 0200 90910100          lds R25,_delay_time2+1
 0204 C296              adiw R24,50
 0206 90930100          sts _delay_time2+1,R25
 020A 80930000          sts _delay_time2,R24
 020E                   .dbline 278
 020E           ;            if(delay_time2 == 2050)
 020E 8230              cpi R24,2
 0210 E8E0              ldi R30,8
 0212 9E07              cpc R25,R30
 0214 31F4              brne L48
 0216                   .dbline 279
 0216           ;                  {delay_time2 = 2000;}         
 0216                   .dbline 279
 0216 80ED              ldi R24,2000
 0218 97E0              ldi R25,7
 021A 90930100          sts _delay_time2+1,R25
 021E 80930000          sts _delay_time2,R24
 0222                   .dbline 279
 0222                   .dbline 280
 0222           ;               break;
 0222                   .dbline 282
 0222           ;       case 0x00:  // 无按键
 0222           ;            break;
 0222           L47:
 0222           L48:
 0222                   .dbline -2
 0222                   .dbline 284
 0222           ;               } 
 0222           ; }
 0222           L46:
 0222                   .dbline 0 ; func end
 0222 0895              ret
 0224                   .dbsym r remote_in 16 c
 0224                   .dbend
 0224                   .dbfunc e main _main fV
                        .even
 0224           _main::
 0224                   .dbline -1
 0224                   .dbline 286
 0224           ; void main()
 0224           ; {
 0224                   .dbline -2
 0224                   .dbline 288
 0224           ; 
 0224           ; }
 0224           L63:
 0224                   .dbline 0 ; func end
 0224 0895              ret
 0226                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\icc\iccavr\sl3010\sl3010\sl3010.c
 0000           _delay_time2::
 0000                   .blkb 2
 0002                   .dbsym e delay_time2 _delay_time2 i
 0002           _delay_time1::
 0002                   .blkb 2
 0004                   .dbsym e delay_time1 _delay_time1 i
 0004           _work_status::
 0004                   .blkb 1
 0005                   .dbsym e work_status _work_status c

⌨️ 快捷键说明

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