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

📄 main.lst

📁 本程序为编码器调节电压,能校对:输出电压,输入电压,与校对调节输出的电压值,适合做通用数字电源程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 1002 041a 8F93      		push r24
 1003 041c 9F93      		push r25
 1004               	/* prologue end (size=8) */
 187:main.c        **** make=1;
 1006               	.LM117:
 1007 041e 21E0      		ldi r18,lo8(1)
 1008 0420 2093 0000 		sts make,r18
 188:main.c        **** if((PIND&0x0c)==0x0c)return;
 1010               	.LM118:
 1011 0424 80B3      		in r24,48-0x20
 1012 0426 9927      		clr r25
 1013 0428 8C70      		andi r24,lo8(12)
 1014 042a 9070      		andi r25,hi8(12)
 1015 042c 0C97      		sbiw r24,12
 1016 042e 59F0      		breq .L102
 189:main.c        **** if(s_down){s_down=0;return;}
 1018               	.LM119:
 1019 0430 8091 0000 		lds r24,s_down
 1020 0434 8823      		tst r24
 1021 0436 19F0      		breq .L104
 1022 0438 1092 0000 		sts s_down,__zero_reg__
 1023 043c 04C0      		rjmp .L102
 1024               	.L104:
 190:main.c        ****  s_up=1;
 1026               	.LM120:
 1027 043e 2093 0000 		sts s_up,r18
 191:main.c        ****  int_=1;
 1029               	.LM121:
 1030 0442 2093 0000 		sts int_,r18
 1031               	.L102:
 1032               	/* epilogue: frame size=0 */
 1033 0446 9F91      		pop r25
 1034 0448 8F91      		pop r24
 1035 044a 2F91      		pop r18
 1036 044c 0F90      		pop __tmp_reg__
 1037 044e 0FBE      		out __SREG__,__tmp_reg__
 1038 0450 0F90      		pop __tmp_reg__
 1039 0452 1F90      		pop __zero_reg__
 1040 0454 1895      		reti
 1041               	/* epilogue end (size=8) */
 1042               	/* function __vector_1 size 37 (21) */
 1044               	.Lscope12:
 1046               	.global	__vector_2
 1048               	__vector_2:
 192:main.c        **** }
 193:main.c        **** SIGNAL(SIG_INTERRUPT1){
 1050               	.LM122:
 1051               	/* prologue: frame size=0 */
 1052 0456 1F92      		push __zero_reg__
 1053 0458 0F92      		push __tmp_reg__
 1054 045a 0FB6      		in __tmp_reg__,__SREG__
 1055 045c 0F92      		push __tmp_reg__
 1056 045e 1124      		clr __zero_reg__
 1057 0460 2F93      		push r18
 1058 0462 8F93      		push r24
 1059 0464 9F93      		push r25
 1060               	/* prologue end (size=8) */
 194:main.c        **** make=1;//有修改
 1062               	.LM123:
 1063 0466 21E0      		ldi r18,lo8(1)
 1064 0468 2093 0000 		sts make,r18
 195:main.c        **** if((PIND&0x0c)==0x0c)return;
 1066               	.LM124:
 1067 046c 80B3      		in r24,48-0x20
 1068 046e 9927      		clr r25
 1069 0470 8C70      		andi r24,lo8(12)
 1070 0472 9070      		andi r25,hi8(12)
 1071 0474 0C97      		sbiw r24,12
 1072 0476 61F0      		breq .L105
 196:main.c        **** if(s_up){s_up=0;return;}
 1074               	.LM125:
 1075 0478 8091 0000 		lds r24,s_up
 1076 047c 8823      		tst r24
 1077 047e 19F0      		breq .L107
 1078 0480 1092 0000 		sts s_up,__zero_reg__
 1079 0484 05C0      		rjmp .L105
 1080               	.L107:
 197:main.c        ****  s_down=1;
 1082               	.LM126:
 1083 0486 2093 0000 		sts s_down,r18
 198:main.c        ****  int_=2;
 1085               	.LM127:
 1086 048a 82E0      		ldi r24,lo8(2)
 1087 048c 8093 0000 		sts int_,r24
 1088               	.L105:
 1089               	/* epilogue: frame size=0 */
 1090 0490 9F91      		pop r25
 1091 0492 8F91      		pop r24
 1092 0494 2F91      		pop r18
 1093 0496 0F90      		pop __tmp_reg__
 1094 0498 0FBE      		out __SREG__,__tmp_reg__
 1095 049a 0F90      		pop __tmp_reg__
 1096 049c 1F90      		pop __zero_reg__
 1097 049e 1895      		reti
 1098               	/* epilogue end (size=8) */
 1099               	/* function __vector_2 size 38 (22) */
 1101               	.Lscope13:
 1103               	.global	daly
 1105               	daly:
 199:main.c        **** }
 200:main.c        **** 
 201:main.c        **** void daly(void){
 1107               	.LM128:
 1108               	/* prologue: frame size=0 */
 1109               	/* prologue end (size=0) */
 202:main.c        ****   uch x,y;
 203:main.c        ****     for(x=100;x!=0;x--);
 1111               	.LM129:
 1112 04a0 84E6      		ldi r24,lo8(100)
 1113               	.L112:
 1115               	.LM130:
 1116 04a2 8253      		subi r24,lo8(-(-50))
 1117 04a4 F1F7      		brne .L112
 204:main.c        ****     for(y=250;y!=0;y--)for(x=250;x!=0;x--);
 1119               	.LM131:
 1120 04a6 9AEF      		ldi r25,lo8(-6)
 1121               	.L120:
 1122 04a8 8AEF      		ldi r24,lo8(-6)
 1123               	.L119:
 1124 04aa 8150      		subi r24,lo8(-(-1))
 1125 04ac F1F7      		brne .L119
 1126 04ae 9150      		subi r25,lo8(-(-1))
 1127 04b0 D9F7      		brne .L120
 1128               	/* epilogue: frame size=0 */
 1129 04b2 0895      		ret
 1130               	/* epilogue end (size=1) */
 1131               	/* function daly size 13 (12) */
 1137               	.Lscope14:
 1139               	.global	ini
 1141               	ini:
 205:main.c        **** 	}
 206:main.c        **** 
 207:main.c        **** void ini(void){
 1143               	.LM132:
 1144               	/* prologue: frame size=0 */
 1145               	/* prologue end (size=0) */
 208:main.c        ****   
 209:main.c        ****     PORTD=0xff;
 1147               	.LM133:
 1148 04b4 8FEF      		ldi r24,lo8(-1)
 1149 04b6 82BB      		out 50-0x20,r24
 210:main.c        **** 	PORTB=0xff;
 1151               	.LM134:
 1152 04b8 88BB      		out 56-0x20,r24
 211:main.c        **** 	DDRB=0xff;
 1154               	.LM135:
 1155 04ba 87BB      		out 55-0x20,r24
 212:main.c        **** 	DDRC=0xff;
 1157               	.LM136:
 1158 04bc 84BB      		out 52-0x20,r24
 213:main.c        **** 	DDRA=0x0;
 1160               	.LM137:
 1161 04be 1ABA      		out 58-0x20,__zero_reg__
 214:main.c        **** 	DDRD=0xf0;
 1163               	.LM138:
 1164 04c0 80EF      		ldi r24,lo8(-16)
 1165 04c2 81BB      		out 49-0x20,r24
 215:main.c        **** daly();
 1167               	.LM139:
 1168 04c4 0E94 0000 		call daly
 216:main.c        ****     cli();
 1170               	.LM140:
 1171               	/* #APP */
 1172 04c8 F894      		cli
 217:main.c        **** 	c_b(ASSR,AS2);
 1174               	.LM141:
 1175               	/* #NOAPP */
 1176 04ca 82B5      		in r24,66-0x20
 1177 04cc 877F      		andi r24,lo8(-9)
 1178 04ce 82BD      		out 66-0x20,r24
 218:main.c        **** 	s_b(MCUCSR,JTD);s_b(MCUCSR,JTD);//关闭JTAG
 1180               	.LM142:
 1181 04d0 84B7      		in r24,84-0x20
 1182 04d2 8068      		ori r24,lo8(-128)
 1183 04d4 84BF      		out 84-0x20,r24
 1184 04d6 84B7      		in r24,84-0x20
 1185 04d8 8068      		ori r24,lo8(-128)
 1186 04da 84BF      		out 84-0x20,r24
 219:main.c        ****     ADMUX=0xC0;//选择第七通道换转
 1188               	.LM143:
 1189 04dc 90EC      		ldi r25,lo8(-64)
 1190 04de 97B9      		out 39-0x20,r25
 220:main.c        **** 	ADCSRA=_BV(ADEN)|_BV(ADSC)|_BV(ADPS0)|_BV(ADSC)|_BV(ADIE);
 1192               	.LM144:
 1193 04e0 89EC      		ldi r24,lo8(-55)
 1194 04e2 86B9      		out 38-0x20,r24
 221:main.c        **** 
 222:main.c        **** 	GICR=0xc0;//设置中断
 1196               	.LM145:
 1197 04e4 9BBF      		out 91-0x20,r25
 223:main.c        **** 	MCUCR=0x0f;
 1199               	.LM146:
 1200 04e6 8FE0      		ldi r24,lo8(15)
 1201 04e8 85BF      		out 85-0x20,r24
 224:main.c        **** 	
 225:main.c        **** 	TCCR0=(1<<CS02)|(1<<CS00);
 1203               	.LM147:
 1204 04ea 85E0      		ldi r24,lo8(5)
 1205 04ec 83BF      		out 83-0x20,r24
 226:main.c        **** 	TCCR1A=(1<<WGM11)|0xa0;
 1207               	.LM148:
 1208 04ee 82EA      		ldi r24,lo8(-94)
 1209 04f0 8FBD      		out 79-0x20,r24
 227:main.c        **** 	TCCR1B=(1<<WGM13)|(1<<CS10);//
 1211               	.LM149:
 1212 04f2 81E1      		ldi r24,lo8(17)
 1213 04f4 8EBD      		out 78-0x20,r24
 228:main.c        **** 	ICR1=2000;
 1215               	.LM150:
 1216 04f6 80ED      		ldi r24,lo8(2000)
 1217 04f8 97E0      		ldi r25,hi8(2000)
 1218 04fa 97BD      		out (70)+1-0x20,r25
 1219 04fc 86BD      		out 70-0x20,r24
 229:main.c        **** 	lcdini();
 1221               	.LM151:
 1222 04fe 0E94 0000 		call lcdini
 230:main.c        **** 	ch_sp=&xy_ch;
 1224               	.LM152:
 1225 0502 80E0      		ldi r24,lo8(xy_ch)
 1226 0504 90E0      		ldi r25,hi8(xy_ch)
 1227 0506 9093 0000 		sts (ch_sp)+1,r25
 1228 050a 8093 0000 		sts ch_sp,r24
 231:main.c        **** 	ch_x=0;
 1230               	.LM153:
 1231 050e 1092 0000 		sts ch_x,__zero_reg__
 232:main.c        **** 	xini(0);
 1233               	.LM154:
 1234 0512 80E0      		ldi r24,lo8(0)
 1235 0514 0E94 0000 		call xini
 233:main.c        **** 	dlay(80);
 1237               	.LM155:
 1238 0518 80E5      		ldi r24,lo8(80)
 1239 051a 90E0      		ldi r25,hi8(80)
 1240 051c 0E94 0000 		call dlay
 234:main.c        **** 	TCNT0=220;
 1242               	.LM156:
 1243 0520 8CED      		ldi r24,lo8(-36)
 1244 0522 82BF      		out 82-0x20,r24
 235:main.c        **** 	
 236:main.c        **** 	
 237:main.c        **** 	TIMSK=(1<<TOIE0);
 1246               	.LM157:
 1247 0524 81E0      		ldi r24,lo8(1)
 1248 0526 89BF      		out 89-0x20,r24
 238:main.c        **** 	sei();
 1250               	.LM158:
 1251               	/* #APP */
 1252 0528 7894      		sei
 1253               	/* #NOAPP */
 1254               	/* epilogue: frame size=0 */
 1255 052a 0895      		ret
 1256               	/* epilogue end (size=1) */
 1257               	/* function ini size 62 (61) */
 1259               	.Lscope15:
 1262               	.global	shu_f
 1264               	shu_f:
 239:main.c        **** 	
 240:main.c        ****   }
 241:main.c        ****   uch dip;//小数点
 242:main.c        ****   uch shu_z;//符号
 243:main.c        ****   uch _shu[6];
 244:main.c        ****   void shu_f(int x){
 1266               	.LM159:
 1267               	/* prologue: frame size=0 */
 1268               	/* prologue end (size=0) */
 1269 052c 9C01      		movw r18,r24
 245:main.c        ****   uint tep;
 246:main.c        ****     if(x<0){shu_z=1;x=~x+1;}
 1271               	.LM160:
 1272 052e 97FF      		sbrs r25,7
 1273 0530 06C0      		rjmp .L229
 1275               	.LM161:
 1276 0532 81E0      		ldi r24,lo8(1)
 1277 0534 8093 0000 		sts shu_z,r24
 1278 0538 3095      		com r19
 1279 053a 2195      		neg r18
 1280 053c 3F4F      		sbci r19,lo8(-1)
 1281               	.L229:
 247:main.c        **** 	_shu[3]=x/1000;
 1283               	.LM162:
 1284 053e C901      		movw r24,r18
 1285 0540 68EE      		ldi r22,lo8(1000)
 1286 0542 73E0      		ldi r23,hi8(1000)
 1287 0544 0E94 0000 		call __divmodhi4
 1288 0548 6093 0000 		sts _shu+3,r22
 248:main.c        **** 	tep=x%1000;
 1290               	.LM163:
 1291 054c C901      		movw r24,r18
 1292 054e 68EE      		ldi r22,lo8(1000)
 1293 0550 73E0      		ldi r23,hi8(1000)
 1294 0552 0E94 0000 		call __divmodhi4
 1295 0556 9C01      		movw r18,r24
 249:main.c        **** 	_shu[2]=tep/100;
 1297               	.LM164:
 1298 0558 64E6      		ldi r22,lo8(100)
 1299 055a 70E0      		ldi r23,hi8(100)
 1300 055c 0E94 0000 		call __udivmodhi4
 1301 0560 6093 0000 		sts _shu+2,r22
 250:main.c        **** 	x=tep%100;
 1303               	.LM165:
 1304 0564 C901      		movw r24,r18
 1305 0566 64E6      		ldi r22,lo8(100)
 1306 0568 70E0      		ldi r23,hi8(100)
 1307 056a 0E94 0000 		call __udivmodhi4
 1308 056e 9C01      		movw r18,r24
 251:main.c        **** 	_shu[1]=x/10;
 1310               	.LM166:
 1311 0570 6AE0      		ldi r22,lo8(10)
 1312 0572 70E0      		ldi r23,hi8(10)
 1313 0574 0E94 0000 		call __divmodhi4
 1314 0578 6093 0000 		sts _shu+1,r22
 252:main.c        ****     _shu[0]=x%10; 
 1316               	.LM167:
 1317 057c C901      		movw r24,r18
 1318 057e 6AE0      		ldi r22,lo8(10)
 1319 0580 70E0      		ldi r23,hi8(10)
 1320 0582 0E94 0000 		call __divmodhi4
 1321 0586 8093 0000 		sts _shu,r24
 1322               	/* epilogue: frame size=0 */
 1323 058a 0895      		ret
 1324               	/* epilogue end (size=1) */
 1325               	/* function shu_f size 48 (47) */
 1327               	.Lscope16:
 1331               	.global	di_OA
 1333               	di_OA:
 253:main.c        **** 	}
 254:main.c        ****   void di_OA(int x,uch a){//下行显示电流
 1335               	.LM168:
 1336               	/* prologue: frame size=0 */
 1337 058c FF92      		push r15
 1338 058e 0F93      		push r16
 1339 0590 1F93      		push r17
 1340               	/* prologue end (size=3) */
 1341 0592 162F      		mov r17,r22
 255:main.c        ****    shu_f(x);
 1343               	.LM169:
 1344 0594 0E94 0000 		call shu_f
 256:main.c        ****    xy_ch[a][0]='V';
 1346               	.LM170:
 1347 0598 012F      		mov r16,r17
 1348 059a 1127      		clr r17
 1349 059c 33E0      		ldi r19,3
 1350 059e 000F      	1:	lsl r16
 1351 05a0 111F      		rol r17
 1352 05a2 3A95      		dec r19
 1353 05a4 E1F7      		brne 1b
 1354 05a6 0050      		subi r16,lo8(-(xy_ch))
 1355 05a8 1040      		sbci r17,hi8(-(xy_ch))

⌨️ 快捷键说明

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