本帖最后由 bh2030693 于 2019-11-12 14:10 编辑
假设你的“写指令”和“写数据”函数已经写好了,初始化也完成了,下面是一种写法:
code uchar TabNumASCII[10] = {'0','1','2','3','4','5','6','7','8','9'}; //液晶屏显示数字字符表格
code uchar TabLineAddr[4] = {0x80,0x90,0x88,0x98};
float flData = 23.56; // 原始值
unsigned int uiNumber = flData * 100; // uiNumber = 2356; 如果直接取整数上一行可以省略
uiNumber %= 10000; // 过滤无效位,可省略这行
// 设置显示位置
// LCD12864_WriteCommand(y + x);
LCD12864_WriteCommand(TabLineAddr + x); // i = 0~3; 第几行, x是字符横向位置
LCD12864_WriteData(TabNumASCII[uiNumber / 1000]); // 显示千位:2
LCD12864_WriteData(TabNumASCII[uiNumber % 1000 / 100]); // 显示百位:3
LCD12864_WriteData('.');
LCD12864_WriteData(TabNumASCII[uiNumber % 100 / 10]);
LCD12864_WriteData(TabNumASCII[uiNumber % 10]);
这只是常见的一种写法,写法很多。
补充:在显示汉字的时候,有的编译器需要选择字符编码为中文简体GB2312,是否需要设置根据实际情况决定。
注:昨天发上去的代码不知道为什么不完整,特编辑了一下。
|