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

📄 at90can128.lis

📁 不可多得的atmel公司canbus通讯程序(at90can128)
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 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 + -