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

📄 cm1601282.c

📁 keil c51编写的LCD 12864像素LCD显示屏程序,,通过调用函数,显示grom字库中的7千多个简体中文和字符
💻 C
📖 第 1 页 / 共 3 页
字号:
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x0F,0x1F,0x1E,0x3E,0x3C,0x3C,
0x3C,0x38,0x38,0x38,0x3C,0x3C,0x3C,0x3E,0x1F,0x1F,0x0F,0x07,0x01,0x00,0x00,0x30,
0x38,0x78,0x3C,0x3C,0x3E,0x1F,0x0F,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xE7,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC7,0xFF,0xFF,0xFE,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x8F,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0x78,0x78,0x3C,0x3C,
0x3C,0x1C,0x1C,0x1C,0x3C,0x3C,0x7C,0x7C,0xFC,0xFC,0xDC,0xBC,0x3C,0x3C,0x3C,0x3C,
0x78,0x78,0x78,0xF0,0xF0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  调入了一幅图像:E:\jiang\林老师的项目2\CM160128_jiang\bmpfiles\9_2.bmp  --*/
/*--  宽度x高度=48x24  --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x0F,0x1F,0x1E,0x3E,0x3C,0x3C,
0x3C,0x38,0x38,0x38,0x3C,0x3C,0x3C,0x3E,0x1F,0x1F,0x0F,0x07,0x01,0x00,0x00,0x30,
0x38,0x78,0x3C,0x3C,0x3E,0x1F,0x0F,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xE7,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC7,0xFF,0xFF,0xFE,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x8F,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0x78,0x78,0x3C,0x3C,
0x3C,0x1C,0x1C,0x1C,0x3C,0x3C,0x7C,0x7C,0xFC,0xFC,0xDC,0xBC,0x3C,0x3C,0x3C,0x3C,
0x78,0x78,0x78,0xF0,0xF0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  调入了一幅图像:E:\jiang\林老师的项目2\CM160128_jiang\bmpfiles\dot2.bmp  --*/
/*--  宽度x高度=48x24  --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x3E,0x3E,0x3E,0x3E,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

};

unsigned char code DTAB[11]={ 0x37,0x45,0x4c,0x43,0x4f,0x4d,0x45,0x00,0x39,0x4f,0x55};
unsigned char code ASC[10]={ 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19};

//-------------------------------------------------------------------
void INIT_1();
void CLEAR();
void CGRAM();
void CCWR1_PR();
void CCW2_PR();
void CW2_PR();
void W_DOT();
void PR1();
void PR11();
void PR12();
void ST01();
void ST2();
void ST3();
void DISHAZIT(uchar x,uchar y,uchar d);
void DISHAZIT2(uchar x,uchar y,uchar d);
void DISHAZIW(uchar x,uchar y,uchar d);
void DISDASC(uchar x,uchar y,uchar d);
void DISASC(uchar x,uchar y,uchar d);

void FCCW2_PR();
void ShowLine(uchar x,uchar y,uchar *puts,uchar le,uchar kk);
void FDISHAZIT(uchar x,uchar y,uchar d);
void GUANGBIAO(uchar x,uchar y);
void delay(int t);
//-------------------------------------------------------------------
unsigned char code welcome[128][160];
//--------------------function---------------------------
void delay_ms(int ms)
{
        int i = 0;
        int j = 0;

        for(i = ms; i > 0; i--)
        {
                j = 1000;
                while(j--)
                {
                }
        }
}


//--------------------------------------------
/**************************/
/* 初始化函数 */
/**************************/
INT_1()
{
    dat1=0x00; /*设文本显示区域首地址*/
    dat2=0x00;
	com=0x40;
	PR1();

	dat1=para1; /*设文本显示区域宽度*/
	dat2=0x00;
	com=0x41;
	PR1();

	dat1=0x00; /*设图形显示区域首地址*/
	dat2=0x08;
	com=0x42;
	PR1();
	dat1=para1; /*设图形显示区域宽度*/
	dat2=0x00;
	com=0x43;
	PR1();

	com=0xa0; /*光标形状设置*/
	PR12();

	com=0x80; /*显示方式设置逻辑"或"合成*/
	PR12();

	com=0x9c; /*显示开关设置 开文本和图形显示*/
	PR12();
}
/***************************/
/* 清显示子程序 */
/***************************/
void CLEAR()
{
	unsigned char i,j;
	dat1=0x00;
	dat2=0x00;
	com=0x24;
	PR1();
	com=0xb0;
	PR12();
	for(i=0;i<205;i++)
	{
		for(j=0;j<=40;j++)
		{
			ST3();
			d_add=0x00;
		}
	}
	com=0xb2;
	PR12();
}/**************************/
/* CGRAM函数 */
/**************************/
void CGRAM()
{
	unsigned int i;

	dat1=0x03;
	dat2=0x00;
	com=0x22; /* 设置CGRAM偏置地址 */
	PR1();
	dat1=0x00;
	dat2=0x1c;
	com=0x24; /* 设置存储器地址指针 */
	PR1();
	com=0xb0; /* 设置自动写方式 */
	PR12();
	for(i=0;i<320;i++)
	{
		ST3();
		d_add=CGTAB[i];
	}
	com=0xb2; /* 设置自动写结束方式 */
	PR12();
}

/********************************/
/* 汉字写入(文本方式)函数 */
/********************************/
CCW1_PR()
{
	unsigned int i,j;

	i=para1;
	j=i*O_Y+O_X;
	dat1=j%256;
	dat2=j/256;
	com=0x24; /* 设置显示地址 */
	PR1();
	dat2=code_1; /* 写入左上半部汉字代码 */
	com=0xc0;
	PR11();
	dat2=code_1+0x02; /* 写入右上半部汉字代码 */
	PR11();
	j=j+i;
	dat1=j%256; /* 显示RAM地址修正 */
	dat2=j/256;
	com=0x24;
	PR1();
	dat2=code_1+0x01; /* 写入左下半部汉字代码 */
	com=0xc0;
	PR11();
	dat2=code_1+0x03; /* 写入右下半部汉字代码 */
	PR11();
}

CCWD_PR() /* */
{
	unsigned int i,j;

	i=para1;
	j=i*O_Y+O_X;

	dat1=j%256;
	dat2=j/256;
	com=0x24; /* 设置显示地址 */
	PR1();
	dat2=code_1; /* 写入左上半部汉字代码 */
	com=0xc0;
	PR11();

	j=j+i;
	dat1=j%256; /* 显示RAM地址修正 */
	dat2=j/256;
	com=0x24;
	PR1();

	dat2=code_1+0x01; /* 写入左下半部汉字代码 */
	com=0xc0;
	PR11();
}

void CCW2_PR()
{
	unsigned int i,j,count1;

	i=para1;
	j=i*O_Y+O_X+0x0800;
	for(count1=0;count1<16;count1++)
	{
		dat1=j%256;
		dat2=j/256;
		com=0x24;
		PR1();

		dat2=CCTAB[code_1][count1]; /* 写入汉字左侧代码 */
		com=0xc0;
		PR11();

		dat2=CCTAB[code_1][count1+16]; /* 写入汉字右侧代码 */
		PR11();
		j=j+i;
	}
}
CCW3_PR()
{
	unsigned int i,j,count1;

	i=para1;
	j=i*O_Y+O_X+0x0800;
	for(count1=0;count1<48;count1++)
	{
		dat1=j%256;
		dat2=j/256;
		com=0x24;
		PR1();

		dat2=CCTAB[code_1][count1]; /* 写入汉字左侧代码 */
		com=0xc0;
		PR11();
                dat2=CCTAB[code_1][count1+48]; /* 写入汉字中间代码 */
		PR11();
		dat2=CCTAB[code_1][count1+96]; /* 写入汉字右侧代码 */
		PR11();
		j=j+i;
	}
}


/********************************/
/* 西文字符写入(文本属性)函数 */
/********************************/
void CW2_PR()
{
	unsigned int i,j;

	i=para1;
	j=i*O_Y+O_X;
	dat1=j%256;
	dat2=j/256;
	com=0x24; /* 显示地址设置 */
	PR1();

	dat2=code_1;
	com=0xC0; /* 数据写 */
	PR11();

	dat2=0x08;
	com=0x24;
	PR1();
}

/****************************/
/* 绘点函数 */
/****************************/
void W_DOT()
{
	unsigned char i;
	unsigned int k;

	i=O_X%8;
	O_X=O_X/8;
	k=0x20*O_Y+O_X+0x0800;
	dat1=k%256;
	dat2=k/256;
	com=0x24;
	PR1();
	i=0x07-i;
	com=i|0xf8; /* 位操作 */
	PR12();
}
/****************************/
/* 写指令和写数据函数 */
/****************************/
void PR1() /* 双字节参数指令写入入口 */
{
	ST01();
	d_add=dat1; /* 取第一参数单元数据 */
	PR11();
}
void PR11() /* 单字节参数指令写入入口 */
{
	ST01();
	d_add=dat2; /* 取第二参数单元数据 */
	PR12();
}
void PR12() /* 无参数指令写入入口 */
{
	ST01();
	c_add=com; /* 写入指令代码 */
}
/************************************************/
/* 判状态位S1,S0 函数(读写指令和读写数据状态) */
/************************************************/
void ST01()
{
	do
	{
		ACC=c_add;
	}

⌨️ 快捷键说明

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