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

📄 ad.lis

📁 avr基础程序大全
💻 LIS
字号:
                        .module AD.c
                        .area text(rom, con, rel)
 0000                   .dbfile AD.c
                        .area data(ram, con, rel)
 0000                   .dbfile AD.c
 0000           _table::
 0000                   .blkb 2
                        .area idata
 0000 3F06              .byte 63,6
                        .area data(ram, con, rel)
 0002                   .dbfile AD.c
 0002                   .blkb 2
                        .area idata
 0002 5B4F              .byte 91,'O
                        .area data(ram, con, rel)
 0004                   .dbfile AD.c
 0004                   .blkb 2
                        .area idata
 0004 666D              .byte 'f,'m
                        .area data(ram, con, rel)
 0006                   .dbfile AD.c
 0006                   .blkb 2
                        .area idata
 0006 7D07              .byte 125,7
                        .area data(ram, con, rel)
 0008                   .dbfile AD.c
 0008                   .blkb 2
                        .area idata
 0008 7F6F              .byte 127,'o
                        .area data(ram, con, rel)
 000A                   .dbfile AD.c
 000A                   .dbfile F:\51&av配套光盘\51&avr配套程序\avr程序\15AD转换\AD.c
 000A                   .dbsym e table _table A[10:10]c
 000A           _LED_W::
 000A                   .blkb 2
                        .area idata
 000A 0001              .byte 0,1
                        .area data(ram, con, rel)
 000C                   .dbfile F:\51&av配套光盘\51&avr配套程序\avr程序\15AD转换\AD.c
 000C                   .blkb 2
                        .area idata
 000C 0203              .byte 2,3
                        .area data(ram, con, rel)
 000E                   .dbfile F:\51&av配套光盘\51&avr配套程序\avr程序\15AD转换\AD.c
 000E                   .blkb 2
                        .area idata
 000E 0405              .byte 4,5
                        .area data(ram, con, rel)
 0010                   .dbfile F:\51&av配套光盘\51&avr配套程序\avr程序\15AD转换\AD.c
 0010                   .blkb 2
                        .area idata
 0010 0607              .byte 6,7
                        .area data(ram, con, rel)
 0012                   .dbfile F:\51&av配套光盘\51&avr配套程序\avr程序\15AD转换\AD.c
 0012                   .dbsym e LED_W _LED_W A[8:8]c
                        .area text(rom, con, rel)
 0000                   .dbfile F:\51&av配套光盘\51&avr配套程序\avr程序\15AD转换\AD.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 10
 0004           ; #include <iom16v.h>
 0004           ; #include <macros.h>
 0004           ; #define  uchar unsigned char
 0004           ; #define  uint  unsigned int
 0004           ; 
 0004           ; uchar const table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
 0004           ;                 
 0004           ; uchar const LED_W[8] = {0,1,2,3,4,5,6,7};                                
 0004           ; void delay(uint ms)
 0004           ; {
 0004                   .dbline 12
 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 13
 000A           ;          {
 000A                   .dbline 14
 000A           ;          for(j=0;j<1141;j++);
 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 6537              cpi R22,117
 0016 E4E0              ldi R30,4
 0018 7E07              cpc R23,R30
 001A D0F3              brlo L6
 001C           X0:
 001C                   .dbline 15
 001C           ;        }
 001C           L3:
 001C                   .dbline 12
 001C 4F5F              subi R20,255  ; offset = 1
 001E 5F4F              sbci R21,255
 0020           L5:
 0020                   .dbline 12
 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 -> R10
 002A           ;              j -> R12
                        .even
 002A           _show::
 002A AA92              st -y,R10
 002C CA92              st -y,R12
 002E A22E              mov R10,R18
 0030 C02E              mov R12,R16
 0032                   .dbline -1
 0032                   .dbline 18
 0032           ; }
 0032           ; void show(uchar j,uchar k)
 0032           ; {
 0032                   .dbline 20
 0032           ;       
 0032           ;                DDRA=0xff;                     
 0032 8FEF              ldi R24,255
 0034 8ABB              out 0x1a,R24
 0036                   .dbline 21
 0036           ;               PORTA = table[j];                // i 值的 个位数
 0036 80E0              ldi R24,<_table
 0038 90E0              ldi R25,>_table
 003A EC2D              mov R30,R12
 003C FF27              clr R31
 003E E80F              add R30,R24
 0040 F91F              adc R31,R25
 0042 2080              ldd R2,z+0
 0044 2BBA              out 0x1b,R2
 0046                   .dbline 22
 0046           ;               PORTC = LED_W[k];                //点亮第一位数码管
 0046 80E0              ldi R24,<_LED_W
 0048 90E0              ldi R25,>_LED_W
 004A EA2D              mov R30,R10
 004C FF27              clr R31
 004E E80F              add R30,R24
 0050 F91F              adc R31,R25
 0052 2080              ldd R2,z+0
 0054 25BA              out 0x15,R2
 0056                   .dbline 24
 0056           ;               
 0056           ;               delay(2);
 0056 02E0              ldi R16,2
 0058 10E0              ldi R17,0
 005A D2DF              xcall _delay
 005C                   .dbline -2
 005C           L10:
 005C                   .dbline 0 ; func end
 005C C990              ld R12,y+
 005E A990              ld R10,y+
 0060 0895              ret
 0062                   .dbsym r k 10 c
 0062                   .dbsym r j 12 c
 0062                   .dbend
 0062                   .dbfunc e mega16_ad _mega16_ad fi
 0062           ;         addata -> R10,R11
                        .even
 0062           _mega16_ad::
 0062 AA92              st -y,R10
 0064 BA92              st -y,R11
 0066                   .dbline -1
 0066                   .dbline 32
 0066           ;       
 0066           ;               
 0066           ;       
 0066           ; }
 0066           ; 
 0066           ; 
 0066           ; uint mega16_ad()
 0066           ; {
 0066                   .dbline 34
 0066           ;      uint addata;
 0066           ;        DDRA&=~BIT(PA0);
 0066 D098              cbi 0x1a,0
 0068                   .dbline 35
 0068           ;        PORTA&=~BIT(PA0);
 0068 D898              cbi 0x1b,0
 006A                   .dbline 36
 006A           ;        ADMUX=0x40;
 006A 80E4              ldi R24,64
 006C 87B9              out 0x7,R24
 006E                   .dbline 37
 006E           ;        ADCSR=0X80;
 006E 80E8              ldi R24,128
 0070 86B9              out 0x6,R24
 0072                   .dbline 38
 0072           ;        ADCSR|=BIT(ADSC);
 0072 369A              sbi 0x6,6
 0074           L12:
 0074                   .dbline 39
 0074           ;        while(!(ADCSR&(BIT(ADIF))));
 0074           L13:
 0074                   .dbline 39
 0074 349B              sbis 0x6,4
 0076 FECF              rjmp L12
 0078           X2:
 0078                   .dbline 40
 0078           ;      addata=ADCL;
 0078 A4B0              in R10,0x4
 007A BB24              clr R11
 007C                   .dbline 41
 007C           ;        addata=addata+ADCH*256;
 007C 25B1              in R18,0x5
 007E 3327              clr R19
 0080 00E0              ldi R16,256
 0082 11E0              ldi R17,1
 0084 0E940000          xcall empy16s
 0088 A00E              add R10,R16
 008A B11E              adc R11,R17
 008C                   .dbline 42
 008C           ;        return addata;
 008C 8501              movw R16,R10
 008E                   .dbline -2
 008E           L11:
 008E                   .dbline 0 ; func end
 008E B990              ld R11,y+
 0090 A990              ld R10,y+
 0092 0895              ret
 0094                   .dbsym r addata 10 i
 0094                   .dbend
                        .area data(ram, con, rel)
 0012                   .dbfile F:\51&av配套光盘\51&avr配套程序\avr程序\15AD转换\AD.c
 0012           L16:
 0012                   .blkb 2
                        .area idata
 0012 0000              .word 0
                        .area data(ram, con, rel)
 0014                   .dbfile F:\51&av配套光盘\51&avr配套程序\avr程序\15AD转换\AD.c
 0014                   .blkb 2
                        .area idata
 0014 0000              .word 0
                        .area data(ram, con, rel)
 0016                   .dbfile F:\51&av配套光盘\51&avr配套程序\avr程序\15AD转换\AD.c
 0016                   .blkb 2
                        .area idata
 0016 0000              .word 0
                        .area data(ram, con, rel)
 0018                   .dbfile F:\51&av配套光盘\51&avr配套程序\avr程序\15AD转换\AD.c
 0018                   .blkb 2
                        .area idata
 0018 0000              .word 0
                        .area data(ram, con, rel)
 001A                   .dbfile F:\51&av配套光盘\51&avr配套程序\avr程序\15AD转换\AD.c
                        .area text(rom, con, rel)
 0094                   .dbfile F:\51&av配套光盘\51&avr配套程序\avr程序\15AD转换\AD.c
 0094                   .dbfunc e main _main fV
 0094           ;              i -> <dead>
 0094           ;              a -> R20,R21
 0094           ;             ad -> y+0
 0094           ;            ada -> R10,R11
                        .even
 0094           _main::
 0094 2897              sbiw R28,8
 0096                   .dbline -1
 0096                   .dbline 46
 0096           ; }   
 0096           ; 
 0096           ; void main()
 0096           ; {
 0096                   .dbline 47
 0096           ;    uint ada,i,ad[]={0,0,0,0},a=5000;
 0096 80E0              ldi R24,<L16
 0098 90E0              ldi R25,>L16
 009A FE01              movw R30,R28
 009C 08E0              ldi R16,8
 009E 10E0              ldi R17,0
 00A0 FA93              st -y,R31
 00A2 EA93              st -y,R30
 00A4 9A93              st -y,R25
 00A6 8A93              st -y,R24
 00A8 0E940000          xcall asgnblk
 00AC                   .dbline 47
 00AC 48E8              ldi R20,5000
 00AE 53E1              ldi R21,19
 00B0                   .dbline 49
 00B0           ;        
 00B0           ;               DDRC=0XFF;              
 00B0 8FEF              ldi R24,255
 00B2 84BB              out 0x14,R24
 00B4                   .dbline 50
 00B4           ;               PORTC=0X00;
 00B4 2224              clr R2
 00B6 25BA              out 0x15,R2
 00B8 0CC0              xjmp L18
 00BA           L17:
 00BA                   .dbline 52
 00BA           ;    while(1)
 00BA           ;    {
 00BA                   .dbline 53
 00BA           ;       ada=mega16_ad();//999  0999
 00BA D3DF              xcall _mega16_ad
 00BC 5801              movw R10,R16
 00BE                   .dbline 55
 00BE           ;         
 00BE           ;        if(ada>600)
 00BE 88E5              ldi R24,600
 00C0 92E0              ldi R25,2
 00C2 8017              cp R24,R16
 00C4 9107              cpc R25,R17
 00C6 18F4              brsh L20
 00C8           X3:
 00C8                   .dbline 56
 00C8           ;         {
 00C8                   .dbline 57
 00C8           ;                                DDRA|=BIT(7);
 00C8 D79A              sbi 0x1a,7
 00CA                   .dbline 58
 00CA           ;                                PORTA&=~BIT(7);
 00CA DF98              cbi 0x1b,7
 00CC                   .dbline 59
 00CC           ;         }
 00CC 02C0              xjmp L21
 00CE           L20:
 00CE                   .dbline 61
 00CE           ;         else
 00CE           ;         {
 00CE                   .dbline 62
 00CE           ;                 DDRA|=BIT(7);
 00CE D79A              sbi 0x1a,7
 00D0                   .dbline 63
 00D0           ;                 PORTA|=BIT(7);
 00D0 DF9A              sbi 0x1b,7
 00D2                   .dbline 64
 00D2           ;         }
 00D2           L21:
 00D2                   .dbline 80
 00D2           ;        /* for(i=0;i<4;i++)
 00D2           ;         {
 00D2           ;           ad[3-i]=ada%10;
 00D2           ;               ada=ada/10;
 00D2           ;         }
 00D2           ;        
 00D2           ;         
 00D2           ;         
 00D2           ;                                   for(i=0;i<4;i++)
 00D2           ;                                        {
 00D2           ;                                          show(ad[i],i);
 00D2           ;                
 00D2           ;                                          }*/
 00D2           ;               
 00D2           ;         
 00D2           ;    }
 00D2           L18:
 00D2                   .dbline 51
 00D2 F3CF              xjmp L17
 00D4           X4:
 00D4                   .dbline -2
 00D4           L15:
 00D4                   .dbline 0 ; func end
 00D4 2896              adiw R28,8
 00D6 0895              ret
 00D8                   .dbsym l i 1 i
 00D8                   .dbsym r a 20 i
 00D8                   .dbsym l ad 0 A[8:4]i
 00D8                   .dbsym r ada 10 i
 00D8                   .dbend
 00D8           ; }

⌨️ 快捷键说明

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