还剩35页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
沈阳航空航天大学电子信息工程学院电子设计应用软件训练总结报告专业电子信息工程学院训练时间2013年7月1日至2012年7月12日电子信息工程学院电子设计应用软件训练任务
一、训练任务
1、PROTEL部分1熟练掌握PROTEL软件的使用;2按要求绘制电路原理图和PCB版图(能够用自动布线和手动布线相结合);3能够按要求建立元件库和封装库
2、软件设计部分按照给定的软件设计任务完成相应的软件设计(见软件设计任务部分)
二、基本要求及说明
1、PROTEL部分1电路原理图图纸尺寸按照给定的任务作相应的设置;2电路原理图见PROTEL训练任务部分;3按指定电路图在PROTEL99中绘制原理图和印制板图;4按照给定要求创建原理图器件和该器件的相应的封装(见PROTEL训练任务部分)查找资料按资料创建原理图中某一元件及其封装形式;
2、软件设计部分按软件设计要求实现相应的功能(见软件设计任务部分)
三、按照要求撰写总结报告成绩评定表PROTEL训练任务Protel部分
一、任务说明
1.熟练掌握PROTEL软件的使用;
2.按要求绘制电路原理图和PCB版图(能够用自动布线和手动布线相结合);
3.能够按要求建立元件库和封装库
二、原理图绘制说明并新建一个元件库
1.新建设计数据库文件打开Protel99,应先建立数据库,点击File中的new,DatabaseFileName处可输入设计库存盘文件名,点击Browse改变存盘目录,单击OK,即可建立设计数据库如下图1 图1 新建设计数据库选取File/New...打开NewDocument对话框,如图,选取SchematicDocument建立一个新的原理图文档如图2图2 新建原理图文档选择菜单中的Ddesign/Options命令,系统将弹出DocumentOptions对话框,并在其中选择SheetOptions选项卡进行设置接下来要设置电路图图纸信息,将电路原理图图纸设置为A4尺寸如图3所示图3页面大小设置Win7系统无法添加库,在EDA实验中心如果在library找不到对应元件,点击Add/Remove按钮,屏幕将出现“元件库添加、删除”对话框在DesignExplorer99\Library\Sch文件夹下选取元件库文件,然后点击Add按钮,此元件库就会出现在SelectedFiles框中,然后点击OK按钮,完成该元件库的添加如图4所示图4元件库添加、删除
2.元件库的建立由于有的元件在库中找不到,我们可以自己新建元件库,建好后的元件库如图5所示,共自建三个原件图5自建的元件库3绘制导线单击WiringTools工具栏中的有两条线的图标,光标变成十字形,单击鼠标左键确定导线的起点,在导线的终点处单击鼠标左键确定终点,单击鼠标右键,则完成了一段导线的绘制,此时仍为绘制状态,将光标移到新导线的起点,单击鼠标左键,按前面的步骤绘制另一条导线,最后单击鼠标右键两次退出绘制状态绘制好的原理图如图附录I所示
三、印制板图绘制说明1.生成网络表文件打开原理图文件执行菜单命令Design|CreateNetlist,系统弹出NetlistCreation网络表设置对话框,如图6所示图6电气规则检查如果此时检查没有错误,检查结果如图7所示图7电气规则检查结果当我们设计好原理图在进行了ERC电气规则检查正确无误后就要生成网络表为PCB布线做准备在“Design”下选取“CreateNetlist”对话框,设置为那种格式的网络表网表生成后,就可以进行PCB设计了如图8所示图8网络表的生成生成的网络表如图9所示图9生成的网络表2.元件封装的创建如果原理图中的元件的封装形式在封装库中没有,需要自己建立,在自己的封装库中建立如下首先根据任务书中给的尺寸距离,开始在封装库中放置焊点,放置焊点时光标变为十字,中间带有一个焊盘,移动光标使焊盘到达合适的位置后,单击鼠标将其定位,将工作层面切换到顶层布线层,执行菜单命令画线,然后画出绘制元件的外形轮廓——方形将原件重新命名,这样该元件的封装就成功创建了绘制印制板图新建PCB文件,在“Documents”中新建“Sheet
1.Pcb”,如图10所示图10新建Sheet
1.Pcb在PCB文档界面下点击“Design”菜单下的“Netlist”,然后通过浏览找到自己新建的扩展名为.NET的文件,这样就把网络表导入到PCB文件中了,如果没有错误就开始布线,选择自动布线完成布线结果见附录Ⅱ图
四、总结通过这次protel课程设计,我基本了解了软件的使用,同时在老师的指导下能够完成两张图的制作,学到了不少知识,也开拓了视野
五、参考文献1. 赵建领.Protel99SE设计宝典.第2版,[M]北京:电子工业出版社20112. 邓奕.Protel99SE原理图与PCB设计,[M]北京:人民邮电出版社20113. 杜刚.电路板设计与制作:Protel应用教程主编,[M]清华大学出版社20104. 陈强.Protel电路设计入门与实例,[M]中国电力出版社20095. 蔡杏山.零起步轻松学Protel99SE电路设计,[M]人民邮电出版社2007附录I电路原理图附录II印制板图软件设计任务题目猴子吃桃子问题内容及要求有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子用多种方法实现求出原来这群猴子共摘了多少个桃子要求采用数组数据结构实现上述求解采用链数据结构实现上述求解
一、任务说明根据题目要求,设猴子共摘的桃子个数为n即是第一天桃子的个数n1第第二天时桃子个数n2,第三天时桃子个数n3,第四天时桃子个数n4,第五天时桃子个数n5,第六天时桃子个数n6,第七天时桃子个数n7,第八天时桃子个数n8,第九天时桃子个数n9,第十天时桃子个数n10由题中“每天都吃当前桃子的一半且再多吃一个”很容易知道n10=1,n9-(n9/2+1)=n10,n8-(n8/2+1)=n9……依次推出公式ni-1-(ni-1/2+1)=ni0即ni-1=2*(ni+1)0
二、软件设计过程及流程图1.软件设计过程数组求解法分析分析声明一个长度为10的整形数组a
[10]分别存放各天猴子吃前的桃子数下图1所示n1n2n3n4n5n6n7n8n9n10a
[0]a
[1]a
[2]a
[3]a
[4]a
[5]a
[6]a
[7]a
[8]a
[9]图1数组元素分布图先将a
[9]赋值为1,用一个循环语句forinti=8;i=0;i--a[i]=2*a[i+1]+1;为其余各数组元素赋值,则数组元素a
[0]的值便是该问题的解数据类型定义inta
[10];a
[9]=1;链表求解法分析分析建立单链表,声明一个类用来对链表的结点指针进行定义,在初始化函数中利用头插法创建具有10个元素的链表,并依次安公式ni-1=2*(ni+1)0赋值得到一个如图2所示的链表headN3nextN4nextN5nextN1NULLN2nextN7nextN8nextN9nextN10nextnextN6next图2链表结点逻辑结构图那么N1便是要求问题的解数据类型定义classlist{public:intdata;classlist*next;voidpush;};typedefclasslistnode;//建立单链表将class重定义为nodetypedefnode*link;//定义结点指针2.流程图数组求解法初始a[9=1]0i10a[i-1]=a[i]+1*2i--输出a[i]0=i10开始NY返回主菜单图三链表求解法开始初始day=10num=1,定义头结点L并申请储存空间day0NY申请节点S并赋值S-next=L-nextL-next=Snum=num+1*2day--Printf输出每天的桃子数返回主菜单图
四三、程序调试过程以及实验结果数组求解法图五链表求解法图六调试分析数组求解模块的时间复杂度因为其中循环fori=8;i=0;i--,因此其时间复杂度为O
9.数组求解模块的空间复杂度因为不需要输入任何数据,所以该算法为原地工作链表求解模块的时间复杂度因为算法中用到一个循环来输出,因此其时间复杂度为O
9.链表求解模块的空间复杂度原地工作调试基本无错误,仅字体及符号的错误,很容易便改正过来软件可以很快算出猴子吃桃的个数
四、结论各算法特点及在例题功能扩展数组的使用要先确定其长度,有时候会造成空间浪费,但是存取方便;用链式存储方式是一种动态的存储,长度是不用规定的,需要用指针来找到元素所在存储单元;而递归算法,存储空间要得少,但要知道准确计算函数,相对比较难在本例题中,我们可以通过对各种方法,利用for循环进行输出,就得到每一天桃子的剩余量
五、参考文献
[1]李云清,杨庆红.数据结构(C语言版).北京人民邮电出版社,
2004.
[2]严蔚敏吴伟民.数据结构(C语言版).北京清华大学出版.
1997.
[3]苏光奎李春葆.数据结构导学.北京:清华大学出版.
2002.
[4]周海英,马巧梅,靳雁霞.数据结构与算法设计.北京国防工业出版社,
2007.
[5]张海藩.软件工程导论.北京清华大学出版社.
2003.
六、程序清单用数组数据结构实现上述求解#includestdio.hvoidmain{intitao
[10];tao
[9]=1;//tao
[9]代表第10天剩的桃子数fori=8;i=0;i--{tao[i]=2*tao[i+1]+1;}printf共摘了%d个桃子!\ntao
[0];}用链数据结构实现上述求解#includestdio.h#includestdlib.h#defineNULL0typedefstructlinknode{ intdata; structlinknode*next;}node;node*head;voidcreat{ node*p*s; intpeaches=1; intday=10; head=node*mallocsizeofnode; p=head; whileday0{ s=node*mallocsizeofnode; s-data=peaches; p-next=s; p=s; peaches=peaches+1*2; day--;} p-next=NULL; p=head; head=head-next; freep;} voidprint{ node*p; p=head; intday=10; whilepday0{printf%d:%d\ndayp-data; p=p-next; day--;}} voidmain{ creat; print;}评语、建议或需要说明的问题指导教师签字日期成绩。