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

📄 ks0108.lss

📁 AVR程序ks0108经典范例!! !!
💻 LSS
📖 第 1 页 / 共 5 页
字号:
     966:	e8 5d       	subi	r30, 0xD8	; 216
     968:	fd 4f       	sbci	r31, 0xFD	; 253
     96a:	c1 81       	ldd	r28, Z+1	; 0x01
				if(uCol+j<64)	write_LCD(LEFT,DATA,ch_w); 
     96c:	00 34       	cpi	r16, 0x40	; 64
     96e:	11 05       	cpc	r17, r1
     970:	24 f4       	brge	.+8      	; 0x97a <disp_ch+0xb0>
     972:	4c 2f       	mov	r20, r28
     974:	61 e0       	ldi	r22, 0x01	; 1
     976:	80 e0       	ldi	r24, 0x00	; 0
     978:	03 c0       	rjmp	.+6      	; 0x980 <disp_ch+0xb6>
				else write_LCD(RIGHT,DATA,ch_w);
     97a:	4c 2f       	mov	r20, r28
     97c:	61 e0       	ldi	r22, 0x01	; 1
     97e:	86 2f       	mov	r24, r22
     980:	0e 94 e2 02 	call	0x5c4 <write_LCD>
     984:	d3 94       	inc	r13
     986:	08 94       	sec
     988:	e1 1c       	adc	r14, r1
     98a:	f1 1c       	adc	r15, r1
     98c:	0f 5f       	subi	r16, 0xFF	; 255
     98e:	1f 4f       	sbci	r17, 0xFF	; 255
     990:	d8 14       	cp	r13, r8
     992:	b8 f2       	brcs	.-82     	; 0x942 <disp_ch+0x78>
			}
			SetPageCol(uPage+1,uCol);
     994:	6c 2d       	mov	r22, r12
     996:	89 2d       	mov	r24, r9
     998:	8f 5f       	subi	r24, 0xFF	; 255
     99a:	0e 94 27 04 	call	0x84e <SetPageCol>
			
			for(j=0;j<width;j++)
     99e:	dd 24       	eor	r13, r13
     9a0:	d8 14       	cp	r13, r8
     9a2:	08 f0       	brcs	.+2      	; 0x9a6 <disp_ch+0xdc>
     9a4:	cb c0       	rjmp	.+406    	; 0xb3c <disp_ch+0x272>
     9a6:	ee 24       	eor	r14, r14
     9a8:	ff 24       	eor	r15, r15
			{
				SetPageCol(uPage+1,uCol+j);
     9aa:	bc 2c       	mov	r11, r12
     9ac:	bd 0c       	add	r11, r13
     9ae:	a9 2c       	mov	r10, r9
     9b0:	a3 94       	inc	r10
     9b2:	6b 2d       	mov	r22, r11
     9b4:	8a 2d       	mov	r24, r10
     9b6:	0e 94 27 04 	call	0x84e <SetPageCol>
				if(uCol+j<64) ch_r=read_LCD(LEFT);
     9ba:	0c 2d       	mov	r16, r12
     9bc:	11 27       	eor	r17, r17
     9be:	c8 01       	movw	r24, r16
     9c0:	8e 0d       	add	r24, r14
     9c2:	9f 1d       	adc	r25, r15
     9c4:	80 34       	cpi	r24, 0x40	; 64
     9c6:	91 05       	cpc	r25, r1
     9c8:	14 f4       	brge	.+4      	; 0x9ce <disp_ch+0x104>
     9ca:	80 e0       	ldi	r24, 0x00	; 0
     9cc:	01 c0       	rjmp	.+2      	; 0x9d0 <disp_ch+0x106>
				else ch_r=read_LCD(RIGHT);
     9ce:	81 e0       	ldi	r24, 0x01	; 1
     9d0:	0e 94 2d 03 	call	0x65a <read_LCD>
     9d4:	28 2f       	mov	r18, r24
				ch_r&=0xf0;
     9d6:	20 7f       	andi	r18, 0xF0	; 240
				ch_w=ASC_16[k].Msk[ASC_CHR_WIDTH+j]&0x0f; 
     9d8:	87 2d       	mov	r24, r7
     9da:	99 27       	eor	r25, r25
     9dc:	fc 01       	movw	r30, r24
     9de:	44 e0       	ldi	r20, 0x04	; 4
     9e0:	ee 0f       	add	r30, r30
     9e2:	ff 1f       	adc	r31, r31
     9e4:	4a 95       	dec	r20
     9e6:	e1 f7       	brne	.-8      	; 0x9e0 <disp_ch+0x116>
     9e8:	e8 0f       	add	r30, r24
     9ea:	f9 1f       	adc	r31, r25
     9ec:	ee 0d       	add	r30, r14
     9ee:	ff 1d       	adc	r31, r15
     9f0:	e8 5d       	subi	r30, 0xD8	; 216
     9f2:	fd 4f       	sbci	r31, 0xFD	; 253
     9f4:	c1 85       	ldd	r28, Z+9	; 0x09
     9f6:	cf 70       	andi	r28, 0x0F	; 15
				ch_w|=ch_r;
     9f8:	c2 2b       	or	r28, r18
				SetPageCol(uPage+1,uCol+j);
     9fa:	6b 2d       	mov	r22, r11
     9fc:	8a 2d       	mov	r24, r10
     9fe:	0e 94 27 04 	call	0x84e <SetPageCol>
				if(uCol+j<64)	write_LCD(LEFT,DATA,ch_w); 
     a02:	0e 0d       	add	r16, r14
     a04:	1f 1d       	adc	r17, r15
     a06:	00 34       	cpi	r16, 0x40	; 64
     a08:	11 05       	cpc	r17, r1
     a0a:	24 f4       	brge	.+8      	; 0xa14 <disp_ch+0x14a>
     a0c:	4c 2f       	mov	r20, r28
     a0e:	61 e0       	ldi	r22, 0x01	; 1
     a10:	80 e0       	ldi	r24, 0x00	; 0
     a12:	03 c0       	rjmp	.+6      	; 0xa1a <disp_ch+0x150>
				else write_LCD(RIGHT,DATA,ch_w); 
     a14:	4c 2f       	mov	r20, r28
     a16:	61 e0       	ldi	r22, 0x01	; 1
     a18:	86 2f       	mov	r24, r22
     a1a:	0e 94 e2 02 	call	0x5c4 <write_LCD>
     a1e:	d3 94       	inc	r13
     a20:	08 94       	sec
     a22:	e1 1c       	adc	r14, r1
     a24:	f1 1c       	adc	r15, r1
     a26:	d8 14       	cp	r13, r8
     a28:	08 f4       	brcc	.+2      	; 0xa2c <disp_ch+0x162>
     a2a:	bf cf       	rjmp	.-130    	; 0x9aa <disp_ch+0xe0>
     a2c:	87 c0       	rjmp	.+270    	; 0xb3c <disp_ch+0x272>
			}
		}
		else //上半部是写半个字节
		{
			for(j=0;j<width;j++)
     a2e:	dd 24       	eor	r13, r13
     a30:	d8 14       	cp	r13, r8
     a32:	08 f0       	brcs	.+2      	; 0xa36 <disp_ch+0x16c>
     a34:	41 c0       	rjmp	.+130    	; 0xab8 <disp_ch+0x1ee>
     a36:	ee 24       	eor	r14, r14
     a38:	ff 24       	eor	r15, r15
			{
				SetPageCol(uPage,uCol+j);
     a3a:	bc 2c       	mov	r11, r12
     a3c:	bd 0c       	add	r11, r13
     a3e:	6b 2d       	mov	r22, r11
     a40:	89 2d       	mov	r24, r9
     a42:	0e 94 27 04 	call	0x84e <SetPageCol>
				if(uCol+j<64) ch_r=read_LCD(LEFT);
     a46:	0c 2d       	mov	r16, r12
     a48:	11 27       	eor	r17, r17
     a4a:	c8 01       	movw	r24, r16
     a4c:	8e 0d       	add	r24, r14
     a4e:	9f 1d       	adc	r25, r15
     a50:	80 34       	cpi	r24, 0x40	; 64
     a52:	91 05       	cpc	r25, r1
     a54:	14 f4       	brge	.+4      	; 0xa5a <disp_ch+0x190>
     a56:	80 e0       	ldi	r24, 0x00	; 0
     a58:	01 c0       	rjmp	.+2      	; 0xa5c <disp_ch+0x192>
				else ch_r=read_LCD(RIGHT);
     a5a:	81 e0       	ldi	r24, 0x01	; 1
     a5c:	0e 94 2d 03 	call	0x65a <read_LCD>
     a60:	28 2f       	mov	r18, r24
				ch_r&=0x0f;
     a62:	2f 70       	andi	r18, 0x0F	; 15
				ch_w=ASC_16[k].Msk[j];
     a64:	87 2d       	mov	r24, r7
     a66:	99 27       	eor	r25, r25
     a68:	fc 01       	movw	r30, r24
     a6a:	34 e0       	ldi	r19, 0x04	; 4
     a6c:	ee 0f       	add	r30, r30
     a6e:	ff 1f       	adc	r31, r31
     a70:	3a 95       	dec	r19
     a72:	e1 f7       	brne	.-8      	; 0xa6c <disp_ch+0x1a2>
     a74:	e8 0f       	add	r30, r24
     a76:	f9 1f       	adc	r31, r25
     a78:	ee 0d       	add	r30, r14
     a7a:	ff 1d       	adc	r31, r15
     a7c:	e8 5d       	subi	r30, 0xD8	; 216
     a7e:	fd 4f       	sbci	r31, 0xFD	; 253
     a80:	c1 81       	ldd	r28, Z+1	; 0x01
				ch_w=ch_w<<4;
     a82:	c2 95       	swap	r28
     a84:	c0 7f       	andi	r28, 0xF0	; 240
				ch_w|=ch_r;
     a86:	c2 2b       	or	r28, r18
				SetPageCol(uPage,uCol+j);
     a88:	6b 2d       	mov	r22, r11
     a8a:	89 2d       	mov	r24, r9
     a8c:	0e 94 27 04 	call	0x84e <SetPageCol>
				if(uCol+j<64)	write_LCD(LEFT,DATA,ch_w); 
     a90:	0e 0d       	add	r16, r14
     a92:	1f 1d       	adc	r17, r15
     a94:	00 34       	cpi	r16, 0x40	; 64
     a96:	11 05       	cpc	r17, r1
     a98:	24 f4       	brge	.+8      	; 0xaa2 <disp_ch+0x1d8>
     a9a:	4c 2f       	mov	r20, r28
     a9c:	61 e0       	ldi	r22, 0x01	; 1
     a9e:	80 e0       	ldi	r24, 0x00	; 0
     aa0:	03 c0       	rjmp	.+6      	; 0xaa8 <disp_ch+0x1de>
				else write_LCD(RIGHT,DATA,ch_w); 
     aa2:	4c 2f       	mov	r20, r28
     aa4:	61 e0       	ldi	r22, 0x01	; 1
     aa6:	86 2f       	mov	r24, r22
     aa8:	0e 94 e2 02 	call	0x5c4 <write_LCD>
     aac:	d3 94       	inc	r13
     aae:	08 94       	sec
     ab0:	e1 1c       	adc	r14, r1
     ab2:	f1 1c       	adc	r15, r1
     ab4:	d8 14       	cp	r13, r8
     ab6:	08 f2       	brcs	.-126    	; 0xa3a <disp_ch+0x170>
			}
			SetPageCol(uPage+1,uCol);
     ab8:	09 2d       	mov	r16, r9
     aba:	0f 5f       	subi	r16, 0xFF	; 255
     abc:	6c 2d       	mov	r22, r12
     abe:	80 2f       	mov	r24, r16
     ac0:	0e 94 27 04 	call	0x84e <SetPageCol>
			for(j=0;j<width;j++)
     ac4:	dd 24       	eor	r13, r13
     ac6:	d8 14       	cp	r13, r8
     ac8:	c8 f5       	brcc	.+114    	; 0xb3c <disp_ch+0x272>
     aca:	ec 2c       	mov	r14, r12
     acc:	ff 24       	eor	r15, r15
     ace:	aa 24       	eor	r10, r10
     ad0:	bb 24       	eor	r11, r11
			{
				SetPageCol(uPage+1,uCol+j);
     ad2:	1c 2d       	mov	r17, r12
     ad4:	1d 0d       	add	r17, r13
     ad6:	61 2f       	mov	r22, r17
     ad8:	80 2f       	mov	r24, r16
     ada:	0e 94 27 04 	call	0x84e <SetPageCol>
				
				ch_r=ASC_16[k].Msk[j];
     ade:	87 2d       	mov	r24, r7
     ae0:	99 27       	eor	r25, r25
     ae2:	fc 01       	movw	r30, r24
     ae4:	24 e0       	ldi	r18, 0x04	; 4
     ae6:	ee 0f       	add	r30, r30
     ae8:	ff 1f       	adc	r31, r31
     aea:	2a 95       	dec	r18
     aec:	e1 f7       	brne	.-8      	; 0xae6 <disp_ch+0x21c>
     aee:	e8 0f       	add	r30, r24
     af0:	f9 1f       	adc	r31, r25
     af2:	ea 0d       	add	r30, r10
     af4:	fb 1d       	adc	r31, r11
     af6:	e8 5d       	subi	r30, 0xD8	; 216
     af8:	fd 4f       	sbci	r31, 0xFD	; 253
     afa:	21 81       	ldd	r18, Z+1	; 0x01
				ch_w=ASC_16[k].Msk[ASC_CHR_WIDTH+j];
     afc:	c1 85       	ldd	r28, Z+9	; 0x09
				ch_r=ch_r>>4;
     afe:	22 95       	swap	r18
     b00:	2f 70       	andi	r18, 0x0F	; 15
				ch_w=ch_w<<4; 
     b02:	c2 95       	swap	r28
     b04:	c0 7f       	andi	r28, 0xF0	; 240
				ch_w|=ch_r;
     b06:	c2 2b       	or	r28, r18
				SetPageCol(uPage+1,uCol+j);
     b08:	61 2f       	mov	r22, r17
     b0a:	80 2f       	mov	r24, r16
     b0c:	0e 94 27 04 	call	0x84e <SetPageCol>
				if(uCol+j<64)	write_LCD(LEFT,DATA,ch_w); 
     b10:	80 e4       	ldi	r24, 0x40	; 64
     b12:	e8 16       	cp	r14, r24
     b14:	f1 04       	cpc	r15, r1
     b16:	24 f4       	brge	.+8      	; 0xb20 <disp_ch+0x256>
     b18:	4c 2f       	mov	r20, r28
     b1a:	61 e0       	ldi	r22, 0x01	; 1
     b1c:	80 e0       	ldi	r24, 0x00	; 0
     b1e:	03 c0       	rjmp	.+6      	; 0xb26 <disp_ch+0x25c>
				else write_LCD(RIGHT,DATA,ch_w); 
     b20:	4c 2f       	mov	r20, r28
     b22:	61 e0       	ldi	r22, 0x01	; 1
     b24:	86 2f       	mov	r24, r22
     b26:	0e 94 e2 02 	call	0x5c4 <write_LCD>
     b2a:	d3 94       	inc	r13
     b2c:	08 94       	sec
     b2e:	a1 1c       	adc	r10, r1
     b30:	b1 1c       	adc	r11, r1
     b32:	08 94       	sec
     b34:	e1 1c       	adc	r14, r1
     b36:	f1 1c       	adc	r15, r1
     b38:	d8 14       	cp	r13, r8
     b3a:	58 f2       	brcs	.-106    	; 0xad2 <disp_ch+0x208>
			}
		}
	}
	SetPageCol(uPage,uCol+width);
     b3c:	8c 0c       	add	r8, r12
     b3e:	68 2d       	mov	r22, r8
     b40:	89 2d       	mov	r24, r9
     b42:	0e 94 27 04 	call	0x84e <SetPageCol>
     b46:	cf 91       	pop	r28
     b48:	1f 91       	pop	r17
     b4a:	0f 91       	pop	r16
     b4c:	ff 90       	pop	r15
     b4e:	ef 90       	pop	r14
     b50:	df 90       	pop	r13
     b52:	cf 90       	pop	r12
     b54:	bf 90       	pop	r11
     b56:	af 90       	pop	r10
     b58:	9f 90       	pop	r9
     b5a:	8f 90       	pop	r8
     b5c:	7f 90       	pop	r7
     b5e:	08 95       	ret

00000b60 <disp_hz>:
}


void disp_hz(unsigned char *hz)
{
     b60:	6f 92       	push	r6
     b62:	7f 92       	push	r7
     b64:	8f 92       	push	r8
     b66:	9f 92       	push	r9
     b68:	af 92       	push	r10
     b6a:	bf 92       	push	r11
     b6c:	cf 92       	push	r12
     b6e:	df 92       	push	r13
     b70:	ef 92       	push	r14
     b72:	ff 92       	push	r15
     b74:	0f 93       	push	r16
     b76:	1f 93       	push	r17
     b78:	cf 93       	push	r28
     b7a:	df 93       	push	r29
     b7c:	ec 01       	movw	r28, r24
	unsigned char k,j,uPage,uCol,ch_r,ch_w;
	uPage = GetPage();
     b7e:	0e 94 1f 04 	call	0x83e <GetPage>
     b82:	88 2e       	mov	r8, r24
	uCol = GetCol();
     b84:	0e 94 23 04 	call	0x846 <GetCol>
     b88:	98 2e       	mov	r9, r24
	for(k=0;k<sizeof(GB_16)/sizeof(GB_16[0]);k++)
     b8a:	bb 24       	eor	r11, r11
     b8c:	28 81       	ld	r18, Y
     b8e:	e4 e5       	ldi	r30, 0x54	; 84
     b90:	f0 e0       	ldi	r31, 0x00	; 0
	{
		if(hz[0] == GB_16[k].Index[0] && hz[1] == GB_16[k].Index[1])
     b92:	80 81       	ld	r24, Z
     b94:	28 17       	cp	r18, r24
     b96:	21 f4       	brne	.+8      	; 0xba0 <disp_hz+0x40>
     b98:	99 81       	ldd	r25, Y+1	; 0x01
     b9a:	81 81       	ldd	r24, Z+1	; 0x01
     b9c:	98 17       	cp	r25, r24
     b9e:	29 f0       	breq	.+10     	; 0xbaa <disp_hz+0x4a>
     ba0:	b3 94       	inc	r11
     ba2:	7a 96       	adiw	r30, 0x1a	; 26
     ba4:	81 e1       	ldi	r24, 0x11	; 17
     ba6:	8b 15       	cp	r24, r11
     ba8:	a0 f7       	brcc	.-24     	; 0xb92 <disp_hz+0x32>
			break;
	}

	if(CurOffset==1) 
     baa:	80 91 c8 00 	lds	r24, 0x00C8
     bae:	81 30       	cpi	r24, 0x01	; 1
     bb0:	09 f0       	breq	.+2      	; 0xbb4 <disp_hz+0x54>
     bb2:	7a c0       	rjmp	.+244    	; 0xca8 <disp_hz+0x148>
	{
	for(j=0;j<ASC_HZ_WIDTH;j++)
     bb4:	dd 24       	eor	r13, r13
     bb6:	09 2d       	mov	r16, r9

⌨️ 快捷键说明

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