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

📄 keyboard.lss

📁 AVR Devolpment Board
💻 LSS
📖 第 1 页 / 共 2 页
字号:
 148:	30 c0       	rjmp	.+96     	; 0x1aa <Get_Key+0x10c>
 14a:	2b 3e       	cpi	r18, 0xEB	; 235
 14c:	31 05       	cpc	r19, r1
 14e:	e9 f0       	breq	.+58     	; 0x18a <Get_Key+0xec>
 150:	2c 3e       	cpi	r18, 0xEC	; 236
 152:	31 05       	cpc	r19, r1
 154:	24 f4       	brge	.+8      	; 0x15e <Get_Key+0xc0>
 156:	27 3e       	cpi	r18, 0xE7	; 231
 158:	31 05       	cpc	r19, r1
 15a:	f9 f0       	breq	.+62     	; 0x19a <Get_Key+0xfc>
 15c:	26 c0       	rjmp	.+76     	; 0x1aa <Get_Key+0x10c>
 15e:	2d 3e       	cpi	r18, 0xED	; 237
 160:	31 05       	cpc	r19, r1
 162:	59 f0       	breq	.+22     	; 0x17a <Get_Key+0xdc>
 164:	2e 3e       	cpi	r18, 0xEE	; 238
 166:	31 05       	cpc	r19, r1
 168:	01 f5       	brne	.+64     	; 0x1aa <Get_Key+0x10c>
	{
		case 0xEE:
			KEY_Number=0;
 16a:	80 e0       	ldi	r24, 0x00	; 0
			break;
 16c:	1f c0       	rjmp	.+62     	; 0x1ac <Get_Key+0x10e>
		case 0xDE:
			KEY_Number=1;
 16e:	81 e0       	ldi	r24, 0x01	; 1
			break;
 170:	1d c0       	rjmp	.+58     	; 0x1ac <Get_Key+0x10e>
		case 0xBE:
			KEY_Number=2;
 172:	82 e0       	ldi	r24, 0x02	; 2
			break;
 174:	1b c0       	rjmp	.+54     	; 0x1ac <Get_Key+0x10e>
		case 0x7E:
			KEY_Number=3;
 176:	83 e0       	ldi	r24, 0x03	; 3
			break;
 178:	19 c0       	rjmp	.+50     	; 0x1ac <Get_Key+0x10e>
		case 0xED:
			KEY_Number=4;
 17a:	84 e0       	ldi	r24, 0x04	; 4
			break;
 17c:	17 c0       	rjmp	.+46     	; 0x1ac <Get_Key+0x10e>
		case 0xDD:
			KEY_Number=5;
 17e:	85 e0       	ldi	r24, 0x05	; 5
			break;
 180:	15 c0       	rjmp	.+42     	; 0x1ac <Get_Key+0x10e>
		case 0xBD:
			KEY_Number=6;
 182:	86 e0       	ldi	r24, 0x06	; 6
			break;
 184:	13 c0       	rjmp	.+38     	; 0x1ac <Get_Key+0x10e>
		case 0x7D:
			KEY_Number=7;
 186:	87 e0       	ldi	r24, 0x07	; 7
			break;
 188:	11 c0       	rjmp	.+34     	; 0x1ac <Get_Key+0x10e>
		case 0xEB:
			KEY_Number=8;
 18a:	88 e0       	ldi	r24, 0x08	; 8
			break;
 18c:	0f c0       	rjmp	.+30     	; 0x1ac <Get_Key+0x10e>
		case 0xDB:
			KEY_Number=9;
 18e:	89 e0       	ldi	r24, 0x09	; 9
			break;
 190:	0d c0       	rjmp	.+26     	; 0x1ac <Get_Key+0x10e>
		case 0xBB:
			KEY_Number=10;
 192:	8a e0       	ldi	r24, 0x0A	; 10
			break;
 194:	0b c0       	rjmp	.+22     	; 0x1ac <Get_Key+0x10e>
		case 0x7B:
			KEY_Number=11;
 196:	8b e0       	ldi	r24, 0x0B	; 11
			break;
 198:	09 c0       	rjmp	.+18     	; 0x1ac <Get_Key+0x10e>
		case 0xE7:
			KEY_Number=12;
 19a:	8c e0       	ldi	r24, 0x0C	; 12
			break;
 19c:	07 c0       	rjmp	.+14     	; 0x1ac <Get_Key+0x10e>
		case 0xD7:
			KEY_Number=13;
 19e:	8d e0       	ldi	r24, 0x0D	; 13
			break;
 1a0:	05 c0       	rjmp	.+10     	; 0x1ac <Get_Key+0x10e>
		case 0xB7:
			KEY_Number=14;
 1a2:	8e e0       	ldi	r24, 0x0E	; 14
			break;
 1a4:	03 c0       	rjmp	.+6      	; 0x1ac <Get_Key+0x10e>
		case 0x77:
			KEY_Number=15;
 1a6:	84 2f       	mov	r24, r20
			break;
 1a8:	01 c0       	rjmp	.+2      	; 0x1ac <Get_Key+0x10e>
		default:
			KEY_Number=255;
 1aa:	8f ef       	ldi	r24, 0xFF	; 255
			break;
	} 
	return KEY_Number;
}
 1ac:	99 27       	eor	r25, r25
 1ae:	08 95       	ret

000001b0 <Scanf>:


