N76E003 驱动 ST7567 (SPI串口)

发布者:平和的心态最新更新时间:2022-06-28 来源: eefocus关键字:N76E003  驱动  SPI串口 手机看文章 扫描二维码
随时随地手机看文章

在这里插入图片描述

再看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 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 plat, uchar column, uchar chr, uchar fs)

{

uchar page,page1,col,col_h,col_l;

uchar i,a,j=0;

page1= plat*2;

page=page1+Page0;

col=column*8;

col_h=((col>>4)|0xf0)&0x1f;

col_l=col&0x0f;

chr=chr-' ';//得到偏移后的值

for(a = 0; a <2; a++)

{

Write_ST7567_COM(col_h);

Write_ST7567_COM(col_l);

Write_ST7567_COM(page+a);

  for(i = 0;  i <8; i ++ )

{

if(fs == 0){Write_ST7567_DATA(s0[chr][j++]);}

if(fs == 1){Write_ST7567_DATA(~(s0[chr][j++]));}

}

}  

}


///****************************************************************************/

函数名称:Disp_Nub8X16(uchar Row,uchar Col,uchar Number,uchar fs)

函数功能:将数据显示出来

输入参数:low       行地址

输入参数:Col      列地址

输入参数:Number    显示数值

输入参数:fs   显示方式(0,反显,否则正常显示)

返 回 值:无

///****************************************************************************/

void Disp_Nub8X16(uchar Row,uchar Col,uchar Number,uchar fs)

{

uchar page,page1,col,col_h,col_l,chr;

uchar i,a,j=0;

page1=Row*2;

page=page1+Page0;

col=Col*8;

col_h=((col>>4)|0xf0)&0x1f;

col_l=col&0x0f;

if(Number<11)//十进制数据

{

chr=Number+16;

}

else//十六进制数据

{

chr=Number-32;

}


for(a = 0; a <2; a++)

{

Write_ST7567_COM(col_h);

Write_ST7567_COM(col_l);

Write_ST7567_COM(page+a);

  for(i = 0;  i <8; i ++ )

{

if(fs == 0){Write_ST7567_DATA(s0[chr][j++]);}

if(fs == 1){Write_ST7567_DATA(~(s0[chr][j++]));}

}

}

}


//清屏函数

void Lcd12864_ClearScreen(void)

{

uchar i, j;


for(i=0; i<8; i++)

{

Write_ST7567_COM(0xB0+i); 

Write_ST7567_COM(0x10); 

Write_ST7567_COM(0x00);    

for(j=0; j<128; j++)

{

Write_ST7567_DATA(0x00);  

}

}

}


///****************************************************************************/

函数名称:Init_ST7567()

函数功能:初始化液晶屏

输入参数:无

返 回 值:无

TIPS:命令符见ST7567数据手册

///****************************************************************************/

void Init_ST7567()

{

HDReset();//硬复位

Timer3_Delay100ms(1);


       Write_ST7567_COM(0xe2);//软复位


       Write_ST7567_COM(0xaf);//0xaf显示器

       Write_ST7567_COM(0x2f);//0x2f升压电路,电压管理电路,

       

       Write_ST7567_COM(0x25);//0x20-0x27为V5电压内部电阻调整设置 


       Write_ST7567_COM(0x81);// SET EV 调对比度

       Write_ST7567_COM(0x18);//0x01-0x3f电量寄存器设置模式


       Write_ST7567_COM(0xa0);//0xa0为Segment正向,0xa1 为Segment反向

       

       Write_ST7567_COM(0xc8);//0xc0正向扫描,0xc8反射扫描


       Write_ST7567_COM(0xa6);//0xa6正向显示,0xa7反向显示

       Write_ST7567_COM(0xa4);//0xa4正常显示,0xa5全屏点亮


       Write_ST7567_COM(0xf8);//背压比设置

       Write_ST7567_COM(0x00);//00--10

Lcd12864_ClearScreen();//清屏

}


COG.h文件代码


#ifndef __COG_H

#define __COG_H


#define uint unsigned int

#define uchar unsigned  char



void Init_ST7567();

void Write_ST7567_COM(uchar COMDADA_4SPI);

void Write_ST7567_DATA(uchar DATA_4SPI);

void HDReset();

void clear_screen(uchar xx);

void Display_pic1();

void Delay_ms(unsigned long value);

//plat x坐标; column y坐标;p数组位置;c是否反白显示

void WRITE_STRING(uchar plat, uchar column, uchar chr, uchar fs);

void Lcd12864_ClearScreen(void);

void Disp_Nub8X16(uchar Row,uchar Col,uchar Number,uchar fs);

#endif


取模方式

在这里插入图片描述

LCDFont.h文件代码


#ifndef __LCDFONT_H

#define __LCDFONT_H 


#define uint unsigned int

#define uchar unsigned  char



//图像数组

uchar code graphic1[]={0};


uchar code s0[][16]=

{

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",0*/

0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,/*"!",1*/

0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*""",2*/

0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,/*"#",3*/

0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,/*"$",4*/

0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,/*"%",5*/

0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,/*"&",6*/

0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"'",7*/

0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,/*"(",8*/

0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,/*")",9*/

0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,/*"*",10*/

0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,/*"+",11*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,/*",",12*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,/*"-",13*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,/*".",14*/

0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,/*"/",15*/

0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,/*"0",16*/

0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,/*"1",17*/

0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,/*"2",18*/

0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,/*"3",19*/

0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,/*"4",20*/

0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,/*"5",21*/

0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,/*"6",22*/

0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,/*"7",23*/

0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,/*"8",24*/

0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,/*"9",25*/

0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,/*":",26*/

0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,/*";",27*/

0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,/*"<",28*/

0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,/*"=",29*/

0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,/*">",30*/

0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,/*"?",31*/

0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,/*"@",32*/

0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,/*"A",33*/

0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,/*"B",34*/

0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,/*"C",35*/

0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,/*"D",36*/

0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,/*"E",37*/

0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,/*"F",38*/

0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,/*"G",39*/

[1] [2]
关键字:N76E003  驱动  SPI串口 引用地址:N76E003 驱动 ST7567 (SPI串口)

上一篇:N76E003 旋转编码器 EC11
下一篇:N76E003 BMP180

推荐阅读最新更新时间:2024-11-17 04:36

基于PCIE总线的多DSP系统接口设计和驱动开发
雷达成像信号处理的特点是运算复杂。数据量大,要求系统在进行快速运算的同时能进行大数据量的快速传输和存储。I/O技术在高性能计算的发展过程中始终是一个十分关键的技术。 PCI Express总线基于串行总线高速互连,比普通并行I/O技术有着更为领先的带宽优势,被广泛地认为是一项革命性的总线技术,其重要性可以满足不同使用者的需求。本文将详细讨论基于PCIE总线的信号处理板卡的数据传输设计,主要包括DSP互连,DSP与FPGA通信,PCIE接口设计以及总线驱动程序的开发。 1 基于PCIE总线的数字信号处理机介绍 本系统是一个通用的基于PCIE总线的雷达成像数字处理机,板卡功能框图如图1所示。4片DSP之间通过高速链路口实现点
[单片机]
基于PCIE总线的多DSP系统接口设计和<font color='red'>驱动</font>开发
新型LED驱动和传感器可提高图像质量并降低能耗
尽管实际中 led 在普通照明应用方面得到更多的重视,但是目前 高亮度LED 的最大市场依然是 显示 器的 LED背光 照明。来自于Taos公司、Supertex公司和iWatt公司的新型 LED驱动 和 传感器 等产品能够保证采用最新SSL技术的显示器具有最佳的图像质量和最低的能耗。   实际上 光感 应器和近距离感应器是 液晶 显示器的 驱动 系统中必备的器件,它能够在周围光线充足或显示器前无人观赏时自动选择合适的背光 亮度 从而在省电的同时达到最佳的显示品质。尽管Taos公司希望能将其新型的TSL2x72系列产品应用到电脑显示器和高清 液晶电视 中,但目前TSL2x72家族的产品主要针对智能手机、平板电脑等 移动 设备。
[电源管理]
新型LED<font color='red'>驱动</font>和传感器可提高图像质量并降低能耗
关于STM32 MDK中USE_STDPERIPH_DRIVER问题的解释
初学STM32,在RealView MDK 环境中使用STM32固件库建立工程时,初学者可能会遇到编译不通过的问题。出现如下警告或错误提示: warning: #223-D: function assert_param declared implicitly;assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); 这时候我们需要在“Target Options” 中的“C/C++”选项卡中如图-2所示红框中添加USE_STDPERIPH_DRIVER、STM32F10X_HD。这样才能使编顺利通过。 图-2 知其然了,我们还得知其所以然。下面就听Herison给大家一一道来。我们知道,程序的执行是
[单片机]
关于STM32 MDK中USE_STDPERIPH_<font color='red'>DRIVER</font>问题的解释
电机驱动 控制系统
一.引言 国际能源机构IEA曾经声称全球45%的电能是电机所消耗的。在中国,这个比例是54%。这一方面反映了电机的使用是如此广泛,另一方面也敦促业界开发和使用更高效的电机。为了满足机电工程师对电机驱动和控制系统的测试需求,力科公司新推出基于8通道、12bit示波器的电机驱动和控制系统测试平台HDO8000。 图1 电机驱动和控制系统测试平台HDO8000 二. 电机测试需求分析 下图是一个典型的电机驱动和控制系统框图,大致分为功率驱动部分、电机控制部分、电机和传感器部分。 图2 一个典型的电机驱动和控制系统 功率驱动部分 图2 中的功率驱动部分是一个典型的级联H-bridge驱动电路。将其
[电源管理]
电机<font color='red'>驱动</font> 控制系统
Allegro MicroSystems, LLC发布全新四路DMOS全桥PWM电机驱动器IC
Allegro MicroSystems,LLC发布一款全新的四路DMOS全桥驱动器IC A5990,它可驱动两个步进电机或四个直流电机,每个全桥的额定输出高达1.6A和40V。Allegro的A5990集成有固定的关断时间脉宽调制(PWM)电流稳压器和2位非线性数模转换器(DAC),从而能够以整步进、半步进和四分之一步进行步进电机的控制,或者以向前、反转和滑行模式控制直流电机。下面就随工业控制小编一起来了解一下相关内容吧。 对于每个全桥,可以通过独立的电流控制参考电压输入实现高分辨率微步进控制。A5990 PWM电流稳压器具有外部可调节的关断时间,可根据电源电压和电机参数调整电流控制(每个桥对可独立调节)。A5990还具有自适
[工业控制]
英飞凌推出EiceDRIVER™SIL和EiceDRIVER™Boost,用于汽车级IGBT驱动
2013年5月27日,德国纽必堡讯——英飞凌科技股份有限公司 (FSE:IFX / OTC QX:IFNNY) 今天推出新一代应用于新能源汽车的高压IGBT门级驱动器。有了专为混合动力/电动汽车 (HEV) 的主逆变器而设计的全新EiceDRIVER™ SIL和EiceDRIVER™ Boost驱动器,汽车系统供应商便能够更轻松地设计出更具成本效益的HEV电力传动传动子系统,该系统完全符合ASIL C/D功能安全要求标准 (ISO 26262)。新的EiceDRIVER的目标应用是使用400V、600V和 1200V汽车级IGBT、功率高达120kW的HEV逆变器。EiceDRIVER SIL和EiceDRIVER Boost的前
[汽车电子]
解析无闪烁、无电解电容的LED驱动方案
  现阶段电解与电容寿命最高仅达5,000小时,且单价昂贵,不仅无法符合LED光源使用时间长达2万小时以上的要求,且垫高LED驱动器整体物料清单 (BOM)成本,与LED照明系统商的低成本和长寿命产品策略背道而驰,无电解、电容LED驱动器方案遂应运而生。   严宗福表示,LED照明灯具运作温度高达80100℃,然电解与电容在高温下容易干燥,故采内建电解、电容的LED可调光驱动器,工作寿命无法超过数千小 时,拖累LED照明灯具寿命。   周俊宏指出,无电解及电容的LED驱动器方案,虽可缩减成本、体积及寿命,但会产生输出电流涟波大的缺陷,造成LED光源闪烁、寿命衰退及效率下降的问 题,解决之道是加入线性稳压器(LDO),抑或藉由控制模
[电源管理]
解析无闪烁、无电解电容的LED<font color='red'>驱动</font>方案
红外光源驱动电路
红外光源 驱动电路 中+12 V电压通过两个100 kΩ电阻加在放大器的两端形成同相比例,放大电路放大倍数为Vi0=(1+Rf/R1)V来驱动三极管的导通与截止,驱动发光二极管。 红外光源 驱动电路 中+12 V电压通过两个100 kΩ电阻加在放大器的两端形成同相比例,放大电路放大倍数为Vi0=(1+Rf/R1)V来驱动三极管的导通与截止,驱动发光二极管。
[电源管理]
红外光源<font color='red'>驱动</font>电路
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved