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

📄 main.lst

📁 avr常用功能程序中包含了pwm、adc、中断、定时、i2c等各程序可供开发者直接使用
💻 LST
📖 第 1 页 / 共 4 页
字号:
 1013 0470 8983      		std Y+1,r24
 120:main.c        **** 	ds1302_read_time();
 1015               	.LM109:
 1016 0472 82DF      		rcall ds1302_read_time
 121:main.c        **** 	led_data[0]=hour>>4;
 1018               	.LM110:
 1019 0474 8091 0000 		lds r24,hour
 1020 0478 8295      		swap r24
 1021 047a 8F70      		andi r24,0x0f
 1022 047c 8093 0000 		sts led_data,r24
 122:main.c        **** 	led_data[1]=hour&0x0f;
 1024               	.LM111:
 1025 0480 8091 0000 		lds r24,hour
 1026 0484 8F70      		andi r24,lo8(15)
 1027 0486 8093 0000 		sts led_data+1,r24
 123:main.c        **** 
 124:main.c        **** 	PORTD=0Xfe;
 1029               	.LM112:
 1030 048a 8EEF      		ldi r24,lo8(-2)
 1031 048c 8093 3200 		sts 50,r24
 125:main.c        **** 	transmission_byte(led[led_data[1]]);
 1033               	.LM113:
 1034 0490 8091 0000 		lds r24,led_data+1
 1035 0494 9927      		clr r25
 1036 0496 FC01      		movw r30,r24
 1037 0498 E050      		subi r30,lo8(-(led))
 1038 049a F040      		sbci r31,hi8(-(led))
 1039 049c 8081      		ld r24,Z
 1040 049e 15D0      		rcall transmission_byte
 1041               	.L49:
 126:main.c        **** 	while(1);
 1043               	.LM114:
 1044 04a0 FFCF      		rjmp .L49
 1045               	/* epilogue: frame size=1 */
 1046               	/* epilogue: noreturn */
 1047               	/* epilogue end (size=0) */
 1048               	/* function main size 36 (32) */
 1053               	.Lscope11:
 1055               	.global	init
 1057               	init:
 127:main.c        **** 	delay(650);	
 128:main.c        **** 	PORTD=0Xfd;
 129:main.c        **** 	transmission_byte(0x00);
 130:main.c        **** 	delay(650);
 131:main.c        **** 
 132:main.c        **** 	
 133:main.c        **** 	PORTD=0Xfb;
 134:main.c        **** 	transmission_byte(led[1]);
 135:main.c        **** 	delay(650);
 136:main.c        **** 	
 137:main.c        **** 	PORTD=0Xf7;
 138:main.c        **** 	transmission_byte(~led[1]);
 139:main.c        **** 
 140:main.c        **** 	delay(650);
 141:main.c        **** 	}
 142:main.c        **** }
 143:main.c        **** //	year=0x06,month=0x03,day=0x15,week=0x02;
 144:main.c        **** //	hour=0x10,minute=0x54,second=0x00;
 145:main.c        **** //	ds1302_write_time();//写入调整后的时间
 146:main.c        **** //	ds1302_read_time();
 147:main.c        **** /*	
 148:main.c        **** 				led_data[0]=hour>>4;
 149:main.c        **** 				led_data[1]=hour&0x0f;
 150:main.c        **** 				led_data[2]=minute>>4;
 151:main.c        **** 				led_data[3]=minute&0x0f;
 152:main.c        **** 	*/			
 153:main.c        **** /*	while(1)
 154:main.c        **** 	{
 155:main.c        **** 		switch(_key_())
 156:main.c        **** 		{
 157:main.c        **** 			case 1:
 158:main.c        **** 				if(++work_mode>4)work_mode=run_mode;
 159:main.c        **** 				break;
 160:main.c        **** 			case 2:
 161:main.c        **** 				break;
 162:main.c        **** 			case 3:
 163:main.c        **** 				break;
 164:main.c        **** 			case 4:
 165:main.c        **** 				break;
 166:main.c        **** 		}	
 167:main.c        **** 		switch(work_mode)
 168:main.c        **** 		{
 169:main.c        **** 			case run_mode:
 170:main.c        **** 				break;
 171:main.c        **** 			case T_time:
 172:main.c        **** 				setting_time();
 173:main.c        **** 				break;
 174:main.c        **** 			case T_rg:
 175:main.c        **** 				break;
 176:main.c        **** 			case T_yellow:
 177:main.c        **** 				break;
 178:main.c        **** 		}
 179:main.c        **** 		
 180:main.c        **** 	}
 181:main.c        **** }	
 182:main.c        **** /************************************************
 183:main.c        **** 调用方式:void setting_time(void)
 184:main.c        **** 函数说明:
 185:main.c        **** 传递参数:无
 186:main.c        **** 返 回 值:无
 187:main.c        **** ************************************************/
 188:main.c        **** /*void setting_time(void)
 189:main.c        **** {
 190:main.c        **** //	TIMSK=~_BV(TOIE0);			//T0溢出中断禁止
 191:main.c        **** //	TIMSK=_BV(TOIE0);			//T0溢出中断使能	
 192:main.c        **** 	uint i=10000;
 193:main.c        **** 	work_m=0;
 194:main.c        **** 	ds1302_read_time();
 195:main.c        **** 	while(--i)
 196:main.c        **** 	{
 197:main.c        **** 		switch(_key_())
 198:main.c        **** 		{
 199:main.c        **** 			case 1:
 200:main.c        **** 				if(++work_mode>=4)work_mode=1;
 201:main.c        **** 				ds1302_write_time();//写入调整后的时间
 202:main.c        **** 				return;
 203:main.c        **** 				break;
 204:main.c        **** 			case 2:
 205:main.c        **** 				if(work_m==T_h)
 206:main.c        **** 				hour++;
 207:main.c        **** 				if(work_m==T_m)
 208:main.c        **** 				minute++;
 209:main.c        **** 				if(work_m==0)
 210:main.c        **** 				break;
 211:main.c        **** 			case 3:
 212:main.c        **** 				if(++work_m>=3)work_m=0;
 213:main.c        **** 				break;		
 214:main.c        **** 		}
 215:main.c        **** 		switch(work_m)
 216:main.c        **** 		{
 217:main.c        **** 			case T_h://显示调整中的小时
 218:main.c        **** 				led_data[0]=hour>>4;
 219:main.c        **** 				led_data[1]=hour&0x0f;
 220:main.c        **** 				led_data[2]=NULL;
 221:main.c        **** 				led_data[3]=NULL;
 222:main.c        **** 				break;
 223:main.c        **** 			case T_m://显示调整中的分
 224:main.c        **** 				led_data[0]=NULL;
 225:main.c        **** 				led_data[1]=NULL;
 226:main.c        **** 				led_data[2]=minute>>4;
 227:main.c        **** 				led_data[3]=minute&0x0f;
 228:main.c        **** 				break;
 229:main.c        **** 			case 0://显示当前时间或调整后的时间
 230:main.c        **** 				led_data[0]=hour>>4;
 231:main.c        **** 				led_data[1]=hour&0x0f;
 232:main.c        **** 				led_data[2]=minute>>4;
 233:main.c        **** 				led_data[3]=minute&0x0f;			
 234:main.c        **** 				break;
 235:main.c        **** 		}
 236:main.c        **** 	}
 237:main.c        **** }
 238:main.c        **** /************************************************
 239:main.c        **** 调用方式:void init(void)
 240:main.c        **** 函数说明:
 241:main.c        **** 传递参数:无
 242:main.c        **** 返 回 值:无
 243:main.c        **** ************************************************/
 244:main.c        **** void init(void)
 245:main.c        **** {
 1059               	.LM115:
 1060               	/* prologue: frame size=0 */
 1061 04a2 CF93      		push r28
 1062 04a4 DF93      		push r29
 1063 04a6 CDB7      		in r28,__SP_L__
 1064 04a8 DEB7      		in r29,__SP_H__
 1065               	/* prologue end (size=4) */
 246:main.c        **** //	T0_INIT();
 247:main.c        **** 	color=0;
 1067               	.LM116:
 1068 04aa 1092 0000 		sts color,__zero_reg__
 248:main.c        **** 	jtd_row=0;
 1070               	.LM117:
 1071 04ae 1092 0000 		sts jtd_row,__zero_reg__
 249:main.c        **** 	work_mode=run_mode;
 1073               	.LM118:
 1074 04b2 81E0      		ldi r24,lo8(1)
 1075 04b4 8093 0000 		sts work_mode,r24
 250:main.c        **** 	//DDRB|=_BV(PB6);//为595锁存信号
 251:main.c        **** 	//DDRB|=_BV(PB0);
 252:main.c        **** 	//DDRB|=_BV(PB1);
 253:main.c        **** 	DDRB=0XFF;
 1077               	.LM119:
 1078 04b8 8FEF      		ldi r24,lo8(-1)
 1079 04ba 8093 3700 		sts 55,r24
 254:main.c        **** 	DDRD=0xFF;//设置PD口高四位为按键输入,高四位设置为数码管位控输出
 1081               	.LM120:
 1082 04be 8FEF      		ldi r24,lo8(-1)
 1083 04c0 8093 3100 		sts 49,r24
 1084               	/* epilogue: frame size=0 */
 1085 04c4 DF91      		pop r29
 1086 04c6 CF91      		pop r28
 1087 04c8 0895      		ret
 1088               	/* epilogue end (size=3) */
 1089               	/* function init size 20 (13) */
 1091               	.Lscope12:
 1094               	.global	transmission_byte
 1096               	transmission_byte:
 255:main.c        **** }
 256:main.c        **** 
 257:main.c        **** 
 258:main.c        **** 
 259:main.c        **** /************************************************
 260:main.c        **** 调用方式:uchar transmission_byte(uchar x_byte)
 261:main.c        **** 函数说明:用IO口模拟SPI发送一个字节数据
 262:main.c        **** 传递参数:发送数据 uchar x_byte
 263:main.c        **** 返 回 值:无
 264:main.c        **** ************************************************/
 265:main.c        **** 
 266:main.c        **** void transmission_byte(uchar x_byte)
 267:main.c        **** {
 1098               	.LM121:
 1099               	/* prologue: frame size=3 */
 1100 04ca CF93      		push r28
 1101 04cc DF93      		push r29
 1102 04ce CDB7      		in r28,__SP_L__
 1103 04d0 DEB7      		in r29,__SP_H__
 1104 04d2 2397      		sbiw r28,3
 1105 04d4 0FB6      		in __tmp_reg__,__SREG__
 1106 04d6 F894      		cli
 1107 04d8 DEBF      		out __SP_H__,r29
 1108 04da 0FBE      		out __SREG__,__tmp_reg__
 1109 04dc CDBF      		out __SP_L__,r28
 1110               	/* prologue end (size=10) */
 1111 04de 8983      		std Y+1,r24
 268:main.c        **** 	unsigned char i,j;
 269:main.c        **** 	for(i=0;i<8;i++)
 1113               	.LM122:
 1114 04e0 1A82      		std Y+2,__zero_reg__
 1115               	.L53:
 1117               	.LM123:
 1118 04e2 8A81      		ldd r24,Y+2
 1119 04e4 8830      		cpi r24,lo8(8)
 1120 04e6 40F5      		brsh .L52
 270:main.c        **** 	{
 271:main.c        **** 		j=x_byte&0x80;
 1122               	.LM124:
 1123 04e8 90E8      		ldi r25,lo8(-128)
 1124 04ea 8981      		ldd r24,Y+1
 1125 04ec 8923      		and r24,r25
 1126 04ee 8B83      		std Y+3,r24
 272:main.c        **** 		if(j==0x80)
 1128               	.LM125:
 1129 04f0 8B81      		ldd r24,Y+3
 1130 04f2 8038      		cpi r24,lo8(-128)
 1131 04f4 31F4      		brne .L56
 273:main.c        **** 			set_data();
 1133               	.LM126:
 1134 04f6 8091 3800 		lds r24,56
 1135 04fa 8260      		ori r24,lo8(2)
 1136 04fc 8093 3800 		sts 56,r24
 1137 0500 05C0      		rjmp .L57
 1138               	.L56:
 274:main.c        **** 		else clr_data();
 1140               	.LM127:
 1141 0502 8091 3800 		lds r24,56
 1142 0506 8D7F      		andi r24,lo8(-3)
 1143 0508 8093 3800 		sts 56,r24
 1144               	.L57:
 275:main.c        **** 			clr_clk(); 
 1146               	.LM128:
 1147 050c 8091 3800 		lds r24,56
 1148 0510 8E7F      		andi r24,lo8(-2)
 1149 0512 8093 3800 		sts 56,r24
 276:main.c        ****  			set_clk();
 1151               	.LM129:
 1152 0516 8091 3800 		lds r24,56
 1153 051a 8160      		ori r24,lo8(1)
 1154 051c 8093 3800 		sts 56,r24
 277:main.c        **** 			clr_clk();  
 1156               	.LM130:
 1157 0520 8091 3800 		lds r24,56
 1158 0524 8E7F      		andi r24,lo8(-2)
 1159 0526 8093 3800 		sts 56,r24
 278:main.c        **** 		x_byte=x_byte<<1; 
 1161               	.LM131:
 1162 052a 8981      		ldd r24,Y+1
 1163 052c 880F      		lsl r24
 1164 052e 8983      		std Y+1,r24
 1166               	.LM132:
 1167 0530 8A81      		ldd r24,Y+2
 1168 0532 8F5F      		subi r24,lo8(-(1))
 1169 0534 8A83      		std Y+2,r24
 1170 0536 D5CF      		rjmp .L53
 1171               	.L52:
 1172               	/* epilogue: frame size=3 */
 1173 0538 2396      		adiw r28,3
 1174 053a 0FB6      		in __tmp_reg__,__SREG__
 1175 053c F894      		cli
 1176 053e DEBF      		out __SP_H__,r29
 1177 0540 0FBE      		out __SREG__,__tmp_reg__
 1178 0542 CDBF      		out __SP_L__,r28
 1179 0544 DF91      		pop r29
 1180 0546 CF91      		pop r28
 1181 0548 0895      		ret
 1182               	/* epilogue end (size=9) */
 1183               	/* function transmission_byte size 64 (45) */
 1189               	.Lscope13:
 1190               		.comm data_Int1,1,1
 1191               		.comm data_Int2,1,1
 1192               		.comm jtd_data1,2,1
 1193               		.comm jtd_data2,2,1
 1194               		.comm color,1,1
 1195               		.comm key_data,1,1
 1196               		.comm work_mode,1,1
 1197               		.comm led_data,4,1
 1198               		.comm led_wei,1,1
 1199               		.comm t0_quantum,1,1
 1220               		.text
 1222               	Letext:
 1223               	/* File "main.c": code  679 = 0x02a7 ( 488), prologues 104, epilogues  87 */
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/cck1aaaa.s:61     .data:00000000 year
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/cck1aaaa.s:65     .data:00000001 month
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/cck1aaaa.s:69     .data:00000002 day
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/cck1aaaa.s:73     .data:00000003 week
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/cck1aaaa.s:77     .data:00000004 hour
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/cck1aaaa.s:81     .data:00000005 minute
                             .bss:00000002 second
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/cck1aaaa.s:89     .text:00000000 delay_1us
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/cck1aaaa.s:117    .text:00000010 delay_nus
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/cck1aaaa.s:172    .text:00000050 delay_1ms
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/cck1aaaa.s:233    .text:00000094 delay_nms
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/cck1aaaa.s:286    .text:000000d4 IO_INIT
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/cck1aaaa.s:312    .text:000000e8 ds1302_write
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/cck1aaaa.s:502    .text:00000206 ds1302_read
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/cck1aaaa.s:706    .text:00000332 check_ds1302
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/cck1aaaa.s:766    .text:00000378 ds1302_read_time
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/cck1aaaa.s:821    .text:000003be ds1302_write_time
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/cck1aaaa.s:911    .data:00000006 led
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/cck1aaaa.s:928    .bss:00000000 jtd_row
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/cck1aaaa.s:934    .bss:00000001 work_m
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/cck1aaaa.s:941    .text:0000041c delay
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/cck1aaaa.s:991    .text:0000045a main
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/cck1aaaa.s:1057   .text:000004a2 init
                            *COM*:00000004 led_data
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/cck1aaaa.s:1096   .text:000004ca transmission_byte
                            *COM*:00000001 color
                            *COM*:00000001 work_mode
                            *COM*:00000001 data_Int1
                            *COM*:00000001 data_Int2
                            *COM*:00000002 jtd_data1
                            *COM*:00000002 jtd_data2
                            *COM*:00000001 key_data
                            *COM*:00000001 led_wei
                            *COM*:00000001 t0_quantum
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/cck1aaaa.s:1222   .text:0000054a Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack

⌨️ 快捷键说明

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