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

📄 12864_serial.lss

📁 AVR Devolpment Board
💻 LSS
📖 第 1 页 / 共 3 页
字号:
           CLR_SCK;
 91e:	96 98       	cbi	0x12, 6	; 18
           if(SID) 
 920:	80 b3       	in	r24, 0x10	; 16
 922:	82 95       	swap	r24
 924:	86 95       	lsr	r24
 926:	87 70       	andi	r24, 0x07	; 7
 928:	80 fd       	sbrc	r24, 0
		   		temp1++;
 92a:	9f 5f       	subi	r25, 0xFF	; 255
 92c:	21 50       	subi	r18, 0x01	; 1
 92e:	27 ff       	sbrs	r18, 7
 930:	f3 cf       	rjmp	.-26     	; 0x918 <ReceiveByte+0x8>
 932:	27 e0       	ldi	r18, 0x07	; 7
     }
     for(i=0;i<8;i++)
     {
           temp2=temp2<<1;
 934:	33 0f       	add	r19, r19
           CLR_SCK;
 936:	96 98       	cbi	0x12, 6	; 18
           SET_SCK;            
 938:	96 9a       	sbi	0x12, 6	; 18
           CLR_SCK;
 93a:	96 98       	cbi	0x12, 6	; 18
           if(SID) 
 93c:	80 b3       	in	r24, 0x10	; 16
 93e:	82 95       	swap	r24
 940:	86 95       	lsr	r24
 942:	87 70       	andi	r24, 0x07	; 7
 944:	80 fd       	sbrc	r24, 0
		   		temp2++;
 946:	3f 5f       	subi	r19, 0xFF	; 255
 948:	21 50       	subi	r18, 0x01	; 1
 94a:	27 ff       	sbrs	r18, 7
 94c:	f3 cf       	rjmp	.-26     	; 0x934 <ReceiveByte+0x24>
     }
     return ((0xf0&temp1)+(0x0f&temp2));
 94e:	90 7f       	andi	r25, 0xF0	; 240
 950:	3f 70       	andi	r19, 0x0F	; 15
 952:	93 0f       	add	r25, r19
}
 954:	89 2f       	mov	r24, r25
 956:	99 27       	eor	r25, r25
 958:	08 95       	ret

0000095a <CheckBusy>:



