📄 at90can128.lis
字号:
008E ; KK1 >>= 1;
008E E694 lsr R14
0090 .dbline 133
0090 ; }
0090 L9:
0090 .dbline 127
0090 A394 inc R10
0092 L11:
0092 .dbline 127
0092 8A2D mov R24,R10
0094 8430 cpi R24,4
0096 B8F3 brlo L8
0098 X1:
0098 .dbline 137
0098 ; //-----------------------------------------------------------------
0098 ; //bit7-->bit0 //bit6-->bit1 //bit5-->bit2 //bit4-->bit3
0098 ; //-----------------------------------------------------------------
0098 ; for (i=0;i<4;i++)
0098 AA24 clr R10
009A 06C0 xjmp L17
009C L14:
009C .dbline 138
009C ; {
009C .dbline 139
009C ; K_Lo <<= 1;
009C 440F lsl R20
009E .dbline 140
009E ; if (KK2 & 0x10)
009E C4FE sbrs R12,4
00A0 01C0 rjmp L18
00A2 X2:
00A2 .dbline 141
00A2 ; K_Lo |= 0x01;
00A2 4160 ori R20,1
00A4 L18:
00A4 .dbline 142
00A4 ; KK2 >>= 1;
00A4 C694 lsr R12
00A6 .dbline 143
00A6 ; }
00A6 L15:
00A6 .dbline 137
00A6 A394 inc R10
00A8 L17:
00A8 .dbline 137
00A8 8A2D mov R24,R10
00AA 8430 cpi R24,4
00AC B8F3 brlo L14
00AE X3:
00AE .dbline 144
00AE ; K = ((K_Hi << 4) | K_Lo);
00AE 862F mov R24,R22
00B0 8F70 andi R24,#0x0F
00B2 8295 swap R24
00B4 A82E mov R10,R24
00B6 A42A or R10,R20
00B8 .dbline 145
00B8 ; return (K);
00B8 0A2D mov R16,R10
00BA .dbline -2
00BA L7:
00BA .dbline 0 ; func end
00BA 0C940000 xjmp pop_xgsetF0FC
00BE .dbsym r K 10 c
00BE .dbsym r K_Lo 20 c
00BE .dbsym r K_Hi 22 c
00BE .dbsym r KK2 12 c
00BE .dbsym r KK1 14 c
00BE .dbsym r i 10 c
00BE .dbsym r num 16 c
00BE .dbend
00BE .dbfunc e DISPLAY_LED _DISPLAY_LED fV
.even
00BE _DISPLAY_LED::
00BE .dbline -1
00BE .dbline 150
00BE ; }
00BE ;
00BE ;
00BE ; void DISPLAY_LED(void)
00BE ; {
00BE .dbline 151
00BE ; if (LED[0])
00BE 20900200 lds R2,_LED
00C2 2220 tst R2
00C4 11F0 breq L21
00C6 X4:
00C6 .dbline 152
00C6 ; LED1_ON();
00C6 4498 cbi 0x8,4
00C8 01C0 xjmp L22
00CA L21:
00CA .dbline 154
00CA ; else
00CA ; LED1_OFF();
00CA 449A sbi 0x8,4
00CC L22:
00CC .dbline 156
00CC ;
00CC ; if (LED[1])
00CC 20900300 lds R2,_LED+1
00D0 2220 tst R2
00D2 11F0 breq L23
00D4 X5:
00D4 .dbline 157
00D4 ; LED2_ON();
00D4 4398 cbi 0x8,3
00D6 01C0 xjmp L24
00D8 L23:
00D8 .dbline 159
00D8 ; else
00D8 ; LED2_OFF();
00D8 439A sbi 0x8,3
00DA L24:
00DA .dbline 161
00DA ;
00DA ; if (LED[2])
00DA 20900400 lds R2,_LED+2
00DE 2220 tst R2
00E0 11F0 breq L26
00E2 X6:
00E2 .dbline 162
00E2 ; LED3_ON();
00E2 4298 cbi 0x8,2
00E4 01C0 xjmp L27
00E6 L26:
00E6 .dbline 164
00E6 ; else
00E6 ; LED3_OFF();
00E6 429A sbi 0x8,2
00E8 L27:
00E8 .dbline 166
00E8 ;
00E8 ; if (LED[3])
00E8 20900500 lds R2,_LED+3
00EC 2220 tst R2
00EE 11F0 breq L29
00F0 X7:
00F0 .dbline 167
00F0 ; LED4_ON();
00F0 4198 cbi 0x8,1
00F2 01C0 xjmp L30
00F4 L29:
00F4 .dbline 169
00F4 ; else
00F4 ; LED4_OFF();
00F4 419A sbi 0x8,1
00F6 L30:
00F6 .dbline 171
00F6 ;
00F6 ; if (LED[4])
00F6 20900600 lds R2,_LED+4
00FA 2220 tst R2
00FC 11F0 breq L32
00FE X8:
00FE .dbline 172
00FE ; LED5_ON();
00FE 4098 cbi 0x8,0
0100 01C0 xjmp L33
0102 L32:
0102 .dbline 174
0102 ; else
0102 ; LED5_OFF();
0102 409A sbi 0x8,0
0104 L33:
0104 .dbline -2
0104 L20:
0104 .dbline 0 ; func end
0104 0895 ret
0106 .dbend
.area vector(rom, abs)
.org 64
0040 0C948300 jmp _TIMER0_COMP_ISR
.area text(rom, con, rel)
0106 .dbfile D:\CANBUS\数据帧\查询\单向通讯\结点1-串口\AT90CAN128.C
0106 .dbfunc e TIMER0_COMP_ISR _TIMER0_COMP_ISR fV
.even
0106 _TIMER0_COMP_ISR::
0106 0A92 st -y,R0
0108 1A92 st -y,R1
010A 2A92 st -y,R2
010C 3A92 st -y,R3
010E 4A92 st -y,R4
0110 5A92 st -y,R5
0112 6A92 st -y,R6
0114 7A92 st -y,R7
0116 8A92 st -y,R8
0118 9A92 st -y,R9
011A 0A93 st -y,R16
011C 1A93 st -y,R17
011E 2A93 st -y,R18
0120 3A93 st -y,R19
0122 8A93 st -y,R24
0124 9A93 st -y,R25
0126 AA93 st -y,R26
0128 BA93 st -y,R27
012A EA93 st -y,R30
012C FA93 st -y,R31
012E 0FB6 in R0,0x3f
0130 0A92 st -y,R0
0132 4A93 st -y,R20
0134 5A93 st -y,R21
0136 .dbline -1
0136 .dbline 180
0136 ; }
0136 ;
0136 ;
0136 ; #pragma interrupt_handler TIMER0_COMP_ISR:iv_TIMER0_COMP
0136 ; void TIMER0_COMP_ISR(void)
0136 ; {
0136 .dbline 181
0136 ; CS++;
0136 80910000 lds R24,_CS
013A 8F5F subi R24,255 ; addi 1
013C 80930000 sts _CS,R24
0140 .dbline 182
0140 ; if (CS > 1)
0140 81E0 ldi R24,1
0142 20900000 lds R2,_CS
0146 8215 cp R24,R2
0148 18F4 brsh L36
014A X9:
014A .dbline 183
014A ; CS = 0;
014A 2224 clr R2
014C 20920000 sts _CS,R2
0150 L36:
0150 .dbline 184
0150 ; switch (CS)
0150 40910000 lds R20,_CS
0154 5527 clr R21
0156 4030 cpi R20,0
0158 4507 cpc R20,R21
015A 29F0 breq L41
015C X10:
015C 4130 cpi R20,1
015E E0E0 ldi R30,0
0160 5E07 cpc R21,R30
0162 21F0 breq L42
0164 X11:
0164 05C0 xjmp L38
0166 L41:
0166 .dbline 187
0166 ; {
0166 ; case 0:
0166 ; CS2_OFF();
0166 469A sbi 0x8,6
0168 .dbline 188
0168 ; CS1_ON();
0168 4798 cbi 0x8,7
016A .dbline 189
016A ; break;
016A 02C0 xjmp L39
016C L42:
016C .dbline 191
016C ; case 1:
016C ; CS1_OFF();
016C 479A sbi 0x8,7
016E .dbline 192
016E ; CS2_ON();
016E 4698 cbi 0x8,6
0170 .dbline 193
0170 ; break;
0170 L38:
0170 L39:
0170 .dbline 195
0170 ; }
0170 ; PORTA = ~ExChange(DISPLAY_CODE(CS));
0170 00910000 lds R16,_CS
0174 0E940000 xcall _DISPLAY_CODE
0178 7EDF xcall _ExChange
017A 202E mov R2,R16
017C 2094 com R2
017E 22B8 out 0x2,R2
0180 .dbline -2
0180 L35:
0180 .dbline 0 ; func end
0180 5991 ld R21,y+
0182 4991 ld R20,y+
0184 0990 ld R0,y+
0186 0FBE out 0x3f,R0
0188 F991 ld R31,y+
018A E991 ld R30,y+
018C B991 ld R27,y+
018E A991 ld R26,y+
0190 9991 ld R25,y+
0192 8991 ld R24,y+
0194 3991 ld R19,y+
0196 2991 ld R18,y+
0198 1991 ld R17,y+
019A 0991 ld R16,y+
019C 9990 ld R9,y+
019E 8990 ld R8,y+
01A0 7990 ld R7,y+
01A2 6990 ld R6,y+
01A4 5990 ld R5,y+
01A6 4990 ld R4,y+
01A8 3990 ld R3,y+
01AA 2990 ld R2,y+
01AC 1990 ld R1,y+
01AE 0990 ld R0,y+
01B0 1895 reti
01B2 .dbend
.area vector(rom, abs)
.org 36
0024 0C94D900 jmp _TIMER2_COMP_ISR
.area text(rom, con, rel)
01B2 .dbfile D:\CANBUS\数据帧\查询\单向通讯\结点1-串口\AT90CAN128.C
01B2 .dbfunc e TIMER2_COMP_ISR _TIMER2_COMP_ISR fV
.even
01B2 _TIMER2_COMP_ISR::
01B2 2A92 st -y,R2
01B4 8A93 st -y,R24
01B6 9A93 st -y,R25
01B8 2FB6 in R2,0x3f
01BA 2A92 st -y,R2
01BC .dbline -1
01BC .dbline 201
01BC ; }
01BC ;
01BC ;
01BC ; #pragma interrupt_handler TIMER2_COMP_ISR:iv_TIMER2_COMP
01BC ; void TIMER2_COMP_ISR(void)
01BC ; {
01BC .dbline 202
01BC ; if (!send_mark)
01BC 20900700 lds R2,_send_mark
01C0 2220 tst R2
01C2 69F4 brne L44
01C4 X12:
01C4 .dbline 203
01C4 ; {
01C4 .dbline 204
01C4 ; send_time++;
01C4 80910900 lds R24,_send_time
01C8 8F5F subi R24,255 ; addi 1
01CA 80930900 sts _send_time,R24
01CE .dbline 205
01CE ; if (send_time >= 100)
01CE 8436 cpi R24,100
01D0 30F0 brlo L46
01D2 X13:
01D2 .dbline 206
01D2 ; {
01D2 .dbline 207
01D2 ; send_mark = TRUE;
01D2 81E0 ldi R24,1
01D4 80930700 sts _send_mark,R24
01D8 .dbline 208
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -