?? lcd.c
字號:
#include <lcd.h>
char code FontSystem5x8[][6]= {
0x7e,0x11,0x11,0x11,0x7e,0x00, /* A */
0x7f,0x49,0x49,0x49,0x36, 0x00,/* B */
0x3e,0x41,0x41,0x41,0x22, 0x00,/* C */
0x7f,0x41,0x41,0x22,0x1c, 0x00,/* D */
0x7f,0x49,0x49,0x49,0x41, 0x00,/* E */
0x7f,0x09,0x09,0x09,0x01, 0x00,/* F */
0x3e,0x41,0x49,0x49,0x7a, 0x00,/* G */
0x7f,0x08,0x08,0x08,0x7f, 0x00,/* H */
0x00,0x41,0x7f,0x41,0x00, 0x00,/* I */
0x20,0x40,0x41,0x3f,0x01, 0x00,/* J */
0x7f,0x08,0x14,0x22,0x41, 0x00,/* K */
0x7f,0x40,0x40,0x40,0x40, 0x00,/* L */
0x7f,0x02,0x0c,0x02,0x7f, 0x00,/* M */
0x7f,0x04,0x08,0x10,0x7f, 0x00,/* N */
0x3e,0x41,0x41,0x41,0x3e, 0x00,/* O */
0x7f,0x09,0x09,0x09,0x06, 0x00,/* P 0x50 */
0x3e,0x41,0x51,0x21,0x5e, 0x00,/* Q */
0x7f,0x09,0x19,0x29,0x46,0x00, /* R */
0x26,0x49,0x49,0x49,0x32, 0x00,/* S */
0x01,0x01,0x7f,0x01,0x01, 0x00,/* T */
0x3f,0x40,0x40,0x40,0x3f, 0x00,/* U */
0x1f,0x20,0x40,0x20,0x1f, 0x00,/* V */
0x3f,0x40,0x38,0x40,0x3f, 0x00,/* W */
0x63,0x14,0x08,0x14,0x63, 0x00,/* X */
0x07,0x08,0x70,0x08,0x07, 0x00,/* Y */
0x61,0x51,0x49,0x45,0x43, 0x00,/* Z */
0x00,0x7f,0x41,0x41,0x00, 0x00,/* [ */
0x02,0x04,0x08,0x10,0x20, 0x00,/* \ */
0x00,0x41,0x41,0x7f,0x00, 0x00,/* ] */
0x04,0x02,0x01,0x02,0x04, 0x00,/* ^ */
0x40,0x40,0x40,0x40,0x40, 0x00,/* _ */
0x00,0x00,0x03,0x05,0x00, 0x00,/* ` 0x60 */
0x20,0x54,0x54,0x54,0x78, 0x00,/* a */
0x7F,0x44,0x44,0x44,0x38, 0x00,/* b */
0x38,0x44,0x44,0x44,0x44, 0x00,/* c */
0x38,0x44,0x44,0x44,0x7f, 0x00,/* d */
0x38,0x54,0x54,0x54,0x18, 0x00,/* e */
0x04,0x04,0x7e,0x05,0x05, 0x00,/* f */
0x08,0x54,0x54,0x54,0x3c, 0x00,/* g */
0x7f,0x08,0x04,0x04,0x78, 0x00,/* h */
0x00,0x44,0x7d,0x40,0x00, 0x00,/* i */
0x20,0x40,0x44,0x3d,0x00, 0x00,/* j */
0x7f,0x10,0x28,0x44,0x00, 0x00,/* k */
0x00,0x41,0x7f,0x40,0x00, 0x00,/* l */
0x7c,0x04,0x7c,0x04,0x78, 0x00,/* m */
0x7c,0x08,0x04,0x04,0x78, 0x00,/* n */
0x38,0x44,0x44,0x44,0x38, 0x00,/* o */
0x7c,0x14,0x14,0x14,0x08, 0x00,/* p 0x70 */
0x08,0x14,0x14,0x14,0x7c, 0x00,/* q */
0x7c,0x08,0x04,0x04,0x00, 0x00,/* r */
0x48,0x54,0x54,0x54,0x24, 0x00,/* s */
0x04,0x04,0x3f,0x44,0x44, 0x00,/* t */
0x3c,0x40,0x40,0x20,0x7c, 0x00,/* u */
0x1c,0x20,0x40,0x20,0x1c, 0x00,/* v */
0x3c,0x40,0x30,0x40,0x3c, 0x00,/* w */
0x44,0x28,0x10,0x28,0x44, 0x00,/* x */
0x0c,0x50,0x50,0x50,0x3c, 0x00,/* y */
0x44,0x64,0x54,0x4c,0x44, 0x00,/* z */
};
char code Hanzi[][32]=
{
/*-- 文字: 阿 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0xFE,0x12,0x2A,0xC6,0x00,0xE2,0x22,0x22,0x22,0xE2,0x02,0xFE,0x02,0x02,0x00,
0x00,0xFF,0x02,0x04,0x03,0x00,0x03,0x02,0x02,0x02,0x43,0x80,0x7F,0x00,0x00,0x00,
/*-- 文字: 啊 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0xFE,0x02,0x02,0xFE,0x00,0xFE,0x32,0xCE,0x00,0xF2,0x12,0xF2,0x02,0xFE,0x02,0x00,
0x07,0x02,0x02,0x07,0x00,0xFF,0x04,0x07,0x00,0x07,0x04,0x47,0x80,0x7F,0x00,0x00,
/*-- 文字: 哎 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0xFC,0x04,0x04,0x04,0xFC,0x08,0x08,0xDF,0x08,0x08,0x08,0xDF,0x08,0x08,0x08,0x00,
0x07,0x02,0x02,0x02,0x87,0x40,0x20,0x10,0x0B,0x04,0x0B,0x30,0x60,0xC0,0x40,0x00,
/*-- 文字: 哀 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x04,0x04,0xF4,0x94,0x94,0x94,0x95,0x96,0x94,0x94,0xF4,0x04,0x04,0x04,0x00,
0x00,0x10,0x10,0x09,0xFC,0x42,0x21,0x02,0x04,0x0C,0x16,0x33,0x62,0x20,0x20,0x00,
/*-- 文字: 唉 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0xFC,0x04,0x04,0xFC,0x00,0x80,0x68,0x5C,0x4B,0xC8,0x48,0x48,0x4A,0x5C,0x08,0x00,
0x07,0x01,0x01,0x03,0x81,0x42,0x22,0x12,0x0A,0x07,0x0A,0x12,0x62,0xC2,0x42,0x00,
/*-- 文字: 埃 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x20,0x20,0x20,0xFF,0x20,0x20,0x80,0x68,0x5C,0x4B,0xCA,0x48,0x4A,0x5C,0x08,0x00,
0x10,0x30,0x10,0x0F,0x08,0x49,0x42,0x22,0x12,0x0A,0x07,0x0A,0x12,0x62,0x22,0x00,
/*-- 文字: 挨 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x10,0x10,0x10,0xFF,0x90,0x50,0x00,0x88,0x6C,0x4B,0xC8,0x48,0x4C,0x58,0x00,0x00,
0x02,0x42,0x81,0x7F,0x00,0x82,0x82,0x42,0x22,0x1A,0x0F,0x12,0x62,0xC2,0x42,0x00,
/*-- 文字: 皚 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0xF8,0x8C,0x8B,0xF8,0x00,0x5E,0x50,0x50,0x5F,0x50,0x50,0xD0,0x1E,0x00,0x00,
0x00,0x3F,0x08,0x08,0x1F,0x00,0x3E,0x42,0x42,0x42,0x42,0x42,0x47,0x40,0x70,0x00,
};
uchar Busy;/*判忙*/
//uchar data i,j,k,Disp_Page;
uchar data Column;/*定義列*/
uchar data Page;/*定義頁*/
void GLCD_Locate (uchar u8Column, uchar u8Line)
{
Column = u8Column;
Page = u8Line;
}
void LcdSelectSide(uchar u8LcdSide)
{
LcdData=0xff;
if(u8LcdSide==Left)
{
E1=1;/*左半屏片選*/
Busy=LcdData;
E1=0;/*左半屏片選*/
}
else
{
E2=1;/*右半屏片選*/
Busy=LcdData;
E2=0;
}
}
void LcdWaitBusy (uchar u8LcdSide)
{
R_W=1;
A0=0;/*讀狀態(tài)指令*/
do
{
LcdSelectSide(u8LcdSide);
}while(Busy&0x80);
}
/********************寫屏指令子程序********************/
void LcdInstructionWrite (uchar u8Instruction,uchar u8LcdSide)
{
LcdWaitBusy (u8LcdSide);
R_W=0;/*寫數(shù)據(jù)*/
A0=0;
LcdData=u8Instruction;
if(u8LcdSide==Left)
{
E1=1;
LcdData=u8Instruction;
E1=0;/*屏處于未選狀態(tài)*/
}
else
{
E2=1;
LcdData=u8Instruction;
E2=0;/*屏處于未選狀態(tài)*/
}
}
/********************送屏顯示字符子程序********************/
void LcdDataWrite (uchar u8Data,uchar u8LcdSide)
{
LcdWaitBusy (u8LcdSide);
A0=1;
R_W=0;/*寫數(shù)據(jù)指令*/
LcdData=u8Data;
if(u8LcdSide==Left)
{
E1=1;
LcdData=u8Data;
E1=0;/*屏處于未選狀態(tài)*/
}
else
{
E2=1;
LcdData=u8Data;
E2=0;/*屏處于未選狀態(tài)*/
}
}
/********************清屏子程序********************/
void Clearlcd()
{
uchar data i,j,Disp_Page;
for(i=0;i<4;i++)
{
Disp_Page=i|0xb8;/*設置頁地址*/
LcdInstructionWrite(Disp_Page,Left); /*送入左半屏*/
LcdInstructionWrite(0x00,Left); /*設置列地址*/
/*左半屏清屏*/
for(j=0;j<61;j++)
{
LcdDataWrite(0x00,Left);
}
}
for(i=0;i<4;i++)
{
Disp_Page=i|0xb8;/*設置頁地址*/
LcdInstructionWrite(Disp_Page,Right); /*送入右半屏*/
LcdInstructionWrite(0x00,Right);/*設置列地址*/
/*右半屏清屏*/
for(j=0;j<61;j++)
{
LcdDataWrite(0x00,Right);
}
}
}
/********************初始化子程序********************/
void GLCD_LcdInit()
{
P0=0xff;
P1=0xff;
P2=0xff;
P3=0xff;
E1=0;
E2=0; /*屏幕處于未選狀態(tài)*/
Delay();
/*復位*/
LcdInstructionWrite(0xE2,Left);
LcdInstructionWrite(0xE2,Right);
/*正常工作狀態(tài)設置*/
LcdInstructionWrite(0xA4,Left);
LcdInstructionWrite(0xA4,Right);
/*占空比選擇*/
LcdInstructionWrite(0xA9,Left);
LcdInstructionWrite(0xA9,Right);
/*ADC選擇指令*/
LcdInstructionWrite(0xA0,Left);
LcdInstructionWrite(0xA0,Right);
/*關(guān)顯示指令*/
LcdInstructionWrite(0xAE,Left);
LcdInstructionWrite(0xAE,Right);
/*設置起始行*/
LcdInstructionWrite(0xC0,Left);
LcdInstructionWrite(0xC0,Right);
LcdInstructionWrite(0xe0,Left);
LcdInstructionWrite(0xee,Left);
LcdInstructionWrite(0xe0,Right);
LcdInstructionWrite(0xee,Right);
Clearlcd();
/*開顯示指令*/
LcdInstructionWrite(0xAF,Left);
LcdInstructionWrite(0xAF,Right);
}
/********************延時子程序********************/
void Delay()
{
uchar data i,j;
for(i=0;i<255;i++)
for(j=0;j<255;j++);
}
/********************漢字子程序********************/
//寫單字節(jié)
void GLCD_Write_Byte (uchar u8Byte)
{
if(Column<61)
{
LcdInstructionWrite(0xe0,Left);
LcdInstructionWrite(0xee,Left);
/*設置頁地址*/
LcdInstructionWrite(Page|0xb8,Left);
/*設置頁地址*/
LcdInstructionWrite(Column|0x00,Left);
LcdDataWrite (u8Byte,Left);
}
else
{
LcdInstructionWrite(0xe0,Right);
LcdInstructionWrite(0xee,Right);
LcdInstructionWrite(Page|0xb8,Right);
LcdInstructionWrite((Column-61)|0x00,Right);
LcdDataWrite (u8Byte,Right);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -