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

📄 结点2.lst

📁 不可多得的atmel公司canbus通讯程序(at90can128)
💻 LST
📖 第 1 页 / 共 3 页
字号:
     12F C005      RJMP	0x0135
(0186) 	{
(0187) 		case 0:
(0188) 			CS2_OFF();
     130 9A46      SBI	0x08,6
(0189) 		 	CS1_ON();
     131 9847      CBI	0x08,7
(0190) 		    break;
     132 C002      RJMP	0x0135
(0191) 		case 1:
(0192) 		   	CS1_OFF();
     133 9A47      SBI	0x08,7
(0193) 		 	CS2_ON();
     134 9846      CBI	0x08,6
(0194) 			break;
(0195) 	}  		   
(0196)  	PORTA = ~ExChange(DISPLAY_CODE(CS));
     135 9100 0100 LDS	R16,CS
     137 940E 030A CALL	_DISPLAY_CODE
     139 DF7E      RCALL	_ExChange
     13A 2E20      MOV	R2,R16
     13B 9420      COM	R2
     13C B822      OUT	0x02,R2
     13D 9159      LD	R21,Y+
     13E 9149      LD	R20,Y+
     13F 9009      LD	R0,Y+
     140 BE0F      OUT	0x3F,R0
     141 91F9      LD	R31,Y+
     142 91E9      LD	R30,Y+
     143 91B9      LD	R27,Y+
     144 91A9      LD	R26,Y+
     145 9199      LD	R25,Y+
     146 9189      LD	R24,Y+
     147 9139      LD	R19,Y+
     148 9129      LD	R18,Y+
     149 9119      LD	R17,Y+
     14A 9109      LD	R16,Y+
     14B 9099      LD	R9,Y+
     14C 9089      LD	R8,Y+
     14D 9079      LD	R7,Y+
     14E 9069      LD	R6,Y+
     14F 9059      LD	R5,Y+
     150 9049      LD	R4,Y+
     151 9039      LD	R3,Y+
     152 9029      LD	R2,Y+
     153 9019      LD	R1,Y+
     154 9009      LD	R0,Y+
     155 9518      RETI
_TIMER2_COMP_ISR:
     156 922A      ST	R2,-Y
     157 923A      ST	R3,-Y
     158 938A      ST	R24,-Y
     159 939A      ST	R25,-Y
     15A 93AA      ST	R26,-Y
     15B 93EA      ST	R30,-Y
     15C B62F      IN	R2,0x3F
     15D 922A      ST	R2,-Y
