📄 moto.lis
字号:
.module moto.c
.area text(rom, con, rel)
0000 .dbfile D:\avr\moto\moto.c
0000 .dbfunc e delay_us _delay_us fV
0000 ; time -> R16,R17
.even
0000 _delay_us::
0000 .dbline -1
0000 .dbline 3
0000 ; #include<iom8v.h>
0000 ; void delay_us(int time)
0000 ; {
0000 L2:
0000 .dbline 5
0000 ; do
0000 ; {
0000 .dbline 6
0000 ; time--;
0000 0150 subi R16,1
0002 1040 sbci R17,0
0004 .dbline 7
0004 ; }
0004 L3:
0004 .dbline 8
0004 ; while (time>1);
0004 81E0 ldi R24,1
0006 90E0 ldi R25,0
0008 8017 cp R24,R16
000A 9107 cpc R25,R17
000C CCF3 brlt L2
000E .dbline -2
000E L1:
000E .dbline 0 ; func end
000E 0895 ret
0010 .dbsym r time 16 I
0010 .dbend
0010 .dbfunc e delay_ms _delay_ms fV
0010 ; time -> R20,R21
.even
0010 _delay_ms::
0010 00D0 rcall push_gset1
0012 A801 movw R20,R16
0014 .dbline -1
0014 .dbline 12
0014 ; }
0014 ; /* 毫秒级延时程序 */
0014 ; void delay_ms(unsigned int time)
0014 ; {
0014 05C0 rjmp L7
0016 L6:
0016 .dbline 14
0016 .dbline 15
0016 02EE ldi R16,1250
0018 14E0 ldi R17,4
001A F2DF rcall _delay_us
001C .dbline 16
001C 4150 subi R20,1
001E 5040 sbci R21,0
0020 .dbline 17
0020 L7:
0020 .dbline 13
0020 ; while(time!=0)
0020 4030 cpi R20,0
0022 4507 cpc R20,R21
0024 C1F7 brne L6
0026 X0:
0026 .dbline -2
0026 L5:
0026 00D0 rcall pop_gset1
0028 .dbline 0 ; func end
0028 0895 ret
002A .dbsym r time 20 i
002A .dbend
002A .dbfunc e delay _delay fV
002A ; x -> R16
002A ; y -> R18
.even
002A _delay::
002A .dbline -1
002A .dbline 20
002A ; {
002A ; delay_us(1250);
002A ; time--;
002A ; }
002A ; }
002A ; void delay(void)
002A ; {
002A .dbline 22
002A ; char x,y;
002A ; for(x=1;x>0;x--)
002A 01E0 ldi R16,1
002C 07C0 rjmp L13
002E L10:
002E .dbline 23
002E 21E0 ldi R18,1
0030 01C0 rjmp L17
0032 L14:
0032 .dbline 23
0032 L15:
0032 .dbline 23
0032 2A95 dec R18
0034 L17:
0034 .dbline 23
0034 2224 clr R2
0036 2216 cp R2,R18
0038 E0F3 brlo L14
003A L11:
003A .dbline 22
003A 0A95 dec R16
003C L13:
003C .dbline 22
003C 2224 clr R2
003E 2016 cp R2,R16
0040 B0F3 brlo L10
0042 .dbline -2
0042 L9:
0042 .dbline 0 ; func end
0042 0895 ret
0044 .dbsym r x 16 c
0044 .dbsym r y 18 c
0044 .dbend
0044 .dbfunc e main _main fV
0044 ; a -> <dead>
.even
0044 _main::
0044 .dbline -1
0044 .dbline 27
0044 ; for(y=1;y>0;y--);
0044 ;
0044 ; }
0044 ; void main(void)
0044 ; {
0044 .dbline 29
0044 ; int a;
0044 ; DDRB=0xff;
0044 8FEF ldi R24,255
0046 87BB out 0x17,R24
0048 .dbline 30
0048 ; PORTB=0;
0048 2224 clr R2
004A 28BA out 0x18,R2
004C .dbline 31
004C ; DDRD=0xf0;
004C 80EF ldi R24,240
004E 81BB out 0x11,R24
0050 .dbline 32
0050 ; PORTD=0xff;
0050 8FEF ldi R24,255
0052 82BB out 0x12,R24
0054 .dbline 33
0054 ; delay_ms(3);
0054 03E0 ldi R16,3
0056 10E0 ldi R17,0
0058 DBDF rcall _delay_ms
005A .dbline 34
005A ; PORTB=0b00011010;
005A 8AE1 ldi R24,26
005C 88BB out 0x18,R24
005E .dbline 35
005E ; delay_ms(3);
005E 03E0 ldi R16,3
0060 10E0 ldi R17,0
0062 D6DF rcall _delay_ms
0064 2CC0 rjmp L20
0066 L19:
0066 .dbline 37
0066 ; while(1)
0066 ; {
0066 .dbline 38
0066 ; if((PIND&0x01)==1)
0066 80B3 in R24,0x10
0068 8170 andi R24,1
006A 8130 cpi R24,1
006C 41F5 brne L22
006E .dbline 39
006E ; {
006E .dbline 40
006E ; delay_ms(1);
006E 01E0 ldi R16,1
0070 10E0 ldi R17,0
0072 CEDF rcall _delay_ms
0074 .dbline 41
0074 ; PORTB=0b00011000;
0074 88E1 ldi R24,24
0076 88BB out 0x18,R24
0078 .dbline 42
0078 ; delay_ms(1);
0078 01E0 ldi R16,1
007A 10E0 ldi R17,0
007C C9DF rcall _delay_ms
007E .dbline 43
007E ; PORTB=0b11100001;
007E 81EE ldi R24,225
0080 88BB out 0x18,R24
0082 .dbline 44
0082 ; delay_ms(1);
0082 01E0 ldi R16,1
0084 10E0 ldi R17,0
0086 C4DF rcall _delay_ms
0088 .dbline 45
0088 ; PORTB=0b00011100;
0088 8CE1 ldi R24,28
008A 88BB out 0x18,R24
008C .dbline 46
008C ; delay_ms(1);
008C 01E0 ldi R16,1
008E 10E0 ldi R17,0
0090 BFDF rcall _delay_ms
0092 .dbline 47
0092 ; PORTB=0b11100001;
0092 81EE ldi R24,225
0094 88BB out 0x18,R24
0096 .dbline 48
0096 ; delay_ms(1);
0096 01E0 ldi R16,1
0098 10E0 ldi R17,0
009A BADF rcall _delay_ms
009C .dbline 49
009C ; PORTB=0b00011110;
009C 8EE1 ldi R24,30
009E 88BB out 0x18,R24
00A0 .dbline 50
00A0 ; delay_ms(1);
00A0 01E0 ldi R16,1
00A2 10E0 ldi R17,0
00A4 B5DF rcall _delay_ms
00A6 .dbline 51
00A6 ; PORTB=0b11100001;
00A6 81EE ldi R24,225
00A8 88BB out 0x18,R24
00AA .dbline 52
00AA ; delay_ms(1);
00AA 01E0 ldi R16,1
00AC 10E0 ldi R17,0
00AE B0DF rcall _delay_ms
00B0 .dbline 53
00B0 ; PORTB=0b00011010;
00B0 8AE1 ldi R24,26
00B2 88BB out 0x18,R24
00B4 .dbline 54
00B4 ; delay_ms(1);
00B4 01E0 ldi R16,1
00B6 10E0 ldi R17,0
00B8 ABDF rcall _delay_ms
00BA .dbline 55
00BA ; PORTB=0b11100001;
00BA 81EE ldi R24,225
00BC 88BB out 0x18,R24
00BE .dbline 56
00BE ; }
00BE L22:
00BE .dbline 57
00BE L20:
00BE .dbline 36
00BE D3CF rjmp L19
00C0 X1:
00C0 .dbline -2
00C0 L18:
00C0 .dbline 0 ; func end
00C0 0895 ret
00C2 .dbsym l a 1 I
00C2 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -