📄 intad.lis
字号:
.module IntAD.C
.area text(rom, con, rel)
0000 .dbfile E:\ICCAVR_H\CmmICC.H
0000 .dbfunc e delay50us _delay50us fV
0000 ; j -> R20
0000 ; t -> R16,R17
.even
0000 _delay50us::
0000 0E940000 xcall push_gset1
0004 .dbline -1
0004 .dbline 117
0004 ;
0004 ; #include <iom16v.h>
0004 ; #include "E:\ICCAVR_H\CmmICC.H"
0004 ;
0004 ; #define H_VAL_DISP_DDR DDRD
0004 ; #define L_VAL_DISP_DDR DDRB
0004 ; #define H_VAL_DISP_PORT PORTD
0004 ; #define L_VAL_DISP_PORT PORTB
0004 ;
0004 ; const uint8 ADEnStatus[8] = {0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
0004 ;
0004 ; uint8 AdcMux; //ADC通道
0004 ; uint16 AdcVal; //ADC转换值
0004 ;
0004 ; void adc_init()
0004 ; {
0004 ; /* 设置对应的IO口为输入高阻态 */
0004 ; DDRA &= ADEnStatus[AdcMux];
0004 ; PORTA &= ADEnStatus[AdcMux];
0004 ;
0004 ; ADCSRA = 0x00; //disable adc
0004 ; ADMUX = (1<<REFS1)|(1<<REFS0)|(AdcMux&0x0F); //select adc input channel
0004 ; ACSR = (1<<ACD); //close analog comparator
0004 ; ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1);
0004 ; }
0004 ;
0004 ; #pragma interrupt_handler adc_isr:15
0004 ; void adc_isr(void)
0004 ; {
0004 ; AdcVal = ADC&0x3FF;
0004 ; ADMUX = (1<<REFS0)|(AdcMux&0x0F); //使用 AVcc 作为ADC参考电源
0004 ; ADCSRA |= (1<<ADSC); //ADSC: AD start conversion
0004 ; }
0004 ;
0004 ; void main(void)
0004 ; {
0004 ; H_VAL_DISP_DDR = 0xFF;
0004 ; L_VAL_DISP_DDR = 0xFF;
0004 ; AdcMux = 0; //使用ADC通道0
0004 ; adc_init();
0004 ; SEI();
0004 ; while(1)
0004 ; {
0004 ; H_VAL_DISP_PORT = (AdcVal&0x300)>>8; //ADC的高2位Val
0004 ; L_VAL_DISP_PORT = AdcVal&0xFF; //ADC的低8位Val
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 ; }
0004 .dbline 119
0004 ; }
0004 ; }
0004 07C0 xjmp L5
0006 L2:
0006 .dbline 120
0006 ; }
0006 4427 clr R20
0008 01C0 xjmp L9
000A L6:
000A .dbline 121
000A L7:
000A .dbline 120
000A 4395 inc R20
000C L9:
000C .dbline 120
000C 4634 cpi R20,70
000E E8F3 brlo L6
0010 L3:
0010 .dbline 119
0010 0150 subi R16,1
0012 1040 sbci R17,0
0014 L5:
0014 .dbline 119
0014 2224 clr R2
0016 3324 clr R3
0018 2016 cp R2,R16
001A 3106 cpc R3,R17
001C A4F3 brlt L2
001E .dbline -2
001E .dbline 122
001E ; }
001E ; }
001E L1:
001E 0E940000 xcall pop_gset1
0022 .dbline 0 ; func end
0022 0895 ret
0024 .dbsym r j 20 c
0024 .dbsym r t 16 I
0024 .dbend
0024 .dbfunc e delay50ms _delay50ms fV
0024 ; i -> R20,R21
0024 ; t -> R16,R17
.even
0024 _delay50ms::
0024 0E940000 xcall push_gset1
0028 .dbline -1
0028 .dbline 132
0028 ; }
0028 ; }
0028 ; }
0028 ; }
0028 ; }
0028 ; }
0028 ; }
0028 ; }
0028 ; }
0028 ; }
0028 .dbline 134
0028 ; }
0028 ; }
0028 0BC0 xjmp L14
002A L11:
002A .dbline 135
002A ; }
002A 4427 clr R20
002C 5527 clr R21
002E 02C0 xjmp L18
0030 L15:
0030 .dbline 136
0030 L16:
0030 .dbline 135
0030 4F5F subi R20,255 ; offset = 1
0032 5F4F sbci R21,255
0034 L18:
0034 .dbline 135
0034 423A cpi R20,162
0036 EDEC ldi R30,205
0038 5E07 cpc R21,R30
003A D0F3 brlo L15
003C L12:
003C .dbline 134
003C 0150 subi R16,1
003E 1040 sbci R17,0
0040 L14:
0040 .dbline 134
0040 2224 clr R2
0042 3324 clr R3
0044 2016 cp R2,R16
0046 3106 cpc R3,R17
0048 84F3 brlt L11
004A .dbline -2
004A .dbline 137
004A ; }
004A ; }
004A L10:
004A 0E940000 xcall pop_gset1
004E .dbline 0 ; func end
004E 0895 ret
0050 .dbsym r i 20 i
0050 .dbsym r t 16 I
0050 .dbend
0050 .dbfunc e speaData _speaData fV
0050 ; y -> y+4
0050 ; j -> y+0
0050 ; i -> R10
0050 ; C -> R12
0050 ; D -> y+16
.even
0050 _speaData::
0050 0E940000 xcall push_arg4
0054 0E940000 xcall push_gset4
0058 2897 sbiw R28,8
005A CC88 ldd R12,y+20
005C .dbline -1
005C .dbline 148
005C ; }
005C ; }
005C ; }
005C ; }
005C ; }
005C ; }
005C ; }
005C ; }
005C ; }
005C ; }
005C ; }
005C .dbline 151
005C ; }
005C ; }
005C ; }
005C AA24 clr R10
005E 41E0 ldi R20,1
0060 50E0 ldi R21,0
0062 60E0 ldi R22,0
0064 70E0 ldi R23,0
0066 FE01 movw R30,R28
0068 4083 std z+0,R20
006A 5183 std z+1,R21
006C 6283 std z+2,R22
006E 7383 std z+3,R23
0070 46C0 xjmp L23
0072 L20:
0072 .dbline 152
0072 .dbline 153
0072 FE01 movw R30,R28
0074 2080 ldd R2,z+0
0076 3180 ldd R3,z+1
0078 4280 ldd R4,z+2
007A 5380 ldd R5,z+3
007C FE01 movw R30,R28
007E 6088 ldd R6,z+16
0080 7188 ldd R7,z+17
0082 8288 ldd R8,z+18
0084 9388 ldd R9,z+19
0086 5A92 st -y,R5
0088 4A92 st -y,R4
008A 3A92 st -y,R3
008C 2A92 st -y,R2
008E 8301 movw R16,R6
0090 9401 movw R18,R8
0092 0E940000 xcall div32u
0096 FE01 movw R30,R28
0098 0483 std z+4,R16
009A 1583 std z+5,R17
009C 2683 std z+6,R18
009E 3783 std z+7,R19
00A0 .dbline 154
00A0 4AE0 ldi R20,10
00A2 50E0 ldi R21,0
00A4 60E0 ldi R22,0
00A6 70E0 ldi R23,0
00A8 FE01 movw R30,R28
00AA 2480 ldd R2,z+4
00AC 3580 ldd R3,z+5
00AE 4680 ldd R4,z+6
00B0 5780 ldd R5,z+7
00B2 7A93 st -y,R23
00B4 6A93 st -y,R22
00B6 5A93 st -y,R21
00B8 4A93 st -y,R20
00BA 8101 movw R16,R2
00BC 9201 movw R18,R4
00BE 0E940000 xcall mod32u
00C2 80E0 ldi R24,<_dataElem
00C4 90E0 ldi R25,>_dataElem
00C6 EA2D mov R30,R10
00C8 FF27 clr R31
00CA E80F add R30,R24
00CC F91F adc R31,R25
00CE 0083 std z+0,R16
00D0 .dbline 155
00D0 FE01 movw R30,R28
00D2 2080 ldd R2,z+0
00D4 3180 ldd R3,z+1
00D6 4280 ldd R4,z+2
00D8 5380 ldd R5,z+3
00DA 4AE0 ldi R20,10
00DC 50E0 ldi R21,0
00DE 60E0 ldi R22,0
00E0 70E0 ldi R23,0
00E2 5A92 st -y,R5
00E4 4A92 st -y,R4
00E6 3A92 st -y,R3
00E8 2A92 st -y,R2
00EA 8A01 movw R16,R20
00EC 9B01 movw R18,R22
00EE 0E940000 xcall empy32u
00F2 FE01 movw R30,R28
00F4 0083 std z+0,R16
00F6 1183 std z+1,R17
00F8 2283 std z+2,R18
00FA 3383 std z+3,R19
00FC .dbline 156
00FC L21:
00FC .dbline 151
00FC A394 inc R10
00FE L23:
00FE .dbline 151
00FE AC14 cp R10,R12
0100 08F4 brsh X0
0102 B7CF xjmp L20
0104 X0:
0104 .dbline -2
0104 .dbline 157
0104 ; }
0104 ; }
0104 ; }
0104 ; }
0104 ; }
0104 ; }
0104 L19:
0104 2896 adiw R28,8
0106 0E940000 xcall pop_gset4
010A 2496 adiw R28,4
010C .dbline 0 ; func end
010C 0895 ret
010E .dbsym l y 4 l
010E .dbsym l j 0 l
010E .dbsym r i 10 c
010E .dbsym r C 12 c
010E .dbsym l D 16 l
010E .dbend
010E .dbfunc e changeDToH _changeDToH fc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -