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

📄 adc.lis

📁 AVR之ATMega16
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00BA 4094              com R4
 00BC 5524              clr R5
 00BE 47FC              sbrc R4,7
 00C0 5094              com R5
 00C2 FE01              movw R30,R28
 00C4 6080              ldd R6,z+0
 00C6 7180              ldd R7,z+1
 00C8 8280              ldd R8,z+2
 00CA 9380              ldd R9,z+3
 00CC 6228              or R6,R2
 00CE 7328              or R7,R3
 00D0 8428              or R8,R4
 00D2 9528              or R9,R5
 00D4 FE01              movw R30,R28
 00D6 6082              std z+0,R6
 00D8 7182              std z+1,R7
 00DA 8282              std z+2,R8
 00DC 9382              std z+3,R9
 00DE                   .dbline 48
 00DE           ;  voltage=(value*2560)>>10;
 00DE FE01              movw R30,R28
 00E0 2080              ldd R2,z+0
 00E2 3180              ldd R3,z+1
 00E4 4280              ldd R4,z+2
 00E6 5380              ldd R5,z+3
 00E8 40E0              ldi R20,0
 00EA 5AE0              ldi R21,10
 00EC 60E0              ldi R22,0
 00EE 70E0              ldi R23,0
 00F0 5A92              st -y,R5
 00F2 4A92              st -y,R4
 00F4 3A92              st -y,R3
 00F6 2A92              st -y,R2
 00F8 8A01              movw R16,R20
 00FA 9B01              movw R18,R22
 00FC 0E940000          xcall empy32u
 0100 8AE0              ldi R24,10
 0102 90E0              ldi R25,0
 0104 8A93              st -y,R24
 0106 0E940000          xcall lsr32
 010A 5801              movw R10,R16
 010C                   .dbline 49
 010C           ;  return voltage;
 010C                   .dbline -2
 010C           L15:
 010C 2496              adiw R28,4
 010E 0E940000          xcall pop_gset3
 0112                   .dbline 0 ; func end
 0112 0895              ret
 0114                   .dbsym r voltage 10 i
 0114                   .dbsym l value 0 l
 0114                   .dbend
                        .area vector(rom, abs)
                        .org 56
 0038 0C948A00          jmp _adc_isr
                        .area text(rom, con, rel)
 0114                   .dbfile C:\DOCUME~1\Administrator\桌面\精雅系列单片机实验开发板演示程序\ADC\ADC.c
 0114                   .dbfunc e adc_isr _adc_isr fV
                        .even
 0114           _adc_isr::
 0114 0E940000          xcall push_lset
 0118                   .dbline -1
 0118                   .dbline 55
 0118           ; }
 0118           ; 
 0118           ; 
 0118           ; #pragma interrupt_handler adc_isr:15
 0118           ; void adc_isr(void)
 0118           ; {
 0118                   .dbline 56
 0118           ;         if(i==5)
 0118 80910000          lds R24,_i
 011C 8530              cpi R24,5
 011E 19F4              brne L17
 0120                   .dbline 57
 0120           ;         vol1=adc_calc();
 0120 A4DF              xcall _adc_calc
 0122 00931200          sts _vol1,R16
 0126           L17:
 0126                   .dbline 58
 0126           ;         if(i==10)
 0126 80910000          lds R24,_i
 012A 8A30              cpi R24,10
 012C 19F4              brne L19
 012E                   .dbline 59
 012E           ;         vol2=adc_calc();
 012E 9DDF              xcall _adc_calc
 0130 00931300          sts _vol2,R16
 0134           L19:
 0134                   .dbline 60
 0134           ;         if(vol1==vol2)
 0134 20901300          lds R2,_vol2
 0138 30901200          lds R3,_vol1
 013C 3214              cp R3,R2
 013E 19F4              brne L21
 0140                   .dbline 61
 0140           ;         vol=vol1;
 0140 232C              mov R2,R3
 0142 20920100          sts _vol,R2
 0146           L21:
 0146                   .dbline 62
 0146           ;         i++;
 0146 80910000          lds R24,_i
 014A 8F5F              subi R24,255    ; addi 1
 014C 80930000          sts _i,R24
 0150                   .dbline 63
 0150           ;         if(i>10)
 0150 8AE0              ldi R24,10
 0152 20900000          lds R2,_i
 0156 8215              cp R24,R2
 0158 18F4              brsh L23
 015A                   .dbline 64
 015A           ;         i=0;
 015A 2224              clr R2
 015C 20920000          sts _i,R2
 0160           L23:
 0160                   .dbline 65
 0160           ;         ADCSRA|=BIT(ADSC);//ADC开始转换
 0160 369A              sbi 0x6,6
 0162                   .dbline -2
 0162           L16:
 0162 0E940000          xcall pop_lset
 0166                   .dbline 0 ; func end
 0166 1895              reti
 0168                   .dbend
 0168                   .dbfunc e init_devices _init_devices fV
                        .even
 0168           _init_devices::
 0168                   .dbline -1
 0168                   .dbline 71
 0168           ;  
 0168           ; }
 0168           ; 
 0168           ; 
 0168           ; void init_devices(void)
 0168           ; {
 0168                   .dbline 72
 0168           ;  CLI(); //禁止所有中断
 0168 F894              cli
 016A                   .dbline 73
 016A           ;  MCUCR  = 0x00;//外部中断触发方式
 016A 2224              clr R2
 016C 25BE              out 0x35,R2
 016E                   .dbline 74
 016E           ;  MCUCSR = 0x80;//禁止JTAG
 016E 80E8              ldi R24,128
 0170 84BF              out 0x34,R24
 0172                   .dbline 75
 0172           ;  GICR   = 0x00;//外部中断使能
 0172 2BBE              out 0x3b,R2
 0174                   .dbline 76
 0174           ;  port_init();
 0174 64DF              xcall _port_init
 0176                   .dbline 77
 0176           ;  adc_init();
 0176 6EDF              xcall _adc_init
 0178                   .dbline 78
 0178           ;  SEI();//开全局中断
 0178 7894              sei
 017A                   .dbline 79
 017A           ;  ADCSRA|=BIT(ADSC);//ADC开始转换
 017A 369A              sbi 0x6,6
 017C                   .dbline -2
 017C           L25:
 017C                   .dbline 0 ; func end
 017C 0895              ret
 017E                   .dbend
 017E                   .dbfunc e main _main fV
                        .even
 017E           _main::
 017E                   .dbline -1
 017E                   .dbline 83
 017E           ; }
 017E           ; //主函数
 017E           ; void main(void)
 017E           ; {
 017E                   .dbline 84
 017E           ;  init_devices();
 017E F4DF              xcall _init_devices
 0180 58C0              xjmp L28
 0182           L27:
 0182                   .dbline 87
 0182                   .dbline 88
 0182 2AE0              ldi R18,10
 0184 30E0              ldi R19,0
 0186 00910100          lds R16,_vol
 018A 1127              clr R17
 018C 0E940000          xcall mod16s
 0190 F801              movw R30,R16
 0192 80E0              ldi R24,<_led_date
 0194 90E0              ldi R25,>_led_date
 0196 E80F              add R30,R24
 0198 F91F              adc R31,R25
 019A 2080              ldd R2,z+0
 019C 28BA              out 0x18,R2
 019E                   .dbline 89
 019E 87EF              ldi R24,247
 01A0 82BB              out 0x12,R24
 01A2                   .dbline 90
 01A2 04EF              ldi R16,500
 01A4 11E0              ldi R17,1
 01A6 2CDF              xcall _DelayUS
 01A8                   .dbline 91
 01A8 2AE0              ldi R18,10
 01AA 30E0              ldi R19,0
 01AC 00910100          lds R16,_vol
 01B0 1127              clr R17
 01B2 0E940000          xcall div16s
 01B6 2AE0              ldi R18,10
 01B8 30E0              ldi R19,0
 01BA 0E940000          xcall mod16s
 01BE F801              movw R30,R16
 01C0 80E0              ldi R24,<_led_date
 01C2 90E0              ldi R25,>_led_date
 01C4 E80F              add R30,R24
 01C6 F91F              adc R31,R25
 01C8 2080              ldd R2,z+0
 01CA 28BA              out 0x18,R2
 01CC                   .dbline 92
 01CC 8BEF              ldi R24,251
 01CE 82BB              out 0x12,R24
 01D0                   .dbline 93
 01D0 04EF              ldi R16,500
 01D2 11E0              ldi R17,1
 01D4 15DF              xcall _DelayUS
 01D6                   .dbline 94
 01D6 24E6              ldi R18,100
 01D8 30E0              ldi R19,0
 01DA 00910100          lds R16,_vol
 01DE 1127              clr R17
 01E0 0E940000          xcall div16s
 01E4 2AE0              ldi R18,10
 01E6 30E0              ldi R19,0
 01E8 0E940000          xcall mod16s
 01EC F801              movw R30,R16
 01EE 80E0              ldi R24,<_led_date
 01F0 90E0              ldi R25,>_led_date
 01F2 E80F              add R30,R24
 01F4 F91F              adc R31,R25
 01F6 2080              ldd R2,z+0
 01F8 28BA              out 0x18,R2
 01FA                   .dbline 95
 01FA 8DEF              ldi R24,253
 01FC 82BB              out 0x12,R24
 01FE                   .dbline 96
 01FE 04EF              ldi R16,500
 0200 11E0              ldi R17,1
 0202 FEDE              xcall _DelayUS
 0204                   .dbline 97
 0204 28EE              ldi R18,1000
 0206 33E0              ldi R19,3
 0208 00910100          lds R16,_vol
 020C 1127              clr R17
 020E 0E940000          xcall div16s
 0212 2AE0              ldi R18,10
 0214 30E0              ldi R19,0
 0216 0E940000          xcall mod16s
 021A F801              movw R30,R16
 021C 80E0              ldi R24,<_led_date
 021E 90E0              ldi R25,>_led_date
 0220 E80F              add R30,R24
 0222 F91F              adc R31,R25
 0224 2080              ldd R2,z+0
 0226 28BA              out 0x18,R2
 0228                   .dbline 98
 0228 8EEF              ldi R24,254
 022A 82BB              out 0x12,R24
 022C                   .dbline 99
 022C 04EF              ldi R16,500
 022E 11E0              ldi R17,1
 0230 E7DE              xcall _DelayUS
 0232                   .dbline 100
 0232           L28:
 0232                   .dbline 86
 0232 A7CF              xjmp L27
 0234           X1:
 0234                   .dbline -2
 0234           L26:
 0234                   .dbline 0 ; func end
 0234 0895              ret
 0236                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile C:\DOCUME~1\Administrator\桌面\精雅系列单片机实验开发板演示程序\ADC\ADC.c
 0000           _i::
 0000                   .blkb 1
 0001                   .dbsym e i _i c
 0001           _vol::
 0001                   .blkb 1
 0002                   .dbsym e vol _vol c

⌨️ 快捷键说明

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