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

📄 adc.lis

📁 用ATMEGA16实现AD转换并通过串口将数据传回PC机
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 006E                   .dbline -2
 006E           L5:
 006E 0E940000          xcall pop_gset1
 0072                   .dbline 0 ; func end
 0072 0895              ret
 0074                   .dbsym r adc_data 20 i
 0074                   .dbsym r adc_port 16 c
 0074                   .dbend
 0074                   .dbfunc e uart_transmit _uart_transmit fV
 0074           ;           data -> R16
                        .even
 0074           _uart_transmit::
 0074                   .dbline -1
 0074                   .dbline 125
 0074           ; }
 0074           ; 
 0074           ; void uart_transmit( unsigned char data )
 0074           ; {
 0074           L10:
 0074                   .dbline 127
 0074           L11:
 0074                   .dbline 127
 0074           ; /* 等待发送缓冲器为空 */
 0074           ; while ( !( UCSRA & (1<<UDRE)) );
 0074 5D9B              sbis 0xb,5
 0076 FECF              rjmp L10
 0078                   .dbline 129
 0078           ; /* 将数据放入缓冲器,发送数据 */
 0078           ; UDR = data;
 0078 0CB9              out 0xc,R16
 007A                   .dbline -2
 007A           L9:
 007A                   .dbline 0 ; func end
 007A 0895              ret
 007C                   .dbsym r data 16 c
 007C                   .dbend
 007C                   .dbfunc e delay _delay fV
 007C           ;              j -> y+4
 007C           ;              i -> y+0
 007C           ;              a -> y+12
                        .even
 007C           _delay::
 007C 0E940000          xcall push_arg4
 0080 0E940000          xcall push_gset2
 0084 2897              sbiw R28,8
 0086                   .dbline -1
 0086                   .dbline 133
 0086           ; }
 0086           ; 
 0086           ; void delay(unsigned long a)
 0086           ; {
 0086                   .dbline 135
 0086 40E0              ldi R20,0
 0088 50E0              ldi R21,0
 008A 60E0              ldi R22,0
 008C 70E0              ldi R23,0
 008E FE01              movw R30,R28
 0090 4083              std z+0,R20
 0092 5183              std z+1,R21
 0094 6283              std z+2,R22
 0096 7383              std z+3,R23
 0098 12C0              xjmp L17
 009A           L14:
 009A                   .dbline 135
 009A           L15:
 009A                   .dbline 135
 009A 41E0              ldi R20,1
 009C 50E0              ldi R21,0
 009E 60E0              ldi R22,0
 00A0 70E0              ldi R23,0
 00A2 FE01              movw R30,R28
 00A4 2080              ldd R2,z+0
 00A6 3180              ldd R3,z+1
 00A8 4280              ldd R4,z+2
 00AA 5380              ldd R5,z+3
 00AC 240E              add R2,R20
 00AE 351E              adc R3,R21
 00B0 461E              adc R4,R22
 00B2 571E              adc R5,R23
 00B4 FE01              movw R30,R28
 00B6 2082              std z+0,R2
 00B8 3182              std z+1,R3
 00BA 4282              std z+2,R4
 00BC 5382              std z+3,R5
 00BE           L17:
 00BE                   .dbline 135
 00BE           ;     unsigned long i,j;
 00BE           ;     for(i = 0; i < a; i ++);
 00BE FE01              movw R30,R28
 00C0 2484              ldd R2,z+12
 00C2 3584              ldd R3,z+13
 00C4 4684              ldd R4,z+14
 00C6 5784              ldd R5,z+15
 00C8 FE01              movw R30,R28
 00CA 6080              ldd R6,z+0
 00CC 7180              ldd R7,z+1
 00CE 8280              ldd R8,z+2
 00D0 9380              ldd R9,z+3
 00D2 6214              cp R6,R2
 00D4 7304              cpc R7,R3
 00D6 8404              cpc R8,R4
 00D8 9504              cpc R9,R5
 00DA F8F2              brlo L14
 00DC                   .dbline 136
 00DC           ;         {for (j = 0; j < a; j ++)
 00DC                   .dbline 136
 00DC 40E0              ldi R20,0
 00DE 50E0              ldi R21,0
 00E0 60E0              ldi R22,0
 00E2 70E0              ldi R23,0
 00E4 FE01              movw R30,R28
 00E6 4483              std z+4,R20
 00E8 5583              std z+5,R21
 00EA 6683              std z+6,R22
 00EC 7783              std z+7,R23
 00EE 12C0              xjmp L21
 00F0           L18:
 00F0                   .dbline 137
 00F0                   .dbline 137
 00F0           L19:
 00F0                   .dbline 136
 00F0 41E0              ldi R20,1
 00F2 50E0              ldi R21,0
 00F4 60E0              ldi R22,0
 00F6 70E0              ldi R23,0
 00F8 FE01              movw R30,R28
 00FA 2480              ldd R2,z+4
 00FC 3580              ldd R3,z+5
 00FE 4680              ldd R4,z+6
 0100 5780              ldd R5,z+7
 0102 240E              add R2,R20
 0104 351E              adc R3,R21
 0106 461E              adc R4,R22
 0108 571E              adc R5,R23
 010A FE01              movw R30,R28
 010C 2482              std z+4,R2
 010E 3582              std z+5,R3
 0110 4682              std z+6,R4
 0112 5782              std z+7,R5
 0114           L21:
 0114                   .dbline 136
 0114 FE01              movw R30,R28
 0116 2484              ldd R2,z+12
 0118 3584              ldd R3,z+13
 011A 4684              ldd R4,z+14
 011C 5784              ldd R5,z+15
 011E FE01              movw R30,R28
 0120 6480              ldd R6,z+4
 0122 7580              ldd R7,z+5
 0124 8680              ldd R8,z+6
 0126 9780              ldd R9,z+7
 0128 6214              cp R6,R2
 012A 7304              cpc R7,R3
 012C 8404              cpc R8,R4
 012E 9504              cpc R9,R5
 0130 F8F2              brlo L18
 0132                   .dbline 138
 0132           ;            {}
 0132           ;         }
 0132                   .dbline -2
 0132           L13:
 0132 2896              adiw R28,8
 0134 0E940000          xcall pop_gset2
 0138 2496              adiw R28,4
 013A                   .dbline 0 ; func end
 013A 0895              ret
 013C                   .dbsym l j 4 l
 013C                   .dbsym l i 0 l
 013C                   .dbsym l a 12 l
 013C                   .dbend
 013C                   .dbfunc e main _main fV
 013C           ;           volt -> y+0
 013C           ;        adc_tmp -> R10
                        .even
 013C           _main::
 013C 2497              sbiw R28,4
 013E                   .dbline -1
 013E                   .dbline 142
 013E           ; }
 013E           ; 
 013E           ; void main(void)
 013E           ; { unsigned long volt;
 013E                   .dbline 144
 013E           ;   unsigned char adc_tmp;
 013E           ;   init_devices();
 013E 7DDF              xcall _init_devices
 0140                   .dbline 146
 0140           ;   
 0140           ;   DDRA = 0x00;   //设置A口为不带上拉输入;
 0140 2224              clr R2
 0142 2ABA              out 0x1a,R2
 0144                   .dbline 147
 0144           ;   PORTA= 0x00;
 0144 2BBA              out 0x1b,R2
 0146                   .dbline 148
 0146           ;   DDRD = 0xff;   //设置C口为输出口;
 0146 8FEF              ldi R24,255
 0148 81BB              out 0x11,R24
 014A                   .dbline 149
 014A           ;   PORTD= 0xff;
 014A 82BB              out 0x12,R24
 014C                   .dbline 151
 014C           ;   //DDRD = 0xff;
 014C           ;   DDRD = (1<<PIN_TXD);         //TXD为输出
 014C 82E0              ldi R24,2
 014E 81BB              out 0x11,R24
 0150                   .dbline 152
 0150           ;   PORTD =0xFF;
 0150 8FEF              ldi R24,255
 0152 82BB              out 0x12,R24
 0154                   .dbline 155
 0154           ; 
 0154           ;   
 0154           ;   ADMUX = Vref_type;   //选择第一通道ADC0;
 0154 80E6              ldi R24,96
 0156 87B9              out 0x7,R24
 0158                   .dbline 156
 0158           ;   ADCSRA = 0x84;   //自由转换模式;启动A/D转换;
 0158 84E8              ldi R24,132
 015A 86B9              out 0x6,R24
 015C                   .dbline 157
 015C           ;   delay(10000);   //延时待系统稳定;
 015C 00E1              ldi R16,16
 015E 17E2              ldi R17,39
 0160 20E0              ldi R18,0
 0162 30E0              ldi R19,0
 0164 8BDF              xcall _delay
 0166 09C0              xjmp L24
 0168           L23:
 0168                   .dbline 159
 0168                   .dbline 162
 0168 01E0              ldi R16,1
 016A 71DF              xcall _read_adc
 016C A02E              mov R10,R16
 016E                   .dbline 164
 016E 82DF              xcall _uart_transmit
 0170                   .dbline 165
 0170 00E5              ldi R16,80
 0172 13EC              ldi R17,195
 0174 20E0              ldi R18,0
 0176 30E0              ldi R19,0
 0178 81DF              xcall _delay
 017A                   .dbline 168
 017A           L24:
 017A                   .dbline 158
 017A F6CF              xjmp L23
 017C           X0:
 017C                   .dbline -2
 017C           L22:
 017C 2496              adiw R28,4
 017E                   .dbline 0 ; func end
 017E 0895              ret
 0180                   .dbsym l volt 0 l
 0180                   .dbsym r adc_tmp 10 c
 0180                   .dbend

⌨️ 快捷键说明

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