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

📄 displayfunction.c

📁 msp430和nrf905的例子,联系qqliuyong007@163.com
💻 C
字号:
#include "HardInterface.h"

/*-------------------------字模显示函数----------------------------------*/

/*void SetCGRAM(void)                                                             建立CGRAM*/
/*void DisplayChar(unsigned char row,unsigned char col,unsigned char word)         显示西文字符*/
/*void CCDisplay(unsigned char row,unsigned char col,unsigned word)               文本方式下显示汉字*/
/*void GCDisplay(unsigned char row,unsigned char col,unsigned char GW[32])        图形方式下显示汉字*/
/*void RRWL(unsigned char row ,unsigned char col,unsigned int wordcode)           读取RAM字模,再在LCD显示汉字*/
/*void ThirdDisplay(unsigned char row,unsigned char col,unsigned char TuXing[96]) 第三区显示图形*/
/*void Data_disply(unsigned char row, unsigned char col, unsigned long int data)  十进制最大八位显示数据*/
/*void CLRDisplay_definition(unsigned char row,unsigned char col)                 自定义清楚RAM*/

/*----------- 系统状态显示-----------

void Display_XTZT(unsigned char flag)                                           系统状态显示

-----------数据显示函数-----------*/

//void Display_DianLiu(void)              //电流
//void Display_XDianYa(void)              //相电压
//void Display_LDianYa(void)              //线电压
//void Disply_Gonglv(unsigned char flag)  //功率
//void Display_GLYS(void)                 //功率因素 
//void Display_PinLv(void)                //频率 
//void Display_XTZT(unsigned char flag)   //系统状态
//void Display_XBSZ(unsigned char flag)   //谐波失真度
//void Display_XiLiang(unsigned char flag)//需量(0)电流)(1)功率
//void Display_DianDu(void)               //电度
/*-------------------------------*/

/* 显示西文字符*/
void DisplayChar(unsigned char row,unsigned char col,unsigned char word)
{
    unsigned int cursor,tempaddress,addl,addh;
    unsigned char i;	
	/*cursor=0x0260+row*20*8+col;		 //第一显示区
	tempaddress=cursor;
	addl=tempaddress&0x00ff;
	addh=((cursor&0xff00)>>8);	
	WRCommand(0x46);		//设置光标指针
	WRData(addl);
	WRData(addh);			
			   		
	WRCommand(0x4f);	//光标下移,CSRDIR代码	
		
	WRCommand(0x42);	//设置数据写入,MWRITE代码	
	for (i=0;i<8;i++)
	{
	WRData(0x00);//清楚屏幕
	}
	*/
	cursor=row*20+col;		 //第一显示区
	tempaddress=cursor;
	addl=tempaddress&0x00ff;
	addh=((cursor&0xff00)>>8);	
	
	WRCommand(0x46);		//设置光标指针
	WRData(addl);
	WRData(addh);			
			   		
	WRCommand(0x4C);	//光标下移,CSRDIR代码	
		
	WRCommand(0x42);	//设置数据写入,MWRITE代码
	WRData(word);
	
}
void  DisplayChar_new(unsigned char row,unsigned char col,unsigned char word[8],unsigned char n)
{
    unsigned int cursor,tempaddress,addl,addh;
    unsigned char i,k;	
        for (k=0;k<=n;k++)
	{
	cursor=0x0260+row*20*8+col+k;		 //第二显示区
	tempaddress=cursor;
	addl=tempaddress&0x00ff;
	addh=((cursor&0xff00)>>8);	
	WRCommand(0x46);		//设置光标指针
	WRData(addl);
	WRData(addh);			
			   		
	WRCommand(0x4f);	//光标下移,CSRDIR代码	
		
	WRCommand(0x42);	//设置数据写入,MWRITE代码	
	for (i=0;i<8;i++)
	{
	WRData(0x00);//清楚屏幕
	}
	}
	cursor=row*20+col;		 //第一显示区
	tempaddress=cursor;
	addl=tempaddress&0x00ff;
	addh=((cursor&0xff00)>>8);	
	
	WRCommand(0x46);		//设置光标指针
	WRData(addl);
	WRData(addh);			
			   		
	WRCommand(0x4c);	//光标右移,CSRDIR代码	
		
	WRCommand(0x42);	//设置数据写入,MWRITE代码
	for (k=0;k<n;k++)	
	WRData(word[k]);
	
}
/*/*字定义清显示RAM
void CLRDisplay_definition(unsigned char row,unsigned char col)
{  
    unsigned int cursor,tempaddress;
    unsigned char addl,addh,i,k; 
	WRCommand(0x4f);				//光标下移  
	//清除二区字模
	for(k=0;k<2;k++)
	{
	cursor=0x0260+row*20*8+col+k; 	        //设置光标位置
	tempaddress=cursor;
	addl=tempaddress&0x00ff;
	addh=((cursor&0xff00)>>8);	
	
	WRCommand(0x46);				//设置光标指针
	WRData(addl);
	WRData(addh);
	
   	WRCommand(0x42);				//设置数据写入
    for(i=0;i<16;i++)
    {
       WRData(0x00);
    }
    }
    //清除一区四个文本字模
    for(k=0;k<2;k++)
    {
    cursor=row*20+col+k;
    tempaddress=cursor;
	addl=tempaddress&0x00ff;
	addh=((cursor&0xff00)>>8);	
	
	WRCommand(0x46);				//设置光标指针
	WRData(addl);
	WRData(addh);
	
   	WRCommand(0x42);				//设置数据写入
   	WRData(0x20);
   	WRData(0x20);
    } 
}
*/
/****************设定清屏函数************/
void CLRDisplay_choice(unsigned char row,unsigned char col,unsigned char layer,unsigned int n)
{  
    unsigned int i; 
    unsigned int cursor,tempaddress;
    unsigned char addl,addh;
    switch (layer)
    {
    case 0:  
         {
          cursor=row*20+col;
          tempaddress=cursor;
          addl=tempaddress&0x00ff;
          addh=((cursor&0xff00)>>8);	
          break;
         }
    case 1:
         {
          cursor=0x0260+row*20*8+col; 	        //设置光标位置
	  tempaddress=cursor;
	  addl=tempaddress&0x00ff;
	  addh=((cursor&0xff00)>>8);
	  break;	
	 }
    default:return;break;
    }
    
	WRCommand(0x4c);				//光标右移   	 
   	
   	WRCommand(0x46);				//设置光标指针0x0000   	
   	WRData(addl);
	WRData(addh);
   	
   	WRCommand(0x42);				//设置数据写入
    for(i=0;i<n;i++)
    {
       WRData(0x00);
     }
}
/*建立CGRAM*/
void SetCGRAM(void)
{
    unsigned int i;
	WRCommand(0x5c);				//设置CGRAM首地址
	WRData(0x00);					//首地址为0x3000
	WRData(0x30);	
	
	WRCommand(0x46);				//设置光标指针
	WRData(0x00);					//首地址为0x3000-代码0x80
	WRData(0x34);
		
	WRCommand(0x4c);				//光标右移		
	WRCommand(0x42);				//设置数据写入
	
	for(i=0;i<CLength;i++)
	{		
	  WRData(CTable[i]);
	}
		
}
/*文本方式下显示符号*/
void CCDisplay(unsigned char row,unsigned char col,unsigned char word)
{                                                                 //row(0~29),col(0~39)
	unsigned int cursor,tempaddress,addl,addh;
	unsigned char k;
	
	for(k=0;k<4;k++)
	{
	cursor=row*20+col+k;		                //第一显示区
	tempaddress=cursor;
	addl=tempaddress&0x00ff;
	addh=((cursor&0xff00)>>8);	
	WRCommand(0x46);				//设置光标指针
	WRData(addl);
	WRData(addh);
	
	WRCommand(0x4F);				//光标下移
	
	WRCommand(0x42);	                        //分横二部分写字竖二部分
	
	WRData(word);
	WRData((word+1));
	WRData((word+2));
	word=word+3;
	}
}
/*图形方式下显示汉字*/
void GCDisplay(unsigned char row,unsigned char col,const unsigned char GW[32])
{	                                                 //row(0~319)col(0~29)
	unsigned int cursor,tempaddress;
	unsigned char addl,addh;
	unsigned char i,k;

	WRCommand(0x4f);			                	//光标下移

	for(i=0;i<2;i++)				
	{				
	cursor=0x0260+row*20+col+i;               //加上显示二区的起始地址
	tempaddress=cursor;
	addl=tempaddress&0x00ff;
	addh=((cursor&0xff00)>>8);
				
	WRCommand(0x46);			//设置光标指针
	WRData(addl);
	WRData(addh);
					 
	WRCommand(0x42);
	for(k=0;k<16;k++)
	{
	WRData(GW[i*16+k]);					
	}
	} 	 
}
/*图形方式下显示数字*/
void GCDisplay_C(unsigned char row,unsigned char col,const unsigned char GW[64])
{	                                                 //row(0~319)col(0~29)
	unsigned int cursor,tempaddress;
	unsigned char addl,addh;
	unsigned char i,k;

	WRCommand(0x4f);			                	//光标下移

	for(i=0;i<2;i++)				
	{				
	cursor=0x0260+row*20+col+i;               //加上显示二区的起始地址
	tempaddress=cursor;
	addl=tempaddress&0x00ff;
	addh=((cursor&0xff00)>>8);
				
	WRCommand(0x46);			//设置光标指针
	WRData(addl);
	WRData(addh);
					 
	WRCommand(0x42);
	for(k=0;k<32;k++)
	{
	WRData(GW[i*32+k]);					
	}
	} 	 
}

/*第三区显示图形*/
void ThirdDisplay(unsigned char row,unsigned char col,const unsigned char TuXing[96])
{
    unsigned int cursor,tempaddress,addl,addh;
	unsigned char p,i;
	
	for (p=0;p<4;p++)
	{
	cursor= 0x12D0+row*20+col+p;		        //第三显示区
	tempaddress=cursor;
	addl=tempaddress&0x00ff;
	addh=((cursor&0xff00)>>8);	
	WRCommand(0x46);				            //设置光标指针
	WRData(addl);
	WRData(addh);
	
	WRCommand(0x4F);				            //光标下移
	
	WRCommand(0x42);	                        //图形分三部分描述
	for(i=0;i<24;i++)
	{
	WRData(TuXing[p*24+i]);
	}
	}
}
 
/*void init_time(void)//输入初始时间
{
  int s,m,h,d,mo,y;
  printf("input cur_time.second and input cur_time.hour and  input cur_time.date  and input cur_time.month and input cur_time.year.\n");
  scanf(" %d, %d, %d, %d, %d, %d",&s,&m,&h,&d,&mo,&y);
}
*/
/*————————32*24数字0~9显示函数——————*/
void Display_Number(unsigned char row, unsigned char col,unsigned char number)
{
switch(number)
      {
       case 0:GCDisplay_C(row,col,CTable50);break;
       case 1:GCDisplay_C(row,col,CTable51);break;
       case 2:GCDisplay_C(row,col,CTable52);break;
       case 3:GCDisplay_C(row,col,CTable53);break;
       case 4:GCDisplay_C(row,col,CTable54);break;
       case 5:GCDisplay_C(row,col,CTable55);break;
       case 6:GCDisplay_C(row,col,CTable56);break;
       case 7:GCDisplay_C(row,col,CTable57);break;
       case 8:GCDisplay_C(row,col,CTable58);break;
       case 9:GCDisplay_C(row,col,CTable59);break;
       default:break;
    }
}
/*————————16*16数字0~9显示函数——————*/
void Display_Number1(unsigned char row, unsigned char col,unsigned char number)
{
switch(number)
      {
       case 0:GCDisplay(row,col,CTable70);break;
       case 1:GCDisplay(row,col,CTable71);break;
       case 2:GCDisplay(row,col,CTable72);break;
       case 3:GCDisplay(row,col,CTable73);break;
       case 4:GCDisplay(row,col,CTable74);break;
       case 5:GCDisplay(row,col,CTable75);break;
       case 6:GCDisplay(row,col,CTable76);break;
       case 7:GCDisplay(row,col,CTable77);break;
       case 8:GCDisplay(row,col,CTable78);break;
       case 9:GCDisplay(row,col,CTable79);break;
       default:break;
    }
return;
}

/*十进制最大四位显示数据。point 是小数点位数*/
void Data_disply(unsigned char row, unsigned char col, unsigned int data,unsigned char point)
{
 unsigned char Data_inter[5],p;
 const unsigned int Data_dp;
 signed char i;
 unsigned long int D_i1,D_i2,k;
     D_i1=data;
     
     for(i=4;i>0;i--)
     {
       for(p=1,k=1;p<=i;p++)    
        { 
        k*=10;   
        }
     D_i2=D_i1%k;
     Data_inter[i]=(D_i1-D_i2)/k;
     D_i1=D_i2;
     }
     Data_inter[0]=D_i1;
     
    for(i=4;i>=1;i--)
    {
    Display_Number(row,col,Data_inter[i]);
    col+=2;
      if((i==(point+1))&&(point!=0))
      {
      GCDisplay_C(row,col,CTable60);
      col++;
      }
    }
    
}
 /*十进制最大八位显示数据*/
void Data_disply_8(unsigned char row, unsigned char col, unsigned long data,unsigned char point)
{
 unsigned char Data_inter[8],p;
 const unsigned long Data_dp;
 signed char i;
 unsigned long  D_i1,D_i2,k;
     D_i1=data;
     
     for(i=7;i>0;i--)
     {
       for(p=1,k=1;p<=i;p++)    
        { 
        k*=10;   
        }
     D_i2=D_i1%k;
     Data_inter[i]=(D_i1-D_i2)/k;
     D_i1=D_i2;
     }
     Data_inter[0]=D_i1;
     
    for(i=7;i>=1;i--)
    {
    Display_Number(row,col,Data_inter[i]);
    col+=2;
      if((i==(point+1))&&(point!=0))
      {
      GCDisplay_C(row,col,CTable60);
      col++;
      }
    }
    
}
//void Display_string(unsigned char row,unsigned char col,unsigned char[8],unsigned char n)
//{
//Data_disply

//}




⌨️ 快捷键说明

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