找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 15907|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

lcd12864點(diǎn)陣液晶-無字庫(kù) 顯示 單片機(jī)程序源代碼

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
#
ID:72519 發(fā)表于 2015-1-21 21:47 | 只看該作者 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
     今天終于把點(diǎn)陣液晶顯示出漢字了,自學(xué)太吃力,點(diǎn)陣遭遇經(jīng)歷差點(diǎn)把我打擊的放棄了,這些時(shí)間心里真是很矛盾,當(dāng)我看到單片機(jī)真是既愛又怕,就;連這個(gè)簡(jiǎn)單的液晶驅(qū)動(dòng)在看了很多資料,無數(shù)次改寫程序都是失敗結(jié)局.每次新的思路閃現(xiàn)總讓我興奮,但結(jié)果都很失望...........
呵呵,今天的小進(jìn)步做為給自己鼓勵(lì), 希望自己如蝸牛般急馳學(xué)習(xí)單片機(jī)!堅(jiān)持.....堅(jiān)持.....

/本程序?yàn)長(zhǎng)M12864L系列顯示程序#include<reg52.h>

  1. #include<intrins.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. #define lcd_bus P0
  5. sbit RS = P2^5;
  6. sbit RW = P2^4;
  7. sbit E = P2^3;
  8. sbit Cs1 = P2^0;
  9. sbit Cs2 = P2^1;
  10. sbit _RST = P2^2; //定義端口
  11. uchar code  dis[][32]={        //-- 單 --
  12.       0x00,0x00,0xF8,0x28,0x29,0x2E,0x2A,0xF8,
  13.       0x28,0x2C,0x2B,0x2A,0xF8,0x00,0x00,0x00,
  14.       0x08,0x08,0x0B,0x09,0x09,0x09,0x09,0xFF,
  15.       0x09,0x09,0x09,0x09,0x0B,0x08,0x08,0x00,
  16. //-- 片 --
  17.       0x00,0x00,0x00,0xFE,0x10,0x10,0x10,0x10,
  18.       0x10,0x1F,0x10,0x10,0x10,0x18,0x10,0x00,
  19.       0x80,0x40,0x30,0x0F,0x01,0x01,0x01,0x01,
  20.       0x01,0x01,0x01,0xFF,0x00,0x00,0x00,0x00,
  21. //-- 機(jī) --
  22.       0x08,0x08,0xC8,0xFF,0x48,0x88,0x08,0x00,
  23.       0xFE,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,
  24.       0x04,0x03,0x00,0xFF,0x00,0x41,0x30,0x0C,
  25.       0x03,0x00,0x00,0x00,0x3F,0x40,0x78,0x00,
  26. //-- 是 --
  27.       0x80,0x80,0x80,0x80,0xBE,0xAA,0xAA,0xAA,
  28.       0xAA,0xAA,0xAA,0xBE,0x80,0x80,0x80,0x00,
  29.       0x00,0x40,0x20,0x10,0x0E,0x10,0x20,0x3F,
  30.       0x44,0x44,0x44,0x44,0x44,0x40,0x40,0x00,
  31. //-- 我 --
  32.       0x20,0x20,0x22,0x22,0xFE,0x21,0x21,0x20,
  33.       0x20,0xFF,0x20,0x22,0xAC,0x20,0x20,0x00,
  34.       0x04,0x04,0x42,0x82,0x7F,0x01,0x01,0x10,
  35.       0x10,0x08,0x07,0x1A,0x21,0x40,0xF0,0x00,
  36. //-- 們 --
  37.       0x80,0x40,0xF0,0x1C,0x03,0xF0,0x01,0x0E,
  38.       0x04,0x00,0x04,0x04,0x04,0xFC,0x00,0x00,
  39.       0x00,0x00,0x7F,0x00,0x00,0x7F,0x00,0x00,
  40.       0x00,0x00,0x00,0x20,0x40,0x3F,0x00,0x00,
  41. //-- 的 --
  42.       0x00,0xF8,0x8C,0x8B,0x88,0xF8,0x40,0x30,
  43.       0x8F,0x08,0x08,0x08,0x08,0xF8,0x00,0x00,
  44.       0x00,0x7F,0x10,0x10,0x10,0x3F,0x00,0x00,
  45.       0x00,0x03,0x26,0x40,0x20,0x1F,0x00,0x00,
  46. //-- 好 --
  47.       0x10,0x10,0xF0,0x1F,0x10,0xF0,0x80,0x82,
  48.       0x82,0x82,0xF2,0x8A,0x86,0x82,0x80,0x00,
  49.       0x80,0x43,0x22,0x14,0x0C,0x73,0x20,0x00,
  50.       0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,
  51. //-- 朋 --
  52.       0x00,0x00,0xFE,0x92,0x92,0x92,0xFE,0x00,
  53.       0x00,0xFE,0x92,0x92,0x92,0xFE,0x00,0x00,
  54.       0x40,0x30,0x0F,0x00,0x20,0x40,0x3F,0x40,
  55.       0x30,0x0F,0x00,0x20,0x40,0x3F,0x00,0x00,
  56. //-- 友 --
  57.       0x08,0x08,0x08,0x08,0x08,0xC8,0x7F,0x48,
  58.       0x48,0x48,0x48,0xC8,0x08,0x08,0x08,0x00,
  59.       0x40,0x20,0x90,0x88,0x46,0x41,0x21,0x12,
  60.       0x0C,0x0C,0x13,0x20,0x60,0xC0,0x40,0x00,
  61. //-- 很 --
  62.       0x10,0x88,0xC4,0x23,0x1A,0x00,0xFE,0x4A,
  63.       0x4A,0xCA,0x4A,0x4A,0x7E,0x00,0x00,0x00,
  64.       0x01,0x00,0xFF,0x00,0x00,0x40,0xFF,0x40,
  65.       0x20,0x13,0x04,0x1A,0x33,0x62,0x20,0x00,
  66. //-- 想 --
  67.       0x08,0xC8,0x38,0xFF,0x18,0x68,0x08,0x00,
  68.       0xFE,0x2A,0x2A,0x2A,0x2A,0xFE,0x00,0x00,
  69.       0x01,0x40,0x70,0x01,0x38,0x40,0x40,0x44,
  70.       0x59,0x41,0x41,0x61,0x01,0x09,0x30,0x00,
  71. //-- 掌 --
  72.       0x00,0x0C,0x04,0x05,0x76,0x54,0x54,0x57,
  73.       0x54,0x54,0x76,0x05,0x04,0x0C,0x04,0x00,
  74.       0x00,0x10,0x15,0x15,0x15,0x55,0x95,0x7F,
  75.       0x15,0x15,0x15,0x15,0x14,0x10,0x00,0x00,
  76. //-- 握 --
  77.       0x08,0x08,0xFF,0x88,0x48,0x00,0xFE,0x2A,
  78.       0xAA,0x6A,0x2A,0x2A,0xAA,0x2E,0x20,0x00,
  79.       0x42,0x81,0x7F,0x00,0x40,0x30,0x4F,0x49,
  80.       0x49,0x49,0x7F,0x49,0x49,0x4B,0x40,0x00,
  81. //-- 這 --
  82.       0x40,0x42,0x44,0xCC,0x00,0x08,0x28,0x48,
  83.       0x89,0x0E,0xCA,0x38,0x08,0x08,0x00,0x00,
  84.       0x80,0x40,0x20,0x1F,0x20,0x40,0x50,0x48,
  85.       0x44,0x43,0x44,0x48,0x50,0x40,0x40,0x00,
  86. //-- 門 --
  87.       0x00,0x00,0xF8,0x01,0x06,0x00,0x02,0x02,
  88.       0x02,0x02,0x02,0x02,0x02,0xFE,0x00,0x00,
  89.       0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,
  90.       0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,
  91. //-- 知 --
  92.       0x40,0xA0,0x98,0x8F,0x88,0xF8,0x88,0x88,
  93.       0x00,0xF8,0x08,0x08,0x08,0xF8,0x00,0x00,
  94.       0x80,0x40,0x20,0x18,0x07,0x02,0x04,0x18,
  95.       0x00,0x7F,0x10,0x10,0x10,0x3F,0x00,0x00,
  96. //-- 識(shí) --
  97.       0x40,0x41,0x4E,0xC4,0x00,0x00,0x00,0xFE,
  98.       0x82,0x82,0x82,0x82,0xFE,0x00,0x00,0x00,
  99.       0x00,0x00,0x00,0x7F,0x20,0x90,0x40,0x30,
  100.       0x0E,0x00,0x00,0x02,0x0C,0x70,0x20,0x00,
  101. //-- 書 --
  102.       0x80,0x80,0x88,0x88,0x88,0x88,0xFF,0x88,
  103.       0x88,0x88,0x88,0xFA,0x84,0x9C,0x08,0x00,
  104.       0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,
  105.       0x00,0x10,0x20,0x40,0x30,0x0F,0x00,0x00,
  106. //-- 山 --
  107.       0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0xFF,
  108.       0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,
  109.       0x00,0x20,0x7F,0x20,0x20,0x20,0x20,0x3F,
  110.       0x20,0x20,0x20,0x20,0x20,0x7F,0x00,0x00,
  111. //-- 有 --
  112.       0x00,0x04,0x84,0x44,0xE4,0x34,0x2C,0x27,
  113.       0x24,0x24,0x24,0xE4,0x04,0x04,0x04,0x00,
  114.       0x02,0x01,0x00,0x00,0xFF,0x09,0x09,0x09,
  115.       0x29,0x49,0xC9,0x7F,0x00,0x00,0x00,0x00,
  116. //-- 路 --
  117.       0x00,0x7E,0x22,0xE2,0x3E,0x20,0x10,0x08,
  118.       0x0F,0xB4,0x44,0xA4,0x9C,0x04,0x00,0x00,
  119.       0x20,0x3F,0x20,0x1F,0x11,0x11,0x02,0x7F,
  120.       0x23,0x22,0x22,0x22,0x7E,0x03,0x01,0x00,
  121. //-- 勤 --
  122.       0x04,0x04,0xC4,0x5F,0x54,0xF4,0x54,0x5F,
  123.       0xC4,0x14,0x10,0xFF,0x10,0x10,0xF0,0x00,
  124.       0x00,0x80,0x95,0x95,0x95,0x7F,0x55,0x55,
  125.       0x95,0x60,0x1C,0x03,0x20,0x60,0x3F,0x00,
  126. //-- 為 --
  127.       0x00,0x10,0x10,0x12,0x14,0x1C,0x10,0xF0,
  128.       0x9F,0x10,0x10,0x10,0x10,0xF8,0x10,0x00,
  129.       0x00,0x00,0x40,0x20,0x10,0x08,0x06,0x01,
  130.       0x00,0x11,0x26,0x40,0x20,0x1F,0x00,0x00,
  131. //-- 徑 --
  132.       0x10,0x88,0xC4,0x73,0xA2,0x80,0x42,0x42,
  133.       0x22,0x12,0x2A,0x26,0x42,0xC0,0x80,0x00,
  134.       0x01,0x00,0xFF,0x00,0x40,0x41,0x41,0x41,
  135.       0x41,0x7F,0x41,0x41,0x41,0x41,0x40,0x00,
  136. //-- 學(xué) --
  137.       0x40,0x30,0x10,0x12,0x5C,0x54,0x50,0x51,
  138.       0x5E,0xD4,0x50,0x18,0x57,0x32,0x10,0x00,
  139.       0x00,0x02,0x02,0x02,0x02,0x02,0x42,0x82,
  140.       0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x00,
  141. //-- 海 --
  142.       0x10,0x60,0x01,0xF6,0x00,0x10,0xF8,0x17,
  143.       0x34,0x54,0x14,0x14,0xF4,0x04,0x04,0x00,
  144.       0x04,0x04,0xFF,0x00,0x01,0x01,0x1F,0x11,
  145.       0x13,0x15,0x51,0x91,0x7F,0x11,0x11,0x00,
  146. //-- 無 --
  147.       0x00,0x40,0x42,0x42,0x42,0x42,0x42,0xFE,
  148.       0xC2,0x42,0x42,0x42,0x42,0x42,0x40,0x00,
  149.       0x40,0x40,0x20,0x10,0x08,0x04,0x03,0x00,
  150.       0x3F,0x40,0x40,0x40,0x40,0x40,0x70,0x00,
  151. //-- 涯 --
  152.       0x10,0x61,0x86,0x70,0x00,0xFE,0x82,0x92,
  153.       0x92,0xFE,0x92,0x92,0x92,0x82,0x82,0x00,
  154.       0x04,0xFC,0x43,0x20,0x18,0x47,0x44,0x44,
  155.       0x44,0x7F,0x44,0x44,0x44,0x44,0x40,0x00,
  156. //-- 苦 --
  157.       0x40,0x44,0x44,0x44,0x44,0x5F,0x44,0xF4,
  158.       0x44,0x44,0x5F,0x44,0x44,0x44,0x44,0x00,
  159.       0x00,0x00,0x00,0x7E,0x22,0x22,0x22,0x23,
  160.       0x22,0x22,0x22,0x7E,0x00,0x00,0x00,0x00,
  161. //-- 做 --
  162.       0x40,0x20,0xF8,0x07,0x8A,0x88,0xFF,0x88,
  163.       0xC8,0x30,0xFF,0x12,0xF0,0x10,0x10,0x00,
  164.       0x00,0x00,0x7F,0x00,0x3F,0x08,0x08,0x48,
  165.       0x5F,0x20,0x13,0x0C,0x13,0x70,0x20,0x00,
  166. //-- 舟 --
  167.       0x80,0x80,0x80,0x80,0xFC,0x84,0x86,0x95,
  168.       0xA4,0x84,0x84,0xFC,0x80,0x80,0x80,0x00,
  169.       0x00,0x80,0x40,0x30,0x0F,0x00,0x02,0x04,
  170.       0x0C,0x40,0x80,0x7F,0x00,0x00,0x00,0x00
  171. };



  172. //延時(shí)子程序
  173. //------------------------------

  174. void delay(uint m) //在時(shí)鐘頻率為
  175. { //12MHz時(shí)大約
  176.    uint i,j; //延時(shí)1ms
  177.     for(i=0;i<m;i++)
  178.     for(j=0;j<109;j++);
  179.    _nop_();
  180. }
  181. //-------------------------------------------
  182. //寫顯示數(shù)據(jù)
  183. //-------------------------------------------
  184. void SdData(uchar ddata)
  185. {
  186. delay(0); //延時(shí)等待
  187. RS = 1;
  188. RW = 0;
  189. lcd_bus = ddata; //送入數(shù)據(jù)
  190. E = 1;
  191. E = 0;
  192. }
  193. //-------------------------------------------
  194. //寫指令
  195. //-------------------------------------------
  196. void Sdcmd(uchar command)
  197. {
  198.   
  199. delay(0); //延時(shí)等待
  200. RS = 0;
  201. RW = 0;
  202. lcd_bus = command; //送入指令
  203. E=1;
  204. E = 0;

  205. }
  206. //-------------------------------------------
  207. //初始化
  208. //-------------------------------------------
  209. void Init()
  210. {
  211. _RST = 0;
  212. delay(150);
  213. _RST = 1; //硬件復(fù)位
  214. delay(100);
  215. Cs1=1;
  216. Cs2=1; //控制器全開
  217. Sdcmd(0x3f); //開顯示
  218. Sdcmd(0xc0); //設(shè)置起始地址
  219. }
  220. //-------------------------------------------
  221. //清空顯示內(nèi)存
  222. //-------------------------------------------
  223. void CleanScreen()
  224. {
  225. uchar i,j,k;
  226. for(i=0;i<8;i++)
  227. {
  228. Cs1 = 1;
  229. Cs2=1;//控制器全開
  230. Sdcmd(0x40);
  231. Sdcmd(0xb8+i);
  232. Cs1=1;
  233. Cs2=0;
  234. for(j=0;j<64;j++)
  235. SdData(0x00);
  236. Cs1=0;
  237. Cs2=1;
  238. for(k=64;k<128;k++)
  239.    SdData(0x00);
  240. }
  241. }
  242. //-------------------------------------------
  243. //顯示圖象
  244. //-------------------------------------------
  245. void display()
  246. {
  247. uchar x,y,i,j,d,e;
  248. for(x=0;x<8;x++)
  249. {
  250.            ++e;
  251.    if(e==2)
  252.    {
  253.      i=16;
  254.      e=0;
  255. }
  256. else i=0;
  257. d=(x/2)*8;  
  258. Cs1 = 1;
  259. Cs2=1; //控制器全開
  260. Sdcmd(0x40); //設(shè)置列地址
  261. Sdcmd(0xb8+x); //設(shè)置頁(yè)地址
  262. Cs1 = 1;
  263. Cs2 = 0; //選擇控制器1
  264. for(y=0;y<4;y++)
  265.   {for(j=0;j<16;j++)
  266.    SdData(dis[y+d][j+i]); //寫入圖象編碼
  267.    }
  268. Cs1 = 0;
  269. Cs2 = 1; //選擇控制器2
  270. for(y=4;y<8;y++)
  271.   {
  272.    for(j=0;j<16;j++)

  273.    SdData(dis[y+d][j+i]); //寫入圖象編碼
  274. }
  275. }
  276. }  
  277.   
  278. //-------------------------------------------
  279. //主程序
  280. //-------------------------------------------
  281. main()
  282. {
  283. Init(); //初始化模塊
  284. CleanScreen(); //清除顯示內(nèi)存
  285. display(); //顯示LOGO圖形
  286. while(1);
  287. } //end of program
復(fù)制代碼





分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏7 分享淘帖 頂1 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

7#
ID:434779 發(fā)表于 2018-12-2 23:22 | 只看該作者
資料不錯(cuò),新盆友值得看看
回復(fù)

使用道具 舉報(bào)

6#
ID:328365 發(fā)表于 2018-7-16 11:09 | 只看該作者
請(qǐng)問漢字怎么轉(zhuǎn)為相應(yīng)的代碼
回復(fù)

使用道具 舉報(bào)

5#
ID:245867 發(fā)表于 2017-12-16 20:41 | 只看該作者
請(qǐng)問片選1 片選2  是要接到那里嗎  這在你的單片機(jī)上只是普通端口?
回復(fù)

使用道具 舉報(bào)

地板
ID:195884 發(fā)表于 2017-6-1 16:52 | 只看該作者
我下載后,不能顯示,怎么辦?
回復(fù)

使用道具 舉報(bào)

板凳
ID:107683 發(fā)表于 2016-3-7 13:36 來自手機(jī) | 只看該作者
請(qǐng)問除了把12864連到單片機(jī)上,還使用了什么芯片輔助嗎?我用的是開發(fā)板但是編寫的程序也是不帶字庫(kù)的,結(jié)果固有端口就不能用了
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:73463 發(fā)表于 2015-2-11 10:07 | 只看該作者
我什么時(shí)候才能達(dá)到這個(gè)程度
回復(fù)

使用道具 舉報(bào)

樓主
ID:61876 發(fā)表于 2015-2-7 15:33 | 只看該作者
不錯(cuò)的資料。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表