|
{ unsigned char dat; di=0; rw=1; do{ LCD12864DataPort=0xff; en=1; dat=LCD12864DataPort; en=0; dat=0x90 & dat; //僅當(dāng)?shù)?,7位為0時(shí)才可操作 }while(!(dat==0x00)); } /*----------------------------------------------------------------------------------------------------*/ //寫顯示數(shù)據(jù) //dat:顯示數(shù)據(jù) void WriteByte(unsigned char dat) { CheckState(); di=1; rw=0; LCD12864DataPort=dat; en=1; en=0; } /*-----------------------------------------------------------------------------------------------------*/ //向LCD發(fā)送命令 //command :命令 SendCommandToLCD(unsigned char command) { CheckState(); rw=0; LCD12864DataPort=command; en=1; en=0; } /*----------------------------------------------------------------------------------------------------*/ //設(shè)定行地址(頁(yè))--X 0-7 void SetLine(unsigned char line) { line=line & 0x07; // 0<=line<=7 line=line|0xb8; //1011 1xxx SendCommandToLCD(line); } //設(shè)定列地址--Y 0-63 void SetColumn(unsigned char column) { column=column &0x3f; // 0=<column<=63 column=column | 0x40; //01xx xxxx SendCommandToLCD(column); } //設(shè)定顯示開(kāi)始行--XX void SetStartLine(unsigned char startline) //0--63 { startline=startline & 0x07; startline=startline|0xc0; //1100 0000 SendCommandToLCD(startline); } //開(kāi)關(guān)顯示 void SetOnOff(unsigned char onoff) { onoff=0x3e | onoff; //0011 111x SendCommandToLCD(onoff); } /*---------------------------------------------------------------------------------------------------*/ //選擇屏幕 //screen: 0-全屏,1-左屏,2-右屏 void SelectScreen(unsigned char screen) { //北京顯示器:負(fù)有效 cs1: 0--右; cs2: 0--左 switch(screen) { case 0: cs1=0;//全屏 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); cs2=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); break; case 1: cs1=1;//左屏 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); cs2=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); break; case 2: cs1=0;//右屏 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); cs2=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); break; } } /*---------------------------------------------------------------------------------------------------*/ //清屏 //screen: 0-全屏,1-左屏,2-右 void ClearScreen(unsigned char screen) { unsigned char i,j; SelectScreen(screen); for(i=0;i<8;i++) { SetLine(i); for(j=0;j<64;j++) { WriteByte(0x00); } } } /*--------------------------------------------------------------------------------------------------*/ //顯示8*8點(diǎn)陣 //旋轉(zhuǎn)90度:字模被豎著切分 //lin:行(0-7), column: 列(0-15) //address : 字模區(qū)首地址
|