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

📄 keyboard_uart.lss

📁 avr单片机的键盘程序和串口程序
💻 LSS
📖 第 1 页 / 共 2 页
字号:

keyboard_uart.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         0000037a  00000000  00000000  00000074  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000016  00800060  0000037a  000003ee  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000003  00800076  00000390  00000404  2**0
                  ALLOC
  3 .debug_aranges 00000060  00000000  00000000  00000404  2**0
                  CONTENTS, READONLY, DEBUGGING
  4 .debug_pubnames 000000b3  00000000  00000000  00000464  2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_info   00000242  00000000  00000000  00000517  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_abbrev 00000153  00000000  00000000  00000759  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_line   000002e4  00000000  00000000  000008ac  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_frame  000000b0  00000000  00000000  00000b90  2**2
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_str    000000d7  00000000  00000000  00000c40  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0c 94 2a 00 	jmp	0x54	; 0x54 <__ctors_end>
   4:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
   8:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
   c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  10:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  14:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  18:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  1c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  20:	0c 94 e4 00 	jmp	0x1c8	; 0x1c8 <__vector_8>
  24:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  28:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  2c:	0c 94 87 01 	jmp	0x30e	; 0x30e <__vector_11>
  30:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  34:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  38:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  3c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  40:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  44:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  48:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  4c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  50:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>

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:	ea e7       	ldi	r30, 0x7A	; 122
  68:	f3 e0       	ldi	r31, 0x03	; 3
  6a:	02 c0       	rjmp	.+4      	; 0x70 <.do_copy_data_start>

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

00000070 <.do_copy_data_start>:
  70:	a6 37       	cpi	r26, 0x76	; 118
  72:	b1 07       	cpc	r27, r17
  74:	d9 f7       	brne	.-10     	; 0x6c <.do_copy_data_loop>

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

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

00000080 <.do_clear_bss_start>:
  80:	a9 37       	cpi	r26, 0x79	; 121
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e <.do_clear_bss_loop>
  86:	0e 94 0e 01 	call	0x21c	; 0x21c <main>
  8a:	0c 94 bb 01 	jmp	0x376	; 0x376 <_exit>

0000008e <__bad_interrupt>:
  8e:	0c 94 00 00 	jmp	0	; 0x0 <__vectors>

00000092 <key>:
//------------键盘码表
unsigned char a,b,date;
unsigned char x[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};

