(二十四)msp430进阶:Nokia5110图形显示器与MSP -EXP430G2 TI Launchpad连接

释放双眼,带上耳机,听听看~!

介绍

(二十四)msp430进阶:Nokia5110图形显示器与MSP -EXP430G2 TI Launchpad连接

诺基亚5110显示器

 

  • 诺基亚5110是一款可以显示文字,图像和各种图案的图形显示屏。
  • 它的分辨率为48×84,并配有背光。
  • 它使用SPI通信与微控制器通信。
  • 数据和命令可以通过微控制器发送到显示器以控制显示输出。
  • 它有8个引脚。

 

电路连接图

(二十四)msp430进阶:Nokia5110图形显示器与MSP -EXP430G2 TI Launchpad连接

将Nokia5110模块与MSP-EXP430G2 TI Launchpad连接

 

诺基亚5110显示器编程

诺基亚5110初始化

  • 在Nokia5110的初始化中,第一步是通过发送低至高脉冲来复位引脚来复位显示。
  • 发送命令0x21H以在附加模式下设置命令(H = 1)。
  • 然后通过发送命令0xC0H设置VOP = 5V。
  • 通过发送0x07H将温度系数设置为3。
  • 使用0x13命令设置电压偏置系统,建议n = 4和1:48 mux速率。
  • 发送命令0x20进行基本模式操作(H = 0)。
  • 然后发送0x0C进行正常模式操作。
void N5110_init(void)
{
  N5110_Reset();                    /* reset the display */
  N5110_Cmnd(0x21);                 /* command set in addition mode */
  N5110_Cmnd(0xC0);                 /* set the voltage by sending C0 means VOP = 5V */
  N5110_Cmnd(0x07);                 /* set the temp. coefficient to 3 */
  N5110_Cmnd(0x13);                 /* set value of Voltage Bias System */
  N5110_Cmnd(0x20);                 /* command set in basic mode */
  N5110_Cmnd(0x0C);                 /* display result in normal mode */
}

 

命令写入功能

  • 对于命令操作,使DC引脚为低电平。
  • 使能(使低电平)从选择引脚。
  • 在SPI数据寄存器上发送命令。
  • 启用(高电平)DC引脚以进行数据操作。
  • 禁用(使高电平)从选择引脚。
void N5110_Cmnd(char DATA)
{
  digitalWrite(DC, LOW);
  digitalWrite(chipSelectPin, LOW);
  SPI.transfer(DATA);    
  digitalWrite(chipSelectPin, HIGH);
  digitalWrite(DC, HIGH);
}

 

数据写入功能

  • 对于数据操作,使DC引脚为高电平。
  • 使能(使低电平)从选择引脚。
  • 在SPI数据寄存器上发送数据。
  • 启用(降低)DC引脚以进行命令操作。
  • 发送数据后禁用(使高电平)从选择引脚。
void N5110_Data(char *DATA)
{
  digitalWrite(DC, HIGH);
  digitalWrite(chipSelectPin, LOW);
  int len = strlen(DATA);
  for (int g=0; gfor (int index=0; index<5; index++)
    {
      SPI.transfer(ASCII[DATA[g] - 0x20][index]);
    }
    SPI.transfer(0x00);
  }
  digitalWrite(chipSelectPin, HIGH);
  digitalWrite(DC, LOW);
}

 

图像显示功能

void N5110_image(const unsigned char *image_data)   /* clear the Display */
{
  digitalWrite(DC, HIGH);
  digitalWrite(chipSelectPin, LOW);  for (int k=0; k<504; k++)
  {
    SPI.transfer(image_data[k]);
  }  
  digitalWrite(chipSelectPin, HIGH);  
  digitalWrite(DC, LOW);
}

 

在诺基亚5110显示屏上显示文字和图像。

在这里,我们将在诺基亚5110显示器上显示简单文本,然后显示一些将在循环中显示的图像。

 

诺基亚5110显示的程序

#include 
#include "Font.h"
#include 
#include "images.h"

const int chipSelectPin = 17; /* Chip Select Pin */
const int DC = 16; /* Data/Command Pin */
const int RST = 18; /* Reset Pin */

void N5110_Cmnd(char DATA) /* Function for sending command to Nokia5110 display */
{
  digitalWrite(DC, LOW); /* DC = 0, display in command mode */
  digitalWrite(chipSelectPin, LOW); /* Make chip select pin low to enable SPI commuincation */
  SPI.transfer(DATA); /* Send data(command) */
  digitalWrite(chipSelectPin, HIGH); /* Make chip select pin high to disable SPI commuincation */
  digitalWrite(DC, HIGH); /* DC = 1, display in data mode */
}

void N5110_Data(char *DATA) /* Function for sending data to Nokia5110 display */
{
  digitalWrite(DC, HIGH); /* DC = 1, display in data mode */
  digitalWrite(chipSelectPin, LOW); /* Make chip select pin low to enable SPI commuincation */int len = strlen(DATA);
  for (int g=0; gfor (int index=0; index<5; index++)
    {
      SPI.transfer(ASCII[DATA[g] - 0x20][index]); /* Send data */
    }
    SPI.transfer(0x00);
  }
  digitalWrite(chipSelectPin, HIGH); /* Make chip select pin high to disable SPI commuincation */
  digitalWrite(DC, LOW); /* DC = 0, display in command mode */
}

void N5110_Reset(void) /* Function for resetting Nokia5110 display */   
{
  digitalWrite(RST, LOW); /* Make reset pin low for resetting the Nokia5110 display */
  delay(100); /* Reset pin needs to be low for at least 100nsec, we are keeping it low for 100msec */
  digitalWrite(RST, HIGH); /* Make reset pin high to bring Nokia5110 display out of reset */
}

void N5110_init(void) /* Function for initializing Nokia5110 display */
{
  N5110_Reset();                    /* reset the display */
  N5110_Cmnd(0x21);                 /* command set in addition mode */
  N5110_Cmnd(0xC0);                 /* set the voltage by sending C0 means VOP = 5V */
  N5110_Cmnd(0x07);                 /* set the temp. coefficient to 3 */
  N5110_Cmnd(0x13);                 /* set value of Voltage Bias System */
  N5110_Cmnd(0x20);                 /* command set in basic mode */
  N5110_Cmnd(0x0C);                 /* display result in normal mode */
}

void lcd_setXY(char x, char y) /* Function for setting cursor to (x,y) co-ordinates */
{
  N5110_Cmnd(x); /* x co-ordinate can be 0x80-0xD3 for position 0-83 */
  N5110_Cmnd(y); /* y co-ordinate can be 0x40-0x45 for position 0-5 */
}

余下程序

 

结果演示

(二十四)msp430进阶:Nokia5110图形显示器与MSP -EXP430G2 TI Launchpad连接

​​​​​

完整程序下载

nokia5110

提取码:无
解压码:无

给TA打赏
共{{data.count}}人
人已打赏
msp430/Arduino-进阶

(二十三)msp430进阶:超声波传感器HC-SR04与MSP-EXP430G2 TI Launchpad连接

2019-7-4 22:43:25

msp430/Arduino-进阶

(二十五)msp430进阶:OLED图形显示器与MSP-EXP430G2 TI Launchpad连接

2019-7-5 22:12:02

2 条回复 A文章作者 M管理员
  1. 注册成功了吗

    德飞莱的屏我驱动不了,有库吗

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
'); })();