嵌入式操作系统课程设计.docx

嵌入式操作系统课程设计.docx

ID:61499523

大小:277.76 KB

页数:7页

时间:2021-02-07

嵌入式操作系统课程设计.docx_第1页
嵌入式操作系统课程设计.docx_第2页
嵌入式操作系统课程设计.docx_第3页
嵌入式操作系统课程设计.docx_第4页
嵌入式操作系统课程设计.docx_第5页
资源描述:

《嵌入式操作系统课程设计.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、嵌入式操作系统课程设计学院:理学院班级:信息10-2姓名:学号:2010指导教师:张一、设计目的:本课程设计的目的是提高学生使用操作系统概念编写嵌入式程序的能力,内容涵盖嵌入式系统和操作系统的相关知识。了解嵌入式实时操作系统μC/OS-Ⅱ可移植、可裁剪等性能特点,正确理解实时操作系统中任务、信号、消息、中断等基本概念以及μC/OS-Ⅱ多任务管理的调度算法;二、具体任务:1.μC/OS-Ⅱ移植在LPC2106中。2.编写用户任务程序,完成实时温度的采集控制。三、硬件电路设计1.用仿真可调滑动变阻器控制输入电压变化代替温度传感器的输入电压变化,间

2、接仿真环境温度变化。2.ADC0808芯片用作A/D转换主芯片,12脚为参考电压,10脚接脉冲控制A/D转换速度。23、24、25引脚为通道选择。000为IN0通道。数码管显示模拟数值。3.图中有按钮两个,按钮KEY为开关,按一下启动A/D转换并显示电压数值,再按一下停止显示;按钮RST为复位按键。4.设置LPC2106引脚连接ADC0808的P0.14-P0.22和P0.12为输入,其他的引脚为输出。四、C语言源程序设计#include"config.h"#defineTASK_STK_SIZE64//定义任务堆栈长度#definekey(

3、1<<12)//定义开关按钮KEY#definedisinp0xff//定义控制数码管引脚#definediswei1(1<<8)//定义数码管位1#definediswei2(1<<9)//定义数码管位2#definediswei3(1<<10)//定义数码管位3#defineadstart(1<<13)//定义A/D转换开关#defineadend(1<<14)//定义A/D转换结束#defineadread(1<<11)//定义读A/D转换结果#defineadoutp0x007f8000//定义A/D转换输出位OS_STKTask0S

4、tk[TASK_STK_SIZE];//定义任务0堆栈OS_STKTask1Stk[TASK_STK_SIZE];//定义任务1堆栈OS_STKTask2Stk[TASK_STK_SIZE];//定义任务2堆栈uint32readad=0,a=0,b=0,c=0;//定义全局变量uint32tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//数码管显示数值表voidTask0(void*data);//声明任务0vo

5、idTask1(void*data);//声明任务1voidTask2(void*data);//声明任务2voiddelay(uint32n)//延时函数,当n为1时大致延时1毫秒{uint32i,j;for(i=n;i>0;i--)for(j=2000;j>0;j--);}voidIO_Init(void)//端口初始化函数{PINSEL0=0x;//设置P0.0-P0.15工作模式为输入输出口PINSEL1=0x;//设置P0.16-P0.31工作模式为输入输出口IODIR=0x00002fff;//设置P0.0-P0.11、P0.13

6、为输出端口}intmain(void){OSInit();//操作系统初始化OSTaskCreate(Task0,(void*)0,&Task0Stk[TASK_STK_SIZE-1],2);//创建任务0,优先级2OSTaskCreate(Task1,(void*)0,&Task1Stk[TASK_STK_SIZE-1],3);//创建任务1,优先级3OSTaskCreate(Task2,(void*)0,&Task2Stk[TASK_STK_SIZE-1],4);//创建任务2,优先级4OSStart();//启动操作系统return0;

7、}voidTask0(void*p_arg)//任务0,开关任务{p_arg=p_arg;//避免编译警告TargetInit();//目标板初始化IO_Init();//引脚初始化while(1){while((IOPIN&key)!=0);//等待按键按下IO_Init();while((IOPIN&key)==0);//等待按键松开IOCLR=0x007fffff;//输出全置零OSTaskResume(4);//恢复优先级为4的任务,即任务2OSTaskSuspend(2);//挂起优先级为2的任务,即本任务}}voidTask1(v

8、oid*p_arg)//任务1,A/D转换任务{p_arg=p_arg;//避免编译警告TargetInit();//目标板初始化while(1){IOCLR=ad

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。