?? svm12864_lcd.h
字號:
//----------------LCD引腳配置
sbit E=P1^3; //(SCLK)
sbit RW=P1^4; //(SID)
sbit RS=P1^5; //(CS)
//-----------------延時參數
void Delay(unsigned char t)
{unsigned int a;
while(t--)
{for(a=1;a<1000;a++);
}
}
//-----------------寫數據
void WriteData(unsigned char DB)
{unsigned char i,temp;
RS=1;
RW=1;
E=0;
E=1; //-1
E=0;
E=1; //-2
E=0;
E=1; //-3
E=0;
E=1; //-4
E=0;
E=1; //-5
E=0;
RW=0;
E=1; //-6
E=0;
RW=1;
E=1; //-7
E=0;
RW=0;
E=1; //-8
E=0;
temp=DB;
for(i=0;i<4;i++)
{temp=temp&0x80;
if(temp==0x80)
{RW=1;
E=1;
E=0;
}
else
{RW=0;
E=1;
E=0;
}
DB=DB<<1;
temp=DB;
}
RW=0;
E=1; //-1
E=0;
E=1; //-2
E=0;
E=1; //-3
E=0;
E=1; //-4
E=0;
temp=DB;
for(i=0;i<4;i++)
{temp=temp&0x80;
if(temp==0x80)
{RW=1;
E=1;
E=0;
}
else
{RW=0;
E=1;
E=0;
}
DB=DB<<1;
temp=DB;
}
RW=0;
E=1; //-1
E=0;
E=1; //-2
E=0;
E=1; //-3
E=0;
E=1; //-4
E=0;
RS=1;
Delay(1);
}
//--------------------寫命名
void WriteCMD(unsigned char DB)
{unsigned char i,temp;
RS=1;
RW=1;
E=0;
E=1; //-1
E=0;
E=1; //-2
E=0;
E=1; //-3
E=0;
E=1; //-4
E=0;
E=1; //-5
E=0;
RW=0;
E=1; //-6
E=0;
E=1; //-7
E=0;
E=1; //-8
E=0;
temp=DB;
for(i=0;i<4;i++)
{temp=temp&0x80;
if(temp==0x80)
{RW=1;
E=1;
E=0;
}
else
{RW=0;
E=1;
E=0;
}
DB=DB<<1;
temp=DB;
}
RW=0;
E=1; //-1
E=0;
E=1; //-2
E=0;
E=1; //-3
E=0;
E=1; //-4
E=0;
temp=DB;
for(i=0;i<4;i++)
{temp=temp&0x80;
if(temp==0x80)
{RW=1;
E=1;
E=0;
}
else
{RW=0;
E=1;
E=0;
}
DB=DB<<1;
temp=DB;
}
RW=0;
E=1; //-1
E=0;
E=1; //-2
E=0;
E=1; //-3
E=0;
E=1; //-4
E=0;
RS=1;
Delay(1);
}
/**********************************************
函數名:LCD_AT(unsigned char AC)
功能:定義字顯示位置
入口參數:AC (為1,2,3,4)顯示行位置
出口參數:無
**********************************************/
void LCD_At(unsigned char AC)
{if(AC==1)
WriteCMD(0x80);
if(AC==2)
WriteCMD(0x90);
if(AC==3)
WriteCMD(0x88);
if(AC==4)
WriteCMD(0x98);
}
/*********************************************
函數名:LCD_Ini()
功能:12864初始化
入口參數:無
出口參數:無
*********************************************/
void LCD_Ini()
{Delay(20);
WriteCMD(0x30);
Delay(5);
WriteCMD(0x30); //function set
Delay(1);
WriteCMD(0x08); //display off
Delay(1);
WriteCMD(0x01); //display clear
Delay(1);
WriteCMD(0x03); //entry mode set
Delay(1);
WriteCMD(0x40); //set AC
Delay(1);
WriteCMD(0x0c); //display on
Delay(1);
}
/*****************************************
函數名:LCD_Printf(char *GB)
功能:顯示中文字符串
入口參數:*GB 字符串指針
出口參數:無
*****************************************/
void LCD_Printf(char *GB) //顯示字符串
{for(;*GB != 0;GB++)
{WriteData(*GB);
}
}
/*****************************************
函數名:LCD_To(unsigned char Y,unsigned char X)
功能:字符定位
入口參數:Y,X位置參數,Y行參數,X列參數
出口參數:無
*****************************************/
void LCD_To(unsigned char Y,unsigned char X) //定位
{unsigned char at;
if(Y>5) return;
if(X>9) return;
if(Y==1) at=0x80+X;
if(Y==2) at=0x90+X;
if(Y==3) at=0x88+X;
if(Y==4) at=0x98+X;
WriteCMD(at);
}
/*****************************************
函數名:LCD_Print(unsigned char Y,unsigned char X,char *TXT)
功能:字符串定位顯示
入口參數:Y,X位置參數,Y行參數,X列參數,*TXT顯示字符串
出口參數:無
*****************************************/
void LCD_Print(unsigned char Y,unsigned char X,char *TXT) //定位顯示字符串
{LCD_To(Y,X);
for(;*TXT != 0;TXT++)
{WriteData(*TXT);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -