📄 at90can128.lis
字号:
01D8 ; send_time = 0;
01D8 2224 clr R2
01DA 20920900 sts _send_time,R2
01DE .dbline 209
01DE ; }
01DE L46:
01DE .dbline 210
01DE ; }
01DE L44:
01DE .dbline 211
01DE ; if (!display_mark)
01DE 20900800 lds R2,_display_mark
01E2 2220 tst R2
01E4 69F4 brne L48
01E6 X14:
01E6 .dbline 212
01E6 ; {
01E6 .dbline 213
01E6 ; display_time++;
01E6 80910A00 lds R24,_display_time
01EA 8F5F subi R24,255 ; addi 1
01EC 80930A00 sts _display_time,R24
01F0 .dbline 214
01F0 ; if (display_time >= 25)
01F0 8931 cpi R24,25
01F2 30F0 brlo L50
01F4 X15:
01F4 .dbline 215
01F4 ; {
01F4 .dbline 216
01F4 ; display_time = 0;
01F4 2224 clr R2
01F6 20920A00 sts _display_time,R2
01FA .dbline 217
01FA ; display_mark = TRUE;
01FA 81E0 ldi R24,1
01FC 80930800 sts _display_mark,R24
0200 .dbline 218
0200 ; }
0200 L50:
0200 .dbline 219
0200 ; }
0200 L48:
0200 .dbline -2
0200 L43:
0200 .dbline 0 ; func end
0200 2990 ld R2,y+
0202 2FBE out 0x3f,R2
0204 9991 ld R25,y+
0206 8991 ld R24,y+
0208 2990 ld R2,y+
020A 1895 reti
020C .dbend
020C .dbfunc e CHA_Init _CHA_Init fV
.even
020C _CHA_Init::
020C .dbline -1
020C .dbline 224
020C ; }
020C ;
020C ;
020C ; void CHA_Init(void)
020C ; {
020C .dbline 225
020C ; CHA++;
020C 80910100 lds R24,_CHA
0210 8F5F subi R24,255 ; addi 1
0212 80930100 sts _CHA,R24
0216 .dbline 226
0216 ; if (CHA >= 100)
0216 80910100 lds R24,_CHA
021A 8436 cpi R24,100
021C 18F0 brlo L53
021E X16:
021E .dbline 227
021E ; CHA = 0;
021E 2224 clr R2
0220 20920100 sts _CHA,R2
0224 L53:
0224 .dbline -2
0224 L52:
0224 .dbline 0 ; func end
0224 0895 ret
0226 .dbend
0226 .dbfunc e main _main fV
0226 ; len -> R22
0226 ; i -> R20
.even
0226 _main::
0226 .dbline -1
0226 .dbline 231
0226 ; }
0226 ;
0226 ; void main(void)
0226 ; {
0226 .dbline 234
0226 ; uint8 i,len;
0226 ;
0226 ; CLI();
0226 F894 cli
0228 .dbline 235
0228 ; PORT_Init();
0228 EBDE xcall _PORT_Init
022A .dbline 236
022A ; TIMER0_Init();
022A 02DF xcall _TIMER0_Init
022C .dbline 237
022C ; TIMER2_Init();
022C 0FDF xcall _TIMER2_Init
022E .dbline 238
022E ; USART1_Init();
022E 0E940000 xcall _USART1_Init
0232 .dbline 239
0232 ; TJA1040_DISABLE();
0232 5C9A sbi 0xb,4
0234 .dbline 240
0234 ; NOP();
0234 0000 nop
0236 .dbline 241
0236 ; NOP();
0236 0000 nop
0238 .dbline 242
0238 ; TJA1040_ENABLE();
0238 5C98 cbi 0xb,4
023A .dbline 243
023A ; NOP();
023A 0000 nop
023C .dbline 244
023C ; NOP();
023C 0000 nop
023E .dbline 245
023E ; CAN_Init();
023E 0E940000 xcall _CAN_Init
0242 .dbline 246
0242 ; Watchdog_Init();
0242 14DF xcall _Watchdog_Init
0244 .dbline 247
0244 ; SEI();
0244 7894 sei
0246 52C0 xjmp L57
0248 L56:
0248 .dbline 284
0248 ; /*
0248 ; 00000000: 02 41 00 02 02 00 00 00 00 00 00 00 00 00 00 00 .A..............
0248 ; 00000010: 02 42 00 03 03 03 00 00 00 00 00 00 00 00 00 00 .B..............
0248 ; 00000020: 02 43 00 04 04 04 04 00 00 00 00 00 00 00 00 00 .C..............
0248 ; 00000030: 02 44 00 05 05 05 05 05 00 00 00 00 00 00 00 00 .D..............
0248 ; 00000040: 02 45 00 06 06 06 06 06 06 00 00 00 00 00 00 00 .E..............
0248 ; 00000050: 02 46 00 07 07 07 07 07 07 07 00 00 00 00 00 00 .F..............
0248 ; 00000060: 02 47 00 08 08 08 08 08 08 08 08 00 00 00 00 00 .G..............
0248 ; 00000070: 02 48 00 01 00 00 00 00 00 00 00 00 00 00 00 00 .H..............
0248 ; 00000080: 02 41 00 02 02 00 00 00 00 00 00 00 00 00 00 00 .A..............
0248 ; 00000090: 02 42 00 03 03 03 00 00 00 00 00 00 00 00 00 00 .B..............
0248 ; 000000A0: 02 43 00 04 04 04 04 00 00 00 00 00 00 00 00 00 .C..............
0248 ; 000000B0: 02 44 00 05 05 05 05 05 00 00 00 00 00 00 00 00 .D..............
0248 ; 000000C0: 02 45 00 06 06 06 06 06 06 00 00 00 00 00 00 00 .E..............
0248 ; 000000D0: 02 46 00 07 07 07 07 07 07 07 00 00 00 00 00 00 .F..............
0248 ; 000000E0: 02 47 00 08 08 08 08 08 08 08 08 00 00 00 00 00 .G..............
0248 ; 000000F0: 02 48 00 01 00 00 00 00 00 00 00 00 00 00 00 00 .H..............
0248 ; 00000100: 02 41 00 02 02 00 00 00 00 00 00 00 00 00 00 00 .A..............
0248 ; 00000110: 02 42 00 03 03 03 00 00 00 00 00 00 00 00 00 00 .B..............
0248 ; 00000120: 02 43 00 04 04 04 04 00 00 00 00 00 00 00 00 00 .C..............
0248 ; 00000130: 02 44 00 05 05 05 05 05 00 00 00 00 00 00 00 00 .D..............
0248 ; 00000140: 02 45 00 06 06 06 06 06 06 00 00 00 00 00 00 00 .E..............
0248 ; 00000150: 02 46 00 07 07 07 07 07 07 07 00 00 00 00 00 00 .F..............
0248 ; 00000160: 02 47 00 08 08 08 08 08 08 08 08 00 00 00 00 00 .G..............
0248 ; 00000170: 02 48 00 01 00 00 00 00 00 00 00 00 00 00 00 00 .H..............
0248 ; 00000180: 02 41 00 02 02 00 00 00 00 00 00 00 00 00 00 00 .A..............
0248 ; 00000190: 02 42 00 03 03 03 00 00 00 00 00 00 00 00 00 00 .B..............
0248 ; 000001A0: 02 43 00 04 04 04 04 00 00 00 00 00 00 00 00 00 .C..............
0248 ; 000001B0: 02 44 00 05 05 05 05 05 00 00 00 00 00 00 00 00 .D..............
0248 ; 000001C0: 02 45 00 06 06 06 06 06 06 00 00 00 00 00 00 00 .E..............
0248 ; 000001D0: 02 46 00 07 07 07 07 07 07 07 00 00 00 00 00 00 .F..............
0248 ; 000001E0: 02 47 00 08 08 08 08 08 08 08 08 00 00 00 00 00 .G..............
0248 ; 000001F0: 02 48 00 01 00 00 00 00 00 00 00 00 00 00 00 00 .H..............
0248 ; 00000200: 02 41 00 02 02 00 00 00 00 00 00 00 00 00 00 00 .A..............
0248 ; */
0248 ; while (1)
0248 ; {
0248 .dbline 285
0248 ; CANPAGE = 0x00;
0248 2224 clr R2
024A 2092ED00 sts 237,R2
024E .dbline 286
024E ; if (CANSTMOB & (1 << RXOK))
024E 2090EE00 lds R2,238
0252 25FE sbrs R2,5
0254 3DC0 rjmp L59
0256 X17:
0256 .dbline 287
0256 ; {
0256 .dbline 288
0256 ; CANSTMOB &= ~(1 << RXOK);
0256 8091EE00 lds R24,238
025A 8F7D andi R24,223
025C 8093EE00 sts 238,R24
0260 .dbline 289
0260 ; for (i = 0 ; i < 16 ; i++)
0260 4427 clr R20
0262 09C0 xjmp L64
0264 L61:
0264 .dbline 290
0264 ; rec_Buf[i] = 0x00;
0264 80E0 ldi R24,<_rec_Buf
0266 90E0 ldi R25,>_rec_Buf
0268 E42F mov R30,R20
026A FF27 clr R31
026C E80F add R30,R24
026E F91F adc R31,R25
0270 2224 clr R2
0272 2082 std z+0,R2
0274 L62:
0274 .dbline 289
0274 4395 inc R20
0276 L64:
0276 .dbline 289
0276 4031 cpi R20,16
0278 A8F3 brlo L61
027A X18:
027A .dbline 291
027A ; rec_Buf[0] = CANIDT1;
027A 2090F300 lds R2,243
027E 20920000 sts _rec_Buf,R2
0282 .dbline 292
0282 ; rec_Buf[1] = CANIDT2;
0282 2090F200 lds R2,242
0286 20920100 sts _rec_Buf+1,R2
028A .dbline 293
028A ; rec_Buf[2] = CANIDT4;
028A 2090F000 lds R2,240
028E 20920200 sts _rec_Buf+2,R2
0292 .dbline 294
0292 ; if (rec_Buf[2] & 0x02)
0292 21FE sbrs R2,1
0294 04C0 rjmp L67
0296 X19:
0296 .dbline 295
0296 ; rec_Buf[2] = 1; // remote frame
0296 81E0 ldi R24,1
0298 80930200 sts _rec_Buf+2,R24
029C 03C0 xjmp L68
029E L67:
029E .dbline 297
029E ; else
029E ; rec_Buf[2] = 0; // data frame
029E 2224 clr R2
02A0 20920200 sts _rec_Buf+2,R2
02A4 L68:
02A4 .dbline 298
02A4 ; len = CANCDMOB & 0x0F;
02A4 6091EF00 lds R22,239
02A8 6F70 andi R22,15
02AA .dbline 299
02AA ; for (i = 0 ; i < len ; i++)
02AA 4427 clr R20
02AC 0AC0 xjmp L75
02AE L72:
02AE .dbline 300
02AE ; rec_Buf[3+i] = CANMSG;
02AE 80E0 ldi R24,<_rec_Buf+3
02B0 90E0 ldi R25,>_rec_Buf+3
02B2 E42F mov R30,R20
02B4 FF27 clr R31
02B6 E80F add R30,R24
02B8 F91F adc R31,R25
02BA 2090FA00 lds R2,250
02BE 2082 std z+0,R2
02C0 L73:
02C0 .dbline 299
02C0 4395 inc R20
02C2 L75:
02C2 .dbline 299
02C2 4617 cp R20,R22
02C4 A0F3 brlo L72
02C6 X20:
02C6 .dbline 301
02C6 ; USART1_Begin_Send();
02C6 0E940000 xcall _USART1_Begin_Send
02CA .dbline 302
02CA ; CANCDMOB = 0x88;
02CA 88E8 ldi R24,136
02CC 8093EF00 sts 239,R24
02D0 .dbline 303
02D0 ; }
02D0 L59:
02D0 .dbline 304
02D0 ; CHA = CANGIT & 0x7F;
02D0 8091DA00 lds R24,218
02D4 8F77 andi R24,127
02D6 80930100 sts _CHA,R24
02DA .dbline 307
02DA ; // DISPLAY_LED();
02DA ; // if (display_mark)
02DA ; {
02DA .dbline 308
02DA ; display_mark = FALSE;
02DA 2224 clr R2
02DC 20920800 sts _display_mark,R2
02E0 .dbline 309
02E0 ; DISPLAY_Init(CHA);
02E0 00910100 lds R16,_CHA
02E4 1127 clr R17
02E6 0E940000 xcall _DISPLAY_Init
02EA .dbline 310
02EA ; }
02EA .dbline 311
02EA ; WDR();
02EA A895 wdr
02EC .dbline 312
02EC ; }
02EC L57:
02EC .dbline 283
02EC ADCF xjmp L56
02EE X21:
02EE .dbline -2
02EE L55:
02EE .dbline 0 ; func end
02EE 0895 ret
02F0 .dbsym r len 22 c
02F0 .dbsym r i 20 c
02F0 .dbend
02F0 ; }
02F0 ;
02F0 ;
02F0 ; //熔丝位配置(打勾表示0,不打勾表示1)
02F0 ; // 1 0
02F0 ; //WDTON WDT关闭 WDT打开
02F0 ; //CKDIV8 禁止系统时钟8分频 允许系统时钟8分频
02F0 ; //EESAVE 全片擦除时擦除EERROM数据 全片擦除时保留EERROM数据
02F0 ; //DWEN 禁止单线调试 使能单线调试
02F0 ;
02F0 ; //BOD检测电平选择:
02F0 ; //BODLEVEL2..0 BOD门槛电压
02F0 ; //111 BOD禁止
02F0 ; //110 1.8V
02F0 ; //101 2.7V
02F0 ; //100 4.3V (选择4.3V)
02F0 ; //其余 保留
02F0 ;
02F0 ; //时钟源选择:
02F0 ; //系统时钟源 CKSEL3..0
02F0 ; //低功耗晶振(小振幅) 1111-1000
02F0 ; //大振幅晶振 0111-0110
02F0 ; //低频晶振 0101-0100
02F0 ; //128kHz内部RC振荡 0011
02F0 ; //可校准内部RC振荡 0010
02F0 ; //外部时钟 0000
02F0 ; //保留选项 0001
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -