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

📄 sl3010.lis

📁 单片机开发资料光盘-双龙-686M.zip
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0130                   .dbline 222
 0130           ;                 PORTA = 0x55;
 0130 85E5              ldi R24,85
 0132 8BBB              out 0x1b,R24
 0134                   .dbline 223
 0134           ;                 delay_ms(250);
 0134 0AEF              ldi R16,250
 0136 10E0              ldi R17,0
 0138 7BDF              rcall _delay_ms
 013A                   .dbline 224
 013A           ;                 PORTA = 0xAA;
 013A 8AEA              ldi R24,170
 013C 8BBB              out 0x1b,R24
 013E                   .dbline 225
 013E           ;                 delay_ms(250);
 013E 0AEF              ldi R16,250
 0140 10E0              ldi R17,0
 0142 76DF              rcall _delay_ms
 0144                   .dbline 226
 0144           ;                 remote_in = PINB & 0x0f;
 0144 66B3              in R22,0x16
 0146 6F70              andi R22,15
 0148                   .dbline 227
 0148           ;                 if(remote_in != 0x00)
 0148 09F0              breq L38
 014A                   .dbline 228
 014A           ;                   {break;}
 014A                   .dbline 228
 014A 01C0              rjmp L35
 014C           L38:
 014C                   .dbline 229
 014C           L34:
 014C                   .dbline 217
 014C EDCF              rjmp L33
 014E           L35:
 014E                   .dbline 230
 014E           L31:
 014E                   .dbline -2
 014E                   .dbline 231
 014E           ;                }
 014E           ;    }   
 014E           ; }
 014E           L17:
 014E 00D0              rcall pop_gset2
 0150                   .dbline 0 ; func end
 0150 0895              ret
 0152                   .dbsym r remote_in 22 c
 0152                   .dbsym r sw_in 20 c
 0152                   .dbend
 0152                   .dbfunc e mic_startup _mic_startup fV
 0152           ;         mic_in -> R20
                        .even
 0152           _mic_startup::
 0152 00D0              rcall push_gset1
 0154                   .dbline -1
 0154                   .dbline 234
 0154           ; 
 0154           ; void mic_startup()
 0154           ; {//声控启动程序运行
 0154                   .dbline 236
 0154           ;  unsigned char mic_in;
 0154           ;  DDRC = 0x01;PORTC = 0xFF;
 0154 81E0              ldi R24,1
 0156 84BB              out 0x14,R24
 0158                   .dbline 236
 0158 8FEF              ldi R24,255
 015A 85BB              out 0x15,R24
 015C                   .dbline 237
 015C           ;  delay_us(1);
 015C 01E0              ldi R16,1
 015E 10E0              ldi R17,0
 0160 5FDF              rcall _delay_us
 0162 04C0              rjmp L42
 0164           L41:
 0164                   .dbline 239
 0164           ;  while(1)//等待pc3(声控键)按键按下    
 0164           ;  {      //无键按下等待
 0164                   .dbline 240
 0164           ;   mic_in = PINC & 0x08;     //pc2=0
 0164 43B3              in R20,0x13
 0166 4870              andi R20,8
 0168                   .dbline 241
 0168           ;   if(mic_in == 0){break;}
 0168 09F4              brne L44
 016A                   .dbline 241
 016A                   .dbline 241
 016A 01C0              rjmp L43
 016C           L44:
 016C                   .dbline 242
 016C           L42:
 016C                   .dbline 238
 016C FBCF              rjmp L41
 016E           L43:
 016E                   .dbline -2
 016E                   .dbline 243
 016E           ;  }//有键按下运行下面的程序
 016E           ; }
 016E           L40:
 016E 00D0              rcall pop_gset1
 0170                   .dbline 0 ; func end
 0170 0895              ret
 0172                   .dbsym r mic_in 20 c
 0172                   .dbend
 0172                   .dbfunc e remote_auto_time _remote_auto_time fV
 0172           ;      remote_in -> R16
                        .even
 0172           _remote_auto_time::
 0172                   .dbline -1
 0172                   .dbline 260
 0172           ; 
 0172           ; //                #       
 0172           ; //                #
 0172           ; //                #
 0172           ; //                #
 0172           ; //                #    //  delay_time1  转弯时间
 0172           ; //        # # # # #    //  delay_time2  直行时间
 0172           ; //      # X       #    //<A>  0x04  delay_time2-50
 0172           ; //      #   B  C  #    //<B>  0x02  delay_time1+50
 0172           ; //      #  D  A   #    //<C>  0x08  delay_time1-50
 0172           ; //      #         #    //<D>  0x01  delay_time2+50
 0172           ; //        # # # #      // max: 2000   min: 200 
 0172           ; 
 0172           ; unsigned int delay_time1,delay_time2;
 0172           ; 
 0172           ; void remote_auto_time()
 0172           ; {
 0172                   .dbline 262
 0172           ;  unsigned char remote_in;
 0172           ;         remote_in = PINB & 0x0F;
 0172 06B3              in R16,0x16
 0174 0F70              andi R16,15
 0176                   .dbline 263
 0176           ;       switch (remote_in)
 0176 1127              clr R17
 0178 0030              cpi R16,0
 017A 0107              cpc R16,R17
 017C 09F4              brne X4
 017E 62C0              rjmp L48
 0180           X4:
 0180           X2:
 0180 0130              cpi R16,1
 0182 E0E0              ldi R30,0
 0184 1E07              cpc R17,R30
 0186 09F4              brne X5
 0188 4AC0              rjmp L59
 018A           X5:
 018A 0230              cpi R16,2
 018C E0E0              ldi R30,0
 018E 1E07              cpc R17,R30
 0190 F1F0              breq L53
 0192 0430              cpi R16,4
 0194 E0E0              ldi R30,0
 0196 1E07              cpc R17,R30
 0198 29F0              breq L50
 019A 0830              cpi R16,8
 019C E0E0              ldi R30,0
 019E 1E07              cpc R17,R30
 01A0 51F1              breq L56
 01A2 50C0              rjmp L47
 01A4           X3:
 01A4                   .dbline 264
 01A4           ;               {//检测遥控器是否有键按下
 01A4           L50:
 01A4                   .dbline 266
 01A4           ;       case 0x04:  // < A >
 01A4           ;                delay_time2 = delay_time2 - 50;
 01A4 80910000          lds R24,_delay_time2
 01A8 90910100          lds R25,_delay_time2+1
 01AC C297              sbiw R24,50
 01AE 90930100          sts _delay_time2+1,R25
 01B2 80930000          sts _delay_time2,R24
 01B6                   .dbline 267
 01B6           ;            if(delay_time2 == 50)
 01B6 8233              cpi R24,50
 01B8 E0E0              ldi R30,0
 01BA 9E07              cpc R25,R30
 01BC 09F0              breq X6
 01BE 42C0              rjmp L48
 01C0           X6:
 01C0                   .dbline 268
 01C0           ;                  {delay_time2 = 100;}  
 01C0                   .dbline 268
 01C0 84E6              ldi R24,100
 01C2 90E0              ldi R25,0
 01C4 90930100          sts _delay_time2+1,R25
 01C8 80930000          sts _delay_time2,R24
 01CC                   .dbline 268
 01CC                   .dbline 269
 01CC           ;               break;
 01CC 3BC0              rjmp L48
 01CE           L53:
 01CE                   .dbline 271
 01CE           ;       case 0x02:  // < B >
 01CE           ;                delay_time1 = delay_time1 + 50;
 01CE 80910200          lds R24,_delay_time1
 01D2 90910300          lds R25,_delay_time1+1
 01D6 C296              adiw R24,50
 01D8 90930300          sts _delay_time1+1,R25
 01DC 80930200          sts _delay_time1,R24
 01E0                   .dbline 272
 01E0           ;            if(delay_time1 == 2050)
 01E0 8230              cpi R24,2
 01E2 E8E0              ldi R30,8
 01E4 9E07              cpc R25,R30
 01E6 71F5              brne L48
 01E8                   .dbline 273
 01E8           ;                  {delay_time1 = 2000;}         
 01E8                   .dbline 273
 01E8 80ED              ldi R24,2000
 01EA 97E0              ldi R25,7
 01EC 90930300          sts _delay_time1+1,R25
 01F0 80930200          sts _delay_time1,R24
 01F4                   .dbline 273
 01F4                   .dbline 274
 01F4           ;               break;
 01F4 27C0              rjmp L48
 01F6           L56:
 01F6                   .dbline 276
 01F6           ;       case 0x08:  // < C >
 01F6           ;                delay_time1 = delay_time1 - 50;
 01F6 80910200          lds R24,_delay_time1
 01FA 90910300          lds R25,_delay_time1+1
 01FE C297              sbiw R24,50
 0200 90930300          sts _delay_time1+1,R25
 0204 80930200          sts _delay_time1,R24
 0208                   .dbline 277
 0208           ;            if(delay_time1 == 50)
 0208 8233              cpi R24,50
 020A E0E0              ldi R30,0
 020C 9E07              cpc R25,R30
 020E D1F4              brne L48
 0210                   .dbline 278
 0210           ;                  {delay_time1 = 100;}  
 0210                   .dbline 278
 0210 84E6              ldi R24,100
 0212 90E0              ldi R25,0
 0214 90930300          sts _delay_time1+1,R25
 0218 80930200          sts _delay_time1,R24
 021C                   .dbline 278
 021C                   .dbline 279
 021C           ;               break;
 021C 13C0              rjmp L48
 021E           L59:
 021E                   .dbline 281
 021E           ;       case 0x01:  // < D >
 021E           ;          delay_time2 = delay_time2 + 50;
 021E 80910000          lds R24,_delay_time2
 0222 90910100          lds R25,_delay_time2+1
 0226 C296              adiw R24,50
 0228 90930100          sts _delay_time2+1,R25
 022C 80930000          sts _delay_time2,R24
 0230                   .dbline 282
 0230           ;            if(delay_time2 == 2050)
 0230 8230              cpi R24,2
 0232 E8E0              ldi R30,8
 0234 9E07              cpc R25,R30
 0236 31F4              brne L48
 0238                   .dbline 283
 0238           ;                  {delay_time2 = 2000;}         
 0238                   .dbline 283
 0238 80ED              ldi R24,2000
 023A 97E0              ldi R25,7
 023C 90930100          sts _delay_time2+1,R25
 0240 80930000          sts _delay_time2,R24
 0244                   .dbline 283
 0244                   .dbline 284
 0244           ;               break;
 0244                   .dbline 286
 0244           ;       case 0x00:  // 无按键
 0244           ;            break;
 0244           L47:
 0244           L48:
 0244                   .dbline -2
 0244                   .dbline 288
 0244           ;               } 
 0244           ; }
 0244           L46:
 0244                   .dbline 0 ; func end
 0244 0895              ret
 0246                   .dbsym r remote_in 16 c
 0246                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\icc\include\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 + -