今天終于把點陣液晶顯示出漢字了,自學太吃力,點陣遭遇經(jīng)歷差點把我打擊的放棄了,這些時間心里真是很矛盾,當我看到單片機真是既愛又怕,就;連這個簡單的液晶驅(qū)動在看了很多資料,無數(shù)次改寫程序都是失敗結(jié)局.每次新的思路閃現(xiàn)總讓我興奮,但結(jié)果都很失望...........
呵呵,今天的小進步做為給自己鼓勵, 希望自己如蝸牛般急馳學習單片機!堅持.....堅持.....
/本程序為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_();
- }
- //-------------------------------------------
- //寫顯示數(shù)據(jù)
- //-------------------------------------------
- void SdData(uchar ddata)
- {
- delay(0); //延時等待
- RS = 1;
- RW = 0;
- lcd_bus = ddata; //送入數(shù)據(jù)
- 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); //設置起始地址
- }
- //-------------------------------------------
- //清空顯示內(nèi)存
- //-------------------------------------------
- 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(); //清除顯示內(nèi)存
- display(); //顯示LOGO圖形
- while(1);
- } //end of program
復制代碼
|