📄 tu..c
字号:
//本程序为LM12864L系列显示程序
//程序结果显示为TOPWAY公司图形LOGO
#include<stdio.h>
#include<reg52.h>
#include<intrins.h> //头文件
#define uchar unsigned char //0~255
#define uint unsigned int //0~65535
#define lcd_bus P1
sbit RS = P3^1;
sbit RW = P3^7;
sbit E = P3^6;
sbit CS1 = P3^4;
sbit CS2 = P3^3;
sbit _RST = P3^5; //定义端口
uchar code LOGO[]={ //建立显示图形编码
// 调入了一幅图像:LOGO.bmp
// 宽度x高度=128x64
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,0x80,0x80,
0x80,0x80,0x80,0x80,0xC0,0xC0,0xC0,0xC0,
0xC0,0xC0,0xC0,0xC0,0xC0,0xE0,0xE0,0xE0,
0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,
0xE0,0x60,0x60,0x60,0x60,0x20,0x20,0xA0,
0xA0,0xA0,0x20,0x20,0x20,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,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xE0,
0xE0,0xE0,0xE0,0xE0,0xE0,0xF0,0xF0,0xF0,
0xF0,0xF0,0xF8,0xF8,0xF8,0xF8,0xF8,0xFC,
0xFC,0xFC,0xFC,0xFC,0xFE,0xFE,0xFE,0xFE,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x7F,0x7F,0x3F,0xBF,0x9F,0xDF,
0xDF,0xEF,0xEF,0xE7,0xF7,0xF7,0xF3,0xFB,
0xFB,0xFB,0xFD,0xFD,0xFD,0xFE,0xFE,0xFE,
0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,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,0x04,0x04,0x06,0x06,0x06,0x06,
0x06,0x02,0x03,0x03,0x03,0x03,0x03,0x03,
0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
0x07,0x07,0x07,0x07,0x07,0x0F,0x0F,0x0F,
0x0F,0x0F,0x1F,0x9F,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,0x1F,
0x9F,0xCF,0xE7,0xE7,0xF3,0xFB,0xF9,0xFD,
0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,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,0x80,
0xE0,0xF8,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0x7F,0x3F,0x1F,0x9F,0xCF,
0xE7,0xF3,0xF9,0xF8,0xFC,0xFE,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,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,0x80,0xE0,0xF8,0xFE,0xFF,
0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,0x9F,0xCF,
0xE7,0xF3,0xF8,0xFC,0xFE,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,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,
0xC0,0xF0,0xFE,0xFF,0xFF,0xFF,0x7F,0xBF,
0xCF,0xE7,0xF3,0xFC,0xFE,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,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,0xF0,0xFE,
0xFF,0x3F,0xDF,0xE7,0xFB,0xFC,0xFE,0xFF,
0xFF,0xEF,0xEF,0xEF,0x0F,0x0F,0xEF,0xEF,
0xEF,0xFF,0xBF,0x1F,0x0F,0xEF,0xEF,0xEF,
0xEF,0x0F,0x1F,0xBF,0xFF,0xFF,0x0F,0x0F,
0x0F,0xAF,0xAF,0xAF,0x8F,0xDF,0xFF,0xEF,
0x8F,0x1F,0x7F,0x3F,0x0F,0xCF,0x0F,0x1F,
0xFF,0x3F,0x0F,0xCF,0xFF,0xFF,0x7F,0x3F,
0x0F,0x6F,0x6F,0x0F,0x3F,0x7F,0xFF,0xEF,
0xCF,0xCF,0x1F,0x3F,0x1F,0xCF,0xEF,0xEF,
0xFF,0xFF,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,0x1F,0x07,0x09,
0x0E,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
0x0F,0x0F,0x0F,0x0F,0x0E,0x0E,0x0F,0x0F,
0x0F,0x0F,0x0F,0x0F,0x0E,0x0E,0x0E,0x0E,
0x0E,0x0E,0x0F,0x0F,0x0F,0x0F,0x0E,0x0E,
0x0E,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
0x0F,0x0E,0x0E,0x0E,0x0F,0x0F,0x0F,0x0E,
0x0E,0x0E,0x0F,0x0F,0x0F,0x0F,0x0E,0x0E,
0x0F,0x0F,0x0F,0x0F,0x0E,0x0E,0x0F,0x0F,
0x0F,0x0F,0x0E,0x0E,0x0E,0x0F,0x0F,0x0F,
0x0F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
//延时子程序
//-------------------------------------------
void delay(uint m) //在时钟频率为
{ //12MHz时大约
uint i,j; //延时 1ms
for(i=0;i<m;i++)
for(i=0;j<109;i++);
_nop_();
}
//-------------------------------------------
//写显示数据
//-------------------------------------------
void SdData (uchar ddata)
{
delay(0); //延时等待
RS = 1;
RW = 0;
lcd_bus = ddata; //送入数据
E = 1;
E = 0;
}
//-------------------------------------------
//写指令
//-------------------------------------------
void SdCmd(uchar command)
{
delay(0); //延时等待
RS = 0;
RW = 0;
lcd_bus = command; //送入指令
E = 1;
E = 0;
}
//-------------------------------------------
//初始化
//-------------------------------------------
void Init()
{
//_RST = 0;
//delay(150);
//_RST = 1; //硬件复位
//delay(100);
CS1=1;
CS2=1; //控制器全开
SdCmd(0x3f); //开显示
SdCmd(0xc0); //设置起始地址
}
//-------------------------------------------
//清空显示内存
//-------------------------------------------
void CleanScreen()
{
uchar i,j,k;
for(i=0;i<8;i++) {
CS1 = 1;
CS2 = 1; //控制器全开
SdCmd(0x40); //设置列地址
SdCmd(0xb8+i); //设置页地址
CS1 = 1;
CS2 = 0; //选择控制器 1
for(j=0;j<64;j++) SdData(0x00);
CS1 = 0;
CS2 = 1; //选择控制器 2
for(k=64;k<128;k++)
SdData(0x00);
}
}
//-------------------------------------------
//显示图象
//-------------------------------------------
void ShowPics(uchar code *bmp)
{ uchar i,j,k;
for(i=0;i<8;i++)
{ CS1 = 1;
CS2 = 1; //控制器全开
SdCmd(0x40); //设置列地址
SdCmd(0xb8+i); //设置页地址
CS1 = 1;
CS2 = 0; //选择控制器1
for(j=0;j<64;j++)
SdData(bmp[i*128+j]); //写入图象编码
CS1 = 0;
CS2 = 1; //选择控制器2
for(k=64;k<128;k++)
SdData(bmp[i*128+k]); //写入图象编码
}
}
//-------------------------------------------
//主程序
//-------------------------------------------
main()
{
Init(); //初始化模块
CleanScreen(); //清除显示内存
ShowPics(LOGO); //显示LOGO图形
while(1)
{};
} //end of program
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -