📄 nokia_5110.h
字号:
#ifndef __NOKIA_5110_H__
#define __NOKIA_5110_H__
#include "msp430x24x.h"
// pin 2 header 5
#define SDIN_H P5OUT|=BIT4 // header 4
#define SDIN_L P5OUT&=~BIT4 //header 5
#define SCLK_H P5OUT|=BIT5
#define SCLK_L P5OUT&=~BIT5
#define LCD_DC_H P5OUT|=BIT3 // header 3
#define LCD_DC_L P5OUT&=~BIT3
#define LCD_CE_H P5OUT|=BIT2 // header 2
#define LCD_CE_L P5OUT&=~BIT2
#define LCD_RST_H P5OUT|=BIT1// header 1
#define LCD_RST_L P5OUT&=~BIT1
void NOKIA5110_delay(void) //延时函数
{
unsigned int i;
for(i=0;i<670;i++);
}
/*-----------------------------------------------------------------------
NOKIA5110_w_byte : 使用SPI接口写数据到LCD
输入参数:data :写入的数据;
command :写数据/命令选择;
-----------------------------------------------------------------------*/
void NOKIA5110_w_byte(unsigned char dat, unsigned char command)
{
unsigned char i;
LCD_CE_L;
if (command == 0)
LCD_DC_L ; // 传送命令
else
LCD_DC_H; // 传送数据
for(i=0;i<8;i++)
{
if(dat&0x80)
SDIN_H;
else
SDIN_L;
SCLK_L;
dat = dat << 1;
SCLK_H;
}
LCD_CE_H;
}
/*-----------------------------------------------------------------------
NOKIA5110_clear : LCD清屏函数
-----------------------------------------------------------------------*/
void NOKIA5110_clear(void)
{
unsigned int i;
NOKIA5110_w_byte(0x0c, 0);
NOKIA5110_w_byte(0x80, 0);
for (i=0; i<336; i++)
NOKIA5110_w_byte(0, 1);
}
/****************************************************
NOKIA5110_init: LCD 初始化
*****************************************************/
void NOKIA5110_init(void)
{
// 产生一个让LCD复位的低电平脉冲
LCD_RST_L;
NOKIA5110_delay();
LCD_RST_H;
// 关闭LCD
LCD_CE_L;
NOKIA5110_delay();
// 使能LCD
LCD_CE_H;
NOKIA5110_delay();
NOKIA5110_w_byte(0x21, 0); // 使用扩展命令设置LCD模式
NOKIA5110_w_byte(0xc8, 0); // 设置偏置电压
NOKIA5110_w_byte(0x06, 0); // 温度校正
NOKIA5110_w_byte(0x13, 0); // 1:48
NOKIA5110_w_byte(0x20, 0); // 使用基本命令
NOKIA5110_clear(); // 清屏
NOKIA5110_w_byte(0x0c, 0); // 设定显示模式,正常显示
LCD_CE_L; // 关闭LCD
}
/*-----------------------------------------------------------------------
NOKIA5110_set_XY : 设置LCD坐标函数
输入参数:X:0-83
Y:0-5
-----------------------------------------------------------------------*/
void NOKIA5110_set_XY(unsigned char X, unsigned char Y)
{
NOKIA5110_w_byte(0x40 | Y, 0); // 列(竖)
NOKIA5110_w_byte(0x80 | X, 0); // 行(横)
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -