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

📄 main.lis

📁 AVR单片机系统开发经典实例部分源程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 00C8           ;               temp1=int16_temp1/256;
 00C8 BA01              movw R22,R20
 00CA 672F              mov R22,R23
 00CC 7727              clr R23
 00CE                   .dbline 89
 00CE           ;               temp2=int16_temp1%256;
 00CE BA01              movw R22,R20
 00D0 7070              andi R23,0
 00D2                   .dbline 91
 00D2           ;       //保存数据
 00D2           ;               switch(global_channel_flag)
 00D2 80910A00          lds R24,_global_channel_flag
 00D6 90910B00          lds R25,_global_channel_flag+1
 00DA 8130              cpi R24,1
 00DC E0E0              ldi R30,0
 00DE 9E07              cpc R25,R30
 00E0 49F0              breq L24
 00E2 8230              cpi R24,2
 00E4 E0E0              ldi R30,0
 00E6 9E07              cpc R25,R30
 00E8 79F0              breq L25
 00EA 8330              cpi R24,3
 00EC E0E0              ldi R30,0
 00EE 9E07              cpc R25,R30
 00F0 A9F0              breq L26
 00F2 1DC0              xjmp L23
 00F4           X4:
 00F4                   .dbline 92
 00F4           ;               {
 00F4           L24:
 00F4                   .dbline 96
 00F4           ;                       case 1://保存合闸线圈电流
 00F4           ;                               //SRAM_1M_8_WRITE(global_close_counter,temp1);//高位字节
 00F4           ;                               //SRAM_1M_8_WRITE(global_close_counter+1,temp2);//低位字节
 00F4           ;                               global_close_counter+=2;
 00F4 80910800          lds R24,_global_close_counter
 00F8 90910900          lds R25,_global_close_counter+1
 00FC 0296              adiw R24,2
 00FE 90930900          sts _global_close_counter+1,R25
 0102 80930800          sts _global_close_counter,R24
 0106                   .dbline 97
 0106           ;                               break;
 0106 13C0              xjmp L23
 0108           L25:
 0108                   .dbline 101
 0108           ;                       case 2://保存分闸线圈电流
 0108           ;                               //SRAM_1M_8_WRITE(global_trip_counter,temp1);//高位字节
 0108           ;                               //SRAM_1M_8_WRITE(global_trip_counter+1,temp2);//低位字节
 0108           ;                               global_trip_counter+=2;
 0108 80910600          lds R24,_global_trip_counter
 010C 90910700          lds R25,_global_trip_counter+1
 0110 0296              adiw R24,2
 0112 90930700          sts _global_trip_counter+1,R25
 0116 80930600          sts _global_trip_counter,R24
 011A                   .dbline 102
 011A           ;                               break;
 011A 09C0              xjmp L23
 011C           L26:
 011C                   .dbline 108
 011C           ;                       case 3://保存操作电压
 011C           ;                       //      SRAM_1M_8_WRITE(global_motor_counter,temp1);//高位字节
 011C           ;                       //      SRAM_1M_8_WRITE(global_motor_counter+1,temp2);//低位字节
 011C           ;                               //SRAM_1M_8_WRITE(global_voltage_counter,temp1);//高位字节
 011C           ;                               //SRAM_1M_8_WRITE(global_voltage_counter+1,temp2);//低位字节
 011C           ;                               global_voltage_counter+=2;
 011C 80910200          lds R24,_global_voltage_counter
 0120 90910300          lds R25,_global_voltage_counter+1
 0124 0296              adiw R24,2
 0126 90930300          sts _global_voltage_counter+1,R25
 012A 80930200          sts _global_voltage_counter,R24
 012E                   .dbline 110
 012E           ;                       //      global_motor_counter+=2;
 012E           ;                               break;
 012E                   .dbline 117
 012E           ;               //      case 4://保存操作电压
 012E           ;                       //      SRAM_1M_8_WRITE(global_voltage_counter,temp1);//高位字节
 012E           ;                       //      SRAM_1M_8_WRITE(global_voltage_counter+1,temp2);//低位字节
 012E           ;                       //      global_voltage_counter+=2;
 012E           ;                       //      break;
 012E           ;                       default:
 012E           ;                               break;
 012E           L23:
 012E                   .dbline 120
 012E           ;               }
 012E           ;       //计数器自加
 012E           ;               global_ad_counter++;
 012E 80912600          lds R24,_global_ad_counter
 0132 90912700          lds R25,_global_ad_counter+1
 0136 0196              adiw R24,1
 0138 90932700          sts _global_ad_counter+1,R25
 013C 80932600          sts _global_ad_counter,R24
 0140                   .dbline 121
 0140           ;       }
 0140           L20:
 0140                   .dbline 123
 0140           ; //如果是检测动作是否开始的采样
 0140           ;       if(global_sample_mode_flag==0x00)
 0140 20902200          lds R2,_global_sample_mode_flag
 0144 30902300          lds R3,_global_sample_mode_flag+1
 0148 2220              tst R2
 014A 09F0              breq X7
 014C 7EC0              xjmp L27
 014E           X7:
 014E 3320              tst R3
 0150 09F0              breq X8
 0152 7BC0              xjmp L27
 0154           X8:
 0154           X5:
 0154                   .dbline 124
 0154           ;       {
 0154                   .dbline 127
 0154           ;       //采样轮转赋值
 0154           ;               //合闸线圈采样
 0154           ;               if(global_ad_counter%2==0)
 0154 20902600          lds R2,_global_ad_counter
 0158 30902700          lds R3,_global_ad_counter+1
 015C 20FC              sbrc R2,0
 015E 14C0              rjmp L29
 0160                   .dbline 128
 0160           ;               {
 0160                   .dbline 130
 0160           ;               //      global_detect_close[0]=int16_temp1;
 0160           ;                       global_detect_close[0]=global_detect_close[1];
 0160 20901800          lds R2,_global_detect_close+2
 0164 30901900          lds R3,_global_detect_close+2+1
 0168 30921700          sts _global_detect_close+1,R3
 016C 20921600          sts _global_detect_close,R2
 0170                   .dbline 131
 0170           ;                       global_detect_close[1]=global_detect_close[2];
 0170 20901A00          lds R2,_global_detect_close+4
 0174 30901B00          lds R3,_global_detect_close+4+1
 0178 30921900          sts _global_detect_close+2+1,R3
 017C 20921800          sts _global_detect_close+2,R2
 0180                   .dbline 132
 0180           ;                       global_detect_close[2]=int16_temp1;
 0180 50931B00          sts _global_detect_close+4+1,R21
 0184 40931A00          sts _global_detect_close+4,R20
 0188                   .dbline 134
 0188           ;       //              global_detect_close[2]=int16_temp1;
 0188           ;               }
 0188           L29:
 0188                   .dbline 136
 0188           ;               //分闸线圈采样
 0188           ;               if(global_ad_counter%2==1)
 0188 80912600          lds R24,_global_ad_counter
 018C 90912700          lds R25,_global_ad_counter+1
 0190 8170              andi R24,1
 0192 9070              andi R25,0
 0194 8130              cpi R24,1
 0196 E0E0              ldi R30,0
 0198 9E07              cpc R25,R30
 019A A1F4              brne L35
 019C                   .dbline 137
 019C           ;               {
 019C                   .dbline 139
 019C           ;               //      global_detect_trip[0]=int16_temp1;
 019C           ;                       global_detect_trip[0]=global_detect_trip[1];
 019C 20900E00          lds R2,_global_detect_trip+2
 01A0 30900F00          lds R3,_global_detect_trip+2+1
 01A4 30920D00          sts _global_detect_trip+1,R3
 01A8 20920C00          sts _global_detect_trip,R2
 01AC                   .dbline 140
 01AC           ;                       global_detect_trip[1]=global_detect_trip[2];
 01AC 20901000          lds R2,_global_detect_trip+4
 01B0 30901100          lds R3,_global_detect_trip+4+1
 01B4 30920F00          sts _global_detect_trip+2+1,R3
 01B8 20920E00          sts _global_detect_trip+2,R2
 01BC                   .dbline 141
 01BC           ;                       global_detect_trip[2]=int16_temp1;
 01BC 50931100          sts _global_detect_trip+4+1,R21
 01C0 40931000          sts _global_detect_trip+4,R20
 01C4                   .dbline 143
 01C4           ;               //      global_detect_trip[2]=int16_temp1;
 01C4           ;               }
 01C4           L35:
 01C4                   .dbline 146
 01C4           ;       //判断是否有码值变化
 01C4           ;               //判断合闸数据
 01C4           ;               if((global_detect_close[0]>2046)&&(global_detect_close[1]>2046)&&(global_detect_close[2]>2046))//&&(global_detect_close[3]>2045)&&(global_detect_close[4]>2045))
 01C4 8EEF              ldi R24,2046
 01C6 97E0              ldi R25,7
 01C8 20901600          lds R2,_global_detect_close
 01CC 30901700          lds R3,_global_detect_close+1
 01D0 8215              cp R24,R2
 01D2 9305              cpc R25,R3
 01D4 A0F4              brsh L41
 01D6 20901800          lds R2,_global_detect_close+2
 01DA 30901900          lds R3,_global_detect_close+2+1
 01DE 8215              cp R24,R2
 01E0 9305              cpc R25,R3
 01E2 68F4              brsh L41
 01E4 20901A00          lds R2,_global_detect_close+4
 01E8 30901B00          lds R3,_global_detect_close+4+1
 01EC 8215              cp R24,R2
 01EE 9305              cpc R25,R3
 01F0 30F4              brsh L41
 01F2                   .dbline 147
 01F2           ;               {
 01F2                   .dbline 149
 01F2           ;               //检测到动作标志赋值
 01F2           ;                       global_operation_detected_flag=1;
 01F2 81E0              ldi R24,1
 01F4 90E0              ldi R25,0
 01F6 90932100          sts _global_operation_detected_flag+1,R25
 01FA 80932000          sts _global_operation_detected_flag,R24
 01FE                   .dbline 150
 01FE           ;               }
 01FE           L41:
 01FE                   .dbline 160
 01FE           ;       //      if(global_detect_close[0]>2049)
 01FE           ;       //      {
 01FE           ;       //              if((global_detect_close[1]-global_detect_close[0]>1)&&(global_detect_close[2]-global_detect_close[1]>1))//&&(global_detect_close[3]-global_detect_close[0]>1))
 01FE           ;       //              {
 01FE           ;                       //检测到动作标志赋值
 01FE           ;       //                      global_operation_detected_flag=1;
 01FE           ;       //              }
 01FE           ;       //      }
 01FE           ;               //判断分闸数据
 01FE           ;               if((global_detect_trip[0]>2046)&&(global_detect_trip[1]>2046)&&(global_detect_trip[2]>2046))//&&(global_detect_trip[3]>2045)&&(global_detect_trip[4]>2045))
 01FE 8EEF              ldi R24,2046
 0200 97E0              ldi R25,7
 0202 20900C00          lds R2,_global_detect_trip
 0206 30900D00          lds R3,_global_detect_trip+1
 020A 8215              cp R24,R2
 020C 9305              cpc R25,R3
 020E A0F4              brsh L45
 0210 20900E00          lds R2,_global_detect_trip+2
 0214 30900F00          lds R3,_global_detect_trip+2+1
 0218 8215              cp R24,R2
 021A 9305              cpc R25,R3
 021C 68F4              brsh L45
 021E 20901000          lds R2,_global_detect_trip+4
 0222 30901100          lds R3,_global_detect_trip+4+1
 0226 8215              cp R24,R2
 0228 9305              cpc R25,R3
 022A 30F4              brsh L45
 022C                   .dbline 161
 022C           ;               {
 022C                   .dbline 163
 022C           ;               //检测到动作标志赋值
 022C           ;                       global_operation_detected_flag=1;
 022C 81E0              ldi R24,1
 022E 90E0              ldi R25,0
 0230 90932100          sts _global_operation_detected_flag+1,R25
 0234 80932000          sts _global_operation_detected_flag,R24
 0238                   .dbline 164

⌨️ 快捷键说明

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