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

📄 din0.lis

📁 这个是用AVR编写的程序
💻 LIS
字号:
                        .module din0.c
                        .area data(ram, con, rel)
 0000           _num::
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile D:\chengxu\lesson7_2\lesson7_3\din0.c
 0001                   .dbsym e num _num c
                        .area code(ram, con, rel)
 0000                   .dbfile D:\chengxu\lesson7_2\lesson7_3\din0.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                   .dbsym e table _table A[32:16]I
                        .area vector(rom, abs)
                        .org 16
 0010 0C944800          jmp _miao
                        .area lit(rom, con, rel)
                        .area text(rom, con, rel)
 0000                   .dbfile D:\chengxu\lesson7_2\lesson7_3\din0.c
 0000                   .dbfunc e delay _delay fV
 0000           ;              x -> R20,R21
 0000           ;              y -> R22,R23
 0000           ;              z -> R16,R17
                        .even
 0000           _delay::
 0000 0E940000          xcall push_gset2
 0004                   .dbline -1
 0004                   .dbline 12
 0004           ; #include<iom16v.h>
 0004           ; #include<macros.h>
 0004           ; #include<stdio.h>
 0004           ; #define uint unsigned int
 0004           ; #define uchar unsigned char
 0004           ; uchar num=0;
 0004           ; #pragma data:code
 0004           ;  const  table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,
 0004           ;                   0x39,0x5e,0x79,0x71};
 0004           ; #pragma interrupt_handler miao:5                
 0004           ; void delay(uint z)
 0004           ;    {uint x,y;
 0004                   .dbline 13
 0004           ;     for (x=0;x<z;x++)
 0004 4427              clr R20
 0006 5527              clr R21
 0008 0BC0              xjmp L5
 000A           L2:
 000A                   .dbline 14
 000A 6627              clr R22
 000C 7727              clr R23
 000E 02C0              xjmp L9
 0010           L6:
 0010                   .dbline 14
 0010           L7:
 0010                   .dbline 14
 0010 6F5F              subi R22,255  ; offset = 1
 0012 7F4F              sbci R23,255
 0014           L9:
 0014                   .dbline 14
 0014 6035              cpi R22,80
 0016 E4E0              ldi R30,4
 0018 7E07              cpc R23,R30
 001A D0F3              brlo L6
 001C           L3:
 001C                   .dbline 13
 001C 4F5F              subi R20,255  ; offset = 1
 001E 5F4F              sbci R21,255
 0020           L5:
 0020                   .dbline 13
 0020 4017              cp R20,R16
 0022 5107              cpc R21,R17
 0024 90F3              brlo L2
 0026                   .dbline -2
 0026                   .dbline 15
 0026           ;         for(y=0;y<1104;y++);
 0026           ;       }
 0026           L1:
 0026 0E940000          xcall pop_gset2
 002A                   .dbline 0 ; func end
 002A 0895              ret
 002C                   .dbsym r x 20 i
 002C                   .dbsym r y 22 i
 002C                   .dbsym r z 16 i
 002C                   .dbend
 002C                   .dbfunc e show _show fV
 002C           ;              y -> R20
 002C           ;              x -> R22
                        .even
 002C           _show::
 002C 0E940000          xcall push_gset2
 0030 422F              mov R20,R18
 0032 602F              mov R22,R16
 0034                   .dbline -1
 0034                   .dbline 17
 0034           ;        void show(uchar x,uchar y)
 0034           ;    {DDRA|=0x18;
 0034                   .dbline 17
 0034 8AB3              in R24,0x1a
 0036 8861              ori R24,24
 0038 8ABB              out 0x1a,R24
 003A                   .dbline 18
 003A           ;     DDRB=0xff;
 003A 8FEF              ldi R24,255
 003C 87BB              out 0x17,R24
 003E                   .dbline 19
 003E           ;     PORTB=table[x];
 003E 82E0              ldi R24,2
 0040 869F              mul R24,R22
 0042 F001              movw R30,R0
 0044 80E0              ldi R24,<_table
 0046 90E0              ldi R25,>_table
 0048 E80F              add R30,R24
 004A F91F              adc R31,R25
 004C 0590              lpm R0,Z+
 004E 1490              lpm R1,Z
 0050 F001              movw R30,R0
 0052 E8BB              out 0x18,R30
 0054                   .dbline 20
 0054           ;       PORTA|=BIT(3);
 0054 DB9A              sbi 0x1b,3
 0056                   .dbline 21
 0056           ;       PORTA&=~BIT(3);
 0056 DB98              cbi 0x1b,3
 0058                   .dbline 22
 0058           ;       PORTB=0XFF;
 0058 8FEF              ldi R24,255
 005A 88BB              out 0x18,R24
 005C                   .dbline 23
 005C           ;       PORTB&=~BIT(y);
 005C 01E0              ldi R16,1
 005E 142F              mov R17,R20
 0060 0E940000          xcall lsl8
 0064 202E              mov R2,R16
 0066 2094              com R2
 0068 38B2              in R3,0x18
 006A 3220              and R3,R2
 006C 38BA              out 0x18,R3
 006E                   .dbline 24
 006E           ;       PORTA|=BIT(4);
 006E DC9A              sbi 0x1b,4
 0070                   .dbline 25
 0070           ;       PORTA&=~BIT(4);
 0070 DC98              cbi 0x1b,4
 0072                   .dbline 26
 0072           ;       delay(1);}
 0072 01E0              ldi R16,1
 0074 10E0              ldi R17,0
 0076 C4DF              xcall _delay
 0078                   .dbline -2
 0078                   .dbline 26
 0078           L10:
 0078 0E940000          xcall pop_gset2
 007C                   .dbline 0 ; func end
 007C 0895              ret
 007E                   .dbsym r y 20 c
 007E                   .dbsym r x 22 c
 007E                   .dbend
 007E                   .dbfunc e init _init fV
                        .even
 007E           _init::
 007E                   .dbline -1
 007E                   .dbline 40
 007E           ;  /* void show(uchar x,uchar y)
 007E           ;    {DDRA|=0X18;
 007E           ;     DDRB=0XFF;
 007E           ;       PORTB=table[x];
 007E           ;       PORTA|=BIT(3);
 007E           ;       PORTA&=~BIT(3);
 007E           ;       PORTB=0XFF;
 007E           ;       PORTB&=~BIT(y);
 007E           ;       PORTA|=BIT(4);
 007E           ;       PORTA&=~BIT(4);
 007E           ;       delay(1);
 007E           ;    }*/        
 007E           ;    void init() //定时器0的初始化
 007E           ;     {TCNT0=0X01;
 007E                   .dbline 40
 007E 81E0              ldi R24,1
 0080 82BF              out 0x32,R24
 0082                   .dbline 41
 0082           ;        TCCR0=0x05;
 0082 85E0              ldi R24,5
 0084 83BF              out 0x33,R24
 0086                   .dbline 42
 0086           ;        TIMSK|=BIT(2);
 0086 89B7              in R24,0x39
 0088 8460              ori R24,4
 008A 89BF              out 0x39,R24
 008C                   .dbline 43
 008C           ;        SREG|=BIT(7);
 008C 7894              bset 7
 008E                   .dbline -2
 008E                   .dbline 44
 008E           ;        }
 008E           L11:
 008E                   .dbline 0 ; func end
 008E 0895              ret
 0090                   .dbend
 0090                   .dbfunc e miao _miao fV
                        .even
 0090           _miao::
 0090 2A92              st -y,R2
 0092 8A93              st -y,R24
 0094 9A93              st -y,R25
 0096 2FB6              in R2,0x3f
 0098 2A92              st -y,R2
 009A                   .dbline -1
 009A                   .dbline 60
 009A           ;        
 009A           ;         
 009A           ;       /*   void init() //定时器2的初始化
 009A           ;     {TCNT2=0X01;
 009A           ;        TCCR2=0x05;
 009A           ;        TIMSK|=BIT(6);
 009A           ;        SREG|=BIT(7);
 009A           ;        }
 009A           ;         void miao() //中断函数2
 009A           ;         {if(num==1000)
 009A           ;           {num=0;}
 009A           ;          else num++;
 009A           ;          TCNT2=0X01;
 009A           ;         }*/
 009A           ;        void miao() //中断函数0
 009A           ;         {if(num==1000)
 009A                   .dbline 60
 009A 80910000          lds R24,_num
 009E 883E              cpi R24,232
 00A0 21F4              brne L13
 00A2                   .dbline 61
 00A2           ;           {num=0;}
 00A2                   .dbline 61
 00A2 2224              clr R2
 00A4 20920000          sts _num,R2
 00A8                   .dbline 61
 00A8 05C0              xjmp L14
 00AA           L13:
 00AA                   .dbline 62
 00AA           ;          else num++;
 00AA 80910000          lds R24,_num
 00AE 8F5F              subi R24,255    ; addi 1
 00B0 80930000          sts _num,R24
 00B4           L14:
 00B4                   .dbline 63
 00B4           ;          TCNT0=0X01;
 00B4 81E0              ldi R24,1
 00B6 82BF              out 0x32,R24
 00B8                   .dbline -2
 00B8                   .dbline 64
 00B8           ;         }
 00B8           L12:
 00B8 2990              ld R2,y+
 00BA 2FBE              out 0x3f,R2
 00BC 9991              ld R25,y+
 00BE 8991              ld R24,y+
 00C0 2990              ld R2,y+
 00C2                   .dbline 0 ; func end
 00C2 1895              reti
 00C4                   .dbend
 00C4                   .dbfunc e main _main fV
 00C4           ;            fen -> R20
                        .even
 00C4           _main::
 00C4                   .dbline -1
 00C4                   .dbline 67
 00C4           ;                                 
 00C4           ;   void main(void)
 00C4           ;     {uchar fen=0;
 00C4                   .dbline 67
 00C4 4427              clr R20
 00C6                   .dbline 68
 00C6           ;       init();
 00C6 DBDF              xcall _init
 00C8 18C0              xjmp L17
 00CA           L16:
 00CA                   .dbline 70
 00CA           ;       while(1)
 00CA           ;       {
 00CA                   .dbline 71
 00CA           ;         if(num==1000)
 00CA 80910000          lds R24,_num
 00CE 883E              cpi R24,232
 00D0 41F4              brne L19
 00D2                   .dbline 72
 00D2           ;         {num=0;
 00D2                   .dbline 72
 00D2 2224              clr R2
 00D4 20920000          sts _num,R2
 00D8                   .dbline 73
 00D8           ;          if(fen==59)
 00D8 4B33              cpi R20,59
 00DA 11F4              brne L21
 00DC                   .dbline 74
 00DC           ;          {fen=0;
 00DC                   .dbline 74
 00DC 4427              clr R20
 00DE                   .dbline 75
 00DE           ;          }
 00DE 01C0              xjmp L22
 00E0           L21:
 00E0                   .dbline 76
 00E0           ;          else fen++;
 00E0 4395              inc R20
 00E2           L22:
 00E2                   .dbline 77
 00E2           ;          }
 00E2           L19:
 00E2                   .dbline 78
 00E2 2227              clr R18
 00E4 1AE0              ldi R17,10
 00E6 042F              mov R16,R20
 00E8 0E940000          xcall div8u
 00EC 9FDF              xcall _show
 00EE                   .dbline 79
 00EE 21E0              ldi R18,1
 00F0 1AE0              ldi R17,10
 00F2 042F              mov R16,R20
 00F4 0E940000          xcall mod8u
 00F8 99DF              xcall _show
 00FA                   .dbline 80
 00FA           L17:
 00FA                   .dbline 69
 00FA E7CF              xjmp L16
 00FC           X0:
 00FC                   .dbline -2
 00FC                   .dbline 81
 00FC           ;        show(fen/10,0);
 00FC           ;        show(fen%10,1);
 00FC           ;         }
 00FC           ; }     
 00FC           L15:
 00FC                   .dbline 0 ; func end
 00FC 0895              ret
 00FE                   .dbsym r fen 20 c
 00FE                   .dbend

⌨️ 快捷键说明

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