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

📄 ac10-1.lis

📁 AVR学习资料
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0122                   .dbline 53
 0122 E0E0              ldi R30,<_ACT+2
 0124 F0E0              ldi R31,>_ACT+2
 0126 E491              lpm R30,Z
 0128 E5BB              out 0x15,R30
 012A                   .dbline 53
 012A 13C0              xjmp L9
 012C           L16:
 012C                   .dbline 54
 012C 28EE              ldi R18,1000
 012E 33E0              ldi R19,3
 0130 00910200          lds R16,_dis_val
 0134 10910300          lds R17,_dis_val+1
 0138 0E940000          xcall div16u
 013C F801              movw R30,R16
 013E 80E0              ldi R24,<_SEG7
 0140 90E0              ldi R25,>_SEG7
 0142 E80F              add R30,R24
 0144 F91F              adc R31,R25
 0146 E491              lpm R30,Z
 0148 EBBB              out 0x1b,R30
 014A                   .dbline 54
 014A E0E0              ldi R30,<_ACT+3
 014C F0E0              ldi R31,>_ACT+3
 014E E491              lpm R30,Z
 0150 E5BB              out 0x15,R30
 0152                   .dbline 54
 0152                   .dbline 55
 0152           L9:
 0152                   .dbline -2
 0152           L5:
 0152 0E940000          xcall pop_gset1
 0156 2990              ld R2,y+
 0158 2FBE              out 0x3f,R2
 015A F991              ld R31,y+
 015C E991              ld R30,y+
 015E 9991              ld R25,y+
 0160 8991              ld R24,y+
 0162 3991              ld R19,y+
 0164 2991              ld R18,y+
 0166 1991              ld R17,y+
 0168 0991              ld R16,y+
 016A 2990              ld R2,y+
 016C                   .dbline 0 ; func end
 016C 1895              reti
 016E                   .dbend
 016E                   .dbfunc e ADC_Convert _ADC_Convert fi
 016E           ;          temp1 -> R18,R19
 016E           ;          temp2 -> R16,R17
                        .even
 016E           _ADC_Convert::
 016E                   .dbline -1
 016E                   .dbline 60
 016E           ;  case 3:PORTA=SEG7[dis_val/1000];PORTC=ACT[3];break;
 016E           ;  default:break;
 016E           ;  }
 016E           ; }
 016E           ; //=========================
 016E           ; uint ADC_Convert(void)                
 016E           ; {uint temp1,temp2;            
 016E                   .dbline 61
 016E           ;  temp1=(uint)ADCL;                    
 016E 24B1              in R18,0x4
 0170 3327              clr R19
 0172                   .dbline 62
 0172           ;  temp2=(uint)ADCH;
 0172 05B1              in R16,0x5
 0174 1127              clr R17
 0176                   .dbline 63
 0176           ;  temp2=(temp2<<8)+temp1;      
 0176 1801              movw R2,R16
 0178 322C              mov R3,R2
 017A 2224              clr R2
 017C 220E              add R2,R18
 017E 331E              adc R3,R19
 0180 8101              movw R16,R2
 0182                   .dbline 64
 0182           ;  return(temp2);                       
 0182                   .dbline -2
 0182           L18:
 0182                   .dbline 0 ; func end
 0182 0895              ret
 0184                   .dbsym r temp1 18 i
 0184                   .dbsym r temp2 16 i
 0184                   .dbend
 0184                   .dbfunc e conv _conv fi
 0184           ;              y -> R10,R11
 0184           ;              x -> y+0
 0184           ;              i -> R10,R11
                        .even
 0184           _conv::
 0184 0E940000          xcall push_gset3
 0188 5801              movw R10,R16
 018A 2497              sbiw R28,4
 018C                   .dbline -1
 018C                   .dbline 68
 018C           ; }
 018C           ; /**************************/
 018C           ; uint conv(uint i)             
 018C           ; {
 018C                   .dbline 71
 018C           ; long x;                               
 018C           ; uint y;                               
 018C           ; x=(5000*(long)i)/1023;        
 018C 1501              movw R2,R10
 018E 4424              clr R4
 0190 5524              clr R5
 0192 48E8              ldi R20,136
 0194 53E1              ldi R21,19
 0196 60E0              ldi R22,0
 0198 70E0              ldi R23,0
 019A 5A92              st -y,R5
 019C 4A92              st -y,R4
 019E 3A92              st -y,R3
 01A0 2A92              st -y,R2
 01A2 8A01              movw R16,R20
 01A4 9B01              movw R18,R22
 01A6 0E940000          xcall empy32s
 01AA 4FEF              ldi R20,255
 01AC 53E0              ldi R21,3
 01AE 60E0              ldi R22,0
 01B0 70E0              ldi R23,0
 01B2 7A93              st -y,R23
 01B4 6A93              st -y,R22
 01B6 5A93              st -y,R21
 01B8 4A93              st -y,R20
 01BA 0E940000          xcall div32s
 01BE FE01              movw R30,R28
 01C0 0083              std z+0,R16
 01C2 1183              std z+1,R17
 01C4 2283              std z+2,R18
 01C6 3383              std z+3,R19
 01C8                   .dbline 72
 01C8           ; y=(uint)x;    
 01C8 FE01              movw R30,R28
 01CA A080              ldd R10,z+0
 01CC B180              ldd R11,z+1
 01CE                   .dbline 73
 01CE           ; return y;     
 01CE 8501              movw R16,R10
 01D0                   .dbline -2
 01D0           L19:
 01D0 2496              adiw R28,4
 01D2 0E940000          xcall pop_gset3
 01D6                   .dbline 0 ; func end
 01D6 0895              ret
 01D8                   .dbsym r y 10 i
 01D8                   .dbsym l x 0 L
 01D8                   .dbsym r i 10 i
 01D8                   .dbend
 01D8                   .dbfunc e delay _delay fV
 01D8           ;              i -> R20,R21
 01D8           ;              j -> R22,R23
 01D8           ;              k -> R16,R17
                        .even
 01D8           _delay::
 01D8 0E940000          xcall push_gset2
 01DC                   .dbline -1
 01DC                   .dbline 77
 01DC           ; } 
 01DC           ; /***********************/
 01DC           ; void delay(uint k)    
 01DC           ; {
 01DC                   .dbline 79
 01DC           ; uint i,j;
 01DC           ;        for(i=0;i<k;i++)
 01DC 4427              clr R20
 01DE 5527              clr R21
 01E0 0BC0              xjmp L24
 01E2           L21:
 01E2                   .dbline 80
 01E2           ;        {       
 01E2                   .dbline 81
 01E2 6627              clr R22
 01E4 7727              clr R23
 01E6 02C0              xjmp L28
 01E8           L25:
 01E8                   .dbline 81
 01E8           L26:
 01E8                   .dbline 81
 01E8 6F5F              subi R22,255  ; offset = 1
 01EA 7F4F              sbci R23,255
 01EC           L28:
 01EC                   .dbline 81
 01EC 6C38              cpi R22,140
 01EE E0E0              ldi R30,0
 01F0 7E07              cpc R23,R30
 01F2 D0F3              brlo L25
 01F4                   .dbline 82
 01F4           L22:
 01F4                   .dbline 79
 01F4 4F5F              subi R20,255  ; offset = 1
 01F6 5F4F              sbci R21,255
 01F8           L24:
 01F8                   .dbline 79
 01F8 4017              cp R20,R16
 01FA 5107              cpc R21,R17
 01FC 90F3              brlo L21
 01FE                   .dbline -2
 01FE           L20:
 01FE 0E940000          xcall pop_gset2
 0202                   .dbline 0 ; func end
 0202 0895              ret
 0204                   .dbsym r i 20 i
 0204                   .dbsym r j 22 i
 0204                   .dbsym r k 16 i
 0204                   .dbend
 0204                   .dbfunc e main _main fV
                        .even
 0204           _main::
 0204                   .dbline -1
 0204                   .dbline 86
 0204           ;        for(j=0;j<140;j++); 
 0204           ;        }
 0204           ; }
 0204           ; /***********************/
 0204           ; void main(void)                               
 0204           ; {                                                     
 0204                   .dbline 87
 0204           ; init_devices();                       
 0204 14DF              xcall _init_devices
 0206 15C0              xjmp L31
 0208           L30:
 0208                   .dbline 89
 0208           ;   while(1)                                    
 0208           ;   {                                                   
 0208                   .dbline 90
 0208           ;               if(cnt>100)             
 0208 84E6              ldi R24,100
 020A 20900000          lds R2,_cnt
 020E 8215              cp R24,R2
 0210 68F4              brsh L33
 0212                   .dbline 91
 0212           ;               {
 0212                   .dbline 92
 0212           ;               adc_val=ADC_Convert();
 0212 ADDF              xcall _ADC_Convert
 0214 10930500          sts _adc_val+1,R17
 0218 00930400          sts _adc_val,R16
 021C                   .dbline 93
 021C           ;               dis_val=conv(adc_val);
 021C B3DF              xcall _conv
 021E 10930300          sts _dis_val+1,R17
 0222 00930200          sts _dis_val,R16
 0226                   .dbline 94
 0226           ;               cnt=0;                          
 0226 2224              clr R2
 0228 20920000          sts _cnt,R2
 022C                   .dbline 95
 022C           ;               }
 022C           L33:
 022C                   .dbline 96
 022C 0AE0              ldi R16,10
 022E 10E0              ldi R17,0
 0230 D3DF              xcall _delay
 0232                   .dbline 97
 0232           L31:
 0232                   .dbline 88
 0232 EACF              xjmp L30
 0234           X4:
 0234                   .dbline -2
 0234           L29:
 0234                   .dbline 0 ; func end
 0234 0895              ret
 0236                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile d:\MYDOCU~1\ac10-1\ac10-1.c
 0000           _cnt::
 0000                   .blkb 1
 0001                   .dbsym e cnt _cnt c
 0001           _i::
 0001                   .blkb 1
 0002                   .dbsym e i _i c
 0002           _dis_val::
 0002                   .blkb 2
 0004                   .dbsym e dis_val _dis_val i
 0004           _adc_val::
 0004                   .blkb 2
 0006                   .dbsym e adc_val _adc_val i

⌨️ 快捷键说明

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