📄 lcd.h
字号:
****************************************************************************/
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 + -