微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > C51、PIC和AVR单片机性能比较

C51、PIC和AVR单片机性能比较

时间:12-03 来源:互联网 点击:
传统51:适合菜鸟入门,容易上手,价格一般(从性价比方面说)。IDE环境推荐keil

缺点:解密容易,一般功能也有,但AD、eeprom等功能要靠扩展,增加硬件和软件负担。

PIC:pic的好处就是各个型号的兼容性强,学好了PIC16f877a,16系列的就OK了,别的型号要用的时候拿出2分钟看看数据手册就行了。12系列、16系列、18系列也是充分的向下兼容。功能全,型号多,适于选型分析,抗干扰能力强。

缺点:解密容易,单片机价格贵(从性价比方面说)。

IDE环境:推荐picc+mplab。

avr mega系列:价格便宜(从性价比方面说),硬件结构适合C语言编程,功能齐全,不容易解密。抗干扰能力强。型号之间兼容性一般。应该说是比较满意的片子了。

缺点:功能寄存器多,不适合初学者——通过个人努力此缺点就不是缺点了。

推荐CVAVR+studio。其实icc 、gcc也不错,大家自己斟酌。

stc 51系列:价格最便宜(从性价比方面说),功能多,抗干扰能力最强,eeprom大,串口编程很方便(无论是对于初学者还是产品开发调试),出厂时程序引导区就已经加密,并且stc解密的市面价格在1.5w到2.5w之间,可见解密难度大,在一定程度上保护了单片机工程师的利益和产品开发商的利益。生产时就已经考虑到与传统51的兼容问题,兼容做的很好,又增加了许多功能,软复位功能我比较喜欢。

缺点:资料就是宏晶网上的资料,资料少,不适合初学者——我指学习它自己增加的功能。

IDE:keil。

头文件:宏晶网站上有,或者用at89x52.h,新的寄存器自己定义一下就行或者自己写一个头文件(推荐)。

---------------------------------------------------------------------------------------------------------------------------------------------

八位单片机由于内部构造简单,体积小,成本低廉,在一些较简单的控制器中应用很广。即便到了本世纪,在单片机应用中,仍占有相当的份额。由于八位单片机种类繁多,本文仅将常用的几种在性能上作一个简单的比较,供读者在使用时作参考。

1.51系列

应用最广泛的八位单片机首推Intel的51系列,由于产品硬件结构合理,指令系统规范,加之生产历史“悠久”,有先入为主的优势。世界有许多著名的芯片公司都购买了51芯片的核心专利技术,并在其基础上进行性能上的扩充,使得芯片得到进一步的完善,形成了一个庞大的体系,直到现在仍在不断翻新,把单片机世界炒得沸沸扬扬。有人推测,51芯片可能最终形成事实上的标准MCU芯片。

51系列优点之一是它从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,或布尔处理器。它的处理对象不是字或字节而是位。它不光能对片内某些特殊功能寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,使用起来得心应手。虽然其他种类的单片机也具有位处理功能,但能进行位逻辑运算的实属少见。51系列在片内RAM区间还特别开辟了一个双重功能的地址区间,十六个字节,单元地址20H~2FH,它既可作字节处理,也可作位处理(作位处理时,合128个位,相应位地址为00H~7FH),使用极为灵活。这一功能无疑给使用者提供了极大的方便,因为一个较复杂的程序在运行过程中会遇到很多分支,因而需建立很多标志位,在运行过程中,需要对有关的标志位进行置位、清零或检测,以确定程序的运行方向。而实施这一处理(包括前面所有的位功能),只需用一条位操作指令即可。

例1:如对21H的第0位(相应位地址为08H)置位,只需用一条位指令,
   SETB08H
  对周围的其他位不会产生影响。

有的单片机并不能直接对RAM单元中的位进行操作,如AVR系列单片机中,若想对RAM中的某位置位时,必须通过状态寄存器SREG的T位进行中转。

例2:如对RAM中的R0寄存器的第4位置位,则
  BSET6 ;状态寄存器T置位
  BLD R0, 4 ;将T位复制到R0的第4位
  显然,后者比前者要复杂。

51系列的另一个优点是乘法和除法指令,这给编程也带来了便利。八位除以八位的除法指令,商为八位,精度嫌不够,用得不多。而八位乘八位的乘法指令,其积为十六位,精度还是能满足要求的,用的较多。作乘法时,只需一条指令就行了,即 MULAB(两个乘数分别在累加器A和寄存器B中。积的低位字节在累加器A中,高位字节在寄存器B中)。很多的八位单片机都不具备乘法功能,作乘法时还得编上一段子程序调用,十分不便。

在51系列中,还有一条二进制-十进制调整指令 DA,能将二进制变为BCD码,这对于十进制的计量十分方便。而在其他的单片

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top