Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,Keil公司是一家业界领先的微控制器(MCU)软件开发工具的独立供应商。Keil公司由两家私人公司联合运营,分别是德国慕尼黑的Keil Elektronik GmbH和美国德克萨斯的Keil Software Inc。Keil公司2005年由ARM公司收购,其两家公司分别更名为ARM Germany GmbH和ARM Inc。

2013年10月,Keil正式发布了Keil μVision5 IDE。

我们今天这个项目用的是μVision4版本

用单片机做过嵌入式开发的朋友应该都深有体会,与后台的控制算法相比,前台的图形化界面开发也占了很大一部分精力,keil本身没有前台界面设计的功能,虽然各个屏幕厂家会给出底层的驱动库,但也并不是专业的上层界面设计软件。而我们非平面设计专业出身的门外汉,做起这些艺术类的东西,确实很头疼,界面做的不好看不说,还耗费了我们很多的精力。虽然有些公司有美工,但美工更多的是做整体的布局风格设计,以静态图为主,到了具体的控件设计,尤其人机交互这种动态的图形化这一块,也就无能为力了。

所以,嵌入式的图形化开发,最好能借助第三方的软硬件相结合的智能屏,界面的设计由组态软件来实现,界面留有和后台c程序交互的接口,这样我们就可以借助第三方的力量,快速完成界面设计,从而把更多的精力留在后台的控制程序上。

前些天小编接触到一款T5L迪文智慧屏,刚开始用,效果如何不予评论,不为某产品站台,也不刻意抹去人家的名姓,只把实现步骤做一介绍。

目录

一、开发环境搭建

1、下载安装Keil集成开发工具

2、下载安装DGUS Tool界面设计工具

3、下载安装DownLoadFor8051下载工具

4、安装AGDI驱动

二、创建C51项目工程模板

1、创建功能文件夹

2、硬件环境配置

(1)Device配置

(2)Target配置

(3)Output配置

(4)C51配置

三、HELLOW WORD例程

1.1GUI界面设计

2、导入背景图

3、在背景上添加控件

4、生成配置文件

5、生成icl文件

6、C51程序文件编制

7、hex文件转bin文件

8、烧录文件到控制器

(1)格式化SD

(2)SD卡内创建文件夹

(3)烧录


一、开发环境搭建

1、下载安装Keil集成开发工具

这部分网上有很多资料,小编不再啰嗦,直接跳过。只需要注意要下载c51版本

2、下载安装DGUS Tool界面设计工具

可以从迪文官方网站“服务中心”->"资料与工具下载"下载“智能屏开发工具:T5L DGUS2 V7版本。

3、下载安装DownLoadFor8051下载工具

该工具是用来将我们的C51代码下载到单片机OS内核上去的。

该网站资料说明不是很容易理解,经过琢磨,小编把常用的一些资料打包上传到百度网盘上了,需要的朋友可以自取。

链接:https://pan.baidu.com/s/1_20NZW182wWBlf1vLO1bAw

提取码:dwin

下载此链接中文件后解压缩此工具放在了”迪文T5L ASIC开发_T5L+芯片.rar”压缩包中,找到DownLoadFor8051 V1.4测试-DownLoadFor8051.exe即可运行。

4、安装AGDI驱动

安装AGDI驱动的作用是把T5L智能屏导入到Keil的芯片库中。此驱动的安装包在上述百度网盘文件”迪文T5L ASIC开发_T5L+芯片.rar”压缩包中的”驱动程序\KEIL AGDI T5”文件夹下“agdi_installation_dwin.exe”

双击此文件进行安装,安装的路径与Keil C51软件的安装位置一样。如果之前已经安装好了Keil C51软件的话,那么此驱动安装包会自动定位到这个位置的。

安装完AGDI驱动后,我们还需要将”迪文T5L ASIC开发_T5L+芯片.rar”压缩包中的”dwin-T5L-master”文件夹下的T5L_OS_8051.INCT5LOS8051.h这俩个文件拷贝到Keil C51安装目录下的”C51\INC\DWIN”文件夹内,如下图所示。

二、创建C51项目工程模板

1、创建功能文件夹

在桌面建立一个Demo1/C51/template文件夹,在其内再创建一个template文件夹,在此文件夹下依次创建USER、 OBJ、 HANDWARE、GUI_APP、FUNC_HANDLER5个子文件夹,如图所示。

这5个子文件夹的作用分别如下:

USER: 用来存放Keil项目工程文件、STARTUP_M5.A51启动文件、main.c文件、sys.c系统文件和 T5LOS8051.h文件。

OBJ: 用来存放编译之后的输出文件和临时文件。

HANDWARE: 用来存放硬件驱动文件的,比如UART串口驱动,NOR FLASH存储驱动。

GUI_APP: 用来存放GUI应用界面文件。假如我们整个项目就只有欢迎界面和主界面这2个界面,那么我们可以在GUI_APP目录下创建这些界面对应的.c和.h文件,如下所 示:

FUNC_HANDLER: 用来存放我们整个项目的业务逻辑代码的,在GUI_APP目录下的文件最好只处理跟界面相关的东西,而跟业务逻辑相关的代码最好放到FUNC_HANDLER目录下。

2、硬件环境配置

创建Keil项目时,选择device的时候在Select a CPU Data Base File对话框中,点下拉列表框时,可以看到已经有了DWIN Device选项,选中这个选项。

然后选择DWIN下的T5器件,如下图所示:

创建好Keil工程之后,我们需要点击图标,来对我们的工程进行配置。

(1)Device配置

device配置如图所示:

以上两步配置的作用是: 禁止Keil输出”WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS” 警告。

(2)Target配置

配置存储模式和Xdata存储区域,我们T5L中的OS核具有64KB的flash,32KB的片内ram,这32KB的ram属于xdata区域,必须得正确配置,否则会出问题的。

(3)Output配置

点击Select Folder for Objects配置输出目录为OBJ目录和输出名称为template。

(4)C51配置

点击"C51"标签,配置Level为:3:Peephole optimization,Emphasis为"Favor size"。

三、HELLOW WORD例程

1.1GUI界面设计

双击打开DGUS Tool界面设计工具,然后点击左上角的”新建”按钮,如下图所示:

选择对应的屏幕分辨率,我这里选择的是480*272,储存路径为桌面上的TEMPLATE文件夹。

这样,一个简单的GUI项目工程就创建好了,目录结构如下图所示:

2、导入背景图

将事前做好的一张分辨率为480*272的图片导入到dgus软件中。

点击“+”号图标,将名为0bj.jpg的图片导入后的效果如图所示。图片的格式可以为jpg或者bmp,但图片名称必须以数字开头。

3、在背景上添加控件

接着往”0bj”上添加一个”数据变量显示”控件,同时设置好此控件的相应属性,如下图所示。这里的变量地址选择2000,变量类型选择长整数(4字节),整数位数改为8就可以了。

4、生成配置文件

最后点击”生成”按钮来让DGUS Tool开发工具自动生成下载文件,如下图所示:

5、生成icl文件

设置->DGUS

在弹出下图所示的对话框中,点ICL工具标签,然后点击“选择图片”按钮,然后选中刚生成的obj.jpg背景文件,JPG图片质量选中100%,选中“全部设置”,然后点击导入后边的“生成”按钮。

然后在弹出的对话框中选择ICL文件的存储路径和文件名称如下所示,然后点“保存”按钮。

6、C51程序文件编制

本例程是在背景文件的数据框内显示一个每秒自增1的可变数字。

#include "sys.h"#define START_WIN_NUM_VP 0x2000 //启动界面上的数据变量显示控件的VP地址//因为数据变量显示控件的变量类型设置为了"长整数(4字节)",//所以num变量的数据类型得设为u32,即也是4字节,保持一致xdata u32 num;void main(void){   sys_init();//系统初始化//num变量赋予初值0,注意,对于xdata存储区域的变量,在定义的时候,不能//直接赋初值,即对于xdata u32 num = 0;这种定义变量的方式是有问题的,//这是由于T5L芯片内部自身原因造成的,因为T5L芯片内部扩展的32KB ram//必须得在sys_init()系统初始化之后才能够被正常的访问,//如果你想在定义变量的时候进行赋初值,那么你可以使用data或者idata关键字,//如 idata u32 num = 0;所示num = 0;while(1){   sys_delay_ms(1000);//精确延时1秒num++;//加1sys_write_vp(START_WIN_NUM_VP,(u8*)&num,2);//把当前的数值更新到VP地址,4字节也就是2个字}}

将此程序文件编译后生成hex文件。

7、hex文件转bin文件

打开DOWMLOADFOR 80C51,选择这个程序的hex文件位置,点击hex2bin并保存,生成的bin文件就在原hex文件所在的位置。

8、烧录文件到控制器

本例用的烧录方式为SD卡烧录方式。

(1)格式化SD

T5L迪文屏对下载时所用的SD卡有要求,其文件系统必须为FAT32的,分配单元大小为4096字节,容量大小范围为1-16GB,如果你的SD卡不满足此条件的话,可以对此SD卡进行格式化,如下图所示:

(2)SD卡内创建文件夹

格式化完成后在SD卡中建立一个DWIN_SET文件夹,否则迪文屏无法识别,再将之前生成好的以下文件导入到SD卡中。

(3)烧录

将SD卡插入T5L迪文屏的SD卡座内,上电,待其烧写完成后,屏幕上会显示End字样,之后断电,取出SD 卡,再次通电,刚刚做好的界面就会显示在迪文屏上了。

最终程序运行的结果如下图所示。

(全文结束)

Keil+T5L智能屏——让单片机图形化界面开发变得如此简单相关推荐

  1. python图形化界面教程_python图形化界面开发教程

    python图形化界面开发教程内容摘要 python图形化界面开发教程白萝卜:泰兴电工教程,白了点,白兰地是在红葡萄酒的基础.基金从业资格教程学校,白开水.苜蓿干草.提摩西干草.兔粮方法:白居易< ...

  2. 基于PyQt5的图形化界面开发——模拟医院管理系统

    基于PyQt5的图形化界面开发--模拟医院管理系统 0. 前言 1. 需求分析 2. 挂号界面的思路.UI界面代码及相应触发函数 2.1 思路分析 2.2 ui_guahao.py 2.3 相应的触发 ...

  3. 基于PyQt5的图形化界面开发——Windows内存资源监视助手[附带编译exe教程]

    基于PyQt5的图形化界面开发--Windows内存资源监视助手[附带编译exe教程] 0. 前言 1. 资源信息获取函数--monitor.py 2. UI界面--listen.py 3. main ...

  4. ubuntu系统安装Nvidia显卡驱动重启后黑屏无法进入图形化界面

    适用于我的解决方案方案是: [Ubuntu]Ubuntu16.04 安装显卡驱动重启黑屏问题处理_ubuntu安装显卡驱动后重启黑屏_街头卖艺小杨的博客-CSDN博客 也就是进入recovery mo ...

  5. MySQL的图形化界面开发工具DataGrip的下载安装

    在日常的开发中,会借助于MySQL的图形化界面,来简化开发,提高开发效率.目前mysql主流的图形化界面工具,有Navicat.SQLyog.DataGrip等,最后一种DataGrip,这种图形化界 ...

  6. python图形化界面开发工具,python如何做图形化界面

    Python tkinter能做出好看的图形界面么 谷歌人工智能写作项目:小发猫 python 图形化界面 使用wxpython,import wxapp = ()win = wx.Frame(Non ...

  7. c语言图形化界面开发 (一)

    0x00 前言 1.说明 既然Android逆向是杂学,而且c语言又是我的本命学科,那么学习一下还是可以的,但是肯定不会占很多的时间,也就是一心三用,然后进行一个简单的博客说明. 3.环境 vs 20 ...

  8. python图形化界面开发工具_图形用户界面(GUI)常见问题

    针对不同的(操作系统或)平台,有多种工具包可供选择.虽然有些工具包还没有移植到 Python 3 上,但至少目前 Tkinter 以及 Qt 是兼容 Python 3 的. Python 的标准编译包 ...

  9. 智能灯控制页面用HTML编写,3分钟教你创建手机APP控制全彩智能灯泡应用,图形化编程!...

    本帖最后由 bigfanofloT 于 2016-9-22 22:33 编辑 对,你没有看错!!!3分钟教你创建手机APP控制全彩智能灯泡应用,图形化编程,自动代码生成,麻麻再也不用担心我不会编程了, ...

最新文章

  1. LeetCode简单题之实现 strStr()
  2. 推荐10款windows端实用软件,每一款都是精品!
  3. 初识Tcl(六):Tcl 数组
  4. 渣硕 面 用友软件 Java开发
  5. 在同一网段内运行同一命令_一高楼两层同时起火!同一天内,全国竟发生数起“高层火灾”!...
  6. 记录:通过SSH远程连接Ubuntu
  7. 数据解读京东上最受欢迎的面包
  8. OpenShift 4 - 通过DaemonSet在指定Node上运行守护程序
  9. python实现文件传输_Python实现基于HTTP文件传输实例
  10. Android的系统架构
  11. 电话号码被标记,快速取消教程
  12. Linux串口通信编程
  13. java 审计日志_审计日志的实现
  14. VBScript 教程
  15. 戴尔笔记本耳机插上仍然有外音
  16. V4L2- Memory
  17. [渝粤教育] 宁波城市职业技术学院 插花艺术 参考 资料
  18. 关于背包问题的递归解法
  19. 2k14无法打开因为计算机,NBA2K14虚拟光驱SCSI无法开启攻略_NBA2K14提示安装SPTD_快吧单机游戏...
  20. 密码学-常见加密算法逆向学习

热门文章

  1. Kali与MSF之信息收集
  2. 建筑师学python有用吗_作为建筑师,我们为什么要学编程?
  3. 如何将onnx转ncnn供移动端推理使用
  4. Web前端,CSS常用之相对定位和绝对定位的区别,静态定位、子绝父相、固定定位、元素的层级关系的了解
  5. telematics product and company in China
  6. Arduino与Proteus仿真实例-WS2812实现音乐氛围灯仿真
  7. (转载)总体设计-模块化 层次图 结构图
  8. 谈谈网站是如何进行访问的
  9. 论文阅读——S. Lee, et al., Beyond Natural Motion: Exploring Discontinuity for Video Frame Interpolation
  10. 基于ssm的宿舍管理系统