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

📄 lcd12864.txt

📁 lcd12864液晶屏的应用
💻 TXT
字号:
//—————库函数声明,管脚定义————————
#include<reg51.h>
#include<string.h>


sbit RS=P2^0;  //D/I寄存器选择端
sbit RW=P2^1;  //RW	 读写数据端
sbit EN=P2^2;  //EN 使能端
sbit REST=P2^3;	//复位端
sbit BF=P0^7;


//———————变量定义——————————
#define uchar unsigned char
#define uint  unsigned int
#define dataport P0; 

//——————函数定义————————————
void delay(uint);
void LCD12864_Busy(void);
void LCD12864_Init(void);
void LCD12864_Write_command(uchar);
void LCD12864_Write_data(uchar);
void LCD12864_Write_char(uchar);
void LCD12864_adress(uint ,uint);
void LCD12864_Write_str(uchar,uchar,uchar *);
void LCD12864_show_point(uint,uint);


//--------------地址代码---------------------
unsigned char code Tab[4][8]=
{
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, //第1行
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, //第2行
0x88,0x89,0x8a,0x8b,0x8c,0xbd,0x8e,0x8f, //第3行
0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,//第4行
};


//=============================================
//函数名称:void delay
//输入参数:uint j
//输出参数:无
//功能说明:产生一定时间的延时 由参数j决定时间长短
//=============================================
void delay(uint j)
{
	uint i;
	for(i=0;i<j;i++);
}


//=============================================
//函数名称:void LCD12864_Busy
//输入参数:无
//输出参数:无
//功能说明:判断系统是否忙
//=============================================
void LCD12864_Busy(void)
{
	RS=0;
	RW=1;
	EN=1;
	while(!BF) break;
	EN=0;
}


//=============================================
//函数名称:void LCD12864_Write_command
//输入参数:uchar com
//输出参数:无
//功能说明: 给液晶输入指令
//=============================================
void LCD12864_Write_command(uchar com)
{
	LCD12864_Busy();
	delay(40);
    RS=0;
	RW=0;

	EN=0;
    dataport=com;
    EN=1;
	_nop_();
	EN=0;
}

//=============================================
//函数名称:void LCD12864_Write_data
//输入参数:uchar dat
//输出参数:无
//功能说明: 给液晶输入数据
//=============================================
void LCD12864_Write_data(uchar dat)
{
	LCD12864_Busy();
	delay(40);
	EN=0;
	RS=1;
	RW=0;

	dataport=dat;
	
	EN=1;
	_nop_();
	EN=0;
}


//=============================================
//函数名称:void LCD12864_Init
//输入参数:无
//输出参数:无
//功能说明: 初始化液晶12864
//=============================================
void LCD12864_Init(void)
{
	RS=0;
	RW=0;
	EN=0;
	
	LCD12864_Write_command(0x30|0x20);

	LCD12864_Write_command(0x0c|0x08|0x08);	 //总显示开 光标关 反白显示关
	LCD12864_Write_command(0x03);
	LCD12864_Write_command(0x80);
  
}

//=============================================
//函数名称:void LCD12864_Write_char
//输入参数:uchar data
//输出参数:无
//功能说明: 输入字符和数字
//=============================================
void LCD12864_Write_char(uchar dat)
{
	if(dat>=0 && dat<=9)
	 dat|=0x30;
	 LCD12864_Write_data(dat);
}


//=============================================
//函数名称:void LCD12864_Write_str
//输入参数:uchar row, uchar line ,uchar *p
//输出参数:无
//功能说明: 输入一串中文字
//=============================================
void LCD12864_Write_str(uchar row, uchar line ,uchar *p)
{
	uint i;
	i=strlen(p);
    i/=2;
	while(i!=0)
	{
		LCD12864_Write_command(Tab[row][line]);
		if(line>7)
		{
			line=0;
			row++;
		}		 
		if(row>4) break;

		LCD12864_Write_data(*p);
		p++;
		LCD12864_Write_data(*p);
		p++;

		i--;
		line++;
	}		   
}


//=============================================
//函数名称:void LCD12864_show_point
//输入参数:uchar x, ucahr y   
//输出参数:无
//功能说明:在屏幕上画点
//=============================================
void LCD12864_show_point(uint x ,uint y)	  //x: 0--127   y:0--63
{
	uchar row,line;
	

}

⌨️ 快捷键说明

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