⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcddrive.c

📁 S52单片机对PS/2键盘的主从通信
💻 C
字号:

//Port Definitions**********************************************************
sbit LcdRs  = P1^0;
sbit LcdRw  = P1^1;
sbit LcdEn  = P1^2;
sfr  DBPort = 0x80;  //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口

sbit LcdLight   = DBPort^4;
/***************************************************************************/
void Delay1ms(unsigned int count)
{
 unsigned int i,j;
 for(i=0;i<count;i++)
 for(j=0;j<120;j++);
}
//内部等待函数**************************************************************************
unsigned char LCD_Wait(void)
{
 LcdRs=0;
 LcdRw=1; _nop_();
 LcdEn=1; _nop_();
 while(DBPort&0x80);  //或do{ACC=DBPort;} while(ACC_7==1); 忙信号??为1忙
 LcdEn=0;
 Delay1ms(1);
 return ACC;  
}

void LCD_Write(unsigned char style, unsigned char input)
{
 LcdRs=style;
 LcdRw=0;  _nop_();
 LcdEn=1;  _nop_();
 DBPort=input; _nop_();
 LcdEn=0;  _nop_();
 LCD_Wait(); 
}



void LCD_SetDisplay(unsigned char DisplayMode)
{
 LCD_Write(LCD_COMMAND, 0x08|DisplayMode); 
}



void LCD_SetInput(unsigned char InputMode)
{
 LCD_Write(LCD_COMMAND, 0x04|InputMode);
}


void LCD_Move(unsigned char object, unsigned char direction)
{
 if(object==LCD_CURSOR)
  LCD_Write(LCD_COMMAND,0x10|direction);
 if(object==LCD_SCREEN)
  LCD_Write(LCD_COMMAND,0x18|direction);
}

//初始化LCD************************************************************
void LCD_Initial()
{
 LcdEn=0;
 Delay1ms(80);
 LCD_Write(LCD_COMMAND,0x38);           //8位数据端口,2行显示,5*7点阵
 Delay1ms(10);
 LCD_Write(LCD_COMMAND,0x38);
 Delay1ms(10);
 LCD_SetDisplay(LCD_SHOW|LCD_CURSOR);    //开启显示, 无光标
 //LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);    //开启显示, 无光标
 LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);          //清屏
 LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);       //AC递增, 画面不动
}

//************************************************************************
void GotoXY(unsigned char x, unsigned char y)//y是行 ,x是列
{
 if(y==0)
  LCD_Write(LCD_COMMAND,0x80|x);
 if(y==1)
  LCD_Write(LCD_COMMAND,0x80|(x-0x40));
}
void Print(unsigned char *str)
{
 while(*str!='\0')
 {
  LCD_Write(LCD_DATA,*str);
  str++;
 }
}
void LCD_LoadChar(unsigned char user[8], unsigned char place)
{
 unsigned char i;
 LCD_Write(LCD_COMMAND,0x40|(place*8));
 for(i=0; i<8; i++)
   LCD_Write(LCD_DATA,user[i]);
}
//************************************************************************
/*main()
{  
   //unsigned char str1[17];
   unsigned char str[]=" Six Boys ";
   unsigned char strlc[]="  Good Luck!  ";
   LCD_Initial();
   while(1)
   {
     GotoXY(0, 0);
     Print(str);
     if(strlen(str)>16) 
     Print(str+16);

	 GotoXY(0, 1);
     Print(strlc);
     if(strlen(strlc)>16) 
     Print(strlc+16);

     //LCD_LoadChar(str, 0);
   }
}*/


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -