嵌入式实训报告Word文档下载推荐.docx

上传人:b****5 文档编号:18328700 上传时间:2022-12-15 格式:DOCX 页数:11 大小:74.60KB
下载 相关 举报
嵌入式实训报告Word文档下载推荐.docx_第1页
第1页 / 共11页
嵌入式实训报告Word文档下载推荐.docx_第2页
第2页 / 共11页
嵌入式实训报告Word文档下载推荐.docx_第3页
第3页 / 共11页
嵌入式实训报告Word文档下载推荐.docx_第4页
第4页 / 共11页
嵌入式实训报告Word文档下载推荐.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

嵌入式实训报告Word文档下载推荐.docx

《嵌入式实训报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《嵌入式实训报告Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。

嵌入式实训报告Word文档下载推荐.docx

具体工作内容:

1.给出系统设计方案的硬件设计图纸;

2.给出系统设计方案的软件设计文档与源代码;

3.支持JPG/PNG/GIF图片格式;

4.支持淡入淡出,拉幕式显示效果;

3.嵌入式实训周任务及工作量的要求

选用ARM或者其他嵌入式CPU构成嵌入式系统,实现JPG/PNG/GIF图片在LCD屏幕上的回放,并支持USB接口,以方便用户通过USB下载图片到该系统的Flash上。

4.主要参考文献:

[1]赵玉昆.PS/2鼠标和单片机的接口[J].上海应用技术学院学报,2004,4

(1).

[2]林邓伟,刑文生.光电鼠标芯片组在无接触检测运动物体中的应用[J].微计算机信息,2006,22(72).

[3]雅默.构建嵌入式LINUX系统[M].北京:

中国电力出版社,2008.

[4]李俊.嵌入式LINUX设备驱动开发详解[M].北京:

人民邮电出版社,2006.

[5]杜春雷.ARM体系结构与编程[M].北京:

清华大学出版社,2005.

[6]孙琼.嵌入式LINUX应用程序开发详解[M].北京:

人民邮电出版社,2006.

[7]胥静.嵌入式系统设计与开发实例详解[M].北京:

北京航空航天大学出版社.2005.

5.工作计划及进度:

2012年5月22日~5月28日资料调查整理,准备开发板及有关环境的搭建与测试。

5月29日~6月4日系统概要设计,对硬件和软件部分的分析。

6月5日~6月11日对设计的目标功能的预计需求,作好交叉环境的建立与运行。

6月12日~6月15日完成详细系统设计,包括具体的代码的编写,内核驱动。

6月16日~6月18日完成应用程序代码的编译运行仿真,测试。

6月19日~6月20日完成实训报告。

6月21日答辩验收。

2012年5月22日

嵌入式实训报告

学生姓名:

学院:

方向:

题目:

鼠标模块设计

指导教师:

乔道迹职称:

讲师

2012年6月21日

1.需求分析

数码相框是展示数码照片而非纸质照片的相框。

数码摄影必然推动数码相框的发展,因为全世界打印的数码相片不到35%。

数码相框通常直接插上相机的存储卡展示照片,当然更多的数码相框会提供内部存储空间以接外接存储卡功能。

数码相框就是一个相框,不过它不再用放进相片的方式来展示,而是通过一个液晶的屏幕显示,它可以通过读卡器的接口从SD卡获取相片,并设置循环显示的方式,比普通的相框更灵活多变,也给现在日益使用的数码相片一个新的展示空间。

数码相框是观看和分享数码照片的专用设备。

其基本原理:

外观采用普通相框的造型,把原来相框中间的照片部分换成液晶显示屏,配上电源,存储介质等,可以直接播放数码照片,使得同一个相框内可以循环播放照片,比普通相框的单一功能更有优势。

数码相框由三大部件组成:

LCD液晶屏、PCB电路板和外框。

其中PCB电路板是数码相框的核心,因为它包含必须的软件。

数码相框是时尚的电子消费品、也是家庭必备的装饰品。

继承了数码的时尚和相框的温情,用途十分广泛。

随着社会的发展和物质水平的提高,人们对于精神世界的追求也得到大幅度的改善。

迎合现在市场的所需,消费电子的设计新增了人性化的元素。

该设计理念源于提高人们生活的幸福指数。

在传统意义上,人们往往用冲印出来的相片记录生活中美好的瞬间。

而伴着电子行业的发展,足以用数码形式将其取代,同时还可以将静态图片提升为动态的视频短片,携带方便,存储时间长远,满足于人们的需求,同时也是一种节约型、环保型的构想。

2.总体设计

主要步骤和方法

根据数字相框的主要特点和设计功能那个要求,我们将课设分为以下几个步骤:

2.1数码相框的软件总体设计

数字相框软件系统功能可以划分为四个模块:

1)图片浏览模块,可以通过按键控制选定某个图像或更新图像页(上一页、下一页)。

2)播放模块,对浏览界面选定的图片进行循环播放。

3)音乐播放模块,可设置播放背景音乐。

4)鼠标操作模块,实现使用鼠标操作。

2.2功能模块组织架构图

2.3人员组成以及分工

3.详细设计

3.1鼠标模块的设计原理

1.鼠标编程通讯协议

数据格式

㈠MicroSoft公司标准:

MICROSOFTFORMAT

字节字元(Bit)

76543210

BYTE111LRY7Y6X7X6

BYTE200X5X4X3X2X1X0

BYTE300Y5Y4Y3Y2Y1Y0

注释:

L=左键状态

R=右键状态1=按下

0=释放

X0-X7=X距离

Y0-Y7=Y距离X7或Y7为±

符号位

串口特性:

波特率=1200Baud,8位数据,无校验位,2停止位。

㈡MOUSESYSTEM公司标准:

MOUSESYSTEMFORMAT

BYTE110000LMR

BYTE2X7X6X5X4X3X2X1X0

BYTE3Y7Y6Y5Y4Y3Y2Y1Y0

BYTE4X7X6X5X4X3X2X1X0

BYTE5Y7Y6Y5Y4Y3Y2Y1Y0

R=右键状态

M=中间键状态1=按下

㈢IBM公司PS/2MOUSE标准:

PS/2MOUSEFORMAT

BYTE1YVXVYSXS10RL

XS,YS=±

符号位1---反向移动

XV,YV=溢出位1----XY数据溢出

2.鼠标的操作方式

1.初始化鼠标驱动程序:

例如:

中断号INT33h 

功能16h 

子功能17h

中断号:

用于请求服务

功能号:

用于确定用户期望获取哪种服务

子功能号:

进一步指定所希望的服务

调用寄存器:

设置被调用的服务功能所要求的参数

返回寄存器:

返回服务功能执行结果

2.设置图形鼠标光标的形状

中断33h的功能9h设置图形模式下的鼠标光标的形状,并定义光标里的一个点为热点。

光标由16x16位的视频掩码和16x16位的光标掩码组成。

3.取得或设置鼠标光标的位置

中断33h的功能4h用于设置鼠标光标位置,功能3h则用于报告光标的位置.AX存放功能号,CX被赋予X坐标,DX被赋予Y坐标。

4.定义不显示鼠标光标的屏幕区域

中断33h的功能10h定义屏幕的一个区域,当鼠标进入该区域时会自动关掉。

进入时,CX存放被保护域的左列号,SI存放右列号;

DX存放首行号,DI存放末行号。

5.监视鼠标按钮

中断33h的功能5h和6h报告鼠标按钮的信息。

这两项功能都在AX返回一个按钮状态字节,报告按钮2个或3个当前状态。

此状态字节由中断21h的功能3h返回。

它报告鼠标光标的位置。

3.1.2关于鼠标的算法

PID控制软件算法

  对该交流变频调速系统建模,首先取电压输入为一个随机值,再测得其转速值。

取两个数值构成一个数据对,然后对大量数据对用Matlab仿真求得其幅频特性和相频特性,并且对其幅频特性和相频特性进行相似的拟合。

根据拟合的曲线可以近似求得其传递函数为:

  使用神经网络PID自适应控制对系统进行Matlab的仿真测试,效果令人满意。

但因其输入层、隐含层、输出层的多阶矩阵运算使得单片机的运算时间大幅度增加,造成时间上的不确定因素增大;

同比使用增量型PID控制,尽管后者需调整3个控制参数,但同样可使精度达到预期的效果,运算时间也大幅度下降,为此选用增量型PID算法作为控制算法。

  增量式数字PID的控制算法为:

  其中kp为比列系数,ki为积分系数,kd为微分系数;

e(k)为当前位移增量与上一次位移增量的变化量;

同理,e(k-1)、e(k-2)各为往前时间间隔的位移变化量。

利用单片机串行中断接收功能,可在PC机上实时在线调节PID的kp、ki、kd参数。

4.实训周的总结

通过此次课程设计,使我更加扎实的掌握了有关Linux技术方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。

实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。

在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。

最终这次课程设计终于顺利完成了。

在设计中遇到了很多问题,最后在老师的指导下和同学的合作下,终于得到解决。

在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事。

课程设计是一门专业课,给我很多专业知识以及专业技能上的提升,同时,设计让我感触很深。

使我对抽象的理论有了具体的认识。

通过这次课程设计,我掌握了关于linux的很多知识还自学鼠标的工作原理,并会实现较为简单的鼠标模块设计等等,通过查询资料,也了解了数码相框的构造及原理。

我认为,在这次设计的过程中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。

更重要的是,在实验课上,我们学会了很多学习的方法,而这是日后最实用的。

回顾起此课程设计,至今我仍感慨颇多,从理论到实践,学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。

在实验过程中,也对团队精神的进行了考察,让我们在合作起来更加默契,只有互相之间默契融洽的配合才能换来最终完美的结果。

此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。

附件:

本人设计的功能模块的源程序以及整体原理图

1.鼠标模块的源程序

#include<

stdio.h>

string.h>

fcntl.h>

stdlib.h>

unistd.h>

typedefstruct

{

intdx;

//*鼠标左右移

intdy;

//*鼠标上下移

intdz;

//*滚轮

charbutton;

//*鼠标左右键

}mouse_event;

intget_m_info(intfd,mouse_event*p)

intn=0;

charbuf[8];

n=read(fd,buf,3);

if(n>

0)/*1:

lefykey*2:

rightkey*/

/*3:

middlekey*0:

nobuttonkey*/

{

p->

dx=buf[1];

dy=-buf[2];

button=(buf[0]&

0x07);

/*获取x,y滚轮的增量值*/

}

returnn;

}

intget_mouse(void)

intfd;

mouse_eventm_event;

intpress_c=0;

fd=open("

/dev/input/mice"

O_RDWR|O_NONBLOCK);

if(fd==-1)/*1:

readmouseSuccess*/

perror("

openmice"

);

/*-1:

errorforreadmouse*/

exit(0);

while

(1)

if(get_m_info(fd,&

m_event)>

0)

{

switch(m_event.button)

{

case1:

return1;

break;

case2:

return2;

default:

break;

}

}

usleep(500);

close(fd);

return0;

2.整体原理图

对鼠标的按键信息分别按位描述如下:

D7

D6

D5

D4

D3

D2

D1

D0

每一位值的含意如下:

D0左键的按键信息,1:

按下;

0:

No

D1右键的按键信息,1:

D2滚轮的按键信息,1:

D4鼠标的移动方向,X坐标方向,1:

自右向左移动;

相反方向

D5鼠标的移动方向,Y坐标方向,1:

自上向下移动;

相反方向

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

当前位置:首页 > 求职职场 > 自我管理与提升

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1