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