📄 example2.lis
字号:
.module example2.c
.area text(rom, con, rel)
0000 .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\example\example2.c
0000 .dbfunc e delay _delay fV
0000 ; i -> R20,R21
0000 ; j -> R22,R23
0000 ; ms -> R16,R17
.even
0000 _delay::
0000 0E940000 xcall push_xgsetF000
0004 .dbline -1
0004 .dbline 5
0004 ; #include <iom16v.h>
0004 ; #include <macros.h>
0004 ;
0004 ; void delay(int ms)
0004 ; {
0004 .dbline 7
0004 ; int i,j;
0004 ; for(i=0;i<ms;i++)
0004 4427 clr R20
0006 5527 clr R21
0008 0AC0 xjmp L5
000A L2:
000A .dbline 8
000A ; for(j=0;j<1141;j++);
000A 6627 clr R22
000C 7727 clr R23
000E L6:
000E .dbline 8
000E L7:
000E .dbline 8
000E 6F5F subi R22,255 ; offset = 1
0010 7F4F sbci R23,255
0012 .dbline 8
0012 6537 cpi R22,117
0014 E4E0 ldi R30,4
0016 7E07 cpc R23,R30
0018 D4F3 brlt L6
001A X0:
001A L3:
001A .dbline 7
001A 4F5F subi R20,255 ; offset = 1
001C 5F4F sbci R21,255
001E L5:
001E .dbline 7
001E 4017 cp R20,R16
0020 5107 cpc R21,R17
0022 9CF3 brlt L2
0024 X1:
0024 .dbline -2
0024 L1:
0024 .dbline 0 ; func end
0024 0C940000 xjmp pop_xgsetF000
0028 .dbsym r i 20 I
0028 .dbsym r j 22 I
0028 .dbsym r ms 16 I
0028 .dbend
0028 .dbfunc e main _main fV
0028 ; l -> R22
0028 ; k -> R20
.even
0028 _main::
0028 .dbline -1
0028 .dbline 12
0028 ;
0028 ; }
0028 ; void main()
0028 ; {
0028 .dbline 14
0028 ;
0028 ; DDRA=0XFF;PORTA=0X00;
0028 8FEF ldi R24,255
002A 8ABB out 0x1a,R24
002C .dbline 14
002C 2224 clr R2
002E 2BBA out 0x1b,R2
0030 .dbline 15
0030 ; DDRC=0X01;PORTC=0X01;
0030 81E0 ldi R24,1
0032 84BB out 0x14,R24
0034 .dbline 15
0034 85BB out 0x15,R24
0036 6BC0 xjmp L12
0038 L11:
0038 .dbline 17
0038 ; while(1)
0038 ; {
0038 .dbline 19
0038 ; char k,l;
0038 ; for(l=2;l>0;l--)
0038 62E0 ldi R22,2
003A 40C0 xjmp L17
003C L14:
003C .dbline 20
003C ; {
003C .dbline 21
003C ; for(k=0;k<8;k++)
003C 4427 clr R20
003E 1BC0 xjmp L21
0040 L18:
0040 .dbline 22
0040 ; {
0040 .dbline 23
0040 ; PORTA|=BIT(k);
0040 01E0 ldi R16,1
0042 142F mov R17,R20
0044 0E940000 xcall lsl8
0048 2BB2 in R2,0x1b
004A 202A or R2,R16
004C 2BBA out 0x1b,R2
004E .dbline 24
004E ; PORTC=0X00;
004E 2224 clr R2
0050 25BA out 0x15,R2
0052 .dbline 25
0052 ; delay(200);
0052 08EC ldi R16,200
0054 10E0 ldi R17,0
0056 D4DF xcall _delay
0058 .dbline 26
0058 ; PORTA&=~BIT(k);
0058 01E0 ldi R16,1
005A 142F mov R17,R20
005C 0E940000 xcall lsl8
0060 202E mov R2,R16
0062 2094 com R2
0064 3BB2 in R3,0x1b
0066 3220 and R3,R2
0068 3BBA out 0x1b,R3
006A .dbline 27
006A ; PORTC=0X01;
006A 81E0 ldi R24,1
006C 85BB out 0x15,R24
006E .dbline 28
006E ; delay(200);
006E 08EC ldi R16,200
0070 10E0 ldi R17,0
0072 C6DF xcall _delay
0074 .dbline 29
0074 ; }
0074 L19:
0074 .dbline 21
0074 4395 inc R20
0076 L21:
0076 .dbline 21
0076 4830 cpi R20,8
0078 18F3 brlo L18
007A X2:
007A .dbline 30
007A ; for(k=6;k>0;k--)
007A 46E0 ldi R20,6
007C 1BC0 xjmp L25
007E L22:
007E .dbline 31
007E ; {
007E .dbline 32
007E ; PORTA|=BIT(k);
007E 01E0 ldi R16,1
0080 142F mov R17,R20
0082 0E940000 xcall lsl8
0086 2BB2 in R2,0x1b
0088 202A or R2,R16
008A 2BBA out 0x1b,R2
008C .dbline 33
008C ; PORTC=0X00;
008C 2224 clr R2
008E 25BA out 0x15,R2
0090 .dbline 34
0090 ; delay(200);
0090 08EC ldi R16,200
0092 10E0 ldi R17,0
0094 B5DF xcall _delay
0096 .dbline 35
0096 ; PORTA&=~BIT(k);
0096 01E0 ldi R16,1
0098 142F mov R17,R20
009A 0E940000 xcall lsl8
009E 202E mov R2,R16
00A0 2094 com R2
00A2 3BB2 in R3,0x1b
00A4 3220 and R3,R2
00A6 3BBA out 0x1b,R3
00A8 .dbline 36
00A8 ; PORTC=0X01;
00A8 81E0 ldi R24,1
00AA 85BB out 0x15,R24
00AC .dbline 37
00AC ; delay(200);
00AC 08EC ldi R16,200
00AE 10E0 ldi R17,0
00B0 A7DF xcall _delay
00B2 .dbline 38
00B2 ; }
00B2 L23:
00B2 .dbline 30
00B2 4A95 dec R20
00B4 L25:
00B4 .dbline 30
00B4 80E0 ldi R24,0
00B6 8417 cp R24,R20
00B8 10F3 brlo L22
00BA X3:
00BA .dbline 39
00BA ; }
00BA L15:
00BA .dbline 19
00BA 6A95 dec R22
00BC L17:
00BC .dbline 19
00BC 80E0 ldi R24,0
00BE 8617 cp R24,R22
00C0 08F4 brsh X8
00C2 BCCF xjmp L14
00C4 X8:
00C4 X4:
00C4 .dbline 40
00C4 ; PORTA=0X00;
00C4 2224 clr R2
00C6 2BBA out 0x1b,R2
00C8 .dbline 42
00C8 ;
00C8 ; for(k=0;k<8;k++)
00C8 4427 clr R20
00CA 1FC0 xjmp L29
00CC L26:
00CC .dbline 43
00CC ; {
00CC .dbline 44
00CC ; for(l=0;l<5;l++)
00CC 6627 clr R22
00CE 17C0 xjmp L33
00D0 L30:
00D0 .dbline 45
00D0 ; {
00D0 .dbline 46
00D0 ; PORTA|=BIT(k);
00D0 01E0 ldi R16,1
00D2 142F mov R17,R20
00D4 0E940000 xcall lsl8
00D8 2BB2 in R2,0x1b
00DA 202A or R2,R16
00DC 2BBA out 0x1b,R2
00DE .dbline 47
00DE ; delay(50);
00DE 02E3 ldi R16,50
00E0 10E0 ldi R17,0
00E2 8EDF xcall _delay
00E4 .dbline 48
00E4 ; PORTA&=~BIT(k);
00E4 01E0 ldi R16,1
00E6 142F mov R17,R20
00E8 0E940000 xcall lsl8
00EC 202E mov R2,R16
00EE 2094 com R2
00F0 3BB2 in R3,0x1b
00F2 3220 and R3,R2
00F4 3BBA out 0x1b,R3
00F6 .dbline 49
00F6 ; delay(50);
00F6 02E3 ldi R16,50
00F8 10E0 ldi R17,0
00FA 82DF xcall _delay
00FC .dbline 50
00FC ; }
00FC L31:
00FC .dbline 44
00FC 6395 inc R22
00FE L33:
00FE .dbline 44
00FE 6530 cpi R22,5
0100 38F3 brlo L30
0102 X5:
0102 .dbline 51
0102 ; delay(300);
0102 0CE2 ldi R16,300
0104 11E0 ldi R17,1
0106 7CDF xcall _delay
0108 .dbline 52
0108 ; }
0108 L27:
0108 .dbline 42
0108 4395 inc R20
010A L29:
010A .dbline 42
010A 4830 cpi R20,8
010C F8F2 brlo L26
010E X6:
010E .dbline 53
010E ; }
010E L12:
010E .dbline 16
010E 94CF xjmp L11
0110 X7:
0110 .dbline -2
0110 L10:
0110 .dbline 0 ; func end
0110 0895 ret
0112 .dbsym r l 22 c
0112 .dbsym r k 20 c
0112 .dbend
0112 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -