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

📄 main.lss

📁 采用电视遥控器控制的小车
💻 LSS
📖 第 1 页 / 共 5 页
字号:
    1a06:	0f 91       	pop	r16
    1a08:	ff 90       	pop	r15
    1a0a:	ef 90       	pop	r14
    1a0c:	df 90       	pop	r13
    1a0e:	cf 90       	pop	r12
    1a10:	08 95       	ret

00001a12 <lcd_init>:
	}
}
void lcd_init(void)
{
	CRDDR|=(1<<RES)|(1<<A0)|(1<<CS);
    1a12:	84 b3       	in	r24, 0x14	; 20
    1a14:	88 63       	ori	r24, 0x38	; 56
    1a16:	84 bb       	out	0x14, r24	; 20
	DATADDR|=(1<<SCL)|(1<<SDA);
    1a18:	87 b3       	in	r24, 0x17	; 23
    1a1a:	88 62       	ori	r24, 0x28	; 40
    1a1c:	87 bb       	out	0x17, r24	; 23
	CRPORT&=~(1<<RES);
    1a1e:	ac 98       	cbi	0x15, 4	; 21
	CRPORT|=(1<<RES);
    1a20:	ac 9a       	sbi	0x15, 4	; 21
	DDRB |= (1 << 2);
    1a22:	ba 9a       	sbi	0x17, 2	; 23
	SPCR=(1<<SPE)|(1<<MSTR)|(1<<CPHA)|(1<<CPOL);
    1a24:	8c e5       	ldi	r24, 0x5C	; 92
    1a26:	8d b9       	out	0x0d, r24	; 13
	SPSR = (1<<SPI2X);                 // 设置SPI时钟倍速
    1a28:	81 e0       	ldi	r24, 0x01	; 1
    1a2a:	8e b9       	out	0x0e, r24	; 14
	put_char(0xa2,0);
    1a2c:	60 e0       	ldi	r22, 0x00	; 0
    1a2e:	82 ea       	ldi	r24, 0xA2	; 162
    1a30:	15 df       	rcall	.-470    	; 0x185c
	put_char(0b01000000,0);
    1a32:	60 e0       	ldi	r22, 0x00	; 0
    1a34:	80 e4       	ldi	r24, 0x40	; 64
    1a36:	12 df       	rcall	.-476    	; 0x185c
	put_char(0b10100001,0);//地址反转
    1a38:	60 e0       	ldi	r22, 0x00	; 0
    1a3a:	81 ea       	ldi	r24, 0xA1	; 161
    1a3c:	0f df       	rcall	.-482    	; 0x185c
	put_char(0b11001000,0);
    1a3e:	60 e0       	ldi	r22, 0x00	; 0
    1a40:	88 ec       	ldi	r24, 0xC8	; 200
    1a42:	0c df       	rcall	.-488    	; 0x185c
	put_char(0b11111000,0);
    1a44:	60 e0       	ldi	r22, 0x00	; 0
    1a46:	88 ef       	ldi	r24, 0xF8	; 248
    1a48:	09 df       	rcall	.-494    	; 0x185c
	put_char(0x26,0);
    1a4a:	60 e0       	ldi	r22, 0x00	; 0
    1a4c:	86 e2       	ldi	r24, 0x26	; 38
    1a4e:	06 df       	rcall	.-500    	; 0x185c
	put_char(0b10000001,0);
    1a50:	60 e0       	ldi	r22, 0x00	; 0
    1a52:	81 e8       	ldi	r24, 0x81	; 129
    1a54:	03 df       	rcall	.-506    	; 0x185c
	put_char(16,0);
    1a56:	60 e0       	ldi	r22, 0x00	; 0
    1a58:	80 e1       	ldi	r24, 0x10	; 16
    1a5a:	00 df       	rcall	.-512    	; 0x185c
	put_char(0b00101100,0);
    1a5c:	60 e0       	ldi	r22, 0x00	; 0
    1a5e:	8c e2       	ldi	r24, 0x2C	; 44
    1a60:	fd de       	rcall	.-518    	; 0x185c
	put_char(0b00101110,0);
    1a62:	60 e0       	ldi	r22, 0x00	; 0
    1a64:	8e e2       	ldi	r24, 0x2E	; 46
    1a66:	fa de       	rcall	.-524    	; 0x185c
	put_char(0b00101111,0);
    1a68:	60 e0       	ldi	r22, 0x00	; 0
    1a6a:	8f e2       	ldi	r24, 0x2F	; 47
    1a6c:	f7 de       	rcall	.-530    	; 0x185c
	puta(0xff,0xff);
    1a6e:	6f ef       	ldi	r22, 0xFF	; 255
    1a70:	86 2f       	mov	r24, r22
    1a72:	00 df       	rcall	.-512    	; 0x1874
	put_char(0b10101110,0);
    1a74:	60 e0       	ldi	r22, 0x00	; 0
    1a76:	8e ea       	ldi	r24, 0xAE	; 174
    1a78:	f1 de       	rcall	.-542    	; 0x185c
	put_char(0b11111000,0);
    1a7a:	60 e0       	ldi	r22, 0x00	; 0
    1a7c:	88 ef       	ldi	r24, 0xF8	; 248
    1a7e:	ee de       	rcall	.-548    	; 0x185c
	put_char(0b0,0);
    1a80:	60 e0       	ldi	r22, 0x00	; 0
    1a82:	86 2f       	mov	r24, r22
    1a84:	eb de       	rcall	.-554    	; 0x185c
    1a86:	08 95       	ret

00001a88 <__vector_1>:
unsigned int DataIn=0;
unsigned char DataInCount=0,DataReady=0;
int CurrentRTC,SaveRTC,RTC=0;
SIGNAL(SIG_INTERRUPT0)
{
    1a88:	1f 92       	push	r1
    1a8a:	0f 92       	push	r0
    1a8c:	0f b6       	in	r0, 0x3f	; 63
    1a8e:	0f 92       	push	r0
    1a90:	11 24       	eor	r1, r1
    1a92:	2f 93       	push	r18
    1a94:	3f 93       	push	r19
    1a96:	4f 93       	push	r20
    1a98:	8f 93       	push	r24
    1a9a:	9f 93       	push	r25
	if(DataReady) 
    1a9c:	80 91 62 00 	lds	r24, 0x0062
    1aa0:	20 91 60 00 	lds	r18, 0x0060
    1aa4:	30 91 61 00 	lds	r19, 0x0061
    1aa8:	88 23       	and	r24, r24
    1aaa:	41 f0       	breq	.+16     	; 0x1abc
	{
		DataInCount=0;
    1aac:	10 92 63 00 	sts	0x0063, r1
		SaveRTC=((RTC&0xff)<<8)+TCCR0;
    1ab0:	92 2f       	mov	r25, r18
    1ab2:	88 27       	eor	r24, r24
    1ab4:	23 b7       	in	r18, 0x33	; 51
    1ab6:	82 0f       	add	r24, r18
    1ab8:	91 1d       	adc	r25, r1
    1aba:	56 c0       	rjmp	.+172    	; 0x1b68
	}
	/*else if(DataInCount==16)
	{
		DataInCount=0;
		SaveRTC=((RTC&0xff)<<8)+TCCR0;
	}*/
	else 
	{
		CurrentRTC=((RTC&0xFF)<<8)+TCCR0;
    1abc:	92 2f       	mov	r25, r18
    1abe:	88 27       	eor	r24, r24
    1ac0:	23 b7       	in	r18, 0x33	; 51
    1ac2:	82 0f       	add	r24, r18
    1ac4:	91 1d       	adc	r25, r1
    1ac6:	90 93 67 00 	sts	0x0067, r25
    1aca:	80 93 66 00 	sts	0x0066, r24
		if((SaveRTC=CurrentRTC-SaveRTC)<0) SaveRTC=0-SaveRTC;
    1ace:	20 91 68 00 	lds	r18, 0x0068
    1ad2:	30 91 69 00 	lds	r19, 0x0069
    1ad6:	82 1b       	sub	r24, r18
    1ad8:	93 0b       	sbc	r25, r19
    1ada:	90 93 69 00 	sts	0x0069, r25
    1ade:	80 93 68 00 	sts	0x0068, r24
    1ae2:	97 ff       	sbrs	r25, 7
    1ae4:	07 c0       	rjmp	.+14     	; 0x1af4
    1ae6:	90 95       	com	r25
    1ae8:	81 95       	neg	r24
    1aea:	9f 4f       	sbci	r25, 0xFF	; 255
    1aec:	90 93 69 00 	sts	0x0069, r25
    1af0:	80 93 68 00 	sts	0x0068, r24
		if((SaveRTC>1000)&&(SaveRTC<1500))
    1af4:	20 91 68 00 	lds	r18, 0x0068
    1af8:	30 91 69 00 	lds	r19, 0x0069
    1afc:	c9 01       	movw	r24, r18
    1afe:	89 5e       	subi	r24, 0xE9	; 233
    1b00:	93 40       	sbci	r25, 0x03	; 3
    1b02:	83 5f       	subi	r24, 0xF3	; 243
    1b04:	91 40       	sbci	r25, 0x01	; 1
    1b06:	38 f4       	brcc	.+14     	; 0x1b16
		{
			DataIn=DataIn>>1;
    1b08:	80 91 64 00 	lds	r24, 0x0064
    1b0c:	90 91 65 00 	lds	r25, 0x0065
    1b10:	96 95       	lsr	r25
    1b12:	87 95       	ror	r24
    1b14:	0e c0       	rjmp	.+28     	; 0x1b32
			DataInCount++;
		}
		else if((SaveRTC>2000)&&(SaveRTC<2500))
    1b16:	c9 01       	movw	r24, r18
    1b18:	81 5d       	subi	r24, 0xD1	; 209
    1b1a:	97 40       	sbci	r25, 0x07	; 7
    1b1c:	83 5f       	subi	r24, 0xF3	; 243
    1b1e:	91 40       	sbci	r25, 0x01	; 1
    1b20:	90 f4       	brcc	.+36     	; 0x1b46
		{
			DataIn=(DataIn>>1)+32768;
    1b22:	80 91 64 00 	lds	r24, 0x0064
    1b26:	90 91 65 00 	lds	r25, 0x0065
    1b2a:	96 95       	lsr	r25
    1b2c:	87 95       	ror	r24
    1b2e:	80 50       	subi	r24, 0x00	; 0
    1b30:	90 48       	sbci	r25, 0x80	; 128
    1b32:	90 93 65 00 	sts	0x0065, r25
    1b36:	80 93 64 00 	sts	0x0064, r24
			DataInCount++;
    1b3a:	80 91 63 00 	lds	r24, 0x0063
    1b3e:	8f 5f       	subi	r24, 0xFF	; 255
    1b40:	80 93 63 00 	sts	0x0063, r24
    1b44:	0d c0       	rjmp	.+26     	; 0x1b60
		}
		else if((SaveRTC>3000)&&DataInCount==16) DataReady=1;
    1b46:	29 5b       	subi	r18, 0xB9	; 185
    1b48:	3b 40       	sbci	r19, 0x0B	; 11
    1b4a:	44 f0       	brlt	.+16     	; 0x1b5c
    1b4c:	80 91 63 00 	lds	r24, 0x0063
    1b50:	80 31       	cpi	r24, 0x10	; 16
    1b52:	21 f4       	brne	.+8      	; 0x1b5c
    1b54:	81 e0       	ldi	r24, 0x01	; 1
    1b56:	80 93 62 00 	sts	0x0062, r24
    1b5a:	02 c0       	rjmp	.+4      	; 0x1b60
		else DataInCount=0;
    1b5c:	10 92 63 00 	sts	0x0063, r1
		SaveRTC=CurrentRTC;
    1b60:	80 91 66 00 	lds	r24, 0x0066
    1b64:	90 91 67 00 	lds	r25, 0x0067
    1b68:	90 93 69 00 	sts	0x0069, r25
    1b6c:	80 93 68 00 	sts	0x0068, r24
    1b70:	9f 91       	pop	r25
    1b72:	8f 91       	pop	r24
    1b74:	4f 91       	pop	r20
    1b76:	3f 91       	pop	r19
    1b78:	2f 91       	pop	r18
    1b7a:	0f 90       	pop	r0
    1b7c:	0f be       	out	0x3f, r0	; 63
    1b7e:	0f 90       	pop	r0
    1b80:	1f 90       	pop	r1
    1b82:	18 95       	reti

00001b84 <init_int0>:
	}
}
void init_int0(void)
{
	MCUCR|=(1<<ISC01);//下降沿触发中断
    1b84:	85 b7       	in	r24, 0x35	; 53
    1b86:	82 60       	ori	r24, 0x02	; 2
    1b88:	85 bf       	out	0x35, r24	; 53
	GICR|=(1<<INT0);//开局部中断
    1b8a:	8b b7       	in	r24, 0x3b	; 59
    1b8c:	80 64       	ori	r24, 0x40	; 64
    1b8e:	8b bf       	out	0x3b, r24	; 59
    1b90:	08 95       	ret

00001b92 <init_tc1_pwm>:
void init_tc1_pwm(void)
{
	OCR1AL=OCR1BL=125;
    1b92:	8d e7       	ldi	r24, 0x7D	; 125
    1b94:	88 bd       	out	0x28, r24	; 40
    1b96:	88 b5       	in	r24, 0x28	; 40
    1b98:	8a bd       	out	0x2a, r24	; 42
	PORTB|=(1<<PB1)|(1<<PB2);
    1b9a:	88 b3       	in	r24, 0x18	; 24
    1b9c:	86 60       	ori	r24, 0x06	; 6
    1b9e:	88 bb       	out	0x18, r24	; 24
	TCCR1A|=(1<<COM1A1)|(1<<COM1B1)|(1<<COM1A0)|(1<<COM1B0)|(1<<WGM10);//上升沿匹配清零8位相位可调PWM
    1ba0:	8f b5       	in	r24, 0x2f	; 47
    1ba2:	81 6f       	ori	r24, 0xF1	; 241
    1ba4:	8f bd       	out	0x2f, r24	; 47
	TCCR1B|=(1<<CS10);//系统时钟
    1ba6:	8e b5       	in	r24, 0x2e	; 46
    1ba8:	81 60       	ori	r24, 0x01	; 1
    1baa:	8e bd       	out	0x2e, r24	; 46
    1bac:	08 95       	ret

00001bae <init_timer0_OVF>:
//#include <stdio.h>
//#include <LCD1602.h>
void init_timer0_OVF(void)
{
	TCCR0|=(1<<CS01);	//分频比8,T/C0分辨率为8/8=1uS,溢出值256uS
    1bae:	83 b7       	in	r24, 0x33	; 51
    1bb0:	82 60       	ori	r24, 0x02	; 2
    1bb2:	83 bf       	out	0x33, r24	; 51
	TIFR|=1<<TOV0;	//TC0溢出中断
    1bb4:	88 b7       	in	r24, 0x38	; 56
    1bb6:	81 60       	ori	r24, 0x01	; 1
    1bb8:	88 bf       	out	0x38, r24	; 56
	TIMSK|=1<<TOIE0;
    1bba:	89 b7       	in	r24, 0x39	; 57
    1bbc:	81 60       	ori	r24, 0x01	; 1
    1bbe:	89 bf       	out	0x39, r24	; 57
    1bc0:	08 95       	ret

00001bc2 <__vector_9>:
}
SIGNAL(SIG_OVERFLOW0)
{
    1bc2:	1f 92       	push	r1
    1bc4:	0f 92       	push	r0
    1bc6:	0f b6       	in	r0, 0x3f	; 63
    1bc8:	0f 92       	push	r0
    1bca:	11 24       	eor	r1, r1
    1bcc:	8f 93       	push	r24
    1bce:	9f 93       	push	r25
	RTC++;
    1bd0:	80 91 60 00 	lds	r24, 0x0060
    1bd4:	90 91 61 00 	lds	r25, 0x0061
    1bd8:	01 96       	adiw	r24, 0x01	; 1
    1bda:	90 93 61 00 	sts	0x0061, r25
    1bde:	80 93 60 00 	sts	0x0060, r24
    1be2:	9f 91       	pop	r25
    1be4:	8f 91       	pop	r24
    1be6:	0f 90       	pop	r0
    1be8:	0f be       	out	0x3f, r0	; 63
    1bea:	0f 90       	pop	r0
    1bec:	1f 90       	pop	r1
    1bee:	18 95       	reti

00001bf0 <main>:
}
int main(void)
{
    1bf0:	cf e5       	ldi	r28, 0x5F	; 95
    1bf2:	d4 e0       	ldi	r29, 0x04	; 4
    1bf4:	de bf       	out	0x3e, r29	; 62
    1bf6:	cd bf       	out	0x3d, r28	; 61
	unsigned int sign=0;

⌨️ 快捷键说明

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