标题:
lcd12864点阵液晶-无字库 显示 单片机程序源代码
[打印本页]
作者:
liuda
时间:
2015-1-21 21:47
标题:
lcd12864点阵液晶-无字库 显示 单片机程序源代码
今天终于把点阵液晶显示出汉字了,自学太吃力,点阵遭遇经历差点把我打击的放弃了,这些时间心里真是很矛盾,当我看到单片机真是既爱又怕,就;连这个简单的液晶驱动在看了很多资料,无数次改写程序都是失败结局.每次新的思路闪现总让我兴奋,但结果都很失望...........
呵呵,今天的小进步做为给自己鼓励, 希望自己如蜗牛般急驰学习单片机!坚持.....坚持.....
/本程序为LM12864L系列显示程序#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define lcd_bus P0
sbit RS = P2^5;
sbit RW = P2^4;
sbit E = P2^3;
sbit Cs1 = P2^0;
sbit Cs2 = P2^1;
sbit _RST = P2^2; //定义端口
uchar code dis[][32]={ //-- 单 --
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,
//-- 片 --
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,
//-- 机 --
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,
//-- 是 --
0x80,0x80,0x80,0x80,0xBE,0xAA,0xAA,0xAA,
0xAA,0xAA,0xAA,0xBE,0x80,0x80,0x80,0x00,
0x00,0x40,0x20,0x10,0x0E,0x10,0x20,0x3F,
0x44,0x44,0x44,0x44,0x44,0x40,0x40,0x00,
//-- 我 --
0x20,0x20,0x22,0x22,0xFE,0x21,0x21,0x20,
0x20,0xFF,0x20,0x22,0xAC,0x20,0x20,0x00,
0x04,0x04,0x42,0x82,0x7F,0x01,0x01,0x10,
0x10,0x08,0x07,0x1A,0x21,0x40,0xF0,0x00,
//-- 们 --
0x80,0x40,0xF0,0x1C,0x03,0xF0,0x01,0x0E,
0x04,0x00,0x04,0x04,0x04,0xFC,0x00,0x00,
0x00,0x00,0x7F,0x00,0x00,0x7F,0x00,0x00,
0x00,0x00,0x00,0x20,0x40,0x3F,0x00,0x00,
//-- 的 --
0x00,0xF8,0x8C,0x8B,0x88,0xF8,0x40,0x30,
0x8F,0x08,0x08,0x08,0x08,0xF8,0x00,0x00,
0x00,0x7F,0x10,0x10,0x10,0x3F,0x00,0x00,
0x00,0x03,0x26,0x40,0x20,0x1F,0x00,0x00,
//-- 好 --
0x10,0x10,0xF0,0x1F,0x10,0xF0,0x80,0x82,
0x82,0x82,0xF2,0x8A,0x86,0x82,0x80,0x00,
0x80,0x43,0x22,0x14,0x0C,0x73,0x20,0x00,
0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,
//-- 朋 --
0x00,0x00,0xFE,0x92,0x92,0x92,0xFE,0x00,
0x00,0xFE,0x92,0x92,0x92,0xFE,0x00,0x00,
0x40,0x30,0x0F,0x00,0x20,0x40,0x3F,0x40,
0x30,0x0F,0x00,0x20,0x40,0x3F,0x00,0x00,
//-- 友 --
0x08,0x08,0x08,0x08,0x08,0xC8,0x7F,0x48,
0x48,0x48,0x48,0xC8,0x08,0x08,0x08,0x00,
0x40,0x20,0x90,0x88,0x46,0x41,0x21,0x12,
0x0C,0x0C,0x13,0x20,0x60,0xC0,0x40,0x00,
//-- 很 --
0x10,0x88,0xC4,0x23,0x1A,0x00,0xFE,0x4A,
0x4A,0xCA,0x4A,0x4A,0x7E,0x00,0x00,0x00,
0x01,0x00,0xFF,0x00,0x00,0x40,0xFF,0x40,
0x20,0x13,0x04,0x1A,0x33,0x62,0x20,0x00,
//-- 想 --
0x08,0xC8,0x38,0xFF,0x18,0x68,0x08,0x00,
0xFE,0x2A,0x2A,0x2A,0x2A,0xFE,0x00,0x00,
0x01,0x40,0x70,0x01,0x38,0x40,0x40,0x44,
0x59,0x41,0x41,0x61,0x01,0x09,0x30,0x00,
//-- 掌 --
0x00,0x0C,0x04,0x05,0x76,0x54,0x54,0x57,
0x54,0x54,0x76,0x05,0x04,0x0C,0x04,0x00,
0x00,0x10,0x15,0x15,0x15,0x55,0x95,0x7F,
0x15,0x15,0x15,0x15,0x14,0x10,0x00,0x00,
//-- 握 --
0x08,0x08,0xFF,0x88,0x48,0x00,0xFE,0x2A,
0xAA,0x6A,0x2A,0x2A,0xAA,0x2E,0x20,0x00,
0x42,0x81,0x7F,0x00,0x40,0x30,0x4F,0x49,
0x49,0x49,0x7F,0x49,0x49,0x4B,0x40,0x00,
//-- 这 --
0x40,0x42,0x44,0xCC,0x00,0x08,0x28,0x48,
0x89,0x0E,0xCA,0x38,0x08,0x08,0x00,0x00,
0x80,0x40,0x20,0x1F,0x20,0x40,0x50,0x48,
0x44,0x43,0x44,0x48,0x50,0x40,0x40,0x00,
//-- 门 --
0x00,0x00,0xF8,0x01,0x06,0x00,0x02,0x02,
0x02,0x02,0x02,0x02,0x02,0xFE,0x00,0x00,
0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,
//-- 知 --
0x40,0xA0,0x98,0x8F,0x88,0xF8,0x88,0x88,
0x00,0xF8,0x08,0x08,0x08,0xF8,0x00,0x00,
0x80,0x40,0x20,0x18,0x07,0x02,0x04,0x18,
0x00,0x7F,0x10,0x10,0x10,0x3F,0x00,0x00,
//-- 识 --
0x40,0x41,0x4E,0xC4,0x00,0x00,0x00,0xFE,
0x82,0x82,0x82,0x82,0xFE,0x00,0x00,0x00,
0x00,0x00,0x00,0x7F,0x20,0x90,0x40,0x30,
0x0E,0x00,0x00,0x02,0x0C,0x70,0x20,0x00,
//-- 书 --
0x80,0x80,0x88,0x88,0x88,0x88,0xFF,0x88,
0x88,0x88,0x88,0xFA,0x84,0x9C,0x08,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,
0x00,0x10,0x20,0x40,0x30,0x0F,0x00,0x00,
//-- 山 --
0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0xFF,
0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,
0x00,0x20,0x7F,0x20,0x20,0x20,0x20,0x3F,
0x20,0x20,0x20,0x20,0x20,0x7F,0x00,0x00,
//-- 有 --
0x00,0x04,0x84,0x44,0xE4,0x34,0x2C,0x27,
0x24,0x24,0x24,0xE4,0x04,0x04,0x04,0x00,
0x02,0x01,0x00,0x00,0xFF,0x09,0x09,0x09,
0x29,0x49,0xC9,0x7F,0x00,0x00,0x00,0x00,
//-- 路 --
0x00,0x7E,0x22,0xE2,0x3E,0x20,0x10,0x08,
0x0F,0xB4,0x44,0xA4,0x9C,0x04,0x00,0x00,
0x20,0x3F,0x20,0x1F,0x11,0x11,0x02,0x7F,
0x23,0x22,0x22,0x22,0x7E,0x03,0x01,0x00,
//-- 勤 --
0x04,0x04,0xC4,0x5F,0x54,0xF4,0x54,0x5F,
0xC4,0x14,0x10,0xFF,0x10,0x10,0xF0,0x00,
0x00,0x80,0x95,0x95,0x95,0x7F,0x55,0x55,
0x95,0x60,0x1C,0x03,0x20,0x60,0x3F,0x00,
//-- 为 --
0x00,0x10,0x10,0x12,0x14,0x1C,0x10,0xF0,
0x9F,0x10,0x10,0x10,0x10,0xF8,0x10,0x00,
0x00,0x00,0x40,0x20,0x10,0x08,0x06,0x01,
0x00,0x11,0x26,0x40,0x20,0x1F,0x00,0x00,
//-- 径 --
0x10,0x88,0xC4,0x73,0xA2,0x80,0x42,0x42,
0x22,0x12,0x2A,0x26,0x42,0xC0,0x80,0x00,
0x01,0x00,0xFF,0x00,0x40,0x41,0x41,0x41,
0x41,0x7F,0x41,0x41,0x41,0x41,0x40,0x00,
//-- 学 --
0x40,0x30,0x10,0x12,0x5C,0x54,0x50,0x51,
0x5E,0xD4,0x50,0x18,0x57,0x32,0x10,0x00,
0x00,0x02,0x02,0x02,0x02,0x02,0x42,0x82,
0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x00,
//-- 海 --
0x10,0x60,0x01,0xF6,0x00,0x10,0xF8,0x17,
0x34,0x54,0x14,0x14,0xF4,0x04,0x04,0x00,
0x04,0x04,0xFF,0x00,0x01,0x01,0x1F,0x11,
0x13,0x15,0x51,0x91,0x7F,0x11,0x11,0x00,
//-- 无 --
0x00,0x40,0x42,0x42,0x42,0x42,0x42,0xFE,
0xC2,0x42,0x42,0x42,0x42,0x42,0x40,0x00,
0x40,0x40,0x20,0x10,0x08,0x04,0x03,0x00,
0x3F,0x40,0x40,0x40,0x40,0x40,0x70,0x00,
//-- 涯 --
0x10,0x61,0x86,0x70,0x00,0xFE,0x82,0x92,
0x92,0xFE,0x92,0x92,0x92,0x82,0x82,0x00,
0x04,0xFC,0x43,0x20,0x18,0x47,0x44,0x44,
0x44,0x7F,0x44,0x44,0x44,0x44,0x40,0x00,
//-- 苦 --
0x40,0x44,0x44,0x44,0x44,0x5F,0x44,0xF4,
0x44,0x44,0x5F,0x44,0x44,0x44,0x44,0x00,
0x00,0x00,0x00,0x7E,0x22,0x22,0x22,0x23,
0x22,0x22,0x22,0x7E,0x00,0x00,0x00,0x00,
//-- 做 --
0x40,0x20,0xF8,0x07,0x8A,0x88,0xFF,0x88,
0xC8,0x30,0xFF,0x12,0xF0,0x10,0x10,0x00,
0x00,0x00,0x7F,0x00,0x3F,0x08,0x08,0x48,
0x5F,0x20,0x13,0x0C,0x13,0x70,0x20,0x00,
//-- 舟 --
0x80,0x80,0x80,0x80,0xFC,0x84,0x86,0x95,
0xA4,0x84,0x84,0xFC,0x80,0x80,0x80,0x00,
0x00,0x80,0x40,0x30,0x0F,0x00,0x02,0x04,
0x0C,0x40,0x80,0x7F,0x00,0x00,0x00,0x00
};
//延时子程序
//------------------------------
void delay(uint m) //在时钟频率为
{ //12MHz时大约
uint i,j; //延时1ms
for(i=0;i<m;i++)
for(j=0;j<109;j++);
_nop_();
}
//-------------------------------------------
//写显示数据
//-------------------------------------------
void SdData(uchar ddata)
{
delay(0); //延时等待
RS = 1;
RW = 0;
lcd_bus = ddata; //送入数据
E = 1;
E = 0;
}
//-------------------------------------------
//写指令
//-------------------------------------------
void Sdcmd(uchar command)
{
delay(0); //延时等待
RS = 0;
RW = 0;
lcd_bus = command; //送入指令
E=1;
E = 0;
}
//-------------------------------------------
//初始化
//-------------------------------------------
void Init()
{
_RST = 0;
delay(150);
_RST = 1; //硬件复位
delay(100);
Cs1=1;
Cs2=1; //控制器全开
Sdcmd(0x3f); //开显示
Sdcmd(0xc0); //设置起始地址
}
//-------------------------------------------
//清空显示内存
//-------------------------------------------
void CleanScreen()
{
uchar i,j,k;
for(i=0;i<8;i++)
{
Cs1 = 1;
Cs2=1;//控制器全开
Sdcmd(0x40);
Sdcmd(0xb8+i);
Cs1=1;
Cs2=0;
for(j=0;j<64;j++)
SdData(0x00);
Cs1=0;
Cs2=1;
for(k=64;k<128;k++)
SdData(0x00);
}
}
//-------------------------------------------
//显示图象
//-------------------------------------------
void display()
{
uchar x,y,i,j,d,e;
for(x=0;x<8;x++)
{
++e;
if(e==2)
{
i=16;
e=0;
}
else i=0;
d=(x/2)*8;
Cs1 = 1;
Cs2=1; //控制器全开
Sdcmd(0x40); //设置列地址
Sdcmd(0xb8+x); //设置页地址
Cs1 = 1;
Cs2 = 0; //选择控制器1
for(y=0;y<4;y++)
{for(j=0;j<16;j++)
SdData(dis[y+d][j+i]); //写入图象编码
}
Cs1 = 0;
Cs2 = 1; //选择控制器2
for(y=4;y<8;y++)
{
for(j=0;j<16;j++)
SdData(dis[y+d][j+i]); //写入图象编码
}
}
}
//-------------------------------------------
//主程序
//-------------------------------------------
main()
{
Init(); //初始化模块
CleanScreen(); //清除显示内存
display(); //显示LOGO图形
while(1);
} //end of program
复制代码
作者:
gaozhaohong
时间:
2015-2-7 15:33
不错的资料。
作者:
ztflove51
时间:
2015-2-11 10:07
我什么时候才能达到这个程度
作者:
kes
时间:
2016-3-7 13:36
请问除了把12864连到单片机上,还使用了什么芯片辅助吗?我用的是开发板但是编写的程序也是不带字库的,结果固有端口就不能用了
作者:
5000322
时间:
2017-6-1 16:52
我下载后,不能显示,怎么办?
作者:
51hei55
时间:
2017-12-16 20:41
请问片选1 片选2 是要接到那里吗 这在你的单片机上只是普通端口?
作者:
WenDonlin
时间:
2018-7-16 11:09
请问汉字怎么转为相应的代码
作者:
调皮猫
时间:
2018-12-2 23:22
资料不错,新盆友值得看看
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1