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

📄 main.lss

📁 基于AVR单片机 Atmel Mega128的AD采集程序。
💻 LSS
📖 第 1 页 / 共 5 页
字号:
     9f2:	8a 83       	std	Y+2, r24	; 0x02
	
	result=result_h;
     9f4:	8a 81       	ldd	r24, Y+2	; 0x02
     9f6:	99 27       	eor	r25, r25
     9f8:	8b 83       	std	Y+3, r24	; 0x03
     9fa:	9c 83       	std	Y+4, r25	; 0x04
	result=result<<4;
     9fc:	8b 81       	ldd	r24, Y+3	; 0x03
     9fe:	9c 81       	ldd	r25, Y+4	; 0x04
     a00:	82 95       	swap	r24
     a02:	92 95       	swap	r25
     a04:	90 7f       	andi	r25, 0xF0	; 240
     a06:	98 27       	eor	r25, r24
     a08:	80 7f       	andi	r24, 0xF0	; 240
     a0a:	98 27       	eor	r25, r24
     a0c:	8b 83       	std	Y+3, r24	; 0x03
     a0e:	9c 83       	std	Y+4, r25	; 0x04
	result|=result_l;
     a10:	89 81       	ldd	r24, Y+1	; 0x01
     a12:	28 2f       	mov	r18, r24
     a14:	33 27       	eor	r19, r19
     a16:	8b 81       	ldd	r24, Y+3	; 0x03
     a18:	9c 81       	ldd	r25, Y+4	; 0x04
     a1a:	82 2b       	or	r24, r18
     a1c:	93 2b       	or	r25, r19
     a1e:	8b 83       	std	Y+3, r24	; 0x03
     a20:	9c 83       	std	Y+4, r25	; 0x04

	sbi(PORTG,1);//读拉高
     a22:	80 91 65 00 	lds	r24, 0x0065
     a26:	82 60       	ori	r24, 0x02	; 2
     a28:	80 93 65 00 	sts	0x0065, r24
	return result;
     a2c:	8b 81       	ldd	r24, Y+3	; 0x03
     a2e:	9c 81       	ldd	r25, Y+4	; 0x04
}
     a30:	24 96       	adiw	r28, 0x04	; 4
     a32:	0f b6       	in	r0, 0x3f	; 63
     a34:	f8 94       	cli
     a36:	de bf       	out	0x3e, r29	; 62
     a38:	0f be       	out	0x3f, r0	; 63
     a3a:	cd bf       	out	0x3d, r28	; 61
     a3c:	df 91       	pop	r29
     a3e:	cf 91       	pop	r28
     a40:	08 95       	ret

00000a42 <AD7891_CHANNEL_SELECT>:
//AD通道选择,index:1~8
void AD7891_CHANNEL_SELECT(uint16_t index)
{
     a42:	cf 93       	push	r28
     a44:	df 93       	push	r29
     a46:	cd b7       	in	r28, 0x3d	; 61
     a48:	de b7       	in	r29, 0x3e	; 62
     a4a:	22 97       	sbiw	r28, 0x02	; 2
     a4c:	0f b6       	in	r0, 0x3f	; 63
     a4e:	f8 94       	cli
     a50:	de bf       	out	0x3e, r29	; 62
     a52:	0f be       	out	0x3f, r0	; 63
     a54:	cd bf       	out	0x3d, r28	; 61
     a56:	89 83       	std	Y+1, r24	; 0x01
     a58:	9a 83       	std	Y+2, r25	; 0x02
	index--;//0~7
     a5a:	89 81       	ldd	r24, Y+1	; 0x01
     a5c:	9a 81       	ldd	r25, Y+2	; 0x02
     a5e:	01 97       	sbiw	r24, 0x01	; 1
     a60:	89 83       	std	Y+1, r24	; 0x01
     a62:	9a 83       	std	Y+2, r25	; 0x02
	index=(index<<3);
     a64:	89 81       	ldd	r24, Y+1	; 0x01
     a66:	9a 81       	ldd	r25, Y+2	; 0x02
     a68:	88 0f       	add	r24, r24
     a6a:	99 1f       	adc	r25, r25
     a6c:	88 0f       	add	r24, r24
     a6e:	99 1f       	adc	r25, r25
     a70:	88 0f       	add	r24, r24
     a72:	99 1f       	adc	r25, r25
     a74:	89 83       	std	Y+1, r24	; 0x01
     a76:	9a 83       	std	Y+2, r25	; 0x02
	index&=0x38;//00111000,保留A2、A1、A0,将其它位屏蔽
     a78:	89 81       	ldd	r24, Y+1	; 0x01
     a7a:	9a 81       	ldd	r25, Y+2	; 0x02
     a7c:	88 73       	andi	r24, 0x38	; 56
     a7e:	90 70       	andi	r25, 0x00	; 0
     a80:	89 83       	std	Y+1, r24	; 0x01
     a82:	9a 83       	std	Y+2, r25	; 0x02
	AD7891_WRITE(index);
     a84:	89 81       	ldd	r24, Y+1	; 0x01
     a86:	9a 81       	ldd	r25, Y+2	; 0x02
     a88:	0e 94 78 04 	call	0x8f0
}
     a8c:	22 96       	adiw	r28, 0x02	; 2
     a8e:	0f b6       	in	r0, 0x3f	; 63
     a90:	f8 94       	cli
     a92:	de bf       	out	0x3e, r29	; 62
     a94:	0f be       	out	0x3f, r0	; 63
     a96:	cd bf       	out	0x3d, r28	; 61
     a98:	df 91       	pop	r29
     a9a:	cf 91       	pop	r28
     a9c:	08 95       	ret

00000a9e <AD7891_CONVERSION_START>:
//AD转换开始
void AD7891_CONVERSION_START(void)
{
     a9e:	cf 93       	push	r28
     aa0:	df 93       	push	r29
     aa2:	cd b7       	in	r28, 0x3d	; 61
     aa4:	de b7       	in	r29, 0x3e	; 62
	cbi(PORTB,2);//拉低CONVST
     aa6:	80 91 38 00 	lds	r24, 0x0038
     aaa:	8b 7f       	andi	r24, 0xFB	; 251
     aac:	80 93 38 00 	sts	0x0038, r24
	delay_ms();
     ab0:	0e 94 39 03 	call	0x672
	sbi(PORTB,2);//拉高CONVST,启动AD转换
     ab4:	80 91 38 00 	lds	r24, 0x0038
     ab8:	84 60       	ori	r24, 0x04	; 4
     aba:	80 93 38 00 	sts	0x0038, r24
}
     abe:	df 91       	pop	r29
     ac0:	cf 91       	pop	r28
     ac2:	08 95       	ret

00000ac4 <UART_SETTING>:
//串口初始化设置,包括设置波特率、8位数据+1位STOP位、多机通讯模式设置
void UART_SETTING(int baud_rate, long fosc)
{
     ac4:	ef 92       	push	r14
     ac6:	ff 92       	push	r15
     ac8:	0f 93       	push	r16
     aca:	1f 93       	push	r17
     acc:	cf 93       	push	r28
     ace:	df 93       	push	r29
     ad0:	cd b7       	in	r28, 0x3d	; 61
     ad2:	de b7       	in	r29, 0x3e	; 62
     ad4:	66 97       	sbiw	r28, 0x16	; 22
     ad6:	0f b6       	in	r0, 0x3f	; 63
     ad8:	f8 94       	cli
     ada:	de bf       	out	0x3e, r29	; 62
     adc:	0f be       	out	0x3f, r0	; 63
     ade:	cd bf       	out	0x3d, r28	; 61
     ae0:	89 83       	std	Y+1, r24	; 0x01
     ae2:	9a 83       	std	Y+2, r25	; 0x02
     ae4:	4b 83       	std	Y+3, r20	; 0x03
     ae6:	5c 83       	std	Y+4, r21	; 0x04
     ae8:	6d 83       	std	Y+5, r22	; 0x05
     aea:	7e 83       	std	Y+6, r23	; 0x06
	UBRR0L=(fosc/16/(baud_rate+1))%256;//设置波特率
     aec:	8b 81       	ldd	r24, Y+3	; 0x03
     aee:	9c 81       	ldd	r25, Y+4	; 0x04
     af0:	ad 81       	ldd	r26, Y+5	; 0x05
     af2:	be 81       	ldd	r27, Y+6	; 0x06
     af4:	8f 83       	std	Y+7, r24	; 0x07
     af6:	98 87       	std	Y+8, r25	; 0x08
     af8:	a9 87       	std	Y+9, r26	; 0x09
     afa:	ba 87       	std	Y+10, r27	; 0x0a
     afc:	2f 81       	ldd	r18, Y+7	; 0x07
     afe:	38 85       	ldd	r19, Y+8	; 0x08
     b00:	49 85       	ldd	r20, Y+9	; 0x09
     b02:	5a 85       	ldd	r21, Y+10	; 0x0a
     b04:	55 23       	and	r21, r21
     b06:	5c f4       	brge	.+22     	; 0xb1e
     b08:	8f 81       	ldd	r24, Y+7	; 0x07
     b0a:	98 85       	ldd	r25, Y+8	; 0x08
     b0c:	a9 85       	ldd	r26, Y+9	; 0x09
     b0e:	ba 85       	ldd	r27, Y+10	; 0x0a
     b10:	0f 96       	adiw	r24, 0x0f	; 15
     b12:	a1 1d       	adc	r26, r1
     b14:	b1 1d       	adc	r27, r1
     b16:	8f 83       	std	Y+7, r24	; 0x07
     b18:	98 87       	std	Y+8, r25	; 0x08
     b1a:	a9 87       	std	Y+9, r26	; 0x09
     b1c:	ba 87       	std	Y+10, r27	; 0x0a
     b1e:	ef 80       	ldd	r14, Y+7	; 0x07
     b20:	f8 84       	ldd	r15, Y+8	; 0x08
     b22:	09 85       	ldd	r16, Y+9	; 0x09
     b24:	1a 85       	ldd	r17, Y+10	; 0x0a
     b26:	68 94       	set
     b28:	13 f8       	bld	r1, 3
     b2a:	15 95       	asr	r17
     b2c:	07 95       	ror	r16
     b2e:	f7 94       	ror	r15
     b30:	e7 94       	ror	r14
     b32:	16 94       	lsr	r1
     b34:	d1 f7       	brne	.-12     	; 0xb2a
     b36:	89 81       	ldd	r24, Y+1	; 0x01
     b38:	9a 81       	ldd	r25, Y+2	; 0x02
     b3a:	01 96       	adiw	r24, 0x01	; 1
     b3c:	9c 01       	movw	r18, r24
     b3e:	44 27       	eor	r20, r20
     b40:	37 fd       	sbrc	r19, 7
     b42:	40 95       	com	r20
     b44:	54 2f       	mov	r21, r20
     b46:	c8 01       	movw	r24, r16
     b48:	b7 01       	movw	r22, r14
     b4a:	0e 94 d9 08 	call	0x11b2
     b4e:	2b 87       	std	Y+11, r18	; 0x0b
     b50:	3c 87       	std	Y+12, r19	; 0x0c
     b52:	4d 87       	std	Y+13, r20	; 0x0d
     b54:	5e 87       	std	Y+14, r21	; 0x0e
     b56:	2b 85       	ldd	r18, Y+11	; 0x0b
     b58:	3c 85       	ldd	r19, Y+12	; 0x0c
     b5a:	4d 85       	ldd	r20, Y+13	; 0x0d
     b5c:	5e 85       	ldd	r21, Y+14	; 0x0e
     b5e:	2f 87       	std	Y+15, r18	; 0x0f
     b60:	38 8b       	std	Y+16, r19	; 0x10
     b62:	49 8b       	std	Y+17, r20	; 0x11
     b64:	5a 8b       	std	Y+18, r21	; 0x12
     b66:	8f 85       	ldd	r24, Y+15	; 0x0f
     b68:	98 89       	ldd	r25, Y+16	; 0x10
     b6a:	a9 89       	ldd	r26, Y+17	; 0x11
     b6c:	ba 89       	ldd	r27, Y+18	; 0x12
     b6e:	bb 23       	and	r27, r27
     b70:	64 f4       	brge	.+24     	; 0xb8a
     b72:	2f 85       	ldd	r18, Y+15	; 0x0f
     b74:	38 89       	ldd	r19, Y+16	; 0x10
     b76:	49 89       	ldd	r20, Y+17	; 0x11
     b78:	5a 89       	ldd	r21, Y+18	; 0x12
     b7a:	21 50       	subi	r18, 0x01	; 1
     b7c:	3f 4f       	sbci	r19, 0xFF	; 255
     b7e:	4f 4f       	sbci	r20, 0xFF	; 255
     b80:	5f 4f       	sbci	r21, 0xFF	; 255
     b82:	2f 87       	std	Y+15, r18	; 0x0f
     b84:	38 8b       	std	Y+16, r19	; 0x10
     b86:	49 8b       	std	Y+17, r20	; 0x11
     b88:	5a 8b       	std	Y+18, r21	; 0x12
     b8a:	2f 85       	ldd	r18, Y+15	; 0x0f
     b8c:	38 89       	ldd	r19, Y+16	; 0x10
     b8e:	49 89       	ldd	r20, Y+17	; 0x11
     b90:	5a 89       	ldd	r21, Y+18	; 0x12
     b92:	bb 27       	eor	r27, r27
     b94:	57 fd       	sbrc	r21, 7
     b96:	ba 95       	dec	r27
     b98:	a5 2f       	mov	r26, r21
     b9a:	94 2f       	mov	r25, r20
     b9c:	83 2f       	mov	r24, r19
     b9e:	20 e0       	ldi	r18, 0x00	; 0
     ba0:	31 e0       	ldi	r19, 0x01	; 1
     ba2:	40 e0       	ldi	r20, 0x00	; 0
     ba4:	50 e0       	ldi	r21, 0x00	; 0
     ba6:	bc 01       	movw	r22, r24
     ba8:	cd 01       	movw	r24, r26
     baa:	0e 94 ba 08 	call	0x1174
     bae:	dc 01       	movw	r26, r24
     bb0:	cb 01       	movw	r24, r22
     bb2:	2b 85       	ldd	r18, Y+11	; 0x0b
     bb4:	3c 85       	ldd	r19, Y+12	; 0x0c
     bb6:	4d 85       	ldd	r20, Y+13	; 0x0d
     bb8:	5e 85       	ldd	r21, Y+14	; 0x0e
     bba:	28 1b       	sub	r18, r24
     bbc:	39 0b       	sbc	r19, r25
     bbe:	4a 0b       	sbc	r20, r26
     bc0:	5b 0b       	sbc	r21, r27
     bc2:	da 01       	movw	r26, r20
     bc4:	c9 01       	movw	r24, r18
     bc6:	80 93 29 00 	sts	0x0029, r24
	UBRR0H=(fosc/16/(baud_rate+1))/256;
     bca:	8b 81       	ldd	r24, Y+3	; 0x03
     bcc:	9c 81       	ldd	r25, Y+4	; 0x04
     bce:	ad 81       	ldd	r26, Y+5	; 0x05
     bd0:	be 81       	ldd	r27, Y+6	; 0x06
     bd2:	8b 8b       	std	Y+19, r24	; 0x13
     bd4:	9c 8b       	std	Y+20, r25	; 0x14
     bd6:	ad 8b       	std	Y+21, r26	; 0x15
     bd8:	be 8b       	std	Y+22, r27	; 0x16
     bda:	8b 89       	ldd	r24, Y+19	; 0x13
     bdc:	9c 89       	ldd	r25, Y+20	; 0x14
     bde:	ad 89       	ldd	r26, Y+21	; 0x15
     be0:	be 89       	ldd	r27, Y+22	; 0x16
     be2:	bb 23       	and	r27, r27
     be4:	64 f4       	brge	.+24     	; 0xbfe
     be6:	2b 89       	ldd	r18, Y+19	; 0x13
     be8:	3c 89       	ldd	r19, Y+20	; 0x14
     bea:	4d 89       	ldd	r20, Y+21	; 0x15
     bec:	5e 89       	ldd	r21, Y+22	; 0x16
     bee:	21 50       	subi	r18, 0x01	; 1
     bf0:	30 4f       	sbci	r19, 0xF0	; 240
     bf2:	4f 4f       	sbci	r20, 0xFF	; 255
     bf4:	5f 4f       	sbci	r21, 0xFF	; 255
     bf6:	2b 8b       	std	Y+19, r18	; 0x13
     bf8:	3c 8b       	std	Y+20, r19	; 0x14
     bfa:	4d 8b       	std	Y+21, r20	; 0x15
     bfc:	5e 8b       	std	Y+22, r21	; 0x16
     bfe:	eb 88       	ldd	r14, Y+19	; 0x13
     c00:	fc 88       	ldd	r15, Y+20	; 0x14
     c02:	0d 89       	ldd	r16, Y+21	; 0x15
     c04:	1e 89       	ldd	r17, Y+22	; 0x16
     c06:	0d 2e       	mov	r0, r29
     c08:	dc e0       	ldi	r29, 0x0C	; 12
     c0a:	15 95       	asr	r17
     c0c:	07 95       	ror	r16
     c0e:	f7 94       	ror	r15
     c10:	e7 94       	ror	r14
     c12:	da 95       	dec	r29
     c14:	d1 f7       	brne	.-12     	; 0xc0a
     c16:	d0 2d       	mov	r29, r0
     c18:	89 81       	ldd	r24, Y+1	; 0x01
     c1a:	9a 81       	ldd	r25, Y+2	; 0x02
     c1c:	01 96       	adiw	r24, 0x01	; 1
     c1e:	9c 01       	movw	r18, r24
     c20:	44 27       	eor	r20, r20
     c22:	37 fd       	sbrc	r19, 7
     c24:	40 95       	com	r20
     c26:	54 2f       	mov	r21, r20
     c28:	c8 01       	movw	r24, r16
     c2a:	b7 01       	movw	r22, r14
     c2c:	0e 94 d9 08 	call	0x11b2
     c30:	da 01       	movw	r26, r20
     c32:	c9 01       	movw	r24, r18
     c34:	80 93 90 00 	sts	0x0090, r24
    UCSR0A|=(1<<MPCM0);//多机通讯模式
     c38:	80 91 2b 00 	lds	r24, 0x002B
     c3c:	81 60       	ori	r24, 0x01	; 1
     c3e:	80 93 2b 00 	sts	0x002B, r24
//	UCSR0B|=(1<<RXEN0)|(1<<TXEN0)|(1<<RXCIE0);//允许发送和接收,并允许接收中断
	UCSR0C|=(1<<UCSZ01)|(1<<UCSZ00);//9位数据+1位STOP位,从机
     c42:	80 91 95 00 	lds	r24, 0x0095
     c46:	86 60       	ori	r24, 0x06	; 6
     c48:	80 93 95 00 	sts	0x0095, r24
    UCSR0B|=(1<<UCSZ02);
     c4c:	80 91 2a 00 	lds	r24, 0x002A
     c50:	84 60       	ori	r24, 0x04	; 4
     c52:	80 93 2a 00 	sts	0x002A, r24
}
     c56:	66 96       	adiw	r28, 0x16	; 22
     c58:	0f b6       	in	r0, 0x3f	; 63
     c5a:	f8 94       	cli
     c5c:	de bf       	out	0x3e, r29	; 62
     c5e:	0f be       	out	0x3f, r0	; 63
     c60:	cd bf       	out	0x3d, r28	; 61
     c62:	df 91       	pop	r29
     c64:	cf 91       	pop	r28
     c66:	1f 91       	pop	r17
     c68:	0f 91       	pop	r16
     c6a:	ff 90       	pop	r15
     c6c:	ef 90       	pop	r14
     c6e:	08 95       	ret

00000c70 <UART_RXCINT_OPEN>:

//开串口接收中断
void UART_RXCINT_OPEN(void)
{
     c70:	cf 93       	push	r28
     c72:	df 93       	push	r29
     c74:	cd b7       	in	r28, 0x3d	; 61
     c76:	de b7       	in	r29, 0x3e	; 62
	UCSR0B|=(1<<RXEN0)|(1<<TXEN0)|(1<<RXCIE0);//允许发送和接收,并允许接收中断
     c78:	80 91 2a 00 	lds	r24, 0x002A
     c7c:	88 69       	ori	r24, 0x98	; 152
     c7e:	80 93 2a 00 	sts	0x002A, r24
}
     c82:	df 91       	pop	r29
     c84:	cf 91       	pop	r28
     c86:	08 95    

⌨️ 快捷键说明

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