在第1章节中,已经教会大家如何去搭建好开发环境了,那么本章节将教大家如何去跑一个hello world基础例程,在这个例程中将会用到C51编程和GUI界面设计,目的就是为了给大家演示一下T5L迪文屏开发的一个完整过程,让大家先有一个感性认识,然后呢,为了得到一定的演示效果,这个例程中用到的某些知识点可能还没有讲到,大家先不要去纠结,在后面的章节中我们会慢慢地完善。
我们这个hello world例程中只有一个启动界面,然后在这个启动界面上放置一个”数据变量显示”控件,这个控件主要是用来显示数值的,然后我们编写C51代码,来控制界面上的数值每隔1秒进行加1。
2.2 GUI界面设计因为是第一次给大家讲GUI界面设计,所以我先简单地教大家如何去创建一个GUI界面设计工程,在这里就需要用到我们之前安装好的”DGUS Tool界面设计工具”了,在本章节中,不会过多地去介绍如何使用”DGUS Tool”这个开发工具,因为不是本章节的重点,后面会出一个章节来专门讲解这个开发工具。
2.3 C51代码设计我们可以直接利用在第1章节中已经创建好的C51项目工程模板,然后在此基础上进行修改一下,这样的好处就是不用每次去创建C51工程了,方便省事,我们在C51代码中要做的事情就是控制屏幕上的数值每间隔1秒进行加1,代码量比较少,我们就直接写在main函数中了。
如下所示:
#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芯片内部扩展了32KB ram
//必须得在sys_init()系统初始化之后才能够被正常的访问,
//如果你想在定义变量的时候进行赋初值,那么你可以使用data或者idata关键字,
//如 idata u32 num = 0;所示
num = 0;
while(1)
{
sys_delay_ms(1000);//精确延时1秒
num++;//加1
sys_write_vp(START_WIN_NUM_VP,(u8*)&num,2);//把当前的数值更新到VP地址,4字节也就是2个字
}
}
虽然说上面的代码比较简单,但是有几个地方是需要注意一下的,请看代码注释。
教学视频连接:
https://www.yuanzige.com/course/detail/80041?section_id=81074