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

📄 gvgledtest.lss

📁 建立在AVR基础上的测试LED数码管电压表
💻 LSS
📖 第 1 页 / 共 2 页
字号:
	{
	unsigned	char i,j;
	//send LED Display Modle command	
	PORTB &= ~(1<<STB);
 1ae:	c0 98       	cbi	0x18, 0	; 24
	V_SPI_SEND(Vfd_Display_Modle);
 1b0:	83 e0       	ldi	r24, 0x03	; 3
 1b2:	f0 df       	rcall	.-32     	; 0x194
	PORTB|= (1<<STB);
 1b4:	c0 9a       	sbi	0x18, 0	; 24
	
	//Send Led Display Data modle command
	PORTB &= ~(1<<STB);
 1b6:	c0 98       	cbi	0x18, 0	; 24
	V_SPI_SEND(Vfd_Display_DataOut);
 1b8:	80 e4       	ldi	r24, 0x40	; 64
 1ba:	ec df       	rcall	.-40     	; 0x194
	PORTB|= (1<<STB);
 1bc:	c0 9a       	sbi	0x18, 0	; 24
	
	//Send LED Display Data address
	PORTB &= ~(1<<STB);
 1be:	c0 98       	cbi	0x18, 0	; 24
	V_SPI_SEND(Vfd_Display_Addr);
 1c0:	80 ec       	ldi	r24, 0xC0	; 192
 1c2:	e8 df       	rcall	.-48     	; 0x194
	
	//send LED Display Data
	for (i=0; i<7; i++)
 1c4:	30 e0       	ldi	r19, 0x00	; 0
 1c6:	43 2f       	mov	r20, r19
 1c8:	55 27       	eor	r21, r21
 1ca:	ee e7       	ldi	r30, 0x7E	; 126
 1cc:	f0 e0       	ldi	r31, 0x00	; 0
 1ce:	2f e0       	ldi	r18, 0x0F	; 15
		{
		for(j=0;	j<16;j++)
			{
	
			if(Display_data[j] & (1<< i))
 1d0:	81 91       	ld	r24, Z+
 1d2:	99 27       	eor	r25, r25
 1d4:	04 2e       	mov	r0, r20
 1d6:	02 c0       	rjmp	.+4      	; 0x1dc
 1d8:	95 95       	asr	r25
 1da:	87 95       	ror	r24
 1dc:	0a 94       	dec	r0
 1de:	e2 f7       	brpl	.-8      	; 0x1d8
 1e0:	80 ff       	sbrs	r24, 0
 1e2:	02 c0       	rjmp	.+4      	; 0x1e8
				{
				PORTB |= (1<<DATA);
 1e4:	c1 9a       	sbi	0x18, 1	; 24
 1e6:	01 c0       	rjmp	.+2      	; 0x1ea
				}
			else
				{
				PORTB &= ~(1<<DATA);
 1e8:	c1 98       	cbi	0x18, 1	; 24
				}
			PORTB &= ~(1<<SCK);
 1ea:	c2 98       	cbi	0x18, 2	; 24
			PORTB |= (1<<SCK);	
 1ec:	c2 9a       	sbi	0x18, 2	; 24
 1ee:	21 50       	subi	r18, 0x01	; 1
 1f0:	27 ff       	sbrs	r18, 7
 1f2:	ee cf       	rjmp	.-36     	; 0x1d0
 1f4:	3f 5f       	subi	r19, 0xFF	; 255
 1f6:	37 30       	cpi	r19, 0x07	; 7
 1f8:	30 f3       	brcs	.-52     	; 0x1c6
			}
		}
	PORTB |= (1<<STB);
 1fa:	c0 9a       	sbi	0x18, 0	; 24
	
	//Send Led Display ON command
	PORTB &= ~(1<<STB);
 1fc:	c0 98       	cbi	0x18, 0	; 24
	V_SPI_SEND(Vfd_Display_Corl);
 1fe:	8b e8       	ldi	r24, 0x8B	; 139
 200:	c9 df       	rcall	.-110    	; 0x194
	PORTB|= (1<<STB);	
 202:	c0 9a       	sbi	0x18, 0	; 24
 204:	08 95       	ret

00000206 <V_Kay_Scan>:

	
	}


/*============================================================
FUNCTION: VFD KEY DATA IN


============================================================*/
unsigned char V_Kay_Scan(void)
	{
	
	unsigned char i;
	unsigned char data;	
	PORTB &= ~(1<<STB);
 206:	c0 98       	cbi	0x18, 0	; 24
	
	//send Key value read command	
	V_SPI_SEND(Vfd_Display_DataIn);
 208:	82 e4       	ldi	r24, 0x42	; 66
 20a:	c4 df       	rcall	.-120    	; 0x194
	data = 0xFF;
 20c:	8f ef       	ldi	r24, 0xFF	; 255
	//read key value
	DDRB &= ~(1<<DATA);
 20e:	b9 98       	cbi	0x17, 1	; 23
	for(i=0;	i<40;i++	)
 210:	20 e0       	ldi	r18, 0x00	; 0
		{
			PORTB &= ~(1<<SCK);
 212:	c2 98       	cbi	0x18, 2	; 24
			PORTB &= ~(1<<SCK);			
 214:	c2 98       	cbi	0x18, 2	; 24
			PORTB |= (1<<SCK);
 216:	c2 9a       	sbi	0x18, 2	; 24
			PORTB |= (1<<SCK);		
 218:	c2 9a       	sbi	0x18, 2	; 24
			if(PINB & (1<<DATA))
 21a:	b1 99       	sbic	0x16, 1	; 22
				{
				data = i;
 21c:	82 2f       	mov	r24, r18
 21e:	2f 5f       	subi	r18, 0xFF	; 255
 220:	28 32       	cpi	r18, 0x28	; 40
 222:	b8 f3       	brcs	.-18     	; 0x212
				}
		}

	DDRB |= (1<<DATA);
 224:	b9 9a       	sbi	0x17, 1	; 23
	PORTB|= (1<<STB);
 226:	c0 9a       	sbi	0x18, 0	; 24
	return data;
	}
 228:	99 27       	eor	r25, r25
 22a:	08 95       	ret

0000022c <Display>:
/*============================================================

============================================================*/
void Display (char *Keydata)
{
 22c:	b9 2f       	mov	r27, r25
 22e:	a8 2f       	mov	r26, r24
Display_data[9]=pgm_read_byte(Display_Code+((*(Keydata+0)) -0x30));
 230:	8c 91       	ld	r24, X
 232:	24 ee       	ldi	r18, 0xE4	; 228
 234:	3f ef       	ldi	r19, 0xFF	; 255
 236:	f3 2f       	mov	r31, r19
 238:	e2 2f       	mov	r30, r18
 23a:	e8 0f       	add	r30, r24
 23c:	f1 1d       	adc	r31, r1
 23e:	c8 95       	lpm
 240:	80 2d       	mov	r24, r0
 242:	80 93 87 00 	sts	0x0087, r24
Display_data[8]=pgm_read_byte(Display_Code+((*(Keydata+1)) -0x30));
 246:	fb 2f       	mov	r31, r27
 248:	ea 2f       	mov	r30, r26
 24a:	81 81       	ldd	r24, Z+1	; 0x01
 24c:	f3 2f       	mov	r31, r19
 24e:	e2 2f       	mov	r30, r18
 250:	e8 0f       	add	r30, r24
 252:	f1 1d       	adc	r31, r1
 254:	c8 95       	lpm
 256:	80 2d       	mov	r24, r0
 258:	80 93 86 00 	sts	0x0086, r24
Display_data[7]=pgm_read_byte(Display_Code+((*(Keydata+2)) -0x30));
 25c:	fb 2f       	mov	r31, r27
 25e:	ea 2f       	mov	r30, r26
 260:	82 81       	ldd	r24, Z+2	; 0x02
 262:	f3 2f       	mov	r31, r19
 264:	e2 2f       	mov	r30, r18
 266:	e8 0f       	add	r30, r24
 268:	f1 1d       	adc	r31, r1
 26a:	c8 95       	lpm
 26c:	80 2d       	mov	r24, r0
 26e:	80 93 85 00 	sts	0x0085, r24
Display_data[0]=pgm_read_byte(Display_Code+((*(Keydata+3)) -0x30));
 272:	fb 2f       	mov	r31, r27
 274:	ea 2f       	mov	r30, r26
 276:	83 81       	ldd	r24, Z+3	; 0x03
 278:	f3 2f       	mov	r31, r19
 27a:	e2 2f       	mov	r30, r18
 27c:	e8 0f       	add	r30, r24
 27e:	f1 1d       	adc	r31, r1
 280:	c8 95       	lpm
 282:	80 2d       	mov	r24, r0
 284:	80 93 7e 00 	sts	0x007E, r24
Display_data[1]=pgm_read_byte(Display_Code+((*(Keydata+4)) -0x30));
 288:	fb 2f       	mov	r31, r27
 28a:	ea 2f       	mov	r30, r26
 28c:	84 81       	ldd	r24, Z+4	; 0x04
 28e:	f3 2f       	mov	r31, r19
 290:	e2 2f       	mov	r30, r18
 292:	e8 0f       	add	r30, r24
 294:	f1 1d       	adc	r31, r1
 296:	c8 95       	lpm
 298:	80 2d       	mov	r24, r0
 29a:	80 93 7f 00 	sts	0x007F, r24
Display_data[2]=pgm_read_byte(Display_Code+((*(Keydata+5)) -0x30));//AVR Flash 
 29e:	fb 2f       	mov	r31, r27
 2a0:	ea 2f       	mov	r30, r26
 2a2:	85 81       	ldd	r24, Z+5	; 0x05
 2a4:	f3 2f       	mov	r31, r19
 2a6:	e2 2f       	mov	r30, r18
 2a8:	e8 0f       	add	r30, r24
 2aa:	f1 1d       	adc	r31, r1
 2ac:	c8 95       	lpm
 2ae:	80 2d       	mov	r24, r0
 2b0:	80 93 80 00 	sts	0x0080, r24
Display_data[3]=pgm_read_byte(Display_Code+((*(Keydata+6)) -0x30));
 2b4:	fb 2f       	mov	r31, r27
 2b6:	ea 2f       	mov	r30, r26
 2b8:	86 81       	ldd	r24, Z+6	; 0x06
 2ba:	f3 2f       	mov	r31, r19
 2bc:	e2 2f       	mov	r30, r18
 2be:	e8 0f       	add	r30, r24
 2c0:	f1 1d       	adc	r31, r1
 2c2:	c8 95       	lpm
 2c4:	80 2d       	mov	r24, r0
 2c6:	80 93 81 00 	sts	0x0081, r24
Display_data[4]=pgm_read_byte(Display_Code+((*(Keydata+7)) -0x30));
 2ca:	fb 2f       	mov	r31, r27
 2cc:	ea 2f       	mov	r30, r26
 2ce:	87 81       	ldd	r24, Z+7	; 0x07
 2d0:	f3 2f       	mov	r31, r19
 2d2:	e2 2f       	mov	r30, r18
 2d4:	e8 0f       	add	r30, r24
 2d6:	f1 1d       	adc	r31, r1
 2d8:	c8 95       	lpm
 2da:	80 2d       	mov	r24, r0
 2dc:	80 93 82 00 	sts	0x0082, r24
Display_data[5]=pgm_read_byte(Display_Code+((*(Keydata+8)) -0x30));
 2e0:	fb 2f       	mov	r31, r27
 2e2:	ea 2f       	mov	r30, r26
 2e4:	80 85       	ldd	r24, Z+8	; 0x08
 2e6:	f3 2f       	mov	r31, r19
 2e8:	e2 2f       	mov	r30, r18
 2ea:	e8 0f       	add	r30, r24
 2ec:	f1 1d       	adc	r31, r1
 2ee:	c8 95       	lpm
 2f0:	80 2d       	mov	r24, r0
 2f2:	80 93 83 00 	sts	0x0083, r24
 2f6:	08 95       	ret

000002f8 <IR_Time_detect>:


===========================================================*/
unsigned char IR_Time_detect(unsigned int time1,unsigned int time2)
{
 2f8:	f9 2f       	mov	r31, r25
 2fa:	e8 2f       	mov	r30, r24
unsigned int i=0;
 2fc:	40 e0       	ldi	r20, 0x00	; 0
 2fe:	50 e0       	ldi	r21, 0x00	; 0
unsigned char j=0;
 300:	a0 e0       	ldi	r26, 0x00	; 0
while((PINB & (1<<IR))>=j)
	{
	i++;
	if((PINB & (1<<IR))!=0)	{j=1;}
	if(i>time2) {return 0xFF;}
 302:	86 b3       	in	r24, 0x16	; 22
 304:	4f 5f       	subi	r20, 0xFF	; 255
 306:	5f 4f       	sbci	r21, 0xFF	; 255
 308:	b3 99       	sbic	0x16, 3	; 22
 30a:	a1 e0       	ldi	r26, 0x01	; 1
 30c:	64 17       	cp	r22, r20
 30e:	75 07       	cpc	r23, r21
 310:	78 f0       	brcs	.+30     	; 0x330
 312:	86 b3       	in	r24, 0x16	; 22
 314:	99 27       	eor	r25, r25
 316:	88 70       	andi	r24, 0x08	; 8
 318:	90 70       	andi	r25, 0x00	; 0
 31a:	2a 2f       	mov	r18, r26
 31c:	33 27       	eor	r19, r19
 31e:	82 17       	cp	r24, r18
 320:	93 07       	cpc	r25, r19
 322:	84 f7       	brge	.-32     	; 0x304
	}
if(i>time1){return 1;}
 324:	e4 17       	cp	r30, r20
 326:	f5 07       	cpc	r31, r21
 328:	30 f4       	brcc	.+12     	; 0x336
 32a:	81 e0       	ldi	r24, 0x01	; 1
 32c:	90 e0       	ldi	r25, 0x00	; 0
 32e:	08 95       	ret
 330:	8f ef       	ldi	r24, 0xFF	; 255
 332:	90 e0       	ldi	r25, 0x00	; 0
 334:	08 95       	ret
else {return 0;}
 336:	80 e0       	ldi	r24, 0x00	; 0
 338:	90 e0       	ldi	r25, 0x00	; 0
}
 33a:	08 95       	ret
 33c:	08 95       	ret

0000033e <IR_Value_Read>:
/*===========================================================


============================================================*/
unsigned char IR_Value_Read(void)
	{
 33e:	ef 92       	push	r14
 340:	ff 92       	push	r15
 342:	0f 93       	push	r16
 344:	1f 93       	push	r17
 346:	cf 93       	push	r28
 348:	df 93       	push	r29
 34a:	cd b7       	in	r28, 0x3d	; 61
 34c:	de b7       	in	r29, 0x3e	; 62
 34e:	24 97       	sbiw	r28, 0x04	; 4
 350:	0f b6       	in	r0, 0x3f	; 63
 352:	f8 94       	cli
 354:	de bf       	out	0x3e, r29	; 62
 356:	0f be       	out	0x3f, r0	; 63
 358:	cd bf       	out	0x3d, r28	; 61
	unsigned char i,j,k;
	unsigned char	IR_Value_time[4];

	if (IR_Time_detect(2400,3360)!=1)
 35a:	60 e2       	ldi	r22, 0x20	; 32
 35c:	7d e0       	ldi	r23, 0x0D	; 13
 35e:	80 e6       	ldi	r24, 0x60	; 96
 360:	99 e0       	ldi	r25, 0x09	; 9
 362:	ca df       	rcall	.-108    	; 0x2f8
 364:	81 30       	cpi	r24, 0x01	; 1
 366:	51 f5       	brne	.+84     	; 0x3bc
		{
		GIFR|=(1<<PCIF);
		return 0xFF;
		}

	for(i=0;i<4;i++)
 368:	ff 24       	eor	r15, r15
		{
		for(j=0;j<8;j++)
 36a:	ee 24       	eor	r14, r14
			{
			IR_Value_time[i]>>=1;
 36c:	0c 2f       	mov	r16, r28
 36e:	1d 2f       	mov	r17, r29
 370:	0f 5f       	subi	r16, 0xFF	; 255
 372:	1f 4f       	sbci	r17, 0xFF	; 255
 374:	0f 0d       	add	r16, r15
 376:	11 1d       	adc	r17, r1
 378:	f1 2f       	mov	r31, r17
 37a:	e0 2f       	mov	r30, r16
 37c:	80 81       	ld	r24, Z
 37e:	86 95       	lsr	r24
 380:	80 83       	st	Z, r24
			k=IR_Time_detect(800,1440);
 382:	60 ea       	ldi	r22, 0xA0	; 160
 384:	75 e0       	ldi	r23, 0x05	; 5
 386:	80 e2       	ldi	r24, 0x20	; 32
 388:	93 e0       	ldi	r25, 0x03	; 3
 38a:	b6 df       	rcall	.-148    	; 0x2f8
			if(k==0xFF) 
 38c:	8f 3f       	cpi	r24, 0xFF	; 255
 38e:	b1 f0       	breq	.+44     	; 0x3bc
				{
				GIFR|=(1<<PCIF);	
				return 0xFF;
				}
			if(k==1) 	
 390:	81 30       	cpi	r24, 0x01	; 1
 392:	29 f4       	brne	.+10     	; 0x39e
				{
				IR_Value_time[i]|=0x80;
 394:	f1 2f       	mov	r31, r17
 396:	e0 2f       	mov	r30, r16
 398:	80 81       	ld	r24, Z
 39a:	80 68       	ori	r24, 0x80	; 128
 39c:	80 83       	st	Z, r24
 39e:	e3 94       	inc	r14
 3a0:	f7 e0       	ldi	r31, 0x07	; 7
 3a2:	fe 15       	cp	r31, r14
 3a4:	18 f7       	brcc	.-58     	; 0x36c
 3a6:	f3 94       	inc	r15
 3a8:	83 e0       	ldi	r24, 0x03	; 3
 3aa:	8f 15       	cp	r24, r15
 3ac:	f0 f6       	brcc	.-68     	; 0x36a
				}
			}
		}

	if((IR_Value_time[2] & IR_Value_time[3])==0)
 3ae:	9b 81       	ldd	r25, Y+3	; 0x03
 3b0:	8c 81       	ldd	r24, Y+4	; 0x04
 3b2:	89 23       	and	r24, r25
 3b4:	31 f4       	brne	.+12     	; 0x3c2
		return IR_Value_time[2];
 3b6:	89 2f       	mov	r24, r25
 3b8:	99 27       	eor	r25, r25
 3ba:	05 c0       	rjmp	.+10     	; 0x3c6
 3bc:	8a b7       	in	r24, 0x3a	; 58
 3be:	80 62       	ori	r24, 0x20	; 32
 3c0:	8a bf       	out	0x3a, r24	; 58
	else
		return 0xFF;
 3c2:	8f ef       	ldi	r24, 0xFF	; 255
 3c4:	90 e0       	ldi	r25, 0x00	; 0
 3c6:	24 96       	adiw	r28, 0x04	; 4
 3c8:	0f b6       	in	r0, 0x3f	; 63
 3ca:	f8 94       	cli
 3cc:	de bf       	out	0x3e, r29	; 62
 3ce:	0f be       	out	0x3f, r0	; 63
 3d0:	cd bf       	out	0x3d, r28	; 61
 3d2:	df 91       	pop	r29
 3d4:	cf 91       	pop	r28
 3d6:	1f 91       	pop	r17
 3d8:	0f 91       	pop	r16
 3da:	ff 90       	pop	r15
 3dc:	ef 90       	pop	r14
 3de:	08 95       	ret

⌨️ 快捷键说明

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