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

📄 main.lss

📁 液晶显示屏12232的开发程序
💻 LSS
📖 第 1 页 / 共 5 页
字号:
     96c:	b9 1e       	adc	r11, r25
     96e:	6f 01       	movw	r12, r30
     970:	76 2e       	mov	r7, r22
     972:	00 e0       	ldi	r16, 0x00	; 0
     974:	87 c0       	rjmp	.+270    	; 0xa84 <DrawBmp1+0x154>
uchar window=0;  //window表示左右两页
//putcharR    //右边
//putcharL    //左边
for (x=width;x>1;x--)
{
if (x_add>60) {window=1;address=x_add%61;}
     976:	8d e3       	ldi	r24, 0x3D	; 61
     978:	e8 16       	cp	r14, r24
     97a:	f1 04       	cpc	r15, r1
     97c:	40 f0       	brcs	.+16     	; 0x98e <DrawBmp1+0x5e>
     97e:	c7 01       	movw	r24, r14
     980:	6d e3       	ldi	r22, 0x3D	; 61
     982:	70 e0       	ldi	r23, 0x00	; 0
     984:	0e 94 45 08 	call	0x108a	; 0x108a <__udivmodhi4>
     988:	18 2f       	mov	r17, r24
     98a:	01 e0       	ldi	r16, 0x01	; 1
     98c:	01 c0       	rjmp	.+2      	; 0x990 <DrawBmp1+0x60>
     98e:	1e 2d       	mov	r17, r14
else address=x_add;    
    SetPage(0,0);
     990:	60 e0       	ldi	r22, 0x00	; 0
     992:	80 e0       	ldi	r24, 0x00	; 0
     994:	0e 94 5b 04 	call	0x8b6	; 0x8b6 <SetPage>
CONTROL&=~_BV(E1);
}
//左页命令
void outmi(uchar i)
{
CONTROL&=~_BV(A0);
     998:	db 98       	cbi	0x1b, 3	; 27
CONTROL|=_BV(E1);
     99a:	da 9a       	sbi	0x1b, 2	; 27
DATA=i;
     99c:	15 bb       	out	0x15, r17	; 21
CONTROL&=~_BV(E1);
     99e:	da 98       	cbi	0x1b, 2	; 27
CONTROL&=~_BV(E2);
}
//右页指令
void outsi(uchar i)
{
CONTROL&=~_BV(A0);
     9a0:	db 98       	cbi	0x1b, 3	; 27
CONTROL|=_BV(E2);
     9a2:	d9 9a       	sbi	0x1b, 1	; 27
DATA=i;
     9a4:	15 bb       	out	0x15, r17	; 21
CONTROL&=~_BV(E2);
     9a6:	d9 98       	cbi	0x1b, 1	; 27
{
if (x_add>60) {window=1;address=x_add%61;}
else address=x_add;    
    SetPage(0,0);
    SetAddress(address,address);
    if(window==1)PutCharR(pgm_read_byte(bmp+i));
     9a8:	01 30       	cpi	r16, 0x01	; 1
     9aa:	39 f4       	brne	.+14     	; 0x9ba <DrawBmp1+0x8a>
     9ac:	f6 01       	movw	r30, r12
     9ae:	84 91       	lpm	r24, Z+
CONTROL&=~_BV(E1);
}
//右页数据
void outsd(uchar i)
{
CONTROL|=_BV(A0);
     9b0:	db 9a       	sbi	0x1b, 3	; 27
CONTROL|=_BV(E2);
     9b2:	d9 9a       	sbi	0x1b, 1	; 27
DATA=i;
     9b4:	85 bb       	out	0x15, r24	; 21
CONTROL&=~_BV(E2);
     9b6:	d9 98       	cbi	0x1b, 1	; 27
     9b8:	06 c0       	rjmp	.+12     	; 0x9c6 <DrawBmp1+0x96>
if (x_add>60) {window=1;address=x_add%61;}
else address=x_add;    
    SetPage(0,0);
    SetAddress(address,address);
    if(window==1)PutCharR(pgm_read_byte(bmp+i));
    else    PutCharL(pgm_read_byte(bmp+i));
     9ba:	f6 01       	movw	r30, r12
     9bc:	84 91       	lpm	r24, Z+


//左页数据
void outmd(uchar i)
{
CONTROL|=_BV(A0);
     9be:	db 9a       	sbi	0x1b, 3	; 27
CONTROL|=_BV(E1);
     9c0:	da 9a       	sbi	0x1b, 2	; 27
DATA=i;
     9c2:	85 bb       	out	0x15, r24	; 21
CONTROL&=~_BV(E1);
     9c4:	da 98       	cbi	0x1b, 2	; 27
else address=x_add;    
    SetPage(0,0);
    SetAddress(address,address);
    if(window==1)PutCharR(pgm_read_byte(bmp+i));
    else    PutCharL(pgm_read_byte(bmp+i));
    SetPage(1,1);
     9c6:	61 e0       	ldi	r22, 0x01	; 1
     9c8:	81 e0       	ldi	r24, 0x01	; 1
     9ca:	0e 94 5b 04 	call	0x8b6	; 0x8b6 <SetPage>
CONTROL&=~_BV(E1);
}
//左页命令
void outmi(uchar i)
{
CONTROL&=~_BV(A0);
     9ce:	db 98       	cbi	0x1b, 3	; 27
CONTROL|=_BV(E1);
     9d0:	da 9a       	sbi	0x1b, 2	; 27
DATA=i;
     9d2:	15 bb       	out	0x15, r17	; 21
CONTROL&=~_BV(E1);
     9d4:	da 98       	cbi	0x1b, 2	; 27
CONTROL&=~_BV(E2);
}
//右页指令
void outsi(uchar i)
{
CONTROL&=~_BV(A0);
     9d6:	db 98       	cbi	0x1b, 3	; 27
CONTROL|=_BV(E2);
     9d8:	d9 9a       	sbi	0x1b, 1	; 27
DATA=i;
     9da:	15 bb       	out	0x15, r17	; 21
CONTROL&=~_BV(E2);
     9dc:	d9 98       	cbi	0x1b, 1	; 27
    SetAddress(address,address);
    if(window==1)PutCharR(pgm_read_byte(bmp+i));
    else    PutCharL(pgm_read_byte(bmp+i));
    SetPage(1,1);
    SetAddress(address,address);
    if(window==1)PutCharR(pgm_read_byte(bmp+i+width));
     9de:	01 30       	cpi	r16, 0x01	; 1
     9e0:	39 f4       	brne	.+14     	; 0x9f0 <DrawBmp1+0xc0>
     9e2:	f5 01       	movw	r30, r10
     9e4:	84 91       	lpm	r24, Z+
CONTROL&=~_BV(E1);
}
//右页数据
void outsd(uchar i)
{
CONTROL|=_BV(A0);
     9e6:	db 9a       	sbi	0x1b, 3	; 27
CONTROL|=_BV(E2);
     9e8:	d9 9a       	sbi	0x1b, 1	; 27
DATA=i;
     9ea:	85 bb       	out	0x15, r24	; 21
CONTROL&=~_BV(E2);
     9ec:	d9 98       	cbi	0x1b, 1	; 27
     9ee:	06 c0       	rjmp	.+12     	; 0x9fc <DrawBmp1+0xcc>
    if(window==1)PutCharR(pgm_read_byte(bmp+i));
    else    PutCharL(pgm_read_byte(bmp+i));
    SetPage(1,1);
    SetAddress(address,address);
    if(window==1)PutCharR(pgm_read_byte(bmp+i+width));
    else    PutCharL(pgm_read_byte(bmp+i+width));
     9f0:	f5 01       	movw	r30, r10
     9f2:	84 91       	lpm	r24, Z+


//左页数据
void outmd(uchar i)
{
CONTROL|=_BV(A0);
     9f4:	db 9a       	sbi	0x1b, 3	; 27
CONTROL|=_BV(E1);
     9f6:	da 9a       	sbi	0x1b, 2	; 27
DATA=i;
     9f8:	85 bb       	out	0x15, r24	; 21
CONTROL&=~_BV(E1);
     9fa:	da 98       	cbi	0x1b, 2	; 27
    SetPage(1,1);
    SetAddress(address,address);
    if(window==1)PutCharR(pgm_read_byte(bmp+i+width));
    else    PutCharL(pgm_read_byte(bmp+i+width));
    
    SetPage(2,2);
     9fc:	62 e0       	ldi	r22, 0x02	; 2
     9fe:	82 e0       	ldi	r24, 0x02	; 2
     a00:	0e 94 5b 04 	call	0x8b6	; 0x8b6 <SetPage>
CONTROL&=~_BV(E1);
}
//左页命令
void outmi(uchar i)
{
CONTROL&=~_BV(A0);
     a04:	db 98       	cbi	0x1b, 3	; 27
CONTROL|=_BV(E1);
     a06:	da 9a       	sbi	0x1b, 2	; 27
DATA=i;
     a08:	15 bb       	out	0x15, r17	; 21
CONTROL&=~_BV(E1);
     a0a:	da 98       	cbi	0x1b, 2	; 27
CONTROL&=~_BV(E2);
}
//右页指令
void outsi(uchar i)
{
CONTROL&=~_BV(A0);
     a0c:	db 98       	cbi	0x1b, 3	; 27
CONTROL|=_BV(E2);
     a0e:	d9 9a       	sbi	0x1b, 1	; 27
DATA=i;
     a10:	15 bb       	out	0x15, r17	; 21
CONTROL&=~_BV(E2);
     a12:	d9 98       	cbi	0x1b, 1	; 27
    if(window==1)PutCharR(pgm_read_byte(bmp+i+width));
    else    PutCharL(pgm_read_byte(bmp+i+width));
    
    SetPage(2,2);
    SetAddress(address,address);
    if(window==1)PutCharR(pgm_read_byte(bmp+i+width+width));
     a14:	01 30       	cpi	r16, 0x01	; 1
     a16:	39 f4       	brne	.+14     	; 0xa26 <DrawBmp1+0xf6>
     a18:	f4 01       	movw	r30, r8
     a1a:	84 91       	lpm	r24, Z+
CONTROL&=~_BV(E1);
}
//右页数据
void outsd(uchar i)
{
CONTROL|=_BV(A0);
     a1c:	db 9a       	sbi	0x1b, 3	; 27
CONTROL|=_BV(E2);
     a1e:	d9 9a       	sbi	0x1b, 1	; 27
DATA=i;
     a20:	85 bb       	out	0x15, r24	; 21
CONTROL&=~_BV(E2);
     a22:	d9 98       	cbi	0x1b, 1	; 27
     a24:	06 c0       	rjmp	.+12     	; 0xa32 <DrawBmp1+0x102>
    else    PutCharL(pgm_read_byte(bmp+i+width));
    
    SetPage(2,2);
    SetAddress(address,address);
    if(window==1)PutCharR(pgm_read_byte(bmp+i+width+width));
    else    PutCharL(pgm_read_byte(bmp+i+width+width));
     a26:	f4 01       	movw	r30, r8
     a28:	84 91       	lpm	r24, Z+


//左页数据
void outmd(uchar i)
{
CONTROL|=_BV(A0);
     a2a:	db 9a       	sbi	0x1b, 3	; 27
CONTROL|=_BV(E1);
     a2c:	da 9a       	sbi	0x1b, 2	; 27
DATA=i;
     a2e:	85 bb       	out	0x15, r24	; 21
CONTROL&=~_BV(E1);
     a30:	da 98       	cbi	0x1b, 2	; 27
    
    SetPage(2,2);
    SetAddress(address,address);
    if(window==1)PutCharR(pgm_read_byte(bmp+i+width+width));
    else    PutCharL(pgm_read_byte(bmp+i+width+width));
    SetPage(3,3);
     a32:	63 e0       	ldi	r22, 0x03	; 3
     a34:	83 e0       	ldi	r24, 0x03	; 3
     a36:	0e 94 5b 04 	call	0x8b6	; 0x8b6 <SetPage>
CONTROL&=~_BV(E1);
}
//左页命令
void outmi(uchar i)
{
CONTROL&=~_BV(A0);
     a3a:	db 98       	cbi	0x1b, 3	; 27
CONTROL|=_BV(E1);
     a3c:	da 9a       	sbi	0x1b, 2	; 27
DATA=i;
     a3e:	15 bb       	out	0x15, r17	; 21
CONTROL&=~_BV(E1);
     a40:	da 98       	cbi	0x1b, 2	; 27
CONTROL&=~_BV(E2);
}
//右页指令
void outsi(uchar i)
{
CONTROL&=~_BV(A0);
     a42:	db 98       	cbi	0x1b, 3	; 27
CONTROL|=_BV(E2);
     a44:	d9 9a       	sbi	0x1b, 1	; 27
DATA=i;
     a46:	15 bb       	out	0x15, r17	; 21
CONTROL&=~_BV(E2);
     a48:	d9 98       	cbi	0x1b, 1	; 27
    SetAddress(address,address);
    if(window==1)PutCharR(pgm_read_byte(bmp+i+width+width));
    else    PutCharL(pgm_read_byte(bmp+i+width+width));
    SetPage(3,3);
    SetAddress(address,address);
    if(window==1)PutCharR(pgm_read_byte(bmp+i+width+width+width));
     a4a:	01 30       	cpi	r16, 0x01	; 1
     a4c:	39 f4       	brne	.+14     	; 0xa5c <DrawBmp1+0x12c>
     a4e:	fe 01       	movw	r30, r28
     a50:	84 91       	lpm	r24, Z+
CONTROL&=~_BV(E1);
}
//右页数据
void outsd(uchar i)
{
CONTROL|=_BV(A0);
     a52:	db 9a       	sbi	0x1b, 3	; 27
CONTROL|=_BV(E2);
     a54:	d9 9a       	sbi	0x1b, 1	; 27
DATA=i;
     a56:	85 bb       	out	0x15, r24	; 21
CONTROL&=~_BV(E2);
     a58:	d9 98       	cbi	0x1b, 1	; 27
     a5a:	06 c0       	rjmp	.+12     	; 0xa68 <DrawBmp1+0x138>
    if(window==1)PutCharR(pgm_read_byte(bmp+i+width+width));
    else    PutCharL(pgm_read_byte(bmp+i+width+width));
    SetPage(3,3);
    SetAddress(address,address);
    if(window==1)PutCharR(pgm_read_byte(bmp+i+width+width+width));
    else    PutCharL(pgm_read_byte(bmp+i+width+width+width));    
     a5c:	fe 01       	movw	r30, r28
     a5e:	84 91       	lpm	r24, Z+


//左页数据
void outmd(uchar i)
{
CONTROL|=_BV(A0);
     a60:	db 9a       	sbi	0x1b, 3	; 27
CONTROL|=_BV(E1);
     a62:	da 9a       	sbi	0x1b, 2	; 27
DATA=i;
     a64:	85 bb       	out	0x15, r24	; 21
CONTROL&=~_BV(E1);
     a66:	da 98       	cbi	0x1b, 2	; 27
    SetPage(3,3);
    SetAddress(address,address);
    if(window==1)PutCharR(pgm_read_byte(bmp+i+width+width+width));
    else    PutCharL(pgm_read_byte(bmp+i+width+width+width));    
    i++;
    x_add++;
     a68:	08 94       	sec
     a6a:	e1 1c       	adc	r14, r1
     a6c:	f1 1c       	adc	r15, r1
{
uchar x,address,i=0;     //address表示显存的物理地址
uchar window=0;  //window表示左右两页
//putcharR    //右边
//putcharL    //左边
for (x=width;x>1;x--)
     a6e:	7a 94       	dec	r7
     a70:	21 96       	adiw	r28, 0x01	; 1
     a72:	08 94       	sec
     a74:	81 1c       	adc	r8, r1
     a76:	91 1c       	adc	r9, r1
     a78:	08 94       	sec
     a7a:	a1 1c       	adc	r10, r1
     a7c:	b1 1c       	adc	r11, r1
     a7e:	08 94       	sec
     a80:	c1 1c       	adc	r12, r1
     a82:	d1 1c       	adc	r13, r1
     a84:	f1 e0       	ldi	r31, 0x01	; 1
     a86:	f7 15       	cp	r31, r7
     a88:	08 f4       	brcc	.+2      	; 0xa8c <DrawBmp1+0x15c>
     a8a:	75 cf       	rjmp	.-278    	; 0x976 <DrawBmp1+0x46>
    if(window==1)PutCharR(pgm_read_byte(bmp+i+width+width+width));
    else    PutCharL(pgm_read_byte(bmp+i+width+width+width));    
    i++;
    x_add++;
}
}
     a8c:	df 91       	pop	r29
     a8e:	cf 91       	pop	r28
     a90:	1f 91       	pop	r17
     a92:	0f 91       	pop	r16
     a94:	ff 90       	pop	r15
     a96:	ef 90       	pop	r14
     a98:	df 90       	pop	r13
     a9a:	cf 90       	pop	r12
     a9c:	bf 90       	pop	r11
     a9e:	af 90       	pop	r10
     aa0:	9f 90       	pop	r9
     aa2:	8f 90       	pop	r8
     aa4:	7f 90       	pop	r7
     aa6:	08 95       	ret

00000aa8 <Draw_word>:
//void Draw_word(uchar d_where,uint x_add,uchar layer,uchar width)
//d_where表示在码表中第几个汉字,x_add横坐标位置,layer显示的层, width显示的宽度。
//---------------------------------------------------------------

void Draw_word(uchar d_where,uint x_add,uchar layer,uchar width)
{
     aa8:	8f 92       	push	r8
     aaa:	9f 92       	push	r9
     aac:	bf 92       	push	r11
     aae:	cf 92       	push	r12
     ab0:	df 92       	push	r13
     ab2:	ef 92       	push	r14
     ab4:	ff 92       	push	r15
     ab6:	0f 93       	push	r16

⌨️ 快捷键说明

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