📄 main.c
字号:
//DB0--DB7====P0.16--P0.23
//*********************************************************************
#include"lpc213x.h"
//*********************************************************************
#define CLR_LCD_DI IOCLR0=(1<<25); //P0.25
#define SET_LCD_DI IOSET0=(1<<25);
#define CLR_LCD_E IOCLR0=(1<<27); //P0.27
#define SET_LCD_E IOSET0=(1<<27);
#define CLR_LCD_CS1 IOCLR0=(1<<28); //P0.28
#define SET_LCD_CS1 IOSET0=(1<<28);
#define CLR_LCD_CS2 IOCLR0=(1<<29); //P0.29
#define SET_LCD_CS2 IOSET0=(1<<29);
//*********************************************************************
const U32 LCD_dot[]={
/*---转换字符 佛 ---*/
0x80,0x00,0x40,0x00,0x30,0x00,0xFC,0xFF,0x03,0x00,0xE4,0x81,0x24,0x61,0x24,0x19,
0xFF,0x07,0x24,0x01,0x24,0x01,0xFF,0xFF,0x24,0x09,0x3C,0x11,0x00,0x0F,0x00,0x00,
/*---转换字符 山 ---*/
0x00,0x00,0x00,0x20,0xE0,0x7F,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0xFF,0x3F,
0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0xE0,0x7F,0x00,0x00,0x00,0x00,
/*---转换字符 市 ---*/
0x04,0x00,0x04,0x00,0x04,0x00,0xE4,0x3F,0x24,0x00,0x24,0x00,0x25,0x00,0xFE,0xFF,
0x24,0x00,0x24,0x00,0x24,0x10,0x24,0x20,0xE4,0x1F,0x04,0x00,0x04,0x00,0x00,0x00,
/*---转换字符 华 ---*/
0x20,0x00,0x10,0x04,0x08,0x04,0xFC,0x05,0x03,0x04,0x02,0x04,0x10,0x04,0x10,0xFF,
0x7F,0x04,0x88,0x04,0x88,0x04,0x84,0x04,0x86,0x04,0xE4,0x04,0x00,0x04,0x00,0x00,
/*---转换字符 运 ---*/
0x40,0x40,0x41,0x20,0xCE,0x1F,0x04,0x20,0x00,0x28,0x20,0x4C,0x22,0x4A,0xA2,0x49,
0x62,0x48,0x22,0x4C,0xA2,0x44,0x22,0x45,0x22,0x5E,0x22,0x4C,0x20,0x40,0x00,0x00,
/*---转换字符 科 ---*/
0x10,0x04,0x12,0x02,0x92,0x01,0x72,0x00,0xFE,0xFF,0x51,0x00,0x91,0x04,0x00,0x04,
0x22,0x04,0xCC,0x02,0x00,0x02,0x00,0x02,0xFF,0xFF,0x00,0x01,0x00,0x01,0x00,0x00,
/*---转换字符 技 ---*/
0x08,0x01,0x08,0x41,0x88,0x80,0xFF,0x7F,0x48,0x00,0x28,0x40,0x00,0x40,0xC8,0x20,
0x48,0x13,0x48,0x0C,0x7F,0x0C,0x48,0x12,0xC8,0x21,0x48,0x60,0x08,0x20,0x00,0x00,
/*---转换字符 有 ---*/
0x00,0x02,0x04,0x01,0x84,0x00,0x44,0x00,0xE4,0xFF,0x34,0x09,0x2C,0x09,0x27,0x09,
0x24,0x29,0x24,0x49,0x24,0xC9,0xE4,0x7F,0x04,0x00,0x04,0x00,0x04,0x00,0x00,0x00,
/*---转换字符 限 ---*/
0xFE,0xFF,0x02,0x00,0x32,0x02,0x4E,0x04,0x82,0x03,0x00,0x00,0xFE,0xFF,0x4A,0x40,
0xCA,0x20,0x4A,0x03,0x4A,0x0C,0x4A,0x12,0x7E,0x21,0x00,0x60,0x00,0x20,0x00,0x00,
/*---转换字符 公 ---*/
0x00,0x00,0x00,0x01,0x80,0x20,0x40,0x70,0x30,0x28,0x0E,0x24,0x84,0x23,0x00,0x31,
0x00,0x10,0x0E,0x10,0x10,0x14,0x60,0x78,0xC0,0x30,0x80,0x01,0x80,0x00,0x00,0x00,
/*---转换字符 司 ---*/
0x00,0x00,0x10,0x00,0x92,0x1F,0x92,0x04,0x92,0x04,0x92,0x04,0x92,0x04,0x92,0x04,
0x92,0x04,0x92,0x0F,0x12,0x00,0x02,0x20,0x02,0x40,0xFE,0x3F,0x00,0x00,0x00,0x00,};
//*************************************************************************
void DelayNS (U32 dly) //延时10mS?
{
U32 i;
for(;dly>0;dly--)
for(i=0;i<50;i++);
}
void LCD_sendcommand (U32 m_s, U32 command) //写指令子程序
{
if(m_s&1) //左半屏
{
CLR_LCD_E
CLR_LCD_DI
SET_LCD_CS1
CLR_LCD_CS2
IOCLR0=(0xFF<<16);//D0-D7数据总线输出低
IOSET0=(command<<16);//D0-D7数据总线输出高
DelayNS(1);
SET_LCD_E
DelayNS(1);
CLR_LCD_E
}
if(m_s&2) //右半屏
{
CLR_LCD_E
CLR_LCD_DI
SET_LCD_CS2
CLR_LCD_CS1
IOCLR0=(0xFF<<16);
IOSET0=(command<<16);
DelayNS(1);
SET_LCD_E
DelayNS(1);
CLR_LCD_E
}
DelayNS(3);
}
void LCD_senddata(U32 m_s, U32 command) //写数据子程序
{
if(m_s&1) //左半屏
{
CLR_LCD_E
SET_LCD_DI
SET_LCD_CS1
CLR_LCD_CS2
IOCLR0=(0xFF<<16);
IOSET0=(command<<16);
DelayNS(1);
SET_LCD_E
DelayNS(1);
CLR_LCD_E
}
if(m_s&2) //右半屏
{
CLR_LCD_E
SET_LCD_DI
SET_LCD_CS2
CLR_LCD_CS1
IOCLR0=(0xFF<<16);
IOSET0=(command<<16);
DelayNS(1);
SET_LCD_E
DelayNS(1);
CLR_LCD_E
}
DelayNS(3);
}
void LCD_setXaddr(U32 m_s, U32 x)
{
LCD_sendcommand(m_s,0xB8+x);
}
void LCD_setYaddr(U32 m_s, U32 y)
{
LCD_sendcommand(m_s,0x40+y);
}
void LCD_clean(void)
{
U32 row,i;
for(row=0;row<8;row++)
{
LCD_sendcommand(3,0xB8+row);
LCD_sendcommand(3,0x40);
for(i=64;i>0;i--)
{ LCD_senddata(3,0x00);
DelayNS(1);
}
}
}
void LCD_show(void)
{
U32 x,p,n,y;
p=0;
for(n=40;n<88;n++)
{
for(x=0;x<2;x++)
{
if(n<64){
LCD_setXaddr(1,x);
LCD_setYaddr(1,n);
LCD_senddata(1,LCD_dot[p]);
}
if(n>=64){
LCD_setXaddr(2,x);
LCD_setYaddr(2,n-64);
LCD_senddata(2,LCD_dot[p]);
}
p++;
}
}
for(y=0;y<128;y++)
{
for(x=4;x<6;x++)
{
if(y<64){
LCD_setXaddr(1,x);
LCD_setYaddr(1,y);
LCD_senddata(1,LCD_dot[p]);
}
if(y>=64){
LCD_setXaddr(2,x);
LCD_setYaddr(2,y-64);
LCD_senddata(2,LCD_dot[p]);
}
p++;
}
}
}
int main(void)
{U32 a=0xffff;
PINSEL2=PINSEL2&(~0x0C);
IODIR1=(a<<16);
LCD_sendcommand(3, 0x3F);
LCD_sendcommand(3, 0xC0);
LCD_clean();
LCD_show();
while(1);
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -