📄 lcdctrl.c
字号:
#include <msp430x14x.h>
#include "lcdctrl.h"
extern unsigned char matrix_anchor;
extern unsigned char brightness;
extern unsigned char led_on;
void lcd_reset(void)
{
LCD_CD_H;
LCD_CS_L;
LCD_W_H;
LCD_R_H;
LCD_RST_L;
DELAY(LCD_DELAY_MID);
LCD_RST_H;
DELAY(LCD_DELAY_SHORT);
}
void lcd_send_command(unsigned short command)
{
LCD_R_H;
LCD_DATA = command;
LCD_CS_L;
LCD_CD_L;
DELAY(LCD_DELAY_SHORT);
LCD_CS_H;
LCD_W_L;
DELAY(LCD_DELAY_SHORT);
LCD_W_H;
DELAY(LCD_DELAY_SHORT);
LCD_CS_L;
DELAY(LCD_DELAY_SHORT);
}
void lcd_send_data(unsigned short data)
{
LCD_R_H;
LCD_DATA = data;
LCD_CS_L;
LCD_CD_H;
DELAY(LCD_DELAY_SHORT);
LCD_CS_H;
LCD_W_L;
DELAY(LCD_DELAY_SHORT);
LCD_W_H;
DELAY(LCD_DELAY_SHORT);
LCD_CS_L;
DELAY(LCD_DELAY_SHORT);
}
void lcd_read_data(void)
{
LCD_READ_DATA;
LCD_W_H;
LCD_CS_L;
LCD_CD_H;
DELAY(LCD_DELAY_SHORT);
LCD_CS_H;
LCD_R_L;
DELAY(LCD_DELAY_SHORT);
LCD_R_H;
DELAY(LCD_DELAY_SHORT);
LCD_R_L;
DELAY(LCD_DELAY_SHORT);
LCD_R_H;
DELAY(LCD_DELAY_SHORT);
LCD_CS_L;
DELAY(LCD_DELAY_SHORT);
}
void lcd_init(void)
{
volatile unsigned int i,j;
P1DIR |= 0xff;
P2DIR |= 0xff;
lcd_reset();
for(i=0;i<255;i++)
{
j = i;
}
lcd_send_command(0xe2); //reset
for(i=0;i<255;i++)
{
j = i;
}
lcd_send_command(0x81);
lcd_send_command(0x40); //brightness
lcd_send_command(0xd6); //16 gray
lcd_send_command(0x88); //auto increase
lcd_send_command(0xaf); //display on
led_on = matrix_anchor = 0;
brightness = 0x40;
//P5SEL &= ~0x0020;
for(j=0;j<80;j++)
{
lcd_send_command(0x00);
lcd_send_command(0x10);
lcd_send_command(0x60 | (j & 0x0f));
lcd_send_command(0x70 | ((j & 0xf0)>>4));
for(i=0;i<240;i++)
{
lcd_send_data(0);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -