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

📄 adc.lis

📁 AVR单片机ATMEGA128实习之—AD转换器(附带Proteus仿真例子)
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 010C           ;       EICRA = 0xaa;           //fall edge trigger
 010C 8AEA              ldi R24,170
 010E 80936A00          sts 106,R24
 0112                   .dbline 237
 0112           ;       EICRB = 0x00;           //no influence
 0112 2224              clr R2
 0114 2ABE              out 0x3a,R2
 0116                   .dbline 238
 0116           ;       EIMSK = 0x0f;
 0116 8FE0              ldi R24,15
 0118 89BF              out 0x39,R24
 011A                   .dbline 240
 011A           ; 
 011A           ;       SEI();
 011A 7894              sei
 011C                   .dbline -2
 011C                   .dbline 242
 011C           ; 
 011C           ; }
 011C           L40:
 011C                   .dbline 0 ; func end
 011C 0895              ret
 011E                   .dbend
 011E                   .dbfunc e UART_initialize _UART_initialize fV
                        .even
 011E           _UART_initialize::
 011E                   .dbline -1
 011E                   .dbline 244
 011E           ; void UART_initialize(void)
 011E           ; {
 011E                   .dbline 245
 011E           ;       CLI();
 011E F894              cli
 0120                   .dbline 247
 0120           ;       
 0120           ;       UBRR0H = 0x00;
 0120 2224              clr R2
 0122 20929000          sts 144,R2
 0126                   .dbline 248
 0126           ;       UBRR0L = 0x67;          //波特率9600bps
 0126 87E6              ldi R24,103
 0128 89B9              out 0x9,R24
 012A                   .dbline 249
 012A           ;       UCSR0A = 0x00;
 012A 2BB8              out 0xb,R2
 012C                   .dbline 250
 012C           ;       UCSR0B = 0x98;          //11011000接收与发送使能
 012C 88E9              ldi R24,152
 012E 8AB9              out 0xa,R24
 0130                   .dbline 251
 0130           ;       UCSR0C = 0x26;          //00100110帧格式: 8bits,1stop bit,P 校验
 0130 86E2              ldi R24,38
 0132 80939500          sts 149,R24
 0136                   .dbline 253
 0136           ; 
 0136           ;       SEI();
 0136 7894              sei
 0138                   .dbline -2
 0138                   .dbline 254
 0138           ; }
 0138           L41:
 0138                   .dbline 0 ; func end
 0138 0895              ret
 013A                   .dbend
 013A                   .dbfunc e Delay _Delay fV
 013A           ;              i -> R16,R17
                        .even
 013A           _Delay::
 013A                   .dbline -1
 013A                   .dbline 256
 013A           ; void Delay(void)
 013A           ; {
 013A                   .dbline 259
 013A           ;       unsigned int i;
 013A           ; 
 013A           ;       for ( i = 0; i < 6000; i++ )
 013A 0027              clr R16
 013C 1127              clr R17
 013E 03C0              xjmp L46
 0140           L43:
 0140                   .dbline 260
 0140                   .dbline 261
 0140 0000              nop
 0142                   .dbline 262
 0142           L44:
 0142                   .dbline 259
 0142 0F5F              subi R16,255  ; offset = 1
 0144 1F4F              sbci R17,255
 0146           L46:
 0146                   .dbline 259
 0146 0037              cpi R16,112
 0148 E7E1              ldi R30,23
 014A 1E07              cpc R17,R30
 014C C8F3              brlo L43
 014E                   .dbline -2
 014E                   .dbline 263
 014E           ;       {
 014E           ;               NOP();
 014E           ;       }
 014E           ; }
 014E           L42:
 014E                   .dbline 0 ; func end
 014E 0895              ret
 0150                   .dbsym r i 16 i
 0150                   .dbend
 0150                   .dbfunc e External_INT_0 _External_INT_0 fV
                        .even
 0150           _External_INT_0::
 0150 8A93              st -y,R24
 0152 8FB7              in R24,0x3f
 0154 8A93              st -y,R24
 0156                   .dbline -1
 0156                   .dbline 268
 0156           ; 
 0156           ; 
 0156           ; 
 0156           ; void External_INT_0(void)
 0156           ; {
 0156                   .dbline 270
 0156           ;       
 0156           ;       ADCSR |= ADC_start;
 0156 369A              sbi 0x6,6
 0158                   .dbline 272
 0158           ; 
 0158           ;       DDRB |=0xF0;            //放在这个位置是错误的,中断回到入口之处
 0158 87B3              in R24,0x17
 015A 806F              ori R24,240
 015C 87BB              out 0x17,R24
 015E                   .dbline 274
 015E           ; 
 015E           ;       Display_flag = 1;
 015E 81E0              ldi R24,1
 0160 80930500          sts _Display_flag,R24
 0164                   .dbline -2
 0164                   .dbline 278
 0164           ;       
 0164           ;       /*UCSR0B |= 0x40;
 0164           ;       UCSR0B &= ~(0x80);*/
 0164           ; }
 0164           L47:
 0164 8991              ld R24,y+
 0166 8FBF              out 0x3f,R24
 0168 8991              ld R24,y+
 016A                   .dbline 0 ; func end
 016A 1895              reti
 016C                   .dbend
 016C                   .dbfunc e ADC_INT _ADC_INT fV
                        .even
 016C           _ADC_INT::
 016C 2A92              st -y,R2
 016E 3A92              st -y,R3
 0170 0A93              st -y,R16
 0172 1A93              st -y,R17
 0174 EA93              st -y,R30
 0176 2FB6              in R2,0x3f
 0178 2A92              st -y,R2
 017A                   .dbline -1
 017A                   .dbline 281
 017A           ; 
 017A           ; void ADC_INT(void)
 017A           ; {
 017A                   .dbline 282
 017A           ;       AD_sample_value = ADC; 
 017A 24B0              in R2,0x4
 017C 35B0              in R3,0x5
 017E 30920700          sts _AD_sample_value+1,R3
 0182 20920600          sts _AD_sample_value,R2
 0186                   .dbline 284
 0186           ;       //PORTB = Blue_LED_on;
 0186           ;       switch (Type_flag)
 0186 00910000          lds R16,_Type_flag
 018A 1127              clr R17
 018C 0130              cpi R16,1
 018E E0E0              ldi R30,0
 0190 1E07              cpc R17,R30
 0192 49F0              breq L52
 0194 0230              cpi R16,2
 0196 E0E0              ldi R30,0
 0198 1E07              cpc R17,R30
 019A 49F0              breq L53
 019C 0330              cpi R16,3
 019E E0E0              ldi R30,0
 01A0 1E07              cpc R17,R30
 01A2 49F0              breq L54
 01A4 0CC0              xjmp L49
 01A6           X2:
 01A6                   .dbline 285
 01A6           ;       {
 01A6           L52:
 01A6                   .dbline 287
 01A6           ;               case 1:                         
 01A6           ;               {
 01A6                   .dbline 288
 01A6           ;                       channel_1_flag = 0; 
 01A6 2224              clr R2
 01A8 20920200          sts _channel_1_flag,R2
 01AC                   .dbline 290
 01AC           ;               
 01AC           ;               }break;
 01AC                   .dbline 290
 01AC 0BC0              xjmp L50
 01AE           L53:
 01AE                   .dbline 293
 01AE           ; 
 01AE           ;               case 2:                         
 01AE           ;               {
 01AE                   .dbline 294
 01AE           ;                       channel_2_flag = 0;
 01AE 2224              clr R2
 01B0 20920300          sts _channel_2_flag,R2
 01B4                   .dbline 296
 01B4           ; 
 01B4           ;               }break;
 01B4                   .dbline 296
 01B4 07C0              xjmp L50
 01B6           L54:
 01B6                   .dbline 299
 01B6           ; 
 01B6           ;               case 3:                         
 01B6           ;               {
 01B6                   .dbline 300
 01B6           ;                       channel_3_flag = 0;
 01B6 2224              clr R2
 01B8 20920400          sts _channel_3_flag,R2
 01BC                   .dbline 302
 01BC           ;               
 01BC           ;               }break;
 01BC                   .dbline 302
 01BC 03C0              xjmp L50
 01BE           L49:
 01BE                   .dbline 305
 01BE                   .dbline 306
 01BE 2224              clr R2
 01C0 20920100          sts _channel_0_flag,R2
 01C4                   .dbline 308
 01C4                   .dbline 308
 01C4           L50:
 01C4                   .dbline -2
 01C4                   .dbline 310
 01C4           ; 
 01C4           ;               default:
 01C4           ;               {
 01C4           ;                       channel_0_flag = 0;
 01C4           ;                       
 01C4           ;               }break;
 01C4           ;       }
 01C4           ; }
 01C4           L48:
 01C4 2990              ld R2,y+
 01C6 2FBE              out 0x3f,R2
 01C8 E991              ld R30,y+
 01CA 1991              ld R17,y+
 01CC 0991              ld R16,y+
 01CE 3990              ld R3,y+
 01D0 2990              ld R2,y+
 01D2                   .dbline 0 ; func end
 01D2 1895              reti
 01D4                   .dbend
 01D4                   .dbfunc e External_INT_1 _External_INT_1 fV
                        .even
 01D4           _External_INT_1::
 01D4 2A92              st -y,R2
 01D6 8A93              st -y,R24
 01D8 9A93              st -y,R25
 01DA 2FB6              in R2,0x3f
 01DC 2A92              st -y,R2
 01DE                   .dbline -1
 01DE                   .dbline 313
 01DE           ; 
 01DE           ; void External_INT_1(void)
 01DE           ; {
 01DE                   .dbline 314
 01DE           ;       if (Type_flag < 3 )
 01DE 80910000          lds R24,_Type_flag
 01E2 8330              cpi R24,3
 01E4 20F4              brsh L56
 01E6                   .dbline 315
 01E6           ;       {
 01E6                   .dbline 316
 01E6           ;               Type_flag += 1;
 01E6 8F5F              subi R24,255    ; addi 1
 01E8 80930000          sts _Type_flag,R24
 01EC                   .dbline 317
 01EC           ;       }
 01EC 03C0              xjmp L57
 01EE           L56:
 01EE                   .dbline 319
 01EE           ;       else
 01EE           ;       {
 01EE                   .dbline 320
 01EE           ;               Type_flag = 0;
 01EE 2224              clr R2
 01F0 20920000          sts _Type_flag,R2
 01F4                   .dbline 321
 01F4           ;       }
 01F4           L57:
 01F4                   .dbline 323
 01F4           ; 
 01F4           ;       ADMUX = (ADMUX&0xf8)|Type_flag; //0x41;  //
 01F4 20900000          lds R2,_Type_flag
 01F8 87B1              in R24,0x7
 01FA 887F              andi R24,248
 01FC 8229              or R24,R2
 01FE 87B9              out 0x7,R24
 0200                   .dbline 324
 0200           ;       Display_flag = 0;
 0200 2224              clr R2
 0202 20920500          sts _Display_flag,R2
 0206                   .dbline 325
 0206           ;       DDRB &=0x1F;
 0206 87B3              in R24,0x17
 0208 8F71              andi R24,31
 020A 87BB              out 0x17,R24
 020C                   .dbline -2
 020C                   .dbline 326
 020C           ; }
 020C           L55:
 020C 2990              ld R2,y+
 020E 2FBE              out 0x3f,R2

⌨️ 快捷键说明

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