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

📄 lcd.c

📁 51单片机web的ucosii
💻 C
字号:
/* //////////////////////////////////////////////////////////////////////
NAME:  LCD.c
//////////////////////////////////////////////////////////////////////// */
#include    <CORE\includes.h>
#include "LCD.h"

sbit   LCD_RS  = P1 ^ 0;
sbit   LCD_RW  = P1 ^ 1;
sbit   LCD_E  = P1 ^ 2;
sbit   LCD_BF  = P1 ^ 7;

//INT8U LOST_PACK=0;

void LCD_CheckBusy(void)
{
  INT8U data tmp;
  do
  {
	P1|=0XF0; 
    LCD_RS=0;
	LCD_RW=1;
	LCD_E=1;
	tmp=P1;
    LCD_E=0;
    LCD_E=1;
    LCD_E=0;
  }while((tmp&0x80));
}
//---------------------------------------
void LCD_WrCommand(BYTE Command1)
{
   // BYTE sts;
    INT8U data Command;
	Command=Command1;
    LCD_CheckBusy();
	//-----------------------
	LCD_RS=0;
	LCD_RW=0;
	P1=(Command&0xf0); //high 4 bits
	LCD_E=1;
	LCD_E=0;
	Command=Command<<4;
	P1=(Command&0xf0); //low 4 bits
	LCD_E=1;
	LCD_E=0;
}
//----------------------------------------------
void LCD_Initial(void)
{
   INT8U data i;
   INT32U data tmp;
   for(tmp=0;tmp<10000;tmp++);
   P1=0X30;
   LCD_RS=0;
   LCD_RW=0;
   for(i=0;i<3;i++)
   {
      LCD_E=1;
	  LCD_E=0;
	  for(tmp=0;tmp<10000;tmp++);
  }
   P1=0X20;
   LCD_E=1;
   LCD_E=0;
//   for(tmp=0;tmp<10000;tmp++);
   LCD_WrCommand(0x28);
   LCD_WrCommand(0x01);
   LCD_WrCommand(0x06);
   LCD_WrCommand(0x0E);
}
//////////////////////////////////////////////////////////////////
void LCD_print(char *p) reentrant
  {
    // p=p;
	 
     INT8U  tmp1;
	 INT8U  count=0;

     LCD_WrCommand(0x01); //clr 
 //    LCD_WrCommand(0x05); //
 //    LCD_WrCommand(0x80); //ddram addr;
	 while(*p)
	 {   
	     if(count++==0x10)
		     LCD_WrCommand(0xc0); //set ram address 40h;
	     tmp1=*p++;
         LCD_CheckBusy();
		 //--------write ram----
		 P1=(tmp1&0xf0);
		 LCD_RS=1;
		 LCD_RW=0;
		 LCD_E=1;
	     LCD_E=0;
		 tmp1=tmp1<<4;
		 P1=(tmp1&0xf0);
		 LCD_RS=1;
		 LCD_RW=0;
		 LCD_E=1;
	     LCD_E=0;
         //---------------------
        // ++p;
	 } //--------*/
  }

  //////////////////////////////////////////////////////////////////
void LCD_log(char *p) reentrant
  {
     INT8U  tmp1;
	 INT8U  count=0;

     LCD_WrCommand(0x01); //clr 
 //    LCD_WrCommand(0x05); //
 //    LCD_WrCommand(0x80); //ddram addr;
	 while(*p)
	 {   
	     if(count++==0x10)
		     LCD_WrCommand(0xc0); //set ram address 40h;
	     tmp1=*p++;
         LCD_CheckBusy();
		 //--------write ram----
		 P1=(tmp1&0xf0);
		 LCD_RS=1;
		 LCD_RW=0;
		 LCD_E=1;
	     LCD_E=0;
		 tmp1=tmp1<<4;
		 P1=(tmp1&0xf0);
		 LCD_RS=1;
		 LCD_RW=0;
		 LCD_E=1;
	     LCD_E=0;
         //---------------------
        // ++p;
	 } //--------*/
  }
/*
/////////////////////////////////////////////////
void ERR_print(BYTE ERR_number) reentrant
  {
     INT8U  i;
	 INT8U  buff[6]={'E','R','R','1'};
     buff[4]=0;
     buff[5]=(LOST_PACK&0x0f)+0x30;
	ERR_number=ERR_number;
     LCD_WrCommand(0xc0); //ddram addr;
	 for(i=0;i<6;i++)
	 {   

         LCD_CheckBusy();
		 //--------write ram----
		 P1=(buff[i]&0xf0);
		 LCD_RS=1;
		 LCD_RW=0;
		 LCD_E=1;
	     LCD_E=0;
		 buff[i]=buff[i]<<4;
		 P1=(buff[i]&0xf0);
		 LCD_RS=1;
		 LCD_RW=0;
		 LCD_E=1;
	     LCD_E=0;
         //---------------------
        // ++p;
	 }
 

  }*/



⌨️ 快捷键说明

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