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

📄 mykey.lis

📁 AVR单片机C语言编程及应用实例 适合初学者的学习研究 其中包含Atmega16中文资料及Protel部分电路图
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module mykey.c
                        .area text(rom, con, rel)
 0000                   .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\mykey\mykey.c
                        .area code(ram, con, rel)
 0000                   .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\mykey\mykey.c
                        .area lit(rom, con, rel)
 0000           _table::
 0000 3F00              .word 63
 0002 0600              .word 6
 0004 5B00              .word 91
 0006 4F00              .word 79
 0008 6600              .word 102
 000A 6D00              .word 109
 000C 7D00              .word 125
 000E 0700              .word 7
 0010 7F00              .word 127
 0012 6F00              .word 111
 0014 7700              .word 119
 0016 7C00              .word 124
 0018 3900              .word 57
 001A 5E00              .word 94
 001C 7900              .word 121
 001E 7100              .word 113
 0020 0000              .word 0
 0022                   .dbsym e table _table A[34:17]kI
                        .area text(rom, con, rel)
 0000                   .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\mykey\mykey.c
 0000                   .dbfunc e delay _delay fV
 0000           ;              i -> R20,R21
 0000           ;              j -> R22,R23
 0000           ;             ms -> R16,R17
                        .even
 0000           _delay::
 0000 0E940000          xcall push_xgsetF000
 0004                   .dbline -1
 0004                   .dbline 9
 0004           ; #include <iom16v.h>
 0004           ; #include <macros.h>
 0004           ; #define  uchar unsigned char
 0004           ; #define  uint  unsigned int
 0004           ; #pragma data:code
 0004           ; const  table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,
 0004           ;                          0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0};
 0004           ; void delay(uint ms)
 0004           ; {
 0004                   .dbline 11
 0004           ;         uint i,j;
 0004           ;       for(i=0;i<ms;i++)
 0004 4427              clr R20
 0006 5527              clr R21
 0008 0BC0              xjmp L5
 000A           L2:
 000A                   .dbline 12
 000A           ;          {
 000A                   .dbline 13
 000A           ;          for(j=0;j<1141;j++);
 000A 6627              clr R22
 000C 7727              clr R23
 000E 02C0              xjmp L9
 0010           L6:
 0010                   .dbline 13
 0010           L7:
 0010                   .dbline 13
 0010 6F5F              subi R22,255  ; offset = 1
 0012 7F4F              sbci R23,255
 0014           L9:
 0014                   .dbline 13
 0014 6537              cpi R22,117
 0016 E4E0              ldi R30,4
 0018 7E07              cpc R23,R30
 001A D0F3              brlo L6
 001C           X0:
 001C                   .dbline 14
 001C           ;        }
 001C           L3:
 001C                   .dbline 11
 001C 4F5F              subi R20,255  ; offset = 1
 001E 5F4F              sbci R21,255
 0020           L5:
 0020                   .dbline 11
 0020 4017              cp R20,R16
 0022 5107              cpc R21,R17
 0024 90F3              brlo L2
 0026           X1:
 0026                   .dbline -2
 0026           L1:
 0026                   .dbline 0 ; func end
 0026 0C940000          xjmp pop_xgsetF000
 002A                   .dbsym r i 20 i
 002A                   .dbsym r j 22 i
 002A                   .dbsym r ms 16 i
 002A                   .dbend
 002A                   .dbfunc e show _show fV
 002A           ;              k -> R22
 002A           ;              j -> R20
                        .even
 002A           _show::
 002A 4A93              st -y,R20
 002C 6A93              st -y,R22
 002E 622F              mov R22,R18
 0030 402F              mov R20,R16
 0032                   .dbline -1
 0032                   .dbline 17
 0032           ; }
 0032           ; void show(uchar j,uchar k)
 0032           ; {
 0032                   .dbline 18
 0032           ;     PORTA|=BIT(3);
 0032 DB9A              sbi 0x1b,3
 0034                   .dbline 19
 0034           ;       PORTB=table[j];
 0034 80E0              ldi R24,<_table
 0036 90E0              ldi R25,>_table
 0038 E42F              mov R30,R20
 003A FF27              clr R31
 003C EE0F              lsl R30
 003E FF1F              rol R31
 0040 E80F              add R30,R24
 0042 F91F              adc R31,R25
 0044 2590              lpm R2,Z+
 0046 3490              lpm R3,Z
 0048 28BA              out 0x18,R2
 004A                   .dbline 20
 004A           ;       PORTA&=~BIT(3);
 004A DB98              cbi 0x1b,3
 004C                   .dbline 21
 004C           ;       PORTB=0XFF;
 004C 8FEF              ldi R24,255
 004E 88BB              out 0x18,R24
 0050                   .dbline 22
 0050           ;       PORTA|=BIT(4);
 0050 DC9A              sbi 0x1b,4
 0052                   .dbline 23
 0052           ;       if(j==1)
 0052 4130              cpi R20,1
 0054 99F4              brne L11
 0056           X2:
 0056                   .dbline 24
 0056           ;       for(k=5;k>0;k--)
 0056 65E0              ldi R22,5
 0058 0DC0              xjmp L16
 005A           L13:
 005A                   .dbline 25
 005A           ;       {
 005A                   .dbline 27
 005A           ;       
 005A           ;       PORTB&=~BIT(k);
 005A 01E0              ldi R16,1
 005C 162F              mov R17,R22
 005E 0E940000          xcall lsl8
 0062 202E              mov R2,R16
 0064 2094              com R2
 0066 38B2              in R3,0x18
 0068 3220              and R3,R2
 006A 38BA              out 0x18,R3
 006C                   .dbline 28
 006C           ;       delay(300);     
 006C 0CE2              ldi R16,300
 006E 11E0              ldi R17,1
 0070 C7DF              xcall _delay
 0072                   .dbline 29
 0072           ;       }
 0072           L14:
 0072                   .dbline 24
 0072 6A95              dec R22
 0074           L16:
 0074                   .dbline 24
 0074 80E0              ldi R24,0
 0076 8617              cp R24,R22
 0078 80F3              brlo L13
 007A           X3:
 007A 2CC0              xjmp L12
 007C           L11:
 007C                   .dbline 30
 007C           ;       else if(j==2)
 007C 4230              cpi R20,2
 007E 91F4              brne L17
 0080           X4:
 0080                   .dbline 31
 0080           ;               for(k=1;k<6;k++)
 0080 61E0              ldi R22,1
 0082 0DC0              xjmp L22
 0084           L19:
 0084                   .dbline 32
 0084           ;       {
 0084                   .dbline 34
 0084           ;       
 0084           ;       PORTB&=~BIT(k);
 0084 01E0              ldi R16,1
 0086 162F              mov R17,R22
 0088 0E940000          xcall lsl8
 008C 202E              mov R2,R16
 008E 2094              com R2
 0090 38B2              in R3,0x18
 0092 3220              and R3,R2
 0094 38BA              out 0x18,R3
 0096                   .dbline 35
 0096           ;       delay(300);     
 0096 0CE2              ldi R16,300
 0098 11E0              ldi R17,1
 009A B2DF              xcall _delay
 009C                   .dbline 36
 009C           ;       }
 009C           L20:
 009C                   .dbline 31
 009C 6395              inc R22
 009E           L22:
 009E                   .dbline 31
 009E 6630              cpi R22,6
 00A0 88F3              brlo L19
 00A2           X5:
 00A2 18C0              xjmp L18
 00A4           L17:
 00A4                   .dbline 37
 00A4           ;       else if(j==3)
 00A4 4330              cpi R20,3
 00A6 B1F4              brne L23
 00A8           X6:
 00A8                   .dbline 38
 00A8           ;       for(k=1;k<6;k++)
 00A8 61E0              ldi R22,1
 00AA 12C0              xjmp L28
 00AC           L25:
 00AC                   .dbline 39
 00AC           ;       {
 00AC                   .dbline 41
 00AC           ;       
 00AC           ;       PORTB&=~BIT(j);
 00AC 01E0              ldi R16,1
 00AE 142F              mov R17,R20
 00B0 0E940000          xcall lsl8
 00B4 202E              mov R2,R16
 00B6 2094              com R2
 00B8 38B2              in R3,0x18
 00BA 3220              and R3,R2
 00BC 38BA              out 0x18,R3
 00BE                   .dbline 42
 00BE           ;       delay(300);     
 00BE 0CE2              ldi R16,300
 00C0 11E0              ldi R17,1
 00C2 9EDF              xcall _delay
 00C4                   .dbline 43
 00C4           ;       PORTB=0xff;
 00C4 8FEF              ldi R24,255
 00C6 88BB              out 0x18,R24
 00C8                   .dbline 44
 00C8           ;       delay(200);
 00C8 08EC              ldi R16,200
 00CA 10E0              ldi R17,0
 00CC 99DF              xcall _delay
 00CE                   .dbline 45
 00CE           ;       }
 00CE           L26:
 00CE                   .dbline 38
 00CE 6395              inc R22
 00D0           L28:
 00D0                   .dbline 38
 00D0 6630              cpi R22,6
 00D2 60F3              brlo L25
 00D4           X7:
 00D4           L23:
 00D4           L18:
 00D4           L12:
 00D4                   .dbline 47
 00D4           ;       
 00D4           ;       PORTB=0XFF;
 00D4 8FEF              ldi R24,255
 00D6 88BB              out 0x18,R24
 00D8                   .dbline 48
 00D8           ;       PORTB=~BIT(j);
 00D8 01E0              ldi R16,1
 00DA 142F              mov R17,R20

⌨️ 快捷键说明

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