嵌入式系统课程设计报告Word格式.docx
- 文档编号:1525506
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:13
- 大小:483.11KB
嵌入式系统课程设计报告Word格式.docx
《嵌入式系统课程设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《嵌入式系统课程设计报告Word格式.docx(13页珍藏版)》请在冰点文库上搜索。
voiddelay(unsignedinti)
{
while(i--)
unsignedcharj;
for(j=0;
j<
125;
j++)
;
}
intmain(void)
uint32k;
PINSEL0=0x00000000;
PINSEL1=0x00000000;
IODIR=0xFFFFFFFF;
while
(1)
IOSET=0x000019E1;
delay(10000);
IOCLR=0x000019E1;
IOSET=0x00001FE1;
IOCLR=0x00001FE1;
IOSET=0x000001E1;
IOCLR=0x000001E1;
IOSET=0x00001F61;
IOCLR=0x00001F61;
IOSET=0x00001B61;
IOCLR=0x00001B61;
IOSET=0x000019A1;
IOCLR=0x000019A1;
IOSET=0x000013E1;
IOCLR=0x000013E1;
IOSET=0x000016E1;
IOCLR=0x000016E1;
IOSET=0x000001A1;
IOCLR=0x000001A1;
for(k=0;
k<
5;
k++)
{
IOSET=0x00000011;
delay(3000);
IOCLR=0x00000010;
}
IOCLR=0x00000001;
IOSET=0x000019CC;
IOCLR=0x000019CC;
IOSET=0x00001FCC;
IOCLR=0x00001FCC;
IOSET=0x000001CC;
IOCLR=0x000001CC;
IOSET=0x00001F4C;
IOCLR=0x00001F4C;
IOSET=0x00001B4C;
IOCLR=0x00001B4C;
IOSET=0x0000198C;
IOCLR=0x0000198C;
IOSET=0x000013CC;
IOCLR=0x000013CC;
IOSET=0x000016CC;
IOCLR=0x000016CC;
IOSET=0x00000188;
IOCLR=0x00000188;
IOSET=0x0000000A;
IOCLR=0x00000002;
IOCLR=0x00000008;
五、仿真效果。
(用屏幕抓图的方式将PROTEUS运行仿真效果图粘贴在下面)
设计任务二uC/OS-Ⅱ的移植与应用
1.了解嵌入式实时操作系统uC/OS-Ⅱ可移植、可裁剪等性能特点,正确理解实时操作系统中任务、信号、消息、中断等基本概念以及uC/OS-Ⅱ多任务管理的调度算法;
2.掌握uC/OS-Ⅱ在ARM7上移植的方法;
3.能将uC/OS-Ⅱ移植在LPC2106中,并根据具体要求创建用户任务,解决实际问题;
1.uC/OS-Ⅱ移植在LPC2106中。
2.编写用户任务程序,完成实时温度的采集控制。
硬件电路见参考硬件电路图,图中用滑动变阻器代替温度传感器转换后的电压,用ADC0809完成A/D转换,并用数码管显示出来。
三、参考硬件电路。
(用文字对所设计的电路功能、原理做详细说明)
/********************************************************************************************************/
#defineTASK_STK_SIZE64
#defineKEY0x00001000//管脚P0.12
#defineADCS0x00002000//管脚P0.13
#defineADCEND0x00004000//管脚P0.14
uint32led_code[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
0x7F,0x6F};
//共阴极数码管字形码
OS_STKMain_Task_key_Stk[TASK_STK_SIZE];
//定义任务堆栈大小
OS_STKMain_Task_adc_Stk[TASK_STK_SIZE];
OS_STKMain_Task_led_Stk[TASK_STK_SIZE];
uint32i;
//ADC转换值
voidTask_key(void*data);
//任务1,按下按键,启动数据采集
voidTask_adc(void*data);
//任务2,A/D转换
voidTask_led(void*data);
//任务3,数码管显示
/*********************************************************************************************************
**函数名称:
main
**功能描述:
c语言的主函数,由它启动多任务环境
********************************************************************************************************/
intmain(void)
OSInit();
/*操作系统初始化*/
OSTaskCreate(Task_key,(void*)0,&
Main_Task_key_Stk[TASK_STK_SIZE-1],0);
OSTaskCreate(Task_adc,(void*)0,&
Main_Task_adc_Stk[TASK_STK_SIZE-1],1);
OSTaskCreate(Task_led,(void*)0,&
Main_Task_led_Stk[TASK_STK_SIZE-1],2);
OSStart();
/*启动操作系统*/
return0;
voiddelay(uint32t)//延时子程序
while(t--);
voidIO_init(void)//IO端口初始化
PINSEL0=0x00000000;
/*32个IO口全初始化为通用IO口*/
PINSEL1=0x00000000;
IODIR=0x00002FFF;
/*P0.00-P0.11、P0.13-P0.14为输出口,其它全为输入口*/
Task_key
μCOS-II的第一个任务,判断按键状态,若按下并松开,则开始下一个任务,否则一直等待
voidTask_key(void*p_arg)
{
p_arg=p_arg;
/*避免编译警告*/
TargetInit();
/*目标板初始化*/
IO_init();
while(TRUE){/*Taskbody,alwayswrittenasaninfiniteloop.*/
while((IOPIN&
KEY)!
=0);
/*判断按键按下*/
delay(2000);
KEY)==0);
/*判断按键松开*/
IOCLR=0x0000FFFF;
/*P0.00-P0.15输出全部清零*/
OSTaskSuspend(OS_PRIO_SELF);
/*挂起本任务*/
}
}
Task_adc
μCOS-II的第二个任务,进行AD转换
voidTask_adc(void*p_arg)
while(TRUE){
/*ADC启动时序模拟,START接口需要20us的脉冲输入*/
IOCLR=ADCS;
/*ADC_START低电平输入*/
delay(20);
/*延时20us*/
IOSET=ADCS;
/*ADC_START高电平输入*/
/*ADC_START低电平输入*/
while((IOPIN&
ADCEND)==0);
/*EOC若为高电平,则表示转换完毕*/
IOSET=1<
<
11;
/*输出使能*/
i=IOPIN;
/*接收转换数据*/
i=i>
>
15;
/*处理数据*/
OSTaskSuspend(OS_PRIO_SELF);
Task_led
μCOS-II的第三个任务,LED数码管显示转换值
voidTask_led(void*p_arg)
int32gw,sw,bw;
gw=i%10;
/*取个位数据*/
sw=i%100/10;
/*取十位数据*/
bw=i/100;
/*取百位数据*/
IOSET=(1<
10)|led_code[gw];
/*显示个位数据*/
delay(200);
IOCLR=0x0000FFFF;
9)|led_code[sw]|(1<
7);
/*显示十位数据*/
8)|led_code[bw];
/*显示百位数据*/
OSTaskResume
(1);
/*恢复ADC任务*/
/******************************************************************************
**EndOfFile
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 课程设计 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)