📄 lcd.c
字号:
#include <msp430x14x.h>
#include "lcd.h"
void delay(unsigned int i)
{
unsigned int j;
for(j =0;j<i;j++);
}
// 液晶初始化
void LCD_initial(void)
{
LCD_DATA_OUT = 0X00;
LCD_DATA_DIR = 0XFF;
LCD_COM_OUT = 0XFF;
LCD_COM_DIR = 0XFE; // P1.0是给SD卡用的,输入
LCD_COM_OUT &= ~LCD_RESET;
delay(5);
LCD_COM_OUT |= LCD_E;
delay(5);
LCD_COM_OUT &= ~LCD_E;
delay(5);
LCD_COM_OUT |= LCD_RESET;
delay(5);
LCD_COM_OUT = 0XFF;
LCD_COMMAND_WRITE(DISPLAY_ON,1);
LCD_COMMAND_WRITE(DISPLAY_ON,2);
LCD_COMMAND_WRITE(DISPLAY_ON,3);
LCD_COMMAND_WRITE(SET_SHOW,1);
LCD_COMMAND_WRITE(SET_SHOW,2);
LCD_COMMAND_WRITE(SET_SHOW,3);
LCD_COMMAND_WRITE(DISPLAY_ON,1);
LCD_COMMAND_WRITE(DISPLAY_ON,2);
LCD_COMMAND_WRITE(DISPLAY_ON,3);
}
// 写数据
void LCD_DATA_WRITE(unsigned char data,unsigned char CSx)
{
LCD_COM_OUT = 0XFF;
LCD_DATA_OUT=0X00;
LCD_COM_DIR = 0XFF;
LCD_DATA_DIR = 0XFF;
LCD_COM_OUT &= ~LCD_E; // E =0
switch (CSx)
{
case 1 : LCD_COM_OUT &= ~LCD_CS1;break; // left =0
case 2 : LCD_COM_OUT &= ~LCD_CS2;break; // middle =0
case 3 : LCD_COM_OUT &= ~LCD_CS3;break; // right =0
}
LCD_COM_OUT &= ~LCD_RW; // RW =0
LCD_COM_OUT |= LCD_DI; // DI =1
LCD_COM_OUT |= LCD_E; // E =1
LCD_DATA_OUT = data; // sending data
// delay(1);
LCD_COM_OUT &= ~LCD_E; // E =0
LCD_COM_OUT = LCD_DI+LCD_RW+LCD_RESET+LCD_CS1+LCD_CS2+LCD_CS3;
LCD_DATA_OUT = 0X00;
}
// 写指令
void LCD_COMMAND_WRITE(unsigned char command,unsigned char CSx)
{
LCD_COM_OUT = 0XFF;
LCD_DATA_OUT = 0X00;
LCD_COM_DIR = 0XFF;
LCD_DATA_DIR = 0XFF;
LCD_COM_OUT &= ~LCD_E; // E =0
switch (CSx)
{
case 1 : LCD_COM_OUT &= ~LCD_CS1;break; // left =0
case 2 : LCD_COM_OUT &= ~LCD_CS2;break; // middle =0
case 3 : LCD_COM_OUT &= ~LCD_CS3;break; // right =0
}
LCD_COM_OUT &= ~LCD_RW; // RW =0
LCD_COM_OUT &= ~LCD_DI; // DI =0
LCD_COM_OUT |= LCD_E; // E =1
LCD_DATA_OUT = command; // sending data
// delay(1);
LCD_COM_OUT &= ~LCD_E; // E =0
LCD_COM_OUT = LCD_DI+LCD_RW+LCD_RESET+LCD_CS1+LCD_CS2+LCD_CS3;
LCD_DATA_OUT = 0X00;
}
// 全屏幕清除
void LCD_clear(void)
{
unsigned char i,j,k;
for(k=1;k<4;k++)
{
for(i=0;i<8;i++)
{
for(j=0;j<64;j++)
{
LCD_COMMAND_WRITE(SET_X|i,k);
LCD_COMMAND_WRITE(SET_Y|j,k);
LCD_DATA_WRITE(0x00,k);
}
}
}
}
// 显示
//
void LCD_set(void)
{
unsigned char i,j,k;
for(k=1;k<4;k++)
{
for(i=0;i<8;i++)
{
for(j=0;j<64;j++)
{
LCD_COMMAND_WRITE(SET_X|i,k);
LCD_COMMAND_WRITE(SET_Y|j,k);
LCD_DATA_WRITE(0XFF,k);
delay(1000);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -