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

📄 can.lis

📁 工业开关量检测模块的原代码,带断线检测功能
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 01D6 80910000          lds R24,_Pass_Flag
 01DA 8F30              cpi R24,15
 01DC 11F0              breq L29
 01DE                   .dbline 102
 01DE           ;           RESET;
 01DE 0C940000          jmp 0x00000
 01E2           L29:
 01E2                   .dbline 104
 01E2           ;               
 01E2           ;        WDR();
 01E2 A895              wdr
 01E4                   .dbline 105
 01E4           ;       CANBT1 = CanBaud[2][0];         
 01E4 E0E0              ldi R30,<_CanBaud+6
 01E6 F0E0              ldi R31,>_CanBaud+6
 01E8 E491              lpm R30,Z
 01EA E093E200          sts 226,R30
 01EE                   .dbline 106
 01EE           ;     CANBT2 = CanBaud[2][1];
 01EE E0E0              ldi R30,<_CanBaud+6+1
 01F0 F0E0              ldi R31,>_CanBaud+6+1
 01F2 E491              lpm R30,Z
 01F4 E093E300          sts 227,R30
 01F8                   .dbline 107
 01F8           ;     CANBT3 = CanBaud[2][2];
 01F8 E0E0              ldi R30,<_CanBaud+6+2
 01FA F0E0              ldi R31,>_CanBaud+6+2
 01FC E491              lpm R30,Z
 01FE E093E400          sts 228,R30
 0202                   .dbline 112
 0202           ;       
 0202           ;     //configure MObi
 0202           ;       /******************************************************************/
 0202           ;       
 0202           ;        Pass_Flag = 0x00;
 0202 2224              clr R2
 0204 20920000          sts _Pass_Flag,R2
 0208                   .dbline 113
 0208           ;    for (i=0; i<3; i++)
 0208 4427              clr R20
 020A 5FC0              xjmp L39
 020C           L36:
 020C                   .dbline 114
 020C                   .dbline 115
 020C 842F              mov R24,R20
 020E 8F70              andi R24,#0x0F
 0210 8295              swap R24
 0212 8093ED00          sts 237,R24
 0216                   .dbline 116
 0216 84E0              ldi R24,4
 0218 849F              mul R24,R20
 021A F001              movw R30,R0
 021C 80E0              ldi R24,<_CANIDT
 021E 90E0              ldi R25,>_CANIDT
 0220 E80F              add R30,R24
 0222 F91F              adc R31,R25
 0224 2080              ldd R2,z+0
 0226 2092F300          sts 243,R2
 022A                   .dbline 117
 022A 84E0              ldi R24,4
 022C 849F              mul R24,R20
 022E F001              movw R30,R0
 0230 80E0              ldi R24,<_CANIDT+1
 0232 90E0              ldi R25,>_CANIDT+1
 0234 E80F              add R30,R24
 0236 F91F              adc R31,R25
 0238 2080              ldd R2,z+0
 023A 2092F200          sts 242,R2
 023E                   .dbline 118
 023E 84E0              ldi R24,4
 0240 849F              mul R24,R20
 0242 F001              movw R30,R0
 0244 80E0              ldi R24,<_CANIDT+2
 0246 90E0              ldi R25,>_CANIDT+2
 0248 E80F              add R30,R24
 024A F91F              adc R31,R25
 024C 2080              ldd R2,z+0
 024E 2092F100          sts 241,R2
 0252                   .dbline 119
 0252 84E0              ldi R24,4
 0254 849F              mul R24,R20
 0256 F001              movw R30,R0
 0258 80E0              ldi R24,<_CANIDT+3
 025A 90E0              ldi R25,>_CANIDT+3
 025C E80F              add R30,R24
 025E F91F              adc R31,R25
 0260 2080              ldd R2,z+0
 0262 2092F000          sts 240,R2
 0266                   .dbline 120
 0266 84E0              ldi R24,4
 0268 849F              mul R24,R20
 026A F001              movw R30,R0
 026C 80E0              ldi R24,<_CANIDM
 026E 90E0              ldi R25,>_CANIDM
 0270 E80F              add R30,R24
 0272 F91F              adc R31,R25
 0274 2080              ldd R2,z+0
 0276 2092F700          sts 247,R2
 027A                   .dbline 121
 027A 84E0              ldi R24,4
 027C 849F              mul R24,R20
 027E F001              movw R30,R0
 0280 80E0              ldi R24,<_CANIDM+1
 0282 90E0              ldi R25,>_CANIDM+1
 0284 E80F              add R30,R24
 0286 F91F              adc R31,R25
 0288 2080              ldd R2,z+0
 028A 2092F600          sts 246,R2
 028E                   .dbline 122
 028E 84E0              ldi R24,4
 0290 849F              mul R24,R20
 0292 F001              movw R30,R0
 0294 80E0              ldi R24,<_CANIDM+2
 0296 90E0              ldi R25,>_CANIDM+2
 0298 E80F              add R30,R24
 029A F91F              adc R31,R25
 029C 2080              ldd R2,z+0
 029E 2092F500          sts 245,R2
 02A2                   .dbline 123
 02A2 84E0              ldi R24,4
 02A4 849F              mul R24,R20
 02A6 F001              movw R30,R0
 02A8 80E0              ldi R24,<_CANIDM+3
 02AA 90E0              ldi R25,>_CANIDM+3
 02AC E80F              add R30,R24
 02AE F91F              adc R31,R25
 02B0 2080              ldd R2,z+0
 02B2 2092F400          sts 244,R2
 02B6                   .dbline 125
 02B6 88E1              ldi R24,24
 02B8 8093EF00          sts 239,R24
 02BC                   .dbline 126
 02BC 0000              nop
 02BE                   .dbline 127
 02BE 80910000          lds R24,_Pass_Flag
 02C2 8F5F              subi R24,255    ; addi 1
 02C4 80930000          sts _Pass_Flag,R24
 02C8                   .dbline 128
 02C8           L37:
 02C8                   .dbline 113
 02C8 4395              inc R20
 02CA           L39:
 02CA                   .dbline 113
 02CA 4330              cpi R20,3
 02CC 08F4              brsh X2
 02CE 9ECF              xjmp L36
 02D0           X2:
 02D0                   .dbline 130
 02D0           ;    {
 02D0           ;        CANPAGE = (i<<4);                   //MOb 0,1,2设置为发送模式
 02D0           ;      CANIDT1 = CANIDT[i][0];                  //初始化 ID
 02D0           ;      CANIDT2 = CANIDT[i][1];
 02D0           ;      CANIDT3 = CANIDT[i][2];
 02D0           ;      CANIDT4 = CANIDT[i][3];
 02D0           ;      CANIDM1 = CANIDM[i][0];                  //初始化 mask
 02D0           ;      CANIDM2 = CANIDM[i][1];
 02D0           ;      CANIDM3 = CANIDM[i][2];
 02D0           ;      CANIDM4 = CANIDM[i][3];               //0 = ignore bit
 02D0           ;     //CANIDM4 = (1<<IDEMSK);                          //identifier extention mask
 02D0           ;      CANCDMOB = (1<<IDE)|(8<<DLC0);     //reception, ext. ID,rev2.0B
 02D0           ;        NOP();
 02D0           ;        Pass_Flag = Pass_Flag + 1;             
 02D0           ;       }
 02D0           ;        
 02D0           ;         if(Pass_Flag!=0x03)
 02D0 80910000          lds R24,_Pass_Flag
 02D4 8330              cpi R24,3
 02D6 11F0              breq L46
 02D8                   .dbline 131
 02D8           ;           RESET;
 02D8 0C940000          jmp 0x00000
 02DC           L46:
 02DC                   .dbline 133
 02DC           ;               
 02DC           ;        WDR();
 02DC A895              wdr
 02DE                   .dbline 135
 02DE           ;        
 02DE           ;         Pass_Flag = 0x00;
 02DE 2224              clr R2
 02E0 20920000          sts _Pass_Flag,R2
 02E4                   .dbline 136
 02E4           ;       for(i=3;i<6;i++)                       
 02E4 43E0              ldi R20,3
 02E6 5FC0              xjmp L51
 02E8           L48:
 02E8                   .dbline 137
 02E8                   .dbline 138
 02E8 842F              mov R24,R20
 02EA 8F70              andi R24,#0x0F
 02EC 8295              swap R24
 02EE 8093ED00          sts 237,R24
 02F2                   .dbline 139
 02F2 84E0              ldi R24,4
 02F4 849F              mul R24,R20
 02F6 F001              movw R30,R0
 02F8 80E0              ldi R24,<_CANIDT
 02FA 90E0              ldi R25,>_CANIDT
 02FC E80F              add R30,R24
 02FE F91F              adc R31,R25
 0300 2080              ldd R2,z+0
 0302 2092F300          sts 243,R2
 0306                   .dbline 140
 0306 84E0              ldi R24,4
 0308 849F              mul R24,R20
 030A F001              movw R30,R0
 030C 80E0              ldi R24,<_CANIDT+1
 030E 90E0              ldi R25,>_CANIDT+1
 0310 E80F              add R30,R24
 0312 F91F              adc R31,R25
 0314 2080              ldd R2,z+0
 0316 2092F200          sts 242,R2
 031A                   .dbline 141
 031A 84E0              ldi R24,4
 031C 849F              mul R24,R20
 031E F001              movw R30,R0
 0320 80E0              ldi R24,<_CANIDT+2
 0322 90E0              ldi R25,>_CANIDT+2
 0324 E80F              add R30,R24
 0326 F91F              adc R31,R25
 0328 2080              ldd R2,z+0
 032A 2092F100          sts 241,R2
 032E                   .dbline 142
 032E 84E0              ldi R24,4
 0330 849F              mul R24,R20
 0332 F001              movw R30,R0
 0334 80E0              ldi R24,<_CANIDT+3
 0336 90E0              ldi R25,>_CANIDT+3
 0338 E80F              add R30,R24
 033A F91F              adc R31,R25
 033C 2080              ldd R2,z+0
 033E 2092F000          sts 240,R2
 0342                   .dbline 143
 0342 84E0              ldi R24,4
 0344 849F              mul R24,R20
 0346 F001              movw R30,R0
 0348 80E0              ldi R24,<_CANIDM
 034A 90E0              ldi R25,>_CANIDM
 034C E80F              add R30,R24
 034E F91F              adc R31,R25
 0350 2080              ldd R2,z+0
 0352 2092F700          sts 247,R2
 0356                   .dbline 144
 0356 84E0              ldi R24,4
 0358 849F              mul R24,R20
 035A F001              movw R30,R0
 035C 80E0              ldi R24,<_CANIDM+1
 035E 90E0              ldi R25,>_CANIDM+1
 0360 E80F              add R30,R24
 0362 F91F              adc R31,R25
 0364 2080              ldd R2,z+0
 0366 2092F600          sts 246,R2
 036A                   .dbline 145
 036A 84E0              ldi R24,4
 036C 849F              mul R24,R20
 036E F001              movw R30,R0
 0370 80E0              ldi R24,<_CANIDM+2
 0372 90E0              ldi R25,>_CANIDM+2
 0374 E80F              add R30,R24
 0376 F91F              adc R31,R25
 0378 2080              ldd R2,z+0
 037A 2092F500          sts 245,R2
 037E                   .dbline 146
 037E 84E0              ldi R24,4
 0380 849F              mul R24,R20
 0382 F001              movw R30,R0
 0384 80E0              ldi R24,<_CANIDM+3
 0386 90E0              ldi R25,>_CANIDM+3
 0388 E80F              add R30,R24
 038A F91F              adc R31,R25
 038C 2080              ldd R2,z+0
 038E 2092F400          sts 244,R2
 0392                   .dbline 147
 0392 88E9              ldi R24,152
 0394 8093EF00          sts 239,R24
 0398                   .dbline 148
 0398 0000              nop
 039A                   .dbline 149
 039A 80910000          lds R24,_Pass_Flag
 039E 8F5F              subi R24,255    ; addi 1
 03A0 80930000          sts _Pass_Flag,R24
 03A4                   .dbline 150
 03A4           L49:
 03A4                   .dbline 136
 03A4 4395              inc R20
 03A6           L51:
 03A6                   .dbline 136
 03A6 4630              cpi R20,6
 03A8 08F4              brsh X3
 03AA 9ECF              xjmp L48
 03AC           X3:
 03AC                   .dbline 151
 03AC           ;       {
 03AC           ;        CANPAGE = (i<<4);                   //MOb3,4,5设置为接受模式
 03AC           ;      CANIDT1 = CANIDT[i][0];                  //初始化 ID
 03AC           ;      CANIDT2 = CANIDT[i][1];
 03AC           ;      CANIDT3 = CANIDT[i][2];
 03AC           ;      CANIDT4 = CANIDT[i][3];
 03AC           ;      CANIDM1 = CANIDM[i][0];                  //初始化 mask
 03AC           ;      CANIDM2 = CANIDM[i][1];
 03AC           ;      CANIDM3 = CANIDM[i][2];
 03AC           ;      CANIDM4 = CANIDM[i][3];               //0 = ignore bit
 03AC           ;      CANCDMOB = (2<<CONMOB0)|(1<<IDE)|(8<<DLC0);     //reception, ext. ID,rev2.0B
 03AC           ;        NOP();
 03AC           ;         Pass_Flag = Pass_Flag + 1;            
 03AC           ;       }
 03AC           ;          if(Pass_Flag!=0x03)
 03AC 80910000          lds R24,_Pass_Flag
 03B0 8330              cpi R24,3
 03B2 11F0              breq L58
 03B4                   .dbline 152
 03B4           ;           RESET;

⌨️ 快捷键说明

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