?? 三管.lis
字號(hào):
.module _三管.c
.area text(rom, con, rel)
0000 .dbfile D:\afish\工作內(nèi)容\DIY-08-16\M16\DIY-08-16\三管尋跡\三管.c
0000 .dbfunc e delay_1ms _delay_1ms fV
0000 ; i -> R16,R17
.even
0000 _delay_1ms::
0000 .dbline -1
0000 .dbline 18
0000 ; /***************************************************************************************/
0000 ; /* 廣州雙龍電子
0000 ; WWW.SL.COM.CN
0000 ;
0000 ; PC.7,PC.6,PC.5分別檢測(cè)左中右三個(gè)光電管
0000 ; 功能:
0000 ; 三個(gè)紅光電對(duì)管尋跡
0000 ; LED4~5是前進(jìn)指示燈;LED1~3是左轉(zhuǎn)指示燈;LED6~8右轉(zhuǎn)指示燈
0000 ; Chip type : ATMEGA16
0000 ; Clock frequency : 8MHz
0000 ; */
0000 ; /***************************************************************************************/
0000 ;
0000 ; #include <iom16v.h>
0000 ; #include <macros.h>
0000 ; #define xtal 8
0000 ; void delay_1ms(void) //1ms延時(shí)
0000 ; {
0000 .dbline 20
0000 ; unsigned int i;
0000 ; for(i=1;i<(unsigned int)(xtal*143-2);i++)
0000 01E0 ldi R16,1
0002 10E0 ldi R17,0
0004 02C0 xjmp L5
0006 L2:
0006 .dbline 21
0006 L3:
0006 .dbline 20
0006 0F5F subi R16,255 ; offset = 1
0008 1F4F sbci R17,255
000A L5:
000A .dbline 20
000A 0637 cpi R16,118
000C E4E0 ldi R30,4
000E 1E07 cpc R17,R30
0010 D0F3 brlo L2
0012 .dbline -2
0012 L1:
0012 .dbline 0 ; func end
0012 0895 ret
0014 .dbsym r i 16 i
0014 .dbend
0014 .dbfunc e delay _delay fV
0014 ; i -> R20,R21
0014 ; n -> R22,R23
.even
0014 _delay::
0014 0E940000 xcall push_gset2
0018 B801 movw R22,R16
001A .dbline -1
001A .dbline 24
001A ; ;
001A ; }
001A ; void delay(unsigned int n)
001A ; {
001A .dbline 26
001A ; unsigned int i;
001A ; for(i=0;i<n;i++)
001A 4427 clr R20
001C 5527 clr R21
001E 03C0 xjmp L10
0020 L7:
0020 .dbline 27
0020 EFDF xcall _delay_1ms
0022 L8:
0022 .dbline 26
0022 4F5F subi R20,255 ; offset = 1
0024 5F4F sbci R21,255
0026 L10:
0026 .dbline 26
0026 4617 cp R20,R22
0028 5707 cpc R21,R23
002A D0F3 brlo L7
002C .dbline -2
002C L6:
002C 0E940000 xcall pop_gset2
0030 .dbline 0 ; func end
0030 0895 ret
0032 .dbsym r i 20 i
0032 .dbsym r n 22 i
0032 .dbend
0032 .dbfunc e main _main fV
.even
0032 _main::
0032 .dbline -1
0032 .dbline 30
0032 ; delay_1ms();
0032 ; }
0032 ; void main(void)
0032 ; {
0032 .dbline 31
0032 ; DDRA=0xff; //初始化端口
0032 8FEF ldi R24,255
0034 8ABB out 0x1a,R24
0036 .dbline 32
0036 ; PORTA=0xff;
0036 8BBB out 0x1b,R24
0038 .dbline 33
0038 ; DDRD=0xf0;
0038 80EF ldi R24,240
003A 81BB out 0x11,R24
003C .dbline 34
003C ; PORTD=0x0f;
003C 8FE0 ldi R24,15
003E 82BB out 0x12,R24
0040 .dbline 35
0040 ; DDRC=0x00;
0040 2224 clr R2
0042 24BA out 0x14,R2
0044 .dbline 36
0044 ; PORTC=0xff;
0044 8FEF ldi R24,255
0046 85BB out 0x15,R24
0048 .dbline 37
0048 ; for(;;)
0048 L12:
0048 .dbline 38
0048 ; {
0048 .dbline 39
0048 ; switch(PINC&0xe0)
0048 43B3 in R20,0x13
004A 5527 clr R21
004C 407E andi R20,224
004E 5070 andi R21,0
0050 4036 cpi R20,96
0052 E0E0 ldi R30,0
0054 5E07 cpc R21,R30
0056 09F4 brne X3
0058 51C0 xjmp L22
005A X3:
005A 80E6 ldi R24,96
005C 90E0 ldi R25,0
005E 8417 cp R24,R20
0060 9507 cpc R25,R21
0062 A4F0 brlt L28
0064 L27:
0064 4032 cpi R20,32
0066 E0E0 ldi R30,0
0068 5E07 cpc R21,R30
006A 09F4 brne X4
006C 37C0 xjmp L20
006E X4:
006E 80E2 ldi R24,32
0070 90E0 ldi R25,0
0072 8417 cp R24,R20
0074 9507 cpc R25,R21
0076 24F0 brlt L30
0078 L29:
0078 4030 cpi R20,0
007A 4507 cpc R20,R21
007C 39F1 breq L19
007E X0:
007E E4CF xjmp L12
0080 L30:
0080 4034 cpi R20,64
0082 E0E0 ldi R30,0
0084 5E07 cpc R21,R30
0086 09F4 brne X5
0088 31C0 xjmp L21
008A X5:
008A DECF xjmp L12
008C L28:
008C 403A cpi R20,160
008E E0E0 ldi R30,0
0090 5E07 cpc R21,R30
0092 09F4 brne X6
0094 43C0 xjmp L24
0096 X6:
0096 80EA ldi R24,160
0098 90E0 ldi R25,0
009A 8417 cp R24,R20
009C 9507 cpc R25,R21
009E 34F0 brlt L32
00A0 L31:
00A0 4038 cpi R20,128
00A2 E0E0 ldi R30,0
00A4 5E07 cpc R21,R30
00A6 09F4 brne X7
00A8 31C0 xjmp L23
00AA X7:
00AA CECF xjmp L12
00AC L32:
00AC 403C cpi R20,192
00AE E0E0 ldi R30,0
00B0 5E07 cpc R21,R30
00B2 09F4 brne X8
00B4 3BC0 xjmp L25
00B6 X8:
00B6 403C cpi R20,192
00B8 E0E0 ldi R30,0
00BA 5E07 cpc R21,R30
00BC 0CF4 brge X9
00BE C4CF xjmp L12
00C0 X9:
00C0 L33:
00C0 403E cpi R20,224
00C2 E0E0 ldi R30,0
00C4 5E07 cpc R21,R30
00C6 09F4 brne X10
00C8 39C0 xjmp L26
00CA X10:
00CA BECF xjmp L12
00CC X1:
00CC .dbline 40
00CC ; {
00CC L19:
00CC .dbline 41
00CC ; case 0x00:PORTD=0x5F ;PORTA=0xff; delay(1);break; //出界,后退探測(cè),熄滅全部LED
00CC 8FE5 ldi R24,95
00CE 82BB out 0x12,R24
00D0 .dbline 41
00D0 8FEF ldi R24,255
00D2 8BBB out 0x1b,R24
00D4 .dbline 41
00D4 01E0 ldi R16,1
00D6 10E0 ldi R17,0
00D8 9DDF xcall _delay
00DA .dbline 41
00DA B6CF xjmp L12
00DC L20:
00DC .dbline 42
00DC ; case 0x20:PORTD=0x90 ;PORTA=0xf8; delay(1);break; //轉(zhuǎn)右,點(diǎn)亮右轉(zhuǎn)指示燈
00DC 80E9 ldi R24,144
00DE 82BB out 0x12,R24
00E0 .dbline 42
00E0 88EF ldi R24,248
00E2 8BBB out 0x1b,R24
00E4 .dbline 42
00E4 01E0 ldi R16,1
00E6 10E0 ldi R17,0
00E8 95DF xcall _delay
00EA .dbline 42
00EA AECF xjmp L12
00EC L21:
00EC .dbline 43
00EC ; case 0x40:PORTD=0xaf ;PORTA=0xe7; delay(1);break; // 前進(jìn),點(diǎn)亮前進(jìn)指示燈
00EC 8FEA ldi R24,175
00EE 82BB out 0x12,R24
00F0 .dbline 43
00F0 87EE ldi R24,231
00F2 8BBB out 0x1b,R24
00F4 .dbline 43
00F4 01E0 ldi R16,1
00F6 10E0 ldi R17,0
00F8 8DDF xcall _delay
00FA .dbline 43
00FA A6CF xjmp L12
00FC L22:
00FC .dbline 44
00FC ; case 0x60:PORTD=0xaf ;PORTA=0xe7; delay(1);break; //前進(jìn),點(diǎn)亮前進(jìn)指示燈
00FC 8FEA ldi R24,175
00FE 82BB out 0x12,R24
0100 .dbline 44
0100 87EE ldi R24,231
0102 8BBB out 0x1b,R24
0104 .dbline 44
0104 01E0 ldi R16,1
0106 10E0 ldi R17,0
0108 85DF xcall _delay
010A .dbline 44
010A 9ECF xjmp L12
010C L23:
010C .dbline 45
010C ; case 0x80:PORTD=0x60 ;PORTA=0x1f; delay(1);break; //轉(zhuǎn)左,點(diǎn)亮左轉(zhuǎn)指示燈
010C 80E6 ldi R24,96
010E 82BB out 0x12,R24
0110 .dbline 45
0110 8FE1 ldi R24,31
0112 8BBB out 0x1b,R24
0114 .dbline 45
0114 01E0 ldi R16,1
0116 10E0 ldi R17,0
0118 7DDF xcall _delay
011A .dbline 45
011A 96CF xjmp L12
011C L24:
011C .dbline 46
011C ; case 0xa0:PORTD=0xaf ;PORTA=0xe7; delay(1);break; //直行,點(diǎn)亮前進(jìn)指示燈
011C 8FEA ldi R24,175
011E 82BB out 0x12,R24
0120 .dbline 46
0120 87EE ldi R24,231
0122 8BBB out 0x1b,R24
0124 .dbline 46
0124 01E0 ldi R16,1
0126 10E0 ldi R17,0
0128 75DF xcall _delay
012A .dbline 46
012A 8ECF xjmp L12
012C L25:
012C .dbline 47
012C ; case 0xc0:PORTD=0xaf ;PORTA=0x0e7; delay(1);break; //前進(jìn),點(diǎn)亮前進(jìn)指示燈
012C 8FEA ldi R24,175
012E 82BB out 0x12,R24
0130 .dbline 47
0130 87EE ldi R24,231
0132 8BBB out 0x1b,R24
0134 .dbline 47
0134 01E0 ldi R16,1
0136 10E0 ldi R17,0
0138 6DDF xcall _delay
013A .dbline 47
013A 86CF xjmp L12
013C L26:
013C .dbline 48
013C 80E9 ldi R24,144
013E 82BB out 0x12,R24
0140 .dbline 48
0140 8FE1 ldi R24,31
0142 8BBB out 0x1b,R24
0144 .dbline 48
0144 01E0 ldi R16,1
0146 10E0 ldi R17,0
0148 65DF xcall _delay
014A .dbline 48
014A .dbline 50
014A .dbline 37
014A .dbline 37
014A 7ECF xjmp L12
014C X2:
014C .dbline -2
014C L11:
014C .dbline 0 ; func end
014C 0895 ret
014E .dbend
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -