標(biāo)題:
lcd12864點(diǎn)陣液晶-無(wú)字庫(kù) 顯示 單片機(jī)程序源代碼
[打印本頁(yè)]
作者:
liuda
時(shí)間:
2015-1-21 21:47
標(biāo)題:
lcd12864點(diǎn)陣液晶-無(wú)字庫(kù) 顯示 單片機(jī)程序源代碼
今天終于把點(diǎn)陣液晶顯示出漢字了,自學(xué)太吃力,點(diǎn)陣遭遇經(jīng)歷差點(diǎn)把我打擊的放棄了,這些時(shí)間心里真是很矛盾,當(dāng)我看到單片機(jī)真是既愛(ài)又怕,就;連這個(gè)簡(jiǎn)單的液晶驅(qū)動(dòng)在看了很多資料,無(wú)數(shù)次改寫(xiě)程序都是失敗結(jié)局.每次新的思路閃現(xiàn)總讓我興奮,但結(jié)果都很失望...........
呵呵,今天的小進(jìn)步做為給自己鼓勵(lì), 希望自己如蝸牛般急馳學(xué)習(xí)單片機(jī)!堅(jiān)持.....堅(jiān)持.....
/本程序?yàn)長(zhǎng)M12864L系列顯示程序#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,
//-- 機(jī) --
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,
//-- 門(mén) --
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,
//-- 識(shí) --
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,
//-- 書(shū) --
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,
//-- 學(xué) --
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,
//-- 無(wú) --
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
};
//延時(shí)子程序
//------------------------------
void delay(uint m) //在時(shí)鐘頻率為
{ //12MHz時(shí)大約
uint i,j; //延時(shí)1ms
for(i=0;i<m;i++)
for(j=0;j<109;j++);
_nop_();
}
//-------------------------------------------
//寫(xiě)顯示數(shù)據(jù)
//-------------------------------------------
void SdData(uchar ddata)
{
delay(0); //延時(shí)等待
RS = 1;
RW = 0;
lcd_bus = ddata; //送入數(shù)據(jù)
E = 1;
E = 0;
}
//-------------------------------------------
//寫(xiě)指令
//-------------------------------------------
void Sdcmd(uchar command)
{
delay(0); //延時(shí)等待
RS = 0;
RW = 0;
lcd_bus = command; //送入指令
E=1;
E = 0;
}
//-------------------------------------------
//初始化
//-------------------------------------------
void Init()
{
_RST = 0;
delay(150);
_RST = 1; //硬件復(fù)位
delay(100);
Cs1=1;
Cs2=1; //控制器全開(kāi)
Sdcmd(0x3f); //開(kāi)顯示
Sdcmd(0xc0); //設(shè)置起始地址
}
//-------------------------------------------
//清空顯示內(nèi)存
//-------------------------------------------
void CleanScreen()
{
uchar i,j,k;
for(i=0;i<8;i++)
{
Cs1 = 1;
Cs2=1;//控制器全開(kāi)
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; //控制器全開(kāi)
Sdcmd(0x40); //設(shè)置列地址
Sdcmd(0xb8+x); //設(shè)置頁(yè)地址
Cs1 = 1;
Cs2 = 0; //選擇控制器1
for(y=0;y<4;y++)
{for(j=0;j<16;j++)
SdData(dis[y+d][j+i]); //寫(xiě)入圖象編碼
}
Cs1 = 0;
Cs2 = 1; //選擇控制器2
for(y=4;y<8;y++)
{
for(j=0;j<16;j++)
SdData(dis[y+d][j+i]); //寫(xiě)入圖象編碼
}
}
}
//-------------------------------------------
//主程序
//-------------------------------------------
main()
{
Init(); //初始化模塊
CleanScreen(); //清除顯示內(nèi)存
display(); //顯示LOGO圖形
while(1);
} //end of program
復(fù)制代碼
作者:
gaozhaohong
時(shí)間:
2015-2-7 15:33
不錯(cuò)的資料。
作者:
ztflove51
時(shí)間:
2015-2-11 10:07
我什么時(shí)候才能達(dá)到這個(gè)程度
作者:
kes
時(shí)間:
2016-3-7 13:36
請(qǐng)問(wèn)除了把12864連到單片機(jī)上,還使用了什么芯片輔助嗎?我用的是開(kāi)發(fā)板但是編寫(xiě)的程序也是不帶字庫(kù)的,結(jié)果固有端口就不能用了
作者:
5000322
時(shí)間:
2017-6-1 16:52
我下載后,不能顯示,怎么辦?
作者:
51hei55
時(shí)間:
2017-12-16 20:41
請(qǐng)問(wèn)片選1 片選2 是要接到那里嗎 這在你的單片機(jī)上只是普通端口?
作者:
WenDonlin
時(shí)間:
2018-7-16 11:09
請(qǐng)問(wèn)漢字怎么轉(zhuǎn)為相應(yīng)的代碼
作者:
調(diào)皮貓
時(shí)間:
2018-12-2 23:22
資料不錯(cuò),新盆友值得看看
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1