当前位置:文档之家 > 电子设计应用

电子设计应用

沈阳航空航天大学

电子设计应用软件训练总结报告

学生姓名:孙鸿飞

学院专业:电子信息工程学院通信工程专业

班级学号:2009040202067

指导教师:白玉

训练时间:2011年 7月8日至 2011年7月22日

电子信息工程学院

电子设计应用软件训练任务

【训练任务】

(一)PROTEL部分

1、熟练掌握PROTEL软件的使用;

2、按要求绘制电路原理图;

3、能够按要求建立元件库和封装库;

4、按要求根据电路原理图绘制PCB版图(能够用自动布线和手动布线相结合)。(二)软件设计部分

按照给定的软件设计任务完成相应的软件设计

【基本要求及说明】

(一)PROTEL部分

1、电路原理图图纸尺寸设置为A4;

2、电路原理图见附图;

3、按指定电路图在PROTEL 99中绘制原理图;

4、根据原理图绘制印制板图;

5、根据要求创建原理图器件和该器件的相应的封装。

(二)软件设计部分

按软件设计要求实现相应的功能

【按照要求撰写总结报告】

指导教师年月日

负责教师年月日

学生签字年月日

成绩评定表

电子设计应用

PROTEL 训练任务

电子设计应用

软件设计任务

题目背包问题

内容及要求:

背包问题是一类试探性求解问题的代表性例子。假设有n间质量分别为W1,W2,W3……Wn的物品和一个最多能装载总质量Max_weight为T的背包,能否从这n件物品中选择若干件物品装入背包,并且是被选物品的总质量恰好等于背包所能装载的最大质量,即Wk1+Wk2+Wk3+……+Wki=T。若能,则此问题有解,否则无解。

(一)PROTEL部分

一.任务说明:

1、熟练掌握PROTEL软件的使用;

2、按要求绘制电路原理图;

3、能够按要求建立元件库和封装库;

4、按要求根据电路原理图绘制PCB版图(能够用自动布线和手动布线相结合)。二.原理图绘制说明

电路原理图的设计与绘制的流程,包括设置电路图纸、装载元器件库、放置元器件、调整元器件的布局、放置导线和添加注释等步骤。

1、新建一个设计数据库文件和原理图文件,并打开原理图设计编辑器。

新建原理图文件步骤:

(1)打开文件 -> 新建文件(如果当前已经有一个设计打开,则改为打开文件 ->新建设计)。

(2)双击New Document对话框 Documents 选项卡中的Schematic Document图标,此时Protel将新建一个后缀名为.Sch的原理图文件。(如图1所示)

电子设计应用

图1 原理图文件

(4)在设计导航中单击新建的原理图文件打开原理图设计编辑器。(如图2所示)

电子设计应用

图2 原理图设计编辑器

2、设置图纸环境

点击设计(Design) ->选项(options),打开文档选项对话框。根据要求设置为

A4图纸。(如图3所示)

电子设计应用

图3 页面属性设置

3、装载元器件库

打开原理图的管理浏览器,在工作窗口为原理图编辑窗口的状态下,单击设计管理器顶部的Browse sch标签即可打开原理图管理浏览器窗口。此时单击add\remove,

屏幕出现(如图4所示),载入所需要的原理图元器件库。

电子设计应用

图4 change library file list对话框

4、放置元件及原理图布线

(1)点击原理图管理器“浏览窗口”标签切换到原理图管理器。

(2)点击“浏览”下的下拉式l列表框,并从列表框中选择“库”项。

(3)在元件库中选择电路所需的元件,单击“放置”按钮,单击鼠标左键放置元器件,鼠标右键取消放置元器件的状态。

(4)双击元器件,改变其参数。

(5)单击画导线工具,将光标移到管脚处,单击鼠标左键进行连线。

(6)连接好整个电路图。

三、印制版图绘制说明

在绘制电路板之前,要对电路板有一个总体的规划,,具体包括电路板的物理尺寸、元器件的封装,以及各元器件的摆放位置等。

印制板图的绘制主要分为以下几个步骤:

1、生成网络表文件:

(1)单击要生成网络报表的原理图。

(2)选择“设计(design)”菜单下的“创建网络表(Create Netlist)”弹出网络表对话框,设置网络表的各项参数。

(3)设置完网络创建对话框后单击OK按钮,此时将生成网络报表文件。

2、制作PCB 元件

单击左侧的管理浏览器中的documents图标,点击PCB library document新建一个默认名为PCBLIB1.LIB的文件。

3、PCB 的设计

(1)定义元器件的封装

原理图绘制完成后,点击元器件,给元器件添加封装号。

(2)元器件布线规则的设置

这里主要设置PCB板的禁线区的大小,只能在禁线区内绘制PCB版图。

(3)生成并加载网络表

只有将网络表装入PCB系统后,才能进行电路板的自动布线。在设计好的PCB 板上生成网络表和加载网络表,必须保证生成的网络表没有任何错误,其所有的元器件都能够加载在PCB板中。(PCB文件的建立如图5所示)

电子设计应用

图5 PCB文件的建立

(4)元器件手工布局

由于一般元器件自动布局都不很规则,甚至有的相互重叠,因此必须手动调整元器件的布局。并且应该考虑元器件的大小和尺寸,保证元器件的合理放置。(5)自动布线

设置好布线规则之后,可以利用系统提供的自动布线功能进行自动布线。(6)手工布线

自动布线结束后,有可能因为元器件的布局使自动布线无法完全解决问题或产生布线冲突,此时就需要进行手工布线加以调整。

四、对所绘制电路图进行简要分析

这是基于FT245BM的USB接口设计,主要功能是进行USB和并行I/O口之间的协议转换。通过8根数据线D0~D7及读写控制线来完成和单片机的数据交互。包括1个内置3.3v的稳压器,1个6MHz的振荡器、8倍频的时钟倍频器、USB锁相环和EEPROM 接口。电源端采用一个磁珠,以减少主机和设备的干扰;同时,电源端增加了去耦和

旁路电容,以提高电路的抗干扰性能。

五、体会及合理化建议

通过这一周的课程设计,使我认识了Protel软件,知道了如何利用protel 进行电路仿真,知道了如何新建原理图文件、如何设置原理图设计环境、如何寻找元件、如何布局布线、如何绘制元件的原理图封装。从刚开始接触protel觉得非常复杂,到现在已经能够熟练掌握protel软件的使用了。在这次protel的任务中,自己也学习制作元件,通过建立元件库,将自己制作的元件载入,自己的收获是相当大的。对软件有了新的认识,也有了很强的兴趣。当然这一周protel的学习是远远不够的,自己还要利用自己的业余时间,多多练习,才能够做的更好。

电子设计应用

电子设计应用

六、参考文献

周润景、张丽娜,《Protel 99se原理图与印制电路板设计》,电子工业出版社,2008年8月

王力、张伟,《Protel 99se典型实例》,人民邮电出版社,2006年12月

于枫、宋占伟、李海富,《电子工程师制图与制版技术protel 99se应用》,科学出版社,2004年8月

刑增平,《Protel 99se设计专家指导》,中国铁路出版社,2004年3月

曹炳霞、赵艳华,《Protel 99se原理图与PCB设计》,电子工业出版社,2007年5月

李华嵩、王伟,《Protel 99se电路原理图与PCB设计108例中国青年出版社》,2006年9月

(二)软件设计部分

一、题目分析

背包问题是一类试探性求解问题的代表性例子。假设有n间质量分别为W1,

W2,W3……Wn的物品和一个最多能装载总质量Max_weight为T的背包,能否从这n

件物品中选择若干件物品装入背包,并且是被选物品的总质量恰好等于背包所能装载

的最大质量,即Wk1+Wk2+Wk3+……+Wki=T。若能,则此问题有解,否则无解。

背包问题类似子集和问题,给定一个整数集合和一个整数,要求找出是否有这

样一个子集合,其中所有元素的和等于给定的整数。可以用回溯法求出结果。,cw:

当前背包已经装载总质量 t:背包总容量 r:未装入背包的物品总质量 n:物品个数

w:每个物品的质量 x[i]:每件物品的选择方式(x[i] = 0表示第i件物品不选择) i:当前搜索解树的层数利用二叉树,左为1,右为0的选择方式。

