第一范文网 - 专业文章范例文档资料分享平台

嵌入式系统课程设计报告.

来源:用户分享 时间:2025/5/23 0:59:55 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

9

设计任务二 uC/OS-Ⅱ的移植与应用

一、设计目的:

1.了解嵌入式实时操作系统uC/OS-Ⅱ可移植、可裁剪等性能特点,正确理解实时操作系统中任务、信号、消息、中断等基本概念以及uC/OS-Ⅱ多任务管理的调度算法;

2.掌握uC/OS-Ⅱ在ARM7上移植的方法;

3.能将uC/OS-Ⅱ移植在LPC2106中,并根据具体要求创建用户任务,解决实际问题;

二、具体任务:

1.uC/OS-Ⅱ移植在LPC2106中。

2.编写用户任务程序,完成实时温度的采集控制。硬件电路见参考硬件电路图,图中用滑动变阻器代替温度传感器转换后的电压,用ADC0809完成A/D转换,并用数码管显示出来。

三、参考硬件电路。(用文字对所设计的电路功能、原理做详细说明)

10

DIY设计图:

硬件电路说明:

该电路是有LPC2106芯片控制的A/D转换实时采集温度并显示的控制,通过创建多用户任务,解决实际问题的装置。工作原理及流程如下:装在hex文件后点击运行,按采样开关按钮后由标号12线的开关信号输入LPC2106芯片后输出启动A/D转换的使能端OE(标号11),使温度采样的模拟信号通过ADC0808转换为数字信号后经标号15至22八线传给控制芯片,控制芯片将接收的数字信号经控制转换后再通过标号0到7八线输出至数码管进行动态显示,显示出相应的温度值。倘若突然改变温度采样值,数码管会迅速实时地显示出相应的变化,这真是程序中的精髓,也是最难之处,本人设计的硬件和软件结合就解决了此问题,实时控制性能好。

四、源程序

#include \

#define TASK_STK_SIZE 64

#define key 0x00001000 //按键

#define adstart 0x00002000 //AD采样开始 #define adend 0x00004000 //AD结束

const uint32 led_code[16]={ 0x0000003F,0x00000006,0x0000005B,0x0000004F,

0x00000066,0x0000006D,0x0000007D,0x00000007, 0x0000007F,0x0000006F,0x00000077,0x0000007C, 0x00000039,0x0000005E,0x00000079,0x00000071 };

OS_STK Task0Stk[TASK_STK_SIZE];

11

OS_STK Task1Stk[TASK_STK_SIZE]; OS_STK Task2Stk[TASK_STK_SIZE]; INT32U i;

void Task0(void *data); void Task1(void *data); void Task2(void *data);

/********************************************************************************************************* 函数名称: main

功能描述: c语言的主函数,由它启动多任务环境

********************************************************************************************************/ int main (void) { OSInit(); //初始化 OSTaskCreate(Task0, (void *)0, &Task0Stk[TASK_STK_SIZE - 1],1); OSTaskCreate(Task1, (void *)0, &Task1Stk[TASK_STK_SIZE - 1],2); OSTaskCreate(Task2, (void *)0, &Task2Stk[TASK_STK_SIZE - 1],3); OSStart(); return 0; }

void delay(INT32U t) //延时子程序 {

uint32 x,y; for(x=t;x>0;x--) for(y=110;y>0;y--); }

void L_Init (void) //初始化 {

PINSEL0=0x00000000;

PINSEL1=0x00000000; IODIR|= 0x00002fFF; }

/********************************************************************************************************* 函数名称:Task0

功能描述: 第一个任务,进行初始化目标板和建立其它任务。

********************************************************************************************************/ void Task0(void *p_arg) {

p_arg = p_arg; TargetInit();

12

搜索更多关于: 嵌入式系统课程设计报告. 的文档
嵌入式系统课程设计报告..doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c51i654trru6gjog0oh073pit886asl004s9_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top