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

📄 main.lst

📁 我学习AVR的代码例子
💻 LST
📖 第 1 页 / 共 5 页
字号:
 1047 02f6 85E0      		ldi r24,lo8(5)
 1048 02f8 0E94 0000 		call i2c_Read
 1049 02fc 9927      		clr r25
 1050 02fe 8F71      		andi r24,lo8(31)
 1051 0300 9070      		andi r25,hi8(31)
 1052 0302 9093 0000 		sts (month)+1,r25
 1053 0306 8093 0000 		sts month,r24
 268:main.c        ****        date=(i2c_Read(4) & 0x3f);
 1055               	.LM129:
 1056 030a 84E0      		ldi r24,lo8(4)
 1057 030c 0E94 0000 		call i2c_Read
 1058 0310 9927      		clr r25
 1059 0312 8F73      		andi r24,lo8(63)
 1060 0314 9070      		andi r25,hi8(63)
 1061 0316 9093 0000 		sts (date)+1,r25
 1062 031a 8093 0000 		sts date,r24
 1063 031e 0895      		ret
 1064               	.L88:
 269:main.c        ****      }
 270:main.c        ****    else
 271:main.c        ****      {
 272:main.c        ****        hours=(i2c_Read(2) & 0x3f);
 1066               	.LM130:
 1067 0320 82E0      		ldi r24,lo8(2)
 1068 0322 0E94 0000 		call i2c_Read
 1069 0326 9927      		clr r25
 1070 0328 8F73      		andi r24,lo8(63)
 1071 032a 9070      		andi r25,hi8(63)
 1072 032c 9093 0000 		sts (hours)+1,r25
 1073 0330 8093 0000 		sts hours,r24
 273:main.c        ****        minutes=(i2c_Read(1) & 0x7f);
 1075               	.LM131:
 1076 0334 81E0      		ldi r24,lo8(1)
 1077 0336 0E94 0000 		call i2c_Read
 1078 033a 9927      		clr r25
 1079 033c 8F77      		andi r24,lo8(127)
 1080 033e 9070      		andi r25,hi8(127)
 1081 0340 9093 0000 		sts (minutes)+1,r25
 1082 0344 8093 0000 		sts minutes,r24
 274:main.c        **** 	   senconds=(i2c_Read(0) & 0x7f);
 1084               	.LM132:
 1085 0348 80E0      		ldi r24,lo8(0)
 1086 034a 0E94 0000 		call i2c_Read
 1087 034e 8F77      		andi r24,lo8(127)
 1088 0350 8093 0000 		sts senconds,r24
 1089 0354 0895      		ret
 1090               	/* epilogue: frame size=0 */
 1091 0356 0895      		ret
 1092               	/* epilogue end (size=1) */
 1093               	/* function Gettime size 53 (52) */
 1095               	.Lscope18:
 1097               	.global	time_init
 1099               	time_init:
 275:main.c        ****      }
 276:main.c        ****  }
 277:main.c        **** void time_init(void)
 278:main.c        ****  {
 1101               	.LM133:
 1102               	/* prologue: frame size=0 */
 1103               	/* prologue end (size=0) */
 279:main.c        ****    i2c_Write(0,1);
 1105               	.LM134:
 1106 0358 61E0      		ldi r22,lo8(1)
 1107 035a 80E0      		ldi r24,lo8(0)
 1108 035c 0E94 0000 		call i2c_Write
 1109               	/* epilogue: frame size=0 */
 1110 0360 0895      		ret
 1111               	/* epilogue end (size=1) */
 1112               	/* function time_init size 5 (4) */
 1114               	.Lscope19:
 1116               	.global	disp
 1118               	disp:
 280:main.c        ****  }
 281:main.c        **** void disp(void)
 282:main.c        ****  {
 1120               	.LM135:
 1121               	/* prologue: frame size=0 */
 1122 0362 1F93      		push r17
 1123               	/* prologue end (size=1) */
 283:main.c        ****    SENDCOMB(0x04);                            //write address
 1125               	.LM136:
 1126 0364 84E0      		ldi r24,lo8(4)
 1127 0366 0E94 0000 		call SENDCOMB
 284:main.c        ****    SendByte(Close[0]<<7 | Close[1]<<1 | Close[2]<<5 | Close[3]<<2);
 1129               	.LM137:
 1130 036a 8091 0000 		lds r24,Close
 1131 036e 9927      		clr r25
 1132 0370 9C01      		movw r18,r24
 1133 0372 3695      		lsr r19
 1134 0374 322F      		mov r19,r18
 1135 0376 2227      		clr r18
 1136 0378 3795      		ror r19
 1137 037a 2795      		ror r18
 1138 037c 8091 0000 		lds r24,Close+1
 1139 0380 9927      		clr r25
 1140 0382 880F      		lsl r24
 1141 0384 991F      		rol r25
 1142 0386 282B      		or r18,r24
 1143 0388 8091 0000 		lds r24,Close+2
 1144 038c 9927      		clr r25
 1145 038e 880F      		lsl r24
 1146 0390 991F      		rol r25
 1147 0392 8295      		swap r24
 1148 0394 9295      		swap r25
 1149 0396 907F      		andi r25,0xf0
 1150 0398 9827      		eor r25,r24
 1151 039a 807F      		andi r24,0xf0
 1152 039c 9827      		eor r25,r24
 1153 039e 282B      		or r18,r24
 1154 03a0 8091 0000 		lds r24,Close+3
 1155 03a4 9927      		clr r25
 1156 03a6 880F      		lsl r24
 1157 03a8 991F      		rol r25
 1158 03aa 880F      		lsl r24
 1159 03ac 991F      		rol r25
 1160 03ae 822B      		or r24,r18
 1161 03b0 0E94 0000 		call SendByte
 285:main.c        ****    if(N==0)
 1163               	.LM138:
 1164 03b4 8091 0000 		lds r24,N
 1165 03b8 8823      		tst r24
 1166 03ba 09F0      		breq .+2
 1167 03bc 3AC1      		rjmp .L92
 286:main.c        ****      {
 287:main.c        **** 	   a=HIBYTE(hours);
 1169               	.LM139:
 1170 03be 8091 0000 		lds r24,hours
 1171 03c2 9091 0000 		lds r25,(hours)+1
 1172 03c6 9C01      		movw r18,r24
 1173 03c8 3595      		asr r19
 1174 03ca 2795      		ror r18
 1175 03cc 3595      		asr r19
 1176 03ce 2795      		ror r18
 1177 03d0 3595      		asr r19
 1178 03d2 2795      		ror r18
 1179 03d4 3595      		asr r19
 1180 03d6 2795      		ror r18
 1181 03d8 2093 0000 		sts a,r18
 288:main.c        **** 	   b=HIBYTE(minutes);
 1183               	.LM140:
 1184 03dc 8091 0000 		lds r24,minutes
 1185 03e0 9091 0000 		lds r25,(minutes)+1
 1186 03e4 9595      		asr r25
 1187 03e6 8795      		ror r24
 1188 03e8 9595      		asr r25
 1189 03ea 8795      		ror r24
 1190 03ec 9595      		asr r25
 1191 03ee 8795      		ror r24
 1192 03f0 9595      		asr r25
 1193 03f2 8795      		ror r24
 1194 03f4 8093 0000 		sts b,r24
 289:main.c        **** 	   if(a==0) a=10;
 1196               	.LM141:
 1197 03f8 2223      		tst r18
 1198 03fa 19F4      		brne .L93
 1199 03fc 8AE0      		ldi r24,lo8(10)
 1200 03fe 8093 0000 		sts a,r24
 1201               	.L93:
 290:main.c        **** 	   if(b==0) b=10;
 1203               	.LM142:
 1204 0402 8091 0000 		lds r24,b
 1205 0406 8823      		tst r24
 1206 0408 19F4      		brne .L94
 1207 040a 8AE0      		ldi r24,lo8(10)
 1208 040c 8093 0000 		sts b,r24
 1209               	.L94:
 291:main.c        **** 	   if(M[0]==1)
 1211               	.LM143:
 1212 0410 8091 0000 		lds r24,M
 1213 0414 8130      		cpi r24,lo8(1)
 1214 0416 09F0      		breq .+2
 1215 0418 51C0      		rjmp .L95
 292:main.c        **** 	     {
 293:main.c        **** 		   SENDCOMB(0x2c);                        //Write address
 1217               	.LM144:
 1218 041a 8CE2      		ldi r24,lo8(44)
 1219 041c 0E94 0000 		call SENDCOMB
 1220               	.LBB2:
 294:main.c        ****            SendByte(pgm_read_byte(S+a)|(Fuse1<<4));            //write data
 1222               	.LM145:
 1223 0420 8091 0000 		lds r24,a
 1224 0424 E82F      		mov r30,r24
 1225 0426 FF27      		clr r31
 1226 0428 E050      		subi r30,lo8(-(S))
 1227 042a F040      		sbci r31,hi8(-(S))
 1228               	/* #APP */
 1229 042c 2491      		lpm r18, Z
 1230               		
 1231               	/* #NOAPP */
 1232               	.LBE2:
 1233 042e 8091 0000 		lds r24,Fuse1
 1234 0432 9927      		clr r25
 1235 0434 8295      		swap r24
 1236 0436 9295      		swap r25
 1237 0438 907F      		andi r25,0xf0
 1238 043a 9827      		eor r25,r24
 1239 043c 807F      		andi r24,0xf0
 1240 043e 9827      		eor r25,r24
 1241 0440 822B      		or r24,r18
 1242 0442 0E94 0000 		call SendByte
 1243               	.LBB3:
 295:main.c        **** 		   SendByte(pgm_read_byte(S+LOBYTE(hours))|(Fuse2<<4));            //write data	       
 1245               	.LM146:
 1246 0446 8091 0000 		lds r24,hours
 1247 044a E82F      		mov r30,r24
 1248 044c FF27      		clr r31
 1249 044e EF70      		andi r30,lo8(15)
 1250 0450 F070      		andi r31,hi8(15)
 1251 0452 E050      		subi r30,lo8(-(S))
 1252 0454 F040      		sbci r31,hi8(-(S))
 1253               	/* #APP */
 1254 0456 2491      		lpm r18, Z
 1255               		
 1256               	/* #NOAPP */
 1257               	.LBE3:
 1258 0458 8091 0000 		lds r24,Fuse2
 1259 045c 9927      		clr r25
 1260 045e 8295      		swap r24
 1261 0460 9295      		swap r25
 1262 0462 907F      		andi r25,0xf0
 1263 0464 9827      		eor r25,r24
 1264 0466 807F      		andi r24,0xf0
 1265 0468 9827      		eor r25,r24
 1266 046a 822B      		or r24,r18
 1267 046c 0E94 0000 		call SendByte
 1268               	.LBB4:
 296:main.c        **** 		   SendByte((pgm_read_byte(S+HIBYTE(minutes))&Tov1)|(1<<4));  //write data
 1270               	.LM147:
 1271 0470 8091 0000 		lds r24,minutes
 1272 0474 9091 0000 		lds r25,(minutes)+1
 1273 0478 9595      		asr r25
 1274 047a 8795      		ror r24
 1275 047c 9595      		asr r25
 1276 047e 8795      		ror r24
 1277 0480 9595      		asr r25
 1278 0482 8795      		ror r24
 1279 0484 9595      		asr r25
 1280 0486 8795      		ror r24
 1281 0488 E82F      		mov r30,r24
 1282 048a FF27      		clr r31
 1283 048c E050      		subi r30,lo8(-(S))
 1284 048e F040      		sbci r31,hi8(-(S))
 1285               	/* #APP */
 1286 0490 9491      		lpm r25, Z
 1287               		
 1288               	/* #NOAPP */
 1289               	.LBE4:
 1290 0492 8091 0000 		lds r24,Tov1
 1291 0496 8923      		and r24,r25
 1292 0498 8061      		ori r24,lo8(16)
 1293 049a 0E94 0000 		call SendByte
 1294               	.LBB5:
 297:main.c        **** 	       SendByte(pgm_read_byte(S+LOBYTE(minutes))&Tov1);     //write data
 1296               	.LM148:
 1297 049e 8091 0000 		lds r24,minutes
 1298 04a2 E82F      		mov r30,r24
 1299 04a4 FF27      		clr r31
 1300 04a6 EF70      		andi r30,lo8(15)
 1301 04a8 F070      		andi r31,hi8(15)
 1302 04aa E050      		subi r30,lo8(-(S))
 1303 04ac F040      		sbci r31,hi8(-(S))
 1304               	/* #APP */
 1305 04ae 9491      		lpm r25, Z
 1306               		
 1307               	/* #NOAPP */
 1308               	.LBE5:
 1309 04b0 8091 0000 		lds r24,Tov1
 1310 04b4 8923      		and r24,r25
 1311 04b6 0E94 0000 		call SendByte
 298:main.c        **** 		   return;
 1313               	.LM149:
 1314 04ba 71C3      		rjmp .L91
 1315               	.L95:
 299:main.c        **** 		 }  
 300:main.c        **** 	   if(M[0]==2)
 1317               	.LM150:
 1318 04bc 8091 0000 		lds r24,M
 1319 04c0 8230      		cpi r24,lo8(2)
 1320 04c2 09F0      		breq .+2
 1321 04c4 53C0      		rjmp .L96
 301:main.c        **** 	     {
 302:main.c        **** 		   SENDCOMB(0x2c);          //Write address
 1323               	.LM151:
 1324 04c6 8CE2      		ldi r24,lo8(44)
 1325 04c8 0E94 0000 		call SENDCOMB
 1326               	.LBB6:
 303:main.c        ****            SendByte((pgm_read_byte(S+a)&Tov1)|(Fuse1<<4));       //write data
 1328               	.LM152:
 1329 04cc 8091 0000 		lds r24,a
 1330 04d0 E82F      		mov r30,r24
 1331 04d2 FF27      		clr r31
 1332 04d4 E050      		subi r30,lo8(-(S))
 1333 04d6 F040      		sbci r31,hi8(-(S))
 1334               	/* #APP */
 1335 04d8 9491      		lpm r25, Z
 1336               		
 1337               	/* #NOAPP */
 1338               	.LBE6:
 1339 04da 8091 0000 		lds r24,Tov1
 1340 04de 292F      		mov r18,r25
 1341 04e0 2823      		and r18,r24
 1342 04e2 8091 0000 		lds r24,Fuse1
 1343 04e6 9927      		clr r25
 1344 04e8 8295      		swap r24
 1345 04ea 9295      		swap r25
 1346 04ec 907F      		andi r25,0xf0
 1347 04ee 9827      		eor r25,r24
 1348 04f0 807F      		andi r24,0xf0
 1349 04f2 9827      		eor r25,r24
 1350 04f4 822B      		or r24,r18
 1351 04f6 0E94 0000 		call SendByte
 1352               	.LBB7:
 304:main.c        **** 	       SendByte((pgm_read_byte(S+LOBYTE(hours))&Tov1)|(Fuse2<<4));       //write data
 1354               	.LM153:
 1355 04fa 8091 0000 		lds r24,hours
 1356 04fe E82F      		mov r30,r24
 1357 0500 FF27      		clr r31
 1358 0502 EF70      		andi r30,lo8(15)
 1359 0504 F070      		andi r31,hi8(15)
 1360 0506 E050      		subi r30,lo8(-(S))
 1361 0508 F040      		sbci r31,hi8(-(S))
 1362               	/* #APP */
 1363 050a 9491      		lpm r25, Z
 1364               		
 1365               	/* #NOAPP */
 1366               	.LBE7:
 1367 050c 8091 0000 		lds r24,Tov1
 1368 0510 292F      		mov r18,r25
 1369 0512 2823      		and r18,r24
 1370 0514 8091 0000 		lds r24,Fuse2
 1371 0518 9927      		clr r25
 1372 051a 8295      		swap r24
 1373 051c 9295      		swap r25
 1374 051e 907F      		andi r25,0xf0
 1375 0520 9827      		eor r25,r24
 1376 0522 807F      		andi r24,0xf0
 1377 0524 9827      		eor r25,r24
 1378 0526 822B      		or r24,r18
 1379 0528 0E94 0000 		call SendByte

⌨️ 快捷键说明

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