?? lcd128x64.c
字號:
delay(0);
E = 1;
delay(0);
E = 0;
tmpin = P0;
return tmpin;
}
/*-------------------------顯示邊框-------------------------------*/
/*
void frame()
{
unsigned char i;
CS2=1;
CS1=1;
write_command(Page_Add+0); // 設置頁地址 //
write_command(Col_Add+0); // 設置列地址 //
for(i=0;i<64;i++) write_data(0x01);
write_command(Page_Add+7);
write_command(Col_Add+0);
for(i=0;i<64;i++) write_data(0x80);
for(i=0;i<8;i++)
{
CS2=0;
CS1=1;
write_command(Page_Add+i);
write_command(Col_Add+63);
write_data(0xff);
CS2=1;
CS1=0;
write_command(Page_Add+i);
write_command(Col_Add+0);
write_data(0xff);
}
}
/*------------------------清顯示屏--------------------------------*/
void Clr_Scr()
{
unsigned char j,k;
CS2=1;CS1=0; // 清左半屏 //
{
write_command(Page_Add+0);
write_command(Col_Add+0);
for(k=0;k<4;k++) // 清左上半屏 //
{
for(j=0;j<64;j++)
write_data(0x00);
}
for(k=0;k<4;k++) // 清左下半屏 //
{
write_command(Page_Add+4);
for(j=0;j<64;j++)
write_data(0x00);
}
}
CS2=0;CS1=1; // 清右半屏 //
{
write_command(Page_Add+0);
write_command(Col_Add+0);
for(k=0;k<4;k++) // 清右上半屏 //
{
for(j=0;j<64;j++)
write_data(0x00);
}
for(k=0;k<4;k++) // 清右下半屏 //
{
write_command(Page_Add+4);
for(j=0;j<64;j++)
write_data(0x00);
}
}
}
/*------------------顯示12864圖片---------------------------*/
void Disp_Img(unsigned char code *img)
{
unsigned char j,k;
for(k=0;k<8;k++)
{
CS2=1;
CS1=0;
delay(10);
write_command(Page_Add+k);
write_command(Col_Add+0);
for(j=0;j<64;j++)
write_data(img[k*128+j]);
CS2=0;
CS1=1;
delay(10);
write_command(Page_Add+k);
write_command(Col_Add+0);
for(j=64;j<128;j++)
write_data(img[k*128+j]);
}
}
/*------------------顯示橫---------------------------*/
/*void Disp_H_Line()
{
unsigned char i,j;
CS2=1;
CS1=1;
write_command(Disp_On);
write_command(Page_Add);
write_command(Start_Line);
write_command(Col_Add);
for(j=0;j<8;j++)
{
write_command(Page_Add+j);
write_command(Col_Add+0);
// write_com(Start_Line+0);
for(i=0;i<64;i++)
write_data(0x55);
}
}
/*------------------顯示列-----------------------------*/
/*void Disp_V_Line()
{
unsigned char i,j;
write_command(Disp_On);
write_command(Page_Add);
write_command(Start_Line);
write_command(Col_Add);
for(j=0;j<8;j++)
{
write_command(Page_Add+j);
write_command(Col_Add+0);
write_command(Start_Line+0);
for(i=0;i<32;i++)
{
write_data(0x00);
write_data(0xff);
}
}
}
/*------------------棋盤-----------------------------*/
/*void Disp_Cross_Line(unsigned char mode)
{
unsigned char i,j;
unsigned char data1,data2;
if(mode==0) {data1=0xaa;data2=0x55;}
else if(mode==1) {data1=0x55;data2=0xaa;}
else return;
CS2=1;CS1=1;
write_command(Disp_On);
write_command(Page_Add);
write_command(Start_Line);
write_command(Col_Add);
for(j=0;j<8;j++)
{
write_command(Page_Add+j);
write_command(Col_Add+0);
write_command(Start_Line+0);
for(i=0;i<32;i++)
{
write_data(data1);
write_data(data2);
}
}
}
/*---------------------指定位置顯示數字8*16-----------------------*/
void sz_disp16(unsigned char pag,unsigned char col, unsigned char code *szk)
{
unsigned char j=0,i=0;
for(j=0;j<2;j++)
{
write_command(Page_Add+pag+j);
write_command(Col_Add+col);
for(i=0;i<8;i++)
write_data(szk[8*j+i]);
}
}
/*---------------------指定位置顯示漢字16*16-----------------------*/
void hz_disp16(unsigned char pag,unsigned char col, unsigned char code *hzk)
{
unsigned char j=0,i=0;
for(j=0;j<2;j++)
{
write_command(Page_Add+pag+j);
write_command(Col_Add+col);
for(i=0;i<16;i++)
write_data(hzk[16*j+i]);
}
}
/*------------------初始化LCD屏--------------------------*/
void init_lcd()
{
RST=0;
delay(100);
RST=1;
delay(100);
CS2=1;
CS1=1;
delay(100);
write_command(Disp_Off);
write_command(Page_Add+0);
write_command(Start_Line+0);
write_command(Col_Add+0);
write_command(Disp_On);
}
/*-------------------------- 開機信息顯示------------------------*/
void StartMsg(void)
{
Clr_Scr(); // 先清屏 //
CS2=1;CS1=0;
hz_disp16(0,32,huan); // 歡
delay(2000);
hz_disp16(0,48,ying); // 迎
delay(2000);
CS2=0;CS1=1;
hz_disp16(0,0,shi1); // 使
delay(2000);
hz_disp16(0,16,yong); // 用
delay(2000);
CS2=1;CS1=0;
hz_disp16(2,32,shu); // 數
delay(2000);
hz_disp16(2,48,ma); // 碼
delay(2000);
CS2=0;CS1=1;
hz_disp16(2,0,shi); // 時
delay(2000);
hz_disp16(2,16,zhong); // 鐘
delay(2000);
CS2=1;CS1=0;
hz_disp16(5,16,zhi); // 制
delay(2000);
hz_disp16(5,32,zuo); // 作
delay(2000);
hz_disp16(5,48,maohao); // :
delay(2000);
CS2=0;CS1=1;
hz_disp16(5,0,liu); // 劉
delay(2000);
hz_disp16(5,16,bing); // 兵
delay(2000);
hz_disp16(5,32,gantanhao); // !
delay(2000);
}
/*------------------------時鐘固定漢字顯示-----------------------*/
void ClockMsg(void)
{
Clr_Scr(); // 先清屏 //
CS2=1;CS1=0; // 左屏
hz_disp16(1,32,xing); // 星
hz_disp16(1,48,qi); // 期
sz_disp16(3,0,shuzi[2]); // 2
sz_disp16(3,8,shuzi[0]); // 0
hz_disp16(3,32,nian); // 年
hz_disp16(5,48,shi2); // 時
CS2=0;CS1=1; // 右屏
hz_disp16(3,0,yue); // 月
hz_disp16(3,32,ri); // 日
hz_disp16(5,16,fen); // 分
hz_disp16(5,48,miao); // 秒
}
/*-----------------------時鐘部分---------------------------*/
///////////////////////////////////////////////
///// 函數名: 寫入字節子函數 //////
///// 函數功能: 寫入一個字節到對應地址 //////
///// 函數參數: 有(寫入的字節內容) //////
///// 返回值: 無 //////
///////////////////////////////////////////////
void InputByte(unsigned char dat)
{
unsigned char i;
ACC = dat;
for(i=8; i>0; i--)
{
IO = ACC0;
CLK = 1; //下降沿寫入數據//
CLK = 0;
ACC = ACC >> 1;
}
}
/************************************************************************************///*時鐘部分*/↓
///////////////////////////////////////////////
///// 函數名: 讀出字節子函數 //////
///// 函數功能: 從對應地址讀出一個字節 //////
///// 函數參數: 無 //////
///// 返回值: 有(讀出的字節內容) //////
///////////////////////////////////////////////
OutputByte(void)
{
unsigned char i;
for(i=8; i>0; i--)
{
ACC = ACC >>1;
ACC7 = IO;
CLK = 1; //上升沿讀出數據//
CLK = 0;
}
return(ACC);
}
/*************************************************************************************************/
/////////////////////////////////////////////
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -