for(i=0;i<t;i++);[ size][="" align]
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; //僅當?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;
P0=cmdcode;
LCDdelay(2);
LCDEnable=1;
LCDdelay(2);
LCDEnable=0;
}
/*****************************************************************************
函數(shù)功能:LCD初始化程序
入口參數(shù):
出口參數(shù):
*****************************************************************************/
void init_lcd()
{
LCDdelay(100);
LCDMcs=1;//剛開始關閉兩屏
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;
P0=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); //每頁每頁進行寫
for(j=0;j<64;j++) //每頁最多可寫32個中文文字或64個ASCII字符
{
write_com(LCDCol_Add+j);
write_data(0x00);//控制列數(shù)0-63,共64列,寫點內(nèi)容,列地址自動加1
}
}
}
void main()
{
init_lcd();
Clr_Scr();
LCDMcs=0; //左屏開顯示
LCDScs=1;
Bmp_Left_Disp(0,0,Hz);
LCDMcs=1; //右屏開顯示
LCDScs=0;
Bmp_Right_Disp(0,0,Hz);
while(1)
{
}
}
3.3同時顯示多個漢字 用字模軟件取模后通過改寫軟件,仿真圖形如圖5所示。
1.008.jpg (37.88 KB, 下載次數(shù): 108)
下載附件
2016-9-26 18:23 上傳
圖5 顯示多個漢字的仿真圖
代碼如下所示:
#include
#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^1 ; /*片選1*/
sbit LCDScs=P2^2 ; /*片選2*/
sbit RESET=P2^3 ; /*復位信號*/
sbit LCDDi=P2^4 ; /*數(shù)據(jù)/指令 選擇*/
sbit LCDRW=P2^5 ; /*讀/寫 選擇*/
sbit LCDEnable=P2^6 ; /*讀/寫 使能*/
unsigned char code Bmp1[]=
{
/*------------------------------------------------------------------------------
源文件 / 文字 : 來自剪貼板!武漢理工大學
寬×高(像素): 128×16
字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/256字節(jié)
數(shù)據(jù)轉(zhuǎn)換日期 : 2010-7-29 17:52:57
顯示的漢字:武漢理工大學
------------------------------------------------------------------------------*/
0x00,0x40,0x20,0x10,0x08,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x20,0x20,0x24,0x24,0x24,0xE4,0x24,0x20,0x20,0xFE,0x20,0x24,0x28,0x20,
0x00,0x20,0xC2,0x0C,0x80,0x60,0x04,0x7C,0x84,0x04,0x04,0xC4,0x3E,0x04,0x00,0x00,
0x88,0x88,0xF8,0x88,0x88,0x00,0xFC,0x24,0x24,0xFC,0x24,0x24,0xFE,0x04,0x00,0x00,
0x08,0x08,0x08,0x08,0x08,0xF8,0x08,0x08,0x08,0x08,0x0C,0x08,0x00,0x00,0x20,0x20,
0x20,0x20,0x20,0x20,0xFE,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00,0x40,0x30,0x10,
0x52,0x5C,0x50,0x52,0x5C,0x50,0xD8,0x56,0x10,0x50,0x30,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x20,0x60,0x3F,0x20,0x20,0x1F,0x12,0x12,0x10,0x07,0x18,0x20,0x40,0x78,
0x00,0x04,0x04,0x7E,0x41,0x40,0x20,0x10,0x0B,0x04,0x0B,0x10,0x20,0x60,0x20,0x00,
0x10,0x30,0x1F,0x08,0x48,0x40,0x4B,0x49,0x49,0x7F,0x49,0x49,0x6B,0x40,0x08,0x20,
0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00,0x40,0x40,
0x20,0x10,0x08,0x06,0x01,0x02,0x04,0x08,0x10,0x20,0x60,0x20,0x00,0x04,0x04,0x04,
0x04,0x04,0x24,0x44,0x3F,0x05,0x04,0x04,0x04,0x06,0x04,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
unsigned char code Bmp2[]=
{
/*------------------------------------------------------------------------------
源文件 / 文字 : 信息工程學院
寬×高(像素): 128×16
字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/256字節(jié)
數(shù)據(jù)轉(zhuǎn)換日期 : 2010-7-29 18:34:04
顯示的漢字:信息工程學院
------------------------------------------------------------------------------*/
0x00,0x40,0x20,0x10,0x08,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x40,0xF0,0x0E,0x00,0x28,0x28,0x28,0x2A,0x2C,0x28,0x28,0x28,0x08,0x00,
0x00,0x00,0x00,0xF8,0xA8,0xAC,0xAA,0xA8,0xA8,0xA8,0xFC,0x08,0x00,0x00,0x00,0x00,
0x08,0x08,0x08,0x08,0x08,0xF8,0x08,0x08,0x08,0x08,0x0C,0x08,0x00,0x00,0x20,0x24,
0xA4,0xFC,0x26,0x24,0x00,0x7C,0x24,0x24,0x24,0x24,0x7C,0x00,0x00,0x40,0x30,0x10,
0x52,0x5C,0x50,0x52,0x5C,0x50,0xD8,0x56,0x10,0x50,0x30,0x00,0x00,0xFC,0x04,0x64,
0x9C,0x20,0x58,0x48,0x4A,0x4C,0x48,0x48,0x18,0x08,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x7F,0x00,0x00,0x01,0x7D,0x25,0x25,0x25,0x25,0x7D,0x01,0x00,0x00,
0x00,0x20,0x18,0x03,0x3A,0x42,0x46,0x5A,0x42,0x42,0x73,0x00,0x08,0x30,0x00,0x20,
0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00,0x08,0x06,
0x01,0x7F,0x01,0x42,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x41,0x00,0x04,0x04,0x04,
0x04,0x04,0x24,0x44,0x3F,0x05,0x04,0x04,0x04,0x06,0x04,0x00,0x00,0x7F,0x04,0x08,
0x47,0x41,0x21,0x1F,0x01,0x01,0x3F,0x41,0x41,0x79,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
unsigned char code Bmp3[]=
{
/*------------------------------------------------------------------------------
源文件 / 文字 : 通信工程
寬×高(像素): 128×
字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/256字節(jié)
數(shù)據(jù)轉(zhuǎn)換日期 : 2010-7-29 18:36:04
顯示漢字:通信工程
------------------------------------------------------------------------------*/
0x00,0x40,0x20,0x10,0x08,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x42,
0xCC,0x00,0x00,0xF4,0x54,0x5C,0xF4,0x5C,0x56,0xF4,0x00,0x00,0x00,0x80,0x40,0xF0,
0x0E,0x00,0x28,0x28,0x28,0x2A,0x2C,0x28,0x28,0x28,0x08,0x00,0x00,0x08,0x08,0x08,
0x08,0x08,0xF8,0x08,0x08,0x08,0x08,0x0C,0x08,0x00,0x00,0x20,0x24,0xA4,0xFC,0x26,
0x24,0x00,0x7C,0x24,0x24,0x24,0x24,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x10,
0x0F,0x10,0x20,0x5F,0x42,0x42,0x5F,0x42,0x52,0x5F,0x40,0x40,0x00,0x00,0x00,0x7F,
0x00,0x00,0x01,0x7D,0x25,0x25,0x25,0x25,0x7D,0x01,0x00,0x00,0x20,0x20,0x20,0x20,
0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00,0x08,0x06,0x01,0x7F,0x01,
0x42,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
unsigned char code Bmp4[]=
{
/*------------------------------------------------------------------------------
源文件 / 文字 : 0606班
寬×高(像素): 128×16
字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/256字節(jié)
數(shù)據(jù)轉(zhuǎn)換日期 : 2010-7-29 18:37:59
顯示的漢字:0606班
------------------------------------------------------------------------------*/
0x00,0x40,0x20,0x10,0x08,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x20,0x10,0x10,0x20,0xC0,0x00,0x00,0xC0,
0x20,0x10,0x10,0x30,0x00,0x00,0x00,0xC0,0x20,0x10,0x10,0x20,0xC0,0x00,0x00,0xC0,
0x20,0x10,0x10,0x30,0x00,0x00,0x44,0x44,0xFC,0x44,0x04,0xC0,0x00,0xFE,0x84,0x84,
0xFC,0x84,0x84,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,0x00,0x1F,
0x22,0x21,0x21,0x21,0x1E,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,0x00,0x1F,
0x22,0x21,0x21,0x21,0x1E,0x00,0x10,0x10,0x0F,0x48,0x28,0x11,0x08,0x27,0x20,0x20,
0x3F,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
/****************************************************************************
函數(shù)功能:LCD延時程序
入口參數(shù):t
出口參數(shù):
****************************************************************************/
void LCDdelay(unsigned int t)
{
unsigned int i,j;
for(i=0;i<t;i++);[ size][="" align]
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; //僅當?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;
P0=cmdcode;
LCDdelay(2);
LCDEnable=1;
LCDdelay(2);
LCDEnable=0;
}
/*****************************************************************************
函數(shù)功能:LCD初始化程序
入口參數(shù):
出口參數(shù):
*****************************************************************************/
void init_lcd()
{
LCDdelay(100);
LCDMcs=1;//剛開始關閉兩屏
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;
P0=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); //每頁每頁進行寫
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)
{
}
}
3.4向上滾動顯示仿真圖形如圖6所示。
1.009.jpg (20.89 KB, 下載次數(shù): 113)
下載附件
2016-9-26 18:23 上傳
1.010.jpg (21.3 KB, 下載次數(shù): 102)
下載附件
2016-9-26 18:23 上傳
(a)第一次全部顯示 (b)開始滾動顯示
1.011.jpg (21.47 KB, 下載次數(shù): 104)
下載附件
2016-9-26 18:23 上傳
1.012.jpg (21.88 KB, 下載次數(shù): 106)
下載附件
2016-9-26 18:23 上傳
(c) (d)
程序如下所示:
- #include
- #define uchar unsigned char
- #define uint unsigned int
- #define LCDLCDDisp_Off 0x3e
- #define LCDLCDDisp_On 0x3f
- #define Page_Add 0xb8//ye
- #define LCDCol_Add 0x40//lie
- #define Start_Line 0xC0//hang
- /*****液晶顯示器的端口定義*****/
- #define data_ora P0 /*液晶數(shù)據(jù)總線*/
- sbit LCDMcs=P2^1 ; /*片選1*/
- sbit LCDScs=P2^2 ; /*片選2*/
- sbit RESET=P2^3 ; /*復位信號*/
- sbit LCDDi=P2^4 ; /*數(shù)據(jù)/指令 選擇*/
- sbit LCDRW=P2^5 ; /*讀/寫 選擇*/
- sbit LCDEnable=P2^6 ; /*讀/寫 使能*/
-
- uchar *tab;
- uint k=0;
- uchar code hz1[]=
- {
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- /*------------------------------------------------------------------------------
- 源文件 / 文字 : 武
- 寬×高(像素): 16×16
- 字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
- 數(shù)據(jù)轉(zhuǎn)換日期 : 2010-7-31 15:50:18
- ------------------------------------------------------------------------------*/
- 0x10,0x50,0x34,0x14,0x1C,0xD4,0x16,0x14,0x10,0x7F,0x90,0x12,0x14,0x10,0x10,0x00,
- 0x40,0x40,0x7F,0x20,0x20,0x1F,0x11,0x11,0x01,0x00,0x07,0x18,0x20,0x40,0xF0,0x00,
- /*------------------------------------------------------------------------------
- 源文件 / 文字 : 漢
- 寬×高(像素): 16×16
- 字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
- 數(shù)據(jù)轉(zhuǎn)換日期 : 2010-7-31 15:51:45
- ------------------------------------------------------------------------------*/
- 0x10,0x60,0x21,0x96,0x68,0x04,0x1E,0xE4,0x04,0x04,0x04,0xE4,0x1C,0x04,0x00,0x00,
- 0x04,0x04,0x7E,0x01,0x40,0x20,0x20,0x10,0x0B,0x04,0x0B,0x10,0x30,0x60,0x20,0x00,
- /*------------------------------------------------------------------------------
- 源文件 / 文字 : 理
- 寬×高(像素): 16×16
- 字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
- 數(shù)據(jù)轉(zhuǎn)換日期 : 2010-7-31 15:52:29
- ------------------------------------------------------------------------------*/
- 0x44,0x44,0xFC,0x54,0x4C,0x04,0xFE,0x92,0x92,0xFE,0x92,0x92,0x92,0xFE,0x00,0x00,
- 0x10,0x10,0x0F,0x08,0x48,0x40,0x45,0x44,0x44,0x7F,0x44,0x44,0x44,0x45,0x40,0x00,
- /*------------------------------------------------------------------------------
- 源文件 / 文字 : 工
- 寬×高(像素): 16×16
- 字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
- 數(shù)據(jù)轉(zhuǎn)換日期 : 2010-7-31 15:53:19
- ------------------------------------------------------------------------------*/
- 0x00,0x40,0x22,0x12,0x0A,0x06,0x02,0xFE,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
- /*------------------------------------------------------------------------------
- 源文件 / 文字 : 大
- 寬×高(像素): 16×16
- 字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
- 數(shù)據(jù)轉(zhuǎn)換日期 : 2010-7-31 15:53:53
- ------------------------------------------------------------------------------*/
- 0x20,0x60,0x20,0x30,0x28,0x24,0xA2,0x7F,0xA0,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
- 0x00,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x01,0x06,0x08,0x30,0x60,0xC0,0x40,0x00,
- /*------------------------------------------------------------------------------
- 源文件 / 文字 : 學
- 寬×高(像素): 16×16
- 字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
- 數(shù)據(jù)轉(zhuǎn)換日期 : 2010-7-31 15:54:23
- ------------------------------------------------------------------------------*/
- 0x40,0x70,0x30,0x12,0x5C,0x54,0x52,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,
-
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- uchar code hz2[]=
- {
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
- /*------------------------------------------------------------------------------
- 源文件 / 文字 : 信
- 寬×高(像素): 16×16
- 字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
- 數(shù)據(jù)轉(zhuǎn)換日期 : 2010-7-31 15:56:07
- ------------------------------------------------------------------------------*/
- 0x80,0x40,0x30,0xFC,0x0F,0x0E,0xAA,0xA8,0xA9,0xAE,0xAA,0xA8,0xA8,0x08,0x08,0x00,
- 0x00,0x00,0x00,0x7F,0x00,0x00,0x7E,0x22,0x22,0x22,0x22,0x22,0x7E,0x00,0x00,0x00,
- /*------------------------------------------------------------------------------
- 源文件 / 文字 : 息
- 寬×高(像素): 16×16
- 字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
- 數(shù)據(jù)轉(zhuǎn)換日期 : 2010-7-31 15:56:47
- ------------------------------------------------------------------------------*/
- 0x00,0x40,0x20,0xFC,0x5C,0x54,0x56,0x55,0x54,0x54,0x54,0xFC,0x00,0x00,0x00,0x00,
- 0x00,0x20,0x38,0x01,0x3D,0x41,0x41,0x45,0x59,0x41,0x41,0x71,0x00,0x08,0x30,0x00,
- /*------------------------------------------------------------------------------
- 源文件 / 文字 : 工
- 寬×高(像素): 16×16
- 字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
- 數(shù)據(jù)轉(zhuǎn)換日期 : 2010-7-31 15:57:52
- ------------------------------------------------------------------------------*/
- 0x00,0x40,0x22,0x12,0x0A,0x06,0x02,0xFE,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
- /*------------------------------------------------------------------------------
- 源文件 / 文字 : 程
- 寬×高(像素): 16×16
- 字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
- 數(shù)據(jù)轉(zhuǎn)換日期 : 2010-7-31 15:58:28
- ------------------------------------------------------------------------------*/
- 0x10,0x52,0xF2,0xFE,0x99,0x15,0x82,0xBF,0xA1,0xA1,0xA1,0xA1,0xBF,0x80,0x00,0x00,
- 0x04,0x03,0x00,0xFF,0x00,0x41,0x44,0x44,0x44,0x7F,0x44,0x44,0x44,0x44,0x40,0x00,
- /*------------------------------------------------------------------------------
- 源文件 / 文字 : 學
- 寬×高(像素): 16×16
- 字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
- 數(shù)據(jù)轉(zhuǎn)換日期 : 2010-7-31 15:59:06
- ------------------------------------------------------------------------------*/
- 0x40,0x70,0x30,0x12,0x5C,0x54,0x52,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,
- /*------------------------------------------------------------------------------
- 源文件 / 文字 : 院
- 寬×高(像素): 16×16
- 字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
- 數(shù)據(jù)轉(zhuǎn)換日期 : 2010-7-31 15:59:51
- ------------------------------------------------------------------------------*/
- 0xFE,0x42,0x32,0x5A,0x8E,0x0C,0x26,0x24,0x25,0x26,0x24,0x24,0x24,0x0C,0x04,0x00,
- 0xFF,0x00,0x02,0x04,0x83,0x41,0x31,0x0F,0x01,0x01,0x7F,0x81,0x81,0x81,0xF1,0x00,
-
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- };
- uchar code hz3[]=
- {
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- /*------------------------------------------------------------------------------
- 源文件 / 文字 : 通
- 寬×高(像素): 16×16
- 字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
- 數(shù)據(jù)轉(zhuǎn)換日期 : 2010-7-31 16:02:05
- ------------------------------------------------------------------------------*/
- 0x40,0x41,0xE6,0x10,0x08,0xF6,0x52,0x52,0x56,0xFA,0x5A,0x56,0xF2,0x00,0x00,0x00,
- 0x40,0x20,0x1F,0x20,0x40,0x5F,0x42,0x42,0x42,0x5F,0x4A,0x52,0x4F,0x40,0x40,0x00,
- /*------------------------------------------------------------------------------
- 源文件 / 文字 : 信
- 寬×高(像素): 16×16
- 字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
- 數(shù)據(jù)轉(zhuǎn)換日期 : 2010-7-31 16:02:40
- ------------------------------------------------------------------------------*/
- 0x80,0x40,0x30,0xFC,0x0F,0x0E,0xAA,0xA8,0xA9,0xAE,0xAA,0xA8,0xA8,0x08,0x08,0x00,
- 0x00,0x00,0x00,0x7F,0x00,0x00,0x7E,0x22,0x22,0x22,0x22,0x22,0x7E,0x00,0x00,0x00,
- /*------------------------------------------------------------------------------
- 源文件 / 文字 : 工
- 寬×高(像素): 16×16
- 字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
- 數(shù)據(jù)轉(zhuǎn)換日期 : 2010-7-31 15:57:52
- ------------------------------------------------------------------------------*/
- 0x00,0x40,0x22,0x12,0x0A,0x06,0x02,0xFE,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
- /*------------------------------------------------------------------------------
- 源文件 / 文字 : 程
- 寬×高(像素): 16×16
- 字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
- 數(shù)據(jù)轉(zhuǎn)換日期 : 2010-7-31 15:58:28
- ------------------------------------------------------------------------------*/
- 0x10,0x52,0xF2,0xFE,0x99,0x15,0x82,0xBF,0xA1,0xA1,0xA1,0xA1,0xBF,0x80,0x00,0x00,
- 0x04,0x03,0x00,0xFF,0x00,0x41,0x44,0x44,0x44,0x7F,0x44,0x44,0x44,0x44,0x40,0x00,
-
-
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- uchar code hz4[]=
- {
-
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
- /*------------------------------------------------------------------------------
- 源文件 / 文字 : 許
- 寬×高(像素): 16×16
- 字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
- 數(shù)據(jù)轉(zhuǎn)換日期 : 2010-7-31 16:05:36
- ------------------------------------------------------------------------------*/
- 0x40,0x41,0x6E,0xD4,0x08,0x44,0x32,0x0F,0x08,0x08,0xF8,0x08,0x08,0x08,0x00,0x00,
- 0x00,0x00,0x00,0x7F,0x20,0x11,0x01,0x01,0x01,0x01,0xFF,0x01,0x01,0x01,0x01,0x00,
- /*------------------------------------------------------------------------------
- 源文件 / 文字 : 萍
- 寬×高(像素): 16×16
- 字模格式/大小 : 單色點陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
- 數(shù)據(jù)轉(zhuǎn)換日期 : 2010-7-31 16:06:07
- ------------------------------------------------------------------------------*/
- 0x84,0x54,0x64,0x34,0x0C,0xAF,0x26,0x24,0x24,0xFF,0x24,0x24,0xE4,0xA4,0x04,0x00,
- 0x10,0x13,0xF9,0x06,0x00,0x08,0x09,0x0A,0x08,0xFF,0x08,0x0A,0x09,0x08,0x08,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
-
- };
- /****************************************************************************
- 函數(shù)功能:LCD延時程序
- 入口參數(shù):t
- 出口參數(shù):
- ****************************************************************************/
- void LCDdelay(uchar x)
- {
-
-
- int d;
- uchar y;
- for(y=0;y<x;y++)
- for(d=0;d<10;d++);
- }
- /****************************************************************************
- 狀態(tài)檢查,LCD是否忙
-
-
- *****************************************************************************/
- void CheckState()
- {
- uchar 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(1);//延時
- dat=DATA;
- LCDEnable=0;
- dat=0x80 & dat; //僅當?shù)?位為0時才可操作(判別busy信號)
- }
- while(!(dat==0x00));
- }
- /*****************************************************************************
- 函數(shù)功能:寫命令到LCD程序,RS(DI)=L,RW=L,EN=H,即來一個脈沖寫一次
- 入口參數(shù):cmdcode
- 出口參數(shù):
- *****************************************************************************/
- void write_com(uchar cmdcode)
- {
- CheckState();//檢測LCD是否忙
- LCDDi=0;
- LCDRW=0;
- P0=cmdcode;
- LCDdelay(1);
- LCDEnable=1;
- LCDdelay(1);
- LCDEnable=0;
- }
-
- /*****************************************************************************
- 函數(shù)功能:寫數(shù)據(jù)到LCD程序,RS(DI)=H,RW=L,EN=H,即來一個脈沖寫一次
- 入口參數(shù):LCDDispdata
- 出口參數(shù):
- *****************************************************************************/
- void write_data(uchar LCDDispdata)
- {
- CheckState();//檢測LCD是否忙
- LCDDi=1;
- LCDRW=0;
- P0=LCDDispdata;
- LCDdelay(1);
- LCDEnable=1;
- LCDdelay(1);
- LCDEnable=0;
- }
- /*****************************************************************************
- /*****************************************************************************
- 函數(shù)功能:LCD初始化程序
- 入口參數(shù):
- 出口參數(shù):
- *****************************************************************************/
- void init_lcd()
- {
- LCDdelay(1);
- LCDMcs=1;//剛開始關閉兩屏
- LCDScs=1;
- LCDdelay(1);
- write_com(LCDLCDDisp_Off); //寫初始化命令
- write_com(Page_Add+0);
- write_com(Start_Line+0);
- write_com(LCDCol_Add+0);
- write_com(LCDLCDDisp_On);
- }
- /**************************************************************************
- 函數(shù)功能:清除LCD內(nèi)存程序
- 入口參數(shù):pag,col,hzk
- 出口參數(shù):
- *****************************************************************************/
- void Clr_Scr()
- {
- uchar 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); //每頁每頁進行寫
- 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ù):
- *****************************************************************************/
- Disp(uchar page,uchar column, uchar code *word)
- {
- uchar i;
- LCDMcs=0;
- LCDScs=1;
- write_com(0xb8|page);
- write_com(0x40|column);
- for(i=0;i<16;i++)
- write_data(word[i]);
- for(i=32;i<48;i++)
- write_data(word[i]);
- for(i=64;i<80;i++)
- write_data(word[i]);
- for(i=96;i<112;i++)
- write_data(word[i]);
-
- LCDMcs=1;
- LCDScs=0;
- write_com(0xb8|page);
- write_com(0x40);
- for(i=128;i<144;i++)
- write_data(word[i]);
- for(i=160;i<176;i++)
- write_data(word[i]);
- for(i=192;i<208;i++)
- write_data(word[i]);
- for(i=224;i<240;i++)
- write_data(word[i]);
-
- LCDMcs=0;
- LCDScs=1;
- write_com(0xb8|page+1);
- write_com(0x40|column);
- for(i=16;i<32;i++)
- write_data(word[i]);
- for(i=48;i<64;i++)
- write_data(word[i]);
- for(i=80;i<96;i++)
- write_data(word[i]);
- for(i=112;i<128;i++)
- write_data(word[i]);
-
-
- LCDMcs=1;
- LCDScs=0;
- write_com(0xb8|page+1);
- write_com(0x40);
- for(i=144;i<160;i++)
- write_data(word[i]);
- for(i=176;i<192;i++)
- write_data(word[i]);
- for(i=208;i<224;i++)
- write_data(word[i]);
- for(i=240;i<250;i++)
- write_data(word[i]);
- }
-
- void main()
- {
- init_lcd();
- Clr_Scr();
- k=0;
- for(k=0xc0;k<0xff;k++)
- {
- Disp(0,0,hz1);
- Disp(2,0,hz2);
- Disp(4,0,hz3);
- Disp(6,0,hz4);
- LCDMcs=0;
- LCDScs=0;
- write_com(k);
- LCDdelay(2);
-
- }
- while(1)
- {
-
- }
- }
復制代碼
4小結(jié) 剛開始學液晶時感覺好難,字模就困擾了我好多天。通過看資料查資料,以及看程序搞懂了,通過寫程序仿真,對液晶的控制更明白,主要寫的是并行數(shù)據(jù)傳輸?shù)拇a。寫了一個漢字的顯示,多個漢字顯示程序,圖形顯示的程序,還有漢字動態(tài)顯示。由于取字模軟件運行有點問題,左上角上自動多出一撇,所以顯示字或圖形的左上角多出一撇。后面寫一個漢字一個漢字顯示程序并仿真,還有波形顯示程序和仿真。