📄 lcd12232_1.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 + -