void key()
 {
  92:	df 93       	push	r29
  94:	cf 93       	push	r28
  96:	00 d0       	rcall	.+0      	; 0x98 <key+0x6>
  98:	00 d0       	rcall	.+0      	; 0x9a <key+0x8>
  9a:	cd b7       	in	r28, 0x3d	; 61
  9c:	de b7       	in	r29, 0x3e	; 62

 DDRB=0X0F;//开始扫描
  9e:	e7 e3       	ldi	r30, 0x37	; 55
  a0:	f0 e0       	ldi	r31, 0x00	; 0
  a2:	8f e0       	ldi	r24, 0x0F	; 15
  a4:	80 83       	st	Z, r24
 PORTB=0XF0;
  a6:	e8 e3       	ldi	r30, 0x38	; 56
  a8:	f0 e0       	ldi	r31, 0x00	; 0
  aa:	80 ef       	ldi	r24, 0xF0	; 240
  ac:	80 83       	st	Z, r24
 if( PINB!=0xf0)
  ae:	e6 e3       	ldi	r30, 0x36	; 54
  b0:	f0 e0       	ldi	r31, 0x00	; 0
  b2:	80 81       	ld	r24, Z
  b4:	80 3f       	cpi	r24, 0xF0	; 240
  b6:	09 f4       	brne	.+2      	; 0xba <key+0x28>
  b8:	6b c0       	rjmp	.+214    	; 0x190 <key+0xfe>
  {
     switch(PINB)
  ba:	e6 e3       	ldi	r30, 0x36	; 54
  bc:	f0 e0       	ldi	r31, 0x00	; 0
  be:	80 81       	ld	r24, Z
  c0:	28 2f       	mov	r18, r24
  c2:	30 e0       	ldi	r19, 0x00	; 0
  c4:	3c 83       	std	Y+4, r19	; 0x04
  c6:	2b 83       	std	Y+3, r18	; 0x03
  c8:	8b 81       	ldd	r24, Y+3	; 0x03
  ca:	9c 81       	ldd	r25, Y+4	; 0x04
  cc:	80 3b       	cpi	r24, 0xB0	; 176
  ce:	91 05       	cpc	r25, r1
  d0:	e1 f0       	breq	.+56     	; 0x10a <key+0x78>
  d2:	2b 81       	ldd	r18, Y+3	; 0x03
  d4:	3c 81       	ldd	r19, Y+4	; 0x04
  d6:	21 3b       	cpi	r18, 0xB1	; 177
  d8:	31 05       	cpc	r19, r1
  da:	34 f4       	brge	.+12     	; 0xe8 <key+0x56>
  dc:	8b 81       	ldd	r24, Y+3	; 0x03
  de:	9c 81       	ldd	r25, Y+4	; 0x04
  e0:	80 37       	cpi	r24, 0x70	; 112
  e2:	91 05       	cpc	r25, r1
  e4:	b1 f0       	breq	.+44     	; 0x112 <key+0x80>
  e6:	18 c0       	rjmp	.+48     	; 0x118 <key+0x86>
  e8:	2b 81       	ldd	r18, Y+3	; 0x03
  ea:	3c 81       	ldd	r19, Y+4	; 0x04
  ec:	20 3d       	cpi	r18, 0xD0	; 208
  ee:	31 05       	cpc	r19, r1
  f0:	41 f0       	breq	.+16     	; 0x102 <key+0x70>
  f2:	8b 81       	ldd	r24, Y+3	; 0x03
  f4:	9c 81       	ldd	r25, Y+4	; 0x04
  f6:	80 3e       	cpi	r24, 0xE0	; 224
  f8:	91 05       	cpc	r25, r1
  fa:	71 f4       	brne	.+28     	; 0x118 <key+0x86>
      {
          case  0xe0:a=0;  break;
  fc:	10 92 78 00 	sts	0x0078, r1
 100:	0b c0       	rjmp	.+22     	; 0x118 <key+0x86>
          case  0xd0:a=1;  break;
 102:	81 e0       	ldi	r24, 0x01	; 1
 104:	80 93 78 00 	sts	0x0078, r24
 108:	07 c0       	rjmp	.+14     	; 0x118 <key+0x86>
          case  0xb0:a=2;  break;
 10a:	82 e0       	ldi	r24, 0x02	; 2
 10c:	80 93 78 00 	sts	0x0078, r24
 110:	03 c0       	rjmp	.+6      	; 0x118 <key+0x86>
          case  0x70:a=3;  break;
 112:	83 e0       	ldi	r24, 0x03	; 3
 114:	80 93 78 00 	sts	0x0078, r24
      }
         DDRB=0XF0;
 118:	e7 e3       	ldi	r30, 0x37	; 55
 11a:	f0 e0       	ldi	r31, 0x00	; 0
 11c:	80 ef       	ldi	r24, 0xF0	; 240
 11e:	80 83       	st	Z, r24
         PORTB=0X0F;
 120:	e8 e3       	ldi	r30, 0x38	; 56
 122:	f0 e0       	ldi	r31, 0x00	; 0
 124:	8f e0       	ldi	r24, 0x0F	; 15
 126:	80 83       	st	Z, r24
         if( PINB!=0x0f)
 128:	e6 e3       	ldi	r30, 0x36	; 54
 12a:	f0 e0       	ldi	r31, 0x00	; 0
 12c:	80 81       	ld	r24, Z
 12e:	8f 30       	cpi	r24, 0x0F	; 15
 130:	79 f1       	breq	.+94     	; 0x190 <key+0xfe>
		 {
           switch(PINB)
 132:	e6 e3       	ldi	r30, 0x36	; 54
 134:	f0 e0       	ldi	r31, 0x00	; 0
 136:	80 81       	ld	r24, Z
 138:	28 2f       	mov	r18, r24
 13a:	30 e0       	ldi	r19, 0x00	; 0
 13c:	3a 83       	std	Y+2, r19	; 0x02
 13e:	29 83       	std	Y+1, r18	; 0x01
 140:	89 81       	ldd	r24, Y+1	; 0x01
 142:	9a 81       	ldd	r25, Y+2	; 0x02
 144:	8b 30       	cpi	r24, 0x0B	; 11
 146:	91 05       	cpc	r25, r1
 148:	e1 f0       	breq	.+56     	; 0x182 <key+0xf0>
 14a:	29 81       	ldd	r18, Y+1	; 0x01
 14c:	3a 81       	ldd	r19, Y+2	; 0x02
 14e:	2c 30       	cpi	r18, 0x0C	; 12
 150:	31 05       	cpc	r19, r1
 152:	34 f4       	brge	.+12     	; 0x160 <key+0xce>
 154:	89 81       	ldd	r24, Y+1	; 0x01
 156:	9a 81       	ldd	r25, Y+2	; 0x02
 158:	87 30       	cpi	r24, 0x07	; 7
 15a:	91 05       	cpc	r25, r1
 15c:	b1 f0       	breq	.+44     	; 0x18a <key+0xf8>
 15e:	18 c0       	rjmp	.+48     	; 0x190 <key+0xfe>
 160:	29 81       	ldd	r18, Y+1	; 0x01
 162:	3a 81       	ldd	r19, Y+2	; 0x02
 164:	2d 30       	cpi	r18, 0x0D	; 13
 166:	31 05       	cpc	r19, r1
 168:	41 f0       	breq	.+16     	; 0x17a <key+0xe8>
 16a:	89 81       	ldd	r24, Y+1	; 0x01
 16c:	9a 81       	ldd	r25, Y+2	; 0x02
 16e:	8e 30       	cpi	r24, 0x0E	; 14
 170:	91 05       	cpc	r25, r1
 172:	71 f4       	brne	.+28     	; 0x190 <key+0xfe>
            {
              case  0x0e:b=0;  break;
 174:	10 92 76 00 	sts	0x0076, r1
 178:	0b c0       	rjmp	.+22     	; 0x190 <key+0xfe>
              case  0x0d:b=1;  break;
 17a:	81 e0       	ldi	r24, 0x01	; 1
 17c:	80 93 76 00 	sts	0x0076, r24
 180:	07 c0       	rjmp	.+14     	; 0x190 <key+0xfe>
              case  0x0b:b=2;  break;
 182:	82 e0       	ldi	r24, 0x02	; 2
 184:	80 93 76 00 	sts	0x0076, r24
 188:	03 c0       	rjmp	.+6      	; 0x190 <key+0xfe>
              case  0x07:b=3;  break;
 18a:	83 e0       	ldi	r24, 0x03	; 3
 18c:	80 93 76 00 	sts	0x0076, r24
            }

          }
      
   }
    date=x[a][b];     //计算扫描结果
 190:	80 91 78 00 	lds	r24, 0x0078
 194:	48 2f       	mov	r20, r24
 196:	50 e0       	ldi	r21, 0x00	; 0
 198:	80 91 76 00 	lds	r24, 0x0076
 19c:	28 2f       	mov	r18, r24
 19e:	30 e0       	ldi	r19, 0x00	; 0
 1a0:	ca 01       	movw	r24, r20
 1a2:	88 0f       	add	r24, r24
 1a4:	99 1f       	adc	r25, r25
 1a6:	88 0f       	add	r24, r24
 1a8:	99 1f       	adc	r25, r25
 1aa:	82 0f       	add	r24, r18
 1ac:	93 1f       	adc	r25, r19
 1ae:	fc 01       	movw	r30, r24
 1b0:	e0 5a       	subi	r30, 0xA0	; 160
 1b2:	ff 4f       	sbci	r31, 0xFF	; 255
 1b4:	80 81       	ld	r24, Z
 1b6:	80 93 77 00 	sts	0x0077, r24
	 // if( PINB!=0x0f)
      

//return 0;//扫描结束
  //else ;
 }
 1ba:	0f 90       	pop	r0
 1bc:	0f 90       	pop	r0
 1be:	0f 90       	pop	r0
 1c0:	0f 90       	pop	r0
 1c2:	cf 91       	pop	r28
 1c4:	df 91       	pop	r29
 1c6:	08 95       	ret

000001c8 <__vector_8>:
//------------------------------

SIGNAL(SIG_OVERFLOW1)     //interrupt[TIM1_OVF]
{
 1c8:	1f 92       	push	r1
 1ca:	0f 92       	push	r0
 1cc:	0f b6       	in	r0, 0x3f	; 63
 1ce:	0f 92       	push	r0
 1d0:	11 24       	eor	r1, r1
 1d2:	8f 93       	push	r24
 1d4:	9f 93       	push	r25
 1d6:	ef 93       	push	r30
 1d8:	ff 93       	push	r31
 1da:	df 93       	push	r29
 1dc:	cf 93       	push	r28
 1de:	cd b7       	in	r28, 0x3d	; 61

⌨️ 快捷键说明

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