const prog_char SegCode[16]={
/* Cathode common Smg display code*/
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; 

unsigned char DisBuffer[8]={0,0,0,0,0,0,0,0};

void Scanf(void)
{
 1b0:	0f 93       	push	r16
 1b2:	1f 93       	push	r17
 1b4:	cf 93       	push	r28
 1b6:	df 93       	push	r29
 1b8:	01 e0       	ldi	r16, 0x01	; 1
 1ba:	10 e0       	ldi	r17, 0x00	; 0
 1bc:	a0 ea       	ldi	r26, 0xA0	; 160
 1be:	bf e0       	ldi	r27, 0x0F	; 15
 1c0:	c0 e0       	ldi	r28, 0x00	; 0
 1c2:	d0 e0       	ldi	r29, 0x00	; 0
 1c4:	60 e6       	ldi	r22, 0x60	; 96
 1c6:	70 e0       	ldi	r23, 0x00	; 0
 1c8:	20 e0       	ldi	r18, 0x00	; 0
 1ca:	30 e0       	ldi	r19, 0x00	; 0
 1cc:	47 e0       	ldi	r20, 0x07	; 7
	unsigned char i=0;
	for(i=0;i<8;i++)
	{
		PORTB = pgm_read_byte(&SegCode[DisBuffer[i]]);
 1ce:	fb 01       	movw	r30, r22
 1d0:	81 91       	ld	r24, Z+
 1d2:	bf 01       	movw	r22, r30
 1d4:	e8 2f       	mov	r30, r24
 1d6:	ff 27       	eor	r31, r31
 1d8:	ec 5a       	subi	r30, 0xAC	; 172
 1da:	ff 4f       	sbci	r31, 0xFF	; 255
 1dc:	84 91       	lpm	r24, Z
 1de:	88 bb       	out	0x18, r24	; 24
		PORTA|= (1<<PA4);
 1e0:	dc 9a       	sbi	0x1b, 4	; 27
		PORTA&=~(1<<PA4);	
 1e2:	dc 98       	cbi	0x1b, 4	; 27
				
		PORTB = (1<<i);
 1e4:	c8 01       	movw	r24, r16
 1e6:	02 2e       	mov	r0, r18
 1e8:	02 c0       	rjmp	.+4      	; 0x1ee <Scanf+0x3e>
 1ea:	88 0f       	add	r24, r24
 1ec:	99 1f       	adc	r25, r25
 1ee:	0a 94       	dec	r0
 1f0:	e2 f7       	brpl	.-8      	; 0x1ea <Scanf+0x3a>
 1f2:	88 bb       	out	0x18, r24	; 24
		PORTA|= (1<<PA5);
 1f4:	dd 9a       	sbi	0x1b, 5	; 27
		PORTA&=~(1<<PA5);
 1f6:	dd 98       	cbi	0x1b, 5	; 27
 */
void
_delay_loop_2(uint16_t __count)
{
	__asm__ volatile (
 1f8:	cd 01       	movw	r24, r26
 1fa:	01 97       	sbiw	r24, 0x01	; 1
 1fc:	f1 f7       	brne	.-4      	; 0x1fa <Scanf+0x4a>
 1fe:	41 50       	subi	r20, 0x01	; 1
 200:	2f 5f       	subi	r18, 0xFF	; 255
 202:	3f 4f       	sbci	r19, 0xFF	; 255
 204:	47 ff       	sbrs	r20, 7
 206:	e3 cf       	rjmp	.-58     	; 0x1ce <Scanf+0x1e>
 208:	df 91       	pop	r29
 20a:	cf 91       	pop	r28
 20c:	1f 91       	pop	r17
 20e:	0f 91       	pop	r16
 210:	08 95       	ret

00000212 <main>:
		

		_delay_ms(2);
	}
}

int main(void)
{
 212:	cf e5       	ldi	r28, 0x5F	; 95
 214:	d4 e0       	ldi	r29, 0x04	; 4
 216:	de bf       	out	0x3e, r29	; 62
 218:	cd bf       	out	0x3d, r28	; 61
	unsigned char KeyNumber=0;
	/* Set LED and Smg LE pin and USB-pull-up pin as output , databus as output */
	DDRA |=(1<<PA4)|(1<<PA5)|(1<<PA6)|(1<<PA7); 
 21a:	8a b3       	in	r24, 0x1a	; 26
 21c:	80 6f       	ori	r24, 0xF0	; 240
 21e:	8a bb       	out	0x1a, r24	; 26
	DDRB  = 0xFF;
 220:	9f ef       	ldi	r25, 0xFF	; 255
 222:	97 bb       	out	0x17, r25	; 23

	/* Off the LED display */
	PORTB = 0xFF;
 224:	98 bb       	out	0x18, r25	; 24
	PORTA|= (1<<PA6);
 226:	de 9a       	sbi	0x1b, 6	; 27
	PORTA&=~(1<<PA6);
 228:	de 98       	cbi	0x1b, 6	; 27
	
	/* Enable the USB pull-up */
	PORTA|= (1<<PA7);
 22a:	df 9a       	sbi	0x1b, 7	; 27
	PORTB = 0x80;
 22c:	80 e8       	ldi	r24, 0x80	; 128
 22e:	88 bb       	out	0x18, r24	; 24
	PORTA&=~(1<<PA7);
 230:	df 98       	cbi	0x1b, 7	; 27

	PORTB= 0xff;
 232:	98 bb       	out	0x18, r25	; 24

	while(1)
	{
		KeyNumber=Get_Key();
 234:	0e 94 4f 00 	call	0x9e <Get_Key>
		if(KeyNumber!=255)
 238:	8f 3f       	cpi	r24, 0xFF	; 255
 23a:	11 f0       	breq	.+4      	; 0x240 <main+0x2e>
			DisBuffer[7]=KeyNumber;
 23c:	80 93 67 00 	sts	0x0067, r24
		
		Scanf();
 240:	0e 94 d8 00 	call	0x1b0 <Scanf>
 244:	f7 cf       	rjmp	.-18     	; 0x234 <main+0x22>

⌨️ 快捷键说明

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