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

📄 intad.lis

📁 ATmega16应用例子
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .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 + -