⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nokia_5110.h

📁 用于MSP430F247单片机的NOKIA5110液晶屏驱动程序
💻 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 + -