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

📄 lcd_1565.c

📁 LPC2131的液晶显示程序
💻 C
字号:

/*-------------------------------------------------------
文件名称:LCD_1565.c
功能:1565系列LCD的驱动程序
时间:
作者:
-------------------------------------------------------*/
#include "lpc213x.h"
#include "LCD_1565.h"


//此LCD对应的数字点阵图
const uint8 ASCII[][6]={
{0x00,0x00,0x00,0x00,0x00,0x00},//SPACE

{0x00,0x00,0x00,0x4f,0x00,0x00},//!

{0x00,0x00,0x00,0x07,0x00,0x07},//"

{0x00,0x14,0x7f,0x14,0x7f,0x14},//#

{0x00,0x24,0x2a,0x7f,0x2a,0x12},//$

{0x00,0x23,0x13,0x08,0x62,0x61},//%

{0x00,0x36,0x49,0x55,0x22,0x50},//&

{0x00,0x00,0x00,0x05,0x03,0x00},//'

{0x00,0x00,0x1c,0x22,0x41,0x00},//(

{0x00,0x00,0x41,0x22,0x1c,0x00},//)

{0x18,0x5a,0x3c,0x3c,0x5a,0x18},//*

{0x00,0x08,0x08,0x3e,0x08,0x08},//+

{0x00,0x00,0x00,0x28,0x18,0x00},//,

{0x00,0x08,0x08,0x08,0x08,0x08},//-

{0x00,0x00,0x00,0x60,0x60,0x00},//.

{0x00,0x14,0x08,0x3e,0x08,0x14},// /

{0x00,0x3e,0x51,0x49,0x45,0x3e},//0

{0x00,0x00,0x42,0x7f,0x40,0x40},//1

{0x00,0x62,0x51,0x51,0x49,0x46},//2

{0x00,0x21,0x41,0x45,0x4b,0x31},//3

{0x00,0x18,0x14,0x12,0x7f,0x10},//4

{0x00,0x27,0x45,0x45,0x45,0x39},//5

{0x00,0x3c,0x4a,0x49,0x49,0x30},//6

{0x00,0x01,0x71,0x09,0x05,0x03},//7

{0x00,0x36,0x49,0x49,0x49,0x36},//8

{0x00,0x06,0x49,0x49,0x29,0x1e},//9

{0x00,0x00,0x36,0x36,0x00,0x00},//:

{0x00,0x00,0x56,0x36,0x00,0x00},//;

{0x00,0x08,0x14,0x22,0x41,0x00},//<

{0x00,0x14,0x14,0x14,0x14,0x14},//=

{0x00,0x00,0x41,0x22,0x14,0x08},//>

{0x00,0x02,0x01,0x51,0x09,0x06},//?

{0x00,0x3e,0x59,0x55,0x79,0x3e},//@

{0x00,0x7e,0x21,0x21,0x21,0x7e},//A

{0x00,0x7f,0x49,0x49,0x49,0x36},//B

{0x00,0x3e,0x41,0x41,0x41,0x22},//C

{0x00,0x7f,0x41,0x41,0x22,0x1c},//D

{0x00,0x7f,0x49,0x49,0x49,0x49},//E

{0x00,0x7f,0x09,0x09,0x09,0x01},//F

{0x00,0x3e,0x41,0x49,0x49,0x7a},//G

{0x00,0x7f,0x08,0x08,0x08,0x7f},//H

{0x00,0x41,0x7f,0x41,0x00,0x00},//I

{0x00,0x20,0x40,0x41,0x3f,0x01},//J

{0x00,0x7f,0x08,0x14,0x22,0x41},//K

{0x00,0x7f,0x40,0x40,0x40,0x40},//L

{0x00,0x7f,0x02,0x0c,0x02,0x7f},//M

{0x00,0x7f,0x04,0x08,0x10,0x7f},//N

{0x00,0x3e,0x41,0x41,0x41,0x3e},//O

{0x00,0x7f,0x09,0x09,0x09,0x06},//P

{0x00,0x3e,0x41,0x41,0x41,0x3e},//Q

{0x00,0x7f,0x09,0x19,0x29,0x46},//R

{0x00,0x46,0x49,0x49,0x49,0x31},//S

{0x00,0x01,0x01,0x7f,0x01,0x01},//T

{0x00,0x3f,0x40,0x40,0x40,0x3f},//U

{0x00,0x1f,0x20,0x40,0x20,0x1f},//V

{0x00,0x3f,0x40,0x38,0x40,0x3f},//W

{0x00,0x63,0x14,0x08,0x14,0x63},//X

{0x00,0x07,0x08,0x70,0x08,0x07},//Y

{0x00,0x61,0x51,0x49,0x45,0x43},//Z

{0x00,0x00,0x7f,0x41,0x41,0x00},//[

{0x00,0x01,0x02,0x08,0x10,0x20},//  \ 

{0x00,0x00,0x41,0x41,0x7f,0x00},//]

{0x00,0x04,0x02,0x01,0x02,0x04},//^

{0x00,0x40,0x40,0x40,0x40,0x40},//_

{0x00,0x00,0x01,0x02,0x04,0x00},//`

{0x00,0x20,0x54,0x54,0x54,0x7c},//a

{0x00,0x7f,0x48,0x44,0x44,0x38},//b

{0x00,0x38,0x44,0x44,0x44,0x20},//c

{0x00,0x38,0x44,0x44,0x48,0x7f},//d

{0x00,0x38,0x54,0x54,0x54,0x18},//e

{0x00,0x08,0x7e,0x09,0x01,0x02},//f

{0x00,0x0c,0x52,0x52,0x52,0x3e},//g

{0x00,0x7f,0x08,0x04,0x04,0x78},//h

{0x00,0x00,0x44,0x7d,0x40,0x00},//i

{0x00,0x40,0x40,0x44,0x3d,0x00},//j

{0x00,0x7f,0x10,0x28,0x44,0x00},//k

{0x00,0x00,0x41,0x7e,0x40,0x00},//l

{0x00,0x7c,0x04,0x18,0x04,0x78},//m

{0x00,0x7c,0x08,0x04,0x04,0x78},//n

{0x00,0x38,0x44,0x44,0x44,0x38},//o

{0x00,0x7c,0x14,0x14,0x14,0x08},//p

{0x00,0x08,0x14,0x14,0x14,0x7c},//q

{0x00,0x7c,0x08,0x04,0x04,0x08},//r

{0x00,0x48,0x54,0x54,0x54,0x20},//s

{0x00,0x04,0x3f,0x44,0x44,0x24},//t

{0x00,0x3c,0x40,0x40,0x20,0x7e},//u

{0x00,0x1d,0x20,0x40,0x20,0x1c},//v

{0x00,0x3c,0x40,0x30,0x40,0x3c},//w

{0x00,0x44,0x28,0x10,0x28,0x44},//x

{0x00,0x06,0x48,0x48,0x48,0x3e},//y

{0x00,0x44,0x64,0x54,0x4c,0x44},//z

{0x00,0x00,0x08,0x36,0x41,0x00},//{

{0x00,0x00,0x00,0x7e,0x00,0x00},//|

{0x00,0x00,0x41,0x36,0x08,0x00},//}

{0x00,0x04,0x08,0x04,0x08,0x04} //~
};


void InitLCD()
{
	LCD1565_SEL &= 0xFFFF00FF;    //通用功能
	LCD1565_DIR |= 0x0000FF00;    //输出
	LCD1565_DIR |= LCD1565_A0;
	LCD1565_DIR |= LCD1565_RW;
	LCD1565_DIR |= LCD1565_EN;
	WriteLCD(0,0xA1);
}

/*--------------------------------------------------------
功能描述:向LCD写一个命令或者8位数
参    数:data_comm
           = 1 : data
		   = 0 : command
		  content :发送的数据或指令,是一个8位无符号所整数
返    回:无
---------------------------------------------------------*/
void WriteLCD(uint8 data_comm,uint8 content)
{
	if(data_comm)
		LCD1565_SET = LCD1565_A0;                //数据
	else
		LCD1565_CLR = LCD1565_A0;                //指令

	LCD1565_CLR = LCD1565_RW;                    //写操作(0)
	LCD1565_SET = LCD1565_EN;                    //使能
	LCD1565_CLR = 0xFF00;                        //先清零
	LCD1565_SET = ((uint32)content << 8);        //发送数据
	LCD1565_SET = ((uint32)content << 8);        //冗余
	LCD1565_CLR = LCD1565_EN;                    //写入
	LCD1565_CLR = LCD1565_EN;                    //冗余
}

/*-----------------------------------------------------------------
功能描述:向液晶写一个字符,不设定行和列
参    数:symbol :要写的字符
------------------------------------------------------------------*/
void WriteSymbolLCD(uint8 symbol)
{
	uint8 i;
	
	if(symbol < ' ' || symbol > '~')          //超出显示范围
		return;
	symbol -= 32;
	for(i=0; i<6; i++)
	{
		WriteLCD(1,ASCII[symbol][i]);
	}
}

/*------------------------------------------------------
功能描述:向LCD一定的行和列写一个字符
参    数:page :设置行 0<= page <=7
         line :设置列 0<= line <=250
		 s  :要显示的数字 0<= num <=9
------------------------------------------------------*/
void WriteSymbolPLLCD(uint8 page,uint8 row,uint8 symbol)
{
	uint8 i;

	page %= 8;                        //最大页数是7
	row %= 123;                      //列最大是122
	if(symbol < ' ' || symbol > '~')  //超出显示范围
		return;
	WriteLCD(0,0xB0|page);          //设置行
	WriteLCD(0,0x10|(row>>4));      //设置列高位
	WriteLCD(0,row&0x0F);           //设置列低位

	symbol -= 32;	                       //算出在表中的下标
	for(i = 0; i < 6; i++)
	{
		WriteLCD(1,ASCII[symbol][i]);	
	}
}

/*----------------------------------------------------------------
功能描述:向液晶写一个字符串
参    数:
----------------------------------------------------------------*/
void WriteStrLCD(uint8 num,uint8 str[])
{
	uint8 i;
	
	for(i=0; i<num; i++)
	{
		WriteSymbolLCD(str[i]);	
	}
}

⌨️ 快捷键说明

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