应用最广泛的8位单片机首推Intel的51系列,由于产品硬件结构合理,指令系统规范,加之生产历史“悠久”,有先入为主的优势。世界有许多著名的芯片公司都购买了51芯片的核心专利技术,并在其基础上进行性能上的扩充,使得芯片得到进一步的完善,形成了一个庞大的体系,直到现在仍在不断翻新,把单片机世界炒得沸沸扬扬。有人推测,51芯片可能最终形成事实上的标准微控制器(MCU)芯片。
51系列优点之一是它从内部的硬件到软件有一套完整的按位操作系统,称作位处理器或布尔处理器。它的处理对象不是字或字节而是位。它不光能对片内某些特殊功能寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,使用起来得心应手。虽然其他种类的单片机也具有位处理功能,但能进行位逻辑运算的实属少见。51系列单片机在片内RAM区间还特别开辟了一个双重功能的地址区间,有16字节,单元地址为20H~2FH,它既可作字节处理,也可作位处理(作位处理时,合128位,相应位地址为00H~7FH),使用极为灵活。这一功能无疑给使用者提供了极大的方便,因为一个较复杂的程序在运行过程中会遇到很多分支,因而需建立很多标志位,在运行过程中,需要对有关的标志位进行置位、清零或检测,以确定程序的运行方向。而实施这一处理(包括前面所有的位功能),只需用一条位操作指令即可。
【例2-1】 如对21H的第0位(相应位地址为08H)置位,只需用一条位指令SETB08H,对周围的其他位不会产生影响。
有的单片机并不能直接对RAM中的位进行操作,如AVR系列单片机中,若想对RAM中的某位置位时,必须通过状态寄存器SREG的T位进行中转。
【例2-2】 如对RAM中的R0寄存器的第4位置位,则:
BSET6;状态寄存器T置位
BLD R0,4;将T位复制到R0的第4位
显然,AVR系列单片机比51系列单片机要复杂。
51系列单片机的另一个优点是乘法和除法指令,这给编程也带来了便利。8位除以8位的除法指令,商为8位,精度嫌不够,用得不多。而8位乘8位的乘法指令,其乘积为16位,精度还是能满足要求的,用得较多。作乘法时,只需一条指令就行了,即MPLAB(两个乘数分别在累加器A和寄存器B中。积的低位字节在累加器A中,高位字节在寄存器B中)。很多8位单片机都不具备乘法功能,作乘法时还得编一段子程序调用,十分不便。
在51系列单片机中,还有一条二进制转换成十进制调整指令DA,能将二进制变为BCD码,这对于十进制的计量十分方便。而在其他的单片机中,则也需调用专用的子程序才行。
Intel公司51系列单片机的典型产品是8051,片内有4KB的一次性可编程(OTP)存储器。Atmel公司就将其改为电可改写的闪速(Flash)存储器,允许改写1000次以上,这给编程和调试带来极大的便利,其AT89C51、AT89C52等产品成为了当今最流行的8位单片机。(www.xing528.com)
51系列单片机的I/O引脚的设置和使用非常简单,当该引脚作为输入引脚使用时,只需将该引脚设置为高电平(复位时,各I/O引脚均置高电平)。当该引脚作为输出引脚使用时,则为高电平或低电平均可。低电平时,吸入电流可达20mA,具有一定的驱动能力;而高电平时,输出电流仅数十微安甚至更小(电流实际上是由引脚的上拉电流形成的),基本上没有驱动能力。其原因是高电平时,该引脚也同时作为输入引脚使用,而输入引脚必须具有高的输入阻抗,因而上拉的电流必须很小才行。作为输出引脚使用,欲进行高电平驱动时,得利用外电路来实现(见图2-4),I/O引脚不通,电流经R驱动发光二极管(LED)发光;低电平时,I/O引脚导通,电流由该引脚入地,LED熄灭(I/O引脚导通时对地的电压降小于1V,LED的阈值为1.5~1.8V)。
图2-4 I/O脚的高电平输出电路
51系列单片机I/O引脚使用简单,但高电平时无输出能力,可谓有利有弊。故其他系列的单片机(如PIC系列、AVR系列等)对I/O端口进行了改进,增加了方向寄存器,以确定输入或输出,但使用也变得复杂。
一些简装的51系列单片机产品也相应出现,如Atmel公司的AT89C1051、AT89C2051、AT89C4051等(闪速存储器分别为1KB、2KB、4KB等,但不能外接数据存储器),指令系统与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,从而达到两组数据指针的快速切换的目的。
ISP功能能实现在系统可编程,可以省去通用的编程器,单片机在用户板上即可下载和烧录用户程序,而无需将单片机从生产好的产品上取下。未定型的程序还可以边生产边完善,加快了产品的开发速度,减少了新产品因软件缺陷带来的风险。由于可以将程序下载并观看运行结果,故也可以不用仿真器。
单片机的提速运行、两组DPTR及ISP功能并非是W77系列所特有的,一些新型的51系列产品大都有该功能,如Philips公司的51LPC系列、AT89系列中的某些型号、STC89C系列等。有的单片机还附有A/D转换、D/A转换、片内数据存储器(EEPROM)、PWM输出、I2C总线、上电复位检测、欠电压复位检测等,这些新系列的单片机,它们都兼容8051的指令系统。增强功能的实现,大都是由片内新增的特殊功能寄存器来进行设置,这些寄存器被安排在片内特殊功能寄存器区间(80~FFH)的预留地址上。
比较有代表性的产品还有STC89C51RC、C8051F331/330等。可以这么说,新的51系列单片机产品几乎可以涵盖所有新的功能。由于新型号的芯片种类太多,此处不可能一一列举,读者可根据使用的需求查阅相关的资料。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。