⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 read_key2.lis

📁 一个新颖的乐器.我参加西电星火杯的作品.里面有详细的.doc说明
💻 LIS
字号:
                        .module READ_KEY2.c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\DOCUME~1\asdf\MYDOCU~1\11111111111\READ_KEY2.c
 0000                   .dbfunc e delay_1ms _delay_1ms fV
 0000           ;              i -> R16,R17
 0000           ;              j -> R18,R19
                        .even
 0000           _delay_1ms::
 0000                   .dbline -1
 0000                   .dbline 4
 0000           ; #include<iom8v.h>
 0000           ; #include<macros.h>
 0000           ; void delay_1ms(void)
 0000           ; {
 0000                   .dbline 6
 0000           ;    int i,j;
 0000           ;    for(i=0;i<10;i++)
 0000 0027              clr R16
 0002 1127              clr R17
 0004           L2:
 0004                   .dbline 7
 0004 2227              clr R18
 0006 3327              clr R19
 0008           L6:
 0008                   .dbline 7
 0008           L7:
 0008                   .dbline 7
 0008 2F5F              subi R18,255  ; offset = 1
 000A 3F4F              sbci R19,255
 000C                   .dbline 7
 000C 2436              cpi R18,100
 000E E0E0              ldi R30,0
 0010 3E07              cpc R19,R30
 0012 D4F3              brlt L6
 0014           L3:
 0014                   .dbline 6
 0014 0F5F              subi R16,255  ; offset = 1
 0016 1F4F              sbci R17,255
 0018                   .dbline 6
 0018 0A30              cpi R16,10
 001A E0E0              ldi R30,0
 001C 1E07              cpc R17,R30
 001E 94F3              brlt L2
 0020                   .dbline -2
 0020                   .dbline 8
 0020           ;        for(j=0;j<100;j++);
 0020           ; }
 0020           L1:
 0020                   .dbline 0 ; func end
 0020 0895              ret
 0022                   .dbsym r i 16 I
 0022                   .dbsym r j 18 I
 0022                   .dbend
 0022                   .dbfunc e read_key _read_key fc
 0022           ;            key -> R20
 0022           ;              a -> y+0
 0022           ;              i -> R22,R23
                        .even
 0022           _read_key::
 0022 00D0              rcall push_gset2
 0024 2597              sbiw R28,5
 0026                   .dbline -1
 0026                   .dbline 10
 0026           ; char read_key(void)
 0026           ; {   
 0026                   .dbline 13
 0026           ;    int i;
 0026           ;    char a[5],key;
 0026           ;    for(i=0;i<5;i++)
 0026 6627              clr R22
 0028 7727              clr R23
 002A           L11:
 002A                   .dbline 14
 002A                   .dbline 15
 002A EADF              rcall _delay_1ms
 002C                   .dbline 16
 002C CE01              movw R24,R28
 002E FB01              movw R30,R22
 0030 E80F              add R30,R24
 0032 F91F              adc R31,R25
 0034 26B2              in R2,0x16
 0036 2082              std z+0,R2
 0038                   .dbline 17
 0038           L12:
 0038                   .dbline 13
 0038 6F5F              subi R22,255  ; offset = 1
 003A 7F4F              sbci R23,255
 003C                   .dbline 13
 003C 6530              cpi R22,5
 003E E0E0              ldi R30,0
 0040 7E07              cpc R23,R30
 0042 9CF3              brlt L11
 0044                   .dbline 18
 0044           ;    {  
 0044           ;       delay_1ms();
 0044           ;       a[i]=PINB;
 0044           ;    }
 0044           ;    if((a[0]==a[1])&&(a[1]==a[2])&&(a[2]==a[3])&&(a[3]==a[4]))
 0044 2980              ldd R2,y+1
 0046 3880              ldd R3,y+0
 0048 3214              cp R3,R2
 004A 71F4              brne L15
 004C 2A80              ldd R2,y+2
 004E 3980              ldd R3,y+1
 0050 3214              cp R3,R2
 0052 51F4              brne L15
 0054 2B80              ldd R2,y+3
 0056 3A80              ldd R3,y+2
 0058 3214              cp R3,R2
 005A 31F4              brne L15
 005C 2C80              ldd R2,y+4
 005E 3B80              ldd R3,y+3
 0060 3214              cp R3,R2
 0062 11F4              brne L15
 0064                   .dbline 19
 0064           ;       key=a[4];
 0064 422D              mov R20,R2
 0066 01C0              rjmp L16
 0068           L15:
 0068                   .dbline 21
 0068           ;    else  
 0068           ;       key=0xFF;
 0068 4FEF              ldi R20,255
 006A           L16:
 006A                   .dbline 22
 006A           ;    return key;
 006A 042F              mov R16,R20
 006C                   .dbline -2
 006C           L10:
 006C 2596              adiw R28,5
 006E 00D0              rcall pop_gset2
 0070                   .dbline 0 ; func end
 0070 0895              ret
 0072                   .dbsym r key 20 c
 0072                   .dbsym l a 0 A[5:5]c
 0072                   .dbsym r i 22 I
 0072                   .dbend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -