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

📄 lcd_drv.c

📁 LCD驱动程序
💻 C
字号:
//******************************************************************************
//  MSP430F149 UltraLow Power Manometer - Software
//
//  Description; 

//  2006/12/26
//  Built with IAR Embedded Workbench Version: 4.6B
//******************************************************************************

// Include Files Needed by the Main.c
#include "msp430x14x.h"
#include "stdbool.h"

// 定义宏名
#define LCD_CS_H  P2OUT |= BIT7                          //对应IO操作 LCD_CS=1 
#define LCD_CS_L  P2OUT &=~BIT7                          //对应IO操作 LCD_CS=0
#define LCD_CLK_H P3OUT |= BIT0                          //对应IO操作 LCD_CS=1 
#define LCD_CLK_L P3OUT &=~BIT0                          //对应IO操作 LCD_CS=0
#define LCD_DAT_H P3OUT |= BIT1                          //对应IO操作 LCD_CS=1 
#define LCD_DAT_L P3OUT &=~BIT1                          //对应IO操作 LCD_CS=0

#define AD2_SCK_H P2OUT |= BIT2                          //AD2_SCK=1
#define AD2_SCK_L P2OUT &=~BIT2;                         //AD2_SCK=0
#define AD2_DAT BIT3&P2IN                                //AD2_DAT=P2.3

#define IIC_SCK_H P5OUT |= BIT3                          //IIC2_SCK=1  P5.3
#define IIC_SCK_L P5OUT &=~BIT3                          //IIC2_SCK=0  P5.3
#define IIC_DAT_H P5OUT |= BIT2                          //IIC2_DAT=1  P5.2
#define IIC_DAT_L P5OUT &=~BIT2                          //IIC2_DAT=0  P5.2
#define IIC_DAT BIT2&P5IN                                //IIC2_DAT=P5.2
#define IIC_OUT P5DIR |= BIT2                            //IIC2_DAT 定义为输出
#define IIC_IN  P5DIR &=~BIT2                            //IIC2_DAT 定义为输入

#define TS_AD 0x90

char const LCD_NUM[10] = { 0xeb,0x60,0xc7,0xe5,0x6c,0xad,0xaf,0xe0,0xef,0xed};

void LCD_Init(void)
{
  Delay_ms(210);
  P2SEL &=~BIT7;        //LCD Port 定义为普通功能
  P3SEL &=~(BIT0+BIT1);
  
  P2DIR |= BIT7;        //LCD Port 定义为输出状态 
  P3DIR |=(BIT0+BIT1);
  
  LCD_CS_H;         //端口复位
  LCD_CLK_H;
  LCD_DAT_H;
  
  LCD_CS_L;         //准备操作LCD端口
//  LCD_Write(0x01);  //LCD驱动复位
  LCD_Write(0x31);  //LCD模块初始化
  LCD_Write(0xD3);  //
  LCD_Write(0x34);  //
  LCD_Write(0x80);  //LCD模块初始化
  LCD_Write(0x35);  //
  LCD_Write(0x00);  //


  
  LCD_Write(0x32);  //启动LCD显示
  LCD_Write(0xf1);  //
  
  LCD_Write(0x20);  //指定连续写入工作方式  (只写 Address++)
  LCD_Write(0x80);  //指定写入数据首地址 (10XXXXXX) XXXXXX代表6位地址数据
  
  for(char i=0;i<14;i++)  //写入屏幕测试画面(全部显示)
    LCD_Write(0x0f);

  LCD_CS_H;
}

void LCD_Write(char data)
{
//  Delay_us(50);
  for(char i=0;i<8;i++)
  {
    if(data&BIT0) LCD_DAT_H;
    else          LCD_DAT_L;
    data>>=1;
//    Delay_us(50);
    LCD_CLK_L; 
//    Delay_us(50);
    LCD_CLK_H;          //上跳沿读入数据
//    Delay_us(50);
  }
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -