打印

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

[复制链接]
5718|28
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mixer|  楼主 | 2008-7-5 13:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

论PIC和MCS5

先谈硬件:
    对于PIC,它的优点有诸如抗干扰性能好,双向I/O口驱动电流大等优点,甚至内部有上电复位电路,上电延时电路,内建RC振荡器,看门狗定时器,A/D 变换电路,功耗低等。硬件上吸引人的地方确实比较多,而且正是由于这些点点滴滴使得它的抗干扰性能比51好,这好像是公认的。当然它也有一个致命的弱点--不能外扩程序存储器和数据存储器,对于程序比较大而且是低端的产品来说是致命的!让人不得不转而投入51的怀抱。更何况PIC就微芯这一家公司,而拥有 51内核的单片机遍地都是,让人在价格和供货时间上多了不少选择。

再谈谈软件编程:
    一般的教科书谈到PIC好像总忘不了说它的程序代码是如何的小,速度又是如何的快。速度快,对于单条指令同样频率的晶振来说,PIC当然是比51快得多, PIC毕竟是RISC,既然指令总线和数据总线分离,速度当然快,但我们往往忽视了一点:我们是比较单条指令,而不是以实现同样一个功能所需的时间作为判断的标准!!就像CISC一样,它的一条指令可以顶RISC好几条指令,51和PIC也存在类似的情况。对于PIC来说,实现一个基本的功能需要好几条指令,而51往往只需要一两条就做到了。如果以这样的标准来比较的话,PIC比51并不快多少,更何况还有如下的情况存在呢:
    1)、PIC的软件编程,不是我故意贬它,确实是挺麻烦,一不小心就要犯错。这恐怕要归结于PIC的分页思想,不但数据空间要分页,程序空间还得分页,而且不同型号的PIC还不一样!!要访问一个寄存器还得考虑考虑它是在哪个BANK,你说累不累!因此编起程序还时不时要去查看它的编程手册,不然出了错都不知错在哪里。
    2)、中断向量地址只有0004H这一个,因此发生了中断还得去判断是哪一个中断,然后再跳到相应的处理子程序。如此等等虽然是**毛蒜皮的事情,但用惯了51的方便简明,总觉得不是那么爽。
    3)、说到软件编程,不能不提到C。想当初用单片机时到处都是用汇编在开发,也有高级一点的就用PLM(限于51/96),不像现在很多人都在用C开发。 51的好处就是有几家做得很好的C编译器,像TASKING,KEIL之流。大家知道现在开发产品,软件编程所占的比重越来越大,因此有一个好的开发环境可以大大提高编程的效率,使产品尽早上市。而PIC在这一点上就没有51做得好!再加上由于2)的存在给使用者设置了障碍,无疑使编程效率打了折扣。
沙发
yewuyi| | 2008-7-5 13:41 | 只看该作者

表什么态?

与众不同,出人意料一直都是MCP的策略。

PIC和51都一样了,那根本不叫PIC……


PIC好不好,只有深入的用过了之后,你才有体会,旁人说的都顶个屁……


51那么好,也不至于PIC一出来就把它打得落花流水,即使后来AT的AVR什么,都或多或少的借鉴了PIC很多特点……

使用特权

评论回复
板凳
machunshui| | 2008-7-5 14:45 | 只看该作者

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

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

程序多大????

扩存储器不要钱啊?

板子面积扩大不要钱啊?

使用特权

评论回复
地板
machunshui| | 2008-7-5 14:48 | 只看该作者

外扩存储器

外扩存储器,无论是画电路图还是画线路板,看着就烦!

使用特权

评论回复
5
mixer|  楼主 | 2008-7-5 15:54 | 只看该作者

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



不过人家说得也不是没有道理吧,比如比较复杂的应用场合,程序体自然会很大,而且工业测控都必须要校正,校正值如果用数据表的方式的话,数据量会很大的。

使用特权

评论回复
6
yewuyi| | 2008-7-5 17:23 | 只看该作者

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

难道你不能外挂一个FLASH存储体做数据表格存放吗?

一个4M容量的SPI或者IIC接口的FLASH也没多少钱,总比扩展ROM方便和便宜把?


比较复杂的应用场合,程序体自然会很大!?

多复杂的应用场合啊?看看18系列的,几百K容量的ROM芯片也是有的啊。

科技的发展是越来越向单芯片方案走,这是可靠性、价格、体积等各种因素都期望的结果,过去那种挂一大堆芯片的方案只会越来越少……


至于给俺来罐王老吉,呵呵,你快递送来,我会笑纳的……

使用特权

评论回复
7
ggh0522| | 2008-7-5 19:52 | 只看该作者

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


我是个PIC的初学者(以前学的51),对PIC了解不多。但我觉得楼主的文章太过感性了。不要因为个人的好恶而说别人不好。如果PIC真的像楼主说的使用起来那么复杂,那样不方便、让人讨厌的话,也不会有现在的市场。任何事物都有它存在的理由。
 

使用特权

评论回复
8
hotpower| | 2008-7-5 19:57 | 只看该作者

pic24系列已脱胎换骨~~~

使用特权

评论回复
9
mixer|  楼主 | 2008-7-5 20:23 | 只看该作者

我还发现个问题

microchip网站上,MCU都是几个美刀,在国内市场上价格都翻了好几倍。
我一直很好奇,好像大多数人都对相差十几块的MCU特别敏感,莫非大家开发的都是几百块钱以内的项目?

使用特权

评论回复
10
yewuyi| | 2008-7-6 10:03 | 只看该作者

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

对成本的严格控制就是不可避免的

使用特权

评论回复
11
bob.xue| | 2008-7-6 14:28 | 只看该作者

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

不能单单从技术员角度去想啊。 单片机之所以有如此强大的生命力,那还不是得益于一个专字。 具针对性的产品,目标市场都很明确。

至于内部资源问题,就不是一般人可以评论的。比如Bank机制可能跟功耗有关,也可能跟芯片面积有关。

在合适的场合用合适的单片机,这也单片机工程师努力的方向。

使用特权

评论回复
12
su_mj000| | 2008-7-6 23:52 | 只看该作者

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

也不知这与“给新手鼓气”有什么联系。

任何产品,只要它有市场,就说明它有某种优势(价格、性能、易用、供货、支持、...)。从另一方面而言,PIC没有独霸市场,也说明它(以及厂方)有某些缺点或弱点。Microchip近年来发展很快,这是不争的事实。它意味着用户对它的认可和接受。

Microchip对发放样品做得很好、很大方,我手头有一大把从高到底的样品。刚做了一个PICkit2,用的就是样品。

使用特权

评论回复
13
machunshui| | 2008-7-7 09:29 | 只看该作者

PIC相当快

"对于PIC来说,实现一个基本的功能需要好几条指令,而51往往只需要一两条就做到了"

不少51的一条指令的执行时间比pic实现相同功能的几条指令都要你长不少.

51是变长指令,往往实现复杂功能的一条指令意味着比较长的指令周期.

不要说对于普通51,即使对于C8051F这样的用高速度流水线的所谓单周期51,也是如此.


CISC的一条指令只是带来汇编书写上的方便,决不意味着具有和常用短指令的相同的执行时间.


PIC的指令,好像除了两条指令为双周期外,其他全是单周期,都是最快的但周期指令.

所以PIC,看着指令多一点(无非就是运算的要W寄存器参与),其实执行速度是相当的快.

使用特权

评论回复
14
machunshui| | 2008-7-7 09:53 | 只看该作者

PIC指令很好

PIC的ROM分页,RAM分段,对于用C来说,根本就没啥影响.

对于用汇编来说,更加不算一回事.

用汇编本身就是熟知代码的定位,而且一般程序不会太大.

除了注意一下是否跨页的问题,其他有什么呢?

而且对于RAM分页导致的寄存器选择问题,maplab汇编器还提供了banksel伪指令,很方便,基本上没有影响.

而中级别pic只有区区35条指令,比51一百多条好多了.

可以说pic汇编适合喜欢动脑筋不喜欢**的人,分页,分段对喜欢动脑筋的人不算个啥,35条指令对于不喜欢**的人真是一件再好不过的事情了.

51适合不喜欢动脑筋喜欢**的人,100多条指令不算啥,分页,分断居然是负担.

使用特权

评论回复
15
machunshui| | 2008-7-7 09:57 | 只看该作者

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

"中断向量地址只有0004H这一个,因此发生了中断还得去判断是哪一个中断,然后再跳到相应的处理子程序。如此等等虽然是**毛蒜皮的事情,但用惯了51的方便简明,总觉得不是那么爽。"

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

无非就是多些一个if,else语句而已!
多3,4个指令周期而已.

使用特权

评论回复
16
machunshui| | 2008-7-7 10:01 | 只看该作者

孤陋寡闻

"说到软件编程,不能不提到C。想当初用单片机时到处都是用汇编在开发,也有高级一点的就用PLM(限于51/96),不像现在很多人都在用C开发。 51的好处就是有几家做得很好的C编译器,像TASKING,KEIL之流。大家知道现在开发产品,软件编程所占的比重越来越大,因此有一个好的开发环境可以大大提高编程的效率,使产品尽早上市。而PIC在这一点上就没有51做得好!再加上由于2)的存在给使用者设置了障碍,无疑使编程效率打了折扣。"

孤陋寡闻!

pic的C编译器多了去了.

picc,ccs,MCC...

而且MCC正版价格只有不到500元,几乎等同于免费.

这是51能比得吗???????????

使用特权

评论回复
17
machunshui| | 2008-7-7 10:08 | 只看该作者

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

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

楼主说得都是早期的PIC16系列以下的特性.

pic18已经取消了ROM分段,RAM虽然分页,但是所有的特殊功能寄存器根本不需要换页就能直接使用.

PIC24更是脱胎换骨,在各种16位机及其以下性能绝对处于领先.

使用特权

评论回复
18
machunshui| | 2008-7-7 10:19 | 只看该作者

pic的低功耗相当棒

pic的低功耗相当棒.

虽然和430比尚有差距,但是比其他的单片机好多了,

即使和430比,睡眠状态下的电流之低也是毫不逊色.

但是价格,比430好的多了去了.

使用特权

评论回复
19
yewuyi| | 2008-7-7 10:20 | 只看该作者

PICC16F88X/91X也是不错的

16F917很好

使用特权

评论回复
20
machunshui| | 2008-7-7 10:25 | 只看该作者

pic产品线很长,非常好

pic产品线很长,非常好.

可以说搞定了PIC,其产品线几乎满足了所有的单片机的需求,甚至可以代替部分低端DSP,例如2407之类.


pic32---------cortex m3,arm7

pic24---------各种16位单片机

pic18--------中高档性能8位单片机

pic16---------中档8位单片机

pic16以下--------低档单片机

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

13

帖子

0

粉丝