仿真實驗結(jié)果展示:
漢字取模過程(軟件下載鏈接在文末):第一步:打開液晶仿真排版軟件 設(shè)定相關(guān)參數(shù):
輸入漢字:
隨便找個位置將圖片保存:
第二步:打開液晶漢字模提取軟件 設(shè)定相關(guān)參數(shù):
將剛才保存的圖片打開并保存數(shù)據(jù):
C語言程序代碼:
- #include <reg51.h>
- #define LCDLCDDisp_Off 0x3e
- #define LCDLCDDisp_On 0x3f
- #define Page_Add 0xb8//頁地址
- #define LCDCol_Add 0x40//列地址
- #define Start_Line 0xC0//行地址
- /*****液晶顯示器的端口定義*****/
- #define data_ora P0 /*液晶數(shù)據(jù)總線*/
- sbit LCDMcs=P2^4 ; /*片選1*/
- sbit LCDScs=P2^3 ; /*片選2*/
- sbit LCDDi=P2^2 ; /*數(shù)據(jù)/指令 選擇*/
- sbit LCDRW=P2^1 ; /*讀/寫 選擇*/
- sbit LCDEnable=P2^0 ; /*讀/寫 使能*/
- //
- unsigned char code Bmp1[]=
- {
- /*------------------------------------------------------------------------------
- 寬×高(像素): 128×16
- 字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/256字節(jié)
- 顯示的漢字:關(guān)關(guān)雎鳩在河之洲
- ------------------------------------------------------------------------------*/
- /*-- 調(diào)入了一幅圖像:C:\Users\dhd\Desktop\1111111.bmp --*/
- /*-- 寬度x高度=128x16 --*/
- 0x00,0x10,0x10,0x11,0x12,0x1C,0x10,0xF0,0x10,0x18,0x14,0x13,0x1A,0x90,0x00,0x00,
- 0x00,0x10,0x10,0x11,0x12,0x1C,0x10,0xF0,0x10,0x18,0x14,0x13,0x1A,0x90,0x00,0x00,
- 0x00,0xFC,0x24,0x24,0xFE,0x24,0x10,0xFC,0x4B,0x49,0xFE,0x48,0x68,0x4C,0x08,0x00,
- 0x10,0x10,0xFF,0x10,0xF8,0x10,0x00,0xFC,0x04,0x16,0x45,0x84,0x7E,0x04,0x00,0x00,
- 0x08,0x08,0x08,0x08,0xC8,0x38,0x0F,0x08,0x08,0xE8,0x08,0x88,0x08,0x0C,0x08,0x00,
- 0x10,0x21,0x62,0x06,0x82,0xE2,0x22,0x22,0x22,0xF2,0x22,0x02,0xFE,0x03,0x02,0x00,
- 0x00,0x10,0x10,0x10,0x10,0x10,0x11,0x16,0x10,0x90,0x50,0x30,0x10,0x00,0x00,0x00,
- 0x10,0x22,0x64,0x0C,0x80,0x20,0xC0,0xFF,0x20,0xC0,0xFC,0x20,0xC0,0xFF,0x00,0x00,
- 0x81,0x81,0x41,0x41,0x21,0x11,0x0D,0x03,0x0D,0x11,0x21,0x21,0x41,0xC1,0x41,0x00,
- 0x81,0x81,0x41,0x41,0x21,0x11,0x0D,0x03,0x0D,0x11,0x21,0x21,0x41,0xC1,0x41,0x00,
- 0x10,0x3F,0x11,0x11,0x0F,0x08,0x00,0xFF,0x22,0x22,0x3F,0x22,0x23,0x32,0x20,0x00,
- 0x40,0x30,0x0F,0x00,0x3F,0x10,0x08,0x13,0x12,0x12,0x1A,0x52,0x82,0x7F,0x02,0x00,
- 0x08,0x04,0x02,0xFF,0x00,0x40,0x41,0x41,0x41,0x7F,0x41,0x41,0x41,0x60,0x40,0x00,
- 0x04,0x04,0xFE,0x01,0x00,0x0F,0x04,0x04,0x04,0x0F,0x40,0x80,0x7F,0x00,0x00,0x00,
- 0x00,0x20,0x10,0x10,0x28,0x48,0x44,0x42,0x41,0x40,0x40,0x40,0x40,0x60,0x20,0x00,
- 0x04,0x04,0xFE,0x01,0x00,0x40,0x30,0x0F,0x00,0x00,0x3F,0x00,0x00,0xFF,0x00,0x00,
- };
- unsigned char code Bmp2[]=
- {
- /*------------------------------------------------------------------------------
- 寬×高(像素): 128×16
- 字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/256字節(jié)
- 顯示的漢字:窈窕淑女君子好逑
- --------------------------------------------------------------------------
- */
- 0x10,0x0E,0x04,0x94,0x4C,0x24,0x05,0x86,0x84,0xE4,0x8C,0x94,0xC4,0x94,0x0C,0x00,
- 0x10,0x0E,0x44,0x94,0x0C,0x04,0xF5,0x06,0xF4,0x04,0x0C,0xD4,0x84,0x14,0x0C,0x00,
- 0x10,0x22,0x64,0x0C,0xC0,0x40,0xFF,0x44,0x44,0xF8,0x08,0x08,0x08,0xF8,0x00,0x00,
- 0x20,0x20,0x20,0x20,0x20,0xE0,0x3F,0x20,0x20,0x20,0xE0,0x20,0x20,0x30,0x20,0x00,
- 0x10,0x10,0x92,0x92,0x92,0xFE,0x92,0x92,0x92,0x92,0x92,0xFF,0x12,0x18,0x10,0x00,
- 0x80,0x80,0x82,0x82,0x82,0x82,0x82,0xE2,0xA2,0x92,0x8A,0x86,0x80,0xC0,0x80,0x00,
- 0x10,0x10,0xF0,0x1F,0x10,0xF0,0x80,0x82,0x82,0x82,0xE2,0x92,0x8A,0xC6,0x80,0x00,
- 0x40,0x42,0x44,0xCC,0x00,0x08,0x28,0x48,0x08,0xFF,0x08,0x4A,0x2C,0x08,0x00,0x00,
- 0x00,0x21,0x31,0x29,0x25,0x2B,0xB1,0x40,0x30,0x0F,0x40,0x80,0x7F,0x00,0x00,0x00,
- 0x00,0x88,0x88,0x45,0x42,0x31,0x0F,0x00,0x3F,0x42,0x45,0x48,0x58,0x40,0x70,0x00,
- 0x04,0x04,0xFE,0x09,0x24,0x42,0x3F,0x82,0x44,0x20,0x13,0x0C,0x13,0x60,0x20,0x00,
- 0x00,0x80,0x80,0x42,0x45,0x24,0x28,0x10,0x18,0x24,0x23,0x40,0xC0,0x00,0x00,0x00,
- 0x40,0x20,0x10,0x0C,0xFF,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xFE,0x04,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x40,0x22,0x15,0x08,0x14,0x63,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x40,0x20,0x1F,0x20,0x42,0x42,0x49,0x50,0x4F,0x40,0x41,0x42,0x66,0x20,0x00,
- };
- unsigned char code Bmp3[]=
- {
- /*------------------------------------------------------------------------------
- 寬×高(像素): 128×16
- 字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/256字節(jié)
- 顯示的漢字:參差荇菜左右流之
- ------------------------------------------------------------------------------*/
- 0x20,0x20,0x20,0x28,0xA8,0x6C,0x3B,0x28,0xA8,0x6A,0xAC,0x28,0x20,0x30,0x20,0x00,
- 0x00,0x04,0x24,0x24,0x25,0x26,0xA4,0x7C,0x24,0x26,0x25,0x34,0x26,0x84,0x00,0x00,
- 0x04,0x84,0x84,0x44,0x24,0x9F,0x04,0x24,0x24,0x2F,0x24,0x24,0x34,0xA6,0x04,0x00,
- 0x04,0x04,0x24,0x64,0xA4,0x2F,0x64,0xA4,0x24,0x2F,0x94,0x54,0x14,0x06,0x04,0x00,
- 0x08,0x08,0x08,0x08,0x88,0x78,0x0F,0x08,0x08,0x08,0x08,0x88,0x0C,0x08,0x00,0x00,
- 0x08,0x08,0x08,0x08,0xC8,0x38,0x0F,0x08,0x08,0x08,0x08,0x08,0x88,0x0C,0x08,0x00,
- 0x10,0x22,0x64,0x0C,0x80,0x44,0x44,0x64,0x55,0x4E,0x44,0x54,0x66,0xC4,0x00,0x00,
- 0x00,0x10,0x10,0x10,0x10,0x10,0x11,0x16,0x10,0x90,0x50,0x30,0x10,0x00,0x00,0x00,
- 0x04,0x84,0x82,0x81,0x4A,0x4A,0x49,0x25,0x24,0x12,0x10,0x09,0x02,0x06,0x02,0x00,
- 0x41,0x21,0x11,0x89,0x85,0x8B,0x89,0x89,0xF9,0x89,0x8D,0x89,0xC1,0x81,0x01,0x00,
- 0x08,0x08,0x04,0x02,0xFF,0x00,0x01,0x01,0x01,0x41,0x81,0x7F,0x01,0x01,0x01,0x00,
- 0x02,0x42,0x42,0x22,0x12,0x0A,0x06,0xFF,0x06,0x0A,0x12,0x12,0x22,0x63,0x22,0x00,
- 0x20,0x50,0x48,0x46,0x41,0x41,0x41,0x41,0x7F,0x41,0x41,0x41,0x41,0x60,0x40,0x00,
- 0x08,0x04,0x02,0x01,0xFF,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0xFF,0x01,0x00,0x00,
- 0x04,0x04,0xFE,0x01,0x00,0x80,0x40,0x3F,0x00,0xFF,0x00,0x3F,0x40,0x40,0x70,0x00,
- 0x00,0x20,0x10,0x10,0x28,0x48,0x44,0x42,0x41,0x40,0x40,0x40,0x40,0x60,0x20,0x00,
- };
- unsigned char code Bmp4[]=
- {
- /*------------------------------------------------------------------------------
- 寬×高(像素): 128×16
- 字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/256字節(jié)
- 顯示的漢字:窈窕淑女寤寐求之
- ------------------------------------------------------------------------------*/
- 0x10,0x0E,0x04,0x94,0x4C,0x24,0x05,0x86,0x84,0xE4,0x8C,0x94,0xC4,0x94,0x0C,0x00,
- 0x10,0x0E,0x44,0x94,0x0C,0x04,0xF5,0x06,0xF4,0x04,0x0C,0xD4,0x84,0x14,0x0C,0x00,
- 0x10,0x22,0x64,0x0C,0xC0,0x40,0xFF,0x44,0x44,0xF8,0x08,0x08,0x08,0xF8,0x00,0x00,
- 0x20,0x20,0x20,0x20,0x20,0xE0,0x3F,0x20,0x20,0x20,0xE0,0x20,0x20,0x30,0x20,0x00,
- 0x10,0x0C,0xF4,0x84,0x84,0xF4,0x05,0x56,0xD4,0x74,0x54,0x54,0xD4,0x14,0x0C,0x00,
- 0x10,0x0C,0xF4,0x84,0x84,0xF4,0x05,0x46,0x44,0x44,0xF4,0x44,0x44,0x54,0x0C,0x00,
- 0x00,0x08,0x28,0x48,0xC8,0x08,0x08,0xFF,0x88,0x0A,0x8C,0x48,0x6C,0x08,0x00,0x00,
- 0x00,0x10,0x10,0x10,0x10,0x10,0x11,0x16,0x10,0x90,0x50,0x30,0x10,0x00,0x00,0x00,
- 0x00,0x21,0x31,0x29,0x25,0x2B,0xB1,0x40,0x30,0x0F,0x40,0x80,0x7F,0x00,0x00,0x00,
- 0x00,0x88,0x88,0x45,0x42,0x31,0x0F,0x00,0x3F,0x42,0x45,0x48,0x58,0x40,0x70,0x00,
- 0x04,0x04,0xFE,0x09,0x24,0x42,0x3F,0x82,0x44,0x20,0x13,0x0C,0x13,0x60,0x20,0x00,
- 0x00,0x80,0x80,0x42,0x45,0x24,0x28,0x10,0x18,0x24,0x23,0x40,0xC0,0x00,0x00,0x00,
- 0x02,0x42,0x3E,0x02,0x02,0xFF,0x02,0xFA,0x4B,0x4A,0x4A,0x4A,0x4B,0xFA,0x02,0x00,
- 0x02,0x42,0x3E,0x02,0x02,0xFF,0x42,0x22,0x12,0x0A,0xFF,0x0A,0x32,0x63,0x22,0x00,
- 0x00,0x10,0x10,0x08,0x04,0x42,0x81,0x7F,0x00,0x03,0x04,0x04,0x08,0x18,0x08,0x00,
- 0x00,0x20,0x10,0x10,0x28,0x48,0x44,0x42,0x41,0x40,0x40,0x40,0x40,0x60,0x20,0x00,
- };
- /****************************************************************************
- 函數(shù)功能:LCD延時程序
- 入口參數(shù):t
- 出口參數(shù):
- ****************************************************************************/
- void LCDdelay(unsigned int t)
- {
- unsigned int i,j;
- for(i=0;i<t;i++);
- for(j=0;j<10;j++);
- }
- /****************************************************************************
- 狀態(tài)檢查,LCD是否忙
- *****************************************************************************/
- void CheckState()
- {
- unsigned char dat,DATA;//狀態(tài)信息(判斷是否忙)
- LCDDi=0; // 數(shù)據(jù)\指令選擇,D/I(RS)="L" ,表示 DB7∽DB0 為顯示指令數(shù)據(jù)
- LCDRW=1; //R/W="H" ,E="H"數(shù)據(jù)被讀到DB7∽DB0
- do
- {
- DATA=0x00;
- LCDEnable=1; //EN下降源
- LCDdelay(2);//延時
- dat=DATA;
- LCDEnable=0;
- dat=0x80 & dat; //僅當(dāng)?shù)?位為0時才可操作(判別busy信號)
- }
- while(!(dat==0x00));
- }
- /*****************************************************************************
- 函數(shù)功能:寫命令到LCD程序,RS(DI)=L,RW=L,EN=H,即來一個脈沖寫一次
- 入口參數(shù):cmdcode
- 出口參數(shù):
- *****************************************************************************/
- void write_com(unsigned char cmdcode)
- {
- CheckState();//檢測LCD是否忙
- LCDDi=0;
- LCDRW=0;
- P1=cmdcode;
- LCDdelay(2);
- LCDEnable=1;
- LCDdelay(2);
- LCDEnable=0;
- }
- /*****************************************************************************
- 函數(shù)功能:LCD初始化程序
- 入口參數(shù):
- 出口參數(shù):
- *****************************************************************************/
- void init_lcd()
- {
- LCDdelay(100);
- LCDMcs=1;//剛開始關(guān)閉兩屏
- LCDScs=1;
- LCDdelay(100);
- write_com(LCDLCDDisp_Off); //寫初始化命令
- write_com(Page_Add+0);
- write_com(Start_Line+0);
- write_com(LCDCol_Add+0);
- write_com(LCDLCDDisp_On);
- }
- /*****************************************************************************
- 函數(shù)功能:寫數(shù)據(jù)到LCD程序,RS(DI)=H,RW=L,EN=H,即來一個脈沖寫一次
- 入口參數(shù):LCDDispdata
- 出口參數(shù):
- *****************************************************************************/
- void write_data(unsigned char LCDDispdata)
- {
- CheckState();//檢測LCD是否忙
- LCDDi=1;
- LCDRW=0;
- P1=LCDDispdata;
- LCDdelay(2);
- LCDEnable=1;
- LCDdelay(2);
- LCDEnable=0;
- }
- /*****************************************************************************
- 函數(shù)功能:清除LCD內(nèi)存程序
- 入口參數(shù):pag,col,hzk
- 出口參數(shù):
- *****************************************************************************/
- void Clr_Scr()
- {
- unsigned char j,k;
- LCDMcs=0; //左、右屏均開顯示
- LCDScs=0;
- write_com(Page_Add+0);
- write_com(LCDCol_Add+0);
- for(k=0;k<8;k++)//控制頁數(shù)0-7,共8頁
- {
- write_com(Page_Add+k); //每頁每頁進(jìn)行寫
- for(j=0;j<64;j++) //每頁最多可寫32個中文文字或64個ASCII字符
- {
- write_com(LCDCol_Add+j);
- write_data(0x00);//控制列數(shù)0-63,共64列,寫點內(nèi)容,列地址自動加1
- }
- }
- }
- /*****************************************************************************
- 函數(shù)功能:左屏位置顯示
- 入口參數(shù):page,column,hzk
- 出口參數(shù):
- *****************************************************************************/
- void Bmp_Left_Disp(unsigned char page,unsigned char column, unsigned char code *Bmp)
- {
- unsigned char j=0,i=0;
- for(j=0;j<2;j++)
- {
- write_com(Page_Add+page+j);
- write_com(LCDCol_Add+column);
- for(i=0;i<64;i++)
- write_data(Bmp[128*j+i]);
- }
- }
- /*****************************************************************************
- 函數(shù)功能:右屏位置顯示
- 入口參數(shù):page,column,hzk
- 出口參數(shù):
- *****************************************************************************/
- void Bmp_Right_Disp(unsigned char page,unsigned char column, unsigned char code *Bmp)
- {
- unsigned char j=0,i=0;
- for(j=0;j<2;j++)
- {
- write_com(Page_Add+page+j);
- write_com(LCDCol_Add+column);
- for(i=64;i<128;i++)
- write_data(Bmp[128*j+i]);
- }
- }
- void main()
- {
- init_lcd();
- Clr_Scr();
- LCDMcs=0; //左屏開顯示
- LCDScs=1;
- Bmp_Left_Disp(0,0,Bmp1);// Bmp1為某個漢字的首地址
- Bmp_Left_Disp(2,0,Bmp2);
- Bmp_Left_Disp(4,0,Bmp3);
- Bmp_Left_Disp(6,0,Bmp4);
- LCDMcs=1; //右屏開顯示
- LCDScs=0;
- Bmp_Right_Disp(0,0,Bmp1);
- Bmp_Right_Disp(2,0,Bmp2);
- Bmp_Right_Disp(4,0,Bmp3);
- Bmp_Right_Disp(6,0,Bmp4);
- while(1)
- {
- }
- }
復(fù)制代碼 |