通用寄存器一共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),而且还能作后增量或先减量等的运行,如:
例5:
LD Rd,x ;将X所指的地址的内容装人寄存器Rd中。
LD Rd,Y+ ;将Y所指的地址的内容装入寄存器Rd中,然后Y的地址增1。
LD Rd,-x;将X的地址减1所指的地址的内容装入寄存器Rd中。
在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系列兼容,如AT90S2313与51系列的AT89C2051的管脚兼容(PDIP-20脚),AT90S8515、AT90S8535与5l系列的AT89C51兼容(PDIP-40脚)等等。
本文关键字:单片机 元器件特点及应用,元器件介绍 - 元器件特点及应用