3.3 Keil uVision4 的介绍
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境将这些组合在一起。
最新的Keil uVision4 IDE,旨在提高开发人员的生产力,实现更快,更有效的程序开发。
uVision4引入了灵活的窗口管理系统,能够拖放到视图内的任何地方,包括支持多显示器窗口。
现在的系统有以下的优点
• 多显示器和灵活的窗口管理系统
• 系统浏览器窗口的显示设备外设寄存器信息
• 调试还原视图创建并保存多个调试窗口布局
• 多项目工作区简化与众多的项目
所以我在这次毕设中应用这个软件来编写主要程序。
3.4 软件设计
在各个模块的运行中需要很多的程序,上面我对系统的几个主要硬件部分进行了介绍,这些构成了数据采集的硬件基础。但是,光有这样的硬件,还只是具有了计算的可能。系统要真正能够进行按照我们设计的意愿进行工作还必须有软件的配合。软件是利用Keil uVision4 IDE语言编制的,并利用了最优化方法,从而方便了调试与应用,并使整体软件系统具有较大的灵活性。
基于移植好UC/OSii的进行应用软件的设计。设计在UC/OSii系统下建立3个任务:Main—Task、KEk:为运行的主任务,负责建立KEY_Task、AD_Task两个任务。
(2)KEY_Task-负责键盘操作输入,能够选择8路AD中任何1路进行A/D任务
的转换。
(3)AD_Task:主要进行AD数据转换。
设计中LCD液晶用来进行操作的提示,AD转换后的数据可以通过串口进行实时显
示。
程序设计时给任务定优先级应根据系统的复杂性来确定。在系统中,并非所有的任
务都是至关重要的。不重要的任务的优先级可以低一些。UC/OSii系统下优先级的范围是0--,62,优先级的值越低,表示任务的优先级越高。
OS_STK Task0Stk [TaskStkLength] ;
OS_STK Task1Stk [TaskStkLength] ;
OS_STK Task2Stk [TaskStkLength] ;
OS_STK TaskADCStk [TaskStkLength] ;
在这里因为仿真的关系,所以系统自动分配了。
3.4.1 主程序MAIN的设计
主程序Main0的作用主要是在程序运行前初始化ARM处理器、初始化操作系统、建立任务以及启动多任务运行。主程序Main()流程图如图3.4所示
图3.4 主流程图
程序代码如下
具体运行情况如图3.5所示:
图3.5 输出显示图
(1)用I/O口实现4x4键盘接口。
这是程序的一部分
//TASK2 任务2/***/
void Task2 (void *pdata)
{
INT8U keycode;
pdata=pdata;
TargetInit ();
LedInit();
KeyInit();
while(1)
{
keycode=Keyboard_Scan();
switch(keycode)
{
case 0x00: LED0_OFF();break;
case 0x01: LED1_OFF();break;
TASK任务2中调用键盘扫描函数,读入4X4键盘值.LED口的输入输出定义都在LED.C的程序中,MAIN函数只有调用的部分. 基于uCOS-II的多功能数据采集系统的开发+源代码+流程图(8):http://www.youerw.com/zidonghua/lunwen_771.html