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

📄 lcd.h

📁 msp430的C++液晶(并行绿光12864)驱动。 (用msp430F247测试成功。)
💻 H
📖 第 1 页 / 共 2 页
字号:
****************************************************************************/

void Xlabel(char *str);
/****************************************************************************
* 名称:Xlabel()
* 功能:显示座标轴
* 入口参数: str  要显示的横标轴
*           
* 出口参数:无
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/

void Ylabel(char *str);
/****************************************************************************
* 名称:Ylabel()
* 功能:显示座标轴
* 入口参数: str  要显示的纵标轴
*           
* 出口参数:无
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/

void Title(char *str);
/****************************************************************************
* 名称:Title()
* 功能:给曲线图加标题
* 入口参数: str 曲线图标题
*           
* 出口参数:无
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/

void Plot(uint Num[]);
/****************************************************************************
* 名称:Plot()
* 功能:根据数组Num[]画曲线
* 入口参数: Num  要显示的数组
*           
* 出口参数:无
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/



uchar GetFColor(){return FronColor;}
uchar GetBColor(){return BackColor;}
void  SetFColor(uchar NewF){FronColor=NewF;}
void  SetBColor(uchar NewB){BackColor=NewB;}
void  SetZero(uchar NewX,uchar NewY){ZeroX=NewX;ZeroY=NewY;}
private:
  uchar FronColor;    //前景色
  uchar BackColor;    //背景色
  uchar CurenRow;     //当前行
  uchar CurenLin;     //当前列
  uchar ZeroX;
  uchar ZeroY;
  uchar DCB2HEX_TAB[8];
};
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
//以下是LCD部分方法中要用到的C函数

long Pow10(uchar x)
/***********************************************************************
* 名称:Pow10(uchar x)
* 功能:求10的x次方
* 入口参数:   x  10的乘方指数
                
* 出口参数:10的x次方
* 调用函数: 
          void FtoStr(float valure,char  *str)
* 说明:公用函数
***********************************************************************/
{
	uchar i=0;
	long temp=1;
	for(i=0;i<x;i++)
		{
		temp=temp*10;
		}
	return(temp);
}

void FtoStr(float valure,char  *str)
/***********************************************************************
* 名称:Fltostr(float valure,char idata *str)
* 功能:将浮点型数据转换成字符串
* 入口参数:	valure  要转换的浮点数据
                
* 出口参数:*str 转换后字符串保存位置
* 调用函数: 
          void LCD::PutF(uchar x, uchar y, float data)
* 说明:公用函数
***********************************************************************/

{
	long zhengshu=0,j=1,i=1;
	float xiaoshu=0.0;
	uchar k=0,flag=0;
	zhengshu=(long)valure;	//取得整数
	xiaoshu=(float)valure-zhengshu;	//取得小数
	if(valure<0)	//如果是小于0
		{
		valure=-valure;	//对valure取绝对值
		zhengshu=(long)valure;	//取得整数
		xiaoshu=(float)valure-zhengshu;	//取得小数
		flag=1;	//如果此数小于0,flag=1,在str[0]处放-1,在后面存放数据时就从str[1]开始
		str[0]='-';	//和前面或后面一样,-号的段码是11。
		if(zhengshu==0)
			{	
			i=0;	//指示整数部分为0,在后面就不对整数部分进行处理
			str[1]=0;	//在此数小于0且整数部分为0的情况下,的处理方式
			flag=2;		//在这种情况下,str[0],str[1]已经放了'-0'
			}
		}
	if(valure>=0)	//当数大于0,但是整数等于0时要在前面放0
		{
		if(zhengshu==0)
			{
			i=0;
			str[0]=0;
			flag=1;
			}
		}
	while(i!=0)	//在整数部分不为0的情况下,处理整数
		{
		i=zhengshu/j;
		if(i==0)
			break;
		j*=10;	//权值
		k++;	//指示有多少位整数
		}
	j=0;	//j归0,便于下面访问str中的元素
	for(i=0,j=flag;i<k;i++)	//对整数部分进行转换
		{
		str[j]=(uchar)(zhengshu/Pow10(k-i-1));
		zhengshu=zhengshu-str[j++]*Pow10(k-i-1);
		}
	str[j++]='.';	/*单片机中点用一个数值10代替,在正式使用时要改*/
	for(k=1;k<=6;k++)	//全精度转换,可能有问题,
		{
		str[j]=(int)(xiaoshu*Pow10(k));
		xiaoshu=xiaoshu-(float)str[j++]/Pow10(k);
		}

        for(i=0;i<30;i++)
          if(str[i]<=9)
            str[i]+=48;
	for(i=j;i<30;i++)
		{
		str[i]='\0';
		}        
}

#ifndef _ABS_
#define _ABS_
int Abs(int data)
{
  return data>=0? data:-data;
}
#endif //endif _ABS_

#ifndef _MAX_
#define _MAX_
uint Max(uint data[])
/***********************************************************************
* 名称:Max(uint data[])
* 功能:求数组data最大值
* 入口参数:	data[]
                
* 出口参数:uint 数组data中最大的元素
* 调用函数: 
          void LCD::Plot(uchar x, uchar y, float data)
* 说明:公用函数
***********************************************************************/
{
  uint t,i;
  t=data[0];
  for(i=0;i<127;i++)
  {
    if(data[i]>t)
      t=data[i];
  }
  return(t);
}
#endif //endif _MAX_

#ifndef _MIN_
#define _MIN
uint Min(uint data[])
/***********************************************************************
* 名称:Min(uint data[])
* 功能:求数组data最小值
* 入口参数:	data[]
                
* 出口参数:uint 数组data中最小的元素
* 调用函数: 
          void LCD::Plot(uchar x, uchar y, float data)
* 说明:公用函数
***********************************************************************/
{
  uint t,i;
  t=data[0];
  for(i=0;i<127;i++)
  {
    if(data[i]<t)
      t=data[i];
  }
  return(t);
}
#endif //endif _MIN_

#endif //endif __LCD_H
//《《《《《《《《《《《《《《《《《《《《《《《《《

⌨️ 快捷键说明

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