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

📄 lcd12232_1.c

📁 基于51单片机和LCD12232的LCD显示程序
💻 C
字号:
//文件名:LCD12232_1.C
//功能:使用12232液晶显示图片演示
//硬件连接:
//       DB0-7 -- P1   如果使用P0口要接上拉电阻
//       RW-------GND
//       A0-------P2.1                               
//       E1-------P2.2
//       E2-------P2.3
//       V0接1K电阻到GND

#include <REGX52.H>
#include<intrins.h>	 //	声明 _nop_();

//硬件连接
#define E1 P2_2 
#define E2 P2_3
#define A0 P2_1 
#define DATA P1 


///////////////////////////////////////////////////////
//私有函数
void delay(unsigned int i)
{
	while(i--);
}
//函数说明:发指令i到主窗口。
void OutMI(unsigned char i)
{ 
	E1 = 1;		 
	A0 = 0;	 
	DATA = i;	
	E1 = 0;  	
	delay(2); 
	E1 = 1;
}

//函数说明:发数据i到主窗口。
void OutMD(unsigned char i)
{ 
	E1 = 1;		 
	A0 = 1;	 
	DATA = i; 
	E1 = 0;  	
	delay(2);  
	E1 = 1;
}

//函数说明:发指令i到从窗口。
void OutSI(unsigned char i)
{ 
	E2 = 1;		 
	A0 = 0;	 
	DATA = i; 
	E2 = 0;  	
	delay(2);  
	E2 = 1;
}

//函数说明:发数据i到从窗口。
void OutSD(unsigned char i)
{ 
	E2 = 1;		 
	A0 = 1;	 
	DATA = i; 
	E2 = 0;  	
	delay(2);  
	E2 = 1;	
}
//函数说明:同时设置主从显示页为0-3页。
void SetPage(unsigned char page0,unsigned char page1) 
{ 
	OutMI(0xB8 |page0);
	OutSI(0xB8 |page1); 
}
//函数说明:同时设置主从列地址为0-79
void SetAddress(unsigned char address0,unsigned char address1)
{ 
	OutMI(address0);
	OutSI(address1); 
}
//私有函数
///////////////////////////////////////////////////////


//////////////////////////////////////////////////////
//公共函数

//函数说明:12232点阵液晶初始化,开机后仅调用一次。
void LcdIni(void) 
{ 

	OutMI(0XE2); // 复位 (13)
	OutSI(0XE2); // 复位 (13)

	delay(100); 
	
	OutMI(0XA9); //1/32占空比(10)
	OutSI(0XA9); //1/32占空比(10) 

	OutMI(0XA4);//正常驱动 (9)
	OutSI(0XA4);//正常驱动 (9)
	
	OutMI(0XA0); //设置显示方向为正向(8;资料有错)
	OutSI(0XA0); //设置显示方向为正向(8;资料有错)
	
	OutMI(0X00); //设置起始列为第0列 (4)
	OutMI(0XC0); //设置起始行为第0行 (2)
	OutSI(0X00); //设置起始列为第0列 (4)
	OutSI(0XC0); //设置起始行为第0行 (2)

	OutMI(0XEE); //关闭“读-修改-写”模式(11)
	OutSI(0XEE); //关闭“读-修改-写”模式(11)
	
	OutMI(0XAF); //开屏幕显示(不影响显示内容)(1;资料有错)
	OutSI(0XAF); //开屏幕显示(不影响显示内容)(1;资料有错)
}

//函数说明:清屏
void clrscr(void)
{
	unsigned char i;
	unsigned char page;
	for (page=0;page<4;page++)
	{ 				
		SetPage(page,page);
		SetAddress(0x00,0x00);		
		for (i=0;i<61;i++)
		{
			OutMD(0x00);
			OutSD(0x00);
		}
	}	
}




void main()
{
	unsigned char i;
	LcdIni(); //reset

	clrscr(); //clr	
//{test
	SetPage(0,0);
	SetAddress(0x00,0x00);		
	for (i=0;i<10;i++)
	{
		OutMD(0x0f);
		OutSD(0x0f);
	}
	SetPage(1,1);
	SetAddress(0x30,0x30);		
	for (i=0;i<10;i++)
	{
		OutMD(0x0f);
		OutSD(0x0f);
	}
//}test
	   	while(1);  	
}

⌨️ 快捷键说明

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