二、设计过程

电子设计应用

电子设计应用

Backtrack子函数

三、调试过程及实验结果

调试过程:此问题分为有解和无解的情况。对有解的情况进行调试没有出现问题,但是在调试无解的情况时,出现当每个物品的的质量都大于背包容量时,程序出现没有结果的状况。我使用了bool函数,用来解决此问题。当程序加上bool函数后,能够正常运行,并且解决了程序存在的问题,在之后的调试过程中并没有出现任何问题。

实验结果:特别是在有解情况下会出现多解的情况。例如物品个数为5,背包容量为10,第一件为1,第二件为2,第三件为3,第四件为4,第五件为5.出现的多解情况如下图所示。

电子设计应用

电子设计应用

电子设计应用

四、结论

紧紧张张的一周实习即将过去,从刚开始的不只如何下手到最后看到自己的程序按自己的想法运行,心里时不时的有一种喜悦。根据我的课设题目,我不断的上网查阅了有关资料以及去图书馆查找有关资料,这对我解决问题起到了很大的帮助。我认识到书上和老师教的内容是有限的,要想掌握更多的知识我们必须多动脑,多思考,不断地靠自己去学习,同时我们还应向他人请教,从而了解更多自己不知道的知识。回头看来,编写这个程序并不像原来想像的那么难,我们要相信自己,无论做什么事,只要我们仔细的思考了,认真的去做了,我们就一定能做好。

最后,非常感谢这次课程设计,希望今后能多开设这样的课程,这样,我们就能够在实践中更好的掌握所学的知识。

五、程序清单

#include "stdafx.h"

#include "stdio.h"

bool ans = false;

int cw,t,r,w[100],x[100],n; // cw:current weight,当前背包已经装载总质量 t:背包总容量 r:未装入背包的物品总质量 n:物品个数

void backtrack(int i) // w:每个物品的质量 x[i]:每件物品的选择方式(x[i] = 0表示第i件物品不选择) i:当前搜索解树的层数

{

if (i > n) // 当搜索到叶子节点时

{

if (cw == t) // 得到结果

{

for (int j = 1; j <= n; j++)

if (x[j] == 1)

printf("选择第%d件物品 ",j);

printf("\n");

ans = true;

}

else

printf("无解\n");

ans = true;

return;

}

r = r - w[i];

if (cw + w[i] <= t) //若已装载质量加上下一个要装入的物品的质量小于背包容量,则进入解树的左子树

{

x[i] = 1;

cw = cw + w[i];

backtrack(i+1);

cw = cw - w[i];

}

if (cw + r >= t) //若已装载质量加上剩余的物品质量(不包含下一个要装入的物品)大于背包容量,则进入解树的右子树

{

x[i] = 0;

backtrack(i+1);

}

r = r + w[i];

return;

}

int main(int argc, char* argv[])

{

int i;

printf("物品个数:");

scanf("%d",&n);

printf("背包容量:");

scanf("%d",&t);

for (i = 1; i <= n; i++)

{

printf("第%d件物品质量:",i);

scanf("%d",&w[i]);

x[i] = 0;

r = r + w[i];

}

backtrack(1);

if (!ans)

printf("无解\n");

return 0;

}

六、参考文献

1. 谭浩强,《C程序设计》,清华大学出版社,2005

2. 梁翎,《C语言程序设计实用技巧与程序实例》,上海科普出版社,2000

3. 王士元,《C高级实用程序设计》,清华大学出版社,1996

4. 潘锦平,《软件系统开发技术》,西安电子科技大学出版社,2000

5. 徐宝文,李志,《C程序设计语言》,机械工业出版社,2004

6. 王浩,《C语言标准教程》,化学工业出版社,1996

7. 刘彦明,《计算机软件技术基础》,西安电子科技大学出版社,2008.3

8.郑红军,《C语言程序设计基础实验与综合练习》,武汉大学出版社,2011.1 9. 李长云,《C语言程序设计》,国防工艺出版社,2011.1

下载Word文档免费下载:

电子设计应用下载

(共19页)

TOP相关主题