嵌入式系统课程设计报告dz094zxfWord下载.docx

上传人:b****2 文档编号:430061 上传时间:2023-04-28 格式:DOCX 页数:15 大小:151.97KB
下载 相关 举报
嵌入式系统课程设计报告dz094zxfWord下载.docx_第1页
第1页 / 共15页
嵌入式系统课程设计报告dz094zxfWord下载.docx_第2页
第2页 / 共15页
嵌入式系统课程设计报告dz094zxfWord下载.docx_第3页
第3页 / 共15页
嵌入式系统课程设计报告dz094zxfWord下载.docx_第4页
第4页 / 共15页
嵌入式系统课程设计报告dz094zxfWord下载.docx_第5页
第5页 / 共15页
嵌入式系统课程设计报告dz094zxfWord下载.docx_第6页
第6页 / 共15页
嵌入式系统课程设计报告dz094zxfWord下载.docx_第7页
第7页 / 共15页
嵌入式系统课程设计报告dz094zxfWord下载.docx_第8页
第8页 / 共15页
嵌入式系统课程设计报告dz094zxfWord下载.docx_第9页
第9页 / 共15页
嵌入式系统课程设计报告dz094zxfWord下载.docx_第10页
第10页 / 共15页
嵌入式系统课程设计报告dz094zxfWord下载.docx_第11页
第11页 / 共15页
嵌入式系统课程设计报告dz094zxfWord下载.docx_第12页
第12页 / 共15页
嵌入式系统课程设计报告dz094zxfWord下载.docx_第13页
第13页 / 共15页
嵌入式系统课程设计报告dz094zxfWord下载.docx_第14页
第14页 / 共15页
嵌入式系统课程设计报告dz094zxfWord下载.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

嵌入式系统课程设计报告dz094zxfWord下载.docx

《嵌入式系统课程设计报告dz094zxfWord下载.docx》由会员分享,可在线阅读,更多相关《嵌入式系统课程设计报告dz094zxfWord下载.docx(15页珍藏版)》请在冰点文库上搜索。

嵌入式系统课程设计报告dz094zxfWord下载.docx

三、硬件电路设计。

(参考下图完成硬件电路设计,用屏幕抓图的方式将自己设计的PROTEUS电路图粘贴在下面,并用文字对所设计的电路功能、原理进一步说明)

附图:

硬件电路说明:

1.设置所有I/O口为第一功能,将硬件电路图按上图所示连接。

2.东西南北四个方向分别装有红、黄、绿三灯,通过放置标号的方式连接到LPC2106。

3.数码管为交通灯一位十进制倒计时显示,两个数码管显示同样的数字。

四、源程序。

(只将C语言应用程序附在后面,其它项目文档不要提供,C语言应用程序要有一定的注释说明)

源程序:

#include"

config.h"

voiddelay(uint32time)/*延时1ms子程序*/

{

uint32p;

for(;

time>

0;

time--)

for(p=2210;

p>

p--);

}

intmain()

int32i;

int32a[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,

0x7F,0x6F};

/*数码管0-9的显示*/

PINSEL0=0x00000000;

/*设置P0.0-P0.15工作模式为I/O口*/

PINSEL1=0x00000000;

/*设置P0.16-P0.31工作模式为I/O口*/

IODIR=0x00007FFF;

/*设置所有用到的I/O口为输出*/

IOCLR=0x00007E7F;

/*清零输出端,消隐*/

while

(1)

for(i=9;

i>

i--)/*东西红灯、南北绿灯延时9秒*/

IOSET=0x00004200;

/*东西红灯、南北绿灯LED显示*/

IOSET=a[i];

/*数码管显示时间*/

delay(1000);

/*延时1秒*/

IOCLR=0x00007E7F;

/*输出端清零*/

for(i=3;

i--)/*东西红灯、南北黄灯延时3秒*/

IOSET=0x00002200;

/*东西红灯、南北黄灯LED显示*/

i--)/*东西绿灯、南北红灯延时9秒*/

IOSET=0x00001800;

/*东西绿灯、南北红灯LED显示*/

}

i--)/*东西黄灯、南北红灯延时3秒*/

IOSET=0x00001400;

/*东西黄灯、南北红灯LED显示*/

}

五、仿真效果。

(用屏幕抓图的方式将PROTEUS运行仿真效果图粘贴在下面)

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

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

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

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

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

2.编写用户任务程序,完成实时温度的采集控制。

硬件电路见参考硬件电路图,图中用滑动变阻器代替温度传感器转换后的电压,用ADC0809完成A/D转换,并用数码管显示出来。

三、参考硬件电路。

(用文字对所设计的电路功能、原理做详细说明)

硬件电路图说明:

1.用仿真可调滑动变阻器控制输入电压变化代替温度传感器的输入电压变化,间接仿真环境温度变化。

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为输入,其他的引脚为输出。

#defineTASK_STK_SIZE64

#defineKEY0x00001000//管脚P0.12

#defineADCS0x00002000//管脚P0.13

#defineADCEND0x00004000//管脚P0.14

uint32led_code[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,

//共阴极数码管字形码

OS_STKTask0Stk[TASK_STK_SIZE];

//定义任务堆栈

OS_STKTask1Stk[TASK_STK_SIZE];

OS_STKTask2Stk[TASK_STK_SIZE];

uint32i;

//ADC转换值

voidTask0(void*data);

//任务1,按下按键,启动数据采集

voidTask1(void*data);

//任务2,A/D转换

voidTask2(void*data);

//任务3,数码管显示

/******************************************************************************

**函数名称:

main

**功能描述:

c语言的主函数,由它启动多任务环境

******************************************************************************/

intmain(void)

{

OSInit();

//操作系统初始化

OSTaskCreate(Task0,(void*)0,&

Task0Stk[TASK_STK_SIZE-1],2);

OSTaskCreate(Task1,(void*)0,&

Task1Stk[TASK_STK_SIZE-1],3);

OSTaskCreate(Task2,(void*)0,&

Task2Stk[TASK_STK_SIZE-1],4);

OSStart();

//启动操作系统

return0;

voiddelay(uint32t)//延时子程序

while(t--);

voidIO_init(void)

//设置P0.0-P0.15工作模式为输入输出口

//设置P0.16-P0.31工作模式为输入输出口

IODIR=0x00002FFF;

//P0.00-P0.11、P0.13为输出口,其它全为输入口

Task0

μCOS-II的第一个任务,判断按键状态,若按下并松开,则开始下一个任务,否则一直等待

*****************************************************************************/

voidTask0(void*p_arg)

{

p_arg=p_arg;

//避免编译警告

TargetInit();

//目标板初始化

IO_init();

while(TRUE)//等待按键按下

while((IOPIN&

KEY)!

=0);

//判断按键按下

delay(2000);

KEY)==0);

//判断按键松开

IOCLR=0x0000FFFF;

//P0.00-P0.15输出全部清零

OSTaskSuspend

(2);

//挂起本任务

}

Task1

μCOS-II的第二个任务,进行AD转换

voidTask1(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;

//给OE赋值输出使能

i=IOPIN;

//接收转换数据

i=i>

>

15;

//处理数据用作输出数据

OSTaskSuspend(3);

//挂起本任务

Task2

μCOS-II的第三个任务,LED数码管显示转换值

voidTask2(void*p_arg)

int32gw,sw,bw;

//避免编译警告

gw=i%10;

//取个位数据

sw=i%100/10;

//取十位数据

bw=i/100;

//取百位数据

IOSET=(1<

10)|led_code[gw];

//显示个位数据

IOCLR=0x0000FFFF;

//清零

9)|led_code[sw];

//显示十位数据

8)|led_code[bw];

//显示百位数据

OSTaskResume(3);

//恢复ADC任务

课程设计心得体会

光阴似箭,日月如梭,为期两周的嵌入式系统课程设计在同学们紧张的钻研中画上了完满的句号。

通过这两个星期的课程设计,我学到了很多知识,也开拓了自己的视野和知识面,受益匪浅,现谈谈自己的心得体会。

在做第一个嵌入式课程设计之前,我们所学的知识都是理论性的,所以一旦要求把理论性的东西用到实践中来,刚开始有一定的难度。

我在听了老师的部分讲解之后,自己独立地写出了程序并进行了仿真,并且学会了使用ADS1.2软件和Proteus软件进行设计的调试和仿真,让我受益匪浅,并为我做下一个课程设计奠定了基础。

我在这次课程设计中感受到最重要的一点是一定要学以致用,把所学知识用到生活中来。

发明和创造就是这样产生的。

并且,在设计与创造的过程中,遇到困难不要气馁,一定要坚持不懈,特别是对与科学研究,爱迪生进行了九千九百九十九次实验,才发明了电灯泡,造福了人类,如果他失败了九千九百九十八次就放弃了,那就不可能有这样的成就。

伟人毕竟是伟人,作为一名学生,在学习中一定要抱有积极地心态去对待学习遇到中的问题,不说要像伟人一样能那么执着地去克服困难,但至少要坚持完成自己的学习任务,为今后就业创造好的条件。

像这次的课程设计中的交通灯,但并没有实际中交通灯那么复杂。

当然,我虽然独立地完成了这次课程设计,但是,未来的路还很长,有更多更具挑战的事情在等着我们。

所以我一定要争取学习更多的嵌入式知识,以赶上时代的步伐。

在做了第一个课程设计以后再做第二个课程设计就变得不是那么难了,但是对μC/OS-II操作系统还是很陌生,我和搭档在分析设计目的以后,坚持独立思考,根据老师的指导,独立完成了程序的编写。

在编写程序的过程中,我们遇到失败总是没有放弃,而是换一种思维,再进行思考,在反复的编写和调试中,才完成了程序,并仿真通过。

但是,在我和搭档做完课程设计后对于μC/OS-II操作系统的移植还不是很了解,操作系统中还有大量的系统自带的函数不会使用。

所以说未来的路还很长,我们学的东西还是太少了,我们需要学的东西实在是太多了。

总之,这次课程设计让我学到了很多东西,感谢老师悉心的指导,感谢学校能给我们这么好的学习机会来培养我们的动手能力。

希望学校能够更加注重学生动手能力的培养,多给学生自己动手操作的机会,在实验和课程设计这一块应该严格把关,培养出社会需要的动手能力强的学生。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2