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

📄 main.lst

📁 avr常用功能程序中包含了pwm、adc、中断、定时、i2c等各程序可供开发者直接使用
💻 LST
📖 第 1 页 / 共 5 页
字号:
 1198               	.LM130:
 1199 056c 81E0      		ldi r24,lo8(1)
 1200 056e 8093 0000 		sts work_mode,r24
 186:main.c        **** 	DDRC|=(1<<PC0)|(1<<PC1)|(1<<PC2);
 1202               	.LM131:
 1203 0572 8091 3400 		lds r24,52
 1204 0576 8760      		ori r24,lo8(7)
 1205 0578 8093 3400 		sts 52,r24
 187:main.c        **** 	//DDRB|=_BV(PB6);//为595锁存信号
 188:main.c        **** 	//DDRB|=_BV(PB0);
 189:main.c        **** 	//DDRB|=_BV(PB1);
 190:main.c        **** 	DDRB=0XFF;
 1207               	.LM132:
 1208 057c 8FEF      		ldi r24,lo8(-1)
 1209 057e 8093 3700 		sts 55,r24
 191:main.c        **** 	DDRD=0xFF;//设置PD口高四位为按键输入,高四位设置为数码管位控输出
 1211               	.LM133:
 1212 0582 8FEF      		ldi r24,lo8(-1)
 1213 0584 8093 3100 		sts 49,r24
 1214               	/* epilogue: frame size=0 */
 1215 0588 DF91      		pop r29
 1216 058a CF91      		pop r28
 1217 058c 0895      		ret
 1218               	/* epilogue end (size=3) */
 1219               	/* function init size 25 (18) */
 1221               	.Lscope14:
 1223               	.global	setting_mode
 1225               	setting_mode:
 192:main.c        **** }
 193:main.c        **** 
 194:main.c        **** 
 195:main.c        **** 
 196:main.c        **** 
 197:main.c        **** /************************************************
 198:main.c        **** 调用方式:void setting_mode(void)
 199:main.c        **** 函数说明:
 200:main.c        **** 传递参数:无
 201:main.c        **** 返 回 值:无
 202:main.c        **** ************************************************/
 203:main.c        **** void setting_mode(void)
 204:main.c        **** {
 1227               	.LM134:
 1228               	/* prologue: frame size=2 */
 1229 058e CF93      		push r28
 1230 0590 DF93      		push r29
 1231 0592 CDB7      		in r28,__SP_L__
 1232 0594 DEB7      		in r29,__SP_H__
 1233 0596 2297      		sbiw r28,2
 1234 0598 0FB6      		in __tmp_reg__,__SREG__
 1235 059a F894      		cli
 1236 059c DEBF      		out __SP_H__,r29
 1237 059e 0FBE      		out __SREG__,__tmp_reg__
 1238 05a0 CDBF      		out __SP_L__,r28
 1239               	/* prologue end (size=10) */
 205:main.c        **** 	PORTD=0xff;
 1241               	.LM135:
 1242 05a2 8FEF      		ldi r24,lo8(-1)
 1243 05a4 8093 3200 		sts 50,r24
 206:main.c        **** 	switch(led_wei)
 1245               	.LM136:
 1246 05a8 8091 0000 		lds r24,led_wei
 1247 05ac 282F      		mov r18,r24
 1248 05ae 3327      		clr r19
 1249 05b0 2983      		std Y+1,r18
 1250 05b2 3A83      		std Y+2,r19
 1251 05b4 8981      		ldd r24,Y+1
 1252 05b6 9A81      		ldd r25,Y+2
 1253 05b8 8130      		cpi r24,1
 1254 05ba 9105      		cpc r25,__zero_reg__
 1255 05bc F1F0      		breq .L55
 1257               	.LM137:
 1258 05be 2981      		ldd r18,Y+1
 1259 05c0 3A81      		ldd r19,Y+2
 1260 05c2 2230      		cpi r18,2
 1261 05c4 3105      		cpc r19,__zero_reg__
 1262 05c6 2CF4      		brge .L58
 1263 05c8 8981      		ldd r24,Y+1
 1264 05ca 9A81      		ldd r25,Y+2
 1265 05cc 0097      		sbiw r24,0
 1266 05ce 61F0      		breq .L54
 1267 05d0 2EC0      		rjmp .L53
 1268               	.L58:
 1269 05d2 2981      		ldd r18,Y+1
 1270 05d4 3A81      		ldd r19,Y+2
 1271 05d6 2230      		cpi r18,2
 1272 05d8 3105      		cpc r19,__zero_reg__
 1273 05da C1F0      		breq .L56
 1274 05dc 8981      		ldd r24,Y+1
 1275 05de 9A81      		ldd r25,Y+2
 1276 05e0 8330      		cpi r24,3
 1277 05e2 9105      		cpc r25,__zero_reg__
 1278 05e4 E1F0      		breq .L57
 1279 05e6 23C0      		rjmp .L53
 1280               	.L54:
 207:main.c        **** 	{
 208:main.c        **** 		case 0:
 209:main.c        **** 			transmission_byte(led[led_data_1]);			
 1282               	.LM138:
 1283 05e8 8091 0000 		lds r24,led_data_1
 1284 05ec 9927      		clr r25
 1285 05ee FC01      		movw r30,r24
 1286 05f0 E050      		subi r30,lo8(-(led))
 1287 05f2 F040      		sbci r31,hi8(-(led))
 1288 05f4 8081      		ld r24,Z
 1289 05f6 3CD0      		rcall transmission_byte
 210:main.c        **** 			break;
 1291               	.LM139:
 1292 05f8 1AC0      		rjmp .L53
 1293               	.L55:
 211:main.c        **** 		case 1:
 212:main.c        **** 			transmission_byte(led[led_data_2]);			
 1295               	.LM140:
 1296 05fa 8091 0000 		lds r24,led_data_2
 1297 05fe 9927      		clr r25
 1298 0600 FC01      		movw r30,r24
 1299 0602 E050      		subi r30,lo8(-(led))
 1300 0604 F040      		sbci r31,hi8(-(led))
 1301 0606 8081      		ld r24,Z
 1302 0608 33D0      		rcall transmission_byte
 213:main.c        **** 			break;
 1304               	.LM141:
 1305 060a 11C0      		rjmp .L53
 1306               	.L56:
 214:main.c        **** 		case 2:
 215:main.c        **** 			transmission_byte(led[led_data_3]);			
 1308               	.LM142:
 1309 060c 8091 0000 		lds r24,led_data_3
 1310 0610 9927      		clr r25
 1311 0612 FC01      		movw r30,r24
 1312 0614 E050      		subi r30,lo8(-(led))
 1313 0616 F040      		sbci r31,hi8(-(led))
 1314 0618 8081      		ld r24,Z
 1315 061a 2AD0      		rcall transmission_byte
 216:main.c        **** 			break;
 1317               	.LM143:
 1318 061c 08C0      		rjmp .L53
 1319               	.L57:
 217:main.c        **** 		case 3:
 218:main.c        **** 			transmission_byte(led[led_data_4]);			
 1321               	.LM144:
 1322 061e 8091 0000 		lds r24,led_data_4
 1323 0622 9927      		clr r25
 1324 0624 FC01      		movw r30,r24
 1325 0626 E050      		subi r30,lo8(-(led))
 1326 0628 F040      		sbci r31,hi8(-(led))
 1327 062a 8081      		ld r24,Z
 1328 062c 21D0      		rcall transmission_byte
 1329               	.L53:
 219:main.c        **** 			break;
 220:main.c        **** 	}
 221:main.c        **** 	PORTD=led_wx;
 1331               	.LM145:
 1332 062e 8091 0000 		lds r24,led_wx
 1333 0632 8093 3200 		sts 50,r24
 222:main.c        **** 	led_wx=(led_wx<<1)|0x01;
 1335               	.LM146:
 1336 0636 8091 0000 		lds r24,led_wx
 1337 063a 9927      		clr r25
 1338 063c 880F      		lsl r24
 1339 063e 991F      		rol r25
 1340 0640 8160      		ori r24,lo8(1)
 1341 0642 8093 0000 		sts led_wx,r24
 223:main.c        **** 	if(++led_wei>3)
 1343               	.LM147:
 1344 0646 8091 0000 		lds r24,led_wei
 1345 064a 8F5F      		subi r24,lo8(-(1))
 1346 064c 8093 0000 		sts led_wei,r24
 1347 0650 8430      		cpi r24,lo8(4)
 1348 0652 28F0      		brlo .L52
 224:main.c        **** 		{
 225:main.c        **** 			led_wei=0;
 1350               	.LM148:
 1351 0654 1092 0000 		sts led_wei,__zero_reg__
 226:main.c        **** 			led_wx=0xfe;
 1353               	.LM149:
 1354 0658 8EEF      		ldi r24,lo8(-2)
 1355 065a 8093 0000 		sts led_wx,r24
 1356               	.L52:
 1357               	/* epilogue: frame size=2 */
 1358 065e 2296      		adiw r28,2
 1359 0660 0FB6      		in __tmp_reg__,__SREG__
 1360 0662 F894      		cli
 1361 0664 DEBF      		out __SP_H__,r29
 1362 0666 0FBE      		out __SREG__,__tmp_reg__
 1363 0668 CDBF      		out __SP_L__,r28
 1364 066a DF91      		pop r29
 1365 066c CF91      		pop r28
 1366 066e 0895      		ret
 1367               	/* epilogue end (size=9) */
 1368               	/* function setting_mode size 113 (94) */
 1370               	.Lscope15:
 1373               	.global	transmission_byte
 1375               	transmission_byte:
 227:main.c        **** 		}
 228:main.c        **** }
 229:main.c        **** 
 230:main.c        **** /************************************************
 231:main.c        **** 调用方式:uchar transmission_byte(uchar x_byte)
 232:main.c        **** 函数说明:用IO口模拟SPI发送一个字节数据
 233:main.c        **** 传递参数:发送数据 uchar x_byte
 234:main.c        **** 返 回 值:无
 235:main.c        **** ************************************************/
 236:main.c        **** 
 237:main.c        **** void transmission_byte(uchar x_byte)
 238:main.c        **** {
 1377               	.LM150:
 1378               	/* prologue: frame size=3 */
 1379 0670 CF93      		push r28
 1380 0672 DF93      		push r29
 1381 0674 CDB7      		in r28,__SP_L__
 1382 0676 DEB7      		in r29,__SP_H__
 1383 0678 2397      		sbiw r28,3
 1384 067a 0FB6      		in __tmp_reg__,__SREG__
 1385 067c F894      		cli
 1386 067e DEBF      		out __SP_H__,r29
 1387 0680 0FBE      		out __SREG__,__tmp_reg__
 1388 0682 CDBF      		out __SP_L__,r28
 1389               	/* prologue end (size=10) */
 1390 0684 8983      		std Y+1,r24
 239:main.c        **** 	unsigned char i,j;
 240:main.c        **** 	for(i=0;i<8;i++)
 1392               	.LM151:
 1393 0686 1A82      		std Y+2,__zero_reg__
 1394               	.L61:
 1396               	.LM152:
 1397 0688 8A81      		ldd r24,Y+2
 1398 068a 8830      		cpi r24,lo8(8)
 1399 068c 40F5      		brsh .L60
 241:main.c        **** 	{
 242:main.c        **** 		j=x_byte&0x80;
 1401               	.LM153:
 1402 068e 90E8      		ldi r25,lo8(-128)
 1403 0690 8981      		ldd r24,Y+1
 1404 0692 8923      		and r24,r25
 1405 0694 8B83      		std Y+3,r24
 243:main.c        **** 		if(j==0x80)
 1407               	.LM154:
 1408 0696 8B81      		ldd r24,Y+3
 1409 0698 8038      		cpi r24,lo8(-128)
 1410 069a 31F4      		brne .L64
 244:main.c        **** 			set_data();
 1412               	.LM155:
 1413 069c 8091 3800 		lds r24,56
 1414 06a0 8260      		ori r24,lo8(2)
 1415 06a2 8093 3800 		sts 56,r24
 1416 06a6 05C0      		rjmp .L65
 1417               	.L64:
 245:main.c        **** 		else clr_data();
 1419               	.LM156:
 1420 06a8 8091 3800 		lds r24,56
 1421 06ac 8D7F      		andi r24,lo8(-3)
 1422 06ae 8093 3800 		sts 56,r24
 1423               	.L65:
 246:main.c        **** 			clr_clk(); 
 1425               	.LM157:
 1426 06b2 8091 3800 		lds r24,56
 1427 06b6 8E7F      		andi r24,lo8(-2)
 1428 06b8 8093 3800 		sts 56,r24
 247:main.c        ****  			set_clk();
 1430               	.LM158:
 1431 06bc 8091 3800 		lds r24,56
 1432 06c0 8160      		ori r24,lo8(1)
 1433 06c2 8093 3800 		sts 56,r24
 248:main.c        **** 			clr_clk();  
 1435               	.LM159:
 1436 06c6 8091 3800 		lds r24,56
 1437 06ca 8E7F      		andi r24,lo8(-2)
 1438 06cc 8093 3800 		sts 56,r24
 249:main.c        **** 		x_byte=x_byte<<1; 
 1440               	.LM160:
 1441 06d0 8981      		ldd r24,Y+1
 1442 06d2 880F      		lsl r24
 1443 06d4 8983      		std Y+1,r24
 1445               	.LM161:
 1446 06d6 8A81      		ldd r24,Y+2
 1447 06d8 8F5F      		subi r24,lo8(-(1))
 1448 06da 8A83      		std Y+2,r24
 1449 06dc D5CF      		rjmp .L61
 1450               	.L60:
 1451               	/* epilogue: frame size=3 */
 1452 06de 2396      		adiw r28,3
 1453 06e0 0FB6      		in __tmp_reg__,__SREG__
 1454 06e2 F894      		cli
 1455 06e4 DEBF      		out __SP_H__,r29
 1456 06e6 0FBE      		out __SREG__,__tmp_reg__
 1457 06e8 CDBF      		out __SP_L__,r28
 1458 06ea DF91      		pop r29
 1459 06ec CF91      		pop r28
 1460 06ee 0895      		ret
 1461               	/* epilogue end (size=9) */
 1462               	/* function transmission_byte size 64 (45) */
 1468               	.Lscope16:
 1469               		.comm data_Int1,1,1
 1470               		.comm data_Int2,1,1
 1471               		.comm jtd_data1,2,1
 1472               		.comm jtd_data2,2,1
 1473               		.comm color,1,1
 1474               		.comm key_data,1,1
 1475               		.comm work_mode,1,1
 1476               		.comm led_data_1,1,1
 1477               		.comm led_data_2,1,1
 1478               		.comm led_data_3,1,1
 1479               		.comm led_data_4,1,1
 1480               		.comm led_wei,1,1
 1481               		.comm t0_quantum,1,1
 1506               		.text
 1508               	Letext:
 1509               	/* File "main.c": code  890 = 0x037a ( 633), prologues 139, epilogues 118 */
DEFINED SYMBOLS
                            *ABS*:00000000 main.c
                            *ABS*:0000003f __SREG__
                            *ABS*:0000003e __SP_H__
                            *ABS*:0000003d __SP_L__
                            *ABS*:00000000 __tmp_reg__
                            *ABS*:00000001 __zero_reg__
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/ccc9aaaa.s:61     .data:00000000 year
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/ccc9aaaa.s:65     .data:00000001 month
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/ccc9aaaa.s:69     .data:00000002 day
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/ccc9aaaa.s:73     .data:00000003 week
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/ccc9aaaa.s:77     .data:00000004 hour
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/ccc9aaaa.s:81     .

⌨️ 快捷键说明

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