本例程下载:2.emWin5.26(ucGui)VS2008数字显示.zip

 

emWin显示文本字符还是容易,我们也可以使用字符串和标准 C 库的函数来显示数值。然而,有时候这会是件困难的事。通常,较为容易(也更为有效)的是调用一个例程显示所需结

构的数值。 emWin 支持各种十进制、十六进制和二进制输出。本章将对这些例程进行逐一描述。所有函数不需要使用浮点库,并对速度和大小进行了优化。当然"Sprintf"可以用于任何系统。使

用本章介绍的例程,有时可以简化操作,节省 ROM 空间和执行时间,下表按字母顺序列出了相应类别中与数值相关的可用例程。各例程将在后续章节中详细描述。

 

显示十进制数值接口

GUI_DispDec() 在当前位置显示指定字符数的十进制数值。

GUI_DispDecAt() 在指定位置显示指定字符数的十进制数值。

GUI_DispDecMin() 在当前位置显示最小字符数的十进制数值。

GUI_DispDecShift() 在当前位置显示指定字符数、带小数点的十进制长数值。

GUI_DispDecSpace() 在当前位置显示指定字符数的十进制数值,用空格代替首位的 0。

GUI_DispSDec() 在当前位置显示指定字符数的十进制数值并显示符号。

GUI_DispSDecShift() 在当前位置显示指定字符数、带小数点的十进制长数值并显示符号。

 

显示浮点数值接口

GUI_DispFloat() 显示指定字符数的浮点数值。

GUI_DispFloatFix() 显示指定小数点右边位数的浮点数值。

GUI_DispFloatMin() 显示最小字符数的浮点数值。

GUI_DispSFloatFix() 显示指定小数点右边位数的浮点数值并显示符号。

GUI_DispSFloatMin() 显示最小字符数的浮点数值并显示符号。

 

显示二进制数值接口

GUI_DispBin() 在当前位置显示二进制数值。

GUI_DispBinAt() 在指定位置显示二进制数值。

 

显示十六进制数值接口

GUI_DispHex() 在当前位置显示十六进制数值。

GUI_DispHexAt() 在指定位置显示十六进制数值。

 

emWin 版版本接口

GUI_GetVersionString() 返回 emWin 的当前版本。

 

接下来对以上的接口写个例程,演示各种接口的使用方法

本例程演示效果

 
 

#include
"GUI.h"

#include
"WM.h"

 
 

#include
"CHECKBOX.h"

#include
"FRAMEWIN.h"

#include
"PROGBAR.h"

#include
"TEXT.h"

#include
"BUTTON.h"

#include
"SLIDER.h"

#include
"HEADER.h"

#include
"GRAH.h"

#include
"ICONVIEW.h"

#include
"LISTVIEW.h"

#include
"TREEVIEW.h"

 
 

void MainTask(void)

{

 
 

int Min = -2;

int Sec = 60;

float f = 3.141592;

 
 

int state;

 
 

#if GUI_WINSUPPORT

WM_SetCreateFlags(WM_CF_MEMDEV);

#endif

GUI_Init();

#if GUI_WINSUPORT

WM_MULTIBUF_Enable(1);

#endif

while(1)

{

/*---------------10进制显示-------------------*/

 
 

GUI_SetFont(&GUI_Font8x8);

GUI_GotoXY(0,0);

GUI_DispString("\nGUI_DispDec:\n\n");

 
 

GUI_SetFont(&GUI_Font6x8);

 
 

 
 

//在当前位置显示字符串

GUI_DispString("Min:");

 
 

//在当前位置显示Min的值,长度是

GUI_DispDec(-Min,2);

 
 

//在当前位置显示字符串

GUI_DispString(" Sec:");

 
 

//在当前位置显示Sec的值,长度是

GUI_DispDec(Sec,2);

 
 

 
 

//延时

GUI_Delay(90);

Sec++;

Sec %= 61;

 
 

//在, 100,显示Min的值,长度

GUI_DispDeAt(Min, 0, 50, 3);

 
 

//在, 110,显示,长度超出范围不显示

GUI_DispDecAt(59009, 50, 50, 3);

 
 

//在, 110,显示,长度前面补

GUI_DispDecAt(89, 100, 50, 3);

 
 

//在, 110,显示,长度前面补

GUI_DispDecAt(887, 150, 50, 9);

 
 

//当前位置换行

GUI_DispString("\n");

 
 

//当前位置显示,长度自动

GUI_DispDecMin(530);

 
 

//当前位置加入空格

GUI_DispString(" ");

 
 

//位置显示-83492

GUI_DispDecMin(-83492);

 
 

//当前位置加入空格

GUI_DispString(" ");

 
 

//当前位置显示-388/(10^1),长度前面补

GUI_DispDecShift(-388, 9, 1);

 
 

//当前位置加入空格

GUI_DispString(" ");

 
 

//当前位置显示-388/(10^2),长度前面补

GUI_DispDecShIft(-388, 6, 2);

 
 

//当前位置换行

GUI_DispString("\n");

 
 

//当前位置显示Start:

GUI_DispString("Start:");

 
 

//当前位置显示-3415,前面补空格

GUI_DispDecSpace(-3415, 8);

 
 

//当前位置加入空格

GUI_DispString(" ");

 
 

//当前位置显示-12455

GUI_DispSDec(-12455, 10);

 
 

//当前位置加入空格

GUI_DispString(" ");

 
 

//当前位置显示+12455

GUI_DispSDec(12455, 10);

 
 

//当前位置加入空格

GUI_DispString(" ");

 
 

//当前位置-12455/(10^2), 长度,前面补

GUI_DispSDecShift(-12455, 9, 2);

 
 

//当前位置加入空格

GUI_DispString(" ");

 
 

//当前位置+12455/(10^1), 长度,前面补

GUI_DispSDecShift(12455, 8, 1);

 
 

/*---------------浮点数值显示-------------------*/

 
 

 
 

GUI_SetFont(&GUI_Font8x8);

//当前位置加入换行

GUI_DispString("\n\n\n\nGUI_DispFloat:\n\n");

 
 

GUI_SetFont(&GUI_Font6x8);

 
 

//显示f值,长度为,后面补

GUI_DispFloat(f, 10);

 
 

//当前位置加入空格

GUI_DispString(" ");

 
 

//显示-f值,长度为,后面补

GUI_DispFloat(-f, 10);

 
 

GUI_DispString(" ");

 
 

//显示f值,长度为,前面补,小数位

GUI_DispFloatFix(f, 1O, 3);

 
 

GUI_DispString(" ");

 
 

//显示f值,长度自动,小数位

GUI_DispFloatMin(f, 5);

 
 

GUI_DispString(" ");

 
 

//显示f值,长度,小数位,带符号

GUI_DispSFloatFix(f, 10, 2);

 
 

GUI_DispString(" ");

//显示-f值,长度,小数位,带符号

GUI_DispSFloatFix(-f, 10, 2);

 
 

 
 

GUI_DispString("\n");

 
 

//显示f值,长度自动,小数位,带符号

GUI_DispSFloatMin(f, 3);

 
 

GUI_DispString(" ");

 
 

//显示f值,长度自动,小数位,带符号

GUI_DispSFloatMin(-f, 3);

 
 

 
 

 
 

/*---------------二进制数值显示-------------------*/

 
 

 
 

GUI_SetFont(&GUI_Font8x8);

//当前位置加入换行

GUI_DispString("\n\n\n\nGUI_DispBin:\n\n");

 
 

GUI_SetFont(&GUI_Font6x8);

 
 

GUI_DispBin(0xaa, 8);

 
 

GUI_DispBinAt(0xaa5587, 100, 17O, 24);

 
 

 
 

 
 

/*---------------十六进制数值显示-------------------*/

 
 

 
 

GUI_SetFont(&GUI_Font8x8);

//当前位置加入换行

GUI_DispString("\n\n\n\nGUI_DispHex:\n\n");

 
 

GUI_SetFont(&GUI_Font6x8);

 
 

GUI_DispHex(0xaa, 8);

 
 

GUI_DispHexAt(0xaa5587, 110, 218, 8);

 
 

GUI_SetFont(&GUI_Font8x8);

 
 

//当前位置加入换行

GUI_DispString("\n\n\n\nThis is emWin V");

 
 

GUI_DispString(GUI_GetVersionString());

 
 

 
 

GUI_DispString("\n\nThe emWin demo for Worldsing");

 
 

state = Sec % 4;

switch(state)

{

case 0:

    GUI_DispString(" - ");break;

case 1:

    GUI_DispString(" / ");break;

case 2:

    GUI_DispString(" | ");break;

case 3:

    GUI_DispString(" \ "); break;

}

GUI_SetFont(&GUI_Font6x8);

 
 

}

}

emWin(ucGui)数值显示例程 -【worldsing笔记】的更多相关文章

  1. emWin(ucGui) Edit控件数值模式 ——符号编辑 worldsing

    emWin(ucGui) Edit控件数值模式出现负数值编辑时,如果键盘按键全可以设置独立的"-","+"键,这样可以正常编辑正数和负数,但是要没有设置这两个键 ...

  2. uCGUI的文字与数值显示方法

    uCGUI的数值显示非常的灵活方便,是制作LCD界面非常好的选择. 文字与数值显示的方法: 常用文本显示函数: void GUI_DispStringAt(const char GUI_FAR *s, ...

  3. emWin(ucGUI)在PC机上模拟的按键响应多次解决办法 worldsing

    emWin(ucgui) 在PC端的模拟器,默认的按键机制是"按抬都Msg",当在按下键盘时,会收到一个key值-1,在按键没有离开时一直维持,当按键松开时还发送一个key值-0的 ...

  4. 实验10.3_数值显示拓展_dword型数转变为表示十进制数的字符串

    assume cs:code data segment db 10 dup (0) data ends code segment start : mov ax,4240H;F4240H=1000000 ...

  5. [Unity3D]Unity3D游戏开发之伤害数值显示

    大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei.众所周知,在RPG游戏策划中最为重要的一个环节是数值策划.数值策划是一个关于游戏平衡方面的概念 ...

  6. Highcharts 饼图数值显示在图形上

    1.引用js文件 <script type="text/javascript" src="http://cdn.hcharts.cn/jquery/jquery-1 ...

  7. emWin显示文本字符-【worldsing笔记】

    在emWin显示文本字符还是容易的,提供了各种不同的接口,下面是有关于字符显示的常用的用法,可以直接复制到VS2008的模拟ucGui(emWin模拟工程)中运行: 工程代码下载:1.emWin5.2 ...

  8. 3.emWin5.26(ucGui)VS2008 2-D图形库-基本绘图【Worldsing笔记】

    UCGUI(emWin) 2-D图形库--之基本板绘图,在ucgui的基本绘图功能上来看,功能还是比较全的,本例程主要使用基本的接口,两个主要的概念是绘制(draw)和填充(Fill),这两的区别是一 ...

  9. emWin(ucGui) MULTIEDIT控件的按键响应处理 worldsing

    目前没有读过ucgui的源代码,通过应用代码测试出在FRAMEWIN的控件焦点顺序是样的: 按资源列表里创建的控件,默认将焦点落在第一个可接收焦点的控件,目前知道不可接收 焦点的控件有TEXT,在FR ...

随机推荐

  1. HDU 2897 (博弈 找规律) 邂逅明下

    根据博弈论的两条规则: 一个状态是必胜状态当且仅当有一个后继是必败状态 一个状态是必败状态当且仅当所有后继都是必胜状态 然后很容易发现从1开始,前p个状态是必败状态,后面q个状态是必胜状态,然后循环往 ...

  2. Asp.Net保存session的三种方法

    C#中保存Session的三种方法及Web.Config设置 1.保存session到sql server,需要指定Sql Server服务器,这种方法因为要读写数据库最慢 <sessionSt ...

  3. Jenkins+Maven+SVN搭建自动部署、自动测试环境

    .打开http://10.3.15.78:8080/jenkins/,第一次进入里面没有数据,我们需要创建job,我们这有2个项目,需要创建2个job.http://10.3.34.163:9890/ ...

  4. (六) 6.1 Neurons Networks Representation

    面对复杂的非线性可分的样本是,使用浅层分类器如Logistic等需要对样本进行复杂的映射,使得样本在映射后的空间是线性可分的,但在原始空间,分类边界可能是复杂的曲线.比如下图的样本只是在2维情形下的示 ...

  5. Word排版成树形结构技巧

    初始文字 A A1 A2 B1 B1 B2 C C1 希望效果 关健设置

  6. crontab 每月最后一天

    0 8 28-31 * * [ `date -d tomorrow +%e` -eq 1 ] && do-something   我觉得能想到这种方法的,都是经验丰富的人.程序员们,想 ...

  7. makefile实例(2)-多个文件实例

    1,源文件依赖关系 defs.h command.h buffer.h main.cpp * util.cpp * kde.cpp * * command.cpp * * display.cpp * ...

  8. [转] Asp.Net 导出 Excel 数据的9种方案

    湛刚 de BLOG 原文地址 Asp.Net 导出 Excel 数据的9种方案 简介 Excel 的强大之处在于它不仅仅只能打开Excel格式的文档,它还能打开CSV格式.Tab格式.website ...

  9. Dev GridView 获取选中分组下的所有数据行 z

    现在要在DevExpress 的GridView 中实现这样一个功能.就是判断当前的选中行是否是分组行,如果是的话就要获取该分组下的所有数据信息. 如下图(当选中红框中的分组行事.程序要获取该分组下的 ...

  10. 【LeetCode】100 - Same Tree

    Given two binary trees, write a function to check if they are equal or not. Two binary trees are con ...