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

📄 test_7135.lis

📁 ad7135的avr16的源程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0068           ; {      
 0068                   .dbline 106
 0068           ;        if(!N)
 0068 20900000          lds R2,_N
 006C 2220              tst R2
 006E 49F4              brne L15
 0070                   .dbline 107
 0070           ;        {    
 0070                   .dbline 108
 0070           ;                 TCCR1B=0X01;//开始内部计数
 0070 81E0              ldi R24,1
 0072 8EBD              out 0x2e,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 77C0              xjmp L16
 0082           L15:
 0082                   .dbline 113
 0082                   .dbline 114
 0082 2224              clr R2
 0084 2EBC              out 0x2e,R2
 0086                   .dbline 115
 0086 F894              cli
 0088                   .dbline 117
 0088 20900100          lds R2,_T1OVF_NUM
 008C 30900200          lds R3,_T1OVF_NUM+1
 0090 4424              clr R4
 0092 5524              clr R5
 0094 30920300          sts _T1_NUM+1,R3
 0098 20920200          sts _T1_NUM,R2
 009C 50920500          sts _T1_NUM+2+1,R5
 00A0 40920400          sts _T1_NUM+2,R4
 00A4                   .dbline 118
 00A4 40900400          lds R4,_T1_NUM+2
 00A8 50900500          lds R5,_T1_NUM+2+1
 00AC 20900200          lds R2,_T1_NUM
 00B0 30900300          lds R3,_T1_NUM+1
 00B4 40E0              ldi R20,0
 00B6 50E0              ldi R21,0
 00B8 61E0              ldi R22,1
 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 6CB4              in R6,0x2c
 00D2 7DB4              in R7,0x2d
 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 _T1_NUM+1,R3
 00E4 20920200          sts _T1_NUM,R2
 00E8 50920500          sts _T1_NUM+2+1,R5
 00EC 40920400          sts _T1_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 _T1_NUM+1,R17
 0102 00930200          sts _T1_NUM,R16
 0106 30930500          sts _T1_NUM+2+1,R19
 010A 20930400          sts _T1_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 _T1_NUM+1,R3
 0126 20920200          sts _T1_NUM,R2
 012A 50920500          sts _T1_NUM+2+1,R5
 012E 40920400          sts _T1_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 52D0              xcall _DATA_DISPLAY
 0154                   .dbline 124
 0154 2224              clr R2
 0156 3324              clr R3
 0158 30920200          sts _T1OVF_NUM+1,R3
 015C 20920100          sts _T1OVF_NUM,R2
 0160                   .dbline 125
 0160 3DBC              out 0x2d,R3
 0162 2CBC              out 0x2c,R2
 0164                   .dbline 126
 0164 85B7              in R24,0x35
 0166 8360              ori R24,3
 0168 85BF              out 0x35,R24
 016A                   .dbline 127
 016A 20920000          sts _N,R2
 016E                   .dbline 128
 016E C098              cbi 0x18,0
 0170                   .dbline 130
 0170           L16:
 0170                   .dbline -2
 0170           L14:
 0170 0E940000          xcall pop_gset2
 0174 0E940000          xcall pop_lset
 0178                   .dbline 0 ; func end
 0178 1895              reti
 017A                   .dbend
 017A                   .dbfunc e T1_INIT _T1_INIT fV
                        .even
 017A           _T1_INIT::
 017A                   .dbline -1
 017A                   .dbline 138
 017A           ;        else
 017A           ;        {    
 017A           ;                 TCCR1B=0X00;//定时器t1停止工作
 017A           ;                 CLI();//关中断,进行数据处理
 017A           ;                 //数据处理
 017A           ;                 T1_NUM=T1OVF_NUM;
 017A           ;                 T1_NUM=(T1_NUM*65536+TCNT1);
 017A           ;                 T1_NUM/=64;
 017A           ;                 T1_NUM-=10001;
 017A           ;                 VIN=T1_NUM/10;
 017A           ;                 DATA_DISPLAY(VIN);
 017A           ;                 //数据处理结束
 017A           ;                 T1OVF_NUM=0;
 017A           ;                 TCNT1=0X0000;
 017A           ;                 MCUCR|=((1<<ISC01)|(1<<ISC00));//设置外部上升沿中断
 017A           ;                 N=0;//
 017A           ;                 PORTB&=~(1<<0);//上位机发0x01,测量一次,停止ad
 017A           ;                 //SEI();先进行1次采样
 017A           ;        }
 017A           ; }
 017A           ; //************************************************** 
 017A           ; //函数名称:void T1_INIT(void)  
 017A           ; //函数功能:内部定时
 017A           ; //注意事项,定时器未工作,定时器工作,需+TCCR1B=0X01;
 017A           ; //************************************************** 
 017A           ; void T1_INIT(void)
 017A           ; {      
 017A                   .dbline 139
 017A           ;        TCCR1A=0X00;
 017A 2224              clr R2
 017C 2FBC              out 0x2f,R2
 017E                   .dbline 140
 017E           ;        TCNT1=0X0000;
 017E 3324              clr R3
 0180 3DBC              out 0x2d,R3
 0182 2CBC              out 0x2c,R2
 0184                   .dbline 141
 0184           ;        TIMSK|=(1<<TOIE1);
 0184 89B7              in R24,0x39
 0186 8460              ori R24,4
 0188 89BF              out 0x39,R24
 018A                   .dbline -2
 018A           L17:
 018A                   .dbline 0 ; func end
 018A 0895              ret
 018C                   .dbend
                        .area vector(rom, abs)
                        .org 32
 0020 0C94C600          jmp _T1_OVF
                        .area text(rom, con, rel)
 018C                   .dbfile test_7135.c
 018C                   .dbfunc e T1_OVF _T1_OVF fV
                        .even
 018C           _T1_OVF::
 018C 8A93              st -y,R24
 018E 9A93              st -y,R25
 0190 8FB7              in R24,0x3f
 0192 8A93              st -y,R24
 0194                   .dbline -1
 0194                   .dbline 150
 0194           ; }
 0194           ; //************************************************** 
 0194           ; //函数名称:void T1_OVF(void)  
 0194           ; //函数功能:ti溢出处理
 0194           ; //注意事项:
 0194           ; //**************************************************
 0194           ; #pragma interrupt_handler T1_OVF:9
 0194           ; void T1_OVF(void)
 0194           ; {      
 0194                   .dbline 151
 0194           ;        T1OVF_NUM++;
 0194 80910100          lds R24,_T1OVF_NUM
 0198 90910200          lds R25,_T1OVF_NUM+1
 019C 0196              adiw R24,1
 019E 90930200          sts _T1OVF_NUM+1,R25
 01A2 80930100          sts _T1OVF_NUM,R24
 01A6                   .dbline -2
 01A6           L18:
 01A6 8991              ld R24,y+
 01A8 8FBF              out 0x3f,R24
 01AA 9991              ld R25,y+
 01AC 8991              ld R24,y+
 01AE                   .dbline 0 ; func end
 01AE 1895              reti
 01B0                   .dbend
 01B0                   .dbfunc e USART_INIT _USART_INIT fV
                        .even
 01B0           _USART_INIT::
 01B0                   .dbline -1
 01B0                   .dbline 159
 01B0           ; }
 01B0           ; //***************************************************** 
 01B0           ; //函数名称:void USART_INIT(void) 
 01B0           ; //函数功能:8M,波特率9600
 01B0           ; //注意事项:
 01B0           ; //*****************************************************
 01B0           ; void USART_INIT(void)
 01B0           ; {      
 01B0                   .dbline 160
 01B0           ;        UBRR=0X33;//fosc=8mhz,波特率9600
 01B0 83E3              ldi R24,51
 01B2 89B9              out 0x9,R24
 01B4                   .dbline 161
 01B4           ;        UCSRA=0X20;
 01B4 80E2              ldi R24,32
 01B6 8BB9              out 0xb,R24
 01B8                   .dbline 162
 01B8           ;        UCSRC=0X86;
 01B8 86E8              ldi R24,134
 01BA 80BD              out 0x20,R24
 01BC                   .dbline 163
 01BC           ;        UCSRB=0X98;
 01BC 88E9              ldi R24,152
 01BE 8AB9              out 0xa,R24

⌨️ 快捷键说明

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