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

📄 lcd.c

📁 采用MPS430控制的项目
💻 C
📖 第 1 页 / 共 2 页
字号:
            KS0108B_DAT=KS0108B_DAT|k;
            cul=cl;
            if(cul>=64)  {flag=1;cul=cul-64;}
            KS0108B_COM=(0x40)|cul;                    //列设置
            if(flag==0)   PRL0(); else PRR0();
            if(flag)      PRR1(); else PRL1();
            q++;cl++;
            if((cl>=64)&&(!flag))  {flag=1;KS0108B_COM=0x40;PRR0();}
            else if(cl>=128)     return;
       }
       KS0108B_c=0;KS0108B_i=0;return;
	}
 	else {KS0108B_c=0;KS0108B_i=0;return;}
}
/*********************************************************************************************************
* 函数名称:intsys
*
* 功能描述:初始化掖晶显示
*
* 说明:
* 
********************************************************************************************************/
void intsys(void)
{
	KS0108B_COM=0x3F;                              //设置显示起始行为第一行
	PRL0( );
	PRR0( );
	KS0108B_COM=0xC0;                              //开显示设置
	PRL0( );
	PRR0( );
}
/*********************************************************************************************************
* 函数名称:clear
*
* 功能描述:清屏
*
* 说明:
* 
********************************************************************************************************/
void clear(void)
{
	uchar page=0,y;
	do{
		KS0108B_COM = page | 0xb8;            //页面设置
   		PRL0();
   		PRR0();
   		KS0108B_COM = 0x40;                   //列设置
   		PRL0();
   		PRR0();
   		for(y=0; y<64; y++)
      	{
      		KS0108B_DAT = 0x0;
       		PRL1();
       		PRR1();
      	}
  		page++;
  	}while(page < 8);	
}
/*********************************************************************************************************
* 函数名称:PRL0
*
* 功能描述:
*
* 说明:
* 
********************************************************************************************************/
void PRL0(void)                        //写指令代码子程序(左)
{
	uchar BF=0;
	uchar b;
	do{
		b=RCOM_L();
		BF=(b>>7);
	}while(BF==1);                          //(P07)BF为0,往下运行
	WCOM_L(KS0108B_COM);
}
/*********************************************************************************************************
* 函数名称:PRL1
*
* 功能描述:
*
* 说明:
* 
********************************************************************************************************/
void PRL1(void)                        //写显示数据子程序(左)
{
	uchar b;
	uchar BF=0;
	do{
		b=RCOM_L();
		BF=(b>>7);
	}while(BF==1);
	WDAT_L(KS0108B_DAT);                      //写显示数据
}
/*********************************************************************************************************
* 函数名称:PRL2
*
* 功能描述:
*
* 说明:
* 
********************************************************************************************************/
void PRL2(void)                        //读显示数据子程序(左)?
{
	uchar b, BF=0;
 	do{
		b=RCOM_L();
		BF=b>>7;
    }while(BF);
	KS0108B_DAT=RDAT_L();                     //读显示数据 (左)
}
/*********************************************************************************************************
* 函数名称:PRR0
*
* 功能描述:
*
* 说明:
* 
********************************************************************************************************/
void PRR0(void)                        //写指令代码子程序(右)
{
uchar b, BF=0;
	do{
		b=RCOM_R();
		BF=(b>>7);
   }while(BF==1);
	WCOM_R(KS0108B_COM);                     //写指令代码?
}
/*********************************************************************************************************
* 函数名称:PRR1
*
* 功能描述:
*
* 说明:
* 
********************************************************************************************************/
void PRR1(void)                        //写显示数据子程序(右)
{
	uchar b, BF=0;
	do{
		b=RCOM_R();
		BF=(b>>7);
    }while(BF==1);
	WDAT_R(KS0108B_DAT);                     //写显示数据
}
/*********************************************************************************************************
* 函数名称:PRR2
*
* 功能描述:
*
* 说明:
* 
********************************************************************************************************/
void PRR2(void)                        //读显示数据子程序(右)
{
	uchar b, BF=0;
	do{
  		b=RCOM_R();
  		BF=b>>7;
	}while(BF);
	KS0108B_DAT=RDAT_R();                     //读显示数据 (右)
}
/*********************************************************************************************************
* 函数名称:invert
*
* 功能描述:
*
* 说明:
* 
********************************************************************************************************/
uchar invert(uchar a)
{
	uchar b=0;
	b=a<<7;
	b=b|((a&0x02)<<5);  
	b=b|((a&0x04)<<3);  
	b=b|((a&0x08)<<1);
	b=b|((a&0x10)>>1);
	b=b|((a&0x20)>>3);
	b=b|((a&0x40)>>5);
	b=b|(a>>7);
	return b;
}
/*********************************************************************************************************
* 函数名称:RDAT_L
*
* 功能描述:
*
* 说明:
* 
********************************************************************************************************/
uchar RDAT_L(void)
{
	uchar  x;
    CD1;   
    RW1;  
    CS11; 
    CS20;    
    P2DIR  =0x00;   //Input
    x=P2IN;      
    CS10; 
    CS20; 
    return(x);
}
/*********************************************************************************************************
* 函数名称:
*
* 功能描述:
*
* 说明:
* 
********************************************************************************************************/
uchar RDAT_R(void)
{
	uchar  x;
    RW1; 
    CD1; 
    CS10; 
    CS21;
    P2DIR  =0x00;   //Input 
    x=P2IN; 
    CS10; 
    CS20;  
    return(x);
}
/*********************************************************************************************************
* 函数名称:
*
* 功能描述:
*
* 说明:
* 
********************************************************************************************************/
uchar     RCOM_L(void)
{
	uchar  x;
    CD0;   
    RW1;  
    CS11; 
    CS20;    
    P2DIR  =0x00;   //Input
    x=P2IN;      
    CS10; 
    CS20; 
    return(x);
}
/*********************************************************************************************************
* 函数名称:
*
* 功能描述:
*
* 说明:
* 
********************************************************************************************************/
uchar RCOM_R(void)
{
	uchar  x;
    RW1; 
    CD0; 
    CS10; 
    CS21;
    P2DIR  =0x00;   //Input 
    x=P2IN; 
    CS10; 
    CS20;  
    return(x);
}
/*********************************************************************************************************
* 函数名称:
*
* 功能描述:
*
* 说明:
* 
********************************************************************************************************/
void WCOM_L(uchar k)
{
     RW0; 
     CD0;  
     CS11; 
     CS20;     
     P2DIR  |= 0xff;   //Output 
     P2OUT   = k;   
     CS10; 
     CS20; 
}
/*********************************************************************************************************
* 函数名称:
*
* 功能描述:
*
* 说明:
* 
********************************************************************************************************/
void WCOM_R(uchar k)
{
    RW0; 
    CD0; 
    CS10; 
    CS21;   
    P2DIR  |= 0xff;   //Output 
    P2OUT   = k;  
    CS10; 
    CS20; 
}
/*********************************************************************************************************
* 函数名称:
*
* 功能描述:
*
* 说明:
* 
********************************************************************************************************/
void WDAT_L(uchar k)
{
    RW0; 
    CD1; 
    CS11; 
    CS20; 
    P2DIR  |= 0xff;   //Output 
    P2OUT   = k;      
    CS10; 
    CS20; 
}
/*********************************************************************************************************
* 函数名称:
*
* 功能描述:
*
* 说明:
* 
********************************************************************************************************/
void WDAT_R(uchar k)
{
    RW0; 
    CD1; 
    CS10; 
    CS21;   
    P2DIR  |= 0xff;   //Output 
    P2OUT   = k;       
    CS10; 
    CS20;  
}
/*******************************************************************************************************/

⌨️ 快捷键说明

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