需要工程文件包可在这里下载
先液晶屏参数
再看DXP原理图(+Bat为3.3V),LCD_Rst为硬件复位引脚,如不需要可直接设为高电平。BG_V/BG_G为背光端,单片机控制背光可使用三极管。
初始化流程
对比度调节
COG.c文件代码
#include "N76E003.h"
#include "SFR_Macro.h"
#include "Function_define.h"
#include "Common.h"
#include "Delay.h"
#include "intrins.h"
#include "COG.h"
#include "LCDFont.h"
#define Page0 0xb0 //第0页地址
#define Page_max 0xb8 //最大页地址,第8页
#define Column_h 0x10 //列地址(高位)
#define Column_l 0x00 //列地址(低位)
//--------------------------------------------------------- 4线SPI接口
sbit RSTB =P3^0;
sbit SDO =P1^4;//串行数据
sbit SCLK =P1^3;//串行时钟
sbit CS0 =P1^5;//片选信号
sbit CD =P1^0;//命令/数据切换
//--------------------------------------------------------------------------
//清屏函数
void clear_screen(uchar xx)
{
uchar i,j;
for(i=0;i<8;i++)
{
CS0=0;
Write_ST7567_COM(0xb0+i); //SET PAGE 0---8
Write_ST7567_COM(0x10); //SET COLUMN MSB
Write_ST7567_COM(0x00); //SET CLUMN LSB
for(j=0;j<128;j++)
{
Write_ST7567_DATA(xx);
}
}
}
//显示图片函数
void Display_pic1()
{
uint i,j,adressd=0;
for(i=0;i<8;i++)
{
CS0=0;
Write_ST7567_COM(0xb0+i);
Write_ST7567_COM(0x10);
Write_ST7567_COM(0x00);
for(j=0;j<96;j++)
{
Write_ST7567_DATA(graphic1[adressd]);
adressd++;
}
}
}
//写命令函数
void Write_ST7567_COM(uchar COMDADA_4SPI)
{
uchar bit8;
CD=0;
CS0=0;
for(bit8=0;bit8<8;bit8++)
{
SCLK=0;
if((COMDADA_4SPI&0x80)==0x80)
SDO=1;
else
SDO=0;
// SCL=0;
SCLK=1;
COMDADA_4SPI=(COMDADA_4SPI<<1);
}
// CS1=1;
}
//写数据函数
void Write_ST7567_DATA(uchar DATA_4SPI)
{
uchar bit8;
CD=1;
CS0=0;
for(bit8=0;bit8<8;bit8++)
{
SCLK=0;
if((DATA_4SPI&0x80)==0x80)
SDO=1;
else
SDO=0;
SCLK=1;
DATA_4SPI=(DATA_4SPI<<1);
}
// CS1=1;
}
//软件延时(不怎么准
void Delay_ms(unsigned long value)
{
uint i,j;
for (i=0;i<value;i++)
for (j=0;j<500;j++);
}
//硬件复位函数
void HDReset()
{
RSTB=0;
Delay_ms(2);
RSTB=1;
Delay_ms(4);
}
///****************************************************************************/
函数名称:WRITE_STRING(uchar plat,uchar column,uchar xs,uchar chr, uchar c)
函数功能:显示字符
输入参数:plat 行地址
输入参数:column 列地址
输入参数:chr 显示数值
输入参数:fs 显示方式(0,反显,否则正常显示)
返 回 值:无
///****************************************************************************/
void WRITE_STRING(uchar