📄 nokia_5110.h
字号:
/**************************************
欢迎使用 o(∩_∩)o... 共同进步
Copyright (C) CUIT 电子工程学院 许堂明
***************************************/
#ifndef __NOKIA_5110_H__
#define __NOKIA_5110_H__
/* NOLIA 5110 LCD Driver For MSP430F247
//sbit SCLK = P2^4; BIT4 // pin 2 header 5
//sbit SDIN = P2^3; BIT3 // pin 3 header 4
//sbit LCD_DC =P2^2; BIT2 // pin 4 header 3
//sbit LCD_CE = P2^1; BIT1 // pin 5 header 2
//sbit LCD_RST =P2^0; BIT0 // pin 9 header 1
*/
#define SCLK P2OUT
#define SDIN P2OUT
#define LCD_DC P2OUT
#define LCD_CE P2OUT
#define LCD_RST P2OUT
void NOKIA5110_delay(void) //1us延时函数
{
unsigned int i;
for(i=0;i<1000;i++);
}
/*-----------------------------------------------------------------------
void NOKIA5110_w_byte : 使用SPI接口写数据到LCD
输入参数:data :写入的数据;
command :写数据/命令选择;
-----------------------------------------------------------------------*/
void NOKIA5110_w_byte(unsigned char dat, unsigned char command)
{
unsigned char i;
LCD_CE &= ~(BIT1);
if (command == 0)
LCD_DC &= ~(BIT2); // 传送命令
else
LCD_DC |= BIT2; // 传送数据
for(i=0;i<8;i++)
{
if(dat&0x80)
SDIN |=BIT3 ;
else
SDIN &= ~(BIT3);
SCLK &= ~(BIT4);
dat = dat << 1;
SCLK |= BIT4;
}
LCD_CE |=BIT1;
}
/*-----------------------------------------------------------------------
void NOKIA5110_clea : LCD清屏函数
-----------------------------------------------------------------------*/
void NOKIA5110_clear(void)
{
unsigned int i;
NOKIA5110_w_byte(0x0c, 0);
NOKIA5110_w_byte(0x80, 0);
for (i=0; i<504; i++)
NOKIA5110_w_byte(0, 1);
}
void NOKIA5110_init(void)
{
// 产生一个让LCD复位的低电平脉冲
LCD_RST &= ~(BIT0);
NOKIA5110_delay();
LCD_RST |= BIT0;
// 开LCD
LCD_CE &= ~(BIT1);
NOKIA5110_delay();
// 关闭LCD
LCD_CE |= BIT1;
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 &= ~(BIT1); // 开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 + -