Пример #1
0
/*****************************************************************************
 函 数 名  : OLED_PrintShort
 功能描述  : 将一个Short型数转换成5位数进行显示
 输入参数  : uchar8 ucIdxX ucIdxX的范围为0~120
             uchar8 ucIdxY ucIdxY为页的范围0~7
             SHORT16 sData  sData为需要转化显示的数值
 输出参数  : none
 返 回 值  : none
*****************************************************************************/
void OLED_PrintShort(uchar8 ucIdxX, uchar8 ucIdxY, short sData)
{
    ushort16 i, j, k, l, m, usData;
    if(sData < 0)
    {
        OLED_P6x8Char(ucIdxX,ucIdxY,'-');
        usData = (ushort16)(-sData);
    }
    else
    {
        OLED_P6x8Char(ucIdxX,ucIdxY,'+');
        usData = (ushort16)sData;
    }

    l = usData / 10000;
    m = (usData % 10000) /1000;
    i = (usData % 1000) / 100;
    j = (usData % 100) / 10;
    k = usData % 10;
    OLED_P6x8Char(ucIdxX+6, ucIdxY, l+48);
    OLED_P6x8Char(ucIdxX+12, ucIdxY, m+48);
    OLED_P6x8Char(ucIdxX+18, ucIdxY, i+48);
    OLED_P6x8Char(ucIdxX+24, ucIdxY, j+48);
    OLED_P6x8Char(ucIdxX+30, ucIdxY, k+48);

    return;
}
Пример #2
0
/*****************************************************************************
 函 数 名  : OLED_PrintChar
 功能描述  : 将一个Char型数转换成3位数进行显示
 输入参数  : uchar8 ucIdxX    ucIdxX的范围为0~122
             uchar8 ucIdxY    ucIdxY的范围为0~7
             char cData      cData为需要转化显示的数值 -128~127
 输出参数  : none
 返 回 值  : none
*****************************************************************************/
void OLED_PrintChar(uchar8 ucIdxX, uchar8 ucIdxY, signed char cData)
{
    ushort16 i, j, k, usData;

    if(cData < 0)
    {
        OLED_P6x8Char(ucIdxX, ucIdxY, '-');
        usData = (ushort16)(-cData);
    }
    else
    {
        OLED_P6x8Char(ucIdxX, ucIdxY, '+');
        usData = (ushort16)cData;
    }
    i = usData / 100;
    j = (usData % 100) / 10;
    k = usData % 10;

    OLED_P6x8Char(ucIdxX+6, ucIdxY, i+48);
    OLED_P6x8Char(ucIdxX+12, ucIdxY, j+48);
    OLED_P6x8Char(ucIdxX+18, ucIdxY, k+48);

    return;
}
Пример #3
0
//==============================================================
//函数名:   
//功能描述:输出float的小数部分
//参数:x的范围为0~62,y为页的范围0~7,data为需要转化显示的数值整数部分最多位5位  num表示数位0~4
//返回:无
//==============================================================
 void OLED_PrintValueFP(uint8 x, uint8 y, unsigned  int data, uint8 num)
 {
 	uint8 m,i,j,k;  	
 	OLED_P6x8Char(x, y, '.');
	m= data/1000;
	i = (data%1000)/100;
	j = (data%100)/10;
	k = data%10;
	switch(num)
	{
		case 1:  	OLED_P6x8Char(x+6,y,k+48);
				break;
		case 2:  	OLED_P6x8Char(x+6,y,j+48);
				OLED_P6x8Char(x+12,y,k+48);
				break;
		case 3:	OLED_P6x8Char(x+6,y,i+48);
				OLED_P6x8Char(x+12,y,j+48);
				OLED_P6x8Char(x+18,y,k+48);
				break;
		case 4: 	OLED_P6x8Char(x+6,y,m+48);
				OLED_P6x8Char(x+12,y,i+48);
				OLED_P6x8Char(x+18,y,j+48);
				OLED_P6x8Char(x+24,y,k+48);
				break;	
	}
 }
Пример #4
0
//==============================================================
//函数名:   void OLED_PrintValueF(byte x, byte y, float data, byte num);
//功能描述:将一个float型数转换成整数部分5位带小数和符号的数据并进行显示
//参数:x的范围为0~62,y为页的范围0~7,data为需要转化显示的数值整数部分最多位5位  num表示保留的小数位0~4
//返回:无
//==============================================================
 void OLED_PrintValueF(uint8 x, uint8 y, float data, uint8 num)
 {
 	uint8 l,m,i,j,k;  //万千百十个
 	uint8 databiti = 6; //整数位数
 	unsigned  int tempdataui = 0;
  	int tempdataii = (int)data; //整数部分
 	long int tempdatalp = (long int)((data - (int)data)*10000); //取小数位后4位
 	
 	//整数部分显示
 	if(data < 0.0000001)  OLED_P6x8Char(x, y,'-'); 
 	else OLED_P6x8Char(x, y,'+');
	if(tempdataii < 0)tempdataii = - tempdataii;  //去掉整数部分负号
	tempdataui = tempdataii;
 	l  = tempdataui/10000;
	m= (tempdataui%10000)/1000;
	i = (tempdataui%1000)/100;
	j = (tempdataui%100)/10;
	k = tempdataui%10;
 	if (l != 0)  //五位
 	{
 		OLED_P6x8Char(x+6,y,l+48);
 		OLED_P6x8Char(x+12,y,m+48);
		OLED_P6x8Char(x+18,y,i+48);
		OLED_P6x8Char(x+24,y,j+48);
		OLED_P6x8Char(x+30,y,k+48);
 	}
 	else if(m != 0) //四位
 	{
 		databiti = 5;
 		OLED_P6x8Char(x+6,y,m+48);
 		OLED_P6x8Char(x+12,y,i+48);
		OLED_P6x8Char(x+18,y,j+48);
		OLED_P6x8Char(x+24,y,k+48);
 	}
  	else if(i != 0) //三位
  	{
  		databiti = 4;
  	 	OLED_P6x8Char(x+6,y,i+48);
 		OLED_P6x8Char(x+12,y,j+48);
		OLED_P6x8Char(x+18,y,k+48);
  	}
  	else if(j != 0) //两位
  	{
    		databiti = 3;	
  		OLED_P6x8Char(x+6,y,j+48);
 		OLED_P6x8Char(x+12,y,k+48);
  	}
	else 	
	{
		databiti = 2;
		OLED_P6x8Char(x+6,y,k+48);
	}	
 	if(tempdatalp < 0)tempdatalp = - tempdatalp;	//去掉小数部分负号
	switch(num)
	{
		case 0: break;
		case 1:  OLED_PrintValueFP(x + databiti * 6, y, (uint)(tempdatalp / 1000),num);break;
		case 2:  OLED_PrintValueFP(x + databiti * 6, y, (uint)(tempdatalp / 100),num);break;
		case 3:  OLED_PrintValueFP(x + databiti * 6, y, (uint)(tempdatalp / 10),num);break;
		case 4:  OLED_PrintValueFP(x + databiti * 6, y, (uint)(tempdatalp),num);break;					
	}
 }
Пример #5
0
//==============================================================
//函数名:   
//功能描述:
//参数:x的范围为0~62,y为页的范围0~7,data为需要转化显示的数值整数部分最多位5位  num表示数位0~4
//返回:无
//==============================================================
 void OLED_PrintValueInt(uint8 x, uint8 y, signed  int data, uint8 num)
 {
        uint8 z = 0;
 	uint8 m,i,j,k;
        if (data < 0)
        {
          OLED_P6x8Char(x,y,'-');
          data = - data;
          z = 1;
        }
	m= data/1000;
	i = (data%1000)/100;
	j = (data%100)/10;
	k = data%10;
	
          if (1 == z)
          {
            switch(num)
            {       
                case 1:  	OLED_P6x8Char(x+6,y,k+48);
				break;
		case 2:  	OLED_P6x8Char(x+6,y,j+48);
				OLED_P6x8Char(x+12,y,k+48);
				break;
		case 3:	OLED_P6x8Char(x+6,y,i+48);
				OLED_P6x8Char(x+12,y,j+48);
				OLED_P6x8Char(x+18,y,k+48);
				break;
		case 4: 	OLED_P6x8Char(x+6,y,m+48);
				OLED_P6x8Char(x+12,y,i+48);
				OLED_P6x8Char(x+18,y,j+48);
				OLED_P6x8Char(x+24,y,k+48);
				break;	
            }
          }
          else
          {
            switch(num)
            {
                case 1:  	OLED_P6x8Char(x,y,k+48);
                                OLED_P6x8Char(x+6,y,' ');
				break;
		case 2:  	OLED_P6x8Char(x,y,j+48);
				OLED_P6x8Char(x+6,y,k+48);
                                OLED_P6x8Char(x+12,y,' ');
				break;
		case 3:	OLED_P6x8Char(x,y,i+48);
				OLED_P6x8Char(x+6,y,j+48);
				OLED_P6x8Char(x+12,y,k+48);
                                OLED_P6x8Char(x+18,y,' ');
				break;
		case 4: 	OLED_P6x8Char(x,y,m+48);
				OLED_P6x8Char(x+6,y,i+48);
				OLED_P6x8Char(x+12,y,j+48);
				OLED_P6x8Char(x+18,y,k+48);
                                OLED_P6x8Char(x+24,y,' ');
				break;	
            }
          }
 }