📄 1.lis
字号:
.module _1.c
.area text(rom, con, rel)
0000 .dbfile 1.c
.area data(ram, con, rel)
0000 .dbfile 1.c
0000 _LED::
0000 .blkb 2
.area idata
0000 3F06 .byte 63,6
.area data(ram, con, rel)
0002 .dbfile 1.c
0002 .blkb 2
.area idata
0002 5B4F .byte 91,'O
.area data(ram, con, rel)
0004 .dbfile 1.c
0004 .blkb 2
.area idata
0004 666D .byte 'f,'m
.area data(ram, con, rel)
0006 .dbfile 1.c
0006 .blkb 2
.area idata
0006 7D07 .byte 125,7
.area data(ram, con, rel)
0008 .dbfile 1.c
0008 .blkb 2
.area idata
0008 7F6F .byte 127,'o
.area data(ram, con, rel)
000A .dbfile 1.c
000A .dbfile G:\暑假AVR单片机练习程序代码\作业\1\1.c
000A .dbsym e LED _LED A[10:10]c
.area text(rom, con, rel)
0000 .dbfile G:\暑假AVR单片机练习程序代码\作业\1\1.c
0000 .dbfunc e delay _delay fI
0000 ; i -> R20
0000 ; j -> R10
0000 ; x -> R16
.even
0000 _delay::
0000 AA92 st -y,R10
0002 4A93 st -y,R20
0004 .dbline -1
0004 .dbline 4
0004 ; #include <iom16v.h>
0004 ; unsigned char LED[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
0004 ; int delay(unsigned char x)
0004 ; {
0004 .dbline 6
0004 ; unsigned char i,j;
0004 ; for(i=0;i<10;i++)
0004 4427 clr R20
0006 06C0 xjmp L5
0008 L2:
0008 .dbline 7
0008 ; for(j=0;j<x;j++);
0008 AA24 clr R10
000A 01C0 xjmp L9
000C L6:
000C .dbline 7
000C L7:
000C .dbline 7
000C A394 inc R10
000E L9:
000E .dbline 7
000E A016 cp R10,R16
0010 E8F3 brlo L6
0012 X0:
0012 L3:
0012 .dbline 6
0012 4395 inc R20
0014 L5:
0014 .dbline 6
0014 4A30 cpi R20,10
0016 C0F3 brlo L2
0018 X1:
0018 .dbline -2
0018 L1:
0018 .dbline 0 ; func end
0018 4991 ld R20,y+
001A A990 ld R10,y+
001C 0895 ret
001E .dbsym r i 20 c
001E .dbsym r j 10 c
001E .dbsym r x 16 c
001E .dbend
001E .dbfunc e main _main fI
001E ; ge -> R12
001E ; shi -> R10
001E ; q -> R20
001E ; key -> R22
.even
001E _main::
001E .dbline -1
001E .dbline 10
001E ; }
001E ; int main(void)
001E ; {
001E .dbline 12
001E ; signed char key,q,shi,ge;
001E ; q=0;
001E 4427 clr R20
0020 .dbline 13
0020 ; DDRA=0xff;
0020 8FEF ldi R24,255
0022 8ABB out 0x1a,R24
0024 .dbline 14
0024 ; DDRB=0xff;
0024 87BB out 0x17,R24
0026 .dbline 15
0026 ; DDRC=0xfc;
0026 8CEF ldi R24,252
0028 84BB out 0x14,R24
002A .dbline 16
002A ; SFIOR&=0xfb;
002A 80B7 in R24,0x30
002C 8B7F andi R24,251
002E 80BF out 0x30,R24
0030 .dbline 17
0030 ; PORTC=0X03;
0030 83E0 ldi R24,3
0032 85BB out 0x15,R24
0034 46C0 xjmp L12
0036 L11:
0036 .dbline 19
0036 ; while(1)
0036 ; {
0036 .dbline 20
0036 ; key=PINC&0x03;
0036 63B3 in R22,0x13
0038 6370 andi R22,3
003A .dbline 21
003A ; if(key!=0x03)
003A 6330 cpi R22,3
003C 11F0 breq L14
003E X2:
003E .dbline 22
003E ; {
003E .dbline 23
003E ; delay(5);
003E 05E0 ldi R16,5
0040 DFDF xcall _delay
0042 .dbline 24
0042 ; }
0042 L14:
0042 .dbline 25
0042 ; if(key!=0x03)
0042 6330 cpi R22,3
0044 A1F0 breq L16
0046 X3:
0046 .dbline 26
0046 ; {
0046 .dbline 27
0046 ; if(key==0x02)
0046 6230 cpi R22,2
0048 41F4 brne L18
004A X4:
004A .dbline 28
004A ; {
004A L20:
004A .dbline 30
004A ; do
004A ; key=PINC&0x03;
004A 63B3 in R22,0x13
004C 6370 andi R22,3
004E L21:
004E .dbline 31
004E ; while(key==0x02);
004E 6230 cpi R22,2
0050 E1F3 breq L20
0052 X5:
0052 .dbline 32
0052 ; q+=1;
0052 4395 inc R20
0054 .dbline 33
0054 ; if(q==60)q=0;
0054 4C33 cpi R20,60
0056 09F4 brne L23
0058 X6:
0058 .dbline 33
0058 4427 clr R20
005A L23:
005A .dbline 34
005A ; }
005A L18:
005A .dbline 35
005A ; if(key==0x01)
005A 6130 cpi R22,1
005C 41F4 brne L25
005E X7:
005E .dbline 36
005E ; {
005E L27:
005E .dbline 38
005E ; do
005E ; key=PINC&0x03;
005E 63B3 in R22,0x13
0060 6370 andi R22,3
0062 L28:
0062 .dbline 39
0062 ; while(key==0x01);
0062 6130 cpi R22,1
0064 E1F3 breq L27
0066 X8:
0066 .dbline 40
0066 ; q-=1;
0066 4A95 dec R20
0068 .dbline 41
0068 ; if(q==-1)q=59;
0068 4F3F cpi R20,255
006A 09F4 brne L30
006C X9:
006C .dbline 41
006C 4BE3 ldi R20,59
006E L30:
006E .dbline 42
006E ; }
006E L25:
006E .dbline 43
006E ; }
006E L16:
006E .dbline 44
006E ; shi=q/10;
006E 1AE0 ldi R17,10
0070 042F mov R16,R20
0072 0E940000 xcall div8s
0076 A02E mov R10,R16
0078 .dbline 45
0078 ; ge=q%10;
0078 1AE0 ldi R17,10
007A 042F mov R16,R20
007C 0E940000 xcall mod8s
0080 C02E mov R12,R16
0082 .dbline 48
0082 ;
0082 ;
0082 ; PORTA=LED[ge];
0082 80E0 ldi R24,<_LED
0084 90E0 ldi R25,>_LED
0086 EC2D mov R30,R12
0088 FF27 clr R31
008A E7FD sbrc R30,7
008C F095 com R31
008E E80F add R30,R24
0090 F91F adc R31,R25
0092 2080 ldd R2,z+0
0094 2BBA out 0x1b,R2
0096 .dbline 49
0096 ; PORTB=0xfd;
0096 8DEF ldi R24,253
0098 88BB out 0x18,R24
009A .dbline 50
009A ; delay(10);
009A 0AE0 ldi R16,10
009C B1DF xcall _delay
009E .dbline 51
009E ; PORTB=0xff;
009E 8FEF ldi R24,255
00A0 88BB out 0x18,R24
00A2 .dbline 53
00A2 ;
00A2 ; PORTA=LED[shi];
00A2 80E0 ldi R24,<_LED
00A4 90E0 ldi R25,>_LED
00A6 EA2D mov R30,R10
00A8 FF27 clr R31
00AA E7FD sbrc R30,7
00AC F095 com R31
00AE E80F add R30,R24
00B0 F91F adc R31,R25
00B2 2080 ldd R2,z+0
00B4 2BBA out 0x1b,R2
00B6 .dbline 54
00B6 ; PORTB=0xfe;
00B6 8EEF ldi R24,254
00B8 88BB out 0x18,R24
00BA .dbline 55
00BA ; delay(10);
00BA 0AE0 ldi R16,10
00BC A1DF xcall _delay
00BE .dbline 56
00BE ; PORTB=0xff;
00BE 8FEF ldi R24,255
00C0 88BB out 0x18,R24
00C2 .dbline 57
00C2 ; }
00C2 L12:
00C2 .dbline 18
00C2 B9CF xjmp L11
00C4 X10:
00C4 .dbline -2
00C4 L10:
00C4 .dbline 0 ; func end
00C4 0895 ret
00C6 .dbsym r ge 12 C
00C6 .dbsym r shi 10 C
00C6 .dbsym r q 20 C
00C6 .dbsym r key 22 C
00C6 .dbend
00C6 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -