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

📄 ms.c

📁 笔段式lcd显示子程序
💻 C
字号:
/****************************************************************
	LCD Demo Program
****************************************************************/

//其中LCD_data()和LCD_cmd()是操作LCD控制芯片的函数,具体指令代码按照你芯片指令集发送

/************ LCD function ************/
void LCD_init()
{
	unsigned int i;
	
	for(i=0;i<5;i++)
	{
		RB1=0;
		delay(5);
		RB1=1;
		delay(5);
	}
	LCD_cmd(LCD_INIT);
	delay(5);
	LCD_cmd(LCD_RC);
	delay(5);
	LCD_cmd(LCD_OSC);
	delay(5);
	LCD_cmd(LCD_DISP_ON);
	delay(5);
	
	for(i=0;i<32;i++) LCD_data(i,0x00);
	
	for(i=0;i<20;i++) LCD_data(i,0x0f);		//test LCD
	LCD_data(6,0x06);
	LCD_data(19,0x07);
	delay(8000);
	for(i=0;i<20;i++) LCD_data(i,0x00);
	delay(4000);
}

void LCD_bit(unsigned int data)
{
	RD3=0;					//WR low
	delay_short();
	RD2=data;
	delay_short();
	RD3=1;					//WR high
	delay_short();
}

void LCD_cmd(unsigned int data)
{
	unsigned int i,temp;
	
	RB1=0;
	delay(1);
	LCD_bit(1);
	LCD_bit(0);
	LCD_bit(0);
	for(i=0;i<8;i++)
	{
		temp=(data&0x0080)>>7;
		data=data<<1;
		LCD_bit(temp);
	}
	LCD_bit(0);
	RB1=1;
	delay(1);
}

void LCD_data(unsigned int addr,unsigned int data)
{
	unsigned int i,temp;
	
	RB1=0;
	delay(1);
	LCD_bit(1);
	LCD_bit(0);
	LCD_bit(1);
	for(i=0;i<6;i++)
	{
		temp=(addr&0x0020)>>5;
		addr=addr<<1;
		LCD_bit(temp);
	}
	for(i=0;i<4;i++)
	{
		temp=(data&0x0001);
		data=data>>1;
		LCD_bit(temp);
	}
	RB1=1;
	delay(1);
}

/************ delay function ************/
void delay(unsigned int time)		//delay(100)=25ms
{
	unsigned int i,j;
	
	for(i=0;i<time;i++)
	{    	    
		for(j=0;j<60;j++)
		{
		}
	}
}

void delay_short()		//delay_short()=13.5us
{
	;
}


⌨️ 快捷键说明

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