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

📄 eeprom.lss

📁 winAVR编写的MEGA16内部EEPROM读写程序
💻 LSS
📖 第 1 页 / 共 3 页
字号:
 1d0:	80 91 3b 00 	lds	r24, 0x003B
 1d4:	84 60       	ori	r24, 0x04	; 4
 1d6:	80 93 3b 00 	sts	0x003B, r24
 1da:	22 96       	adiw	r28, 0x02	; 2
 1dc:	0f b6       	in	r0, 0x3f	; 63
 1de:	f8 94       	cli
 1e0:	de bf       	out	0x3e, r29	; 62
 1e2:	0f be       	out	0x3f, r0	; 63
 1e4:	cd bf       	out	0x3d, r28	; 61
 1e6:	df 91       	pop	r29
 1e8:	cf 91       	pop	r28
 1ea:	08 95       	ret

000001ec <DispPortInit>:
}

void DispPortInit(void)
{
 1ec:	cf 93       	push	r28
 1ee:	df 93       	push	r29
 1f0:	cd b7       	in	r28, 0x3d	; 61
 1f2:	de b7       	in	r29, 0x3e	; 62
	NCS_DDR|=(1<<NCS_PIN);
 1f4:	80 91 3a 00 	lds	r24, 0x003A
 1f8:	84 60       	ori	r24, 0x04	; 4
 1fa:	80 93 3a 00 	sts	0x003A, r24
	SCK_DDR|=(1<<SCK_PIN);
 1fe:	80 91 3a 00 	lds	r24, 0x003A
 202:	88 60       	ori	r24, 0x08	; 8
 204:	80 93 3a 00 	sts	0x003A, r24
	MOSI_DDR|=(1<<MOSI_PIN);
 208:	80 91 3a 00 	lds	r24, 0x003A
 20c:	80 61       	ori	r24, 0x10	; 16
 20e:	80 93 3a 00 	sts	0x003A, r24
	DispData(NumTab[17]);
 212:	80 91 71 00 	lds	r24, 0x0071
 216:	0e 94 b0 00 	call	0x160 <DispData>
	DDRA|=(1<<PA5)|(1<<PA6)|(1<<PA7);
 21a:	80 91 3a 00 	lds	r24, 0x003A
 21e:	80 6e       	ori	r24, 0xE0	; 224
 220:	80 93 3a 00 	sts	0x003A, r24
 224:	df 91       	pop	r29
 226:	cf 91       	pop	r28
 228:	08 95       	ret

0000022a <Disp>:
}

void Disp(uint8_t  *p)
{
 22a:	cf 93       	push	r28
 22c:	df 93       	push	r29
 22e:	cd b7       	in	r28, 0x3d	; 61
 230:	de b7       	in	r29, 0x3e	; 62
 232:	2f 97       	sbiw	r28, 0x0f	; 15
 234:	0f b6       	in	r0, 0x3f	; 63
 236:	f8 94       	cli
 238:	de bf       	out	0x3e, r29	; 62
 23a:	0f be       	out	0x3f, r0	; 63
 23c:	cd bf       	out	0x3d, r28	; 61
 23e:	9a 83       	std	Y+2, r25	; 0x02
 240:	89 83       	std	Y+1, r24	; 0x01
	uint8_t i;
	for(i=0;i<8;i++)
 242:	1b 82       	std	Y+3, r1	; 0x03
 244:	8b 81       	ldd	r24, Y+3	; 0x03
 246:	88 30       	cpi	r24, 0x08	; 8
 248:	08 f0       	brcs	.+2      	; 0x24c <Disp+0x22>
 24a:	c8 c0       	rjmp	.+400    	; 0x3dc <Disp+0x1b2>
	{
		DispSel(i);
 24c:	80 91 3b 00 	lds	r24, 0x003B
 250:	28 2f       	mov	r18, r24
 252:	2f 71       	andi	r18, 0x1F	; 31
 254:	8b 81       	ldd	r24, Y+3	; 0x03
 256:	99 27       	eor	r25, r25
 258:	88 0f       	add	r24, r24
 25a:	99 1f       	adc	r25, r25
 25c:	82 95       	swap	r24
 25e:	92 95       	swap	r25
 260:	90 7f       	andi	r25, 0xF0	; 240
 262:	98 27       	eor	r25, r24
 264:	80 7f       	andi	r24, 0xF0	; 240
 266:	98 27       	eor	r25, r24
 268:	82 2b       	or	r24, r18
 26a:	80 93 3b 00 	sts	0x003B, r24
		if(i==4)_delay_ms(1);
 26e:	8b 81       	ldd	r24, Y+3	; 0x03
 270:	84 30       	cpi	r24, 0x04	; 4
 272:	09 f0       	breq	.+2      	; 0x276 <Disp+0x4c>
 274:	4e c0       	rjmp	.+156    	; 0x312 <Disp+0xe8>
   The maximal possible delay is 262.14 ms / F_CPU in MHz.
 */
void
_delay_ms(double __ms)
{
 276:	80 e0       	ldi	r24, 0x00	; 0
 278:	90 e0       	ldi	r25, 0x00	; 0
 27a:	a0 e8       	ldi	r26, 0x80	; 128
 27c:	bf e3       	ldi	r27, 0x3F	; 63
 27e:	8c 83       	std	Y+4, r24	; 0x04
 280:	9d 83       	std	Y+5, r25	; 0x05
 282:	ae 83       	std	Y+6, r26	; 0x06
 284:	bf 83       	std	Y+7, r27	; 0x07
	uint16_t __ticks;
	double __tmp = ((F_CPU) / 4e3) * __ms;
 286:	26 e6       	ldi	r18, 0x66	; 102
 288:	36 e6       	ldi	r19, 0x66	; 102
 28a:	46 ee       	ldi	r20, 0xE6	; 230
 28c:	54 e4       	ldi	r21, 0x44	; 68
 28e:	6c 81       	ldd	r22, Y+4	; 0x04
 290:	7d 81       	ldd	r23, Y+5	; 0x05
 292:	8e 81       	ldd	r24, Y+6	; 0x06
 294:	9f 81       	ldd	r25, Y+7	; 0x07
 296:	0e 94 62 02 	call	0x4c4 <__mulsf3>
 29a:	dc 01       	movw	r26, r24
 29c:	cb 01       	movw	r24, r22
 29e:	8a 87       	std	Y+10, r24	; 0x0a
 2a0:	9b 87       	std	Y+11, r25	; 0x0b
 2a2:	ac 87       	std	Y+12, r26	; 0x0c
 2a4:	bd 87       	std	Y+13, r27	; 0x0d
	if (__tmp < 1.0)
 2a6:	20 e0       	ldi	r18, 0x00	; 0
 2a8:	30 e0       	ldi	r19, 0x00	; 0
 2aa:	40 e8       	ldi	r20, 0x80	; 128
 2ac:	5f e3       	ldi	r21, 0x3F	; 63
 2ae:	6a 85       	ldd	r22, Y+10	; 0x0a
 2b0:	7b 85       	ldd	r23, Y+11	; 0x0b
 2b2:	8c 85       	ldd	r24, Y+12	; 0x0c
 2b4:	9d 85       	ldd	r25, Y+13	; 0x0d
 2b6:	0e 94 12 02 	call	0x424 <__eqsf2>
 2ba:	88 23       	and	r24, r24
 2bc:	0c f0       	brlt	.+2      	; 0x2c0 <Disp+0x96>
 2be:	05 c0       	rjmp	.+10     	; 0x2ca <Disp+0xa0>
		__ticks = 1;
 2c0:	81 e0       	ldi	r24, 0x01	; 1
 2c2:	90 e0       	ldi	r25, 0x00	; 0
 2c4:	99 87       	std	Y+9, r25	; 0x09
 2c6:	88 87       	std	Y+8, r24	; 0x08
 2c8:	1a c0       	rjmp	.+52     	; 0x2fe <Disp+0xd4>
	else if (__tmp > 65535)
 2ca:	20 e0       	ldi	r18, 0x00	; 0
 2cc:	3f ef       	ldi	r19, 0xFF	; 255
 2ce:	4f e7       	ldi	r20, 0x7F	; 127
 2d0:	57 e4       	ldi	r21, 0x47	; 71
 2d2:	6a 85       	ldd	r22, Y+10	; 0x0a
 2d4:	7b 85       	ldd	r23, Y+11	; 0x0b
 2d6:	8c 85       	ldd	r24, Y+12	; 0x0c
 2d8:	9d 85       	ldd	r25, Y+13	; 0x0d
 2da:	0e 94 15 02 	call	0x42a <__gesf2>
 2de:	18 16       	cp	r1, r24
 2e0:	0c f0       	brlt	.+2      	; 0x2e4 <Disp+0xba>
 2e2:	03 c0       	rjmp	.+6      	; 0x2ea <Disp+0xc0>
		__ticks = 0;	/* i.e. 65536 */
 2e4:	19 86       	std	Y+9, r1	; 0x09
 2e6:	18 86       	std	Y+8, r1	; 0x08
 2e8:	0a c0       	rjmp	.+20     	; 0x2fe <Disp+0xd4>
	else
		__ticks = (uint16_t)__tmp;
 2ea:	6a 85       	ldd	r22, Y+10	; 0x0a
 2ec:	7b 85       	ldd	r23, Y+11	; 0x0b
 2ee:	8c 85       	ldd	r24, Y+12	; 0x0c
 2f0:	9d 85       	ldd	r25, Y+13	; 0x0d
 2f2:	0e 94 f7 01 	call	0x3ee <__fixsfsi>
 2f6:	dc 01       	movw	r26, r24
 2f8:	cb 01       	movw	r24, r22
 2fa:	99 87       	std	Y+9, r25	; 0x09
 2fc:	88 87       	std	Y+8, r24	; 0x08
 2fe:	88 85       	ldd	r24, Y+8	; 0x08
 300:	99 85       	ldd	r25, Y+9	; 0x09
 302:	9f 87       	std	Y+15, r25	; 0x0f
 304:	8e 87       	std	Y+14, r24	; 0x0e
 306:	8e 85       	ldd	r24, Y+14	; 0x0e
 308:	9f 85       	ldd	r25, Y+15	; 0x0f
 30a:	01 97       	sbiw	r24, 0x01	; 1
 30c:	f1 f7       	brne	.-4      	; 0x30a <Disp+0xe0>
 30e:	9f 87       	std	Y+15, r25	; 0x0f
 310:	8e 87       	std	Y+14, r24	; 0x0e
		DispData(NumTab[*p++]);
 312:	29 81       	ldd	r18, Y+1	; 0x01
 314:	3a 81       	ldd	r19, Y+2	; 0x02
 316:	f9 01       	movw	r30, r18
 318:	80 81       	ld	r24, Z
 31a:	99 27       	eor	r25, r25
 31c:	fc 01       	movw	r30, r24
 31e:	e0 5a       	subi	r30, 0xA0	; 160
 320:	ff 4f       	sbci	r31, 0xFF	; 255
 322:	2f 5f       	subi	r18, 0xFF	; 255
 324:	3f 4f       	sbci	r19, 0xFF	; 255
 326:	3a 83       	std	Y+2, r19	; 0x02
 328:	29 83       	std	Y+1, r18	; 0x01
 32a:	80 81       	ld	r24, Z
 32c:	0e 94 b0 00 	call	0x160 <DispData>
   The maximal possible delay is 262.14 ms / F_CPU in MHz.
 */
void
_delay_ms(double __ms)
{
 330:	80 e0       	ldi	r24, 0x00	; 0
 332:	90 e0       	ldi	r25, 0x00	; 0
 334:	a0 e8       	ldi	r26, 0x80	; 128
 336:	bf e3       	ldi	r27, 0x3F	; 63
 338:	8a 87       	std	Y+10, r24	; 0x0a
 33a:	9b 87       	std	Y+11, r25	; 0x0b
 33c:	ac 87       	std	Y+12, r26	; 0x0c
 33e:	bd 87       	std	Y+13, r27	; 0x0d
	uint16_t __ticks;
	double __tmp = ((F_CPU) / 4e3) * __ms;
 340:	26 e6       	ldi	r18, 0x66	; 102
 342:	36 e6       	ldi	r19, 0x66	; 102
 344:	46 ee       	ldi	r20, 0xE6	; 230
 346:	54 e4       	ldi	r21, 0x44	; 68
 348:	6a 85       	ldd	r22, Y+10	; 0x0a
 34a:	7b 85       	ldd	r23, Y+11	; 0x0b
 34c:	8c 85       	ldd	r24, Y+12	; 0x0c
 34e:	9d 85       	ldd	r25, Y+13	; 0x0d
 350:	0e 94 62 02 	call	0x4c4 <__mulsf3>
 354:	dc 01       	movw	r26, r24
 356:	cb 01       	movw	r24, r22
 358:	8c 83       	std	Y+4, r24	; 0x04
 35a:	9d 83       	std	Y+5, r25	; 0x05
 35c:	ae 83       	std	Y+6, r26	; 0x06
 35e:	bf 83       	std	Y+7, r27	; 0x07
	if (__tmp < 1.0)
 360:	20 e0       	ldi	r18, 0x00	; 0
 362:	30 e0       	ldi	r19, 0x00	; 0
 364:	40 e8       	ldi	r20, 0x80	; 128
 366:	5f e3       	ldi	r21, 0x3F	; 63
 368:	6c 81       	ldd	r22, Y+4	; 0x04
 36a:	7d 81       	ldd	r23, Y+5	; 0x05
 36c:	8e 81       	ldd	r24, Y+6	; 0x06
 36e:	9f 81       	ldd	r25, Y+7	; 0x07
 370:	0e 94 12 02 	call	0x424 <__eqsf2>
 374:	88 23       	and	r24, r24
 376:	0c f0       	brlt	.+2      	; 0x37a <Disp+0x150>
 378:	05 c0       	rjmp	.+10     	; 0x384 <Disp+0x15a>
		__ticks = 1;
 37a:	81 e0       	ldi	r24, 0x01	; 1
 37c:	90 e0       	ldi	r25, 0x00	; 0
 37e:	9f 87       	std	Y+15, r25	; 0x0f
 380:	8e 87       	std	Y+14, r24	; 0x0e
 382:	1a c0       	rjmp	.+52     	; 0x3b8 <Disp+0x18e>
	else if (__tmp > 65535)
 384:	20 e0       	ldi	r18, 0x00	; 0
 386:	3f ef       	ldi	r19, 0xFF	; 255
 388:	4f e7       	ldi	r20, 0x7F	; 127
 38a:	57 e4       	ldi	r21, 0x47	; 71
 38c:	6c 81       	ldd	r22, Y+4	; 0x04
 38e:	7d 81       	ldd	r23, Y+5	; 0x05
 390:	8e 81       	ldd	r24, Y+6	; 0x06
 392:	9f 81       	ldd	r25, Y+7	; 0x07
 394:	0e 94 15 02 	call	0x42a <__gesf2>
 398:	18 16       	cp	r1, r24
 39a:	0c f0       	brlt	.+2      	; 0x39e <Disp+0x174>
 39c:	03 c0       	rjmp	.+6      	; 0x3a4 <Disp+0x17a>
		__ticks = 0;	/* i.e. 65536 */
 39e:	1f 86       	std	Y+15, r1	; 0x0f
 3a0:	1e 86       	std	Y+14, r1	; 0x0e
 3a2:	0a c0       	rjmp	.+20     	; 0x3b8 <Disp+0x18e>
	else
		__ticks = (uint16_t)__tmp;
 3a4:	6c 81       	ldd	r22, Y+4	; 0x04
 3a6:	7d 81       	ldd	r23, Y+5	; 0x05
 3a8:	8e 81       	ldd	r24, Y+6	; 0x06
 3aa:	9f 81       	ldd	r25, Y+7	; 0x07
 3ac:	0e 94 f7 01 	call	0x3ee <__fixsfsi>
 3b0:	dc 01       	movw	r26, r24
 3b2:	cb 01       	movw	r24, r22
 3b4:	9f 87       	std	Y+15, r25	; 0x0f
 3b6:	8e 87       	std	Y+14, r24	; 0x0e
 3b8:	8e 85       	ldd	r24, Y+14	; 0x0e
 3ba:	9f 85       	ldd	r25, Y+15	; 0x0f
 3bc:	99 87       	std	Y+9, r25	; 0x09
 3be:	88 87       	std	Y+8, r24	; 0x08
 3c0:	88 85       	ldd	r24, Y+8	; 0x08
 3c2:	99 85       	ldd	r25, Y+9	; 0x09
 3c4:	01 97       	sbiw	r24, 0x01	; 1
 3c6:	f1 f7       	brne	.-4      	; 0x3c4 <Disp+0x19a>
 3c8:	99 87       	std	Y+9, r25	; 0x09
 3ca:	88 87       	std	Y+8, r24	; 0x08
		_delay_ms(1);
		DispData(NumTab[17]);//off the disp
 3cc:	80 91 71 00 	lds	r24, 0x0071
 3d0:	0e 94 b0 00 	call	0x160 <DispData>
 3d4:	8b 81       	ldd	r24, Y+3	; 0x03
 3d6:	8f 5f       	subi	r24, 0xFF	; 255
 3d8:	8b 83       	std	Y+3, r24	; 0x03
 3da:	34 cf       	rjmp	.-408    	; 0x244 <Disp+0x1a>
 3dc:	2f 96       	adiw	r28, 0x0f	; 15
 3de:	0f b6       	in	r0, 0x3f	; 63
 3e0:	f8 94       	cli
 3e2:	de bf       	out	0x3e, r29	; 62

⌨️ 快捷键说明

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