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

📄 5110lcd.c

📁 MSP430控制VS1003播放SD卡中的音乐
💻 C
字号:

/*********************************************************

        +-----------------------------------------+
        |              5110lcd模块                |
        +-----------------------------------------+
程序默认IO连接方式:
sce-P6.0;  res-P6.1;  dc-P6.2;  sdin-P6.3;  sclk-P6.4;
5110lcd的底层驱动程序,主控芯片为msp340-149;
其他的微处理器,只需稍加修改即可适用;

             ->产品咨询 QQ:461693690 
		       MSN:ly461693690@hotmail.com
	                    
说明:5110lcd模块 通过测试,确保其正确性与稳定性,请放心使用,
      			  
***********************************************************/

#include"english_6x8_pixel.h"
unsigned char  hanzi[]=
{
/*--  文字:  系  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
0x00,0x02,0x4A,0xCA,0x6E,0xDA,0x49,0xC9,0x65,0x41,0x00,0x00,0x04,0x02,0x01,0x04,
0x04,0x07,0x00,0x00,0x01,0x02,0x04,0x00,
/*--  文字:  统  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
0x48,0x6C,0x5B,0x4C,0x00,0x32,0xEA,0x27,0xE2,0x32,0x22,0x00,0x02,0x02,0x01,0x05,
0x04,0x02,0x01,0x00,0x07,0x04,0x07,0x00,
/*--  文字:  初  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
0x44,0x24,0xF7,0x2C,0x50,0x02,0xC2,0x3E,0x02,0x02,0xFE,0x00,0x00,0x00,0x07,0x00,
0x04,0x02,0x01,0x04,0x04,0x06,0x01,0x00,
/*--  文字:  始  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
0x84,0xFC,0x07,0xFC,0x04,0x18,0xD4,0x53,0x50,0x54,0xD8,0x00,0x04,0x02,0x01,0x01,
0x02,0x00,0x07,0x02,0x02,0x02,0x07,0x00,
/*--  文字:  化  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
0x20,0x10,0xFC,0x83,0x80,0x40,0xFF,0x20,0x10,0x0C,0x00,0x00,0x00,0x00,0x07,0x00,
0x00,0x00,0x07,0x04,0x04,0x04,0x07,0x00,
/*--  文字:  …  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
0x00,0x60,0x60,0x00,0x00,0x60,0x60,0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*--  文字:  失  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
0x20,0x30,0x2E,0x24,0xA4,0x7F,0xA4,0x24,0x24,0x24,0x20,0x00,0x04,0x04,0x02,0x01,
0x00,0x00,0x00,0x01,0x02,0x04,0x04,0x00,
/*--  文字:  败  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
0xFF,0x01,0xFD,0x01,0xFF,0x10,0x7C,0x87,0x84,0x7C,0x04,0x00,0x04,0x03,0x00,0x01,
0x02,0x04,0x02,0x01,0x01,0x02,0x04,0x00,
/*--  文字:  音  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
0x10,0x12,0xD2,0x56,0x5A,0x53,0x5A,0x56,0xD2,0x12,0x10,0x00,0x00,0x00,0x07,0x05,
0x05,0x05,0x05,0x05,0x07,0x00,0x00,0x00,
/*--  文字:  乐  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
0x00,0x30,0xAE,0x62,0x22,0x22,0xFD,0x61,0xA1,0x30,0x20,0x00,0x02,0x01,0x00,0x00,
0x04,0x04,0x07,0x00,0x00,0x01,0x02,0x00,
/*--  文字:  播  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
0x84,0x44,0xFF,0x44,0xEA,0x5E,0x4A,0xFF,0x59,0xED,0x48,0x00,0x04,0x04,0x07,0x00,
0x07,0x05,0x05,0x07,0x05,0x07,0x00,0x00,
/*--  文字:  放  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
0x04,0xFC,0x15,0x16,0xF4,0x04,0x18,0x67,0x84,0x7C,0x04,0x00,0x06,0x01,0x02,0x02,
0x03,0x04,0x02,0x01,0x01,0x02,0x04,0x00,
/*--  文字:  中  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
0x00,0x7C,0x44,0x44,0x44,0xFF,0x44,0x44,0x44,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,










  
};

void delayms(unsigned  int ii)//1ms延时函数
{
	unsigned int i,x;
	for (x=0;x<ii;x++)
	{
	for (i=0;i<100;i++);
	}
}

/*--------------------------------------------
LCD_write_byte: 使用SPI接口写数据到LCD
输入参数:dt:写入的数据;
command :写数据/命令选择;
编写日期:2010-12-07 
----------------------------------------------*/
void LCD_write_byte(unsigned char dt, unsigned char command)
{
	unsigned char i; 
	 P6OUT &=~(1<<0); 
         if(command==1)
	    P6OUT|=(1<<2);
         else
           P6OUT&=~(1<<2);
	for(i=0;i<8;i++)
	{ 
		if(dt&0x80)
		 P6OUT |=(1<<3);
		else
		 P6OUT &=~(1<<3);
		 dt=dt<<1;		
		 P6OUT &=~(1<<4);	
		 P6OUT |=(1<<4);
	}	
	P6OUT |=(1<<2);
	P6OUT |=(1<<0); 
	P6OUT |=(1<<3);
}
/*---------------------------------------
LCD_init: 3310/5110LCD初始化
编写日期:2010-12-07 
-----------------------------------------  */
void LCD_init(void)
{       
	P6OUT &=~(1<<1); 	
  	delayms(10);
  	P6OUT |=(1<<1);
	LCD_write_byte(0x21,0);//初始化Lcd,功能设定使用扩充指令
	LCD_write_byte(0xC6,0);//设定液晶偏置电压
	LCD_write_byte(0x06,0);//温度校正
  	LCD_write_byte(0x13,0);;//1:48
	LCD_write_byte(0x20,0);//使用基本指令
	LCD_write_byte(0x0c,0);//设定显示模式,正常显示
}
/*-------------------------------------------
LCD_set_XY: 设置LCD坐标函数
输入参数:X:0-83  Y:0-5
编写日期:2010-12-07 
---------------------------------------------*/
void LCD_set_XY(unsigned char X, unsigned char Y)
{
	LCD_write_byte(0x40 | Y, 0);// column
	LCD_write_byte(0x80 | X, 0);// row
} 
/*------------------------------------------
LCD_clear: LCD清屏函数
编写日期:2010-12-07 
--------------------------------------------*/
void LCD_clear(void)
{
	unsigned char t;
	unsigned char k;
	LCD_set_XY(0,0);
	for(t=0;t<6;t++)
	{ 
		for(k=0;k<84;k++)
		{ 
			LCD_write_byte(0x00,1);
				
		} 
	}
}
/*---------------------------------------------
LCD_write_hanzi: 显示12(宽)*16(高)点阵列汉字等半角类
输入参数:c:显示的字符;
编写日期:2010-12-07 
-----------------------------------------------*/
void LCD_write_hanzi(unsigned char row, unsigned char page,unsigned char c) //row:列 page:页 W: 子宽/2    L: 字符数组长 C:字符
{
	unsigned char i;  	
	
	LCD_set_XY(row*6, page);// 列,行 
	for(i=0; i<12;i++) 
	{
		LCD_write_byte(hanzi[c*24+i],1); 
	}
	
        LCD_set_XY(row*6, page+1);// 列,行  
	for(i=12; i<24;i++) 
	{
		LCD_write_byte(hanzi[c*24+i],1);
	}	
}
/*-----------------------------------------------------------------------
LCD_write_char    : 显示英文字符

输入参数:c       :显示的字符;
-----------------------------------------------------------------------*/
void LCD_write_char(unsigned char c)
  {
    unsigned char line;

    c -= 32;

    for (line=0; line<6; line++)
      LCD_write_byte(font6x8[c][line], 1);
  }

/*-----------------------------------------------------------------------
LCD_write_english_String  : 英文字符串显示函数

输入参数:*s      :英文字符串指针;
          X、Y    : 显示字符串的位置,x 0-83 ,y 0-5
-----------------------------------------------------------------------*/
void LCD_write_english_string(unsigned char X,unsigned char Y,char *s)
  {
    LCD_set_XY(X,Y);
    while (*s) 
      {
	 LCD_write_char(*s);
	 s++;
      }
  }
/***********************************
变量数字值显示
输入参数:s      :数值变量;
          X、Y    : 显示字符串的位置,x 0-83 ,y 0-5
***********************************/
void LCD_write_shuzi(unsigned char X,unsigned char Y,char s)       
{unsigned char line;
    LCD_set_XY(X,Y);
    
     
	 for (line=0; line<6; line++)
          LCD_write_byte(font6x8[s+16][line], 1);   
}
/*............................................................
液晶模块初始化
............................................................*/
void lcd_init()
{       unsigned char k;
        P6DIR = 0XFF;
	P6OUT &=~(1<<0); 
	P6OUT &=~(1<<1);
	for(k=0;k<250;k++);
	P6OUT |=(1<<1);
	LCD_init();  //初始化LCD模块 
	LCD_clear(); //清屏幕
}	

⌨️ 快捷键说明

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