/******************************************************************************************
* 函数名称    :CheckBusy
* 功能描述    :
* 参数        :  参数名称:	输入/输出?	类型		描述
* 
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void CheckBusy( void )
{
     do   SendByte(0xfc);      //11111,RW(1),RS(0),0
 95a:	8c ef       	ldi	r24, 0xFC	; 252
 95c:	0e 94 79 04 	call	0x8f2 <SendByte>
 960:	0e 94 88 04 	call	0x910 <ReceiveByte>
 964:	88 23       	and	r24, r24
 966:	cc f3       	brlt	.-14     	; 0x95a <CheckBusy>
 968:	08 95       	ret

0000096a <WriteCommand>:
     while(0x80&ReceiveByte());      //BF(.7)=1 Busy
}



/******************************************************************************************
* 函数名称    :WriteCommand
* 功能描述    :写命令
* 参数        :  参数名称:	输入/输出?	类型		描述
* 
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void WriteCommand(uchar Cbyte )
{	
 96a:	0f 93       	push	r16
 96c:	1f 93       	push	r17
 96e:	08 2f       	mov	r16, r24
     CheckBusy();
 970:	0e 94 ad 04 	call	0x95a <CheckBusy>
     SendByte(0xf8);            //11111,RW(0),RS(0),0
 974:	88 ef       	ldi	r24, 0xF8	; 248
 976:	0e 94 79 04 	call	0x8f2 <SendByte>
     //SendByte(Cbyte);
	 SendByte(0xf0&Cbyte);      //高四位
 97a:	10 ef       	ldi	r17, 0xF0	; 240
 97c:	80 2f       	mov	r24, r16
 97e:	81 23       	and	r24, r17
 980:	0e 94 79 04 	call	0x8f2 <SendByte>
     SendByte(0xf0&Cbyte<<4);//低四位(先执行<<)
 984:	80 2f       	mov	r24, r16
 986:	99 27       	eor	r25, r25
 988:	24 e0       	ldi	r18, 0x04	; 4
 98a:	88 0f       	add	r24, r24
 98c:	99 1f       	adc	r25, r25
 98e:	2a 95       	dec	r18
 990:	e1 f7       	brne	.-8      	; 0x98a <WriteCommand+0x20>
 992:	81 23       	and	r24, r17
 994:	0e 94 79 04 	call	0x8f2 <SendByte>
 998:	1f 91       	pop	r17
 99a:	0f 91       	pop	r16
 99c:	08 95       	ret

0000099e <WriteData>:
}

/******************************************************************************************
* 函数名称    :WriteData
* 功能描述    :
* 参数        :  参数名称:	输入/输出?	类型		描述
* 
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void WriteData(uchar Dbyte )
{
 99e:	0f 93       	push	r16
 9a0:	1f 93       	push	r17
 9a2:	08 2f       	mov	r16, r24
     CheckBusy();
 9a4:	0e 94 ad 04 	call	0x95a <CheckBusy>
     SendByte(0xfa);            //11111,RW(0),RS(1),0
 9a8:	8a ef       	ldi	r24, 0xFA	; 250
 9aa:	0e 94 79 04 	call	0x8f2 <SendByte>
     SendByte(0xf0&Dbyte);      //高四位
 9ae:	10 ef       	ldi	r17, 0xF0	; 240
 9b0:	80 2f       	mov	r24, r16
 9b2:	81 23       	and	r24, r17
 9b4:	0e 94 79 04 	call	0x8f2 <SendByte>
     SendByte(0xf0&Dbyte<<4);//低四位(先执行<<)
 9b8:	80 2f       	mov	r24, r16
 9ba:	99 27       	eor	r25, r25
 9bc:	34 e0       	ldi	r19, 0x04	; 4
 9be:	88 0f       	add	r24, r24
 9c0:	99 1f       	adc	r25, r25
 9c2:	3a 95       	dec	r19
 9c4:	e1 f7       	brne	.-8      	; 0x9be <WriteData+0x20>
 9c6:	81 23       	and	r24, r17
 9c8:	0e 94 79 04 	call	0x8f2 <SendByte>
     DDRC=DDRC|0x01;
 9cc:	a0 9a       	sbi	0x14, 0	; 20
 9ce:	1f 91       	pop	r17
 9d0:	0f 91       	pop	r16
 9d2:	08 95       	ret

000009d4 <LcmInit>:
}

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

000009fe <LcmClearTXT>:
}

/******************************************************************************************
* 函数名称    :LcmClearTXT
* 功能描述    :文本区清RAM函数
* 参数        :  参数名称:	输入/输出?	类型		描述
* 
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void LcmClearTXT( void )
{
 9fe:	cf 93       	push	r28
     uchar i;
     WriteCommand(0x30);      //8BitMCU,基本指令集合
 a00:	80 e3       	ldi	r24, 0x30	; 48
 a02:	0e 94 b5 04 	call	0x96a <WriteCommand>
     WriteCommand(0x80);      //AC归起始位
 a06:	80 e8       	ldi	r24, 0x80	; 128
 a08:	0e 94 b5 04 	call	0x96a <WriteCommand>
 a0c:	cf e3       	ldi	r28, 0x3F	; 63
     for(i=0;i<64;i++)
     WriteData(0x20);
 a0e:	80 e2       	ldi	r24, 0x20	; 32
 a10:	0e 94 cf 04 	call	0x99e <WriteData>
 a14:	c1 50       	subi	r28, 0x01	; 1
 a16:	c7 ff       	sbrs	r28, 7
 a18:	fa cf       	rjmp	.-12     	; 0xa0e <LcmClearTXT+0x10>
 a1a:	cf 91       	pop	r28
 a1c:	08 95       	ret

00000a1e <LcmClearBMP>:
}

/******************************************************************************************
* 函数名称    :LcmClearBMP
* 功能描述    :图形区清RAM函数
* 参数        :  参数名称:	输入/输出?	类型		描述
* 图形区和文本区显示在两个不同的RAM区
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void LcmClearBMP( void )
{
 a1e:	1f 93       	push	r17
 a20:	cf 93       	push	r28
     uchar i,j;
     WriteCommand(0x34);      //8Bit扩充指令集,即使是36H也要写两次
 a22:	84 e3       	ldi	r24, 0x34	; 52
 a24:	0e 94 b5 04 	call	0x96a <WriteCommand>
     WriteCommand(0x36);      //绘图ON,基本指令集里面36H不能开绘图
 a28:	86 e3       	ldi	r24, 0x36	; 54
 a2a:	0e 94 b5 04 	call	0x96a <WriteCommand>
     for(i=0;i<32;i++)            //12864实际为256x32
 a2e:	10 e0       	ldi	r17, 0x00	; 0
     {
           WriteCommand(0x80|i);      //行位置
 a30:	81 2f       	mov	r24, r17
 a32:	80 68       	ori	r24, 0x80	; 128
 a34:	0e 94 b5 04 	call	0x96a <WriteCommand>
           WriteCommand(0x80);      //列位置
 a38:	80 e8       	ldi	r24, 0x80	; 128
 a3a:	0e 94 b5 04 	call	0x96a <WriteCommand>
 a3e:	cf e1       	ldi	r28, 0x1F	; 31
           for(j=0;j<32;j++)            //256/8=32 byte
                WriteData(0);
 a40:	80 e0       	ldi	r24, 0x00	; 0
 a42:	0e 94 cf 04 	call	0x99e <WriteData>
 a46:	c1 50       	subi	r28, 0x01	; 1
 a48:	c7 ff       	sbrs	r28, 7
 a4a:	fa cf       	rjmp	.-12     	; 0xa40 <LcmClearBMP+0x22>
 a4c:	1f 5f       	subi	r17, 0xFF	; 255
 a4e:	10 32       	cpi	r17, 0x20	; 32
 a50:	78 f3       	brcs	.-34     	; 0xa30 <LcmClearBMP+0x12>
 a52:	cf 91       	pop	r28
 a54:	1f 91       	pop	r17
 a56:	08 95       	ret

00000a58 <PutStr>:
     }
}

/******************************************************************************************
* 函数名称    :PutStr
* 功能描述    :PutStr(x,y,str1); //X为行0--3 Y为行起始位置0--7
* 参数        :  参数名称:	输入/输出?	类型		描述
* 
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void PutStr(uchar row,uchar col,uchar *puts)
{
 a58:	0f 93       	push	r16
 a5a:	1f 93       	push	r17

⌨️ 快捷键说明

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