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

📄 ad_led.lis

📁 AVR系列单片机源代码例子,可在ICCAVR中直接使用
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00C4 E82F              mov R30,R24
 00C6 F92F              mov R31,R25
 00C8 C895              lpm
 00CA 00920700          sts _ledbuff+5,R0
 00CE                   .dbline 55
                       ;      ledbuff[4]=tabel[0x0d];
 00CE 80E0              ldi R24,<_tabel+13
 00D0 90E0              ldi R25,>_tabel+13
 00D2 E82F              mov R30,R24
 00D4 F92F              mov R31,R25
 00D6 C895              lpm
 00D8 00920600          sts _ledbuff+4,R0
 00DC                   .dbline 56
                       ;      ledbuff[3]=0x40;
 00DC 80E4              ldi R24,64
 00DE 80930500          sts _ledbuff+3,R24
 00E2                   .dbline 57
                       ;      ledbuff[2]|=0x80;      
 00E2 80910400          lds R24,_ledbuff+2
 00E6 8068              ori R24,128
 00E8 80930400          sts _ledbuff+2,R24
 00EC                   .dbline -2
 00EC                   .dbline 58
                       ;     }
 00EC                 L7:
 00EC 00D0              rcall pop_gset4
 00EE                   .dbline 0 ; func end
 00EE 0895              ret
 00F0                   .dbsym l char_p 1 pc
 00F0                   .dbsym r i 10 c
 00F0                   .dbsym r temp 12 i
 00F0                   .dbsym r adc 10 i
                         .area vector(rom, abs)
                         .org 28
 001C 78C0              rjmp _adc_isr
                         .area text(rom, con, rel)
 00F0                   .dbfile D:\ICC-AVR\examples.sl\AD_8535_LED\ad_led.c
 00F0                   .dbfunc s adc_isr _adc_isr fI
                       ;           temp -> R16,R17
                         .even
 00F0                 _adc_isr::
 00F0 2A92              st -y,R2
 00F2 3A92              st -y,R3
 00F4 0A93              st -y,R16
 00F6 1A93              st -y,R17
 00F8 EA93              st -y,R30
 00FA 2FB6              in R2,0x3f
 00FC 2A92              st -y,R2
 00FE                   .dbline -1
 00FE                   .dbline 62
                       ; /*      AD转换程序     */
                       ; #pragma interrupt_handler adc_isr:IT_ADC
                       ; void adc_isr(void)
                       ;    {
 00FE                   .dbline 63
                       ;     unsigned int temp=0;
 00FE 0027              clr R16
 0100 1127              clr R17
 0102 02C0              rjmp L20
 0104                 L19:
 0104                   .dbline 65
 0104 0F5F              subi R16,255  ; offset = 1
 0106 1F4F              sbci R17,255
 0108                 L20:
 0108                   .dbline 64
                       ;     while(temp<6)
 0108 0630              cpi R16,6
 010A E0E0              ldi R30,0
 010C 1E07              cpc R17,R30
 010E D0F3              brlo L19
 0110                   .dbline 66
                       ;         temp++;
                       ;     ad_con=ADC;    
 0110 24B0              in R2,0x4
 0112 35B0              in R3,0x5
 0114 30920100          sts _ad_con+1,R3
 0118 20920000          sts _ad_con,R2
 011C                   .dbline 67
                       ;     ADCSR|=(1<<ADSC);//启动转换                          
 011C 369A              sbi 0x6,6
 011E                   .dbline -2
 011E                   .dbline 68
                       ;    } 
 011E                 L18:
 011E 2990              ld R2,y+
 0120 2FBE              out 0x3f,R2
 0122 E991              ld R30,y+
 0124 1991              ld R17,y+
 0126 0991              ld R16,y+
 0128 3990              ld R3,y+
 012A 2990              ld R2,y+
 012C                   .dbline 0 ; func end
 012C 1895              reti
 012E                   .dbsym r temp 16 i
 012E                   .dbfunc s main _main fI
                       ;              i -> R20
                         .even
 012E                 _main::
 012E                   .dbline -1
 012E                   .dbline 71
                       ; //将AD转换结果转换成电压数值,然后在LCD上显示   
                       ; void main(void)
                       ; {
 012E                   .dbline 73
                       ;  unsigned char i;
                       ;  port_init();
 012E 68DF              rcall _port_init
 0130                   .dbline 74
                       ;  MCUCR=0;
 0130 2224              clr R2
 0132 25BE              out 0x35,R2
 0134                   .dbline 75
                       ;  ADMUX=0x00;//0通道
 0134 27B8              out 0x7,R2
 0136                   .dbline 76
                       ;  ADCSR=(1<<ADEN)|(1<<ADSC)|(1<<ADIF)|(1<<ADIE)|0x06;
 0136 8EED              ldi R24,222
 0138 86B9              out 0x6,R24
 013A                   .dbline 77
                       ;  SEI();
 013A 7894              sei
 013C                   .dbline 78
                       ;  for(i=0;i<6;i++)
 013C 4427              clr R20
 013E 11C0              rjmp L26
 0140                 L23:
 0140                   .dbline 79
 0140 80E0              ldi R24,<_ledbuff
 0142 90E0              ldi R25,>_ledbuff
 0144 E42F              mov R30,R20
 0146 FF27              clr R31
 0148 E80F              add R30,R24
 014A F91F              adc R31,R25
 014C 80E0              ldi R24,<_tabel
 014E 90E0              ldi R25,>_tabel
 0150 FA93              st -y,R31
 0152 EA93              st -y,R30
 0154 E82F              mov R30,R24
 0156 F92F              mov R31,R25
 0158 C895              lpm
 015A E991              ld R30,y+
 015C F991              ld R31,y+
 015E 0082              std z+0,R0
 0160                 L24:
 0160                   .dbline 78
 0160 4395              inc R20
 0162                 L26:
 0162                   .dbline 78
 0162 4630              cpi R20,6
 0164 68F3              brlo L23
 0166                   .dbline 80
                       ;     ledbuff[i]=tabel[0];
                       ;  i=0;
 0166 4427              clr R20
 0168 1FC0              rjmp L28
 016A                 L27:
 016A                   .dbline 82
                       ;  while(1)
                       ;     {
 016A                   .dbline 83
                       ;      if((i==127)|(i==0))
 016A 4F37              cpi R20,127
 016C 29F4              brne L32
 016E 81E0              ldi R24,1
 0170 90E0              ldi R25,0
 0172 A82E              mov R10,R24
 0174 B92E              mov R11,R25
 0176 02C0              rjmp L33
 0178                 L32:
 0178 AA24              clr R10
 017A BB24              clr R11
 017C                 L33:
 017C 4423              tst R20
 017E 19F4              brne L34
 0180 61E0              ldi R22,1
 0182 70E0              ldi R23,0
 0184 02C0              rjmp L35
 0186                 L34:
 0186 6627              clr R22
 0188 7727              clr R23
 018A                 L35:
 018A 2A2C              mov R2,R10
 018C 3B2C              mov R3,R11
 018E 262A              or R2,R22
 0190 372A              or R3,R23
 0192 2220              tst R2
 0194 11F4              brne X1
 0196 3320              tst R3
 0198 29F0              breq L30
 019A                 X1:
 019A                   .dbline 84
                       ;          adctovol(ad_con);//降低AD结果刷新速率
 019A 00910000          lds R16,_ad_con
 019E 10910100          lds R17,_ad_con+1
 01A2 52DF              rcall _adctovol
 01A4                 L30:
 01A4                   .dbline 85
 01A4 34DF              rcall _display
 01A6                   .dbline 86
 01A6 4395              inc R20
 01A8                   .dbline 87
 01A8                 L28:
 01A8                   .dbline 81
 01A8 E0CF              rjmp L27
 01AA                 X0:
 01AA                   .dbline -2
 01AA                   .dbline 88
                       ;      display();           //使末位闪烁不太明显
                       ;      i++; 
                       ;     }
                       ;  }   
 01AA                 L22:
 01AA                   .dbline 0 ; func end
 01AA 0895              ret
 01AC                   .dbsym r i 20 c
                         .area bss(ram, con, rel)
 0000                   .dbfile D:\ICC-AVR\examples.sl\AD_8535_LED\ad_led.c
 0000                 _ad_con::
 0000                   .blkb 2
 0002                   .dbsym s ad_con _ad_con i
 0002                 _ledbuff::
 0002                   .blkb 6
 0008                   .dbsym s ledbuff _ledbuff A[6:6]c

⌨️ 快捷键说明

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