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

📄 system.lss

📁 FM12864液晶驱动,单片机为ATMEGA48,GCC编译器开发,其中包含ADC和串口程序.
💻 LSS
📖 第 1 页 / 共 4 页
字号:
	return 1;
}
 ac4:	81 e0       	ldi	r24, 0x01	; 1
 ac6:	90 e0       	ldi	r25, 0x00	; 0
 ac8:	1f 91       	pop	r17
 aca:	0f 91       	pop	r16
 acc:	08 95       	ret

00000ace <write_right_data>:
/*******************************************/
unsigned char write_right_data(unsigned int Data)
{
 ace:	0f 93       	push	r16
 ad0:	1f 93       	push	r17
 ad2:	8c 01       	movw	r16, r24
	unsigned char Buffer = 0;
	set_data_port_input();
 ad4:	c7 df       	rcall	.-114    	; 0xa64 <set_data_port_input>
	right_display_enable();//使能右半屏
 ad6:	45 9a       	sbi	0x08, 5	; 8
	left_display_disable();//使能左半屏
 ad8:	28 98       	cbi	0x05, 0	; 5
	set_reg_data_operation();//设置为寄存器操作
 ada:	42 98       	cbi	0x08, 2	; 8
	set_read();//设置为读
 adc:	2e 9a       	sbi	0x05, 6	; 5
	while((Buffer&0x80)!=0)
	{
		set_enable_high();
		Buffer = data_pin;
		set_enable_low();
	}
	set_data_port_output();
 ade:	bf df       	rcall	.-130    	; 0xa5e <set_data_port_output>
	set_display_data_operation();//设置为显示数据操作
 ae0:	42 9a       	sbi	0x08, 2	; 8
	set_write();
 ae2:	2e 98       	cbi	0x05, 6	; 5
	data_port = Data;
 ae4:	0b b9       	out	0x0b, r16	; 11
	set_enable_high();
 ae6:	2f 9a       	sbi	0x05, 7	; 5
	set_enable_low();
 ae8:	2f 98       	cbi	0x05, 7	; 5
	return 1;
}
 aea:	81 e0       	ldi	r24, 0x01	; 1
 aec:	90 e0       	ldi	r25, 0x00	; 0
 aee:	1f 91       	pop	r17
 af0:	0f 91       	pop	r16
 af2:	08 95       	ret

00000af4 <display_image>:
/*******************************************/
void display_image(unsigned int *ptr)
{
 af4:	ef 92       	push	r14
 af6:	ff 92       	push	r15
 af8:	0f 93       	push	r16
 afa:	1f 93       	push	r17
 afc:	cf 93       	push	r28
 afe:	df 93       	push	r29
 b00:	ec 01       	movw	r28, r24
	unsigned char loop;
	unsigned char page_buffer;
	write_left_command(0xc0);
 b02:	80 ec       	ldi	r24, 0xC0	; 192
 b04:	b1 df       	rcall	.-158    	; 0xa68 <write_left_command>
	write_right_command(0xc0);//设置为第一行
 b06:	80 ec       	ldi	r24, 0xC0	; 192
 b08:	bf df       	rcall	.-130    	; 0xa88 <write_right_command>
	for(page_buffer=0xb8;page_buffer<0xc0;page_buffer++)
 b0a:	48 eb       	ldi	r20, 0xB8	; 184
 b0c:	e4 2e       	mov	r14, r20
	{
		write_left_command(page_buffer);
 b0e:	8e 2d       	mov	r24, r14
 b10:	ab df       	rcall	.-170    	; 0xa68 <write_left_command>
		write_right_command(page_buffer);//设置为第一页
 b12:	8e 2d       	mov	r24, r14
 b14:	b9 df       	rcall	.-142    	; 0xa88 <write_right_command>
 b16:	3f e1       	ldi	r19, 0x1F	; 31
 b18:	f3 2e       	mov	r15, r19
		for(loop=0;loop<32;loop++)
		{
			write_left_data((unsigned char)pgm_read_word_near(ptr));
 b1a:	fe 01       	movw	r30, r28
 b1c:	05 91       	lpm	r16, Z+
 b1e:	14 91       	lpm	r17, Z
 b20:	80 2f       	mov	r24, r16
 b22:	99 27       	eor	r25, r25
 b24:	c1 df       	rcall	.-126    	; 0xaa8 <write_left_data>
			write_left_data((unsigned char)(pgm_read_word_near(ptr)>>8));
 b26:	81 2f       	mov	r24, r17
 b28:	99 27       	eor	r25, r25
 b2a:	99 27       	eor	r25, r25
 b2c:	bd df       	rcall	.-134    	; 0xaa8 <write_left_data>
			ptr ++;
 b2e:	22 96       	adiw	r28, 0x02	; 2
 b30:	fa 94       	dec	r15
 b32:	f7 fe       	sbrs	r15, 7
 b34:	f2 cf       	rjmp	.-28     	; 0xb1a <display_image+0x26>
 b36:	9f e1       	ldi	r25, 0x1F	; 31
 b38:	f9 2e       	mov	r15, r25
		}
		for(loop=0;loop<32;loop++)
		{
			write_right_data((unsigned char)pgm_read_word_near(ptr));
 b3a:	fe 01       	movw	r30, r28
 b3c:	05 91       	lpm	r16, Z+
 b3e:	14 91       	lpm	r17, Z
 b40:	80 2f       	mov	r24, r16
 b42:	99 27       	eor	r25, r25
 b44:	c4 df       	rcall	.-120    	; 0xace <write_right_data>
			write_right_data((unsigned char)(pgm_read_word_near(ptr)>>8));
 b46:	81 2f       	mov	r24, r17
 b48:	99 27       	eor	r25, r25
 b4a:	99 27       	eor	r25, r25
 b4c:	c0 df       	rcall	.-128    	; 0xace <write_right_data>
			ptr ++;
 b4e:	22 96       	adiw	r28, 0x02	; 2
 b50:	fa 94       	dec	r15
 b52:	f7 fe       	sbrs	r15, 7
 b54:	f2 cf       	rjmp	.-28     	; 0xb3a <display_image+0x46>
 b56:	e3 94       	inc	r14
 b58:	8f eb       	ldi	r24, 0xBF	; 191
 b5a:	8e 15       	cp	r24, r14
 b5c:	c0 f6       	brcc	.-80     	; 0xb0e <display_image+0x1a>
 b5e:	df 91       	pop	r29
 b60:	cf 91       	pop	r28
 b62:	1f 91       	pop	r17
 b64:	0f 91       	pop	r16
 b66:	ff 90       	pop	r15
 b68:	ef 90       	pop	r14
 b6a:	08 95       	ret

00000b6c <clear_lcd>:
		}
	}
}
/*******************************************/
void clear_lcd(void)
{
 b6c:	1f 93       	push	r17
 b6e:	cf 93       	push	r28
	unsigned char loop = 0;
	unsigned char page_buffer = 0;
	write_left_command(0xc0);
 b70:	80 ec       	ldi	r24, 0xC0	; 192
 b72:	7a df       	rcall	.-268    	; 0xa68 <write_left_command>
	write_right_command(0xc0);//设置为第一行
 b74:	80 ec       	ldi	r24, 0xC0	; 192
 b76:	88 df       	rcall	.-240    	; 0xa88 <write_right_command>
	for(page_buffer=0xb8;page_buffer<=0xc0;page_buffer++)
 b78:	18 eb       	ldi	r17, 0xB8	; 184
	{
		write_left_command(page_buffer);
 b7a:	81 2f       	mov	r24, r17
 b7c:	75 df       	rcall	.-278    	; 0xa68 <write_left_command>
		write_right_command(page_buffer);//设置为第一页
 b7e:	81 2f       	mov	r24, r17
 b80:	83 df       	rcall	.-250    	; 0xa88 <write_right_command>
 b82:	cf e3       	ldi	r28, 0x3F	; 63
		for(loop=0;loop<64;loop++)
		{
			write_left_data(0x00);
 b84:	80 e0       	ldi	r24, 0x00	; 0
 b86:	90 e0       	ldi	r25, 0x00	; 0
 b88:	8f df       	rcall	.-226    	; 0xaa8 <write_left_data>
 b8a:	c1 50       	subi	r28, 0x01	; 1
 b8c:	c7 ff       	sbrs	r28, 7
 b8e:	fa cf       	rjmp	.-12     	; 0xb84 <clear_lcd+0x18>
 b90:	cf e3       	ldi	r28, 0x3F	; 63
		}
		for(loop=0;loop<64;loop++)
		{
			write_right_data(0x00);
 b92:	80 e0       	ldi	r24, 0x00	; 0
 b94:	90 e0       	ldi	r25, 0x00	; 0
 b96:	9b df       	rcall	.-202    	; 0xace <write_right_data>
 b98:	c1 50       	subi	r28, 0x01	; 1
 b9a:	c7 ff       	sbrs	r28, 7
 b9c:	fa cf       	rjmp	.-12     	; 0xb92 <clear_lcd+0x26>
 b9e:	1f 5f       	subi	r17, 0xFF	; 255
 ba0:	11 3c       	cpi	r17, 0xC1	; 193
 ba2:	58 f3       	brcs	.-42     	; 0xb7a <clear_lcd+0xe>
 ba4:	cf 91       	pop	r28
 ba6:	1f 91       	pop	r17
 ba8:	08 95       	ret

00000baa <display_character_int>:
		}
	}
	
}
/*******************************************/
u8_t  display_character_int(u8_t line,u8_t tier,u16_t *ptr,u8_t choice)
{
 baa:	bf 92       	push	r11
 bac:	cf 92       	push	r12
 bae:	df 92       	push	r13
 bb0:	ef 92       	push	r14
 bb2:	ff 92       	push	r15
 bb4:	0f 93       	push	r16
 bb6:	1f 93       	push	r17
 bb8:	cf 93       	push	r28
 bba:	df 93       	push	r29
 bbc:	f8 2e       	mov	r15, r24
 bbe:	ea 01       	movw	r28, r20
 bc0:	82 2f       	mov	r24, r18
	u8_t loop1,loop2;
	ptr = ptr+choice*16;
 bc2:	99 27       	eor	r25, r25
 bc4:	b5 e0       	ldi	r27, 0x05	; 5
 bc6:	88 0f       	add	r24, r24
 bc8:	99 1f       	adc	r25, r25
 bca:	ba 95       	dec	r27
 bcc:	e1 f7       	brne	.-8      	; 0xbc6 <display_character_int+0x1c>
 bce:	c8 0f       	add	r28, r24
 bd0:	d9 1f       	adc	r29, r25
	if((line>4)||(line==0))return 1;
 bd2:	8f 2d       	mov	r24, r15
 bd4:	81 50       	subi	r24, 0x01	; 1
 bd6:	84 30       	cpi	r24, 0x04	; 4
 bd8:	28 f4       	brcc	.+10     	; 0xbe4 <display_character_int+0x3a>
	if((tier>8)||(tier==0))return 1;
 bda:	b6 2e       	mov	r11, r22
 bdc:	ba 94       	dec	r11
 bde:	87 e0       	ldi	r24, 0x07	; 7
 be0:	8b 15       	cp	r24, r11
 be2:	18 f4       	brcc	.+6      	; 0xbea <display_character_int+0x40>
 be4:	81 e0       	ldi	r24, 0x01	; 1
 be6:	90 e0       	ldi	r25, 0x00	; 0
 be8:	63 c0       	rjmp	.+198    	; 0xcb0 <display_character_int+0x106>
	if(line==1)
 bea:	81 e0       	ldi	r24, 0x01	; 1
 bec:	f8 16       	cp	r15, r24
 bee:	11 f4       	brne	.+4      	; 0xbf4 <display_character_int+0x4a>
	{
		line = 0;
 bf0:	ff 24       	eor	r15, r15
 bf2:	03 c0       	rjmp	.+6      	; 0xbfa <display_character_int+0x50>
	}
	else
	{
		line = line * 2 - 2;
 bf4:	ff 0c       	add	r15, r15
 bf6:	8e ef       	ldi	r24, 0xFE	; 254
 bf8:	f8 0e       	add	r15, r24
	}
	tier = tier - 1;
 bfa:	db 2c       	mov	r13, r11
	if(tier<4)
 bfc:	83 e0       	ldi	r24, 0x03	; 3
 bfe:	8b 15       	cp	r24, r11
 c00:	50 f1       	brcs	.+84     	; 0xc56 <display_character_int+0xac>
	{
		for(loop1=0;loop1<2;loop1++)
 c02:	cc 24       	eor	r12, r12
		{
			write_left_command(0x40|(tier*16));//设置列
 c04:	8b 2d       	mov	r24, r11
 c06:	99 27       	eor	r25, r25
 c08:	a4 e0       	ldi	r26, 0x04	; 4
 c0a:	88 0f       	add	r24, r24
 c0c:	99 1f       	adc	r25, r25
 c0e:	aa 95       	dec	r26
 c10:	e1 f7       	brne	.-8      	; 0xc0a <display_character_int+0x60>
 c12:	08 2f       	mov	r16, r24
 c14:	00 64       	ori	r16, 0x40	; 64
 c16:	80 2f       	mov	r24, r16
 c18:	27 df       	rcall	.-434    	; 0xa68 <write_left_command>
			write_left_command(0xb8|line);
 c1a:	1f 2d       	mov	r17, r15
 c1c:	18 6b       	ori	r17, 0xB8	; 184
 c1e:	81 2f       	mov	r24, r17
 c20:	23 df       	rcall	.-442    	; 0xa68 <write_left_command>
			write_right_command(0x40|(tier*16));//设置列
 c22:	80 2f       	mov	r24, r16
 c24:	31 df       	rcall	.-414    	; 0xa88 <write_right_command>
			write_right_command(0xb8|line);
 c26:	81 2f       	mov	r24, r17
 c28:	2f df       	rcall	.-418    	; 0xa88 <write_right_command>
 c2a:	f7 e0       	ldi	r31, 0x07	; 7
 c2c:	ef 2e       	mov	r14, r31
			for(loop2=0;loop2<8;loop2++)
			{
				write_left_data((unsigned char)pgm_read_word_near(ptr));
 c2e:	fe 01       	movw	r30, r28
 c30:	05 91       	lpm	r16, Z+
 c32:	14 91       	lpm	r17, Z
 c34:	80 2f       	mov	r24, r16
 c36:	99 27       	eor	r25, r25
 c38:	37 df       	rcall	.-402    	; 0xaa8 <write_left_data>
				write_left_data((unsigned char)(pgm_read_word_near(ptr)>>8));
 c3a:	81 2f       	mov	r24, r17
 c3c:	99 27       	eor	r25, r25
 c3e:	99 27       	eor	r25, r25
 c40:	33 df       	rcall	.-410    	; 0xaa8 <write_left_data>
				ptr++;
 c42:	22 96       	adiw	r28, 0x02	; 2
 c44:	ea 94       	dec	r14
 c46:	e7 fe       	sbrs	r14, 7
 c48:	f2 cf       	rjmp	.-28     	; 0xc2e <display_character_int+0x84>
			}
			line++;
 c4a:	f3 94       	inc	r15
 c4c:	c3 94       	inc	r12
 c4e:	81 e0       	ldi	r24, 0x01	; 1
 c50:	8c 15       	cp	r24, r12
 c52:	c0 f6       	brcc	.-80     	; 0xc04 <display_character_int+0x5a>
 c54:	2b c0       	rjmp	.+86     	; 0xcac <display_character_int+0x102>
		}
	}
	else
	{
		tier = tier - 4;
 c56:	8c ef       	ldi	r24, 0xFC	; 252
 c58:	d8 0e       	add	r13, r24
		for(loop1=0;loop1<2;loop1++)
 c5a:	cc 24       	eor	r12, r12
		{
			write_left_command(0x40|(tier*16));//设置列
 c5c:	8d 2d       	mov	r24, r13
 c5e:	99 27       	eor	r25, r25
 c60:	74 e0       	ldi	r23, 0x04	; 4
 c62:	88 0f       	add	r24, r24
 c64:	99 1f       	adc	r25, r25
 c66:	7a 95       	dec	r23
 c68:	e1 f7       	brne	.-8      	; 0xc62 <display_character_int+0xb8>
 c6a:	08 2f       	mov	r16, r24
 c6c:	00 64       	ori	r16, 0x40	; 64
 c6e:	80 2f       	mov	r24, r16
 c70:	fb de       	rcall	.-522    	; 0xa68 <write_left_command>
			write_left_command(0xb8|line);
 c72:	1f 2d       	mov	r17, r15
 c74:	18 6b       	ori	r17, 0xB8	; 184
 c76:	81 2f       	mov	r24, r17
 c78:	f7 de       	rcall	.-530    	; 0xa68 <write_left_command>
			write_right_command(0x40|(tier*16));//设置列
 c7a:	80 2f       	mov	r24, r16
 c7c:	05 df       	rcall	.-502    	; 0xa88 <write_right_command>
			write_right_command(0xb8|line);
 c7e:	81 2f       	mov	r24, r17
 c80:	03 df       	rcall	.-506    	; 0xa88 <write_right_command>
 c82:	67 e0       	ldi	r22, 0x07	; 7
 c84:	e6 2e       	mov	r14, r22
			for(loop2=0;loop2<8;loop2++)
			{
				write_right_data((unsigned char)pgm_read_word_near(ptr));
 c86:	fe 01       	movw	r30, r28
 c88:	05 91       	lpm	r16, Z+
 c8a:	14 91       	lpm	r17, Z
 c8c:	80 2f       	mov	r24, r16
 c8e:	99 27       	eor	r25, r25
 c90:	1e df       	rcall	.-452    	; 0xace <write_right_data>
				write_right_data((unsigned char)(pgm_read_word_near(ptr)>>8));
 c92:	81 2f       	mov	r24, r17
 c94:	99 27       	eor	r25, r25
 c96:	99 27       	eor	r25, r25
 c98:	1a df       	rcall	.-460    	; 0xace <write_right_data>
				ptr++;
 c9a:	22 96       	adiw	r28, 0x02	; 2
 c9c:	ea 94       	dec	r14
 c9e:	e7 fe       	sbrs	r14, 7
 ca0:	f2 cf       	rjmp	.-28     	; 0xc86 <display_character_int+0xdc>
			}
			line++;
 ca2:	f3 94       	inc	r15
 ca4:	c3 94       	inc	r12
 ca6:	81 e0       	ldi	r24, 0x01	; 1
 ca8:	8c 15       	cp	r24, r12
 caa:	c0 f6       	brcc	.-80     	; 0xc5c <display_character_int+0xb2>
		}
	}
	return 0;
 cac:	80 e0       	ldi	r24, 0x00	; 0
 cae:	90 e0       	ldi	r25, 0x00	; 0
 cb0:	df 91       	pop	r29
 cb2:	cf 91       	pop	r28
 cb4:	1f 91       	pop	r17
 cb6:	0f 91       	pop	r16
 cb8:	ff 90       	pop	r15
 cba:	ef 90       	pop	r14
 cbc:	df 90       	pop	r13
 cbe:	cf 90       	pop	r12
 cc0:	bf 90       	pop	r11
 cc2:	08 95       	ret

00000cc4 <display_character_char>:
}

/*******************************************/
u8_t display_character_char(u8_t line,u8_t tier,u16_t *ptr,u8_t choice)
{
 cc4:	bf 92       	push	r11
 cc6:	cf 92       	push	r12
 cc8:	df 92       	push	r13
 cca:	ef 92       	push	r14
 ccc:	ff 92       	push	r15
 cce:	0f 93       	push	r16
 cd0:	1f 93       	push	r17
 cd2:	cf 93       	push	r28
 cd4:	df 93       	push	r29
 cd6:	f8 2e       	mov	r15, r24
 cd8:	d6 2e       	mov	r13, r22
 cda:	ea 01       	movw	r28, r20

⌨️ 快捷键说明

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