51单片机与PIC单片机和AVR单片机的性能对比分析

2019-12-02来源: 51hei关键字:51单片机  PIC单片机  AVR单片机

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


1. 51系列

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


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

51单片机与PIC单片机和AVR单片机的性能对比分析

例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码,这对于十进制的计量十分方便。而在其他的单片机中,则也需调用专用的子程序才行。


Intel公司51系列的典型产品是8051,片内有4K字节的一次性程序存储器(OTP)。Atmel公司就将其改为电可改写的闪速存储器(Flash),容许改写1000次以上,这给编程和调试带来极大的便利,其产品AT89C51、AT89C52 ……等成为了当今最流行的八位单片机。

51系列的I/O脚的设置和使用非常简单,当该脚作输入脚使用时,只须将该脚设置为高电平(复位时,各I/O口均置高电平)。当该脚作输出脚使用时,则为高电平或低电平均可。低电平时,吸入电流可达20mA,具有一定的驱动能力;而为高电平时,输出电流仅数十μA甚至更小(电流实际上是由脚的上拉电流形成的),基本上没有驱动能力。其原因是高电平时該脚也同时作输入脚使用,而输入脚必须具有高的输入阻抗,因而上拉的电流必须很小才行。作输出脚使用,欲进行高电平驱动时,得利用外电路来实现(见附图),I/O脚不通,电流经R驱动LED发光;低电平时,I/O脚导通,电流由该脚入地,LED灭(I/O脚导通时对地的电压降小于1V,LED的域值1.5~1.8V)。


51系列I/O脚使用简单,但高电平时无输出能力,可谓有利有弊。故其他系列的单片机(如PIC系列、AVR系列等)对I/O口进行了改进,增加了方向寄存器以确定输入或输出,但使用也变得复杂。


一些简装的51产品也相应出现,如Atmel公司的AT89C1051、AT89C2051、AT89C4051等(闪速存储器分别为1K、2K、4K等,但不能外接数据存储器),指令系统与AT89C51完全兼容,但引脚均为20脚,不光体积小,而且价格低廉,这使得其他的公司竞相仿照。

不过,原51系列也有许多值得改进之处,如运行速度过慢等。当晶振频率为12MHz时,机器周期达1μs,显然适应不了现代高速运行的需要。华邦公司(Winbond)生产的产品型号为W77系列和W78系列,W78系列与AT89C系列完全兼容。W77系列为增强型,对原有的8051的时序作了改进,每个机器周期从12个时钟周期改为4个周期,使速度提高了三倍,同时,晶振频率最高可达40MHz。W77系列还增加了看门狗WatchDog、两组UART、两组DPTR数据指针、ISP等多种功能。


特别是双数据指针,能给编程带来很大的便利。在51系列中,数据指针DPTR是片内与片外的数据存储器打交道的主要途径(由片外数据存储器读入片内累加器A或由片内累加器A 写入片外数据存储器),也是程序存储器与累加器A之间的数据传送的必由之路。由于频繁的数据交换,特别是数据块的搬运和比较,数据指针非常吃紧,它需要不断地实施现场保护与还原,不光编程变得复杂,而且运行速度也减慢。而当采用两个数据指针时,可以各负其责,互不相扰,轻松地完成上述过程。两个数据指针的选取取决于特殊功能寄存器AUXR1的第D0位DPS。当DPS为0时,选中数据指针DPTR0(复位时DPS也为0);DPS为1时,选中数据指针DPTR1。DPS位不能位寻址,故不能进行布尔操作,但由于AUXR1的D1位被强制为逻辑“0”,不可能发生由D0位向D1位进位之可能,因而可以通过对AUXR1进行增1来使D0位由0变为1或由1变为0,从而达到双数据指针的快速切换的目的,如:


例3:

MOVAUXR1,#0 ; DPS为0,DPTR0有效

……

INC AUXR1 ; DPS为1,DPTR1有效

……

INC AUXR1 ; DPS为0,DPTR0有效

……

ISP功能能实现在系统可编程,可以省去通用的编程器,单片机在用户板上即可下载和烧录用户程序,而无需将单片机从生产好的产品上取下。未定型的程序还可以边生产边完善,加快了产品的开发速度,减少了新产品因软件缺陷带来的风险。由于可以将程序下载并观看运行结果,故也可以不用仿真器。


单片机的提速运行、双数据指针及ISP功能并非是W77系列所特有的,一些新的型号的51系列产品大都有该功能,如Philips的51LPC系列、AT89系列中的某些型号、STC89C系列等等。有的单片机还附有A/D、D/A转换、片内EEPROM数据存储器、PWM输出、I2C总线、上电复位检测、欠压复位检测等等,这些新系列的单片机,它们都兼容8051的指令系统。增强功能的实现,大都是由片内新增的特殊功能寄存器来进行设置,这些寄存器被安排在片内特殊功能寄存器区间(80~FFH)的预留地址上。


比较有代表性的产品还有STC89C51RC、C8051F331/330等等。可以这么说,新的51产品几乎可以涵盖所有新的功能。由于新型号的芯片种类太多,此处不可能一一列举,读者可根据使用的需求查阅相关的资料。


2.PIC系列

PIC单片机系列是美国微芯公司(Microship)的产品,是当前市场份额增长最快的单片机之一。CPU采用RISC结构,分别有33、35、58条指令(视单片机的级别而定),属精简指令集。而51系列有111条指令,AVR单片机有118条指令,都比前者复杂。采用Harvard双总线结构,运行速度快(指令周期约160~200ns),它能使程序存储器的访问和数据存储器的访问并行处理,这种指令流水线结构,在一个周期内完成两部分工作,一是执行指令,二是从程序存储器取出下一条指令,这样总的看来每条指令只需一个周期(个别除外),这也是高效率运行的原因之一。此外,它还具有低工作电压、低功耗、驱动能力强等特点。PIC系列单片机共分三个级别,即基本级、中级、高级。其中又以中级的PIC16F873(A)、PIC16F877 (A) 用的最多,本文以这两种单片机为例进行说明。这两种芯片除了引出脚不同外(PIC16F873(A)为28脚的PDIP或SOIC封装;PIC16F877(A)为40脚的PDIP或44脚的PLCC/QFP封装),其他的差别并不很大。


PIC系列单片机的I/O口是双向的,其输出电路为CMOS互补推挽输出电路。I/O脚增加了用于设置输入或输出状态的方向寄存器(TRISn , 其中n对应各口,如A、B、C、D、E等),从而解决了51系列I/O脚为高电平时同为输入和输出的状态。当置位1时为输入状态,且不管该脚呈高电平或低电平,对外均呈高阻状态;置位0时为输出状态,不管该脚为何种电平,均呈低阻状态,有相当的驱动能力,低电平吸入电流达25mA,高电平输出电流可达20mA。相对于51系列而言,这是一个很大的优点,它可以直接驱动数码管显示且外电路简单。它的A/D为10位,能满足精度

[1] [2]
关键字:51单片机  PIC单片机  AVR单片机 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic481665.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:PIC单片机的各种内部硬件功能及用法介绍
下一篇:在处理PIC单片机的中断服务程序时需要注意哪些问题

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

avr单片机功能特性介绍
RISC 优先选取使用频率最高的简单指令,避免复杂指令:并固定指令宽度,减少指令格式和寻址方式的种类,从而缩短指令周期,提高运行速度。由于 AVR 采用了 RISC 的这种结构,使AVR系列单片机都具备了1MIPS/MHz(百万条指令每秒/兆赫兹)的高速处理能力。早期单片机主要由于工艺及设计水平不高、功耗高和抗干扰性能差等原因,所以采取稳妥方案:即采用较高的分频系数对时钟分频,使得指令周期长,执行速度慢。以后的CMOS单片机虽然采用提高时钟频率和缩小分频系数等措施,但这种状态并未被彻底改观(51以及51兼容)。此间虽有某些精简指令集单片机(RISC)问世,但依然沿袭对时钟分频的作法。AVR单片机的推出,彻底打破这种旧设计格局,废除
发表于 2019-12-14
avr单片机功能特性介绍
AVR系列单片机的主要特性及选型
AVR单片机是ATMEL公司研制开发的一种新型单片机,它与51单片机、PIC单片机相比具有一系列的优点:在相同的系统时钟下AVR运行速度最快;芯片内部的Flsah、EEPROM、SRAM容量较大;所有型号的Flash、EEPROM都可以反复烧写、全部支持在线编程烧写(ISP);多种频率的内部RC振荡器、上电自动复位、看门狗、启动延时等功能,零外围电路也可以工作;每个IO口都可以以推换驱动的方式输出高、低电平,驱动能力强;内部资源丰富,一般都集成AD、DA模数器;PWM;SPI、USART、TWI、I2C通信口;丰富的中断源等。目前支持AVR单片机编译器的语言主要有汇编语言、C语言、BASIC语言等。其中C编译器主要有
发表于 2019-12-14
AVR系列单片机的主要特性及选型
PIC16F87x单片机存储器特点及数据存储器使用规划
,可以像MCS-51等其他系列的单片机一样使用变量了。当然还有一部分特殊寄存器是定义在BANK2~BANK3之间的。对于访问这些非页0内的特殊寄存器,必须进行页选择。访问完这些特殊寄存器,把页选择重新设置为BANK0,同时要注意在访问特殊寄存器过程中必须关闭中断(这与中断现场保护代码实现有关,参见下面中断处理部分)。在PIC单片机中,一般只是把与设置相关或者与外围相关的寄存器放在BANK1~BANK3。根据经验,除了在系统初始化部分代码中,在其他地方访问这些特殊寄存器是很少见的。至于访问这些特殊寄存器时要关中断,除了考虑下面保护现场的因素外,还有一个原因:这些特殊寄存器多是与外围相关和中断相关的,访问修改它们,从安全可靠角度也是应该要先关闭中断
发表于 2019-12-14
PIC16F87x单片机存储器特点及数据存储器使用规划
51单片机汇编学习例程(1)——KEY篇
1.ASM1_KEY:按键控制LED亮灭,3种情况/*********************************************************************************         @file            asm.asm*         @author          Alex——小白*         @vers
发表于 2019-12-14
51单片机汇编学习例程(1)——KEY篇
天山OLED白光烙铁单片机源码与使用手册V3.1.1
电容,运放VCC加104电容。⑤电容C5设计有误,实际不需要。1.1.2 智萌版硬件介绍①正面三个电容不需要焊接,否则无法下载程序;②建议MOS更换为AO4413.1.1.3 海绵宝宝版硬件介绍①单片机应改为STC15W2K60S2;1.2 烧录固件1.2.1 烧录步骤固件在Prj文件夹下Objects子文件夹内,文件名为HAKKO.hex。①将CH340模块连接焊台,先只接TX、RX、GND三根线,VCC不接;②按图1-1步骤勾选相关选项; 图1-1 STC-ISP软件操作步骤③将下载器VCC与焊台连接。1.2.2 烧录失败排查①编码器位置不合适,旋转编码器再试(请确保编码器转到位,不要卡在中间);②TX、RX接反
发表于 2019-12-14
天山OLED白光烙铁单片机源码与使用手册V3.1.1
三杯式风速传感器液晶显示单片机程序与实验报告
一、实验目的1.掌握三杯式风速传感器的工作原理;2.将三杯式风速传感器测得的风速(风由风扇提供)实时显示在液晶和上位机上;3.进一步掌握1602液晶的使用以及串口通讯;4.规范C的书写格式。二、实验原理三杯式风速传感器有一个测速码盘,当码盘转动并不断地通过三杯式风速传感器内部的光电传感器后,就会产生脉冲信号,脉冲信号触发单片机产生外部中断0,外部中断0对脉冲次数进行计数,定时器0中断设定1s的时间,并获取1s内的脉冲次数,然后通过公式:(脉冲次数*7)/80.0+0.1(注意:此处的80.0不能写成80,否则将会丢失风速的小数位,因为除以80得到的是整数)就可以计算出风速,然后就可以通过单片机将风速显示在液晶和上
发表于 2019-12-14
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved