当前位置:主页 > 行业知识 >

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

发布时间:19-11-05 阅读:164

八位单片机因为内部构造简单,体积小,资源低廉,在一些较简单的节制器中利用很广。即便到了本世纪,在单片机利用中,仍占领相称的份额。因为八位单片机种类繁多,本文仅将常用的几种在机能上作一个简单的对照,供读者在应用时作参考。

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

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位,能满意精度要求。具有在线调试及编程(ISP)功能。

该系列单片机的专用寄存器(SFR)并不像51系列那样都集中在一个固定的地址区间内(80~FFH),而是分散在四个地址区间内,即存储体0(Bank0:00~7FH)、存储体1(Bank1 :80~FFH)、存储体2(Bank2 :100~17FH)、存储体3(Bank3 :180~1FFH)。只有5个专用寄存器PCL、STATUS、FSR、PCLATH、 INTCON在4个存储体内同时呈现。在编程历程中,少不了要与专用寄存器打交道,得反复地选择对应的存储体,也即对状态寄存器STATUS的第6位(RP1)和第5位(RP0)置位或清零。如:

例4:

CLRFSTATUS ;清零RP1, RP0。选择存储体0

……

BSF STATUS,RP0;置位RP0。选择存储体1

……

BCF STATUS,RP0;清零RP0。选择存储体0

……

这若干给编程带来了一些麻烦。对付上述的单片机,它的位指令操作平日限定在存储体0区间(00~7FH)。

数据的传送和逻辑运算基础上都得经由过程事情寄存器W(相称于51系列的累加器A)来进行,而51系列的还可以经由过程寄存器互相之间直接传送(如:MOV 30H,20H;将寄存器20H的内容直接传送至寄存器30H中),因而PIC单片机的瓶颈征象比51系列还要严重,这在编程中很有感想熏染。

3.AVR系列

AVR单片机是Atmel公司推出的较为新颖的单片机,其显明的特征为高机能、高速率、低功耗。它取消机械周期,以时钟周期为指令周期,推行流水功课。AVR单片机指令以字为单位,且大年夜部分指令都为单周期指令。而单周期既可履行本指令功能,同时完成下一条指令的读取。平日时钟频率用4~8MHz,故最短指令履行光阴为250~125ns。该系列的型号较多,但可用下面三种为代表:AT90S2313(简装型)、AT90S8515、AT90S8535(带A/D转换)。

通用寄存器一共32个(R0~R31),前16个寄存器(R0~R15)都不能直接与急速数打交道,因而通用性有所下降。而在51系列中,它所有的通用寄存器(地址00~7FH)均可以直接与急速数打交道,显然要优于前者。

AVR系列没有类似累加器A的布局,它主如果经由过程R16~R31寄存器来实现A的功能。在AVR中,没有像51系列的数据指针DPTR,而是由X(由R26、R27组成)、Y(由R28、R29组成)、Z(由R30、R31组成)三个16位的寄存器来完成数据指针的功能(相称于有三组DPTR),而且还能作后增量或先减量等的运行,如:

例5:

LDRd, X ;将X所指的地址的内容装入寄存器Rd中。

LDRd,Y+;将Y所指的地址的内容装入寄存器Rd

中,然后Y的地址增1。

LDRd,-X ;将X的地址减1所指的地址的内容装入

寄存器Rd中。

在51系列中,所有的逻辑运算都必须在A中进行;而AVR却可以在任两个寄存器之间进行,省去了在A中的往返折腾,这些都比51系列强。

AVR的专用寄存器集中在00~3F地址区间,无需像PIC那样得先辈行选存储体的历程,应用起来比PIC方便。AVR的片内RAM的地址区间为0060~$00DF(AT90S2313) 和 0060~025F(AT90S8515、AT90S8535),它们占用的是数据空间的地址,这些片内RAM仅仅是用来存储数据的,平日不具备通用寄存器的功能。当法度榜样繁杂时,通用寄存器R0~R31就显得不敷用;而51系列的通用寄存器多达128个(为AVR的4倍),编程时就不会有这种感到。

AVR的I/O脚类似PIC,它也有用来节制输入或输出的偏向寄存器,在输出状态下,高电平输出的电流在10mA阁下,低电平吸入电流20mA。虽不如PIC,但比51系列强。

责任编辑;zl



上一篇:没有了
下一篇:对话万向区块链董事长肖风:区块链领域能出阿