(0197) }
(0198) 
(0199) 
(0200) #pragma interrupt_handler TIMER2_COMP_ISR:iv_TIMER2_COMP
(0201) void TIMER2_COMP_ISR(void)
(0202) {
(0203) 	if (!send_mark)
     15E 9020 0108 LDS	R2,send_mark
     160 2022      TST	R2
     161 F4B1      BNE	0x0178
(0204) 	{
(0205) 		send_time++;
     162 9180 010A LDS	R24,send_time
     164 9190 010B LDS	R25,send_time+1
     166 9601      ADIW	R24,1
     167 9390 010B STS	send_time+1,R25
     169 9380 010A STS	send_time,R24
(0206) 		if (send_time >= 100)
     16B 3684      CPI	R24,0x64
     16C E0E0      LDI	R30,0
     16D 079E      CPC	R25,R30
     16E F048      BCS	0x0178
(0207) 		{
(0208) 			send_mark = TRUE;
     16F E081      LDI	R24,1
     170 9380 0108 STS	send_mark,R24
(0209) 			send_time = 0;
     172 2422      CLR	R2
     173 2433      CLR	R3
     174 9230 010B STS	send_time+1,R3
     176 9220 010A STS	send_time,R2
(0210) 		}
(0211) 	}
(0212) 	if (!display_mark)
     178 9020 0109 LDS	R2,display_mark
     17A 2022      TST	R2
     17B F4B1      BNE	0x0192
(0213) 	{
(0214) 			display_time++;
     17C 9180 010C LDS	R24,display_time
     17E 9190 010D LDS	R25,display_time+1
     180 9601      ADIW	R24,1
     181 9390 010D STS	display_time+1,R25
     183 9380 010C STS	display_time,R24
(0215) 			if (display_time >= 25)
     185 3189      CPI	R24,0x19
     186 E0E0      LDI	R30,0
     187 079E      CPC	R25,R30
     188 F048      BCS	0x0192
(0216) 			{
(0217) 			    display_time = 0;
     189 2422      CLR	R2
     18A 2433      CLR	R3
     18B 9230 010D STS	display_time+1,R3
     18D 9220 010C STS	display_time,R2
(0218) 				display_mark = TRUE;
     18F E081      LDI	R24,1
     190 9380 0109 STS	display_mark,R24
(0219) 			}
(0220) 		}
     192 9029      LD	R2,Y+
     193 BE2F      OUT	0x3F,R2
     194 91E9      LD	R30,Y+
     195 91A9      LD	R26,Y+
     196 9199      LD	R25,Y+
     197 9189      LD	R24,Y+
     198 9039      LD	R3,Y+
     199 9029      LD	R2,Y+
     19A 9518      RETI
(0221) }
(0222) 
(0223) 
(0224) void CHA_Init(void)
(0225) {
(0226) 		CHA++;
_CHA_Init:
     19B 9180 0101 LDS	R24,CHA
     19D 5F8F      SUBI	R24,0xFF
     19E 9380 0101 STS	CHA,R24
(0227) 		if (CHA >= 100)
     1A0 9180 0101 LDS	R24,CHA
     1A2 3684      CPI	R24,0x64
     1A3 F018      BCS	0x01A7
(0228) 			CHA = 0;
     1A4 2422      CLR	R2
     1A5 9220 0101 STS	CHA,R2
     1A7 9508      RET
(0229) }
(0230) 
(0231) void main(void)
(0232) {
(0233) 	uint8 i;
(0234)    
(0235) 	CLI();
_main:
  i                    --> R20
     1A8 94F8      BCLR	7
(0236) 	PORT_Init();
     1A9 DED3      RCALL	_PORT_Init
(0237) 	TIMER0_Init();	 
     1AA DEEA      RCALL	_TIMER0_Init
(0238) 	TIMER2_Init();	 
     1AB DEF7      RCALL	_TIMER2_Init
(0239) //	USART1_Init();
(0240) 	TJA1040_DISABLE();
     1AC 9A5C      SBI	0x0B,4
(0241) 	NOP();
     1AD 0000      NOP
(0242) 	NOP();   
     1AE 0000      NOP
(0243) 	TJA1040_ENABLE();
     1AF 985C      CBI	0x0B,4
(0244) 	NOP();
     1B0 0000      NOP
(0245) 	NOP();
     1B1 0000      NOP
(0246) 	CAN_Init();
     1B2 940E 0298 CALL	_CAN_Init
(0247) 	Watchdog_Init();
     1B4 DEFE      RCALL	_Watchdog_Init
(0248) 	SEI();
     1B5 9478      BSET	7
     1B6 C0B7      RJMP	0x026E
(0249) 	while (1)
(0250) 	{
(0251) /*
(0252)   00000000:  02 41 00 02 02 00 00 00 00 00 00 00 00 00 00 00   .A..............
(0253)   00000010:  02 42 00 03 03 03 00 00 00 00 00 00 00 00 00 00   .B..............
(0254)   00000020:  02 43 00 04 04 04 04 00 00 00 00 00 00 00 00 00   .C..............
(0255)   00000030:  02 44 00 05 05 05 05 05 00 00 00 00 00 00 00 00   .D..............
(0256)   00000040:  02 45 00 06 06 06 06 06 06 00 00 00 00 00 00 00   .E..............
(0257)   00000050:  02 46 00 07 07 07 07 07 07 07 00 00 00 00 00 00   .F..............
(0258)   00000060:  02 47 00 08 08 08 08 08 08 08 08 00 00 00 00 00   .G..............
(0259)   00000070:  02 48 00 01 00 00 00 00 00 00 00 00 00 00 00 00   .H..............
(0260)   00000080:  02 41 00 02 02 00 00 00 00 00 00 00 00 00 00 00   .A..............
(0261)   00000090:  02 42 00 03 03 03 00 00 00 00 00 00 00 00 00 00   .B..............
(0262)   000000A0:  02 43 00 04 04 04 04 00 00 00 00 00 00 00 00 00   .C..............
(0263)   000000B0:  02 44 00 05 05 05 05 05 00 00 00 00 00 00 00 00   .D..............
(0264)   000000C0:  02 45 00 06 06 06 06 06 06 00 00 00 00 00 00 00   .E..............
(0265)   000000D0:  02 46 00 07 07 07 07 07 07 07 00 00 00 00 00 00   .F..............
(0266)   000000E0:  02 47 00 08 08 08 08 08 08 08 08 00 00 00 00 00   .G..............
(0267)   000000F0:  02 48 00 01 00 00 00 00 00 00 00 00 00 00 00 00   .H..............
(0268)   00000100:  02 41 00 02 02 00 00 00 00 00 00 00 00 00 00 00   .A..............
(0269)   00000110:  02 42 00 03 03 03 00 00 00 00 00 00 00 00 00 00   .B..............
(0270)   00000120:  02 43 00 04 04 04 04 00 00 00 00 00 00 00 00 00   .C..............
(0271)   00000130:  02 44 00 05 05 05 05 05 00 00 00 00 00 00 00 00   .D..............
(0272)   00000140:  02 45 00 06 06 06 06 06 06 00 00 00 00 00 00 00   .E..............
(0273)   00000150:  02 46 00 07 07 07 07 07 07 07 00 00 00 00 00 00   .F..............
(0274)   00000160:  02 47 00 08 08 08 08 08 08 08 08 00 00 00 00 00   .G..............
(0275)   00000170:  02 48 00 01 00 00 00 00 00 00 00 00 00 00 00 00   .H..............
(0276)   00000180:  02 41 00 02 02 00 00 00 00 00 00 00 00 00 00 00   .A..............
(0277)   00000190:  02 42 00 03 03 03 00 00 00 00 00 00 00 00 00 00   .B..............
(0278)   000001A0:  02 43 00 04 04 04 04 00 00 00 00 00 00 00 00 00   .C..............
(0279)   000001B0:  02 44 00 05 05 05 05 05 00 00 00 00 00 00 00 00   .D..............
(0280)   000001C0:  02 45 00 06 06 06 06 06 06 00 00 00 00 00 00 00   .E..............
(0281)   000001D0:  02 46 00 07 07 07 07 07 07 07 00 00 00 00 00 00   .F..............
(0282)   000001E0:  02 47 00 08 08 08 08 08 08 08 08 00 00 00 00 00   .G..............
(0283)   000001F0:  02 48 00 01 00 00 00 00 00 00 00 00 00 00 00 00   .H..............
(0284)   00000200:  02 41 00 02 02 00 00 00 00 00 00 00 00 00 00 00   .A..............
(0285) 
(0286) */ 
(0287) 		if (send_mark)
     1B7 9020 0108 LDS	R2,send_mark
     1B9 2022      TST	R2
     1BA F409      BNE	0x01BC
     1BB C0A0      RJMP	0x025C
(0288) 		{
(0289)    			send_mark = FALSE;
     1BC 2422      CLR	R2
     1BD 9220 0108 STS	send_mark,R2
(0290) 			if (!(CANGSTA & (1 << TXBSY)))
     1BF 9020 00D9 LDS	R2,0x00D9
     1C1 FC24      SBRC	R2,4
     1C2 C099      RJMP	0x025C
(0291) 			{        
(0292) 				CANPAGE = 0x00;
     1C3 2422      CLR	R2
     1C4 9220 00ED STS	0x00ED,R2
(0293) 				if (CANSTMOB & BIT(TXOK))
     1C6 9020 00EE LDS	R2,0x00EE
     1C8 FE26      SBRS	R2,6
     1C9 C092      RJMP	0x025C
(0294) 				{
(0295) 					CANSTMOB &= ~ BIT(TXOK);
     1CA 9180 00EE LDS	R24,0x00EE
     1CC 7B8F      ANDI	R24,0xBF
     1CD 9380 00EE STS	0x00EE,R24
(0296) 					me_DLC++;
     1CF 9180 0102 LDS	R24,me_DLC
     1D1 5F8F      SUBI	R24,0xFF
     1D2 9380 0102 STS	me_DLC,R24
(0297) 					if (me_DLC >= 9)
     1D4 3089      CPI	R24,0x9
     1D5 F018      BCS	0x01D9
(0298) 						me_DLC = 1;
     1D6 E081      LDI	R24,1
     1D7 9380 0102 STS	me_DLC,R24
(0299) 					switch (me_DLC)
     1D9 9140 0102 LDS	R20,me_DLC
     1DB 2755      CLR	R21
     1DC 3041      CPI	R20,1
     1DD E0E0      LDI	R30,0
     1DE 075E      CPC	R21,R30
     1DF F111      BEQ	0x0202
     1E0 3042      CPI	R20,2
     1E1 E0E0      LDI	R30,0
     1E2 075E      CPC	R21,R30
     1E3 F129      BEQ	0x0209
     1E4 3043      CPI	R20,3
     1E5 E0E0      LDI	R30,0
     1E6 075E      CPC	R21,R30
     1E7 F169      BEQ	0x0215
     1E8 3044      CPI	R20,4
     1E9 E0E0      LDI	R30,0
     1EA 075E      CPC	R21,R30
     1EB F409      BNE	0x01ED
     1EC C034      RJMP	0x0221
     1ED 3045      CPI	R20,5
     1EE E0E0      LDI	R30,0
     1EF 075E      CPC	R21,R30
     1F0 F409      BNE	0x01F2
     1F1 C03B      RJMP	0x022D
     1F2 3046      CPI	R20,6
     1F3 E0E0      LDI	R30,0
     1F4 075E      CPC	R21,R30
     1F5 F409      BNE	0x01F7
     1F6 C042      RJMP	0x0239
     1F7 3047      CPI	R20,7
     1F8 E0E0      LDI	R30,0
     1F9 075E      CPC	R21,R30
     1FA F409      BNE	0x01FC
     1FB C049      RJMP	0x0245
     1FC 3048      CPI	R20,0x8
     1FD E0E0      LDI	R30,0
     1FE 075E      CPC	R21,R30
     1FF F409      BNE	0x0201
     200 C050      RJMP	0x0251
     201 C05A      RJMP	0x025C
(0300) 					{
(0301) 						case 1:
(0302) 							CANMSG = 1;
     202 E081      LDI	R24,1
     203 9380 00FA STS	0x00FA,R24
(0303) 							CANCDMOB = 0x41;
     205 E481      LDI	R24,0x41
     206 9380 00EF STS	0x00EF,R24
(0304) 							break;
     208 C053      RJMP	0x025C
(0305) 						case 2:
(0306) 							for (i = 0 ; i < 2 ; i++)
     209 2744      CLR	R20
     20A C004      RJMP	0x020F
(0307) 								CANMSG = 2;
     20B E082      LDI	R24,2
     20C 9380 00FA STS	0x00FA,R24
     20E 9543      INC	R20
     20F 3042      CPI	R20,2
     210 F3D0      BCS	0x020B
(0308) 								CANCDMOB = 0x42;
     211 E482      LDI	R24,0x42
     212 9380 00EF STS	0x00EF,R24
(0309) 								break;
     214 C047      RJMP	0x025C
(0310) 						case 3:
(0311) 							for (i = 0 ; i < 3 ; i++)
     215 2744      CLR	R20
     216 C004      RJMP	0x021B
(0312) 								CANMSG = 3;
     217 E083      LDI	R24,3
     218 9380 00FA STS	0x00FA,R24
     21A 9543      INC	R20
     21B 3043      CPI	R20,3
     21C F3D0      BCS	0x0217
(0313) 								CANCDMOB = 0x43;
     21D E483      LDI	R24,0x43
     21E 9380 00EF STS	0x00EF,R24
(0314) 								break;
     220 C03B      RJMP	0x025C
(0315) 						case 4:
(0316) 							for (i = 0 ; i < 4 ; i++)
     221 2744      CLR	R20
     222 C004      RJMP	0x0227
(0317) 								CANMSG = 4;
     223 E084      LDI	R24,4
     224 9380 00FA STS	0x00FA,R24
     226 9543      INC	R20
     227 3044      CPI	R20,4
     228 F3D0      BCS	0x0223
(0318) 								CANCDMOB = 0x44;
     229 E484      LDI	R24,0x44
     22A 9380 00EF STS	0x00EF,R24
(0319) 								break;
     22C C02F      RJMP	0x025C
(0320) 						case 5:
(0321) 							for (i = 0 ; i < 5 ; i++)
     22D 2744      CLR	R20
     22E C004      RJMP	0x0233
(0322) 								CANMSG = 5;
     22F E085      LDI	R24,5
     230 9380 00FA STS	0x00FA,R24
     232 9543      INC	R20
     233 3045      CPI	R20,5
     234 F3D0      BCS	0x022F
(0323) 								CANCDMOB = 0x45;
     235 E485      LDI	R24,0x45
     236 9380 00EF STS	0x00EF,R24
(0324) 								break;
     238 C023      RJMP	0x025C
(0325) 						case 6:
(0326) 							for (i = 0 ; i < 6 ; i++)
     239 2744      CLR	R20
     23A C004      RJMP	0x023F
(0327) 								CANMSG = 6;
     23B E086      LDI	R24,6
     23C 9380 00FA STS	0x00FA,R24
     23E 9543      INC	R20
     23F 3046      CPI	R20,6
     240 F3D0      BCS	0x023B
(0328) 								CANCDMOB = 0x46;
     241 E486      LDI	R24,0x46
     242 9380 00EF STS	0x00EF,R24
(0329) 								break;
     244 C017      RJMP	0x025C
(0330) 						case 7:
(0331) 							for (i = 0 ; i < 7 ; i++)
     245 2744      CLR	R20
     246 C004      RJMP	0x024B
(0332) 								CANMSG = 7;
     247 E087      LDI	R24,7
     248 9380 00FA STS	0x00FA,R24
     24A 9543      INC	R20
     24B 3047      CPI	R20,7
     24C F3D0      BCS	0x0247
(0333) 								CANCDMOB = 0x47;
     24D E487      LDI	R24,0x47
     24E 9380 00EF STS	0x00EF,R24
(0334) 								break;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -