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

📄 lcd.c

📁 这是利用C51语言编写的读写LCD的程序
💻 C
字号:
//使能信号,读状态下,高电平有效;写状态下,下降沿有效
#include<at89x52.h>
#include<absacc.h>
sbit	A0=P2^7;//为高电平时选择的是数据寄存器,为低电平时选择的是指令寄存器
sbit	CS1=P2^5; //使能信号
sbit	CS2=P2^4;
sbit	LCDRW=P2^6;//高读,低写
sfr		DATA=0x90;
#define	BUSY	0x90;
#define	DISPON	0x3f;
#define	DISPOFF	0x3e;
void	delay(unsigned	char	time)//delay5ms
{unsigned	char	i=250,j=20;
	while(time--)
	{while(i--)
	{
	while(j--);}
	}
}
void	wrcmdl(unsigned	char	c1)
{	unsigned	char	data	in;
	//CS1=1;A0=1;LCDRW=1;
	while(1)
	{in=BUSY;
	if((in&0x80)==0)	break;}
	//A0=0;
	//LCDRW=0;
	//CS1=0;
	DATA=c1;
}
void	wrcmdr(unsigned	char	c2)
{	unsigned	char	data	in;
	//CS1=1;A0=1;LCDRW=1;
	while(1)
	{in=BUSY;
	if((in&0x80)==0)	break;
	}
	//A0=0;
	//LCDRW=0;CS2=0;
	DATA=c2;
}
void	lcddata(unsigned	char	d)
{	unsigned	char	data	in;
	//A0=1;LCDRW=1;
	while(1)
	{in=BUSY;
	if((in&0x80)==0)	break;}
	//CS1=1;
//	A0=0;
//	LCDRW=0;
	DATA=d;
}	
void	lcdintall()
{	DATA=DISPOFF;
	wrcmdl(0x3c);
	wrcmdr(0x3c);
	wrcmdl(0x0e);
	wrcmdr(0x0e);
	wrcmdl(0x06);
	wrcmdr(0x06);
	
	wrcmdl(0x01);
	wrcmdr(0x01);
}			
void	main()
{	unsigned	char	data	i=50,j=0;
	delay(8);
	lcdintall();
	while(i--)
	{lcddata(j++);}
	i=50;
	}



⌨️ 快捷键说明

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