?? lcd.h
字號(hào):
#define _lcd_h
#define uint unsigned int
#define uchar unsigned char
sbit RS=P2^5;
sbit RW_SID=P2^6;
sbit E_CLK=P2^7;
void sendbyte(uchar dat);
void gotoxy(uchar x,uchar y);
void WRcom(uchar dat);
void WRdata(uchar dat);
void initlcd(void);
void clear(void);
void display_draw(uchar code *buff);
void clear_draw(void);
//延時(shí)子程序
void delay_ms(uint k)
{ uint t;
while(k--)
{ t=120;
while(t--);
}
}
void gotoxy(uchar x,uchar y)//x行y列
{
if(x==1)y=y+0x80;// 第1行//第y列
if(x==2)y=y+0x90;
if(x==3)y=y+0x88;
if(x==4)y=y+0x98;
WRcom(y);
}
void sendbyte(uchar dat) //串行發(fā)送數(shù)據(jù)
{
uchar i;
for(i=0;i<8;i++)
{
E_CLK=0;
if(dat&0x80) RW_SID=1;else RW_SID=0;
E_CLK=1;
dat<<=1;
}
}
void WRcom(uchar dat) //寫(xiě)命令
{
RS=1;
sendbyte(0xf8); //同RW=0;RS=0
sendbyte(dat&0xf0); //高
sendbyte((dat&0x0f)<<4); //低
RS=0;
}
void WRdata(uchar dat) //寫(xiě)數(shù)據(jù)
{
RS=1;
sendbyte(0xfa); //RW=0,RS=1
sendbyte(dat&0xf0);
sendbyte((dat&0x0f)<<4);
RS=0;
}
void initlcd(void)
{
WRcom(0x30);//8位傳輸//基本指令
WRcom(0x0c);//顯示屏開(kāi)//光標(biāo)關(guān) DB2 顯示屏開(kāi)關(guān) DB1 光標(biāo)開(kāi)關(guān) DB0 反白光 1為開(kāi),0為關(guān)
WRcom(0x01);//清屏
WRcom(0x02);//地址歸位
WRcom(0x80);//顯示第一行
WRcom(0x06);//自動(dòng)右移
}
////////////////////////////////
void clear(void)
{
WRcom(0x01);//清屏
WRcom(0x02);//地址歸位
delay_ms(10); //清屏要延時(shí)
}
void display_draw(uchar code *buff) //圖象顯示
{
uint j=0;
uchar x,y;
WRcom(0x36); //功能設(shè)置---8BIT控制界面,擴(kuò)充指令集 圖象顯示
for(y=0;y<32;y++) //上半屏幕 //32行,1行有八列,即2個(gè)字節(jié)為1列
for(x=0;x<8;x++)
{
WRcom(0x80+y); //縱坐標(biāo)
WRcom(0x80+x); //橫坐標(biāo)
WRdata(buff[j++]); //2個(gè)字節(jié)則發(fā)送兩次
WRdata(buff[j++]);
}
for(y=0;y<32;y++) //下半屏幕 //32行,1行有八列,即2個(gè)字節(jié)
for(x=0;x<8;x++)
{
WRcom(0x80+y); //縱坐標(biāo)
WRcom(0x88+x); //橫坐標(biāo)
WRdata(buff[j++]); //2個(gè)字節(jié)則發(fā)送兩次
WRdata(buff[j++]);
}
}
void clear_draw(void)//請(qǐng)整CGRAM(字符生成RAM) DDRAM(數(shù)據(jù)顯示)
{ unsigned char x,y;
WRcom(0x34); //功能設(shè)置---8BIT控制界面,擴(kuò)充指令集,關(guān)顯示
//上半屏顯示/////////////
for(y=0;y<32;y++)//整個(gè)屏有64行,上半屏有32行
for(x=0;x<8;x++)//一行有8列
{
WRcom(0x80+y); //縱座標(biāo)
WRcom(0x80+x); //橫座標(biāo)
WRdata(0x00);
WRdata(0x00);
}
//下半屏顯示/////////////
for(y=0;y<32;y++)//整個(gè)屏有64行,下半屏有32行
for(x=0;x<8;x++)//一行有8列
{
WRcom(0x80+y); //縱座標(biāo)
WRcom(0x88+x); //橫座標(biāo)
WRdata(0x00);
WRdata(0x00);
}
}
/*void clear_draw(void) //請(qǐng)整CGRAM(字符生成RAM) DDRAM(數(shù)據(jù)顯示) //只清了上半屏
{
uchar x,y;
WRcom(0x34);//功能設(shè)置---8BIT控制界面,擴(kuò)充指令集,關(guān)顯示
for(y=0;y<64;y++) //整個(gè)屏幕 //32行,1行有八列,即2個(gè)字節(jié)
for(x=0;x<8;x++)
{
WRcom(0x80+y);
WRcom(0x80+x);
WRdata(0x00); //2個(gè)字節(jié)則發(fā)送兩次
WRdata(0x00);
}
}*/
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -