📄 at90can128.lis
字号:
007A E02E mov R14,R16
007C .dbline 120
007C ; uint8 KK2 = num;
007C C02E mov R12,R16
007E .dbline 121
007E ; uint8 K_Hi = 0;
007E 6627 clr R22
0080 .dbline 122
0080 ; uint8 K_Lo = 0;
0080 4427 clr R20
0082 .dbline 128
0082 ; uint8 K;
0082 ;
0082 ; //-----------------------------------------------------------------
0082 ; //bit0-->bit7 //bit1-->bit6 //bit2-->bit5 //bit3-->bit4
0082 ; //-----------------------------------------------------------------
0082 ; for (i=0;i<4;i++)
0082 AA24 clr R10
0084 06C0 xjmp L11
0086 L8:
0086 .dbline 129
0086 ; {
0086 .dbline 130
0086 ; K_Hi <<= 1;
0086 660F lsl R22
0088 .dbline 131
0088 ; if (KK1 & 0x01)
0088 E0FE sbrs R14,0
008A 01C0 rjmp L12
008C X0:
008C .dbline 132
008C ; K_Hi |= 0x01;
008C 6160 ori R22,1
008E L12:
008E .dbline 133
008E ; KK1 >>= 1;
008E E694 lsr R14
0090 .dbline 134
0090 ; }
0090 L9:
0090 .dbline 128
0090 A394 inc R10
0092 L11:
0092 .dbline 128
0092 8A2D mov R24,R10
0094 8430 cpi R24,4
0096 B8F3 brlo L8
0098 X1:
0098 .dbline 138
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 139
009C ; {
009C .dbline 140
009C ; K_Lo <<= 1;
009C 440F lsl R20
009E .dbline 141
009E ; if (KK2 & 0x10)
009E C4FE sbrs R12,4
00A0 01C0 rjmp L18
00A2 X2:
00A2 .dbline 142
00A2 ; K_Lo |= 0x01;
00A2 4160 ori R20,1
00A4 L18:
00A4 .dbline 143
00A4 ; KK2 >>= 1;
00A4 C694 lsr R12
00A6 .dbline 144
00A6 ; }
00A6 L15:
00A6 .dbline 138
00A6 A394 inc R10
00A8 L17:
00A8 .dbline 138
00A8 8A2D mov R24,R10
00AA 8430 cpi R24,4
00AC B8F3 brlo L14
00AE X3:
00AE .dbline 145
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 146
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 151
00BE ; }
00BE ;
00BE ;
00BE ; void DISPLAY_LED(void)
00BE ; {
00BE .dbline 152
00BE ; if (LED[0])
00BE 20900300 lds R2,_LED
00C2 2220 tst R2
00C4 11F0 breq L21
00C6 X4:
00C6 .dbline 153
00C6 ; LED1_ON();
00C6 4498 cbi 0x8,4
00C8 01C0 xjmp L22
00CA L21:
00CA .dbline 155
00CA ; else
00CA ; LED1_OFF();
00CA 449A sbi 0x8,4
00CC L22:
00CC .dbline 157
00CC ;
00CC ; if (LED[1])
00CC 20900400 lds R2,_LED+1
00D0 2220 tst R2
00D2 11F0 breq L23
00D4 X5:
00D4 .dbline 158
00D4 ; LED2_ON();
00D4 4398 cbi 0x8,3
00D6 01C0 xjmp L24
00D8 L23:
00D8 .dbline 160
00D8 ; else
00D8 ; LED2_OFF();
00D8 439A sbi 0x8,3
00DA L24:
00DA .dbline 162
00DA ;
00DA ; if (LED[2])
00DA 20900500 lds R2,_LED+2
00DE 2220 tst R2
00E0 11F0 breq L26
00E2 X6:
00E2 .dbline 163
00E2 ; LED3_ON();
00E2 4298 cbi 0x8,2
00E4 01C0 xjmp L27
00E6 L26:
00E6 .dbline 165
00E6 ; else
00E6 ; LED3_OFF();
00E6 429A sbi 0x8,2
00E8 L27:
00E8 .dbline 167
00E8 ;
00E8 ; if (LED[3])
00E8 20900600 lds R2,_LED+3
00EC 2220 tst R2
00EE 11F0 breq L29
00F0 X7:
00F0 .dbline 168
00F0 ; LED4_ON();
00F0 4198 cbi 0x8,1
00F2 01C0 xjmp L30
00F4 L29:
00F4 .dbline 170
00F4 ; else
00F4 ; LED4_OFF();
00F4 419A sbi 0x8,1
00F6 L30:
00F6 .dbline 172
00F6 ;
00F6 ; if (LED[4])
00F6 20900700 lds R2,_LED+4
00FA 2220 tst R2
00FC 11F0 breq L32
00FE X8:
00FE .dbline 173
00FE ; LED5_ON();
00FE 4098 cbi 0x8,0
0100 01C0 xjmp L33
0102 L32:
0102 .dbline 175
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\数据帧\查询\单向通讯\结点2\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 181
0136 ; }
0136 ;
0136 ;
0136 ; #pragma interrupt_handler TIMER0_COMP_ISR:iv_TIMER0_COMP
0136 ; void TIMER0_COMP_ISR(void)
0136 ; {
0136 .dbline 182
0136 ; CS++;
0136 80910000 lds R24,_CS
013A 8F5F subi R24,255 ; addi 1
013C 80930000 sts _CS,R24
0140 .dbline 183
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 184
014A ; CS = 0;
014A 2224 clr R2
014C 20920000 sts _CS,R2
0150 L36:
0150 .dbline 185
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 188
0166 ; {
0166 ; case 0:
0166 ; CS2_OFF();
0166 469A sbi 0x8,6
0168 .dbline 189
0168 ; CS1_ON();
0168 4798 cbi 0x8,7
016A .dbline 190
016A ; break;
016A 02C0 xjmp L39
016C L42:
016C .dbline 192
016C ; case 1:
016C ; CS1_OFF();
016C 479A sbi 0x8,7
016E .dbline 193
016E ; CS2_ON();
016E 4698 cbi 0x8,6
0170 .dbline 194
0170 ; break;
0170 L38:
0170 L39:
0170 .dbline 196
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+
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -