最初由 bg4kc 发表
许多年前pic刚出来的时候,确实作成了很多以前用51作不到的工作,指令时间短呀,直接处理视频同步都可以。后来就发现它的局限性了,稍微复杂点的工作就要加钱买高档的型号。有了avr以后,pic就放弃了,一个mega8就有1k的eeprom,1k的ram,很好的内部复位电路,很准确的内置振荡器,价钱才15块。 就是冲着这些存储器都值得用。不用说速度了。
价格不便宜不说,如开发很小的程序量感觉不到什么,
如较复杂,pic16的寻址很不方便,ram分体,且ram不是线性排列,
不能有较好的数据结构,rom分页,直接寻址是128字节,间接寻址256字节,
特别是占用ram多时,ram体的切换很麻烦,少不小心就会出错,
nec7四位75核是ram分体,而rom不分页,直接间接ram寻址都是256字节,
共用体指针,而pic是间址和直接寻址各用各的体指针,pic rom也分页,
这对后期中间增加代码很不方便,pic基于的w立即数和ram之间的数据传送
很差劲,加减指令无带进位位的指令,四位机常用的跳过指令等,
都会大大加大程序量,其速度可想而知,机器周期四分之一时钟周期,
一点没有现代risc的特点。没push和pop,中断要人为保存w,8级硬固定堆栈,
不利于复杂程序的结构化,在nec四位中曾用20多级歉套,还为中断保留了几级。中断共用一向量,省电只有sleep一终方式,pic的查表在也不很方便,在地址ff过渡要小心做,不利于rom的规划,还有很多感觉不顺的地方如不用直观英文缩落或惯例来命名指令和寄存器如rp0,rp1和w等