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

📄 lcddisp.c

📁 网上查了半天
💻 C
📖 第 1 页 / 共 2 页
字号:
	dwadd3 = com;
}
//-----------------------------------------//
//---读右屏显示数据--------------------------//
//-----------------------------------------//
uchar lcd_rddata_r()
{
	uchar lcddata;
	ACC = cradd3;
	while(0x80==ACC&0X80)
	{
		ACC = cradd3;
	}
	lcddata = dradd3;
	return lcddata;
}
//----------------------------------------//
//----void wrlcd(uint,uchar,bit)----------//
//---------------(addr,data,code or data-0:code,1:data--)//
//--write lcd code &data------------------//
//----------------------------------------//
/*void wrlcd(uint addr, uchar com, bit b_ca)
{	
	uint craddr;
	if(b_ca)
	{
		craddr = addr + 0x100 ;
	}
	else
	{
		craddr = addr + 0x200 ;
	}

	do
	{
		ACC = craddr;
	}
	while(0x80==(ACC&0x80));

	addr = com;

}
//------------------------------------------//
//---uchar rdlcd(uint,bit);------------------//
//--------------(addr,code or data-0:code,1:data)--//
//--read from lcd---------------------------------//
uchar rdlcd(uint addr,bit b_ca)
{
	uchar dat;
	uint craddr;
	if(b_ca)
	{
		craddr = addr - 0x100;
	}
	else
	{
		craddr = addr ;
	}
	do
	{
		ACC = craddr;
	}
	while(0x80==(ACC&0x80));

	dat = addr;
	return dat;
}
*/
//-------------------------------------------------//
//--char busy();-----------------------------------//
//---if lcd busy return 1,else 0;------------------//
//-------------------------------------------------//
/*char busy()
{
	
}
*/
//-------------------------------------------------//
//-----void initilcd();-----------------------------//
//-----initi lcd------------------------------------//
//--------------------------------------------------//
void initilcd()
{
	lcd_wrcode_m(0xc0);
	lcd_wrcode_r(0xc0);		//
	lcd_wrcode_m(0x3f);
	lcd_wrcode_r(0x3f);	//THE START DISPLAY LINE  ,HERE IS "0" LINE        1100 0000B
	//SET DISPLAY ON             0011 1111B

}

//-------------------------------------------------//
//-----void clrlcd();------------------------------//
//---------clear lcd ------------------------------//
//-------------------------------------------------//
void clrlcd()
{
	uchar n_byte;
	uchar uc_com;

	for(n_page = 0; n_page < 8; n_page ++ )   //SET REGISTOR OF PAGE ADDRESS
	{	
		uc_com = n_page|0xb8;		//"OR" THE SET CODE OF PAGE ADDRESS    1011 1000B
		//SET PAGE ADDRESS							//
		lcd_wrcode_m(uc_com);
		lcd_wrcode_r(uc_com);		
		//COLUM ADDRESS = 0           0100 0000B
		lcd_wrcode_m(0x40);
		lcd_wrcode_r(0x40);

		//CLEAR 64 BYTE/PAGE 
		for(n_byte = 0; n_byte < 0x40; n_byte++ )
		{
			lcd_wrdata_m(0x0);
			lcd_wrdata_r(0x0);
		}

	}
}

//------------------------------------------//
//----void disp_full();---------------------//
//------------------------------------------//
void disp_full()
{
	uchar n_byte;
	uchar uc_com;

	for(n_page = 0; n_page < 8; n_page ++ )   //SET REGISTOR OF PAGE ADDRESS
	{	
		uc_com = n_page|0xb8;		//"OR" THE SET CODE OF PAGE ADDRESS    1011 1000B
		//SET PAGE ADDRESS							//
		lcd_wrcode_m(uc_com);
		lcd_wrcode_r(uc_com);		
		//COLUM ADDRESS = 0           0100 0000B
		lcd_wrcode_m(0x40);
		lcd_wrcode_r(0x40);

		//CLEAR 64 BYTE/PAGE 
		for(n_byte = 0; n_byte < 0x40; n_byte++ )
		{
			lcd_wrdata_m(0xff);
			lcd_wrdata_r(0xff);
		}

	}
}

//-------------------------------------------//
//---------void wr_letter();-----------------//
//---WRITE THE LETTER      写入字母符号--------//
//---if n_page.7==0:6*8; if n_page.7==1:8*8;--//
//-------------------------------------------//
void wr_letter(uchar n_page,uint column,uchar dat)
{
	uchar com,count=6,i=0,datcom;
	
	if(0x80==n_page&0x80)count = 8;  //如果为1则是8*8,OR 6*8
	com = (n_page+ column/128) & 0x07;
	com = com | 0xb8;
	lcd_wrcode_m(com); //l
	lcd_wrcode_r(com); //r
	column = column%128;
	do
	{
		
		datcom = CTAB[dat*8+i];
		if(column<64)   //left
		{
			com = column | 0x40;
			lcd_wrcode_m(com);
			lcd_wrdata_m(datcom);

		}
		else
		{
			com = (column - 64) | 0x40;
			lcd_wrcode_r(com);
			lcd_wrdata_r(datcom);
		}
		i++;
		column ++;
		//com = CTAB[dat+i];
	}
	while(i<count);

}
//-------------------------------------------------------//
//---void wr_text_arr(uchar pager,uchar column, uchar * p,uchar n );--//
//-写一字符数组,pager:页(0-7),column:列(0-65535)----------//
//-------------------------------------------------------//
void wr_text_arr(uchar pager,uint column, uchar *p,uchar n)
{
	uchar i;
	for (i=0; i<n; i++)
	{
		wr_letter(pager,column+i*8,p[i]);
	}
}
//------------------------------------------------------------//
//---void wr_numwithp(ulong num,uchar numbit,uchar pointbit)--//
//------(页,列,要显示的数,位数,小数点后的位数)----------------//
//-----------------------------------------------------------//
void wr_numwithp(uchar pager,uint column,ulong num, uchar numbit, uchar pointbit)
{
	uchar i=1,uc_num;
	uint ui_column;
	ui_column = column;
	do   //for(i=1; i<numbit; i++)
	{
		if(0 != pointbit)
		{
			ui_column = ui_column + 8;
		}	
		uc_num = num%10;
		num = num/10;
		wr_letter(pager,ui_column+(numbit-i)*8,uc_num+0x10);
		i++;
		if(pointbit == i-1 && 0 != pointbit)
			{
				wr_letter(pager,ui_column+(numbit-i)*8,0x0e);
				ui_column = ui_column - 8;
			}
	}
	while(i<=numbit);
}

⌨️ 快捷键说明

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