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 + -
显示快捷键?