单片机 AI8051U中具有非常丰富的外设,使得它能够 胜任非常多的嵌入式系统的 要求。据说,近期又出现了AICube 图像界面开发工具。这就使得该单片机软件开发更加方便。现在这个版本还只是支持 AI8051U。据说后面将会有更多的STC单片机的开发能够通过这个工具进行配置。下面对这个软件初步摸索一下。看看究竟使用起来感觉如何。
下面建立第一个测试程序,点击STC ISP 软件中的 AICube 菜单。可以看到,现在只能选择 AI8051U单片机。输入软件项目工程名称,选择软件项目所在目录。有两个项目模式选择,一个是单个文件项目,一个是多个文件项目。这里先选择单个文件模式,点击进入下一步。选择系统中的时钟配置。现在使用缺省的时钟参数。选择配置端口 P5 中的第 0 管脚,将它设置为推挽输出。设置定时器1,产生 1ms周期的中断。配置串口1,配置波特率为115200 。选择 printf 函数支持。在可视化 IO配置界面,选择串口1 的对应管脚。到此为止,这个基本的测试程序的配置完成了。选择创建项目,Keil 软件自动打开,并加载刚才建立的测试工程。进行编译,可以看到此时软件编译通过了。
由于选择是单个文件模式,所以整个工程文件在开始的时候所有的代码都在 main.c 一个文件中。在系统初始化函数中,前面对于单片机的端口、时钟进行初始化。后面分别对设置的 端口5,串口,定时器的初始化程序进行调用。相应的初始化程序在后面。其中还包括有 putchar 函数,这允许使用 printf 来从串口输出字符串。中断服务子程序在前面。其中还包括有一个软件延迟程序。在程序中的主循环,每隔 0.5秒钟,输出是一个 Debug 对应的字符串。待会儿再 ISP 界面中看是否能够接收到这个串口输出的字符串。
将程序下载之后,可以在ISP软件中的串口助手界面周期接收到单片机发送的 Debug 字符串。这说明前面配置的串口通讯正常。在程序周期循环中,增加一个语句,改变P5.0 的状态。这个端口在单片机外面连接了一个 LED。这样可以驱动 LED闪烁。重新编译下载程序,可以看到单片机外部的 LED 开始闪烁。闪烁周期为 1秒钟。由此,端口配置工作正常。下面,在尝试在定时器0 的中断中改变端口,测试一下中断是否工作正常。
在程序中,增加一个全局变量。它在定时器0 中断中递增。在程序主循环中,设置 P5.0 的状态与该变量的最后一位相同。由此,可以通过观察外部LED的状态,观察到该变量变化的情况。在定时器0 中断中,递增这个全局变量。由于定时器的中断时间配置为 1ms,所以,电路板LED状态变化的周期为 2ms,对应的方波频率为 500Hz。
使用示波器观察LED端口电压波形,是占空比为50% 的方波信号。频率为 497Hz,比理论值小了一点点。具体原因后面再进行分析。至此,验证了单片机定时器0 的中断工作正常。可以看到,通过 AICube 软件帮助生成程序框架,的确方便了 软件的开发。
▲ 图1.4.1 电路板LED端口频率
本文测试了近期STC公司刚刚推出的 AICube软件的功能。利用它可以通过图形界面配置 AI8051U单片机的内部模块的参数。自动生成的 Keil程序框架,使得后面的软件开发变得非常方便了。使用过之后,不仅让我们对它的功能有了新的期待。比如,能够支持STC更多种类的单片机。能够提供更多的软件功能,比如支持 RTOS,AI模型等。