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

📄 tu..c

📁 本程序是基于LM12864L系列开发的液晶显示源程序,该程序用于可以用于显示图像
💻 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 + -