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

📄 xkey.lis

📁 AVR单片机视频教程的课件和每一次课的源程序是学习AVR单片机的首选 第7节
💻 LIS
字号:
                        .module XKEY.C
                        .area text(rom, con, rel)
 0000                   .dbfile I:\AVR视频教程\视频教程\lesson7\XKEY/lesson5.c
 0000                   .dbfunc e delay _delay fV
 0000           ;              i -> R20,R21
 0000           ;              j -> R22,R23
 0000           ;             ms -> R16,R17
                        .even
 0000           _delay::
 0000 00D0              rcall push_gset2
 0002                   .dbline -1
 0002                   .dbline 7
 0002           ; #include <iom16v.h>
 0002           ; #include <macros.h>
 0002           ; #include "lesson5.c"
 0002           ; void main()
 0002           ; {
 0002           ;     uchar i;
 0002           ;         DDRD|=0X30;
 0002                   .dbline 9
 0002           ;       
 0002           ;       TCCR1A=0X63;
 0002 4427              clr R20
 0004 5527              clr R21
 0006 0BC0              rjmp L5
 0008           L2:
 0008                   .dbline 10
 0008           ;       TCCR1B=0X13;
 0008                   .dbline 11
 0008 6627              clr R22
 000A 7727              clr R23
 000C 02C0              rjmp L9
 000E           L6:
 000E                   .dbline 11
 000E           L7:
 000E                   .dbline 11
 000E 6F5F              subi R22,255  ; offset = 1
 0010 7F4F              sbci R23,255
 0012           L9:
 0012                   .dbline 11
 0012 6537              cpi R22,117
 0014 E4E0              ldi R30,4
 0016 7E07              cpc R23,R30
 0018 D0F3              brlo L6
 001A                   .dbline 12
 001A           L3:
 001A                   .dbline 9
 001A 4F5F              subi R20,255  ; offset = 1
 001C 5F4F              sbci R21,255
 001E           L5:
 001E                   .dbline 9
 001E 4017              cp R20,R16
 0020 5107              cpc R21,R17
 0022 90F3              brlo L2
 0024                   .dbline -2
 0024                   .dbline 13
 0024           ;       
 0024           ;       OCR1A=1249;
 0024           ;       OCR1B=31;
 0024           L1:
 0024 00D0              rcall pop_gset2
 0026                   .dbline 0 ; func end
 0026 0895              ret
 0028                   .dbsym r i 20 i
 0028                   .dbsym r j 22 i
 0028                   .dbsym r ms 16 i
 0028                   .dbend
 0028                   .dbfunc e key_press _key_press fc
 0028           ;              j -> R16
                        .even
 0028           _key_press::
 0028                   .dbline -1
 0028                   .dbline 16
 0028           ;       
 0028           ;       while(1)
 0028           ;       {
 0028                   .dbline 18
 0028           ;          if(key_press())
 0028           ;          {
 0028 81B3              in R24,0x11
 002A 8F60              ori R24,15
 002C 81BB              out 0x11,R24
 002E                   .dbline 19
 002E           ;              i=key_scan();
 002E 82B3              in R24,0x12
 0030 8F60              ori R24,15
 0032 82BB              out 0x12,R24
 0034                   .dbline 21
 0034           ;                  switch(i)
 0034           ;                  {
 0034 81B3              in R24,0x11
 0036 807F              andi R24,240
 0038 81BB              out 0x11,R24
 003A                   .dbline 23
 003A           ;                    case 1:
 003A           ;                           OCR1B=31;
 003A 00B3              in R16,0x10
 003C                   .dbline 24
 003C           ;                               break;
 003C 0F70              andi R16,15
 003E                   .dbline 25
 003E           ;                        case 2:
 003E 0F30              cpi R16,15
 0040 11F4              brne L11
 0042                   .dbline 26
 0042           ;                           OCR1B=62;
 0042                   .dbline 27
 0042           ;                               break;
 0042 0027              clr R16
 0044 01C0              rjmp L10
 0046           L11:
 0046                   .dbline 30
 0046           ;                        case 3:
 0046           ;                           OCR1B=93; 
 0046           ;                               break;
 0046                   .dbline 31
 0046           ;                       case 4:
 0046 01E0              ldi R16,1
 0048                   .dbline -2
 0048           L10:
 0048                   .dbline 0 ; func end
 0048 0895              ret
 004A                   .dbsym r j 16 c
 004A                   .dbend
 004A                   .dbfunc e key_scan _key_scan fc
 004A           ;            key -> R20
                        .even
 004A           _key_scan::
 004A 00D0              rcall push_gset2
 004C                   .dbline -1
 004C                   .dbline 37
 004C           ;                           OCR1B=124; 
 004C           ;                               break;
 004C           ;                       default:
 004C           ;                           OCR1B=31;           
 004C           ;                  }
 004C           ;          }
 004C                   .dbline 39
 004C           ;       }
 004C           ; }
 004C 0AE0              ldi R16,10
 004E 10E0              ldi R17,0
 0050 D7DF              rcall _delay
 0052                   .dbline 40
 0052           ; }
 0052 EADF              rcall _key_press
 0054 0023              tst R16
 0056 11F1              breq L14
 0058                   .dbline 41
 0058           ; }
 0058                   .dbline 42
 0058           ; }
 0058 40B3              in R20,0x10
 005A                   .dbline 43
 005A           ; }
 005A 4F70              andi R20,15
 005C                   .dbline 44
 005C           ; }
 005C 642F              mov R22,R20
 005E 7727              clr R23
 0060 6730              cpi R22,7
 0062 E0E0              ldi R30,0
 0064 7E07              cpc R23,R30
 0066 99F0              breq L22
 0068 6B30              cpi R22,11
 006A E0E0              ldi R30,0
 006C 7E07              cpc R23,R30
 006E 69F0              breq L21
 0070 6D30              cpi R22,13
 0072 E0E0              ldi R30,0
 0074 7E07              cpc R23,R30
 0076 39F0              breq L20
 0078 6E30              cpi R22,14
 007A E0E0              ldi R30,0
 007C 7E07              cpc R23,R30
 007E 09F0              breq L19
 0080 08C0              rjmp L16
 0082           X0:
 0082                   .dbline 45
 0082           ; }
 0082           L19:
 0082                   .dbline 47
 0082           ; }
 0082           ; }
 0082 41E0              ldi R20,1
 0084                   .dbline 48
 0084           ; }
 0084 07C0              rjmp L24
 0086           L20:
 0086                   .dbline 50
 0086           ; }
 0086           ; }
 0086 42E0              ldi R20,2
 0088                   .dbline 51
 0088           ; }
 0088 05C0              rjmp L24
 008A           L21:
 008A                   .dbline 53
 008A           ; }
 008A           ; }
 008A 43E0              ldi R20,3
 008C                   .dbline 54
 008C           ; }
 008C 03C0              rjmp L24
 008E           L22:
 008E                   .dbline 56
 008E           ; }
 008E           ; }
 008E 44E0              ldi R20,4
 0090                   .dbline 57
 0090           ; }
 0090 01C0              rjmp L24
 0092           L16:
 0092                   .dbline 59
 0092           ; }
 0092           ; }
 0092 40E1              ldi R20,16
 0094                   .dbline 60
 0094           ; }
 0094           L23:
 0094                   .dbline 61
 0094           L24:
 0094                   .dbline 61
 0094           ; }
 0094 C9DF              rcall _key_press
 0096 0023              tst R16
 0098 E9F7              brne L23
 009A                   .dbline 62
 009A           ; }
 009A 01C0              rjmp L15
 009C           L14:
 009C                   .dbline 64
 009C           ; }
 009C           ; }
 009C                   .dbline 65
 009C           ; }
 009C 40E1              ldi R20,16
 009E                   .dbline 66
 009E           ; }
 009E           L15:
 009E                   .dbline 67
 009E           ; }
 009E 042F              mov R16,R20
 00A0                   .dbline -2
 00A0           L13:
 00A0 00D0              rcall pop_gset2
 00A2                   .dbline 0 ; func end
 00A2 0895              ret
 00A4                   .dbsym r key 20 c
 00A4                   .dbend
 00A4                   .dbfile I:\AVR视频教程\视频教程\lesson7\XKEY\XKEY.C
 00A4                   .dbfunc e main _main fV
 00A4           ;              i -> R22
                        .even
 00A4           _main::
 00A4                   .dbline -1
 00A4                   .dbline 5
 00A4                   .dbline 7
 00A4 81B3              in R24,0x11
 00A6 8063              ori R24,48
 00A8 81BB              out 0x11,R24
 00AA                   .dbline 9
 00AA 83E6              ldi R24,99
 00AC 8FBD              out 0x2f,R24
 00AE                   .dbline 10
 00AE 83E1              ldi R24,19
 00B0 8EBD              out 0x2e,R24
 00B2                   .dbline 12
 00B2 81EE              ldi R24,1249
 00B4 94E0              ldi R25,4
 00B6 90934B00          sts 74+1,R25
 00BA 80934A00          sts 74,R24
 00BE                   .dbline 13
 00BE 8FE1              ldi R24,31
 00C0 90E0              ldi R25,0
 00C2 90934900          sts 72+1,R25
 00C6 80934800          sts 72,R24
 00CA 3AC0              rjmp L28
 00CC           L27:
 00CC                   .dbline 16
 00CC                   .dbline 17
 00CC ADDF              rcall _key_press
 00CE 0023              tst R16
 00D0 B9F1              breq L30
 00D2                   .dbline 18
 00D2                   .dbline 19
 00D2 BBDF              rcall _key_scan
 00D4 602F              mov R22,R16
 00D6                   .dbline 20
 00D6 462F              mov R20,R22
 00D8 5527              clr R21
 00DA 4130              cpi R20,1
 00DC E0E0              ldi R30,0
 00DE 5E07              cpc R21,R30
 00E0 69F0              breq L35
 00E2 4230              cpi R20,2
 00E4 E0E0              ldi R30,0
 00E6 5E07              cpc R21,R30
 00E8 81F0              breq L36
 00EA 4330              cpi R20,3
 00EC E0E0              ldi R30,0
 00EE 5E07              cpc R21,R30
 00F0 99F0              breq L37
 00F2 4430              cpi R20,4
 00F4 E0E0              ldi R30,0
 00F6 5E07              cpc R21,R30
 00F8 B1F0              breq L38
 00FA 1CC0              rjmp L32
 00FC           X1:
 00FC                   .dbline 21
 00FC           L35:
 00FC                   .dbline 23
 00FC 8FE1              ldi R24,31
 00FE 90E0              ldi R25,0
 0100 90934900          sts 72+1,R25
 0104 80934800          sts 72,R24
 0108                   .dbline 24
 0108 1BC0              rjmp L33
 010A           L36:
 010A                   .dbline 26
 010A 8EE3              ldi R24,62
 010C 90E0              ldi R25,0
 010E 90934900          sts 72+1,R25
 0112 80934800          sts 72,R24
 0116                   .dbline 27
 0116 14C0              rjmp L33
 0118           L37:
 0118                   .dbline 29
 0118 8DE5              ldi R24,93
 011A 90E0              ldi R25,0
 011C 90934900          sts 72+1,R25
 0120 80934800          sts 72,R24
 0124                   .dbline 30
 0124 0DC0              rjmp L33
 0126           L38:
 0126                   .dbline 32
 0126 8CE7              ldi R24,124
 0128 90E0              ldi R25,0
 012A 90934900          sts 72+1,R25
 012E 80934800          sts 72,R24
 0132                   .dbline 33
 0132 06C0              rjmp L33
 0134           L32:
 0134                   .dbline 35
 0134 8FE1              ldi R24,31
 0136 90E0              ldi R25,0
 0138 90934900          sts 72+1,R25
 013C 80934800          sts 72,R24
 0140                   .dbline 36
 0140           L33:
 0140                   .dbline 37
 0140           L30:
 0140                   .dbline 38
 0140           L28:
 0140                   .dbline 15
 0140 C5CF              rjmp L27
 0142           X2:
 0142                   .dbline -2
 0142                   .dbline 39
 0142           L26:
 0142                   .dbline 0 ; func end
 0142 0895              ret
 0144                   .dbsym r i 22 c
 0144                   .dbend

⌨️ 快捷键说明

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