LCD12864的51并行与串行字符图片显示

可以自主选择使用并行或者串行进行操作,只需更改标志位即可。

0为并行模式,1为串行模式   程序其余不用更改。

可以显示字符以及图片。如果想要动态显示数字,可以使用进行字符的转换。

自带一张图片,直接下载默认显示此图片。

资源下载连接:https://download.csdn.net/download/qq_43588817/11846122

main.c


#include "reg52.h"
#include "intrins.h"
#include "lcd12864.h"
#include "lcd12864_font.h"


// ****************************************************************************************** //
//主函数  //此程序仅有51程序,可自行移植32程序
void main()
{
	LCD12864_Init();  //初始化 LCD12864
	
	//并行写入数据较快,大概1-2s写完此图片
	//串行写入数据较慢,大概15s左右写完此图片,等待时间较长
	LCD12864_Display_Picture(TEST_LCD12864_0);  //显示对应的测试图片
	while(1)
	{
		
	};
}


lcd12864.c


#include "lcd12864.h"
#include "reg52.h"




// ************************************************************************************************************** //
//毫秒延时函数
void Delay_Ms(uint16_t z)
{
	uint8_t x,y;
	for(x=z;x>0;x--)
	   for(y=120;y>0;y--);
}
// ************************************************************************************************************** //



// 宏定义选择模式  宏定义选择模式  宏定义选择模式  宏定义选择模式  宏定义选择模式  宏定义选择模式
// ---↓↓↓↓↓↓↓---   ---↓↓↓↓↓↓↓---   ---↓↓↓↓↓↓↓---   ---↓↓↓↓↓↓↓---   ---↓↓↓↓↓↓↓---   ---↓↓↓↓↓↓↓---


//
//            /---------选择 0 为并行模式  , 在.h文件中更改标志位
//           /
//  ________/_________
#if LCD12864_MODE == 0
// ************************************************************************************************************** //
// ************************************************************************************************************** //
//LCD12864初始化
void LCD12864_Init()
{
    LCD12864_RD = 1;               //并口方式   
    LCD12864_Write_Cmd(0x34);      //扩充指令操作
    LCD12864_Write_Cmd(0x30);      //基本指令操作
    LCD12864_Write_Cmd(0x0C);      //显示开,关光标
	  LCD12864_Write_Cmd(0x3e);
    LCD12864_Write_Cmd(0x01);      //清除LCD的显示内容
	
}
// ************************************************************************************************************** //
//清屏
void LCD12864_Clear()
{
	LCD12864_Write_Cmd(0x01);			//清屏指令
}



........................
........................
........................

lcd2864.h


#ifndef     __LCD12864_H__
#define     __LCD12864_H__
#include "reg52.h"


// ****************************************************************************************** //
//-->> 0:并行   1:串行
#define LCD12864_MODE   1 //定义使用并行还是串行


// ****************************************************************************************** //
//端口定义
#define WRITE_CMD	0xF8//写命令
#define WRITE_DAT	0xFA//写数据

sbit LCD12864_READ = P0^7; 
sbit LCD12864_RS = P3^5;   //CS   --> VCC  //片选
sbit LCD12864_RW = P3^6;   //SID  --> PA1
sbit LCD12864_EN = P3^4;   //SCLK --> PA0
sbit LCD12864_RD = P3^7;   //PSB  --> GND  //低为串行



........................
........................
........................

 

你可能感兴趣的:(51笔记,lcd12864,并行,串行,lcd12864图片显示)