沈阳航空航天大学电子信息工程学院
电子设计应用软件训练
总结报告
学生姓名: 王纪尧 专 业: 电子信息工程 班 级: 14020101 学 号: 2011040201026 指导教师: 赵晨光
训练时间:2013年 7月1日至 2012年7月12日
电子设计应用软件训练总结报告
电子信息工程学院
电子设计应用软件训练任务
一 、训练任务 1、PROTEL部分
(1) 熟练掌握PROTEL软件的使用;
(2) 按要求绘制电路原理图和PCB版图(能够用自动布线和手动布线相结合); (3) 能够按要求建立元件库和封装库。 2、软件设计部分
按照给定的软件设计任务完成相应的软件设计(见软件设计任务部分)。 二、基本要求及说明 1、PROTEL部分
(1) 电路原理图图纸尺寸按照给定的任务作相应的设置; (2) 电路原理图见PROTEL训练任务部分;
(3) 按指定电路图在PROTEL 99中绘制原理图和印制板图; (4) 按照给定要求创建原理图器件和该器件的相应的封装 2、软件设计部分
按软件设计要求实现相应的功能(见软件设计任务部分) 三、按照要求撰写总结报告
成绩:_____
1
电子设计应用软件训练总结报告
PROTEL部分
一、 任务说明
(1)了解protel最基本的功能,并且熟练的掌握这些基本功能。
(2)按要求绘制电路原理图和PCB 版图,并学会自动布线和手动布线的相结合的方法布线。
(3)学习简单元件的绘制,并在此基础上建立自己简单的元件库以及封装库。
二、 原理图的绘制 2.1新建.ddb数据库文件
打开protel 99 SE软件,点击菜单栏中File中的New命令既可以打开如图1-2的界面,该对话框中有两个选项卡,分别为Location和Password。
在Location中,用户可以在编辑框定义文件和名称和存放的位置。点击Browse改变存盘目录,单击OK,即可建立设计数据库。如图1-1
图1-1 新建一个数据库
2
电子设计应用软件训练总结报告
2.2新建原理图
选取File下的New...新建文件选项打开New Document对话框,选取Schematic Document点击OK建立一个后缀名为.sch的文件,这就是原理图文档。如图1-2。
图1-2 建立一个新的原理图文档
2.3设置电路图纸的大小
选择菜单中的Design下的Options命令,系统将弹出Document Options对话框,并在其中选择Sheet Options选项卡进行设置接下来要设置电路图图纸的大小,在standard选项下将电路原理图图纸设置为A4尺寸。如图1-3所示。
图 1-3 设计图纸大小的设置
3
电子设计应用软件训练总结报告
2.4添加和删除元件库
点击Add/Remove按钮,屏幕将出现 Chang Library File List话框。在Design Explorer 99\\Library\\Sch文件夹下选取元件库文件,然后点击Add按钮,此元件库就会出现在Selected Files框中,然后点击OK按钮,完成该元件库的添加。如图1-4所示。
图1-4 元件库的添加
2.5新建元件库
在绘制电路原理图时,有些元件在标准的元件库无法找到,这时我们可以手动建立一个新的元件库。点击File下的New..新建文件选项打开New Document对话框,选取Schematic Library Document点击OK,此时将创建一个后缀名为.lib的文件,然后在这个新建的库中建立自己的元件。如图1-5。
4
电子设计应用软件训练总结报告
图 1-5 建立自己的元件库
在自建的元件库中就可以编辑自己想要的元件了,窗口上有绘图的工具借助这些工具就能够完成自己的任务了,画出自己想要的元件。用用
画出所需元件的外形,并且
添加引脚,双击引脚,可以在弹出的对话框里编辑引脚的编号和名称。在Name
中定义名称,在Number中定义编号,编辑完成后的元件如图1-6。
图 1-6 自制元件
2.6绘制电路原理图
打开第二步建立后缀名为.sch的原理图文档,我们可以看到,在工具栏中有很多的绘图工具,如图1-7。我们可以利用这些工具来绘制电路原理图。
5
电子设计应用软件训练总结报告
图 1-7 连线工具栏
接下来进行元件的查找和放置,首先选择一个元件库,在元件库有标准的元件,如图1-8所示。点击Place,就可以将将原件放置在原理图当中,用同样的方法可以放置原理图中所需的元件。
图1-8 元件库和元件库里的元件
添加“电源”和“地”,左键点击编辑栏中的
,放置在电路原理图中,双击弹出
对话框,如图1-9所示。在Style窗口选择Power Ground选项,这样在原理图中,就添加了一个“地”。
图1-9 创建电源
6
电子设计应用软件训练总结报告
接下来就是将各种元件连在一起,这是需要使用工具栏中的电路线,因为电路
图中的线大多为直线,所以需要将相应的元件摆放整齐。画线其实比较简单,只要稍微注意线与线之间是否有节点,如果有节点,那么它们两者就是相连的,如果没有,那就是不相连的。
经过上述的步骤,解决了各种问题,完成的电路原理图如图1-10所示。
图 1-10 电路原理图
2.7命名并定义引脚封装
双击某个元件,并在弹出的对话框中为该元件命名并定义引脚封装,如图1-11图所示,元件命名在Designation输入框中,而定义引脚封装则在Footprint框中进行。电路原理图中的每一个元件都要进行引脚的封装。元件的封装并不是随意的,元件封装的名称必须在元件库存在,并且该封装与能买到的器件相对应,如果封装库中没有相应的封装,那么就需要自己为元件制作封装。
通过知道老师的答疑和上网查找相应的资料,了解到了一些常见的封装形式。如,在此电路原理图中,电阻的封装我设置为AXIAL0.3和AXIAL0.4,电容的封装形式为RAD0.2,极性电容的封装为RB.2/.4,各类二极管的封装为DIODE0.4,光电耦合器OPTOISO1的封装为DIP4,晶振的封装为XTAL1。
如果原理图中的元件的封装形式在封装库中没有,需要自己建立,在自己的封装库中建立如下:首先根据任务书中给的尺寸距离,开始在封装库中放置焊点,放置焊点时光标变为十字,中间带有一个焊盘,移动光标使焊盘到达合适的位置后,单击鼠标将其定位,将工作层面切换到顶层布线层,执行菜单命令画线,然后画出绘制元件的外形轮
7
电子设计应用软件训练总结报告
廓——方形。将原件重新命名,这样该元件的封装就成功创建了。
图 1-11 为元件命名并设定引脚封装
三、 印制板的绘制 3.1电气规划检验
至此,该电路的原理图就完成了。原理图绘制完成以后要进行电气规则检验,来确
定自己所画的原理图是否有错误,以防止原理图连线出现的问题,和为下一步的生成网络表文件准备。选择Tool下的ERC选项,采用默认的设置,点击OK就开始了电气规则检验,并生成一个后缀名为.erc的错误报告。如图1-12。图中的报告说明此时原理图的连接没有出现问题。
8
电子设计应用软件训练总结报告
图 1-12 电气规则检验
3.2生成网络表
结束后电气规则检验后,下一步就可进行网络表文件的生成工作。选择Design下的Creat Netlist选项然后点击OK按钮就可以生成一个后缀名为.net格式的网络表文件。如图1-13所示。
图 1-13 生成网络表文件
该网络报表包含了原理图中各个引脚的链接,绘制原理图的最主要目的其实就是产生这么一个网络表,以供其他后续处理程序使用。
9
电子设计应用软件训练总结报告
3.3设置板形
板形也就是最后设计出来的电路板的外形,板形设计可以手动设置,也可以使用
印刷电路板设计向导来完成,本设计比较简单,我采用的是手动设置板形。要注意的是在KeepOut Layer界面绘制板形,利用编辑工具设置板形。
3.4加载网络表
网络表生成后就可以在PCB窗口中导入网络表,选择Design下的netlist选项,单击Browse按钮打开对话框,选择上面生成的Sheet1.NET加载网络表文件,并单击OK按钮,就可以导入网络表了。网络表加载后,可能提示错误,这是由于原理图元件库中的元件引脚名称与电路板元件库中的元件引脚名称不一致引起的。此时,只要改回来就可以解决问题。如图1-14所示。
图 1-14 加载网络表及产生的错误
10
电子设计应用软件训练总结报告
3.5印制电路板布局以及布线
网络表导入后接着要进行电路板的布局,电路板布局与许多因素有关,比如电磁干扰、是否利于导热等。电路板的布局一般都要遵循最近相邻原则,即元器件一般都要放置在与其电气相连最近的元件附近,这样有利于走线。布线是完成产品设计的重要步骤,首先进行总布线然后在自动布线的基础上检验布线,点击Auto Route菜单,然后选择All,点击Route All,生成自动布线图。观察找出不合理的布线然后进行手动布线。如图1-14所示。
图1-14自动布线结果
四、总结
在这次为期两周的课程设计训练中,我第一次接触Protel这款软件,听指导老师说几乎所有的电子公司都要用到它,许多大公司在招聘电子设计人才时在其条件栏上常会写着要求会使用PROTEL,我感觉到了这项技能的重要性。
通过这次的Protel软件的课程设计,我基本上掌握了Protel 99 SE软件的简单使用方法,可以熟练的运用该软件绘制电路原理图,同时可以建立自己的元件库,新建软件自带的元件库中所没有的元件。还可以根据电路原理图绘制PCB版图,了解了各种元件的封装等相关知识。以及后续很多步骤所含的知识。
Protel这个软件包含有原理图设计软件、电路板设计软件等多个模块。对于初学者的我来说,这些方面的学习使我初步学会了一些制图过程中的技巧。
在刚开始接触这一款软件的时候,其英文的操作界面着实使我苦恼了一阵,即使我
11
电子设计应用软件训练总结报告
进行了汉化,但大量的专业英语词汇仍使我束手无策。可是后来,也许是所谓的“熟能生巧”吧,我渐渐可以看着英文就能找到我所需要的东西了,但即便如此,我还是认识到学习好英语的重要性。
在学习的过程中,首先接触的是如何绘制基本电路的原理图。这在整个学习过程中是相对简单的,因为它是绘制其它图的基础。要绘制原理图,首先要创建一个新的Schematic Document界面,然后就是加载原件库,当遇到库中所没有的元器件时,我们就要自己动手编辑电路原件了。还记得当初我试了很多次还不行,后来还是经过老师的指点才解决的,那时候还真是有点豁然开朗的感觉。自己编辑完原件后,只有正确的调用才能在之后顺利地使用它。
之后便是PCB封装的学习了。这是很重要的一个过程。同是电阻,就因为它们的阻值不一样,也许封装就是不同的;有极性的电容和无极性的电容的封装也是不同的„„起先我总是怎么也找不对封装的内容,可是渐渐的也好了起来。在这一过程中,需要我注意的就是每一个原件都要有封装并且要封装正确。
这之后,我们要对原理图生成一个网络表,然后在PCB中也同样创建一个网络表,只有当检错后显示“All macros validated”,才能进行下一步的动作,但这也只是正确完成PCB的一个必要前提,只有当所有的原件都连线时,才有可能正确。那个时候我调试了好久可就是有原件不能连线,好几天下来,说不烦躁那是假的,可当我最终将所有的错误都排查的时候,那种喜悦的心情是无法用语言形容的。
这还不算完,我们还要布局和布线,自动当然既快速又方便,可手动的有时会更加美观。当通过自己的努力制成一幅完整的图事,我会体会到前所未有的成就感。
Protel的学习应该要多联系,只有多练习,我们才能更快更好地完成制图。短学期的学习虽然短暂,学到的东西也有限,但这十天中我所获得的却能够使我受益匪浅、受益终身。我会不断地自我充实来丰富自己的专业知识,我会更有耐心地对待身边的每一件事。有听说这样一句话:“每次遇到一个新的领域,你都是一张白纸,由你自己决定来怎么涂写。”我会重视过程所带来的乐趣以及不断地奋斗、不断地纠正错误,使自己无论在专业知识上还是自身素质上都有所提高。
五、参考文献
薛楠.Protel DXP 2004原理图与PCB设计实用教程 .机械工业出版社.2012.03 周润景.Protel 99SE电路设计及应用.机械工业出版社2012.02 甘登岱.Protel电路板设计教程 .航空工业出版社 .2011.05
12
2U5U634R618K 1/2W
高MOC3020LEDU7DR5200K 1/2WU3
中MOC3020LEDU8R4200K 1/2WU41D绿色LED附录I 电路原理图
低MOC3020LEDR3100L1R11K/1WR144.7D2IN4007R868R1347KC10.47U/400VD1IN4007AC 220VFanCCR2C91104C2U13T0CKI4470UF/16V5DZ1DB46789ZD1C36.1V 1/2W470UF/16VRA3C7100UF2RA2RA0OCS1U2300KP0C16054 EM78P15618RA1171615X1455KC4陶瓷蜂鸣器C5BZ1VDD14BT136MCLR/VppOCS2VEERB0RB1RB2RB3电子设计应用软件训练总结报告
13
D5IN4007C6104/250VD6IN4007D3K1IN4007D4K2K3OFFSPEEDTIMERRB7RB6RB5RB4131211D910D7R1210KR1110KR1010KD10D8R968BBR756 1/2W1小时2小时C81043小时4小时Z1430V红色LEDTitleASizeNumberA4Date:File:10-Jul-2013Sheet of E:\\大二资料\\课设\\王纪尧\\新建文件夹\\MyDeDsriagwnn.d Bdby:34RevisionAAC 220VIN400712 电子设计应用软件训练总结报告
附录II 印制板图
14
电子设计应用软件训练总结报告
软件设计部分
背包问题
1.需求分析 1.1程序的功能
程序的功能是:假设有一个能装入总体积为T的背包和n件体积分别为W1,W2,···,Wn的物品,能否从n件物品中挑选若干件恰好装满背包,即使W1+W2+···+Wn=T,要求找出所有满足上述条件的解。例如:当T=10,共6件物品,物品的体积为{1,2,3,4,5,8},那么可找到下列4组解:(1,2,3,4)、(1,4,5)、(2,3,5)、(2、8)。
1.2输入输出要求
1.从界面中输入的供选择的物品的数目不能超过程序定义的N; 2. 输入一个物品体积后,要按回车键,然后输入下一个数据; 3.输入背包容纳的体积T不能大于所有物品的体积总和;
2.概要设计
2.1主要程序的功能模块图
功能模块图如下图2-1
背包问题 输 入 模 块 初始化 模 块 挑选 模 块 输出 模 块
图2-1 功能模块图
15
电子设计应用软件训练总结报告
2.2数据结构及其关系
程序中定义了主要的类型是int类型和 struct 类型。
int 类型中有 int w[M],int T,int N,int i,int j等,int w[M]是一个数组,其中的各数据元素都是同属一个集合的关系,是的顺序存储结构。其它的数据是无向关系。 struct类型: struct
{
int s[M];
int top; }things;
struct 类型中int s[M]和int top都是其所属的元素。其中int s[M] 是一个数组,其中的各数据元素都是同属一个集合的关系,是的顺序存储结构。int s[M]和int top是一种线性关系。结构体本是顺序存储的。
3.详细设计
3.1 C语言定义的相关数据类型
首先定义一些变量,作为程序中需要存放变量的空间。 int 类型:
int w[M]; //供选择的物品
int T=0; //背包的最大容量
int N=0; //物品的数目
int k=0; int i=0; int j=1 struct类型: struct {
int s[M]; //存放被选出来的物品重量的数组 int top; //栈顶指针 }things;
3.2模块的主要类C码算法
初始化模块:
这里运用了一个for循环,主要目的是定义一个长度为N的栈,并且这个栈为空栈。这个栈的用途存放物品的重量。 for(i=0;i 电子设计应用软件训练总结报告 { things.s[i]=0; things.top=0; } 挑选模块和输出模块: 挑选模块的主要功能是判断这个物品是否符合条件,如果符合条件,则这个物品入栈,并且栈顶指针加1,背包总量变为当前总量减掉入栈物品的重量。 输出模块输出的是挑选物品的方法,这个模块则是将上一步进入的栈物品元素出栈。即为将符合挑选条件的物品输出。 do { while(T>0&&k<=N) { if(T>=w[k]) { things.s[things.top++]=k; T-=w[k]; } k++; } if(T==0) { printf(\"\\n第%d种挑选方法:\ for(i=0;i printf(\"\质量为%d的物品 \ } j++; printf(\"\\n\"); } k=things.s[--things.top]; things.s[things.top]=0; T+=w[k]; k++; }while(!(things.top==0&&k==N)); 3.3主要函数的流程图 流程图如下图2-2 17 电子设计应用软件训练总结报告 图2-2 主程序流程图 开始 输入数据 初始化数据 背包总量大于0且变量小于物品总数 N Y 背包总量大于物品总质量 Y 符合条件的物品入栈 N 考察下一个物品 Y 包满 N 输出 前一入栈物品出栈 继续考察下一个物品 N 栈顶指针为空 Y 结束 18 电子设计应用软件训练总结报告 3.4各函数模块的调用的关系图 模块调用关系图如下图2-3 输入模块 主函数 初始化模块 考察各物品 挑选模块 输出模块 图2-3 模块调用关系图 4.调试分析以及设计体会 4.1测试数据 为了测试程序的正确性,准备了几份数据,数据如下: 1. 输入供选择的物品的数目:6 输入供选择的物品的体积: 第一个物品的体积:1 第二个物品的体积:3 第三个物品的体积:4 第四个物品的体积:5 第五个物品的体积:8 第六个物品的体积:2 输入背包的容量:10 测试结果如下图2-4 19 电子设计应用软件训练总结报告 图2-4 第一种情况的方法 2. 输入供选择的物品的数目:3 输入供选择的物品的体积: 第一个物品的体积:1 第二个物品的体积:3 第三个物品的体积:4 输入背包的容量:4 输出结果如下图2-5 图 2-5 第二种情况的方法 4.2调试中的问题与分析 调试程序是课程设计中一个很重要的环节,它让我们发现自己程序的错误,让我们不断的改正错误直到程序可以运行。在调试中,我的程序出现了很多的问题,有些是出于本身的知识遗忘缺陷和,有些一些是出于实践与理论的差别,还有一些是由于粗心引起的。 由于很久没有温习C语言的,所以对C语言输入输出的知识有所遗忘,在输入物体体积时,开始在scanf语句输入数组的一个数,我以为数组输入只需写数组名,没有使用地址符,只写“W[i]”, 结果数据一直无法输入,后来在同学的提醒下才想起来,对数组中的数据一个一个输入和一次输入数组时不同的,前者需要输写地址符,正确的输入应该是”&W[i]”,修改后数据才正常的输入,这是个对知识遗忘引起的错误。 这个问题是由于粗心引起的,而且是个很难发现的错误。 调试程序的过程中,我发现了很多的错误。这个过程不仅仅是对程序的检测也是对我的学习的检测。让自己发现自己还存在着很多的不足。在机房的几次调试,让我再次去温习了C语言,对于C语言和自己学习的成果有了再次的提升,也对自己的编写习惯 20 电子设计应用软件训练总结报告 有了一些改变。总之调试程序让我受益匪浅。 4.3课程设计心得体会 本次课程设计让我将我所学的C语言与数据结构有机结合,即提升了动手写程序的能力,也温习了C语言和检测了我的学习效果。虽然在两周的课程设计中我遇到了很多的困难,但是最后看着自己编写的程序能够实现功能并且很好的运行是一件非常开心的事。只有真正的去写了程序才知道自己到底学到了什么,才知道自己在哪里存在不足,需要在哪里方面更加努力。 数据结构是计算机科学的基础理论知识,也是软件设计的技术基础。本课程设计的性质是检验理论科学系的效果以及综合运用的能力,目的是训练学生进行复杂程序设计的技能和培养良好的程序设计习惯。本课程设计的任务是要求学生使用C或C++语言编程,解决具有一定规模的、具有实际意义的应用题,实现理论课所要求的数据组织、存储、处理的基本方法。 在编写程序时我经常出现粗心的错误,这也是我们编写程序时的致命点,但是也让我看到了改进的方向。首先要认真上好专业实验课,多在实践中锻炼自己。其次写程序的过程中要考虑周到,严密。并且在做设计的时候要有信心,有耐心,切勿浮躁。而且在课余时间里多写程序,熟练掌握在调试程序的过程中所遇到的常见错误,以便能节省调试程序的时间。 5.使用说明 本程序说明告诉用户如何使用背包程序,使用户在使用时更方便。 首先进入第一个界面如图2-6,请客户输入供选择的物品的数目,输入完后按Enter键,随后会要求用户输入选择物体的体积的界面。 图2-6 输入物品总数 21 电子设计应用软件训练总结报告 进入第二个界面如图2-7,请客户输入各物品的体积,每输入一个数据请按一个Enter 键,界面会出现下一个提醒输入语句,请客户继续输入,输入到最后一个数据后,按Enter键,将进入输入背包总体积的界面。 图2-7 输入各物品的重量 进入第三个界面如图2-8,请用户输入背包的容量,输完后按Enter键进入下一个界面。 图2-8 输入背包的总量 进入最后一个界面如图2-9,界面自动输出挑选物品的几种方法,按任意键结束程序。 22 电子设计应用软件训练总结报告 图2- 9 输出挑选方法 6.参考文献 1.李春葆等.数据结构教程(第三版).北京. 清华大学出版社.2009 2.李春葆等.数据结构教程上机实验指导.北京. 清华大学出版社.2009 3.苏仕华等.数据结构课程设计.北京. 机械工业出版社.2005 4.马睿.孙丽云.数据结构.北京. 北京邮电大学出版社. 2009 5谭浩强.C程序设计.北京.清华大学出版社.2011.8 23 电子设计应用软件训练总结报告 7.源程序清单 #include int w[M]; int T=0; int N=0; int k=0; int i=0; int j=1; struct { int s[M]; int top; }things; printf(\"请输入供选择的物品的数目:\"); scanf(\"%d\ printf(\"\\n请输入供选择的物品的体积:\"); for(i=0;i scanf(\"%d\ } printf(\"\\n请输入背包的容量:\"); scanf(\"%d\ for(i=0;i things.s[i]=0; things.top=0; 24 电子设计应用软件训练总结报告 } do } { while(T>0&&k<=N) { } if(T==0) { } k=things.s[--things.top]; things.s[things.top]=0; T+=w[k]; k++; printf(\"\\n第%d种挑选方法:\ for(i=0;i things.s[things.top++]=k; T-=w[k]; } j++; printf(\"\\n\"); }while(!(things.top==0&&k==N)); return 0; 25 因篇幅问题不能全部显示,请点此查看更多更全内容