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

📄 adc.lis

📁 atmega8的片内A/D转换操作
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00FC 5527              clr R21
 00FE 4030              cpi R20,0
 0100 4507              cpc R20,R21
 0102 69F0              breq L21
 0104           X0:
 0104 4130              cpi R20,1
 0106 E0E0              ldi R30,0
 0108 5E07              cpc R21,R30
 010A A1F0              breq L22
 010C 4230              cpi R20,2
 010E E0E0              ldi R30,0
 0110 5E07              cpc R21,R30
 0112 D9F0              breq L23
 0114 4330              cpi R20,3
 0116 E0E0              ldi R30,0
 0118 5E07              cpc R21,R30
 011A 11F1              breq L24
 011C 2BC0              rjmp L18
 011E           X1:
 011E                   .dbline 48
 011E           ; //  end ad
 011E           ; //  display
 011E           ;     switch(dis){
 011E           L21:
 011E                   .dbline 49
 011E           ;         case  0:  write164(display[dis] | 0x70);  break;
 011E 80E0              ldi R24,<_display
 0120 90E0              ldi R25,>_display
 0122 E0910300          lds R30,_dis
 0126 FF27              clr R31
 0128 E80F              add R30,R24
 012A F91F              adc R31,R25
 012C 0081              ldd R16,z+0
 012E 0067              ori R16,112
 0130 67DF              rcall _write164
 0132                   .dbline 49
 0132 20C0              rjmp L19
 0134           L22:
 0134                   .dbline 50
 0134           ;         case  1:  write164(display[dis] | 0xB0);  break;
 0134 80E0              ldi R24,<_display
 0136 90E0              ldi R25,>_display
 0138 E0910300          lds R30,_dis
 013C FF27              clr R31
 013E E80F              add R30,R24
 0140 F91F              adc R31,R25
 0142 0081              ldd R16,z+0
 0144 006B              ori R16,176
 0146 5CDF              rcall _write164
 0148                   .dbline 50
 0148 15C0              rjmp L19
 014A           L23:
 014A                   .dbline 51
 014A           ;         case  2:  write164(display[dis] | 0xD0);  break;
 014A 80E0              ldi R24,<_display
 014C 90E0              ldi R25,>_display
 014E E0910300          lds R30,_dis
 0152 FF27              clr R31
 0154 E80F              add R30,R24
 0156 F91F              adc R31,R25
 0158 0081              ldd R16,z+0
 015A 006D              ori R16,208
 015C 51DF              rcall _write164
 015E                   .dbline 51
 015E 0AC0              rjmp L19
 0160           L24:
 0160                   .dbline 52
 0160           ;         case  3:  write164(display[dis] | 0xE0);  break;
 0160 80E0              ldi R24,<_display
 0162 90E0              ldi R25,>_display
 0164 E0910300          lds R30,_dis
 0168 FF27              clr R31
 016A E80F              add R30,R24
 016C F91F              adc R31,R25
 016E 0081              ldd R16,z+0
 0170 006E              ori R16,224
 0172 46DF              rcall _write164
 0174                   .dbline 52
 0174           L18:
 0174           L19:
 0174                   .dbline 54
 0174 80910300          lds R24,_dis
 0178 8F5F              subi R24,255    ; addi 1
 017A 282E              mov R2,R24
 017C 20920300          sts _dis,R2
 0180 83E0              ldi R24,3
 0182 8215              cp R24,R2
 0184 18F4              brsh L25
 0186                   .dbline 54
 0186 2224              clr R2
 0188 20920300          sts _dis,R2
 018C           L25:
 018C                   .dbline -2
 018C                   .dbline 56
 018C           ;     }
 018C           ;     if(++dis > 3) dis = 0;
 018C           ; //end  display
 018C           ; }
 018C           L9:
 018C 00D0              rcall pop_gset1
 018E 00D0              rcall pop_lset
 0190                   .dbline 0 ; func end
 0190 1895              reti
 0192                   .dbend
 0192                   .dbfunc e adc_init _adc_init fV
                        .even
 0192           _adc_init::
 0192                   .dbline -1
 0192                   .dbline 61
 0192           ; 
 0192           ; //ADC initialisation
 0192           ; // Conversion time: 13uS
 0192           ; void adc_init(void)
 0192           ; {
 0192                   .dbline 62
 0192           ;  ADCSR = 0x00; //disable adc
 0192 2224              clr R2
 0194 26B8              out 0x6,R2
 0196                   .dbline 63
 0196           ;  ADMUX = 0x00; //select adc input 0
 0196 27B8              out 0x7,R2
 0198                   .dbline 64
 0198           ;  ACSR  = 0x80;
 0198 80E8              ldi R24,128
 019A 88B9              out 0x8,R24
 019C                   .dbline 65
 019C           ;  ADCSR = 0x83;
 019C 83E8              ldi R24,131
 019E 86B9              out 0x6,R24
 01A0                   .dbline -2
 01A0                   .dbline 66
 01A0           ; }
 01A0           L27:
 01A0                   .dbline 0 ; func end
 01A0 0895              ret
 01A2                   .dbend
 01A2                   .dbfunc e init_devices _init_devices fV
                        .even
 01A2           _init_devices::
 01A2                   .dbline -1
 01A2                   .dbline 70
 01A2           ; 
 01A2           ; //call this routine to initialise all peripherals
 01A2           ; void init_devices(void)
 01A2           ; {
 01A2                   .dbline 72
 01A2           ;  //stop errant interrupts until set up
 01A2           ;  CLI(); //disable all interrupts
 01A2 F894              cli
 01A4                   .dbline 73
 01A4           ;  DDRB = 0x01;    //  初始化操作74LS164的管脚
 01A4 81E0              ldi R24,1
 01A6 87BB              out 0x17,R24
 01A8                   .dbline 74
 01A8           ;  DDRD = 0xC0;    //  初始化操作74LS164的管脚
 01A8 80EC              ldi R24,192
 01AA 81BB              out 0x11,R24
 01AC                   .dbline 75
 01AC           ;  DDRC = 0x00;
 01AC 2224              clr R2
 01AE 24BA              out 0x14,R2
 01B0                   .dbline 76
 01B0           ;  timer0_init();
 01B0 3CDF              rcall _timer0_init
 01B2                   .dbline 77
 01B2           ;  adc_init();
 01B2 EFDF              rcall _adc_init
 01B4                   .dbline 79
 01B4           ; 
 01B4           ;  MCUCR = 0x00;
 01B4 2224              clr R2
 01B6 25BE              out 0x35,R2
 01B8                   .dbline 80
 01B8           ;  GICR  = 0x00;
 01B8 2BBE              out 0x3b,R2
 01BA                   .dbline 81
 01BA           ;  TIMSK = 0x01; //timer interrupt sources
 01BA 81E0              ldi R24,1
 01BC 89BF              out 0x39,R24
 01BE                   .dbline 82
 01BE           ;  SEI(); //re-enable interrupts
 01BE 7894              sei
 01C0                   .dbline -2
 01C0                   .dbline 84
 01C0           ;  //all peripherals are now initialised
 01C0           ; }
 01C0           L28:
 01C0                   .dbline 0 ; func end
 01C0 0895              ret
 01C2                   .dbend
 01C2                   .dbfunc e main _main fV
                        .even
 01C2           _main::
 01C2                   .dbline -1
 01C2                   .dbline 88
 01C2           ; 
 01C2           ; //
 01C2           ; void main(void)
 01C2           ; {
 01C2                   .dbline 89
 01C2           ;  init_devices();
 01C2 EFDF              rcall _init_devices
 01C4           L30:
 01C4                   .dbline 91
 01C4           L31:
 01C4                   .dbline 91
 01C4 FFCF              rjmp L30
 01C6           X3:
 01C6                   .dbline -2
 01C6                   .dbline 92
 01C6           ;  //insert your functional code here...
 01C6           ;  while(1);
 01C6           ; }
 01C6           L29:
 01C6                   .dbline 0 ; func end
 01C6 0895              ret
 01C8                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\job\avrtest\web\example\ad\adc.c
 0000           _time::
 0000                   .blkb 1
 0001                   .dbsym e time _time c
 0001           _adc::
 0001                   .blkb 2
 0003                   .dbsym e adc _adc i
 0003           _dis::
 0003                   .blkb 1
 0004                   .dbsym e dis _dis c
 0004           _display::
 0004                   .blkb 4
 0008                   .dbsym e display _display A[4:4]c

⌨️ 快捷键说明

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