lcd12232.c

来自「单片机51环境下的字库代码122*32点阵的液晶显示」· C语言 代码 · 共 155 行

C
155
字号
#include "AT89X51.H"
#include <intrins.h>

int code MAXCOL=61;							//单片LCD控制的列数

#define A0	P3_7							//控制信号线
#define RW	P3_6							//读写信号线
#define CS1	P3_4							//主片片选线		
#define CS2	P3_5							//从片片选线

void LCDWriteCom1(unsigned char com)
{
	bit flag;									//flag----LCD忙标志
	_nop_();
	_nop_();
	A0=0;									
	RW=1;
	do
	{	
		P0=0xff;
		CS1=0;
		flag=P0_7;
		CS1=1;
	}while(flag);
	RW=0;
	P0=com;
	CS1=0;
	CS1=1;
}
/*向主LCD写数据 	*/
void LCDWriteDat1(unsigned char dat)
{
	bit flag;
	_nop_();
	_nop_();
	A0=0;
	RW=1;
	do
	{
		P0=0xff;
		CS1=0;
		flag=P0_7;
		CS1=1;
	}while(flag);		
	A0=1;
	RW=0;
	P0=dat;
	CS1=0;
	CS1=1;
}
unsigned char LCDReadDat1()
{
	bit flag;
	unsigned char dat;
	_nop_();
	_nop_();
	A0  =  0;
	RW=1;
	do
	{
		P0=0xff;
		CS1=0;
		flag=P0_7;		
		CS1=1;										
	}while(flag);
	CS1=0;
	A0=1;
	RW=1;
	dat=P0;
	CS1=1;

	RW=0;
	P0=0xff;
	RW=1;
	CS1=0;
	dat=P0;
	CS1=1;
	return dat;

}
/*向从LCD写命令 	*/
void LCDWriteCom2(unsigned char com)
{
	bit flag;
	_nop_();
	_nop_();
	A0  =  0;
	RW=1;
	do{
	
		P0=0xff;
		CS2=0;
		flag=P0_7;
		CS2=1;										

	}while(flag);
	RW=0;
	P0=com;
	CS2=0;
	CS2=1;
}
/*向从LCD写数据 	*/
void LCDWriteDat2(unsigned char dat)
{
	bit flag;
	_nop_();
	_nop_();
	A0  =  0;
	RW=1;
	do{
	
		P0=0xff;
		CS2=0;
		flag=P0_7;
		CS2=1;										

	}while(flag);		
	A0=1;
	RW=0;
	P0=dat;
	CS2=0;
	CS2=1;
}
unsigned char LCDReadDat2()
{
	bit flag;
	unsigned char dat;
	_nop_();
	_nop_();
	A0  =  0;
	RW=1;
	do{
	
		P0=0xff;
		CS2=0;
		flag=P0_7;
		CS2=1;										

	}while(flag);		
	CS2=0;
	A0=1;
	RW=1;
	dat=P0;
	CS2=1;

	RW=0;
	P0=0xff;
	RW=1;
	CS2=0;
	dat=P0;
	CS2=1;
	return dat;

}

⌨️ 快捷键说明

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