lcdctrl.c

来自「msp430的 AD转换代码 完成msp430的转换功能」· C语言 代码 · 共 128 行

C
128
字号
#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 + =
减小字号Ctrl + -
显示快捷键?