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

📄 main.lis

📁 AVR单片机RS232通信接口应用设计
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 009E 20920300          sts _wLineVoltSample,R2
 00A2                   .dbline 67
 00A2           ;       wLineVoltReal = (INT16S)(((INT32S)(wLineVoltSample - 512) * cLineRatio) >> 10); 
 00A2 C101              movw R24,R2
 00A4 8050              subi R24,0
 00A6 9240              sbci R25,2
 00A8 1C01              movw R2,R24
 00AA 4424              clr R4
 00AC 37FC              sbrc R3,7
 00AE 4094              com R4
 00B0 5524              clr R5
 00B2 47FC              sbrc R4,7
 00B4 5094              com R5
 00B6 45E7              ldi R20,117
 00B8 54E2              ldi R21,36
 00BA 60E0              ldi R22,0
 00BC 70E0              ldi R23,0
 00BE 5A92              st -y,R5
 00C0 4A92              st -y,R4
 00C2 3A92              st -y,R3
 00C4 2A92              st -y,R2
 00C6 8A01              movw R16,R20
 00C8 9B01              movw R18,R22
 00CA 0E940000          xcall empy32s
 00CE 8AE0              ldi R24,10
 00D0 90E0              ldi R25,0
 00D2 8A93              st -y,R24
 00D4 0E940000          xcall asr32
 00D8 10930600          sts _wLineVoltReal+1,R17
 00DC 00930500          sts _wLineVoltReal,R16
 00E0                   .dbline 68
 00E0           ;       if(wLineVoltReal < 0)
 00E0 C801              movw R24,R16
 00E2 0030              cpi R16,0
 00E4 E0E0              ldi R30,0
 00E6 1E07              cpc R17,R30
 00E8 44F4              brge L10
 00EA                   .dbline 69
 00EA           ;       {
 00EA                   .dbline 70
 00EA           ;               wLineVoltReal = -wLineVoltReal;
 00EA 8095              com R24
 00EC 9095              com R25
 00EE 8F5F              subi R24,0xFF
 00F0 9F4F              sbci R25,0xFF
 00F2 90930600          sts _wLineVoltReal+1,R25
 00F6 80930500          sts _wLineVoltReal,R24
 00FA                   .dbline 71
 00FA           ;       }
 00FA           L10:
 00FA                   .dbline 72
 00FA           ;       dwLineVoltSumTemp += (INT32S)wLineVoltReal * (INT32S)wLineVoltReal;
 00FA 20900500          lds R2,_wLineVoltReal
 00FE 30900600          lds R3,_wLineVoltReal+1
 0102 4424              clr R4
 0104 37FC              sbrc R3,7
 0106 4094              com R4
 0108 5524              clr R5
 010A 47FC              sbrc R4,7
 010C 5094              com R5
 010E 60900500          lds R6,_wLineVoltReal
 0112 70900600          lds R7,_wLineVoltReal+1
 0116 8824              clr R8
 0118 77FC              sbrc R7,7
 011A 8094              com R8
 011C 9924              clr R9
 011E 87FC              sbrc R8,7
 0120 9094              com R9
 0122 5A92              st -y,R5
 0124 4A92              st -y,R4
 0126 3A92              st -y,R3
 0128 2A92              st -y,R2
 012A 8301              movw R16,R6
 012C 9401              movw R18,R8
 012E 0E940000          xcall empy32s
 0132 40901700          lds R4,_dwLineVoltSumTemp+2
 0136 50901800          lds R5,_dwLineVoltSumTemp+2+1
 013A 20901500          lds R2,_dwLineVoltSumTemp
 013E 30901600          lds R3,_dwLineVoltSumTemp+1
 0142 200E              add R2,R16
 0144 311E              adc R3,R17
 0146 421E              adc R4,R18
 0148 531E              adc R5,R19
 014A 30921600          sts _dwLineVoltSumTemp+1,R3
 014E 20921500          sts _dwLineVoltSumTemp,R2
 0152 50921800          sts _dwLineVoltSumTemp+2+1,R5
 0156 40921700          sts _dwLineVoltSumTemp+2,R4
 015A                   .dbline 73
 015A           ;       bLineCntTemp++;
 015A 80910200          lds R24,_bLineCntTemp
 015E 8F5F              subi R24,255    ; addi 1
 0160 80930200          sts _bLineCntTemp,R24
 0164                   .dbline -2
 0164                   .dbline 84
 0164           ;       /*
 0164           ;       if(bLineCntTemp >= 40)
 0164           ;       {
 0164           ;               dwLineVoltSum = dwLineVoltSumTemp;
 0164           ;               dwLineVoltSumTemp = 0;
 0164           ;               bLineCnt = bLineCntTemp;
 0164           ;               bLineCntTemp = 0;
 0164           ;               bLine_Event = 1;
 0164           ;       }
 0164           ;       */
 0164           ; } 
 0164           L9:
 0164 0E940000          xcall pop_gset4
 0168 2990              ld R2,y+
 016A 2FBE              out 0x3f,R2
 016C E991              ld R30,y+
 016E B991              ld R27,y+
 0170 A991              ld R26,y+
 0172 9991              ld R25,y+
 0174 8991              ld R24,y+
 0176 3991              ld R19,y+
 0178 2991              ld R18,y+
 017A 1991              ld R17,y+
 017C 0991              ld R16,y+
 017E 9990              ld R9,y+
 0180 8990              ld R8,y+
 0182 7990              ld R7,y+
 0184 6990              ld R6,y+
 0186 5990              ld R5,y+
 0188 4990              ld R4,y+
 018A 3990              ld R3,y+
 018C 2990              ld R2,y+
 018E                   .dbline 0 ; func end
 018E 1895              reti
 0190                   .dbsym r temp2 12 i
 0190                   .dbsym r temp1 10 i
 0190                   .dbend
                        .area vector(rom, abs)
                        .org 20
 0014 0C94C800          jmp _Timer1Capture_Interrupt
                        .area text(rom, con, rel)
 0190                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\RS232通信协议应用设计\main.c
 0190                   .dbfunc e Timer1Capture_Interrupt _Timer1Capture_Interrupt fV
 0190           ;          temp2 -> <dead>
 0190           ;          temp1 -> <dead>
                        .even
 0190           _Timer1Capture_Interrupt::
 0190 0A92              st -y,R0
 0192 1A92              st -y,R1
 0194 2A92              st -y,R2
 0196 3A92              st -y,R3
 0198 4A92              st -y,R4
 019A 5A92              st -y,R5
 019C 8A93              st -y,R24
 019E 9A93              st -y,R25
 01A0 EA93              st -y,R30
 01A2 0FB6              in R0,0x3f
 01A4 0A92              st -y,R0
 01A6 0E940000          xcall push_gset2
 01AA                   .dbline -1
 01AA                   .dbline 94
 01AA           ; 
 01AA           ; //***************************************************************
 01AA           ; // Function    : Timer1Capture_Interrupt                                
 01AA           ; // Input       : none                                            
 01AA           ; // Output      : none                                            
 01AA           ; // Description : ATmega16 T/C1-Capature ISR                               
 01AA           ; //***************************************************************
 01AA           ; #pragma interrupt_handler Timer1Capture_Interrupt:6
 01AA           ; void Timer1Capture_Interrupt(void)
 01AA           ; {
 01AA                   .dbline 98
 01AA           ;       INT16U temp1,temp2;
 01AA           ; 
 01AA           ;       //Clear Interrupt Flag
 01AA           ;       TIFR |= 0x20;
 01AA 88B7              in R24,0x38
 01AC 8062              ori R24,32
 01AE 88BF              out 0x38,R24
 01B0                   .dbline 100
 01B0           ;       //Calculate Line Period
 01B0           ;       wLineCaptureTimeLast = wLineCaptureTime;
 01B0 20900D00          lds R2,_wLineCaptureTime
 01B4 30900E00          lds R3,_wLineCaptureTime+1
 01B8 30921000          sts _wLineCaptureTimeLast+1,R3
 01BC 20920F00          sts _wLineCaptureTimeLast,R2
 01C0                   .dbline 101
 01C0           ;       wLineCaptureTime = ICR1;
 01C0 26B4              in R2,0x26
 01C2 37B4              in R3,0x27
 01C4 30920E00          sts _wLineCaptureTime+1,R3
 01C8 20920D00          sts _wLineCaptureTime,R2
 01CC                   .dbline 102
 01CC           ;       wLinePeriodTemp = wLineCaptureTime - wLineCaptureTimeLast;
 01CC 20900F00          lds R2,_wLineCaptureTimeLast
 01D0 30901000          lds R3,_wLineCaptureTimeLast+1
 01D4 40900D00          lds R4,_wLineCaptureTime
 01D8 50900E00          lds R5,_wLineCaptureTime+1
 01DC 4218              sub R4,R2
 01DE 5308              sbc R5,R3
 01E0 50920C00          sts _wLinePeriodTemp+1,R5
 01E4 40920B00          sts _wLinePeriodTemp,R4
 01E8                   .dbline 103
 01E8           ;       if((wLinePeriodTemp >= 14285) && (wLinePeriodTemp <= 25000))
 01E8 C201              movw R24,R4
 01EA 8D3C              cpi R24,205
 01EC E7E3              ldi R30,55
 01EE 9E07              cpc R25,R30
 01F0 50F0              brlo L13
 01F2 88EA              ldi R24,25000
 01F4 91E6              ldi R25,97
 01F6 1201              movw R2,R4
 01F8 8415              cp R24,R4
 01FA 9505              cpc R25,R5
 01FC 20F0              brlo L13
 01FE                   .dbline 104
 01FE           ;       {
 01FE                   .dbline 105
 01FE           ;               wLinePeriod = wLinePeriodTemp;
 01FE 30920A00          sts _wLinePeriod+1,R3
 0202 20920900          sts _wLinePeriod,R2
 0206                   .dbline 106
 0206           ;       }
 0206           L13:
 0206                   .dbline 108
 0206           ;       //Acquire Line Volt Accumulation
 0206           ;       dwLineVoltSum = dwLineVoltSumTemp;
 0206 40901700          lds R4,_dwLineVoltSumTemp+2
 020A 50901800          lds R5,_dwLineVoltSumTemp+2+1
 020E 20901500          lds R2,_dwLineVoltSumTemp
 0212 30901600          lds R3,_dwLineVoltSumTemp+1
 0216 30921200          sts _dwLineVoltSum+1,R3
 021A 20921100          sts _dwLineVoltSum,R2
 021E 50921400          sts _dwLineVoltSum+2+1,R5
 0222 40921300          sts _dwLineVoltSum+2,R4
 0226                   .dbline 109
 0226           ;       dwLineVoltSumTemp = 0;
 0226 40E0              ldi R20,0
 0228 50E0              ldi R21,0
 022A 60E0              ldi R22,0
 022C 70E0              ldi R23,0
 022E 50931600          sts _dwLineVoltSumTemp+1,R21
 0232 40931500          sts _dwLineVoltSumTemp,R20
 0236 70931800          sts _dwLineVoltSumTemp+2+1,R23
 023A 60931700          sts _dwLineVoltSumTemp+2,R22
 023E                   .dbline 110
 023E           ;       bLineCnt = bLineCntTemp;
 023E 20900200          lds R2,_bLineCntTemp
 0242 20920100          sts _bLineCnt,R2
 0246                   .dbline 111
 0246           ;       bLineCntTemp = 0;
 0246 2224              clr R2
 0248 20920200          sts _bLineCntTemp,R2
 024C                   .dbline 112
 024C           ;       bLine_Event = 1;
 024C 81E0              ldi R24,1
 024E 80930000          sts _bLine_Event,R24
 0252                   .dbline -2
 0252                   .dbline 113
 0252           ; }
 0252           L12:
 0252 0E940000          xcall pop_gset2
 0256 0990              ld R0,y+
 0258 0FBE              out 0x3f,R0
 025A E991              ld R30,y+
 025C 9991              ld R25,y+
 025E 8991              ld R24,y+
 0260 5990              ld R5,y+
 0262 4990              ld R4,y+
 0264 3990              ld R3,y+

⌨️ 快捷键说明

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