📄 40+
字号:
.module djs.c
.area data(ram, con, rel)
0000 _led::
0000 .blkb 2
.area idata
0000 3F06 .byte 63,6
.area data(ram, con, rel)
0002 .blkb 2
.area idata
0002 5B4F .byte 91,'O
.area data(ram, con, rel)
0004 .blkb 2
.area idata
0004 666D .byte 'f,'m
.area data(ram, con, rel)
0006 .blkb 2
.area idata
0006 7D07 .byte 125,7
.area data(ram, con, rel)
0008 .blkb 2
.area idata
0008 7F6F .byte 127,'o
.area data(ram, con, rel)
000A .dbfile E:\暑假AVR培训\暑假AVR培训\djs.c
000A .dbsym e led _led A[10:10]c
000A _FOR::
000A .blkb 2
.area idata
000A F401 .word 500
.area data(ram, con, rel)
000C .dbfile E:\暑假AVR培训\暑假AVR培训\djs.c
000C .dbsym e FOR _FOR I
.area text(rom, con, rel)
0000 .dbfile E:\暑假AVR培训\暑假AVR培训\djs.c
0000 .dbfunc e delay _delay fV
0000 ; i -> R20
0000 ; j -> R22
0000 ; x -> R16
.even
0000 _delay::
0000 0E940000 xcall push_gset2
0004 .dbline -1
0004 .dbline 6
0004 ; #include<iom16.h>
0004 ; unsigned char led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
0004 ; unsigned int CNT;
0004 ; signed int FOR=500;
0004 ; void delay(unsigned char x)
0004 ; {
0004 .dbline 8
0004 ; unsigned char i,j;
0004 ; for(i=0;i<100;i++)
0004 4427 clr R20
0006 06C0 xjmp L5
0008 L2:
0008 .dbline 9
0008 6627 clr R22
000A 01C0 xjmp L9
000C L6:
000C .dbline 9
000C L7:
000C .dbline 9
000C 6395 inc R22
000E L9:
000E .dbline 9
000E 6017 cp R22,R16
0010 E8F3 brlo L6
0012 L3:
0012 .dbline 8
0012 4395 inc R20
0014 L5:
0014 .dbline 8
0014 4436 cpi R20,100
0016 C0F3 brlo L2
0018 .dbline -2
0018 L1:
0018 0E940000 xcall pop_gset2
001C .dbline 0 ; func end
001C 0895 ret
001E .dbsym r i 20 c
001E .dbsym r j 22 c
001E .dbsym r x 16 c
001E .dbend
001E .dbfunc e main _main fV
001E ; s -> R20
001E ; g -> R22
.even
001E _main::
001E .dbline -1
001E .dbline 12
001E ; for(j=0;j<x;j++);
001E ; }
001E ; void main(void)
001E ; {
001E .dbline 14
001E ; unsigned char g,s;
001E ; CNT=39;
001E 87E2 ldi R24,39
0020 90E0 ldi R25,0
0022 90930100 sts _CNT+1,R25
0026 80930000 sts _CNT,R24
002A .dbline 15
002A ; DDRA=0XFF;
002A 8FEF ldi R24,255
002C 8ABB out 0x1a,R24
002E .dbline 16
002E ; DDRB=0XFF;
002E 87BB out 0x17,R24
0030 .dbline 17
0030 ; TCCR0=1<<CS01;
0030 82E0 ldi R24,2
0032 83BF out 0x33,R24
0034 .dbline 18
0034 ; OCR0=248;
0034 88EF ldi R24,248
0036 8CBF out 0x3c,R24
0038 .dbline 19
0038 ; TIMSK=1<<OCIE0;
0038 82E0 ldi R24,2
003A 89BF out 0x39,R24
003C .dbline 20
003C ; SREG|=0x80;
003C 7894 bset 7
003E 2EC0 xjmp L12
0040 L11:
0040 .dbline 22
0040 .dbline 23
0040 2AE0 ldi R18,10
0042 30E0 ldi R19,0
0044 00910000 lds R16,_CNT
0048 10910100 lds R17,_CNT+1
004C 0E940000 xcall div16u
0050 402F mov R20,R16
0052 .dbline 24
0052 2AE0 ldi R18,10
0054 30E0 ldi R19,0
0056 00910000 lds R16,_CNT
005A 10910100 lds R17,_CNT+1
005E 0E940000 xcall mod16u
0062 602F mov R22,R16
0064 .dbline 25
0064 80E0 ldi R24,<_led
0066 90E0 ldi R25,>_led
0068 E42F mov R30,R20
006A FF27 clr R31
006C E80F add R30,R24
006E F91F adc R31,R25
0070 2080 ldd R2,z+0
0072 2BBA out 0x1b,R2
0074 .dbline 26
0074 8EEF ldi R24,254
0076 88BB out 0x18,R24
0078 .dbline 27
0078 0AE0 ldi R16,10
007A C2DF xcall _delay
007C .dbline 28
007C 8FEF ldi R24,255
007E 88BB out 0x18,R24
0080 .dbline 29
0080 80E0 ldi R24,<_led
0082 90E0 ldi R25,>_led
0084 E62F mov R30,R22
0086 FF27 clr R31
0088 E80F add R30,R24
008A F91F adc R31,R25
008C 2080 ldd R2,z+0
008E 2BBA out 0x1b,R2
0090 .dbline 30
0090 8DEF ldi R24,253
0092 88BB out 0x18,R24
0094 .dbline 31
0094 0AE0 ldi R16,10
0096 B4DF xcall _delay
0098 .dbline 32
0098 8FEF ldi R24,255
009A 88BB out 0x18,R24
009C .dbline 33
009C L12:
009C .dbline 21
009C D1CF xjmp L11
009E X0:
009E .dbline -2
009E L10:
009E .dbline 0 ; func end
009E 0895 ret
00A0 .dbsym r s 20 c
00A0 .dbsym r g 22 c
00A0 .dbend
.area vector(rom, abs)
.org 76
004C 0C945000 jmp _int_djs
.area text(rom, con, rel)
00A0 .dbfile E:\暑假AVR培训\暑假AVR培训\djs.c
00A0 .dbfunc e int_djs _int_djs fV
.even
00A0 _int_djs::
00A0 2A92 st -y,R2
00A2 8A93 st -y,R24
00A4 9A93 st -y,R25
00A6 2FB6 in R2,0x3f
00A8 2A92 st -y,R2
00AA .dbline -1
00AA .dbline 37
00AA ; while(1)
00AA ; {
00AA ; s=CNT/10;
00AA ; g=CNT%10;
00AA ; PORTA=led[s];
00AA ; PORTB=0xfe;
00AA ; delay(10);
00AA ; PORTB=0xff;
00AA ; PORTA=led[g];
00AA ; PORTB=0xfd;
00AA ; delay(10);
00AA ; PORTB=0xff;
00AA ; }
00AA ; }
00AA ; #pragma interrupt_handler int_djs:20
00AA ; void int_djs(void)
00AA ; {
00AA .dbline 38
00AA ; FOR--;
00AA 80910A00 lds R24,_FOR
00AE 90910B00 lds R25,_FOR+1
00B2 0197 sbiw R24,1
00B4 90930B00 sts _FOR+1,R25
00B8 80930A00 sts _FOR,R24
00BC .dbline 39
00BC ; if(FOR==0)
00BC 8030 cpi R24,0
00BE 8907 cpc R24,R25
00C0 C1F4 brne L15
00C2 X1:
00C2 .dbline 40
00C2 ; {FOR=500;
00C2 .dbline 40
00C2 84EF ldi R24,500
00C4 91E0 ldi R25,1
00C6 90930B00 sts _FOR+1,R25
00CA 80930A00 sts _FOR,R24
00CE .dbline 41
00CE ; CNT--;
00CE 80910000 lds R24,_CNT
00D2 90910100 lds R25,_CNT+1
00D6 0197 sbiw R24,1
00D8 90930100 sts _CNT+1,R25
00DC 80930000 sts _CNT,R24
00E0 .dbline 42
00E0 ; if(CNT<=0)
00E0 8030 cpi R24,0
00E2 8907 cpc R24,R25
00E4 31F4 brne L17
00E6 X2:
00E6 .dbline 43
00E6 87E2 ldi R24,39
00E8 90E0 ldi R25,0
00EA 90930100 sts _CNT+1,R25
00EE 80930000 sts _CNT,R24
00F2 L17:
00F2 .dbline 43
00F2 ; CNT=39;}
00F2 L15:
00F2 .dbline 44
00F2 ; TCNT0=0;
00F2 2224 clr R2
00F4 22BE out 0x32,R2
00F6 .dbline -2
00F6 L14:
00F6 2990 ld R2,y+
00F8 2FBE out 0x3f,R2
00FA 9991 ld R25,y+
00FC 8991 ld R24,y+
00FE 2990 ld R2,y+
0100 .dbline 0 ; func end
0100 1895 reti
0102 .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\暑假AVR培训\暑假AVR培训\djs.c
0000 _CNT::
0000 .blkb 2
0002 .dbsym e CNT _CNT i
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -