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

📄 12864_paiallel.lss

📁 AVR Devolpment Board
💻 LSS
📖 第 1 页 / 共 3 页
字号:
* 功能描述    :
* 参数        :  参数名称:	输入/输出?	类型		描述
* 
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void CheckBusy(void)
{
    CLR_RS;
 92a:	94 98       	cbi	0x12, 4	; 18
    SET_RW;
 92c:	95 9a       	sbi	0x12, 5	; 18
    SET_EN;
 92e:	96 9a       	sbi	0x12, 6	; 18
    OUTDATA=0xFF;
 930:	8f ef       	ldi	r24, 0xFF	; 255
 932:	88 bb       	out	0x18, r24	; 24
	DATA_IN;
 934:	17 ba       	out	0x17, r1	; 23
	delay_us(1);
 936:	81 e0       	ldi	r24, 0x01	; 1
 938:	90 e0       	ldi	r25, 0x00	; 0
 93a:	0e 94 80 04 	call	0x900 <delay_us>
    while((INDATA&0x80)==0x80);
 93e:	b7 99       	sbic	0x16, 7	; 22
 940:	fe cf       	rjmp	.-4      	; 0x93e <CheckBusy+0x14>
	DATA_OUT;
 942:	8f ef       	ldi	r24, 0xFF	; 255
 944:	87 bb       	out	0x17, r24	; 23
    CLR_EN;
 946:	96 98       	cbi	0x12, 6	; 18
 948:	08 95       	ret

0000094a <WriteCommand>:
}


/******************************************************************************************
* 函数名称    :WriteCommand
* 功能描述    :写命令
* 参数        :  参数名称:	输入/输出?	类型		描述
* 
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void WriteCommand(unsigned char Cbyte )
{	
 94a:	1f 93       	push	r17
 94c:	18 2f       	mov	r17, r24
     CheckBusy();
 94e:	0e 94 95 04 	call	0x92a <CheckBusy>
     CLR_RS;
 952:	94 98       	cbi	0x12, 4	; 18
	 CLR_RW;
 954:	95 98       	cbi	0x12, 5	; 18
	 SET_EN;	 
 956:	96 9a       	sbi	0x12, 6	; 18
	 OUTDATA=Cbyte;
 958:	18 bb       	out	0x18, r17	; 24
	 CLR_EN;
 95a:	96 98       	cbi	0x12, 6	; 18
 95c:	1f 91       	pop	r17
 95e:	08 95       	ret

00000960 <WriteData>:
}

/******************************************************************************************
* 函数名称    :WriteData
* 功能描述    :
* 参数        :  参数名称:	输入/输出?	类型		描述
* 
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void WriteData(unsigned char Dbyte )
{
 960:	1f 93       	push	r17
 962:	18 2f       	mov	r17, r24
     CheckBusy();
 964:	0e 94 95 04 	call	0x92a <CheckBusy>
     SET_RS;
 968:	94 9a       	sbi	0x12, 4	; 18
	 CLR_RW;
 96a:	95 98       	cbi	0x12, 5	; 18
	 SET_EN;
 96c:	96 9a       	sbi	0x12, 6	; 18
	 OUTDATA=Dbyte;
 96e:	18 bb       	out	0x18, r17	; 24
	 CLR_EN;
 970:	96 98       	cbi	0x12, 6	; 18
 972:	1f 91       	pop	r17
 974:	08 95       	ret

00000976 <LcmInit>:
}


/******************************************************************************************
* 函数名称    :LcmInit
* 功能描述    :
* 参数        :  参数名称:	输入/输出?	类型		描述
* 
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void LcmInit( void )
{	 
	 DDRD |= (1<<PD4)|(1<<PD5)|(1<<PD6)|(1<<PD7);
 976:	81 b3       	in	r24, 0x11	; 17
 978:	80 6f       	ori	r24, 0xF0	; 240
 97a:	81 bb       	out	0x11, r24	; 17
	 PORTD|= (1<<PD7);
 97c:	97 9a       	sbi	0x12, 7	; 18
     WriteCommand(0x30);      //8BitMCU,基本指令集合
 97e:	80 e3       	ldi	r24, 0x30	; 48
 980:	0e 94 a5 04 	call	0x94a <WriteCommand>
     WriteCommand(0x03);      //AC归0,不改变DDRAM内容 //地址归0
 984:	83 e0       	ldi	r24, 0x03	; 3
 986:	0e 94 a5 04 	call	0x94a <WriteCommand>
     WriteCommand(0x0C);      //显示ON,游标OFF,游标位反白OFF //整体显示开,游标显示关,反白关
 98a:	8c e0       	ldi	r24, 0x0C	; 12
 98c:	0e 94 a5 04 	call	0x94a <WriteCommand>
     WriteCommand(0x01);      //清屏,AC归0 //清除显示
 990:	81 e0       	ldi	r24, 0x01	; 1
 992:	0e 94 a5 04 	call	0x94a <WriteCommand>
     WriteCommand(0x06);      //写入时,游标右移动 //进入设定点
 996:	86 e0       	ldi	r24, 0x06	; 6
 998:	0e 94 a5 04 	call	0x94a <WriteCommand>
 99c:	08 95       	ret

0000099e <LcmClearTXT>:
}

/******************************************************************************************
* 函数名称    :LcmClearTXT
* 功能描述    :文本区清RAM函数
* 参数        :  参数名称:	输入/输出?	类型		描述
* 
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void LcmClearTXT( void )
{
 99e:	cf 93       	push	r28
     uchar i;
     WriteCommand(0x30);      //8BitMCU,基本指令集合
 9a0:	80 e3       	ldi	r24, 0x30	; 48
 9a2:	0e 94 a5 04 	call	0x94a <WriteCommand>
     WriteCommand(0x80);      //AC归起始位
 9a6:	80 e8       	ldi	r24, 0x80	; 128
 9a8:	0e 94 a5 04 	call	0x94a <WriteCommand>
 9ac:	cf e3       	ldi	r28, 0x3F	; 63
     for(i=0;i<64;i++)
     WriteData(0x20);
 9ae:	80 e2       	ldi	r24, 0x20	; 32
 9b0:	0e 94 b0 04 	call	0x960 <WriteData>
 9b4:	c1 50       	subi	r28, 0x01	; 1
 9b6:	c7 ff       	sbrs	r28, 7
 9b8:	fa cf       	rjmp	.-12     	; 0x9ae <LcmClearTXT+0x10>
 9ba:	cf 91       	pop	r28
 9bc:	08 95       	ret

000009be <LcmClearBMP>:
}

/*********************
* 函数名称    :LcmClearBMP
* 功能描述    :图形区清RAM函数
* 参数        :  参数名称:	输入/输出?	类型		描述
* 图形区和文本区显示在两个不同的RAM区
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void LcmClearBMP( void )
{
 9be:	1f 93       	push	r17
 9c0:	cf 93       	push	r28
     uchar i,j;
     WriteCommand(0x34);      //8Bit扩充指令集,即使是36H也要写两次
 9c2:	84 e3       	ldi	r24, 0x34	; 52
 9c4:	0e 94 a5 04 	call	0x94a <WriteCommand>
     WriteCommand(0x36);      //绘图ON,基本指令集里面36H不能开绘图
 9c8:	86 e3       	ldi	r24, 0x36	; 54
 9ca:	0e 94 a5 04 	call	0x94a <WriteCommand>
     for(i=0;i<32;i++)            //12864实际为256x32
 9ce:	10 e0       	ldi	r17, 0x00	; 0
     {
           WriteCommand(0x80|i);      //行位置
 9d0:	81 2f       	mov	r24, r17
 9d2:	80 68       	ori	r24, 0x80	; 128
 9d4:	0e 94 a5 04 	call	0x94a <WriteCommand>
           WriteCommand(0x80);      //列位置
 9d8:	80 e8       	ldi	r24, 0x80	; 128
 9da:	0e 94 a5 04 	call	0x94a <WriteCommand>
 9de:	cf e1       	ldi	r28, 0x1F	; 31
           for(j=0;j<32;j++)            //256/8=32 byte
                WriteData(0);
 9e0:	80 e0       	ldi	r24, 0x00	; 0
 9e2:	0e 94 b0 04 	call	0x960 <WriteData>
 9e6:	c1 50       	subi	r28, 0x01	; 1
 9e8:	c7 ff       	sbrs	r28, 7
 9ea:	fa cf       	rjmp	.-12     	; 0x9e0 <LcmClearBMP+0x22>
 9ec:	1f 5f       	subi	r17, 0xFF	; 255
 9ee:	10 32       	cpi	r17, 0x20	; 32
 9f0:	78 f3       	brcs	.-34     	; 0x9d0 <LcmClearBMP+0x12>
 9f2:	cf 91       	pop	r28
 9f4:	1f 91       	pop	r17
 9f6:	08 95       	ret

000009f8 <PutStr>:
     }
}

/******************************************************************************************
* 函数名称    :PutStr
* 功能描述    :PutStr(x,y,str1); //X为行0--3 Y为行起始位置0--7
* 参数        :  参数名称:	输入/输出?	类型		描述
* 
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void PutStr(uchar row,uchar col,uchar *puts)
{
 9f8:	0f 93       	push	r16
 9fa:	1f 93       	push	r17
 9fc:	cf 93       	push	r28
 9fe:	df 93       	push	r29
 a00:	18 2f       	mov	r17, r24
 a02:	06 2f       	mov	r16, r22
 a04:	ea 01       	movw	r28, r20
    WriteCommand(0x30);      //8BitMCU,基本指令集合
 a06:	80 e3       	ldi	r24, 0x30	; 48
 a08:	0e 94 a5 04 	call	0x94a <WriteCommand>
	switch(row)
 a0c:	81 2f       	mov	r24, r17
 a0e:	99 27       	eor	r25, r25
 a10:	81 30       	cpi	r24, 0x01	; 1
 a12:	91 05       	cpc	r25, r1
 a14:	79 f0       	breq	.+30     	; 0xa34 <PutStr+0x3c>
 a16:	82 30       	cpi	r24, 0x02	; 2
 a18:	91 05       	cpc	r25, r1
 a1a:	1c f4       	brge	.+6      	; 0xa22 <PutStr+0x2a>
 a1c:	89 2b       	or	r24, r25
 a1e:	39 f0       	breq	.+14     	; 0xa2e <PutStr+0x36>
 a20:	13 c0       	rjmp	.+38     	; 0xa48 <PutStr+0x50>
 a22:	82 30       	cpi	r24, 0x02	; 2
 a24:	91 05       	cpc	r25, r1
 a26:	49 f0       	breq	.+18     	; 0xa3a <PutStr+0x42>
 a28:	03 97       	sbiw	r24, 0x03	; 3
 a2a:	51 f0       	breq	.+20     	; 0xa40 <PutStr+0x48>
 a2c:	0d c0       	rjmp	.+26     	; 0xa48 <PutStr+0x50>
	{
		case 0:
			WriteCommand(0x80+col);
 a2e:	80 2f       	mov	r24, r16

⌨️ 快捷键说明

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