📄 main.lis
字号:
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 + -