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

📄 main.lis

📁 工业开关量检测模块的原代码,带断线检测功能
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0082           ;  ID_net = ID_nu;                                             //计算网络ID号
 0082 202E              mov R2,R16
 0084 20920600          sts _ID_net,R2
 0088                   .dbline 233
 0088           ; 
 0088           ;  Pass_Flag = 0x01;
 0088 81E0              ldi R24,1
 008A 80930500          sts _Pass_Flag,R24
 008E                   .dbline 234
 008E           ;  tempp = ID_net*256;
 008E 222D              mov R18,R2
 0090 3327              clr R19
 0092 00E0              ldi R16,256
 0094 11E0              ldi R17,1
 0096 0E940000          xcall empy16s
 009A 1801              movw R2,R16
 009C 4424              clr R4
 009E 37FC              sbrc R3,7
 00A0 4094              com R4
 00A2 5524              clr R5
 00A4 47FC              sbrc R4,7
 00A6 5094              com R5
 00A8 2882              std y+0,R2
 00AA 3982              std y+1,R3
 00AC 4A82              std y+2,R4
 00AE 5B82              std y+3,R5
 00B0                   .dbline 235
 00B0           ;  Pass_Flag <<= 1;
 00B0 20900500          lds R2,_Pass_Flag
 00B4 220C              lsl R2
 00B6 20920500          sts _Pass_Flag,R2
 00BA                   .dbline 236
 00BA           ;  id1 = BASE_ADDR+tempp;
 00BA 40E0              ldi R20,0
 00BC 50E0              ldi R21,0
 00BE 68E2              ldi R22,40
 00C0 70E0              ldi R23,0
 00C2 2880              ldd R2,y+0
 00C4 3980              ldd R3,y+1
 00C6 4A80              ldd R4,y+2
 00C8 5B80              ldd R5,y+3
 00CA 240E              add R2,R20
 00CC 351E              adc R3,R21
 00CE 461E              adc R4,R22
 00D0 571E              adc R5,R23
 00D2 30921900          sts _id1+1,R3
 00D6 20921800          sts _id1,R2
 00DA 50921B00          sts _id1+2+1,R5
 00DE 40921A00          sts _id1+2,R4
 00E2                   .dbline 237
 00E2           ;  id2 = BASE_ADDR+1+tempp;
 00E2 41E0              ldi R20,1
 00E4 50E0              ldi R21,0
 00E6 68E2              ldi R22,40
 00E8 70E0              ldi R23,0
 00EA 2880              ldd R2,y+0
 00EC 3980              ldd R3,y+1
 00EE 4A80              ldd R4,y+2
 00F0 5B80              ldd R5,y+3
 00F2 240E              add R2,R20
 00F4 351E              adc R3,R21
 00F6 461E              adc R4,R22
 00F8 571E              adc R5,R23
 00FA 30921500          sts _id2+1,R3
 00FE 20921400          sts _id2,R2
 0102 50921700          sts _id2+2+1,R5
 0106 40921600          sts _id2+2,R4
 010A                   .dbline 238
 010A           ;  id3 = BASE_ADDR/256+tempp*256;
 010A 2880              ldd R2,y+0
 010C 3980              ldd R3,y+1
 010E 4A80              ldd R4,y+2
 0110 5B80              ldd R5,y+3
 0112 40E0              ldi R20,0
 0114 51E0              ldi R21,1
 0116 60E0              ldi R22,0
 0118 70E0              ldi R23,0
 011A 5A92              st -y,R5
 011C 4A92              st -y,R4
 011E 3A92              st -y,R3
 0120 2A92              st -y,R2
 0122 8A01              movw R16,R20
 0124 9B01              movw R18,R22
 0126 0E940000          xcall empy32s
 012A 40E0              ldi R20,0
 012C 58E2              ldi R21,40
 012E 60E0              ldi R22,0
 0130 70E0              ldi R23,0
 0132 1801              movw R2,R16
 0134 2901              movw R4,R18
 0136 240E              add R2,R20
 0138 351E              adc R3,R21
 013A 461E              adc R4,R22
 013C 571E              adc R5,R23
 013E 30921100          sts _id3+1,R3
 0142 20921000          sts _id3,R2
 0146 50921300          sts _id3+2+1,R5
 014A 40921200          sts _id3+2,R4
 014E                   .dbline 239
 014E           ;  Pass_Flag <<= 1;
 014E 20900500          lds R2,_Pass_Flag
 0152 220C              lsl R2
 0154 20920500          sts _Pass_Flag,R2
 0158                   .dbline 240
 0158           ;  id4 = BASE_ADDR/256+tempp*256+1;
 0158 2880              ldd R2,y+0
 015A 3980              ldd R3,y+1
 015C 4A80              ldd R4,y+2
 015E 5B80              ldd R5,y+3
 0160 40E0              ldi R20,0
 0162 51E0              ldi R21,1
 0164 60E0              ldi R22,0
 0166 70E0              ldi R23,0
 0168 5A92              st -y,R5
 016A 4A92              st -y,R4
 016C 3A92              st -y,R3
 016E 2A92              st -y,R2
 0170 8A01              movw R16,R20
 0172 9B01              movw R18,R22
 0174 0E940000          xcall empy32s
 0178 41E0              ldi R20,1
 017A 58E2              ldi R21,40
 017C 60E0              ldi R22,0
 017E 70E0              ldi R23,0
 0180 1801              movw R2,R16
 0182 2901              movw R4,R18
 0184 240E              add R2,R20
 0186 351E              adc R3,R21
 0188 461E              adc R4,R22
 018A 571E              adc R5,R23
 018C 30920D00          sts _id4+1,R3
 0190 20920C00          sts _id4,R2
 0194 50920F00          sts _id4+2+1,R5
 0198 40920E00          sts _id4+2,R4
 019C                   .dbline 241
 019C           ;  id5 = BASE_ADDR/256+tempp*256+2;
 019C 2880              ldd R2,y+0
 019E 3980              ldd R3,y+1
 01A0 4A80              ldd R4,y+2
 01A2 5B80              ldd R5,y+3
 01A4 40E0              ldi R20,0
 01A6 51E0              ldi R21,1
 01A8 60E0              ldi R22,0
 01AA 70E0              ldi R23,0
 01AC 5A92              st -y,R5
 01AE 4A92              st -y,R4
 01B0 3A92              st -y,R3
 01B2 2A92              st -y,R2
 01B4 8A01              movw R16,R20
 01B6 9B01              movw R18,R22
 01B8 0E940000          xcall empy32s
 01BC 42E0              ldi R20,2
 01BE 58E2              ldi R21,40
 01C0 60E0              ldi R22,0
 01C2 70E0              ldi R23,0
 01C4 1801              movw R2,R16
 01C6 2901              movw R4,R18
 01C8 240E              add R2,R20
 01CA 351E              adc R3,R21
 01CC 461E              adc R4,R22
 01CE 571E              adc R5,R23
 01D0 30920900          sts _id5+1,R3
 01D4 20920800          sts _id5,R2
 01D8 50920B00          sts _id5+2+1,R5
 01DC 40920A00          sts _id5+2,R4
 01E0                   .dbline 242
 01E0           ;  Pass_Flag <<= 1;
 01E0 20900500          lds R2,_Pass_Flag
 01E4 220C              lsl R2
 01E6 20920500          sts _Pass_Flag,R2
 01EA                   .dbline 243
 01EA           ;  CANMOBID[0] = id1;
 01EA 40901A00          lds R4,_id1+2
 01EE 50901B00          lds R5,_id1+2+1
 01F2 20901800          lds R2,_id1
 01F6 30901900          lds R3,_id1+1
 01FA 30920100          sts _CANMOBID+1,R3
 01FE 20920000          sts _CANMOBID,R2
 0202 50920300          sts _CANMOBID+2+1,R5
 0206 40920200          sts _CANMOBID+2,R4
 020A                   .dbline 244
 020A           ;  CANMOBID[1] = id2;
 020A 40901600          lds R4,_id2+2
 020E 50901700          lds R5,_id2+2+1
 0212 20901400          lds R2,_id2
 0216 30901500          lds R3,_id2+1
 021A 30920500          sts _CANMOBID+4+1,R3
 021E 20920400          sts _CANMOBID+4,R2
 0222 50920700          sts _CANMOBID+4+2+1,R5
 0226 40920600          sts _CANMOBID+4+2,R4
 022A                   .dbline 245
 022A           ;  CANMOBID[3] = id3;
 022A 40901200          lds R4,_id3+2
 022E 50901300          lds R5,_id3+2+1
 0232 20901000          lds R2,_id3
 0236 30901100          lds R3,_id3+1
 023A 30920D00          sts _CANMOBID+12+1,R3
 023E 20920C00          sts _CANMOBID+12,R2
 0242 50920F00          sts _CANMOBID+12+2+1,R5
 0246 40920E00          sts _CANMOBID+12+2,R4
 024A                   .dbline 246
 024A           ;  CANMOBID[4] = id4;
 024A 40900E00          lds R4,_id4+2
 024E 50900F00          lds R5,_id4+2+1
 0252 20900C00          lds R2,_id4
 0256 30900D00          lds R3,_id4+1
 025A 30921100          sts _CANMOBID+16+1,R3
 025E 20921000          sts _CANMOBID+16,R2
 0262 50921300          sts _CANMOBID+16+2+1,R5
 0266 40921200          sts _CANMOBID+16+2,R4
 026A                   .dbline 247
 026A           ;  CANMOBID[5] = id5;
 026A 40900A00          lds R4,_id5+2
 026E 50900B00          lds R5,_id5+2+1
 0272 20900800          lds R2,_id5
 0276 30900900          lds R3,_id5+1
 027A 30921500          sts _CANMOBID+20+1,R3
 027E 20921400          sts _CANMOBID+20,R2
 0282 50921700          sts _CANMOBID+20+2+1,R5
 0286 40921600          sts _CANMOBID+20+2,R4
 028A                   .dbline 248
 028A           ;  if(Pass_Flag!=0x08)
 028A 80910500          lds R24,_Pass_Flag
 028E 8830              cpi R24,8
 0290 11F0              breq L11
 0292                   .dbline 249
 0292           ;  RESET;
 0292 0C940000          jmp 0x00000
 0296           L11:
 0296                   .dbline 250
 0296           ;  can_init ();   
 0296 0E940000          xcall _can_init
 029A                   .dbline 252
 029A           ;  
 029A           ;  DI_handle();                                                //读取开关状态 去抖动处理
 029A 0E940000          xcall _DI_handle
 029E                   .dbline 253
 029E           ;  for(i=0;i<12;i++)
 029E AA24              clr R10
 02A0 1DC0              xjmp L16
 02A2           L13:
 02A2                   .dbline 254
 02A2                   .dbline 255
 02A2 80E0              ldi R24,<_DI_data_cur
 02A4 90E0              ldi R25,>_DI_data_cur
 02A6 EA2D              mov R30,R10
 02A8 FF27              clr R31
 02AA E80F              add R30,R24
 02AC F91F              adc R31,R25
 02AE 2080              ldd R2,z+0
 02B0 80E0              ldi R24,<_DI_data_pre
 02B2 90E0              ldi R25,>_DI_data_pre
 02B4 EA2D              mov R30,R10
 02B6 FF27              clr R31
 02B8 E80F              add R30,R24
 02BA F91F              adc R31,R25
 02BC 2082              std z+0,R2
 02BE                   .dbline 256
 02BE 80E0              ldi R24,<_DI_data_cur
 02C0 90E0              ldi R25,>_DI_data_cur
 02C2 EA2D              mov R30,R10
 02C4 FF27              clr R31
 02C6 E80F              add R30,R24
 02C8 F91F              adc R31,R25
 02CA 2080              ldd R2,z+0
 02CC 80E0              ldi R24,<_DI_data
 02CE 90E0              ldi R25,>_DI_data
 02D0 EA2D              mov R30,R10
 02D2 FF27              clr R31
 02D4 E80F              add R30,R24
 02D6 F91F              adc R31,R25
 02D8 2082              std z+0,R2
 02DA                   .dbline 257
 02DA           L14:
 02DA                   .dbline 253
 02DA A394              inc R10
 02DC           L16:
 02DC                   .dbline 253
 02DC 8A2D              mov R24,R10
 02DE 8C30              cpi R24,12
 02E0 00F3              brlo L13
 02E2                   .dbline 258
 02E2           ;  {
 02E2           ;  DI_data_pre[i] =DI_data_cur[i];
 02E2           ;  DI_data[i] =DI_data_cur[i];
 02E2           ;  }
 02E2           ;  SEI();
 02E2 7894              sei
 02E4                   .dbline 259
 02E4           ;  watchdog_init();
 02E4 0E940000          xcall _watchdog_init
 02E8                   .dbline 260
 02E8           ;  WDR();
 02E8 A895              wdr
 02EA                   .dbline 261
 02EA           ;  WDR();
 02EA A895              wdr
 02EC 2FC2              xjmp L18
 02EE           L17:
 02EE                   .dbline 264
 02EE           ; 
 02EE           ;   while(1)
 02EE           ;   {
 02EE                   .dbline 266
 02EE           ;  
 02EE           ;    WDR();
 02EE A895              wdr
 02F0                   .dbline 267
 02F0           ;    ID_nu = get_id();                                           //读取拨码开关的值
 02F0 0E940000          xcall _get_id
 02F4 00930700          sts _ID_nu,R16
 02F8                   .dbline 268
 02F8           ;    ID_net = ID_nu;                                             //计算网络ID号
 02F8 202E              mov R2,R16
 02FA 20920600          sts _ID_net,R2
 02FE                   .dbline 269
 02FE           ;    if(tempp!=ID_nu*256)
 02FE 222D              mov R18,R2
 0300 3327              clr R19
 0302 00E0              ldi R16,256
 0304 11E0              ldi R17,1
 0306 0E940000          xcall empy16s
 030A 1801              movw R2,R16
 030C 4424              clr R4
 030E 37FC              sbrc R3,7

⌨️ 快捷键说明

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