📄 lcd-char.c
字号:
0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,
/*-- 文字: ] --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,
/*-- 文字: ; --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,
/*-- 文字: ' --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: , --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: . --45*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: / --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,
};
const prog_char hanzi[]=
{
/*-- 文字: 宁 --*/
/*-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x90,0x8C,0x84,0x84,0x84,0x85,0x86,0x84,0x84,0x84,0x84,0x94,0x8E,0x04,0x00,
0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 波 --*/
/*-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x10,0x60,0x01,0xE6,0x00,0xF8,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x18,0x08,0x00,
0x04,0x04,0xFF,0x40,0x30,0x8F,0x80,0x41,0x26,0x18,0x18,0x26,0x61,0xC0,0x40,0x00,
/*-- 文字: 单 --*/
/*-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0xF8,0x28,0x29,0x2E,0x2A,0xF8,0x28,0x2C,0x2B,0x2A,0xF8,0x00,0x00,0x00,
0x08,0x08,0x0B,0x09,0x09,0x09,0x09,0xFF,0x09,0x09,0x09,0x09,0x0B,0x08,0x08,0x00,
/*-- 文字: 片 --*/
/*-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x00,0xFE,0x10,0x10,0x10,0x10,0x10,0x1F,0x10,0x10,0x10,0x18,0x10,0x00,
0x80,0x40,0x30,0x0F,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,0x00,0x00,0x00,0x00,
/*-- 文字: 机 --*/
/*-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x08,0x08,0xC8,0xFF,0x48,0x88,0x08,0x00,0xFE,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,
0x04,0x03,0x00,0xFF,0x00,0x41,0x30,0x0C,0x03,0x00,0x00,0x00,0x3F,0x40,0x78,0x00,
/*-- 文字: 开 --*/
/*-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x40,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x42,0x00,
0x00,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 发 --*/
/*-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x10,0x3E,0x10,0x10,0xF0,0x9F,0x90,0x90,0x92,0x94,0x1C,0x10,0x10,0x10,0x00,
0x40,0x20,0x10,0x88,0x87,0x41,0x46,0x28,0x10,0x28,0x27,0x40,0xC0,0x40,0x00,0x00,
/*-- 文字: 网 --*/
/*-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0xFE,0x02,0x12,0x22,0xC2,0x22,0x1A,0x22,0x42,0x82,0x72,0x22,0xFE,0x00,0x00,
0x00,0x7F,0x08,0x04,0x03,0x00,0x03,0x0C,0x04,0x02,0x01,0x26,0x60,0x3F,0x00,0x00,
};
//---------------------------------------
//名称: 使用SPI接口写数据到LCD
//参数:dt:写入的数据 command: 1-数据/0-命令
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20090304
//-----------------------------------------
void LCD_write_byte(unsigned char dt, unsigned char command)
{
unsigned char i;
sce0;
if(command)
dc1;
else
dc0;
for(i=0;i<8;i++)
{
if(dt&0x80)
sdin1;
else
sdin0;
dt=dt<<1;
sclk0;
sclk1;
sclk0;
}
}
//---------------------------------------
//名称: 5110LCD初始化函数
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20090304
//-----------------------------------------
void LCD_init(void)
{
sce1;
res1;
_delay_us(200);
res0;
_delay_ms(20);
res1;
_delay_us(200);
LCD_write_byte(0x21,0);//LCD功能设置:芯片活动,水平寻址,使用扩展指令
LCD_write_byte(0xd0,0);//设置VOP值,室温下的编程范围为3.00-10.68
//Vlcd=3.06+(VOP)*0.06,本例VOP为0B0101 0000为十进制的80,Vlcd=7.86V
LCD_write_byte(0x20,0);//LCD功能设置:芯片活动,水平寻址,使用基本指令
LCD_write_byte(0x0C,0);//设定显示配置:普通模式
sce1;
}
//---------------------------------------
//名称: 设置坐标函数
//参数:X:0-83 Y:0-5
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20090304
//-----------------------------------------
void LCD_set_XY(unsigned char X, unsigned char Y)
{
LCD_write_byte(0x40 | Y, 0);// column
LCD_write_byte(0x80 | X, 0);// row
sce1;
}
//---------------------------------------
//名称: LCD清屏函数
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20090304
//-----------------------------------------
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);
}
}
sce1;
}
//---------------------------------------
//名称: 显示英文字符
//参数:c:显示的字符在font6x8表格中的位置
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20090304
//-----------------------------------------
void LCD_write_char(unsigned char c)
{
unsigned char line;
c-=32;
for (line=0; line<6; line++)
LCD_write_byte(pgm_read_byte(font6x8+c*6+line), 1);
}
//---------------------------------------
//名称: 英文字符串显示函数
//参数:*s:英文字符串指针
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20090304
//-----------------------------------------
void LCD_write_String(unsigned char X,unsigned char Y,char *s)
{
LCD_set_XY(X,Y);
while (*s)
{
LCD_write_char(*s);
s++;
}
}
//---------------------------------------
//名称: 写一个字符到LCD函数(8*16点阵)
//参数:row,page:写入字符的地址 c: 写入字符在shuzi表格中的位置
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20090304
void LCD_write_shu(unsigned char row, unsigned char page,unsigned char c) //row:列 page:页 dd:字符
{
unsigned char i;
LCD_set_XY(row*8, page);// 列,页
for(i=0; i<8;i++)
{
LCD_write_byte(pgm_read_byte(shuzi+c*16+i),1);
}
LCD_set_XY(row*8, page+1);// 列,页
for(i=8; i<16;i++)
{
LCD_write_byte(pgm_read_byte(shuzi+c*16+i),1);
}
sce1;
}
//---------------------------------------
//名称: 写一个汉字到LCD函数
//参数:x,y:写入汉字的地址 address: 写入汉字在han表格中的位置
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20090304
//-----------------------------------------
void LCD_write_hanzi(unsigned char row, unsigned char page,unsigned char c) //row:列 page:页 dd:字符
{
unsigned char i;
LCD_set_XY(row*8, page);// 列,页
for(i=0; i<16;i++)
{
LCD_write_byte(pgm_read_byte(hanzi+c*32+i),1);
}
LCD_set_XY(row*8, page+1);// 列,页
for(i=16; i<32;i++)
{
LCD_write_byte(pgm_read_byte(hanzi+c*32+i),1);
}
sce1;
}
//---------------------------------------
//名称: 主函数
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20090304
int main(void)
{
DDRC = 0x06;
PORTC = 0x06;
DDRD = 0xB8;
PORTD = 0xB8;
LCD_init(); //初始化LCD模块
LCD_clear(); //清屏幕
LCD_write_hanzi(0,0,0); //宁
LCD_write_hanzi(2,0,1); //波
LCD_write_hanzi(4,0,2); //单
LCD_write_hanzi(6,0,3); //片
LCD_write_hanzi(8,0,4); //机
LCD_write_hanzi(1,2,5); //开
LCD_write_hanzi(4,2,6); //发
LCD_write_hanzi(7,2,7); //网
LCD_write_String(1,4,"www.nbdpj.com"); //www.nbdpj.com
backled0; //开背光
while(1)
{
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -