7135_finish.lis

来自「ad7135的avr16的源程序」· LIS 代码 · 共 786 行 · 第 1/3 页

LIS
786
字号
 0070                   .dbline 107
 0070           ;        {    
 0070                   .dbline 108
 0070           ;                 TCCR2=0X01;//开始内部计数
 0070 81E0              ldi R24,1
 0072 85BD              out 0x25,R24
 0074                   .dbline 109
 0074           ;                 MCUCR=0X02;//设置外部中断0下降沿产生中断
 0074 82E0              ldi R24,2
 0076 85BF              out 0x35,R24
 0078                   .dbline 110
 0078           ;                 N++;
 0078 822D              mov R24,R2
 007A 8F5F              subi R24,255    ; addi 1
 007C 80930000          sts _N,R24
 0080                   .dbline 111
 0080           ;        }
 0080 76C0              xjmp L16
 0082           L15:
 0082                   .dbline 113
 0082                   .dbline 114
 0082 2224              clr R2
 0084 25BC              out 0x25,R2
 0086                   .dbline 115
 0086 F894              cli
 0088                   .dbline 117
 0088 20900100          lds R2,_T2OVF_NUM
 008C 30900200          lds R3,_T2OVF_NUM+1
 0090 4424              clr R4
 0092 5524              clr R5
 0094 30920300          sts _T2_NUM+1,R3
 0098 20920200          sts _T2_NUM,R2
 009C 50920500          sts _T2_NUM+2+1,R5
 00A0 40920400          sts _T2_NUM+2,R4
 00A4                   .dbline 118
 00A4 40900400          lds R4,_T2_NUM+2
 00A8 50900500          lds R5,_T2_NUM+2+1
 00AC 20900200          lds R2,_T2_NUM
 00B0 30900300          lds R3,_T2_NUM+1
 00B4 40E0              ldi R20,0
 00B6 51E0              ldi R21,1
 00B8 60E0              ldi R22,0
 00BA 70E0              ldi R23,0
 00BC 5A92              st -y,R5
 00BE 4A92              st -y,R4
 00C0 3A92              st -y,R3
 00C2 2A92              st -y,R2
 00C4 8A01              movw R16,R20
 00C6 9B01              movw R18,R22
 00C8 0E940000          xcall empy32u
 00CC 1801              movw R2,R16
 00CE 2901              movw R4,R18
 00D0 64B4              in R6,0x24
 00D2 7724              clr R7
 00D4 8824              clr R8
 00D6 9924              clr R9
 00D8 260C              add R2,R6
 00DA 371C              adc R3,R7
 00DC 481C              adc R4,R8
 00DE 591C              adc R5,R9
 00E0 30920300          sts _T2_NUM+1,R3
 00E4 20920200          sts _T2_NUM,R2
 00E8 50920500          sts _T2_NUM+2+1,R5
 00EC 40920400          sts _T2_NUM+2,R4
 00F0                   .dbline 119
 00F0 86E0              ldi R24,6
 00F2 90E0              ldi R25,0
 00F4 8A93              st -y,R24
 00F6 8101              movw R16,R2
 00F8 9201              movw R18,R4
 00FA 0E940000          xcall lsr32
 00FE 10930300          sts _T2_NUM+1,R17
 0102 00930200          sts _T2_NUM,R16
 0106 30930500          sts _T2_NUM+2+1,R19
 010A 20930400          sts _T2_NUM+2,R18
 010E                   .dbline 120
 010E 41E1              ldi R20,17
 0110 57E2              ldi R21,39
 0112 60E0              ldi R22,0
 0114 70E0              ldi R23,0
 0116 1801              movw R2,R16
 0118 2901              movw R4,R18
 011A 241A              sub R2,R20
 011C 350A              sbc R3,R21
 011E 460A              sbc R4,R22
 0120 570A              sbc R5,R23
 0122 30920300          sts _T2_NUM+1,R3
 0126 20920200          sts _T2_NUM,R2
 012A 50920500          sts _T2_NUM+2+1,R5
 012E 40920400          sts _T2_NUM+2,R4
 0132                   .dbline 121
 0132 4AE0              ldi R20,10
 0134 50E0              ldi R21,0
 0136 60E0              ldi R22,0
 0138 70E0              ldi R23,0
 013A 7A93              st -y,R23
 013C 6A93              st -y,R22
 013E 5A93              st -y,R21
 0140 4A93              st -y,R20
 0142 8101              movw R16,R2
 0144 9201              movw R18,R4
 0146 0E940000          xcall div32u
 014A 10930100          sts _VIN+1,R17
 014E 00930000          sts _VIN,R16
 0152                   .dbline 122
 0152 50D0              xcall _DATA_DISPLAY
 0154                   .dbline 124
 0154 2224              clr R2
 0156 3324              clr R3
 0158 30920200          sts _T2OVF_NUM+1,R3
 015C 20920100          sts _T2OVF_NUM,R2
 0160                   .dbline 125
 0160 24BC              out 0x24,R2
 0162                   .dbline 126
 0162 85B7              in R24,0x35
 0164 8360              ori R24,3
 0166 85BF              out 0x35,R24
 0168                   .dbline 127
 0168 20920000          sts _N,R2
 016C                   .dbline 128
 016C C098              cbi 0x18,0
 016E                   .dbline 130
 016E           L16:
 016E                   .dbline -2
 016E           L14:
 016E 0E940000          xcall pop_gset2
 0172 0E940000          xcall pop_lset
 0176                   .dbline 0 ; func end
 0176 1895              reti
 0178                   .dbend
 0178                   .dbfunc e T2_INIT _T2_INIT fV
                        .even
 0178           _T2_INIT::
 0178                   .dbline -1
 0178                   .dbline 149
 0178           ;        else
 0178           ;        {    
 0178           ;                 TCCR2=0X00;//定时器t1停止工作
 0178           ;                 CLI();//关中断,进行数据处理
 0178           ;                 //数据处理
 0178           ;                 T2_NUM=T2OVF_NUM;
 0178           ;                 T2_NUM=(T2_NUM*256+TCNT2);
 0178           ;                 T2_NUM/=64;
 0178           ;                 T2_NUM-=10001;
 0178           ;                 VIN=T2_NUM/10;
 0178           ;                 DATA_DISPLAY(VIN);
 0178           ;                 //数据处理结束
 0178           ;                 T2OVF_NUM=0;
 0178           ;                 TCNT2=0X00;
 0178           ;                 MCUCR|=((1<<ISC01)|(1<<ISC00));//设置外部上升沿中断
 0178           ;                 N=0;//
 0178           ;                 PORTB&=~(1<<0);//上位机发0x01,测量一次,停止ad
 0178           ;                 //SEI();先进行1次采样
 0178           ;        }
 0178           ; }
 0178           ; //************************************************** 
 0178           ; //函数名称:void T1_INIT(void)  
 0178           ; //函数功能:内部定时
 0178           ; //注意事项,定时器未工作,定时器工作,需+TCCR1B=0X01;
 0178           ; //************************************************** 
 0178           ; /*void T1_INIT(void)
 0178           ; {      
 0178           ;        TCCR1A=0X00;
 0178           ;        TCNT1=0X0000;
 0178           ;        TIMSK|=(1<<TOIE1);
 0178           ; }*/
 0178           ; //************************************************** 
 0178           ; //函数名称:void T1_INIT(void)  
 0178           ; //函数功能:内部定时
 0178           ; //注意事项,定时器未工作,定时器工作,需+TCCR1B=0X01;
 0178           ; //**************************************************
 0178           ; void T2_INIT(void)
 0178           ; {      
 0178                   .dbline 151
 0178           ;        //TCCR1A=0X00;
 0178           ;        TCNT2=0X00;
 0178 2224              clr R2
 017A 24BC              out 0x24,R2
 017C                   .dbline 152
 017C           ;        TIMSK|=(1<<TOIE2);//使能t2溢出中断
 017C 89B7              in R24,0x39
 017E 8064              ori R24,64
 0180 89BF              out 0x39,R24
 0182                   .dbline 153
 0182           ;        TCCR2=0X01;//普通模式,1倍频,定时器开始工作
 0182 81E0              ldi R24,1
 0184 85BD              out 0x25,R24
 0186                   .dbline -2
 0186           L17:
 0186                   .dbline 0 ; func end
 0186 0895              ret
 0188                   .dbend
                        .area vector(rom, abs)
                        .org 16
 0010 0C94C400          jmp _T2_OVF
                        .area text(rom, con, rel)
 0188                   .dbfile 7135_finish.c
 0188                   .dbfunc e T2_OVF _T2_OVF fV
                        .even
 0188           _T2_OVF::
 0188 8A93              st -y,R24
 018A 9A93              st -y,R25
 018C 8FB7              in R24,0x3f
 018E 8A93              st -y,R24
 0190                   .dbline -1
 0190                   .dbline 162
 0190           ; }
 0190           ; //************************************************** 
 0190           ; //函数名称:void T1_OVF(void)  
 0190           ; //函数功能:ti溢出处理
 0190           ; //注意事项:
 0190           ; //**************************************************
 0190           ; #pragma interrupt_handler T2_OVF:5
 0190           ; void T2_OVF(void)
 0190           ; {      
 0190                   .dbline 163
 0190           ;        T2OVF_NUM++;
 0190 80910100          lds R24,_T2OVF_NUM
 0194 90910200          lds R25,_T2OVF_NUM+1
 0198 0196              adiw R24,1
 019A 90930200          sts _T2OVF_NUM+1,R25
 019E 80930100          sts _T2OVF_NUM,R24
 01A2                   .dbline -2
 01A2           L18:
 01A2 8991              ld R24,y+
 01A4 8FBF              out 0x3f,R24
 01A6 9991              ld R25,y+
 01A8 8991              ld R24,y+
 01AA                   .dbline 0 ; func end
 01AA 1895              reti
 01AC                   .dbend
 01AC                   .dbfunc e USART_INIT _USART_INIT fV
                        .even
 01AC           _USART_INIT::
 01AC                   .dbline -1
 01AC                   .dbline 181
 01AC           ; }
 01AC           ; //************************************************** 
 01AC           ; //函数名称:void T1_OVF(void)  
 01AC           ; //函数功能:ti溢出处理
 01AC           ; //注意事项:
 01AC           ; //**************************************************
 01AC           ; /*#pragma interrupt_handler T1_OVF:9
 01AC           ; void T1_OVF(void)
 01AC           ; {      
 01AC           ;        T2OVF_NUM++;
 01AC           ; }*/
 01AC           ; //***************************************************** 
 01AC           ; //函数名称:void USART_INIT(void) 
 01AC           ; //函数功能:8M,波特率9600
 01AC           ; //注意事项:
 01AC           ; //*****************************************************
 01AC           ; void USART_INIT(void)
 01AC           ; {      
 01AC                   .dbline 182
 01AC           ;        UBRR=0X33;//fosc=8mhz,波特率9600
 01AC 83E3              ldi R24,51
 01AE 89B9              out 0x9,R24
 01B0                   .dbline 183
 01B0           ;        UCSRA=0X20;
 01B0 80E2              ldi R24,32
 01B2 8BB9              out 0xb,R24

⌨️ 快捷键说明

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