AVR、51 系列、PIC 单片机的对比
时间:10-02
整理:3721RD
点击:
AVR、51 系列、PIC 单片机的对比
1、51 系列单片机的优缺点分析。
51 系列是应用最广泛的单片机, 由于产品硬件结构合理, 指令系统规范, 加之生产历 史
“悠久” ,有先入为主的优势。世界有许多著名的芯片公司都购买了 51 芯片的核心专利技
术, 并在其基础上进行性能上的扩充, 使得芯片得到进一步的完善, 形成了一个庞大的体系,
直到现在仍在不断翻新,把单片机世界炒得沸沸扬扬。
51 系列优点之一是它从内部的硬件到软件有一套完整的按位操作系统, 称作位处理器,
或布尔处理器。它的处理对象不是字或字节而是位。它不光能对片内某些特殊功能寄存器的
某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,
使用起来得心应手。虽然其他种类的单片机也具有位处理功能,但能进行位逻辑运算的实属
少见。51 系列在片内 RAM 区间还特别开辟了一个双重功能的地址区间,十六个字节,单
元 地址20H~2FH,它既可作字节处理,也可作位处理(作位处理时,合 128 个位,相应位
地 址为OOH~7FH),使用极为灵活。这一功能无疑给使用者提供了极大的方便,因为一个
较复杂的程序在运行过程中会遇到很多分支,因而需建立很多标志位,在运行过程中,需要
对有关的标志位进行置位、清零或检测,以确定程序的运行方向。而实施这一处理(包括前
面 所有的位功能),只需用一条位操作指令即可。
51 系列的另一个优点是乘法和除法指令,这给编程也带来了便利。八位除以八位的除
法指令,商为八位,精度嫌不够,用得不多。而八位乘八位的乘法指令,其积为十六位,精
度还是能满足要求的,用的较多。作乘法时,只需一条指令即可。很多的八位单片机都不具
备乘法功能,作乘法时还得编上一段子程序调用,十分不便。
51 系列的 I/O 脚的设置和使用非常简单,但高电平时无输出能力,可谓有利有弊。故
其他 系列的单片机(如 PIC 系列、AVR 系列等)对 I/O 口进行了改进,增加了方向寄存器以
确定输 入或输出,但使用也变得复杂。
同时, 原 51 系列也有许多值得改进之处, 如运行速度过慢等。 当晶振频率为 12MHz 时,
机器周期达1μs, 显然适应不了现代高速运行的需要。 华邦公司(Winbond)生产的产品型 号
为 W77 系列和 W78 系列,W78 系列与 AT89C 系列完全兼容。W77 系列为增强型,对原
有的8051 的时序作了改进,每个机器周期从12 个时钟周期改为4 个周期,使速度提高了
三 倍,同时,晶振频率最高可达40MHz。W77 系列还增加了看门狗WatchDog、两组 uART、
两组DVTR 数据指针、ISP 等多种功能。
2、PIC 单片机的优缺点分析。
PIC 单片机CPU 采用RISC 结构, 分别有33、 35、 58 条指令(视单片机的级别而定), 属
精简指令集。而 51 系列有 111 条指令,AVR 单片机有 118 条指令,都比前者复杂。采用
Haryard 双总线结构,运行速度快(指令周期约160~200nS),它能使程序存储器的访问和数
据存储器的访问并行处理,这种指令流水线结构,在一个周期内完成两部分工作,一是执行
指令, 二是从程序存储器取出下一条指令, 这样总的看来每条指令只需一个周期(个别除外),
这也是高效率运行的原因之一。此外,它还具有低工作电压、低功耗、驱动能力强等特点。
PIC 系列单片机的I/O 口是双向的, 其输出电路为 CMOS 互补推挽输出电路。 I/O 脚
增加了用于设置输入或输出状态的方向寄存器,从而解决了 51 系列 I/O 脚为高电平时同
为输入和输出的状态。当置位 1 时为输入状态,且不管该脚呈高电平或低电平,对外均呈
高 阻状态;置位0 时为输出状态,不管该脚为何种电平,均呈低阻状态,有相当的驱动能
力, 低电平吸人电流达25mA,高电平输出电流可达20mA。相对于51 系列而言,这是一
个很大 的优点,它可以直接驱动数码管显示且外电路简单。它的 A/D 为 10 位,能满足
精度要求。
具有在线调试及编程功能。
该系列单片机的专用寄存器)并不像 51 系列那样都集中在一个固定的地址区间内(80~
FFH),而是分散在四个地址区间内,即存储体0(Bank0:00-7FH)、存储体1(Bankl:80-FFH)、
存储体2(Bank2: 100-17FH)、 存储体3(Bank3: 180-1FFH)。 只有5 个专用寄存器PCL、 STATUS、
FSR、PCLATH、INTCON 在4 个存储体内同时出现。在编程过程中,少不了要与专用寄存 器
打交道,得反复地选择对应的存储体,也即对状态寄存器 STATUS 的第 6 位(RPl)和第 5 位
(RPO)置位或清零。这多少给编程带来了一些麻烦。对于上述的单片机,它的位指令操作 通
常限制在存储体 0 区间(00~7FH)。 数据的传送和逻辑运算基本上都得通过工作寄存器 w(相
当于 5l 系列的累加器 A)来进行,而 51 系列的还可以通过寄存器相互之间直接传送(如: MOV30H,20H;将寄存器 20H 的内容直接传送至寄存器 30H 中),因而 PIC 单片机的瓶颈
现象比51 系列还要严重,这在编程中很有感受。
综合来说PIC 单片机应该说有三个主要特点:
(1)总线结构:MCS-51 单片机的总线结构是冯-诺依曼型,计算机在同一个存储空间取指
令和数据,两者不能同时进行;而 PIC 单片机的总线结构是哈佛结构,指令和数据空间是完全
分开的,一个用于指令,一个用于数据,由于可以对程序和数据同时进行访问,所以提高了数据
吞吐率。 正因为在 PIC 单片机中采用了哈佛双总线结构, 所以与常见的微控制器不同的一 点
是:程序和数据总线可以采用不同的宽度。数据总线都是 8 位的,但指令总线位数分别位
12、14、16 位。
(2)流水线结构:MCS-51 单片机的取指和执行采用单指令流水线结构,即取一条指令,执行
完后再取下一条指令;而 PIC 的取指和执行采用双指令流水线结构,当一条指令被执行时,允
许下一条指令同时被取出,这样就实现了单周期指令。
(3)寄存器组:PIC 单片机的所有寄存器,包括 I/O 口,定时器和程序计数器等都采用 RAM
结构形式,而且都只需要一个指令周期就可以完成访问和操作;而 MCS-51 单片机需要两个或
两个以上的周期才能改变寄存器的内容。
3、AVR 单片优缺点分析。
AVR 单片机其显著的特点为高性能、 高速度、 低功耗。 它取消机器周期, 以时钟周期 为
指令周期, 实行流水作业。 AVR 单片机指令以字为单位, 且大部分指令都为单周期指令。 而
单周期既可执行本指令功能, 同时完成下一条指令的读取。 通用寄存器一共 32 个 (RO-R31),
前 16 个寄存器(R0~R15)都不能直接与立即数打交道,因而通用性有所下降。 而在5l 系列
中,它所有的通用寄存器(地址00-7FH)均可以直接与立即数打交道,显然要优 于前者。
AVR 系列没有类似累加器A 的结构, 它主要是通过R16~R31 寄存器来实现A 的功能。
在 AVR 中,没有像5l 系列的数据指针 DPTR,而是由X(由 R26、R27 组成)、Y(由R28、. R29
组成)、 z(由R30、 R31 组成)三个16 位的寄存器来完成数据指针的功能(相当于有三组 DPTR),
而且还能作后增量或先减量等的运行。
在 51 系列中,所有的逻辑运算都必须在 A 中进行;而 AVR 却可以在任两个寄存器之
间进行,省去了在 A 中的来回折腾,这些都比 51 系列强。
AVR 的专用寄存器集中在$00~$3F 地址区间,无需像PIC 那样得先进行选存储体的
过程,使用起来比PIC 方便。AVR 的片内 RAM 的地址区间为$0060~$00DF(AT90S23131)
和$0060~$025F(AT90S85l5、 AT90S8535), 它们占用的是数据空间的地址, 这些片内RAM 仅
仅是用来存储数据的, 通常不具备通用寄存器的功能。 当程序复杂时, 通用寄存器R0 一 R31
就显得不够用;而51 系列的通用寄存器多达128 个(为AVR 的4 倍),编程时就不会有 这
种感觉。
AVR 的I/O 脚类似PIC,它也有用来控制输入或输出的方向寄存器,在输出状态下,高
电平输出的电流在10mA 左右,低电平吸入电流20mA。虽不如PIC,但比 51 系列强。 综
合来看,AVR 与 51、PIC 单片机相比具有一系列的优点,用通俗的说法主要体现在 这几个方面:
(1)、在相同的系统时钟下 AVR 运行速度最快;
(2)、所有 AVR 单片机的 FLASH、EEPROM 蓄存器都可以反复烧写、支持在 ISP 在线
编程(烧写),入门费用非常少;
(3)、片内集成多种频率的 RC 振荡器、上电自动复位、看门狗、启动延时等功能,使
得电路设计变得非常简单;
(4)、每个 IO 口作输出时都可以输出很强的高、低电平,作输入时 IO 口可以是高阻
抗或者带上拉电阻;
(5)、 片内具有丰富实用的资源, 如AD 模数器、 DA 数模器, 丰富的中断源、 SPI、 USART、
TWI 通信口、PWM 等等;
(6)、片内采用了先进的数据加密技术,大大的提高了破解的难度;
(7)、片内FLASH 空间大、品种多,引脚少的有8 脚,多的有64 脚等各种封装
(8)、部分芯片的引脚兼容 51 系列,代换容易,如 ATtiny2313 兼容 AT89C2051,
ATmega8515/162 兼容AT89S51 等
四、单片机的选择。
各种单片机都有各自的优缺点,应根据需要选择。选择单片机原则如下:
1. 单片机的基本参数例如速度,程序存储器容量,I/O 引脚数量
2. 单片机的增强功能,例如看门狗,双指针,双串口,RTC(实时时钟),EEPROM,扩
展 RAM,CAN 接口,I2C 接口,SPI 接口,USB 接口。
3. Flash 和OTP(一次性可编程)相比较,最好是Flash。
4. 封装 IP(双列直插),PLCC(PLCC 有对应插座)还是贴片。DIP 封装在做实验时可
能方便一点。
5. 工作温度范围,工业级还是商业机。如果设计户外产品,必须选用工业级。
6. 功耗,比如设计并口加密狗,信号线取电只能提供几个 mA,用PIC 就是因为低功耗,
后来出了MSP430 也不错。
7. 工作电压范围。例如设计电视机遥控器,2 节干电池供电,至少应该能在 1.8-3.6V
电压范围内工作。
8. 供货渠道畅通。能申请样片,小批量购买有现货。最好像标准 51,中发里随便找个
柜台就能买到(我在北京)
9. 价格低。
10. 有服务商,像周立功公司推 Philips,双龙公司推AVR,都提供了很多有用的技术支
持,起码烧写器有地方买。
11. 烧录器价格低,如果是ICP(把单片机放在烧录器上编程)能否利用现有的烧录器,
如果是表贴封装,买一个转接座也很贵,至少得一二百元。能否 ISP(在系统编程,即把芯
片先焊到板子上再通过预留的 ISP 接口编程),一般 ISP 编程器比较便宜大约一二百元甚至
几十元。
12. 仿真器便宜。对于 FLASH 型单片机,仿真器不是必备的。但是对于OTP(一次性可
编程)型单片机,必须购买或者租用仿真器。
13. 单片机汇编语言是自己熟悉的,并且能支持 C 语言。编程环境要像keil 一样好用,
并且还是免费的。 14. 网站速度快,资料丰富。包括芯片手册,应用指南,设计方案,范例程序。最好有
中文,像Atmel 就不错。
15. 保密性能好,查一下专业解密网站上的黑名单,再发个 mail 咨询一下解密价格。
16. 抗干扰性能好。我曾经把XXC52 改为S52 后发现抗干扰性能下降,只好改回去。
17. 和其他外设芯片放在一起的综合考虑。
1、51 系列单片机的优缺点分析。
51 系列是应用最广泛的单片机, 由于产品硬件结构合理, 指令系统规范, 加之生产历 史
“悠久” ,有先入为主的优势。世界有许多著名的芯片公司都购买了 51 芯片的核心专利技
术, 并在其基础上进行性能上的扩充, 使得芯片得到进一步的完善, 形成了一个庞大的体系,
直到现在仍在不断翻新,把单片机世界炒得沸沸扬扬。
51 系列优点之一是它从内部的硬件到软件有一套完整的按位操作系统, 称作位处理器,
或布尔处理器。它的处理对象不是字或字节而是位。它不光能对片内某些特殊功能寄存器的
某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,
使用起来得心应手。虽然其他种类的单片机也具有位处理功能,但能进行位逻辑运算的实属
少见。51 系列在片内 RAM 区间还特别开辟了一个双重功能的地址区间,十六个字节,单
元 地址20H~2FH,它既可作字节处理,也可作位处理(作位处理时,合 128 个位,相应位
地 址为OOH~7FH),使用极为灵活。这一功能无疑给使用者提供了极大的方便,因为一个
较复杂的程序在运行过程中会遇到很多分支,因而需建立很多标志位,在运行过程中,需要
对有关的标志位进行置位、清零或检测,以确定程序的运行方向。而实施这一处理(包括前
面 所有的位功能),只需用一条位操作指令即可。
51 系列的另一个优点是乘法和除法指令,这给编程也带来了便利。八位除以八位的除
法指令,商为八位,精度嫌不够,用得不多。而八位乘八位的乘法指令,其积为十六位,精
度还是能满足要求的,用的较多。作乘法时,只需一条指令即可。很多的八位单片机都不具
备乘法功能,作乘法时还得编上一段子程序调用,十分不便。
51 系列的 I/O 脚的设置和使用非常简单,但高电平时无输出能力,可谓有利有弊。故
其他 系列的单片机(如 PIC 系列、AVR 系列等)对 I/O 口进行了改进,增加了方向寄存器以
确定输 入或输出,但使用也变得复杂。
同时, 原 51 系列也有许多值得改进之处, 如运行速度过慢等。 当晶振频率为 12MHz 时,
机器周期达1μs, 显然适应不了现代高速运行的需要。 华邦公司(Winbond)生产的产品型 号
为 W77 系列和 W78 系列,W78 系列与 AT89C 系列完全兼容。W77 系列为增强型,对原
有的8051 的时序作了改进,每个机器周期从12 个时钟周期改为4 个周期,使速度提高了
三 倍,同时,晶振频率最高可达40MHz。W77 系列还增加了看门狗WatchDog、两组 uART、
两组DVTR 数据指针、ISP 等多种功能。
2、PIC 单片机的优缺点分析。
PIC 单片机CPU 采用RISC 结构, 分别有33、 35、 58 条指令(视单片机的级别而定), 属
精简指令集。而 51 系列有 111 条指令,AVR 单片机有 118 条指令,都比前者复杂。采用
Haryard 双总线结构,运行速度快(指令周期约160~200nS),它能使程序存储器的访问和数
据存储器的访问并行处理,这种指令流水线结构,在一个周期内完成两部分工作,一是执行
指令, 二是从程序存储器取出下一条指令, 这样总的看来每条指令只需一个周期(个别除外),
这也是高效率运行的原因之一。此外,它还具有低工作电压、低功耗、驱动能力强等特点。
PIC 系列单片机的I/O 口是双向的, 其输出电路为 CMOS 互补推挽输出电路。 I/O 脚
增加了用于设置输入或输出状态的方向寄存器,从而解决了 51 系列 I/O 脚为高电平时同
为输入和输出的状态。当置位 1 时为输入状态,且不管该脚呈高电平或低电平,对外均呈
高 阻状态;置位0 时为输出状态,不管该脚为何种电平,均呈低阻状态,有相当的驱动能
力, 低电平吸人电流达25mA,高电平输出电流可达20mA。相对于51 系列而言,这是一
个很大 的优点,它可以直接驱动数码管显示且外电路简单。它的 A/D 为 10 位,能满足
精度要求。
具有在线调试及编程功能。
该系列单片机的专用寄存器)并不像 51 系列那样都集中在一个固定的地址区间内(80~
FFH),而是分散在四个地址区间内,即存储体0(Bank0:00-7FH)、存储体1(Bankl:80-FFH)、
存储体2(Bank2: 100-17FH)、 存储体3(Bank3: 180-1FFH)。 只有5 个专用寄存器PCL、 STATUS、
FSR、PCLATH、INTCON 在4 个存储体内同时出现。在编程过程中,少不了要与专用寄存 器
打交道,得反复地选择对应的存储体,也即对状态寄存器 STATUS 的第 6 位(RPl)和第 5 位
(RPO)置位或清零。这多少给编程带来了一些麻烦。对于上述的单片机,它的位指令操作 通
常限制在存储体 0 区间(00~7FH)。 数据的传送和逻辑运算基本上都得通过工作寄存器 w(相
当于 5l 系列的累加器 A)来进行,而 51 系列的还可以通过寄存器相互之间直接传送(如: MOV30H,20H;将寄存器 20H 的内容直接传送至寄存器 30H 中),因而 PIC 单片机的瓶颈
现象比51 系列还要严重,这在编程中很有感受。
综合来说PIC 单片机应该说有三个主要特点:
(1)总线结构:MCS-51 单片机的总线结构是冯-诺依曼型,计算机在同一个存储空间取指
令和数据,两者不能同时进行;而 PIC 单片机的总线结构是哈佛结构,指令和数据空间是完全
分开的,一个用于指令,一个用于数据,由于可以对程序和数据同时进行访问,所以提高了数据
吞吐率。 正因为在 PIC 单片机中采用了哈佛双总线结构, 所以与常见的微控制器不同的一 点
是:程序和数据总线可以采用不同的宽度。数据总线都是 8 位的,但指令总线位数分别位
12、14、16 位。
(2)流水线结构:MCS-51 单片机的取指和执行采用单指令流水线结构,即取一条指令,执行
完后再取下一条指令;而 PIC 的取指和执行采用双指令流水线结构,当一条指令被执行时,允
许下一条指令同时被取出,这样就实现了单周期指令。
(3)寄存器组:PIC 单片机的所有寄存器,包括 I/O 口,定时器和程序计数器等都采用 RAM
结构形式,而且都只需要一个指令周期就可以完成访问和操作;而 MCS-51 单片机需要两个或
两个以上的周期才能改变寄存器的内容。
3、AVR 单片优缺点分析。
AVR 单片机其显著的特点为高性能、 高速度、 低功耗。 它取消机器周期, 以时钟周期 为
指令周期, 实行流水作业。 AVR 单片机指令以字为单位, 且大部分指令都为单周期指令。 而
单周期既可执行本指令功能, 同时完成下一条指令的读取。 通用寄存器一共 32 个 (RO-R31),
前 16 个寄存器(R0~R15)都不能直接与立即数打交道,因而通用性有所下降。 而在5l 系列
中,它所有的通用寄存器(地址00-7FH)均可以直接与立即数打交道,显然要优 于前者。
AVR 系列没有类似累加器A 的结构, 它主要是通过R16~R31 寄存器来实现A 的功能。
在 AVR 中,没有像5l 系列的数据指针 DPTR,而是由X(由 R26、R27 组成)、Y(由R28、. R29
组成)、 z(由R30、 R31 组成)三个16 位的寄存器来完成数据指针的功能(相当于有三组 DPTR),
而且还能作后增量或先减量等的运行。
在 51 系列中,所有的逻辑运算都必须在 A 中进行;而 AVR 却可以在任两个寄存器之
间进行,省去了在 A 中的来回折腾,这些都比 51 系列强。
AVR 的专用寄存器集中在$00~$3F 地址区间,无需像PIC 那样得先进行选存储体的
过程,使用起来比PIC 方便。AVR 的片内 RAM 的地址区间为$0060~$00DF(AT90S23131)
和$0060~$025F(AT90S85l5、 AT90S8535), 它们占用的是数据空间的地址, 这些片内RAM 仅
仅是用来存储数据的, 通常不具备通用寄存器的功能。 当程序复杂时, 通用寄存器R0 一 R31
就显得不够用;而51 系列的通用寄存器多达128 个(为AVR 的4 倍),编程时就不会有 这
种感觉。
AVR 的I/O 脚类似PIC,它也有用来控制输入或输出的方向寄存器,在输出状态下,高
电平输出的电流在10mA 左右,低电平吸入电流20mA。虽不如PIC,但比 51 系列强。 综
合来看,AVR 与 51、PIC 单片机相比具有一系列的优点,用通俗的说法主要体现在 这几个方面:
(1)、在相同的系统时钟下 AVR 运行速度最快;
(2)、所有 AVR 单片机的 FLASH、EEPROM 蓄存器都可以反复烧写、支持在 ISP 在线
编程(烧写),入门费用非常少;
(3)、片内集成多种频率的 RC 振荡器、上电自动复位、看门狗、启动延时等功能,使
得电路设计变得非常简单;
(4)、每个 IO 口作输出时都可以输出很强的高、低电平,作输入时 IO 口可以是高阻
抗或者带上拉电阻;
(5)、 片内具有丰富实用的资源, 如AD 模数器、 DA 数模器, 丰富的中断源、 SPI、 USART、
TWI 通信口、PWM 等等;
(6)、片内采用了先进的数据加密技术,大大的提高了破解的难度;
(7)、片内FLASH 空间大、品种多,引脚少的有8 脚,多的有64 脚等各种封装
(8)、部分芯片的引脚兼容 51 系列,代换容易,如 ATtiny2313 兼容 AT89C2051,
ATmega8515/162 兼容AT89S51 等
四、单片机的选择。
各种单片机都有各自的优缺点,应根据需要选择。选择单片机原则如下:
1. 单片机的基本参数例如速度,程序存储器容量,I/O 引脚数量
2. 单片机的增强功能,例如看门狗,双指针,双串口,RTC(实时时钟),EEPROM,扩
展 RAM,CAN 接口,I2C 接口,SPI 接口,USB 接口。
3. Flash 和OTP(一次性可编程)相比较,最好是Flash。
4. 封装 IP(双列直插),PLCC(PLCC 有对应插座)还是贴片。DIP 封装在做实验时可
能方便一点。
5. 工作温度范围,工业级还是商业机。如果设计户外产品,必须选用工业级。
6. 功耗,比如设计并口加密狗,信号线取电只能提供几个 mA,用PIC 就是因为低功耗,
后来出了MSP430 也不错。
7. 工作电压范围。例如设计电视机遥控器,2 节干电池供电,至少应该能在 1.8-3.6V
电压范围内工作。
8. 供货渠道畅通。能申请样片,小批量购买有现货。最好像标准 51,中发里随便找个
柜台就能买到(我在北京)
9. 价格低。
10. 有服务商,像周立功公司推 Philips,双龙公司推AVR,都提供了很多有用的技术支
持,起码烧写器有地方买。
11. 烧录器价格低,如果是ICP(把单片机放在烧录器上编程)能否利用现有的烧录器,
如果是表贴封装,买一个转接座也很贵,至少得一二百元。能否 ISP(在系统编程,即把芯
片先焊到板子上再通过预留的 ISP 接口编程),一般 ISP 编程器比较便宜大约一二百元甚至
几十元。
12. 仿真器便宜。对于 FLASH 型单片机,仿真器不是必备的。但是对于OTP(一次性可
编程)型单片机,必须购买或者租用仿真器。
13. 单片机汇编语言是自己熟悉的,并且能支持 C 语言。编程环境要像keil 一样好用,
并且还是免费的。 14. 网站速度快,资料丰富。包括芯片手册,应用指南,设计方案,范例程序。最好有
中文,像Atmel 就不错。
15. 保密性能好,查一下专业解密网站上的黑名单,再发个 mail 咨询一下解密价格。
16. 抗干扰性能好。我曾经把XXC52 改为S52 后发现抗干扰性能下降,只好改回去。
17. 和其他外设芯片放在一起的综合考虑。
比较的挺详细的
赞一个。
1111111111111111111111111111111111111
赞一个赞一个赞一个
简直不能再赞了
666666666666666666666
下载收藏,回来仔细研究一下昂。
51有100多个通用寄存器吗?这个还真不知道,不过如果真的有只能说明51的设计落后。现在高级一点的ARM处理器也不过30几个通用寄存器。如果30几个通用寄存器还不够你用!只能说明你的程序设计能力有问题。
全部看完了。