虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

我要

  • 中望cad 2010简体中文版下载

    中望CAD2010体验版正式发布。作为中望公司的最新年度力作,在继承以往版本优势的基础上,中望CAD2010融入了以“安全漏洞抓取、内存池优化、位图和矢量图混合处理”等多项可以极大提高软件稳定性和效率的中望正在申请全球专利的独创技术,新增了众多实用的新功能,在整体性能上实现了巨大的飞跃,主要体现在以下几方面: 大图纸处理能力的提升 文字所见即所得、消隐打印等新功能 二次开发接口更加成熟 一、大图纸处理能力的提升 中望CAD2010版采用了更先进的内存管理以及压缩技术,采用了一些新的优化算法,使得中望CAD常用命令执行效率和资源占用情况得到进一步的提高,特别是在低内存配置下大图纸的处理能力,大大减少了图纸内存资源占用量,提升了大图纸处理速度。主要体现在: 大图纸内存占用量显著下降,平均下降约30%,地形图类图纸则平均下降50%; 实体缩放和平移,zoom\pan\redraw更加顺畅; 保存速度更快、数据更安全,保存速度平均有40%的提升。 二、新增功能 1、文字所见即所得 文字编辑器有多处改进,文字编辑时显示的样式为最后在图面上的样式,达到了所见即所得的效果。文字编辑器新加入段落设置,可进行制表位、缩进、段落对齐方式、段落间距和段落行距等项目的调整。另外,在文字编辑器内可直接改变文字倾斜、高度、宽度等特征。 2、消隐打印 中望CAD2010版本支持二维和三维对象的消隐打印,在打印对象时消除隐藏线,不考虑其在屏幕上的显示方式。此次消隐打印功能主要体现在以下两个方面: (一)、平台相关命令和功能的调整 视口的“属性”:增加“着色打印”选项(“线框”和“消隐”两种着色打印项) 选择视口后,右键菜单支持“着色打印”项( “线框”和“隐藏”两种模式) 命令mview增加了“着色打印”功能项,可以方便用户设置视口的“着色打印属性”(线框和消隐两种模式) 打印”对话框调整:在布局空间,激活“打印”对话框,以前的“消隐打印”选项显示为“隐藏图纸空间对象”。 页面设置管理器启动的“打印设置”对话框调整:图纸空间中,通过页面设置管理器激活的“打印设置”对话框,以前的“消隐打印”选项显示为“隐藏图纸空间对象” (二)、消隐打印使用方法的调整 模型空间: 可通过“打印”或“页面设置管理器”打开的“打印设置”对话框中的“消隐打印”选项来控制模型空间的对象是否消隐打印,同时包含消隐打印预览,若勾选“消隐打印”按钮,模型空间的对象将被消隐打印出来。 布局空间: 若要在布局空间消隐打印对象,分为两种情况:     1) 布局空间视口外的对象是否消隐,直接取决于“打印设置”对话框中“隐藏图纸空间对象”按钮是否被勾选;     2)布局空间视口中的对象是否消隐,取决于视口本身的属性,即“着色打印”特性选项,必须确保该选项为“消隐”才可消隐打印或预览 3、图层状态管理器 可以创建多个命名图层状态,以保存图层的状态列表,用户可以通过选择图层状态来表现图纸的不同显示效果。这种图层状态可以输出供其它图纸使用,也可以输入其它保存的图层状态设置。 4、文字定点缩放 能够依据文字位置的特征点,如中心,左下等,作为基准点,对多行文字或单行文字进行缩放,同时不改变基准点位置。 5、Splinedit新功能 全面支持样条曲线的编辑,主要体现在SPLINEDIT命令行提示中,如下: 拟合数据(F)/闭合样条(C)/移动(M) 顶点(V)/精度(R)/反向(E)/撤消(U)/<退出(X)>: 拟合数据: 增加(A)/闭合(C)/删除数据(D)/移动(M)/清理(P)/切线(T)/<退出(X)>: 增加、删除数据:通过增加、删除样条曲线的拟合点来控制样条曲线的拟合程度。 移动:通过移动指定的拟合点控制样条曲线的拟合数据 闭合/打开:控制样条曲线是否闭合。 清理:清除样条曲线的拟合数据,从而使命令提示信息变为不包含拟合数据的情形。 切线:修改样条曲线的起点和端点切向。 闭合样条:将打开的样条曲线闭合。若选择的样条曲线为闭合的,该选项为“打开”,将闭合的样条曲线打开。 移动:可用来移动样条曲线的控制点到新的位置。 精度:可通过添加控制点、提高阶数或权值的方式更为精密的控制样条曲线的定义。 反向:调整样条曲线的方向为反向。 6、捕捉和栅格功能增强 7、支持文件搜索路径 关于激活注册:打开CAD界面,找到左上面的“帮助”,激活产品-复制申请码-再打开你解压到CAD包找到keygen.exe(也就是注册机,有的在是“Key”文件里,如果没有可以到网上下载),输入申请码--点击确定,就中间那个键--得到数据 应该是五组-复制再回到上面激活码页面,粘贴激活码确定就ok !复制(粘贴)的时候用 ctrl +c(v),用鼠标右键没用! 如果打开安装CAD就得注册才能运行的,那方法也跟上边的差不多! 其实你在网上一般是找不到激活码的,因为各个申请码不一样,所以别人的激活码到你那基本上没用,只能用相应的方法得到激活码,这方法也就要你自己去试了,我原来也不会装CAD,但现在一般3分钟就装好了,只要知道怎么说了就快了,一般软件都是一样的装法,不会装可以到网上找资料!有时求人不如求已,自己算比在网上等着别人给你算快多了

    标签: 2010 cad 简体中文

    上传时间: 2013-10-21

    上传用户:tedo811

  • 电子工程师创新设计必备宝典之FPGA开发全攻略

    2008年,我参加了几次可编程器件供应商举办的技术研讨会,让我留下深刻印象的是参加这些研讨会的工程师人数之多,简直可以用爆满来形容,很多工程师聚精会神地全天听讲,很少出现吃完午饭就闪人的现象,而且工程师们对研讨会上展出的基于可编程器件的通信、消费电子、医疗电子、工业等解决方案也有浓厚的兴趣,这和其他器件研讨会形成了鲜明的对比。 Garnter和iSuppli公布的数据显示:2008年,全球半导体整体销售出现25年以来首次萎缩现象,但是,可编程器件却还在保持了增长,预计2008年可编程逻辑器件(PLD)市场销售额增长7.6%,可编程器件的领头羊美国供应商赛灵思公司2008年营业收入预计升6.5%!在全球经济危机的背景下,这是非常骄人的业绩!也足见可编程器件在应用领域的热度没有受到经济危机的影响!这可能也解释了为什么那么多工程师对可编程器件感兴趣吧。 在与工程师的交流中,我发现,很多工程师非常需要普及以FPGA为代表的可编程器件的应用开发知识,也有很多工程师苦于进阶无门,缺乏专业、权威性的指导,在Google上搜索后,我发现很少有帮助工程师设计的FPGA电子书,即使有也只是介绍一些概念性的基础知识,缺乏实用性和系统性,于是,我萌生了出版一本指导工程师FPGA应用开发电子书的想法,而且这个电子书要突出实用性,让大家都可以免费下载,并提供许多技巧和资源信息,很高兴美国赛灵思公司对这个想法给予了大力支持,赛灵思公司亚太区市场经理张俊伟小姐和高级产品经理梁晓明先生对电子书提出了宝贵的意见,并提供了大量FPGA设计资源,也介绍了一些FPGA设计高手参与了电子书的编撰,很短的时间内,一个电子书项目团队组建起来,北京邮电大学的研究生田耘先生和赛灵思公司上海办事处的苏同麒先生等人都参与了电子书的编写,他们是有丰富设计经验的高手,在大家的共同努力下,这本凝结着智慧的FPGA电子书终于和大家见面了!我希望这本电子书可以成为对FPGA有兴趣或正在使用FPGA进行开发的工程师的手头设计宝典之一,也希望这个电子书可以对工程师们学习FPGA开发和进阶有实用的帮助!如果可能,未来我们还将出版后续版本!

    标签: FPGA 电子工程师 创新设计 宝典

    上传时间: 2013-11-10

    上传用户:wab1981

  • 华为 FPGA设计高级技巧Xilinx篇

      随着HDL Hardware Description Language 硬件描述语言语言综合工具及其它相关工具的推广使广大设计工程师从以往烦琐的画原理图连线等工作解脱开来能够将工作重心转移到功能实现上极大地提高了工作效率任何事务都是一分为二的有利就有弊我们发现现在越来越多的工程师不关心自己的电路实现形式以为我只要将功能描述正确其它事情交给工具就行了在这种思想影响下工程师在用HDL语言描述电路时脑袋里没有任何电路概念或者非常模糊也不清楚自己写的代码综合出来之后是什么样子映射到芯片中又会是什么样子有没有充分利用到FPGA的一些特殊资源遇到问题立刻想到的是换速度更快容量更大的FPGA器件导致物料成本上升更为要命的是由于不了解器件结构更不了解与器件结构紧密相关的设计技巧过分依赖综合等工具工具不行自己也就束手无策导致问题迟迟不能解决从而严重影响开发周期导致开发成本急剧上升   目前我们的设计规模越来越庞大动辄上百万门几百万门的电路屡见不鲜同时我们所采用的器件工艺越来越先进已经步入深亚微米时代而在对待深亚微米的器件上我们的设计方法将不可避免地发生变化要更多地关注以前很少关注的线延时我相信ASIC设计以后也会如此此时如果我们不在设计方法设计技巧上有所提高是无法面对这些庞大的基于深亚微米技术的电路设计而且现在的竞争越来越激励从节约公司成本角度出 也要求我们尽可能在比较小的器件里完成比较多的功能   本文从澄清一些错误认识开始从FPGA器件结构出发以速度路径延时大小和面积资源占用率为主题描述在FPGA设计过程中应当注意的问题和可以采用的设计技巧本文对读者的技能基本要求是熟悉数字电路基本知识如加法器计数器RAM等熟悉基本的同步电路设计方法熟悉HDL语言对FPGA的结构有所了解对FPGA设计流程比较了解

    标签: Xilinx FPGA 华为 高级技巧

    上传时间: 2015-01-02

    上传用户:refent

  • Autocad_VBA初级教程

    1.为什么要写这个教程市面上ACAD VBA 的书不多,它的帮助是英文版的,很多人看不懂。其实我转行已经好几年了,而且手艺也慢慢生疏了,写个教程对自己来说也是一次复习。2.什么是Autocad VBA?VBA 是Visual Basic for Applications 的英文缩写,它是一个功能强大的开发工具,学好VBA 可以成倍甚至成百、成万倍提高工作效率,在工作中,有很多任务仅用ACAD 命令不可能完成的,只要学好VBA 就可以做到,相信到时候您一定会得到同事的佩服、老板的器重。3、VBA 有多难?相信大家都知道Basic 是的含义。应该承认,我的水平还不高,错误之处在所难免,如果大家发现错误一定要提出批评,以便及时更正。

    标签: Autocad_VBA 教程

    上传时间: 2013-11-12

    上传用户:行旅的喵

  • FPGA连接DDR2的问题讨论

    我采用XC4VSX35或XC4VLX25 FPGA来连接DDR2 SODIMM和元件。SODIMM内存条选用MT16HTS51264HY-667(4GB),分立器件选用8片MT47H512M8。设计目标:当客户使用内存条时,8片分立器件不焊接;当使用直接贴片分立内存颗粒时,SODIMM内存条不安装。请问专家:1、在设计中,先用Xilinx MIG工具生成DDR2的Core后,管脚约束文件是否还可更改?若能更改,则必须要满足什么条件下更改?生成的约束文件中,ADDR,data之间是否能调换? 2、对DDR2数据、地址和控制线路的匹配要注意些什么?通过两只100欧的电阻分别连接到1.8V和GND进行匹配 和 通过一只49.9欧的电阻连接到0.9V进行匹配,哪种匹配方式更好? 3、V4中,PCB LayOut时,DDR2线路阻抗单端为50欧,差分为100欧?Hyperlynx仿真时,那些参数必须要达到那些指标DDR2-667才能正常工作? 4、 若使用DDR2-667的SODIMM内存条,能否降速使用?比如降速到DDR2-400或更低频率使用? 5、板卡上有SODIMM的插座,又有8片内存颗粒,则物理上两部分是连在一起的,若实际使用时,只安装内存条或只安装8片内存颗粒,是否会造成信号完成性的影响?若有影响,如何控制? 6、SODIMM内存条(max:4GB)能否和8片分立器件(max:4GB)组合同时使用,构成一个(max:8GB)的DDR2单元?若能,则布线阻抗和FPGA的DCI如何控制?地址和控制线的TOP图应该怎样? 7、DDR2和FPGA(VREF pin)的参考电压0.9V的实际工作电流有多大?工作时候,DDR2芯片是否很烫,一般如何考虑散热? 8、由于多层板叠层的问题,可能顶层和中间层的铜箔不一样后,中间的夹层后度不一样时,也可能造成阻抗的不同。请教DDR2-667的SODIMM在8层板上的推进叠层?

    标签: FPGA DDR2 连接 问题讨论

    上传时间: 2013-10-21

    上传用户:jjq719719

  • 怎样才能算是设计优秀的PCB文件?

    我是专业做PCB的,在线路板灾个行业呆久了,看到了上百家公司设计的PCB板,各行各业的,如有空调的,液晶电视的,DVD的,数码相框的,安防的等等,因此我从我所站的角度来说,就觉得有些PCB文件设计得好,有些PCB文件设计则不是那么理想,标准就是怎能么样PCB厂的工程人员看得一目了然,而不产生误解,导致做错板子,下面我会从PCB的制作流程来说,说的不好,请各位多多包涵!1 制作要求对于板材 板厚 铜厚 工艺 阻焊/字符颜色等要求清晰。以上要求是制作一个板子的基础,因此R&D工程师必须写清晰,这个在我所接触的客户来看,格力是做得相对好的,每个文件的技术要求都写得很清晰,哪怕就是平时我们认为最正常的用绿色阻焊油墨白色字符都写在技术要求有体现,而有些客户则是能免则免,什么都不写,就发给厂家打样生产,特别是有些厂家有些特别的要求都没有写出来,导致厂家在收到邮件之后,第一件事情就是要咨询这方面的要求,或者有些厂家最后做出来的不符要求。2 钻孔方面的设计 最直接也是最大的问题,就是最小孔径的设计,一般板内的最小孔径都是过孔的孔径,这个是直接体现在成本上的,有些板的过孔明明可以设计为0.50MM的孔,即只放0.30MM,这样成本就直接大幅上升,厂家成本高了,就会提高报价;另外就是过孔太多,有些DVD以及数码相框上面的过孔真的是整板都放满了,动不动就1000多孔,做过太多这方面的板,认为正常应该在500-600孔,当然有人会说过孔多对板子的信号导通方面,以及散热方面有好处,我认为这就要取一个平衡,在控制这些方面的同时还要不会导致成本上升,我在这里可以说个例子:我们公司有个客户是深圳做DVD的,量很大,在最开始合作的时候也是以上这种情况,后来成本对双方来说,实在是个大问题,经过与 R&D沟通,将过孔的孔径尽量加大,删除大铜皮上的部分过孔,像主IC中间的散热孔用4个3.00MM的孔代替, 这样一来,钻孔的费用就降低了,一平方就可以降几十块钱的钻孔费,对于双方来说达到了双赢;另外就是一些槽孔,比如说1.00MM X 1.20MM的超短槽孔,对于厂家来说,真的是非常之难做,第一很难控制公差,第二钻也来的槽也不是直的,有些弯曲,以前我们也做过部分这样的板子,结果几毛钱人民币的板,由于槽孔不合格,扣款1美金/块,我们也与客户沟通过这方面的问题,后来就直接改用1.20MM的圆孔。

    标签: PCB

    上传时间: 2015-01-02

    上传用户:zaizaibang

  • protel99se安装说明(如何安装)

    工作环境设置及软件安装这章介绍工作环境的设置及软件安装方面知识。为什么要进行工作环境设置呢?因为现在的PCB 工程师要设计的文件很多。文件多了如果不进行管理就会很混乱,导致以后的维护十分困难。所以要从刚开始学习的时候养成一个好的操作习惯,这是很有必要的。2.1 建立自己的工作目录在电脑的桌面上打开我的电脑,在我的电脑中打开D盘。在D 盘中建立三个文件夹。分别为“D:\EDA”“D:\EDA_LIB”“D:\EDA_PROJECT 三个文件夹”。如下图所示:图2-1-1 “建立工作目录”建立好三个文件夹后,在这三个文件夹中分别另建立一个新文夹,并命名为Protel99se。三个文件夹的作用分别是:EDA文件夹是用来存放安装文件;EDA—LIB 文件夹是用来存放元件库。EDA—PROJECT 文件夹是用来存放设计数据。2.2 对Protel 99se 进行安装设置好工作目录后,就可以对软件进行安装。图2-1-2就是Protel 99se的安装程序。其中“Protel99SP6”是升级补丁,“Protel99 汉化”是汉化文件。(1)双击Setup 安装图标对软件进行安装。

    标签: protel 99 se 安装说明

    上传时间: 2013-10-31

    上传用户:jrsoft

  • Pspice教程(基础篇)

    Pspice教程课程内容:在这个教程中,我们没有提到关于网络表中的Pspice 的网络表文件输出,有关内容将会在后面提到!而且我想对大家提个建议:就是我们不要只看波形好不好,而是要学会分析,分析不是分析的波形,而是学会分析数据,找出自己设计中出现的问题!有时候大家可能会看到,其实电路并没有错,只是有时候我们的仿真设置出了问题,需要修改。有时候是电路的参数设计的不合理,也可能导致一些莫明的错误!我觉得大家做一个分析后自己看看OutFile文件!点,就可以看到详细的情况了!基本的分析内容:1.直流分析2.交流分析3.参数分析4.瞬态分析进阶分析内容:1. 最坏情况分析.2. 蒙特卡洛分析3. 温度分析4. 噪声分析5. 傅利叶分析6. 静态直注工作点分析数字电路设计部分浅谈附录A: 关于Simulation Setting的简介附录B: 关于测量函数的简介附录C:关于信号源的简介

    标签: Pspice 教程

    上传时间: 2013-10-14

    上传用户:31633073

  • PCB设计问题集锦

    PCB设计问题集锦 问:PCB图中各种字符往往容易叠加在一起,或者相距很近,当板子布得很密时,情况更加严重。当我用Verify Design进行检查时,会产生错误,但这种错误可以忽略。往往这种错误很多,有几百个,将其他更重要的错误淹没了,如何使Verify Design会略掉这种错误,或者在众多的错误中快速找到重要的错误。    答:可以在颜色显示中将文字去掉,不显示后再检查;并记录错误数目。但一定要检查是否真正属于不需要的文字。 问: What’s mean of below warning:(6230,8330 L1) Latium Rule not checked: COMPONENT U26 component rule.答:这是有关制造方面的一个检查,您没有相关设定,所以可以不检查。 问: 怎样导出jop文件?答:应该是JOB文件吧?低版本的powerPCB与PADS使用JOB文件。现在只能输出ASC文件,方法如下STEP:FILE/EXPORT/选择一个asc名称/选择Select ALL/在Format下选择合适的版本/在Unit下选Current比较好/点击OK/完成然后在低版本的powerPCB与PADS产品中Import保存的ASC文件,再保存为JOB文件。 问: 怎样导入reu文件?答:在ECO与Design 工具盒中都可以进行,分别打开ECO与Design 工具盒,点击右边第2个图标就可以。 问: 为什么我在pad stacks中再设一个via:1(如附件)和默认的standardvi(如附件)在布线时V选择1,怎么布线时按add via不能添加进去这是怎么回事,因为有时要使用两种不同的过孔。答:PowerPCB中有多个VIA时需要在Design Rule下根据信号分别设置VIA的使用条件,如电源类只能用Standard VIA等等,这样操作时就比较方便。详细设置方法在PowerPCB软件通中有介绍。 问:为什么我把On-line DRC设置为prevent..移动元时就会弹出(图2),而你们教程中也是这样设置怎么不会呢?答:首先这不是错误,出现的原因是在数据中没有BOARD OUTLINE.您可以设置一个,但是不使用它作为CAM输出数据. 问:我用ctrl+c复制线时怎设置原点进行复制,ctrl+v粘帖时总是以最下面一点和最左边那一点为原点 答: 复制布线时与上面的MOVE MODE设置没有任何关系,需要在右键菜单中选择,这在PowerPCB软件通教程中有专门介绍. 问:用(图4)进行修改线时拉起时怎总是往左边拉起(图5),不知有什么办法可以轻易想拉起左就左,右就右。答: 具体条件不明,请检查一下您的DESIGN GRID,是否太大了. 问: 好不容易拉起右边但是用(图6)修改线怎么改怎么下面都会有一条不能和在一起,而你教程里都会好好的(图8)答:这可能还是与您的GRID 设置有关,不过没有问题,您可以将不需要的那段线删除.最重要的是需要找到布线的感觉,每个软件都不相同,所以需要多练习。 问: 尊敬的老师:您好!这个图已经画好了,但我只对(如图1)一种的完全间距进行检查,怎么错误就那么多,不知怎么改进。请老师指点。这个图在附件中请老师帮看一下,如果还有什么问题请指出来,本人在改进。谢!!!!!答:请注意您的DRC SETUP窗口下的设置是错误的,现在选中的SAME NET是对相同NET进行检查,应该选择NET TO ALL.而不是SAME NET有关各项参数的含义请仔细阅读第5部教程. 问: U101元件已建好,但元件框的拐角处不知是否正确,请帮忙CHECK 答:元件框等可以通过修改编辑来完成。问: U102和U103元件没建完全,在自动建元件参数中有几个不明白:如:SOIC--》silk screen栏下spacing from pin与outdent from first pin对应U102和U103元件应写什么数值,还有这两个元件SILK怎么自动设置,以及SILK内有个圆圈怎么才能画得与该元件参数一致。 答:Spacing from pin指从PIN到SILK的Y方向的距离,outdent from first pin是第一PIN与SILK端点间的距离.请根据元件资料自己计算。

    标签: PCB 设计问题 集锦

    上传时间: 2014-01-03

    上传用户:Divine

  • Arduino学习笔记4_Arduino软件模拟PWM

    注:1.这篇文章断断续续写了很久,画图技术也不精,难免错漏,大家凑合看.有问题可以留言.      2.论坛排版把我的代码缩进全弄没了,大家将代码粘贴到arduino编译器,然后按ctrl+T重新格式化代码格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脉宽调制波,通过调整输出信号占空比,从而达到改 变输出平均电压的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 个8 位精度PWM 引脚,分别是3, 5, 6, 9, 10, 11 脚。我们可以使用analogWrite()控 制PWM 脚输出频率大概在500Hz 的左右的PWM 调制波。分辨率8 位即2 的8 次方等于 256 级精度。但是有时候我们会觉得6 个PWM 引脚不够用。比如我们做一个10 路灯调光, 就需要有10 个PWM 脚。Arduino Duemilanove 2009 有13 个数字输出脚,如果它们都可以 PWM 的话,就能满足条件了。于是本文介绍用软件模拟PWM。 二、Arduino 软件模拟PWM Arduino PWM 调压原理:PWM 有好几种方法。而Arduino 因为电源和实现难度限制,一般 使用周期恒定,占空比变化的单极性PWM。 通过调整一个周期里面输出脚高/低电平的时间比(即是占空比)去获得给一个用电器不同 的平均功率。 如图所示,假设PWM 波形周期1ms(即1kHz),分辨率1000 级。那么需要一个信号时间 精度1ms/1000=1us 的信号源,即1MHz。所以说,PWM 的实现难点在于需要使用很高频的 信号源,才能获得快速与高精度。下面先由一个简单的PWM 程序开始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 这是一个软件PWM 控制Arduino D13 引脚的例子。只需要一块Arduino 即可测试此代码。 程序解析:由for 循环可以看出,完成一个PWM 周期,共循环255 次。 假设bright=100 时候,在第0~100 次循环中,i 等于1 到99 均小于bright,于是输出PWMPin 高电平; 然后第100 到255 次循环里面,i 等于100~255 大于bright,于是输出PWMPin 低电平。无 论输出高低电平都保持30us。 那么说,如果bright=100 的话,就有100 次循环是高电平,155 次循环是低电平。 如果忽略指令执行时间的话,这次的PWM 波形占空比为100/255,如果调整bright 的值, 就能改变接在D13 的LED 的亮度。 这里设置了每次for 循环之后,将bright 加一,并且当bright 加到255 时归0。所以,我们 看到的最终效果就是LED 慢慢变亮,到顶之后然后突然暗回去重新变亮。 这是最基本的PWM 方法,也应该是大家想的比较多的想法。 然后介绍一个简单一点的。思维风格完全不同。不过对于驱动一个LED 来说,效果与上面 的程序一样。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,这段代码少了一个For 循环。它先输出一个高电平,然后维持(bright*30)us。然 后输出一个低电平,维持时间((255-bright)*30)us。这样两次高低就能完成一个PWM 周期。 分辨率也是255。 三、多引脚PWM Arduino 本身已有PWM 引脚并且运行起来不占CPU 时间,所以软件模拟一个引脚的PWM 完全没有实用意义。我们软件模拟的价值在于:他能将任意的数字IO 口变成PWM 引脚。 当一片Arduino 要同时控制多个PWM,并且没有其他重任务的时候,就要用软件PWM 了。 多引脚PWM 有一种下面的方式: int brights[14] = {0}; //定义14个引脚的初始亮度,可以随意设置 int StartPWMPin = 0, EndPWMPin = 13; //设置D0~D13为PWM 引脚 int PWMResolution = 255; //设置PWM 占空比分辨率 void setup() { //定义所有IO 端输出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //随便定义个初始亮度,便于观察 brights[ i ] = random(0, 255); } } void loop() { //这for 循环是为14盏灯做渐亮的。每次Arduino loop()循环, //brights 自增一次。直到brights=255时候,将brights 置零重新计数。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是计数一个PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每个PWM 周期均遍历所有引脚 { if(i < brights[j])\   所以我们要更改PWM 周期的话,我们将精度(代码里面的变量:PWMResolution)降低就行,比如一般调整LED 亮度的话,我们用64 级精度就行。这样速度就是2x32x64=4ms。就不会闪了。

    标签: Arduino PWM 软件模拟

    上传时间: 2013-10-23

    上传用户:mqien