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

📄 adc.lis

📁 AVR MEGA8 ADC 应用 程序源代码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00F2 80E0              ldi R24,<_led_buff
 00F4 90E0              ldi R25,>_led_buff
 00F6 E42F              mov R30,R20
 00F8 FF27              clr R31
 00FA E80F              add R30,R24
 00FC F91F              adc R31,R25
 00FE A0E0              ldi R26,<_seg_table+8
 0100 B0E0              ldi R27,>_seg_table+8
 0102 FA93              st -y,R31
 0104 EA93              st -y,R30
 0106 FD01              movw R30,R26
 0108 A491              lpm R26,Z
 010A E991              ld R30,y+
 010C F991              ld R31,y+
 010E A083              std z+0,R26
 0110                   .dbline 58
 0110           L11:
 0110                   .dbline 55
 0110 4395              inc R20
 0112           L13:
 0112                   .dbline 55
 0112 4430              cpi R20,4
 0114 70F3              brlo L10
 0116                   .dbline 59
 0116           ;   { 
 0116           ;    led_buff[i]=seg_table[8];
 0116           ;   }
 0116           ;  for(i=0;i<100;i++)
 0116 4427              clr R20
 0118 02C0              rjmp L18
 011A           L15:
 011A                   .dbline 60
 011A 00D0              rcall _display
 011C           L16:
 011C                   .dbline 59
 011C 4395              inc R20
 011E           L18:
 011E                   .dbline 59
 011E 4436              cpi R20,100
 0120 E0F3              brlo L15
 0122                   .dbline 62
 0122           ;    display();
 0122           ; 
 0122           ;  adc_old=0;
 0122 6627              clr R22
 0124 7727              clr R23
 0126                   .dbline 63
 0126           ;  adc_rel=0; 
 0126 2224              clr R2
 0128 3324              clr R3
 012A 30920200          sts _adc_rel+1,R3
 012E 20920100          sts _adc_rel,R2
 0132 55C0              rjmp L20
 0134           L19:
 0134                   .dbline 65
 0134           ;  while(1)
 0134           ;   {   
 0134                   .dbline 66
 0134           ;    if(adc_old!=adc_rel)
 0134 20900100          lds R2,_adc_rel
 0138 30900200          lds R3,_adc_rel+1
 013C 6215              cp R22,R2
 013E 7305              cpc R23,R3
 0140 19F0              breq L22
 0142                   .dbline 67
 0142           ;      {
 0142                   .dbline 68
 0142           ;         adc_old=adc_rel;
 0142 B101              movw R22,R2
 0144                   .dbline 69
 0144           ;         ADCtoBCD(adc_old);
 0144 8101              movw R16,R2
 0146 8ADF              rcall _ADCtoBCD
 0148                   .dbline 70
 0148           ;        }
 0148           L22:
 0148                   .dbline 71
 0148           ;    display();
 0148 00D0              rcall _display
 014A                   .dbline 73
 014A           ; 
 014A           ;    i=PIND&0x0c;//判断按键
 014A 49B1              in R20,0x9
 014C 4C70              andi R20,12
 014E                   .dbline 74
 014E           ;    if(i!=0x0c)
 014E 4C30              cpi R20,12
 0150 09F4              brne X1
 0152 45C0              rjmp L24
 0154           X1:
 0154                   .dbline 75
 0154           ;      {
 0154                   .dbline 76
 0154           ;         display();//按键消抖
 0154 00D0              rcall _display
 0156                   .dbline 77
 0156           ;         if(i==(PIND&0x0c))
 0156 89B1              in R24,0x9
 0158 8C70              andi R24,12
 015A 4817              cp R20,R24
 015C 09F0              breq X2
 015E 3FC0              rjmp L26
 0160           X2:
 0160                   .dbline 78
 0160           ;           {
 0160                   .dbline 79
 0160           ;                CLI();
 0160 F894              cli
 0162                   .dbline 80
 0162           ;                adc_rel=0;
 0162 2224              clr R2
 0164 3324              clr R3
 0166 30920200          sts _adc_rel+1,R3
 016A 20920100          sts _adc_rel,R2
 016E                   .dbline 81
 016E           ;                adc_old=0;
 016E 6627              clr R22
 0170 7727              clr R23
 0172                   .dbline 82
 0172           ;                if (i==0x08)//INT0键按下
 0172 4830              cpi R20,8
 0174 59F4              brne L28
 0176                   .dbline 83
 0176           ;                   {
 0176                   .dbline 84
 0176           ;                        if(adc_mux<3)
 0176 80910000          lds R24,_adc_mux
 017A 8330              cpi R24,3
 017C 20F4              brsh L30
 017E                   .dbline 85
 017E           ;                           adc_mux++;//递增
 017E 8F5F              subi R24,255    ; addi 1
 0180 80930000          sts _adc_mux,R24
 0184 03C0              rjmp L31
 0186           L30:
 0186                   .dbline 87
 0186           ;                    else
 0186           ;                           adc_mux=0;          
 0186 2224              clr R2
 0188 20920000          sts _adc_mux,R2
 018C           L31:
 018C                   .dbline 88
 018C           ;                       }
 018C           L28:
 018C                   .dbline 89
 018C           ;                if (i==0x04)//INT1键按下
 018C 4430              cpi R20,4
 018E 69F4              brne L32
 0190                   .dbline 90
 0190           ;                   {
 0190                   .dbline 91
 0190           ;                        if(adc_mux>0)
 0190 2224              clr R2
 0192 30900000          lds R3,_adc_mux
 0196 2314              cp R2,R3
 0198 28F4              brsh L34
 019A                   .dbline 92
 019A           ;                           adc_mux--;//递减
 019A 832D              mov R24,R3
 019C 8150              subi R24,1
 019E 80930000          sts _adc_mux,R24
 01A2 03C0              rjmp L35
 01A4           L34:
 01A4                   .dbline 94
 01A4           ;                        else
 01A4           ;                           adc_mux=3;  
 01A4 83E0              ldi R24,3
 01A6 80930000          sts _adc_mux,R24
 01AA           L35:
 01AA                   .dbline 95
 01AA           ;                       }
 01AA           L32:
 01AA                   .dbline 96
 01AA           ;            led_buff[0]=seg_table[adc_mux];
 01AA 80E0              ldi R24,<_seg_table
 01AC 90E0              ldi R25,>_seg_table
 01AE E0910000          lds R30,_adc_mux
 01B2 FF27              clr R31
 01B4 E80F              add R30,R24
 01B6 F91F              adc R31,R25
 01B8 E491              lpm R30,Z
 01BA E0930000          sts _led_buff,R30
 01BE                   .dbline 97
 01BE           ;                led_buff[1]=0xbf;//-
 01BE 8FEB              ldi R24,191
 01C0 80930100          sts _led_buff+1,R24
 01C4                   .dbline 98
 01C4           ;                led_buff[2]=0b10001001;//h
 01C4 89E8              ldi R24,137
 01C6 80930200          sts _led_buff+2,R24
 01CA                   .dbline 99
 01CA           ;                led_buff[3]=0b11000110;//C             
 01CA 86EC              ldi R24,198
 01CC 80930300          sts _led_buff+3,R24
 01D0 01C0              rjmp L40
 01D2           L39:
 01D2                   .dbline 101
 01D2 00D0              rcall _display
 01D4           L40:
 01D4                   .dbline 100
 01D4           ;            while((PIND&0x0c)!=0x0c)//检查按键释放
 01D4 89B1              in R24,0x9
 01D6 8C70              andi R24,12
 01D8 8C30              cpi R24,12
 01DA D9F7              brne L39
 01DC                   .dbline 102
 01DC           ;                   display();          
 01DC           ;            SEI();              
 01DC 7894              sei
 01DE                   .dbline 103
 01DE           ;               }
 01DE           L26:
 01DE                   .dbline 104
 01DE           ;        }
 01DE           L24:
 01DE                   .dbline 107
 01DE           L20:
 01DE                   .dbline 64
 01DE AACF              rjmp L19
 01E0           X0:
 01E0                   .dbline -2
 01E0           L9:
 01E0                   .dbline 0 ; func end
 01E0 0895              ret
 01E2                   .dbsym r adc_old 22 i
 01E2                   .dbsym r i 20 c
 01E2                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile C:\调试程序\mega48\ADC\ADC.c
 0000           _adc_mux::
 0000                   .blkb 1
 0001                   .dbsym e adc_mux _adc_mux c
 0001           _adc_rel::
 0001                   .blkb 2
 0003                   .dbsym e adc_rel _adc_rel i

⌨️ 快捷键说明

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