📄 lcd320x240.c
字号:
0x00,0x00,0x00,0x7C,0x10,0x10,0x10,0x10,
0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,
//*-- 文字: J --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0x3E,0x08,0x08,0x08,0x08,
0x08,0x08,0x08,0x08,0x08,0x08,0x88,0xF0,
//*-- 文字: K --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0xEE,0x44,0x48,0x50,0x70,
0x50,0x48,0x48,0x44,0x44,0xEE,0x00,0x00,
//*-- 文字: L --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0xE0,0x40,0x40,0x40,0x40,
0x40,0x40,0x40,0x40,0x42,0xFE,0x00,0x00,
//*-- 文字: M --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0xEE,0x6C,0x6C,0x6C,0x6C,
0x54,0x54,0x54,0x54,0x54,0xD6,0x00,0x00,
//*-- 文字: N --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0xC7,0x62,0x62,0x52,0x52,
0x4A,0x4A,0x4A,0x46,0x46,0xE2,0x00,0x00,
//*-- 文字: O --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0x38,0x44,0x82,0x82,0x82,
0x82,0x82,0x82,0x82,0x44,0x38,0x00,0x00,
//*-- 文字: P --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0xFC,0x42,0x42,0x42,0x42,
0x7C,0x40,0x40,0x40,0x40,0xE0,0x00,0x00,
//*-- 文字: Q --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0x38,0x44,0x82,0x82,0x82,
0x82,0x82,0xB2,0xCA,0x4C,0x38,0x06,0x00,
//*-- 文字: R --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0xFC,0x42,0x42,0x42,0x7C,
0x48,0x48,0x44,0x44,0x42,0xE3,0x00,0x00,
//*-- 文字: S --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0x3E,0x42,0x42,0x40,0x20,
0x18,0x04,0x02,0x42,0x42,0x7C,0x00,0x00,
//*-- 文字: T --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0xFE,0x92,0x10,0x10,0x10,
0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,
//*-- 文字: U --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0xE7,0x42,0x42,0x42,0x42,
0x42,0x42,0x42,0x42,0x42,0x3C,0x00,0x00,
//*-- 文字: V --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0xE7,0x42,0x42,0x44,0x24,
0x24,0x28,0x28,0x18,0x10,0x10,0x00,0x00,
//*-- 文字: W --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0xD6,0x92,0x92,0x92,0x92,
0xAA,0xAA,0x6C,0x44,0x44,0x44,0x00,0x00,
//*-- 文字: X --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0xE7,0x42,0x24,0x24,0x18,
0x18,0x18,0x24,0x24,0x42,0xE7,0x00,0x00,
//*-- 文字: Y --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0xEE,0x44,0x44,0x28,0x28,
0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,
//*-- 文字: Z --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0x7E,0x84,0x04,0x08,0x08,
0x10,0x20,0x20,0x42,0x42,0xFC,0x00,0x00
};
//================================================
const unsigned int HZ16_DOT_LIB[ ]__attribute__ ((space(auto_psv)))=
{
//*-- 文字: 江 --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x20,0x00,0x10,0x00,0x13,0xFC,0x00,0x40,
0x88,0x40,0x48,0x40,0x50,0x40,0x10,0x40,
0x10,0x40,0x20,0x40,0xE0,0x40,0x20,0x40,
0x20,0x40,0x2F,0xFE,0x20,0x00,0x00,0x00,
//*-- 文字: 苏 --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x04,0x40,0x04,0x40,0xFF,0xFE,0x04,0x40,
0x05,0x40,0x01,0x00,0x3F,0xF0,0x01,0x10,
0x13,0x10,0x12,0x14,0x36,0x12,0x24,0x12,
0x08,0x10,0x10,0x90,0x60,0x60,0x00,0x00,
//*-- 文字: 科 --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x06,0x08,0x78,0x88,0x08,0x48,0x08,0x48,
0xFE,0x08,0x18,0x88,0x1C,0x48,0x2A,0x48,
0x28,0x0E,0x48,0x78,0x8B,0x88,0x08,0x08,
0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
//*-- 文字: 技 --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x10,0x20,0x10,0x20,0x10,0x20,0xFD,0xFE,
0x10,0x20,0x14,0x20,0x19,0xFC,0x31,0x08,
0xD0,0x88,0x10,0x90,0x10,0x60,0x10,0x60,
0x10,0x90,0x11,0x0E,0x56,0x04,0x20,0x00,
//*-- 文字: 大 --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
0x01,0x00,0xFF,0xFE,0x01,0x00,0x02,0x80,
0x02,0x80,0x02,0x40,0x04,0x40,0x04,0x20,
0x08,0x10,0x10,0x18,0x20,0x0E,0x40,0x04,
//*-- 文字: 学 --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x01,0x08,0x10,0x8C,0x0C,0xC8,0x08,0x90,
0x7F,0xFE,0x40,0x04,0x8F,0xE8,0x00,0x40,
0x00,0x80,0x7F,0xFE,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x02,0x80,0x01,0x00,
//*-- 文字: 电 --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x01,0x00,0x01,0x00,0x01,0x00,0x3F,0xF8,
0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08,
0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08,
0x01,0x02,0x01,0x02,0x00,0xFE,0x00,0x00,
//*-- 文字: 信 --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x08,0x80,0x0C,0x60,0x18,0x40,0x17,0xFE,
0x30,0x00,0x33,0xF8,0x50,0x00,0x93,0xF8,
0x10,0x00,0x13,0xF8,0x12,0x08,0x12,0x08,
0x12,0x08,0x13,0xF8,0x12,0x08,0x00,0x00,
//*-- 文字: 学 --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x01,0x08,0x10,0x8C,0x0C,0xC8,0x08,0x90,
0x7F,0xFE,0x40,0x04,0x8F,0xE8,0x00,0x40,
0x00,0x80,0x7F,0xFE,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x02,0x80,0x01,0x00,
//*-- 文字: 院 --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x80,0xF8,0x40,0x8F,0xFE,0x94,0x04,
0xA0,0x00,0xA3,0xF8,0x90,0x00,0x88,0x00,
0x8F,0xFE,0xA9,0x20,0x91,0x20,0x81,0x20,
0x82,0x22,0x82,0x22,0x84,0x22,0x88,0x1E,
//*-- 文字: 应 --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x01,0x00,0x00,0x80,0x3F,0xFC,0x20,0x00,
0x22,0x00,0x21,0x08,0x30,0x8C,0x28,0xC8,
0x24,0x90,0x24,0x90,0x26,0x20,0x44,0x20,
0x40,0x40,0x5F,0xFE,0x80,0x00,0x00,0x00,
//*-- 文字: 用 --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x1F,0xFC,0x10,0x84,0x10,0x84,
0x10,0x84,0x1F,0xFC,0x10,0x84,0x10,0x84,
0x10,0x84,0x1F,0xFC,0x10,0x84,0x10,0x84,
0x20,0x84,0x20,0x84,0x40,0x94,0x80,0x88,
//*-- 文字: 电 --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x01,0x00,0x01,0x00,0x01,0x00,0x3F,0xF8,
0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08,
0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08,
0x01,0x02,0x01,0x02,0x00,0xFE,0x00,0x00,
//*-- 文字: 子 --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x3F,0xF0,0x00,0x20,0x00,0x40,
0x00,0x80,0x01,0x00,0x01,0x00,0x01,0x04,
0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,
0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00,
//*-- 文字: 中 --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x01,0x00,0x01,0x00,0x21,0x08,0x3F,0xFC,
0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,
0x21,0x08,0x3F,0xF8,0x21,0x08,0x01,0x00,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
//*-- 文字: 心 --*/
//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x02,0x00,0x01,0x00,0x00,0x80,0x00,0xC0,
0x08,0x80,0x08,0x00,0x08,0x10,0x48,0x08,
0x48,0x04,0x48,0x06,0x88,0x04,0x08,0x10,
0x08,0x10,0x08,0x10,0x07,0xF0,0x00,0x00
}
//================================================
// 接口设置
// 8位数据 :(DB0--DB7)
// 输出口 PA0--PA7
// 控制信号:(SEL,RESET,RD,WR,C/D,CS)
// 输出口 PB0--PB5
//================================================
void LCD_init(void)
{
/* set initial states for the data and control pins */
ODCD|=0x0FFF;
LATD &= 0xFFFF;
RD = 1; // RD state set High
WR = 1; // WR state set High
RS = 1; // RS state set High
E = 1; // E state set High
RSset= 1;
Wway= 1;
/* set data and control pins to outputs */
TRISD &= 0xC000;
RD_TRIS = 0; // RD pin set as output
WR_TRIS = 0; // WR pin set as output
RS_TRIS = 0; // RS pin set as output
E_TRIS = 0; // E pin set as output
RSset_TRIS = 0; // RSset pin set as output
Wway_TRIS = 0; // Wway pin set as output
}
//=================================================
// set p_IOB input
//=================================================
void set_DB_in(void)
{
LATD|= 0x00FF;
TRISE|= 0x00FF;
}
void set_DB_out(void)
{
ODCD|=0x00FF;
TRISE &= 0xFF00;
}
//===============================================
//===============================================
void Reset_lcd(void)
{
unsigned int i;
//------------------------------
Wway=0; //8080方式
RSset=0; //reset=0
//------------------------------
for(i=2;i>0;i--)
{
Nop();
ClrWdt();
}
RSset=1; //reset=1
}
//**********************************************
// write one command ro lcd
// 写命令
//==============================================
void write_lcd_command(unsigned int a)
{
unsigned int i;
//=================================
DATAPORT=a&0x00ff;
//=================================
//=================================
E=0; // ce=0 pa5
RS=1; // c/d=1 pb4
RD=1; // rd=1 pb2
WR=0; // wr=0 pb3
for(i=2;i>0;i--)
{
ClrWdt();
}
WR=1; // wr=1
E=1; // ce=1 pb5
//=================================
}
//*********************************************
// write one data to lcd
// 写数据
//*********************************************
void write_lcd_data(unsigned int a)
{
unsigned int i;
//=============================
DATAPORT=a&0x00ff;
//==============================
E=0; // ce=0 pb5
RS=0; // c/d=0 pb4
RD=1; // rd=1 pb2
//=================================
WR=0; // wr=0 pb3
for(i=2;i>0;i--)
{
ClrWdt();
}
WR=1; // wr=1
E=1; // ce=1 pb5
}
//==================================================
unsigned int read_lcd_data(void)
{
unsigned int i,data4;
//==============================
set_DB_in();
//==============================
E=0; // ce=0 pb5
RS=1; // c/d=1 pb4
WR=1; // wr=1 pb3
//==============================
RD=0; // rd=0 pb2
//==============================
for(i=2;i>0;i--)
{
ClrWdt();
}
//=================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -