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

📄 main.lss

📁 AVR单片机控制下的实时按键显示 实验条件 ⑴ SL-AVRAD编程开发实验板 (2) AVR系列单片机ATMega16(L) (3) AVR单片机的C语言编译器WinAVR (4) AVR单片
💻 LSS
字号:

main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         0000028e  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000014  00800060  0000028e  00000322  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000002  00800074  00800074  00000336  2**0
                  ALLOC
  3 .noinit       00000000  00800076  00800076  00000336  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  00000336  2**0
                  CONTENTS
  5 .stab         00000528  00000000  00000000  00000338  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00000589  00000000  00000000  00000860  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0c 94 2a 00 	jmp	0x54
   4:	0c 94 45 00 	jmp	0x8a
   8:	0c 94 45 00 	jmp	0x8a
   c:	0c 94 45 00 	jmp	0x8a
  10:	0c 94 45 00 	jmp	0x8a
  14:	0c 94 45 00 	jmp	0x8a
  18:	0c 94 45 00 	jmp	0x8a
  1c:	0c 94 45 00 	jmp	0x8a
  20:	0c 94 fd 00 	jmp	0x1fa
  24:	0c 94 45 00 	jmp	0x8a
  28:	0c 94 45 00 	jmp	0x8a
  2c:	0c 94 45 00 	jmp	0x8a
  30:	0c 94 45 00 	jmp	0x8a
  34:	0c 94 45 00 	jmp	0x8a
  38:	0c 94 45 00 	jmp	0x8a
  3c:	0c 94 45 00 	jmp	0x8a
  40:	0c 94 45 00 	jmp	0x8a
  44:	0c 94 45 00 	jmp	0x8a
  48:	0c 94 45 00 	jmp	0x8a
  4c:	0c 94 45 00 	jmp	0x8a
  50:	0c 94 45 00 	jmp	0x8a

00000054 <__ctors_end>:
  54:	11 24       	eor	r1, r1
  56:	1f be       	out	0x3f, r1	; 63
  58:	cf e5       	ldi	r28, 0x5F	; 95
  5a:	d4 e0       	ldi	r29, 0x04	; 4
  5c:	de bf       	out	0x3e, r29	; 62
  5e:	cd bf       	out	0x3d, r28	; 61

00000060 <__do_copy_data>:
  60:	10 e0       	ldi	r17, 0x00	; 0
  62:	a0 e6       	ldi	r26, 0x60	; 96
  64:	b0 e0       	ldi	r27, 0x00	; 0
  66:	ee e8       	ldi	r30, 0x8E	; 142
  68:	f2 e0       	ldi	r31, 0x02	; 2
  6a:	02 c0       	rjmp	.+4      	; 0x70

0000006c <.do_copy_data_loop>:
  6c:	05 90       	lpm	r0, Z+
  6e:	0d 92       	st	X+, r0

00000070 <.do_copy_data_start>:
  70:	a4 37       	cpi	r26, 0x74	; 116
  72:	b1 07       	cpc	r27, r17
  74:	d9 f7       	brne	.-10     	; 0x6c

00000076 <__do_clear_bss>:
  76:	10 e0       	ldi	r17, 0x00	; 0
  78:	a4 e7       	ldi	r26, 0x74	; 116
  7a:	b0 e0       	ldi	r27, 0x00	; 0
  7c:	01 c0       	rjmp	.+2      	; 0x80

0000007e <.do_clear_bss_loop>:
  7e:	1d 92       	st	X+, r1

00000080 <.do_clear_bss_start>:
  80:	a6 37       	cpi	r26, 0x76	; 118
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e
  86:	0c 94 2f 01 	jmp	0x25e

0000008a <__bad_interrupt>:
  8a:	0c 94 00 00 	jmp	0x0

0000008e <keyboard>:

uint8_t keyboard(void)
{
static uint8_t scancode=0xF7,tempnum=16,lastnum=16,currentnum=16,times=0;
 switch(scancode)
  8e:	80 91 70 00 	lds	r24, 0x0070
  92:	99 27       	eor	r25, r25
  94:	8b 3f       	cpi	r24, 0xFB	; 251
  96:	91 05       	cpc	r25, r1
  98:	69 f0       	breq	.+26     	; 0xb4
  9a:	8c 3f       	cpi	r24, 0xFC	; 252
  9c:	91 05       	cpc	r25, r1
  9e:	24 f4       	brge	.+8      	; 0xa8
  a0:	87 3f       	cpi	r24, 0xF7	; 247
  a2:	91 05       	cpc	r25, r1
  a4:	29 f0       	breq	.+10     	; 0xb0
  a6:	0a c0       	rjmp	.+20     	; 0xbc
  a8:	8d 3f       	cpi	r24, 0xFD	; 253
  aa:	91 05       	cpc	r25, r1
  ac:	29 f0       	breq	.+10     	; 0xb8
  ae:	06 c0       	rjmp	.+12     	; 0xbc
   {
    case 0xF7:scancode=0xFB;break;
  b0:	8b ef       	ldi	r24, 0xFB	; 251
  b2:	05 c0       	rjmp	.+10     	; 0xbe
    case 0xFB:scancode=0xFD;break;
  b4:	8d ef       	ldi	r24, 0xFD	; 253
  b6:	03 c0       	rjmp	.+6      	; 0xbe
    case 0xFD:scancode=0xFE;break;
  b8:	8e ef       	ldi	r24, 0xFE	; 254
  ba:	01 c0       	rjmp	.+2      	; 0xbe
    case 0xFE:scancode=0xF7;break;
    default:scancode=0xF7;break; 
  bc:	87 ef       	ldi	r24, 0xF7	; 247
  be:	80 93 70 00 	sts	0x0070, r24
   }
 KEYPORT=scancode;
  c2:	80 91 70 00 	lds	r24, 0x0070
  c6:	85 bb       	out	0x15, r24	; 21
  switch(KEYPIN)
  c8:	83 b3       	in	r24, 0x13	; 19
  ca:	99 27       	eor	r25, r25
  cc:	8e 3b       	cpi	r24, 0xBE	; 190
  ce:	91 05       	cpc	r25, r1
  d0:	09 f4       	brne	.+2      	; 0xd4
  d2:	6b c0       	rjmp	.+214    	; 0x1aa
  d4:	8f 3b       	cpi	r24, 0xBF	; 191
  d6:	91 05       	cpc	r25, r1
  d8:	34 f5       	brge	.+76     	; 0x126
  da:	8e 37       	cpi	r24, 0x7E	; 126
  dc:	91 05       	cpc	r25, r1
  de:	09 f4       	brne	.+2      	; 0xe2
  e0:	66 c0       	rjmp	.+204    	; 0x1ae
  e2:	8f 37       	cpi	r24, 0x7F	; 127
  e4:	91 05       	cpc	r25, r1
  e6:	8c f4       	brge	.+34     	; 0x10a
  e8:	8b 37       	cpi	r24, 0x7B	; 123
  ea:	91 05       	cpc	r25, r1
  ec:	09 f4       	brne	.+2      	; 0xf0
  ee:	4f c0       	rjmp	.+158    	; 0x18e
  f0:	8c 37       	cpi	r24, 0x7C	; 124
  f2:	91 05       	cpc	r25, r1
  f4:	2c f4       	brge	.+10     	; 0x100
  f6:	87 37       	cpi	r24, 0x77	; 119
  f8:	91 05       	cpc	r25, r1
  fa:	09 f4       	brne	.+2      	; 0xfe
  fc:	40 c0       	rjmp	.+128    	; 0x17e
  fe:	59 c0       	rjmp	.+178    	; 0x1b2
 100:	8d 37       	cpi	r24, 0x7D	; 125
 102:	91 05       	cpc	r25, r1
 104:	09 f4       	brne	.+2      	; 0x108
 106:	4b c0       	rjmp	.+150    	; 0x19e
 108:	54 c0       	rjmp	.+168    	; 0x1b2
 10a:	8b 3b       	cpi	r24, 0xBB	; 187
 10c:	91 05       	cpc	r25, r1
 10e:	e9 f1       	breq	.+122    	; 0x18a
 110:	8c 3b       	cpi	r24, 0xBC	; 188
 112:	91 05       	cpc	r25, r1
 114:	24 f4       	brge	.+8      	; 0x11e
 116:	87 3b       	cpi	r24, 0xB7	; 183
 118:	91 05       	cpc	r25, r1
 11a:	79 f1       	breq	.+94     	; 0x17a
 11c:	4a c0       	rjmp	.+148    	; 0x1b2
 11e:	8d 3b       	cpi	r24, 0xBD	; 189
 120:	91 05       	cpc	r25, r1
 122:	d9 f1       	breq	.+118    	; 0x19a
 124:	46 c0       	rjmp	.+140    	; 0x1b2
 126:	8e 3d       	cpi	r24, 0xDE	; 222
 128:	91 05       	cpc	r25, r1
 12a:	e9 f1       	breq	.+122    	; 0x1a6
 12c:	8f 3d       	cpi	r24, 0xDF	; 223
 12e:	91 05       	cpc	r25, r1
 130:	74 f4       	brge	.+28     	; 0x14e
 132:	8b 3d       	cpi	r24, 0xDB	; 219
 134:	91 05       	cpc	r25, r1
 136:	39 f1       	breq	.+78     	; 0x186
 138:	8c 3d       	cpi	r24, 0xDC	; 220
 13a:	91 05       	cpc	r25, r1
 13c:	24 f4       	brge	.+8      	; 0x146
 13e:	87 3d       	cpi	r24, 0xD7	; 215
 140:	91 05       	cpc	r25, r1
 142:	c9 f0       	breq	.+50     	; 0x176
 144:	36 c0       	rjmp	.+108    	; 0x1b2
 146:	8d 3d       	cpi	r24, 0xDD	; 221
 148:	91 05       	cpc	r25, r1
 14a:	29 f1       	breq	.+74     	; 0x196
 14c:	32 c0       	rjmp	.+100    	; 0x1b2
 14e:	8b 3e       	cpi	r24, 0xEB	; 235
 150:	91 05       	cpc	r25, r1
 152:	b9 f0       	breq	.+46     	; 0x182
 154:	8c 3e       	cpi	r24, 0xEC	; 236
 156:	91 05       	cpc	r25, r1
 158:	24 f4       	brge	.+8      	; 0x162
 15a:	87 3e       	cpi	r24, 0xE7	; 231
 15c:	91 05       	cpc	r25, r1
 15e:	41 f0       	breq	.+16     	; 0x170
 160:	28 c0       	rjmp	.+80     	; 0x1b2
 162:	8d 3e       	cpi	r24, 0xED	; 237
 164:	91 05       	cpc	r25, r1
 166:	a9 f0       	breq	.+42     	; 0x192
 168:	8e 3e       	cpi	r24, 0xEE	; 238
 16a:	91 05       	cpc	r25, r1
 16c:	d1 f0       	breq	.+52     	; 0x1a2
 16e:	21 c0       	rjmp	.+66     	; 0x1b2
   {
    case 0xE7:tempnum=0;times=0;break;
 170:	10 92 71 00 	sts	0x0071, r1
 174:	28 c0       	rjmp	.+80     	; 0x1c6
	case 0xD7:tempnum=1;times=0;break;
 176:	81 e0       	ldi	r24, 0x01	; 1
 178:	24 c0       	rjmp	.+72     	; 0x1c2
	case 0xB7:tempnum=2;times=0;break;
 17a:	82 e0       	ldi	r24, 0x02	; 2
 17c:	22 c0       	rjmp	.+68     	; 0x1c2
	case 0x77:tempnum=3;times=0;break;
 17e:	83 e0       	ldi	r24, 0x03	; 3
 180:	20 c0       	rjmp	.+64     	; 0x1c2
	case 0xEB:tempnum=4;times=0;break;
 182:	84 e0       	ldi	r24, 0x04	; 4
 184:	1e c0       	rjmp	.+60     	; 0x1c2
	case 0xDB:tempnum=5;times=0;break;
 186:	85 e0       	ldi	r24, 0x05	; 5
 188:	1c c0       	rjmp	.+56     	; 0x1c2
	case 0xBB:tempnum=6;times=0;break;
 18a:	86 e0       	ldi	r24, 0x06	; 6
 18c:	1a c0       	rjmp	.+52     	; 0x1c2
	case 0x7B:tempnum=7;times=0;break;
 18e:	87 e0       	ldi	r24, 0x07	; 7
 190:	18 c0       	rjmp	.+48     	; 0x1c2
	case 0xED:tempnum=8;times=0;break;
 192:	88 e0       	ldi	r24, 0x08	; 8
 194:	16 c0       	rjmp	.+44     	; 0x1c2
	case 0xDD:tempnum=9;times=0;break;
 196:	89 e0       	ldi	r24, 0x09	; 9
 198:	14 c0       	rjmp	.+40     	; 0x1c2
	case 0xBD:tempnum=10;times=0;break;
 19a:	8a e0       	ldi	r24, 0x0A	; 10
 19c:	12 c0       	rjmp	.+36     	; 0x1c2
	case 0x7D:tempnum=11;times=0;break;
 19e:	8b e0       	ldi	r24, 0x0B	; 11
 1a0:	10 c0       	rjmp	.+32     	; 0x1c2
	case 0xEE:tempnum=12;times=0;break;
 1a2:	8c e0       	ldi	r24, 0x0C	; 12
 1a4:	0e c0       	rjmp	.+28     	; 0x1c2
	case 0xDE:tempnum=13;times=0;break;
 1a6:	8d e0       	ldi	r24, 0x0D	; 13
 1a8:	0c c0       	rjmp	.+24     	; 0x1c2
	case 0xBE:tempnum=14;times=0;break;
 1aa:	8e e0       	ldi	r24, 0x0E	; 14
 1ac:	0a c0       	rjmp	.+20     	; 0x1c2
	case 0x7E:tempnum=15;times=0;break;
 1ae:	8f e0       	ldi	r24, 0x0F	; 15
 1b0:	08 c0       	rjmp	.+16     	; 0x1c2
    default:{
	          times++;
 1b2:	80 91 74 00 	lds	r24, 0x0074
 1b6:	8f 5f       	subi	r24, 0xFF	; 255
 1b8:	80 93 74 00 	sts	0x0074, r24
			  if(times==4)
 1bc:	84 30       	cpi	r24, 0x04	; 4
 1be:	29 f4       	brne	.+10     	; 0x1ca
			   {
			   tempnum=16;
 1c0:	80 e1       	ldi	r24, 0x10	; 16
 1c2:	80 93 71 00 	sts	0x0071, r24
			   times=0;
 1c6:	10 92 74 00 	sts	0x0074, r1
			   }
			 }break;
    }
lastnum=currentnum;
 1ca:	80 91 73 00 	lds	r24, 0x0073
 1ce:	80 93 72 00 	sts	0x0072, r24
currentnum=tempnum;
 1d2:	90 91 71 00 	lds	r25, 0x0071
 1d6:	90 93 73 00 	sts	0x0073, r25
if(currentnum==lastnum)return(16);
 1da:	98 17       	cp	r25, r24
 1dc:	19 f4       	brne	.+6      	; 0x1e4
 1de:	80 e1       	ldi	r24, 0x10	; 16
 1e0:	90 e0       	ldi	r25, 0x00	; 0
 1e2:	08 95       	ret
else return(currentnum);
 1e4:	89 2f       	mov	r24, r25
 1e6:	99 27       	eor	r25, r25
   
} 
 1e8:	08 95       	ret
 1ea:	08 95       	ret

000001ec <Initi_Device>:



uint8_t ledcode[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x67,0x77,0x7C,0x58,0x5E,0x79,0x71};
//uint8_t ledaddr[6]={0xDF,0xEF,0xF7,0xFB,0xFD,0xFE}; //for PD port  pd5=0,


void Initi_Device(void)
{
	LED_ADD_DDR=0xFF;
 1ec:	9f ef       	ldi	r25, 0xFF	; 255
 1ee:	91 bb       	out	0x11, r25	; 17
	LED_ADD_PORT=0xFE;
 1f0:	8e ef       	ldi	r24, 0xFE	; 254
 1f2:	82 bb       	out	0x12, r24	; 18

	LED_DATA_DDR=0xFF;
 1f4:	97 bb       	out	0x17, r25	; 23
	LED_DATA_PORT=0xFF;
 1f6:	98 bb       	out	0x18, r25	; 24
 1f8:	08 95       	ret

000001fa <__vector_8>:
}

SIGNAL(SIG_OVERFLOW1)
{
 1fa:	1f 92       	push	r1
 1fc:	0f 92       	push	r0
 1fe:	0f b6       	in	r0, 0x3f	; 63
 200:	0f 92       	push	r0
 202:	11 24       	eor	r1, r1
 204:	2f 93       	push	r18
 206:	3f 93       	push	r19
 208:	4f 93       	push	r20
 20a:	5f 93       	push	r21
 20c:	6f 93       	push	r22
 20e:	7f 93       	push	r23
 210:	8f 93       	push	r24
 212:	9f 93       	push	r25
 214:	af 93       	push	r26
 216:	bf 93       	push	r27
 218:	ef 93       	push	r30
 21a:	ff 93       	push	r31
	static uint8_t code_num=0;
	
	code_num=keyboard();
 21c:	0e 94 47 00 	call	0x8e
 220:	80 93 75 00 	sts	0x0075, r24
	
	if (code_num!=16)
 224:	80 31       	cpi	r24, 0x10	; 16
 226:	31 f0       	breq	.+12     	; 0x234
		LED_DATA_PORT=ledcode[code_num];
 228:	e8 2f       	mov	r30, r24
 22a:	ff 27       	eor	r31, r31
 22c:	e0 5a       	subi	r30, 0xA0	; 160
 22e:	ff 4f       	sbci	r31, 0xFF	; 255
 230:	80 81       	ld	r24, Z
 232:	88 bb       	out	0x18, r24	; 24

	TCNT1L=0xB2;
 234:	82 eb       	ldi	r24, 0xB2	; 178
 236:	8c bd       	out	0x2c, r24	; 44
	TCNT1H=0xFF;
 238:	8f ef       	ldi	r24, 0xFF	; 255
 23a:	8d bd       	out	0x2d, r24	; 45
 23c:	ff 91       	pop	r31
 23e:	ef 91       	pop	r30
 240:	bf 91       	pop	r27
 242:	af 91       	pop	r26
 244:	9f 91       	pop	r25
 246:	8f 91       	pop	r24
 248:	7f 91       	pop	r23
 24a:	6f 91       	pop	r22
 24c:	5f 91       	pop	r21
 24e:	4f 91       	pop	r20
 250:	3f 91       	pop	r19
 252:	2f 91       	pop	r18
 254:	0f 90       	pop	r0
 256:	0f be       	out	0x3f, r0	; 63
 258:	0f 90       	pop	r0
 25a:	1f 90       	pop	r1
 25c:	18 95       	reti

0000025e <main>:
}

int main(void)
{
 25e:	cf e5       	ldi	r28, 0x5F	; 95
 260:	d4 e0       	ldi	r29, 0x04	; 4
 262:	de bf       	out	0x3e, r29	; 62
 264:	cd bf       	out	0x3d, r28	; 61
	Initi_Device();
 266:	0e 94 f6 00 	call	0x1ec
	DDRC=0x0F;
 26a:	8f e0       	ldi	r24, 0x0F	; 15
 26c:	84 bb       	out	0x14, r24	; 20
	PORTC=0xFF;
 26e:	9f ef       	ldi	r25, 0xFF	; 255
 270:	95 bb       	out	0x15, r25	; 21
	TCNT1L=0xB2;
 272:	82 eb       	ldi	r24, 0xB2	; 178
 274:	8c bd       	out	0x2c, r24	; 44
	TCNT1H=0xFF;
 276:	9d bd       	out	0x2d, r25	; 45
	TCCR1A=0;
 278:	1f bc       	out	0x2f, r1	; 47
	TCCR1B=5;
 27a:	85 e0       	ldi	r24, 0x05	; 5
 27c:	8e bd       	out	0x2e, r24	; 46
	TIMSK=(1<<TOIE1);
 27e:	84 e0       	ldi	r24, 0x04	; 4
 280:	89 bf       	out	0x39, r24	; 57
	LED_ADD_PORT=0xDF;
 282:	8f ed       	ldi	r24, 0xDF	; 223
 284:	82 bb       	out	0x12, r24	; 18
	LED_DATA_PORT=0x3F;
 286:	8f e3       	ldi	r24, 0x3F	; 63
 288:	88 bb       	out	0x18, r24	; 24
	sei();
 28a:	78 94       	sei
	for(;;)
 28c:	ff cf       	rjmp	.-2      	; 0x28c

⌨️ 快捷键说明

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