📄 main.lis
字号:
.module main.c
.area data(ram, con, rel)
0000 _bLine_Event::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\RS232通信协议应用设计\main.c
0001 .dbsym e bLine_Event _bLine_Event c
0001 _bLineCnt::
0001 .blkb 1
.area idata
0001 00 .byte 0
.area data(ram, con, rel)
0002 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\RS232通信协议应用设计\main.c
0002 .dbsym e bLineCnt _bLineCnt c
0002 _bLineCntTemp::
0002 .blkb 1
.area idata
0002 00 .byte 0
.area data(ram, con, rel)
0003 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\RS232通信协议应用设计\main.c
0003 .dbsym e bLineCntTemp _bLineCntTemp c
0003 _wLineVoltSample::
0003 .blkb 2
.area idata
0003 0000 .word 0
.area data(ram, con, rel)
0005 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\RS232通信协议应用设计\main.c
0005 .dbsym e wLineVoltSample _wLineVoltSample I
0005 _wLineVoltReal::
0005 .blkb 2
.area idata
0005 0000 .word 0
.area data(ram, con, rel)
0007 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\RS232通信协议应用设计\main.c
0007 .dbsym e wLineVoltReal _wLineVoltReal I
0007 _wLineVoltRMS::
0007 .blkb 2
.area idata
0007 0000 .word 0
.area data(ram, con, rel)
0009 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\RS232通信协议应用设计\main.c
0009 .dbsym e wLineVoltRMS _wLineVoltRMS I
0009 _wLinePeriod::
0009 .blkb 2
.area idata
0009 0000 .word 0
.area data(ram, con, rel)
000B .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\RS232通信协议应用设计\main.c
000B .dbsym e wLinePeriod _wLinePeriod i
000B _wLinePeriodTemp::
000B .blkb 2
.area idata
000B 0000 .word 0
.area data(ram, con, rel)
000D .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\RS232通信协议应用设计\main.c
000D .dbsym e wLinePeriodTemp _wLinePeriodTemp i
000D _wLineCaptureTime::
000D .blkb 2
.area idata
000D 0000 .word 0
.area data(ram, con, rel)
000F .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\RS232通信协议应用设计\main.c
000F .dbsym e wLineCaptureTime _wLineCaptureTime i
000F _wLineCaptureTimeLast::
000F .blkb 2
.area idata
000F 0000 .word 0
.area data(ram, con, rel)
0011 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\RS232通信协议应用设计\main.c
0011 .dbsym e wLineCaptureTimeLast _wLineCaptureTimeLast i
0011 _dwLineVoltSum::
0011 .blkb 4
.area idata
0011 00000000 .word 0,0
.area data(ram, con, rel)
0015 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\RS232通信协议应用设计\main.c
0015 .dbsym e dwLineVoltSum _dwLineVoltSum l
0015 _dwLineVoltSumTemp::
0015 .blkb 4
.area idata
0015 00000000 .word 0,0
.area data(ram, con, rel)
0019 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\RS232通信协议应用设计\main.c
0019 .dbsym e dwLineVoltSumTemp _dwLineVoltSumTemp l
.area text(rom, con, rel)
0000 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\RS232通信协议应用设计\main.c
0000 .dbfunc e main _main fV
.even
0000 _main::
0000 .dbline -1
0000 .dbline 32
0000 ; //***************************************************************
0000 ; // File Name : main.c
0000 ; // Author : Steaven
0000 ; // Created : 2008-07-26
0000 ; // Modified :
0000 ; // Revision : V0.0
0000 ; //***************************************************************
0000 ;
0000 ; #include "includes.h"
0000 ;
0000 ; //constant definition
0000 ; #define cLineRatio 9333
0000 ;
0000 ; //global variables definition
0000 ; INT8U bLine_Event = 0; //Line Calculation Event
0000 ; INT8U bLineCnt = 0; //Line Sampling Count
0000 ; INT8U bLineCntTemp = 0; //Line Sampling Count(temporary)
0000 ; INT16S wLineVoltSample = 0; //Line Sampling Value
0000 ; INT16S wLineVoltReal = 0; //Line Instant Value
0000 ; INT16S wLineVoltRMS = 0; //Line RMS Value
0000 ; INT16U wLinePeriod = 0; //Line Period
0000 ; INT16U wLinePeriodTemp = 0; //Line Period(temporary)
0000 ; INT16U wLineCaptureTime = 0; //Line Capature Time
0000 ; INT16U wLineCaptureTimeLast = 0; //Line Last Capature Time
0000 ; INT32U dwLineVoltSum = 0; //Line S-I Accumulation
0000 ; INT32U dwLineVoltSumTemp = 0; //Line S-I Accumulation(temporary)
0000 ;
0000 ; //local function declaration
0000 ; INT16U swRoot(INT32U dwNumber);
0000 ;
0000 ; void main(void)
0000 ; {
0000 .dbline 33
0000 ; Hardware_Init();
0000 0E940000 xcall _Hardware_Init
0004 .dbline 34
0004 ; Init_UART();
0004 0E940000 xcall _Init_UART
0008 23C0 xjmp L3
000A L2:
000A .dbline 36
000A ; while(1)
000A ; {
000A .dbline 37
000A ; if(bLine_Event == 1)
000A 80910000 lds R24,_bLine_Event
000E 8130 cpi R24,1
0010 F9F4 brne L5
0012 .dbline 38
0012 ; {
0012 .dbline 39
0012 ; bLine_Event = 0;
0012 2224 clr R2
0014 20920000 sts _bLine_Event,R2
0018 .dbline 40
0018 ; if(bLineCnt != 0)
0018 20900100 lds R2,_bLineCnt
001C 2220 tst R2
001E C1F0 breq L7
0020 .dbline 41
0020 ; {
0020 .dbline 42
0020 ; wLineVoltRMS = swRoot(dwLineVoltSum/bLineCnt);
0020 3324 clr R3
0022 4424 clr R4
0024 5524 clr R5
0026 80901300 lds R8,_dwLineVoltSum+2
002A 90901400 lds R9,_dwLineVoltSum+2+1
002E 60901100 lds R6,_dwLineVoltSum
0032 70901200 lds R7,_dwLineVoltSum+1
0036 5A92 st -y,R5
0038 4A92 st -y,R4
003A 3A92 st -y,R3
003C 2A92 st -y,R2
003E 8301 movw R16,R6
0040 9401 movw R18,R8
0042 0E940000 xcall div32u
0046 13D1 xcall _swRoot
0048 10930800 sts _wLineVoltRMS+1,R17
004C 00930700 sts _wLineVoltRMS,R16
0050 .dbline 43
0050 ; }
0050 L7:
0050 .dbline 44
0050 ; }
0050 L5:
0050 .dbline 45
0050 L3:
0050 .dbline 35
0050 DCCF xjmp L2
0052 X0:
0052 .dbline -2
0052 .dbline 46
0052 ; }
0052 ; }
0052 L1:
0052 .dbline 0 ; func end
0052 0895 ret
0054 .dbend
.area vector(rom, abs)
.org 76
004C 0C942A00 jmp _TimeCountr0_Interrupt
.area text(rom, con, rel)
0054 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\RS232通信协议应用设计\main.c
0054 .dbfunc e TimeCountr0_Interrupt _TimeCountr0_Interrupt fV
0054 ; temp2 -> R12,R13
0054 ; temp1 -> R10,R11
.even
0054 _TimeCountr0_Interrupt::
0054 2A92 st -y,R2
0056 3A92 st -y,R3
0058 4A92 st -y,R4
005A 5A92 st -y,R5
005C 6A92 st -y,R6
005E 7A92 st -y,R7
0060 8A92 st -y,R8
0062 9A92 st -y,R9
0064 0A93 st -y,R16
0066 1A93 st -y,R17
0068 2A93 st -y,R18
006A 3A93 st -y,R19
006C 8A93 st -y,R24
006E 9A93 st -y,R25
0070 AA93 st -y,R26
0072 BA93 st -y,R27
0074 EA93 st -y,R30
0076 2FB6 in R2,0x3f
0078 2A92 st -y,R2
007A 0E940000 xcall push_gset4
007E .dbline -1
007E .dbline 56
007E ;
007E ; //***************************************************************
007E ; // Function : wTimeCountr0_Interrupt
007E ; // Input : none
007E ; // Output : none
007E ; // Description : ATmega16 T/C0 ISR
007E ; //***************************************************************
007E ; #pragma interrupt_handler TimeCountr0_Interrupt:20
007E ; void TimeCountr0_Interrupt(void)
007E ; {
007E .dbline 60
007E ; INT16U temp1,temp2;
007E ;
007E ; //Clear wTimeCountr0 OCIF Flag
007E ; TIFR |= 0x02;
007E 88B7 in R24,0x38
0080 8260 ori R24,2
0082 88BF out 0x38,R24
0084 .dbline 61
0084 ; TCNT0 = 0x00;
0084 2224 clr R2
0086 22BE out 0x32,R2
0088 .dbline 64
0088 ;
0088 ; //Read ADC Conversion
0088 ; temp1 = (INT16U)ADCL;
0088 A4B0 in R10,0x4
008A BB24 clr R11
008C .dbline 65
008C ; temp2 = (INT16U)ADCH;
008C C5B0 in R12,0x5
008E DD24 clr R13
0090 .dbline 66
0090 ; wLineVoltSample = (temp2 << 8) | temp1;
0090 1601 movw R2,R12
0092 322C mov R3,R2
0094 2224 clr R2
0096 2A28 or R2,R10
0098 3B28 or R3,R11
009A 30920400 sts _wLineVoltSample+1,R3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -