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

📄 main.lst

📁 用CODEVISION编的 AVR单片机的振荡 程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
   1               		.file	"main.c"
   2               		.arch attiny13
   3               	__SREG__ = 0x3f
   4               	__SP_H__ = 0x3e
   5               	__SP_L__ = 0x3d
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  11               		.text
  12               	.Ltext0:
  73               		.lcomm pulse.0,1
  74               		.lcomm envelope.1,2
  75               		.data
  78               	enval.2:
  79 0000 FF        		.byte	-1
  82               	endrv.3:
  83 0001 FF        		.byte	-1
  84               		.lcomm temp.4,4
  85               		.lcomm acosum.5,1
  88               	timeout.6:
  89 0002 E0F7 0504 		.long	67500000
  90               		.text
  92               	.global	__vector_3
  94               	__vector_3:
   1:main.c        **** #include <avr/io.h>
   2:main.c        **** #include <avr/interrupt.h>
   3:main.c        **** #include <avr/sleep.h>
   4:main.c        **** 
   5:main.c        **** ISR(TIM0_OVF_vect) 
   6:main.c        **** {
  96               	.LM1:
  97               	/* prologue: frame size=0 */
  98 0000 1F92      		push __zero_reg__
  99 0002 0F92      		push __tmp_reg__
 100 0004 0FB6      		in __tmp_reg__,__SREG__
 101 0006 0F92      		push __tmp_reg__
 102 0008 1124      		clr __zero_reg__
 103 000a 2F93      		push r18
 104 000c 3F93      		push r19
 105 000e 4F93      		push r20
 106 0010 5F93      		push r21
 107 0012 8F93      		push r24
 108 0014 9F93      		push r25
 109 0016 AF93      		push r26
 110 0018 BF93      		push r27
 111               	/* prologue end (size=13) */
   7:main.c        **** 	static unsigned char pulse = 0;
   8:main.c        **** 	static unsigned int envelope = 0; 
   9:main.c        **** 	static unsigned char enval = 255;
  10:main.c        **** 	static unsigned char endrv = 255;
  11:main.c        **** 	static long temp;
  12:main.c        **** 	static unsigned char acosum = 0;
  13:main.c        **** 	static unsigned long timeout = 67500000L;
  14:main.c        **** 	
  15:main.c        **** 	if(timeout > 0) --timeout;
 113               	.LM2:
 114 001a 8091 0000 		lds r24,timeout.6
 115 001e 9091 0000 		lds r25,(timeout.6)+1
 116 0022 A091 0000 		lds r26,(timeout.6)+2
 117 0026 B091 0000 		lds r27,(timeout.6)+3
 118 002a 0097      		sbiw r24,0
 119 002c A105      		cpc r26,__zero_reg__
 120 002e B105      		cpc r27,__zero_reg__
 121 0030 59F0      		breq .L2
 123               	.LM3:
 124 0032 0197      		sbiw r24,1
 125 0034 A109      		sbc r26,__zero_reg__
 126 0036 B109      		sbc r27,__zero_reg__
 127 0038 8093 0000 		sts timeout.6,r24
 128 003c 9093 0000 		sts (timeout.6)+1,r25
 129 0040 A093 0000 		sts (timeout.6)+2,r26
 130 0044 B093 0000 		sts (timeout.6)+3,r27
 131               	.L2:
  16:main.c        **** 	
  17:main.c        **** 	if((pulse < 102) || (timeout == 0)) PORTB &= ~(1 << PB2);
 133               	.LM4:
 134 0048 3091 0000 		lds r19,pulse.0
 135 004c 3636      		cpi r19,lo8(102)
 136 004e 60F0      		brlo .L4
 137 0050 8091 0000 		lds r24,timeout.6
 138 0054 9091 0000 		lds r25,(timeout.6)+1
 139 0058 A091 0000 		lds r26,(timeout.6)+2
 140 005c B091 0000 		lds r27,(timeout.6)+3
 141 0060 0097      		sbiw r24,0
 142 0062 A105      		cpc r26,__zero_reg__
 143 0064 B105      		cpc r27,__zero_reg__
 144 0066 11F4      		brne .L3
 145               	.L4:
 146 0068 C298      		cbi 56-0x20,2
 147 006a 01C0      		rjmp .L5
 148               	.L3:
  18:main.c        **** 	else PORTB |= (1 << PB2);
 150               	.LM5:
 151 006c C29A      		sbi 56-0x20,2
 152               	.L5:
  19:main.c        **** 		
  20:main.c        **** 	acosum += (ACSR & (1 << ACO)) >> ACO;
 154               	.LM6:
 155 006e 88B1      		in r24,40-0x20
 156 0070 9927      		clr r25
 157 0072 8072      		andi r24,lo8(32)
 158 0074 9070      		andi r25,hi8(32)
 159 0076 45E0      		ldi r20,5
 160 0078 9595      	1:	asr r25
 161 007a 8795      		ror r24
 162 007c 4A95      		dec r20
 163 007e E1F7      		brne 1b
 164 0080 2091 0000 		lds r18,acosum.5
 165 0084 280F      		add r18,r24
 166 0086 2093 0000 		sts acosum.5,r18
  21:main.c        **** 	
  22:main.c        **** 	if(++pulse == 106) 
 168               	.LM7:
 169 008a 832F      		mov r24,r19
 170 008c 8F5F      		subi r24,lo8(-(1))
 171 008e 8093 0000 		sts pulse.0,r24
 172 0092 8A36      		cpi r24,lo8(106)
 173 0094 09F0      		breq .+2
 174 0096 BEC0      		rjmp .L1
  23:main.c        **** 	{
  24:main.c        **** 		pulse = 0;
 176               	.LM8:
 177 0098 1092 0000 		sts pulse.0,__zero_reg__
  25:main.c        **** 		if(envelope < 45) endrv = 255; 
 179               	.LM9:
 180 009c 8091 0000 		lds r24,envelope.1
 181 00a0 9091 0000 		lds r25,(envelope.1)+1
 182 00a4 8D32      		cpi r24,45
 183 00a6 9105      		cpc r25,__zero_reg__
 184 00a8 D8F1      		brlo .L29
  26:main.c        **** 		else if(envelope < 65) endrv = 0;
 186               	.LM10:
 187 00aa 8134      		cpi r24,65
 188 00ac 9105      		cpc r25,__zero_reg__
 189 00ae 60F0      		brlo .L42
  27:main.c        **** 		else if(envelope < 95) endrv = 60;
 191               	.LM11:
 192 00b0 8F35      		cpi r24,95
 193 00b2 9105      		cpc r25,__zero_reg__
 194 00b4 10F4      		brsh .L11
 195 00b6 8CE3      		ldi r24,lo8(60)
 196 00b8 34C0      		rjmp .L41
 197               	.L11:
  28:main.c        **** 		else if(envelope < 140) endrv = 40;
 199               	.LM12:
 200 00ba 8C38      		cpi r24,140
 201 00bc 9105      		cpc r25,__zero_reg__
 202 00be 58F0      		brlo .L43
  29:main.c        **** 		else if(envelope < 335) endrv = 0;
 204               	.LM13:
 205 00c0 21E0      		ldi r18,hi8(335)
 206 00c2 8F34      		cpi r24,lo8(335)
 207 00c4 9207      		cpc r25,r18
 208 00c6 18F4      		brsh .L15
 209               	.L42:
 210 00c8 1092 0000 		sts endrv.3,__zero_reg__
 211 00cc 2CC0      		rjmp .L8
 212               	.L15:
  30:main.c        **** 		else if(envelope < 340) endrv = 40;
 214               	.LM14:
 215 00ce 21E0      		ldi r18,hi8(340)
 216 00d0 8435      		cpi r24,lo8(340)
 217 00d2 9207      		cpc r25,r18
 218 00d4 10F4      		brsh .L17
 219               	.L43:
 220 00d6 88E2      		ldi r24,lo8(40)
 221 00d8 24C0      		rjmp .L41
 222               	.L17:
  31:main.c        **** 		else if(envelope < 400) endrv = 75;
 224               	.LM15:
 225 00da 21E0      		ldi r18,hi8(400)
 226 00dc 8039      		cpi r24,lo8(400)
 227 00de 9207      		cpc r25,r18
 228 00e0 10F4      		brsh .L19
 229 00e2 8BE4      		ldi r24,lo8(75)
 230 00e4 1EC0      		rjmp .L41
 231               	.L19:
  32:main.c        **** 		else if(envelope < 440) endrv = 90;
 233               	.LM16:
 234 00e6 21E0      		ldi r18,hi8(440)
 235 00e8 883B      		cpi r24,lo8(440)
 236 00ea 9207      		cpc r25,r18
 237 00ec 10F4      		brsh .L21
 238 00ee 8AE5      		ldi r24,lo8(90)
 239 00f0 18C0      		rjmp .L41
 240               	.L21:
  33:main.c        **** 		else if(envelope < 480) endrv = 110;
 242               	.LM17:
 243 00f2 21E0      		ldi r18,hi8(480)
 244 00f4 803E      		cpi r24,lo8(480)
 245 00f6 9207      		cpc r25,r18
 246 00f8 10F4      		brsh .L23
 247 00fa 8EE6      		ldi r24,lo8(110)
 248 00fc 12C0      		rjmp .L41
 249               	.L23:
  34:main.c        **** 		else if(envelope < 490) endrv = 180;
 251               	.LM18:
 252 00fe 21E0      		ldi r18,hi8(490)
 253 0100 8A3E      		cpi r24,lo8(490)
 254 0102 9207      		cpc r25,r18
 255 0104 10F4      		brsh .L25
 256 0106 84EB      		ldi r24,lo8(-76)
 257 0108 0CC0      		rjmp .L41
 258               	.L25:
  35:main.c        **** 		else if(envelope < 510) endrv = 190;
 260               	.LM19:
 261 010a 21E0      		ldi r18,hi8(510)
 262 010c 8E3F      		cpi r24,lo8(510)
 263 010e 9207      		cpc r25,r18
 264 0110 10F4      		brsh .L27
 265 0112 8EEB      		ldi r24,lo8(-66)
 266 0114 06C0      		rjmp .L41
 267               	.L27:
  36:main.c        **** 		else if(envelope < 530) endrv = 200;
 269               	.LM20:
 270 0116 8251      		subi r24,lo8(530)
 271 0118 9240      		sbci r25,hi8(530)
 272 011a 10F4      		brsh .L29
 273 011c 88EC      		ldi r24,lo8(-56)
 274 011e 01C0      		rjmp .L41
 275               	.L29:
  37:main.c        **** 		else endrv = 255;
 277               	.LM21:
 278 0120 8FEF      		ldi r24,lo8(-1)
 279               	.L41:
 280 0122 8093 0000 		sts endrv.3,r24
 281               	.L8:
  38:main.c        **** 		

⌨️ 快捷键说明

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