?? adc.lis
字號(hào):
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
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -