




免费预览已结束,剩余18页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子设计应用软件训练总结报告 (一) PROTEL部分1任务说明:(1) 熟练掌握PROTEL软件的使用; (2) 按要求绘制电路原理图和PCB版图(能够用自动布线和手动布线相结合); (3) 能够按要求建立元件库和封装库。2原理图绘制说明: (1)练习学会使用PROTEL 99SE软件。从中我们要学会使用PROTEL 99SE软件来绘制任一原理图以及任一PCB原理图。首先是安装这个软件,在基本掌握这个软件的使用说明时,开始绘制原理图。打开PROTEL 99SE,新建一个PROTEL工程,在Document中分别新建一个原理图,如图:图 1新建原理图(2)画原理图库,封装,和封装库。根据任务书上的电路原理图,去库里找相对应的元件对应摆好。由于我这个电路原理图比较特殊,有单片机数码管器件,在库存里不能找到,需要自己人工绘制且绘制起来比较麻烦,当将这些元器件画出来并在原理图中摆好后,将它们再依次连接起来,并用PageUp和PageDown键依次为放大、缩小键,可以调节电路图的清晰度,便于检查。检查无误后便可以保存原理图,则原理图绘制完毕。自己画40个脚的单片机首先要要去图1中那样建立一个自己的元件库,首先点击SchematicLibrary,保存到指定的文件夹,然后先画一个正方形,再加上需要的管脚数,点击管脚,修改属性,然后加上元件名称,保存,自己的元件库就建立了起来。图 2自己画的40个脚单片机 画好原理图后,需要对原理图进行封装,封装的方法是,点击各个元器件,在Footorint栏中填写上援建的封装号,如元件数码管是一个14个管脚的器件,查的他的封装号是DIP14,即在Footorint栏中填写上DIP14,这样一个元件就封装完毕,把所有的元件封装完毕。图3 电路中的元件进行封装3、检查原理图的正确性和生成网络表原理图封装完毕后,需要检查原理图,我们的具体做法是,在PROTEL99界面中点击Tools下的ERC,然后点击确定,看是否自己画的原理图是不是合格的,有没有错误。图4 检查原理图在确定自己画的原理图没有错误后,需要生成网络表,生成网络标的办法是在Design键中找到CreateNetlist,点击,就生成了自己所画的正确的原理图的网络表。图5 生成的部分网络表4、印制PCB版图绘制说明:在绘制PCB原理图之前,新建一个PCB Docment,新建PCB Docment,的操作如下图:图6 新建一个PCB Docment,点击菜单栏中的文件菜单,新建一个PCB Docment,导入网络表,便会自动生成PCB原理图, 用粉色线将原理图圈至框内,制成印制板边框图,给板布局,使板子既经济又美观。然后点击“自动布线”,给板全部布线。但是由于部分原因我们在导入网络表之后,有的元器件导线,这个时候我们就要从新回到第一步,看自己话的原理图是否完全正确,一般原理图出现的问题是我们画导线时,导线与元器件的接口没有接好,后导致我们生成的PCB图中的元器件没有导线相连,在仔细检查我们的原理图后,我们重新生成检查后的原理图的网络表,然后我们在重复建立PCB图的步骤,如果我们在确定自己的原理图正确,但是生成的PCB途中为部分元器件还是没有导线,这个时候就需要我们自己手动布线,手动布线的方法是:点击缺少线的元器件的管脚,弹出一个对话框,对话框弹出后点击Advanced选项,里面有Net选项,对照自己的原理图,看该元器件的管脚是与那个另外其他的元器件相连,在Net中找到该元器件,确定后,导线就相连。导线连接完毕后就是手动布局,首先确定PCB板的大小,我们一定要选择一个合适的大小,太大浪费板,太小,元件布局不开,自己手动把各个元器件拉到指定的位置,元器件可以旋转等,最后在KeepoutLayer键中选择全部局,最后便生成最完美的印制版图。图7 生成的PCB图4对所绘制电路进行简要分析:该电路由单片机、数码管器件、电阻、电容、蜂鸣器、无极性电容等基本元件组成,电路构造比较复杂,但是原理比较通俗易懂。制版图中,同色线没有相交叉,并且元件引脚均已连接正确,说明电路图连接准确,可以生成制板。5总结:通过PROTEL 99SE软件的课设,我掌握了PROTEL 99SE软件的应用方法,加深了我对电路及电子信息工程专业的了解,也对PCB板的制作有了较深的印象,为以后在电子行业的发展,奠定了一定的基础。通过这次课设也我深刻地体会到身为一名专业设计人员自身应该具备的严谨、细心、负责的工作态度和作风,为我将来在专业方面的发展打下坚实的基础,但是在做的过程中我也遇到了许多困难,软件运用不熟悉,原理不太理解等,我及时的向同学和老师请教和答疑,去图书馆查找资料,上网搜索资料,最终克服了重重困难,完成了自己的课程设计,在此过程中收获很多,在今后的学习过程中我会更加努力,丰富充实自己的知识,完成自己学习任务,为以后的工作等打下一个坚实的基础。 6.参考文献1、韩晓东,李勇江.Protel99SE电路设计实用教程.M北京:中国铁道出版社,2007.2、邵建昂.Protel99教学实践探讨.实验室研究与探索,2007,26(2):100-105.3、文艳等编著.Protel 99 SE电子电路设计.M北京:机械工业出版社,2006.84、老虎工作室 .Protel 99 SE多层次电路板设计与制作. M北京:人民邮电出版社,2007年. 2-18页。5、莫力.Protel 99SE电路设计 北京:国防工业出版社,2005.016、刘天旺主编 .Protel 99 SE电路设计应用教程.M北京:电子工业出版社,2007.8附录I 电路原理图附录II 印制板图 (二)软件设计部分一、任务说明:1.设计内容:一班有m个女生,有n个男生(m不等于n),现要开一个舞会. 男女生分别编号坐在舞池的两边的椅子上.每曲开始时,依次从男生和女生中各出一人配对跳舞, 本曲没成功配对者坐着等待下一曲找舞伴.请设计一系统模拟动态地显示出上述过程,要求如下:1) 输出每曲配对情况2) 计算出任何一个男生(编号为X)和任意女生(编号为Y),在第K曲配对跳舞的 情况.至少求出K的两个值. 2.需求: 本课题要对数目不等的男生女生跳舞进行搭配,设计需要解决每一首曲子 男生女生的搭配情况,要采用循环队列的模式来解决,男生和女生各在两个循环 的队列中,每首曲子开始,便在两个队首各取一人成功配对跳舞,并进入队尾, 等待下一次配对。,通过对两个循环队列的输出、入列操作,就可以简单实现要求,动态的模拟出舞池两边那女生的搭配情况. 例如:(4男5女情况) 第一首:男1和女1 第二首:男2和女2 第三首:男3和女3 第四首:男4和女4第五首:男1和女5-二、设计过程1、文字说明:要模拟动态地显示出现题目中所要求的循环,我们要先建立两个循环队列SqQueue boys和SqQueue girls。1) 将男生、女生两组人分别存入这两个队列。以实现他们的循环配对输出。2) 利用循环队列的特性,将男女生分别进行入队列和出队列操作,实现搭 配输出。3) 循环队列的长度分别设为男女生的个数。4) 在计算机终端输出的结果是: (1) 输入数据 (2) 输出每曲配对情况 (3) 输出第K曲配对情况 (4) 退出2、程序流程图:为实现上述功能和目的,要用到循环队列的相关知识,同时,要定义一定的抽的数据类型,主函数调用各个函数模块1.各模块函数介绍:1)class cirularQueue 作用:定义一个一个循环队列2)cirularQueue() 作用:定义析构函数,使对象在撤销时释放3)bool Is Full() 作用:判断队列是否已满4)bool IsEmpty() 作用:判断队列是否为空,用于出队列前使用5)void push(T info) 作用:入队。每对舞伴跳完舞之后,做入队处理,到达队尾,等待下次跳舞。6)void Pop(T &info) 作用:出队。每取曲子响起时男生队列和女生队列作出队处理,两人跳舞。7)void GetHead(T &info) 作用:取队首元素,对出队的男女进行识别。8)void Initqueue(cirularQueue&,int);作用:初始化队列9)void display(int,int);作用:根据男生和女生的人数和曲目的数目,来判断每曲歌的男女配对情况 10)void charge(int,int); 作用:判断指定组合能否配对成功 2.本程序包含三个模块:1)主程序模块: void main() 初始化; do 接受命令; 处理命令;while(“命令”=”退出”) 2)、集合单元模块实现集合的各个函数模块3)、结点结构单元模块定义集合的结点结构3、主框图和各子框图模块设计 1) 主函数调用关系图要模拟动态地显示出现题目中所要求的循环,我们要先建立两个循环队列SqQueue boys和SqQueue girls。将男生、女生两组人分别存入这两个队列。以实现他们的循环配对输出。利用循环队列的特性,将男女生分别进行入队列和出队列操作,实现搭 配输出。cirularQueue()void GetHead(T &info)class cirularQueue主函数k曲配对每曲配对数据输入输出编号void Pop(T &info)void push(T info)IsEmpty()bool IsFull() 图1 主函数调用关系 为了提高效率和其他原因,引入了初始化列表,因为初始化列表比把组合成员放在构造函数中初始化,省略了调用组合成员对象的赋值构造函数,2)每曲配对函数调用关系图void display(int,int)初始化男女循环队列k=songnummman.pop(x)woman.pop(y)否 是 输出k首男x女y跳舞 man.push(x)woman.push(y)endk+图2 每曲配对函数调用关系图4队满判断bool IsFull()首尾顺序相邻队列为满 图3 队满判断图5对空判断原则bool IsEmpty()首尾指针相等队列为空 图4 队满判断空判断图6入队流程void push(T info)不能入队队满队尾进入尾指针移到 图5 入队满流程图7出队流程void Pop(T &info)不能出队队空队头出列头指针移到图6 出入队满流程图 8.取队首元素代码void GetHead(T &info)三、调试过程及实验结果1、调试过程一开始的调试中,做循环的时候无法是出来的人员回到原来的队列中,后来询问老师后,老师帮助改正,队员能回到了自己的队列,但再次调适自己的程序的时候发现,我输入男生的人数和女生人数时,程序总出现了输入错误,自己寻找了很长时间没有找到,找到同学帮忙,最后发现是在编写程序的时候自己把男生和女生的人数都提前确定了,所以到后来自己输入男生和女生的人数时总是错误的,修改完成后最后程序运行时还是有些错误和警告,老是提示非法操作。在不断改善程序后,程序得以顺利运行。2、实验结果最后的运行结果完成了软件设计任务中的功能如下:1.完成了输出每曲配对情况的功能2.完成了计算出任何一个男生(编号为X)和任意女生(编号为Y),在第K曲配对跳舞的情况.至少求出K的两个值.的功能。(1)程序最初的运行结果(如图所示)图7 程序最初运行图(2)各曲配对情况(如图所示)图8 各曲配对情况图(3)根据男女编号查找对应的曲数(能配对)图9 根据男女编号查找对应的曲数图(能配对)(4)根据男女编号查找对应的曲数(不能配对)图10根据男女编号查找对应的曲数图(不能配对)四、结论 这次课程设计及运用了C+,程序开始定义了class cirularQueue,其中有头指针,尾指针等。随之定义了析构函数,释放对象,然后进行了队列的基本操作,有队列的申明,判断队空及队满,出队,入队,其核心是display()函数和charge()函数,其中display()用于对各位同学编号和每队的输出情况,charge()用于计算已编号的同学在第几曲中进行配对。循环队列是一种环状的队列并且对头元素指向队尾元素, 运用循环队列的基本操作顺利的解决学生舞曲搭配问题,主要利用用循环队列的环状结构,循环地执行出列入列操作并在出队列时进行配对并输出配对情况,而整个过程不需要不需要移动元素使程序在空间复杂度上 降到最小,采用指针的移动大大加快了程序的执行效率。并且对输入进行了改进,以防止用户随意输入时出现的各种意想不到的错误。通过本次课设复习了C语言的知识,对C+的运用惊醒了进一步的掌握,同时我对软件的编程有了很深的了解,运用方面有了长足的进步,但是在做的过程中我也遇到了许多困难,我及时的向同学和老师请教和答疑,去图书馆查找资料,上网搜索资料,最终克服了重重困难,完成了自己的课程设计,再次过程中收获很多,在今后的学习过程中我会更加努力,丰富充实自己的知识,完成自己学习任务,为以后的工作等打下一个坚实的基础。五、参考文献 1. 谭浩强,C程序设计,北京,清华大学出版社,20052. 刘彦明.计算机软件技术基础教程.西安,西安电子科技大学出版社,2001.23. 王士元,C高级实用程序设计,北京,清华大学出版社,19964. 朱振元.数据结构(C+语言描述) 北京: 清华大学出版社,20075. 郑红军,C语言程序设计基础实验与综合练习,武汉,武汉大学出版社,2011.16. 姜仲秋,C语言程序设计,南京,南京大学出版社,1998.1附录I 程序清单#includetemplate class cirularQueue /定义一个一个循环队列 private: int MaxSize; int front; /头指针 int rear; /尾指针 T *data; public: cirularQueue(int MaxLength) MaxSize=MaxLength; front=rear=0; data=new TMaxLength; cirularQueue() /定义析构函数,使对象在撤销时释放 front=rear=0; delete data; void Initqueue() /队列的申明 for(int i=0;imaxSize-1;i+) push(i);bool IsFull() /判断队列是否已满 if(rear+1)%MaxSize=front) return true; else return false; bool IsEmpty() /判断队列是否为空 if(front=rear) return true; else return false;void push(T info) /入队 if(IsFull() cout错误!队列已满!endl; exit(-1); else datarear=info; rear=(rear+1)%MaxSize; void Pop(T &info) /出队 if(IsEmpty() cout错误!队列为空!endl; exit(-1); else info=datafront; front=(front+1)%MaxSize; void GetHead(T &info) /取队首元素 if(IsEmpty() cout错误!队列为空!endl; exit (-1); else info=datafront; ; int main() coutmn; display(m,n);int a=0,b=0; char quit=y; while(quit!=n) coutab; while(am)|(bn) coutab; charge(a,b); coutquit; return 0;void Initqueue(cirularQueue &Q,int m) /初始化队列 for(int i=1;i=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025国道316线南平下岚超限运输检测站招聘交通执法辅助人员模拟试卷有答案详解
- 2025年四川天府银行社会招聘模拟试卷附答案详解(典型题)
- 2025贵州省华贵人寿保险股份有限公司第一次社会招聘9人考前自测高频考点模拟试题及参考答案详解一套
- 2025年晋江市林业和园林绿化局公开招聘1人模拟试卷及答案详解(夺冠)
- 2025贵州黔南州瓮安县“雁归兴瓮”人才引进模拟试卷及完整答案详解
- 2025国网经济技术研究院有限公司第二批高校毕业生录用人选的考前自测高频考点模拟试题带答案详解
- 2025广东韶关市新丰县国有资产管理集团有限公司第一批专业技术人员招聘有关事项模拟试卷及答案详解(有一套)
- 2025福建省梧凤文旅集团有限公司招聘1名工作人员模拟试卷(含答案详解)
- 2025贵州雍福产业发展投资(集团)有限公司第一批招聘5人模拟试卷及一套答案详解
- 2025广发银行成都分行社会招聘考前自测高频考点模拟试题参考答案详解
- 2025政治理论时政热点知识试题库附完整答案
- 民间借贷抗诉申请书
- 消毒灭菌教学课件
- 2025年考研护理综合全程真题及答案
- 工会安全监督培训课件
- 学堂在线 知识产权法 章节测试答案
- 小学道德与法治五年级上册《烟酒有危害》教学课件
- 减脂课件教学课件
- 2025 SMETA员工公平职业发展管理程序-SEDEX验厂专用文件(可编辑)
- 卫生法律法规试题题库(附答案)
- 水浒传鲁智深介绍
评论
0/150
提交评论