我觉得楼主的**太过感性了

[复制链接]
 楼主| mixer 发表于 2008-7-5 13:23 | 显示全部楼层 |阅读模式
<br />论PIC和MCS5<br /><br />先谈硬件:<br />&nbsp;&nbsp;&nbsp;&nbsp;对于PIC,它的优点有诸如抗干扰性能好,双向I/O口驱动电流大等优点,甚至内部有上电复位电路,上电延时电路,内建RC振荡器,看门狗定时器,A/D&nbsp;变换电路,功耗低等。硬件上吸引人的地方确实比较多,而且正是由于这些点点滴滴使得它的抗干扰性能比51好,这好像是公认的。当然它也有一个致命的弱点--不能外扩程序存储器和数据存储器,对于程序比较大而且是低端的产品来说是致命的!让人不得不转而投入51的怀抱。更何况PIC就微芯这一家公司,而拥有&nbsp;51内核的单片机遍地都是,让人在价格和供货时间上多了不少选择。<br /><br />再谈谈软件编程:<br />&nbsp;&nbsp;&nbsp;&nbsp;一般的教科书谈到PIC好像总忘不了说它的程序代码是如何的小,速度又是如何的快。速度快,对于单条指令同样频率的晶振来说,PIC当然是比51快得多,&nbsp;PIC毕竟是RISC,既然指令总线和数据总线分离,速度当然快,但我们往往忽视了一点:我们是比较单条指令,而不是以实现同样一个功能所需的时间作为判断的标准!!就像CISC一样,它的一条指令可以顶RISC好几条指令,51和PIC也存在类似的情况。对于PIC来说,实现一个基本的功能需要好几条指令,而51往往只需要一两条就做到了。如果以这样的标准来比较的话,PIC比51并不快多少,更何况还有如下的情况存在呢:<br />&nbsp;&nbsp;&nbsp;&nbsp;1)、PIC的软件编程,不是我故意贬它,确实是挺麻烦,一不小心就要犯错。这恐怕要归结于PIC的分页思想,不但数据空间要分页,程序空间还得分页,而且不同型号的PIC还不一样!!要访问一个寄存器还得考虑考虑它是在哪个BANK,你说累不累!因此编起程序还时不时要去查看它的编程手册,不然出了错都不知错在哪里。<br />&nbsp;&nbsp;&nbsp;&nbsp;2)、中断向量地址只有0004H这一个,因此发生了中断还得去判断是哪一个中断,然后再跳到相应的处理子程序。如此等等虽然是**毛蒜皮的事情,但用惯了51的方便简明,总觉得不是那么爽。<br />&nbsp;&nbsp;&nbsp;&nbsp;3)、说到软件编程,不能不提到C。想当初用单片机时到处都是用汇编在开发,也有高级一点的就用PLM(限于51/96),不像现在很多人都在用C开发。&nbsp;51的好处就是有几家做得很好的C编译器,像TASKING,KEIL之流。大家知道现在开发产品,软件编程所占的比重越来越大,因此有一个好的开发环境可以大大提高编程的效率,使产品尽早上市。而PIC在这一点上就没有51做得好!再加上由于2)的存在给使用者设置了障碍,无疑使编程效率打了折扣。
yewuyi 发表于 2008-7-5 13:41 | 显示全部楼层

表什么态?

与众不同,出人意料一直都是MCP的策略。<br /><br />PIC和51都一样了,那根本不叫PIC……<br /><br /><br />PIC好不好,只有深入的用过了之后,你才有体会,旁人说的都顶个屁……<br /><br /><br />51那么好,也不至于PIC一出来就把它打得落花流水,即使后来AT的AVR什么,都或多或少的借鉴了PIC很多特点……
machunshui 发表于 2008-7-5 14:45 | 显示全部楼层

居然还有人谈51的外扩存储器?????

居然还有人谈51的外扩存储器?????<br /><br />程序多大????<br /><br />扩存储器不要钱啊?<br /><br />板子面积扩大不要钱啊?
machunshui 发表于 2008-7-5 14:48 | 显示全部楼层

外扩存储器

外扩存储器,无论是画电路图还是画线路板,看着就烦!
 楼主| mixer 发表于 2008-7-5 15:54 | 显示全部楼层

哇,消消火,来罐王老吉吧。

<br /><br />不过人家说得也不是没有道理吧,比如比较复杂的应用场合,程序体自然会很大,而且工业测控都必须要校正,校正值如果用数据表的方式的话,数据量会很大的。
yewuyi 发表于 2008-7-5 17:23 | 显示全部楼层

校正值如果用数据表的方式的话,数据量会很大的

难道你不能外挂一个FLASH存储体做数据表格存放吗?<br /><br />一个4M容量的SPI或者IIC接口的FLASH也没多少钱,总比扩展ROM方便和便宜把?<br /><br /><br />比较复杂的应用场合,程序体自然会很大!?<br /><br />多复杂的应用场合啊?看看18系列的,几百K容量的ROM芯片也是有的啊。<br /><br />科技的发展是越来越向单芯片方案走,这是可靠性、价格、体积等各种因素都期望的结果,过去那种挂一大堆芯片的方案只会越来越少……<br /><br /><br />至于给俺来罐王老吉,呵呵,你快递送来,我会笑纳的……
ggh0522 发表于 2008-7-5 19:52 | 显示全部楼层

我觉得楼主的**太过感性了

<br />我是个PIC的初学者(以前学的51),对PIC了解不多。但我觉得楼主的文章太过感性了。不要因为个人的好恶而说别人不好。如果PIC真的像楼主说的使用起来那么复杂,那样不方便、让人讨厌的话,也不会有现在的市场。任何事物都有它存在的理由。<br />&nbsp;
hotpower 发表于 2008-7-5 19:57 | 显示全部楼层

pic24系列已脱胎换骨~~~

  
 楼主| mixer 发表于 2008-7-5 20:23 | 显示全部楼层

我还发现个问题

microchip网站上,MCU都是几个美刀,在国内市场上价格都翻了好几倍。<br />我一直很好奇,好像大多数人都对相差十几块的MCU特别敏感,莫非大家开发的都是几百块钱以内的项目?<br /><br />
yewuyi 发表于 2008-7-6 10:03 | 显示全部楼层

只要是大批量生产的产品,

对成本的严格控制就是不可避免的
bob.xue 发表于 2008-7-6 14:28 | 显示全部楼层

通用单片机和专用单片机还是有大区别的

不能单单从技术员角度去想啊。&nbsp;单片机之所以有如此强大的生命力,那还不是得益于一个专字。&nbsp;具针对性的产品,目标市场都很明确。<br /><br />至于内部资源问题,就不是一般人可以评论的。比如Bank机制可能跟功耗有关,也可能跟芯片面积有关。<br /><br />在合适的场合用合适的单片机,这也单片机工程师努力的方向。<br /><br />
su_mj000 发表于 2008-7-6 23:52 | 显示全部楼层

不知LZ对“痛扁“PIC的帖子什么态度

也不知这与“给新手鼓气”有什么联系。<br /><br />任何产品,只要它有市场,就说明它有某种优势(价格、性能、易用、供货、支持、...)。从另一方面而言,PIC没有独霸市场,也说明它(以及厂方)有某些缺点或弱点。Microchip近年来发展很快,这是不争的事实。它意味着用户对它的认可和接受。<br /><br />Microchip对发放样品做得很好、很大方,我手头有一大把从高到底的样品。刚做了一个PICkit2,用的就是样品。<br />
machunshui 发表于 2008-7-7 09:29 | 显示全部楼层

PIC相当快

&quot;对于PIC来说,实现一个基本的功能需要好几条指令,而51往往只需要一两条就做到了&quot;<br /><br />不少51的一条指令的执行时间比pic实现相同功能的几条指令都要你长不少.<br /><br />51是变长指令,往往实现复杂功能的一条指令意味着比较长的指令周期.<br /><br />不要说对于普通51,即使对于C8051F这样的用高速度流水线的所谓单周期51,也是如此.<br /><br /><br />CISC的一条指令只是带来汇编书写上的方便,决不意味着具有和常用短指令的相同的执行时间.<br /><br /><br />PIC的指令,好像除了两条指令为双周期外,其他全是单周期,都是最快的但周期指令.<br /><br />所以PIC,看着指令多一点(无非就是运算的要W寄存器参与),其实执行速度是相当的快.
machunshui 发表于 2008-7-7 09:53 | 显示全部楼层

PIC指令很好

PIC的ROM分页,RAM分段,对于用C来说,根本就没啥影响.<br /><br />对于用汇编来说,更加不算一回事.<br /><br />用汇编本身就是熟知代码的定位,而且一般程序不会太大.<br /><br />除了注意一下是否跨页的问题,其他有什么呢?<br /><br />而且对于RAM分页导致的寄存器选择问题,maplab汇编器还提供了banksel伪指令,很方便,基本上没有影响.<br /><br />而中级别pic只有区区35条指令,比51一百多条好多了.<br /><br />可以说pic汇编适合喜欢动脑筋不喜欢**的人,分页,分段对喜欢动脑筋的人不算个啥,35条指令对于不喜欢**的人真是一件再好不过的事情了.<br /><br />51适合不喜欢动脑筋喜欢**的人,100多条指令不算啥,分页,分断居然是负担.
machunshui 发表于 2008-7-7 09:57 | 显示全部楼层

以51的习惯为基准,那还有什么比较公平性呢

&quot;中断向量地址只有0004H这一个,因此发生了中断还得去判断是哪一个中断,然后再跳到相应的处理子程序。如此等等虽然是**毛蒜皮的事情,但用惯了51的方便简明,总觉得不是那么爽。&quot;<br /><br />以51的习惯为基准,那还有什么比较公平性呢????????????<br /><br />无非就是多些一个if,else语句而已!<br />多3,4个指令周期而已.
machunshui 发表于 2008-7-7 10:01 | 显示全部楼层

孤陋寡闻

&quot;说到软件编程,不能不提到C。想当初用单片机时到处都是用汇编在开发,也有高级一点的就用PLM(限于51/96),不像现在很多人都在用C开发。&nbsp;51的好处就是有几家做得很好的C编译器,像TASKING,KEIL之流。大家知道现在开发产品,软件编程所占的比重越来越大,因此有一个好的开发环境可以大大提高编程的效率,使产品尽早上市。而PIC在这一点上就没有51做得好!再加上由于2)的存在给使用者设置了障碍,无疑使编程效率打了折扣。&quot;<br /><br />孤陋寡闻!<br /><br />pic的C编译器多了去了.<br /><br />picc,ccs,MCC...<br /><br />而且MCC正版价格只有不到500元,几乎等同于免费.<br /><br />这是51能比得吗???????????
machunshui 发表于 2008-7-7 10:08 | 显示全部楼层

不要把PIC16的特性当成PIC系列单片机的特性

不要把PIC16的特性当成PIC系列单片机的特性!<br /><br />楼主说得都是早期的PIC16系列以下的特性.<br /><br />pic18已经取消了ROM分段,RAM虽然分页,但是所有的特殊功能寄存器根本不需要换页就能直接使用.<br /><br />PIC24更是脱胎换骨,在各种16位机及其以下性能绝对处于领先.
machunshui 发表于 2008-7-7 10:19 | 显示全部楼层

pic的低功耗相当棒

pic的低功耗相当棒.<br /><br />虽然和430比尚有差距,但是比其他的单片机好多了,<br /><br />即使和430比,睡眠状态下的电流之低也是毫不逊色.<br /><br />但是价格,比430好的多了去了.
yewuyi 发表于 2008-7-7 10:20 | 显示全部楼层

PICC16F88X/91X也是不错的

16F917很好
machunshui 发表于 2008-7-7 10:25 | 显示全部楼层

pic产品线很长,非常好

pic产品线很长,非常好.<br /><br />可以说搞定了PIC,其产品线几乎满足了所有的单片机的需求,甚至可以代替部分低端DSP,例如2407之类.<br /><br /><br />pic32---------cortex&nbsp;m3,arm7<br /><br />pic24---------各种16位单片机<br /><br />pic18--------中高档性能8位单片机<br /><br />pic16---------中档8位单片机<br /><br />pic16以下--------低档单片机
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

13

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

5

主题

13

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部