void LED_PrintValueC(unsigned char x, unsigned char y, char data) { unsigned char i,j,k; if(data < 0) { LED_P6x8Char(x,y,'-'); data = - data; } else { LED_P6x8Char(x,y,'+'); } i = data/100; j = (data%100)/10; k = data%10; LED_P6x8Char(x+6,y,i+48); LED_P6x8Char(x+12,y,j+48); LED_P6x8Char(x+18,y,k+48); }
/***************************************************************************** 函 数 名 : LED_PrintChar 功能描述 : 将一个Char型数转换成3位数进行显示 输入参数 : unsigned char ucIdxX ucIdxX的范围为0~122 unsigned char ucIdxY ucIdxY的范围为0~7 CHAR8 cData cData为需要转化显示的数值 -128~127 输出参数 : none 返 回 值 : none *****************************************************************************/ void LED_PrintChar(unsigned char ucIdxX, unsigned char ucIdxY, char cData) { uint16 i, j, k, usData; if(cData <0) { // LED_P6x8Char(ucIdxX, ucIdxY, '-'); usData = (uint16)(-cData); } else { // LED_P6x8Char(ucIdxX, ucIdxY, '+'); usData = (uint16)cData; } i = usData / 100; j = (usData % 100) / 10; k = usData % 10; LED_P6x8Char(ucIdxX+6, ucIdxY, i+0x30); LED_P6x8Char(ucIdxX+12, ucIdxY, j+0x30); LED_P6x8Char(ucIdxX+18, ucIdxY, k+0x30); return; }
void LED_PrintValueI(unsigned char x, unsigned char y, int data) { unsigned char i,j,k,l,m; if(data < 0) { LED_P6x8Char(x,y,'-'); data = - data; } else { LED_P6x8Char(x,y,'+'); } l = data/10000; m= (data%10000)/1000; i = (data%1000)/100; j = (data%100)/10; k = data%10; LED_P6x8Char(x+6,y,l+48); LED_P6x8Char(x+12,y,m+48); LED_P6x8Char(x+18,y,i+48); LED_P6x8Char(x+24,y,j+48); LED_P6x8Char(x+30,y,k+48); }
void LED_PrintValueF(unsigned char x, unsigned char y, float data, unsigned char num) { unsigned char l,m,i,j,k; unsigned char databiti = 6; unsigned int tempdataui = 0; int tempdataii = (int)data; long int tempdatalp = (long int)((data - (int)data)*10000); if(data < 0.0000001) LED_P6x8Char(x, y,'-'); else LED_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) { LED_P6x8Char(x+6,y,l+48); LED_P6x8Char(x+12,y,m+48); LED_P6x8Char(x+18,y,i+48); LED_P6x8Char(x+24,y,j+48); LED_P6x8Char(x+30,y,k+48); } else if(m != 0) { databiti = 5; LED_P6x8Char(x+6,y,m+48); LED_P6x8Char(x+12,y,i+48); LED_P6x8Char(x+18,y,j+48); LED_P6x8Char(x+24,y,k+48); } else if(i != 0) { databiti = 4; LED_P6x8Char(x+6,y,i+48); LED_P6x8Char(x+12,y,j+48); LED_P6x8Char(x+18,y,k+48); } else if(j != 0) { databiti = 3; LED_P6x8Char(x+6,y,j+48); LED_P6x8Char(x+12,y,k+48); } else { databiti = 2; LED_P6x8Char(x+6,y,k+48); } if(tempdatalp < 0)tempdatalp = - tempdatalp; switch(num) { case 0: break; case 1: LED_PrintValueFP(x + databiti * 6, y, (unsigned int)(tempdatalp / 1000),num);break; case 2: LED_PrintValueFP(x + databiti * 6, y, (unsigned int)(tempdatalp / 100),num);break; case 3: LED_PrintValueFP(x + databiti * 6, y, (unsigned int)(tempdatalp / 10),num);break; case 4: LED_PrintValueFP(x + databiti * 6, y, (unsigned int)(tempdatalp),num);break; } }
void LED_PrintValueFP(unsigned char x, unsigned char y, unsigned int data, unsigned char num) { unsigned char m,i,j,k; LED_P6x8Char(x, y, '.'); m= data/1000; i = (data%1000)/100; j = (data%100)/10; k = data%10; switch(num) { case 1: LED_P6x8Char(x+6,y,k+48); break; case 2: LED_P6x8Char(x+6,y,j+48); LED_P6x8Char(x+12,y,k+48); break; case 3: LED_P6x8Char(x+6,y,i+48); LED_P6x8Char(x+12,y,j+48); LED_P6x8Char(x+18,y,k+48); break; case 4: LED_P6x8Char(x+6,y,m+48); LED_P6x8Char(x+12,y,i+48); LED_P6x8Char(x+18,y,j+48); LED_P6x8Char(x+24,y,k+48); break; } }