80C51单片机中文资料、基础及应用、发展

2020-6-5 11:08 3667 95


一、80C51单片机的发展

1 、80C51单片机的发展

MCS-51是单片机系列的名称,其中包含有多种芯片型号;而80C51则既是系列名称又是其中一个具体芯片的型号。

早期的80C51系列芯片型号与MCS-51完全对应。它们都有两个子系列,即基本型51子系列和增强型52子系列。

80C51是对MCS-51的改进,具体表现在所使用的半导体集成电路工艺上。MCS-51采用的是HMOS工艺,即高密度短沟道MOS半导体集成工艺,而80C51则采用CHMOS工艺,即互补金属氧化物的HMOS半导体集成工艺。集成工艺的改进,使得80C51具有抗干扰能力强和低功耗等明显优势。

2、 80C51的衍生芯片

(1)功能简化芯片

尽管80C51的软硬件资源配置并不高,但对许多简单应用仍有富余。为实现资源的最优化配置且降低成本,一些功能和结构简化的简化型芯片应运而生。
硬件方面的简化内容涉及片内存储器、定时器、并行口或串行口等。例如,一些单片机应用只需要串行口而不用并行口,因此,就可以把并行I/O内容(口电路和口线引脚)去掉,从而出现了没有并行总线的所谓非总线型芯片。
除简化硬件之外,也有简化指令系统的简化型芯片。例如,Microchip公司生产的RISC(精简指令集计算机)型系列芯片,就减少了指令条数,只保留一些常用的基本指令。

(2)功能增强芯片

为满足复杂控制应用的需要,出现了许多功能增强的8位单片机芯片,所增强的内容包括增加定时器数目,增加中断类型,以及增添其他功能部件等。
例如,Philips公司的80C550和87C550增加了监视定时器WDT和A/D,80C552和87C552增加了I2C、WDT、A/D和脉宽调制器PWM等。此外,功能增强还表现在速度上,例如,SST公司生产的芯片SST89E/V58RD2,其晶振频率可高达40 MHz。
(3)专用型芯片
可把单片机芯片划分为通用型和专用型两类。通用型芯片的软硬件资源相对比较丰富,性能全面而且适应性强,能满足普遍性控制应用的需要。但通用型芯片存在二次开发问题,只有通过用户层面的二次开发,才能构建成一个有针对性的实用控制系统。
然而在单片机的控制应用中,更多的还是专门针对某一种特定产品或特定需要的专用型芯片。这些芯片在设计时已经对系统结构的最简化、软硬件资源利用的最优化、可靠性和成本的最佳化等方面都作了通盘的考虑和论证,所以专用型芯片具有十分明显的性能和价格优势,而且使用起来也十分方便。

二、 从8×C552看8位单片机功能的增强

1、 8×C552的硬件结构

8×C552芯片的硬件结构是在80C51内核的基础上再增加一些功能部件构成的,现以83C552芯片为例进行说明,硬件结构框图如下图所示。

(1)8×C552的基本组成
在83C552芯片的硬件资源中,中央处理器CPU、256个寄存器(RAM)单元、8 KB掩膜ROM、两个16位的定时器/计数器(T0和T1)、全双工异步串行口UART以及外部可扩展64 KB存储空间等,都与80C51系列的83C51芯片一样。
新的功能部件包括:附加定时器T2,捕捉输入/定时输出逻辑,A/D转换器,两路8位分频的脉宽调制器PWM,监视定时器WDT,15个中断源的中断结构,以及I2C总线接口电路等。
此外,83C552还增加了两个8位并行口P4和P5,并行口总数达到6个。
(2)8×C552的专用寄存器
80C51只有21个专用寄存器SFR,而到了8×C552,随着功能的增强,寄存器的数目也增加了许多,达到56个,
(3)8×C552的A/D转换器
出于控制应用的需要,8×C552芯片内置有A/D转换器,它由8路模拟输入多路开关、10位线性逐次逼近A/D转换器等构成。模拟电压的波动范围是0~+5 V,一次转换需50个机器周期,当振荡频率为12 MHz时,转换时间为50 μs。
在使用A/D转换器时,要采用稳定度高的电源作参考电源。
供A/D转换使用的寄存器有转换结果高位寄存器ADCH和转换控制寄存器ADCON。8×C552为10位A/D转换,转换结果的高8位在ADCH中,低2位在ADCON中。
(4)8×C552的中断结构
8×C552的中断源增加到15个,各中断名称、符号及向量略。中断系统结构如下图。


由于中断源增多,所以中断允许寄存器和中断优先级控制寄存器都增加到两个。对于中断允许寄存器,把80C51原有的改称为IE0,而把新增加的称为IE1。对于中断优先级控制寄存器,把80C51原有的改称为IP0,而把新增加的称为IP1。

硬件查询顺序为:外部中断0(X0)→定时器0中断(T0)→外部中断1(X1)→定时器1中断(T1)→串行中断(S0)→I2C中断(S1)→捕捉0中断(CT0)→捕捉1中断(CT1)→捕捉2中断(CT2)→捕捉3中断(CT3)→A/D中断(AD)→比较0中断(CM0))→比较1中断(CM1)→比较2中断(CM2)→定时器2中断(T2)。

2 、事件捕捉与事件定时输出
(1)事件捕捉与事件定时输出逻辑
8×C552的事件捕捉与事件定时输出逻辑由一个16位定时器T2、4个16位捕捉寄存器和3个16位比较寄存器组成,并有相应的输入和输出引脚配合。其逻辑结构如下图所示。
其中,定时器T2是一个16位的加法计数器,由高字节寄存器TMH2和低字节寄存器TML2组成。另外,加在定时器之前有一个预分频器。定时器T2有8位溢出中断和16位溢出中断。

8×C552事件捕捉与事件定时输出逻辑结构

(2)事件捕捉
在事件捕捉逻辑电路中共有4个只读的16位捕捉寄存器,分别为CT3(CTH3CTL3)、CT2(CTH2CTL2)、CT1(CTH1CTL1)和CT0(CTH0CTL0)。4个捕捉寄存器可以捕捉4个事件,因此,芯片上有4个事件输入引脚CT3I、CT2I、CT1I和CT0I。捕捉逻辑电路中还有一个捕捉控制寄存器CTCON,用于规定被捕捉事件的信号形式等。8×C552能捕捉的事件形式比较简单,只有电平的上升跳变和下降跳变。
事件捕捉逻辑随时对外部事件信号进行检测。事件捕捉功能常用于测量脉冲信号,包括脉冲的高低电平持续时间,正负跳变发生次数,从而可计算出脉冲的频率、周期和占空比以及脉冲个数等。
(3)事件定时输出
所谓事件定时输出就是按在程序中预先设定的时刻去触发外部事件。8×C552定时输出逻辑主要由1个时间比较电路和3个16位的比较寄存器CM2(CMH2CML2)、CM1(CMH1CML1)和CM0(CMH0CML0)组成,表明8×C552一次最多可设置3个事件。输出事件的状态由一组电信号组成,信号形式有置位、复位和脉冲触发。
事件定时输出有广泛的应用,例如:
① 产生脉冲。通过定时控制引脚电平的变化,就能得到一个脉冲序列,而且脉宽和周期都是可控的。
② 驱动步进电机。步进电机是控制系统中最常用的执行部件,通过对各相线圈电流的顺序切换就可以使其步进旋转,而线圈电流的切换可由定时输出实现,用单片机的事件定时输出功能控制其电流的通断即可。 
3 、监视定时器WDT
(1)程序运行的监视

对单片机应用系统来说,可靠性是至关重要的。这是因为单片机应用的现场环境通常比较恶劣,极易因受到干扰而出现故障;而一旦出现故障,就有可能导致系统失控,甚至造成极其严重的后果。

为了提高系统的可靠性,除采取足够的硬件措施外,还应对程序运行进行监视,因为系统可靠与否最终体现在程序运行上。最常见的程序运行故障是“跑飞”和死循环,对于这些程序运行故障,在及时发现的同时,还要能够自动恢复,以实现系统自救。常用的方法:插入陷阱程序和设置“看门狗”。

1)插入陷阱程序
设置陷阱是一种纯软件的方法。程序跑飞就意味着程序执行顺序不正确,为此可在各程序模块间或程序后,插入陷阱程序段。陷阱程序段通常由几条空操作指令和无条件转移指令组成,一旦程序跑飞,就会“落入”陷阱,通过执行陷阱程序使其转入初始化程序或恢复处理程序,以恢复程序的正常运行。
2)设置“看门狗”
所谓“看门狗”(Watch Dog)只是一种监视程序运行的形象化比喻。这是一种软硬件结合的监视方法,把其中用来感知程序失控的硬件电路比作“狗”。在程序执行过程中,通过指令不断地给该电路发送脉冲信号(喂狗),以使其维持在一个固定的状态(狗处于安静状态)。当程序失控时,不能在规定时刻“喂狗”,硬件电路的预定状态也就不能维持(狗叫)了。
可以用单稳触发器或时基电路构成的单稳电路等作为“狗”,还可以用定时器作为“狗”电路。在程序中每隔一个固定时间对其进行一次赋初值操作,以维持其不溢出状态。
(2) 8×C552的监视定时器

8×C552的监视定时器由8位定时器T3和11位预分频器组成,其中预分频器为计数结构的低位,定时器为其高位。监视定时器的计数脉冲来自芯片内部时钟,每个机器周期进行一次加1计数。

监视定时器计数溢出时,能产生有效的复位信号,从而使单片机系统复位,这就是监视定时器的功能。

程序应在小于监视周期的时间间隔内,对监视定时器进行一次赋值,以使其不发生溢出。当出现故障程序不能正常运行时,监视定时器就会因不能按时赋值而出现溢出,并将系统复位。 

4、 脉宽调制器PWM
(1)8×C552脉宽调制器的构成

8×C552具有两路脉宽调制输出,由预分频器(PWMP)、8位加法计数器、两个脉冲宽度寄存器(PWM1、PWM0)、两个比较器及相关逻辑电路等组成,其结构框图如下图所示。

脉宽调制器输出的方波脉冲宽度间隔(占空比)是可编程的,其数据通过程序写入PWM1和PWM0中。而重复频率由预分频器PWMP确定。

(2)PWM方波分析
 1)周期可调

脉宽调制器输出的方波脉冲周期(或频率)由预分频器PWMP控制。PWM计数器每一个状态周期进行一次加1,8位计数器最大计数值为255,故脉宽调制器输出的方波脉冲频率fPWM的计算公式为:

 fPWM =fosc/2×(PWMP+1)×255

按此公式,只要知道时钟频率和预分频器的值,便可计算出以微秒为单位的PWM方波周期。

2)宽度可控

PWM方波脉冲的宽度由脉冲宽度寄存器(PWM1和PWM0)确定。而PWM是通过计数和比较来产生方波的,所以只要改变脉冲宽度寄存器的内容,方波宽度就会随之改变。

3)占空比可调

方波宽度在整个方波周期中所占的百分比称为占空比。因为PWM方波的宽度是可控的,所以它的占空比也是可调的,

(3)PWM应用概述

PWM的最基本应用是产生方波,而绝大多数PWM应用都是建立在对PWM方波进行滤波的基础上。例如,把PWM波经过简单处理就可以得到连续变化的模拟信号,实现D/A转换功能,其电路如下图所示。 


三、 闪速存储器及其在单片机中的应用

闪速存储器全称为快闪可编程/擦除只读存储器,简称闪速存储器或FlashROM,也可简写为FPEROM(Flash Programmable andErasable Read Only Memory),20世纪80年代后期由Intel公司研制成功。

1、 闪速存储器概述

闪速存储器具有可写性和非易失性,所以常用做只读存储器。

闪速存储器除具有高密度、低功耗、非易失、高可靠性、长保存时间和超强的加密功能等特点外,它的优势更表现在在线编程功能上。

Flash ROM与E2PROM都使用电信号进行编程和擦除,并可重复进行。

2、 闪速存储芯片
(1)芯片封装及信号引脚

闪速存储芯片的存储容量可达2~16KB,近期更有16~64 MB的芯片出现。这里介绍一个比较典型的闪速存储芯片28F010。闪速存储芯片28F010的存储容量为128 KB,引脚排列如图所示。

各引脚功能如下:
  • A16~A0:地址引脚。在写周期中,其内容被内部地址锁存器锁存。

  • DQ7~DQ0:数据引脚。当芯片未选中时,引脚为高阻抗状态。

  • /CE:片选信号,低电平有效。当CE=0时,芯片被选中,将激活芯片内的控制逻辑和相关电路。当CE=1时,芯片不被选中,功耗将降低到预备状态。

  •  /OE:输出选通控制信号,低电平有效。在读周期中,当OE=0时,输出缓冲器被选通,读出的数据通过缓冲器输出。

  • /WE:写信号,低电平有效。用于控制对命令寄存器和存储阵列的写入操作,在WE脉冲的下降沿,地址被锁存;在其上升沿时,数据被锁存。

  •  VPP:擦除/编程电压。

  • VCC:主电源,+5 V。

  • VSS:地线。

  •  NC:空引脚。

(2)硬件结构

28F010的核心是一个1048576位的存储阵列,以及相应的译码和选通电路。其他部分则是在线擦除和编程的辅助电路。28F010的内部硬件结构如下图所示 。

28F010芯片结构框图

在线擦除与编程主要是通过编程引脚VPP和命令寄存器实现的。当VPP不加编程电压(通常是接地)时,命令寄存器内容为缺省值(即数据读出命令),存储芯片为只读方式。此时对闪速存储器只能进行读操作而不能进行写操作。若要进行在线擦除和编程操作,则需把VPP引脚接上编程高电压(+12 V)。这时,除可以对闪速存储器进行正常的数据读操作外,还可进行擦除与编程操作,包括存储阵列的擦除和编程以及读出编程验证数据等。但对每项操作,还需要向命令寄存器写入相应的命令。

3 、闪存单片机芯片

闪存单片机芯片是指内部程序存储器为闪速存储器的单片机芯片,在80C51系列中比较典型的闪存单片机芯片是89C51。

(1)闪存单片机概述
在单片机的闪存化发展过程中,Atmel公司的工作比较突出。该公司生产的89C51,命名时把AT加在前面,称为AT89C51。现在该公司的闪存单片机已经系列化,即AT89系列。
(2)闪存单片机芯片AT89C51
AT89C51内含4 KB的闪速存储器,虽然性能有很大提高,但它的指令系统和引脚与80C51完全兼容。AT89C51芯片的引脚如右图。

其内部结构如下图所示。

28F010芯片结构框图

AT89C51的主要性能指标和硬件资源都与80C51系列相同或类似。现将其主要性能说明如下:
  • 片内有4 KB闪速存储器。

  • 128 B的内部RAM单元。

  •  两个16位定时器/计数器。

  • 中断系统仍为5个中断源,二级优先结构。

  • 4个8位I/O口,即32位可编程口线。

  • 可编程全双工串行口。

  •  宽范围的工作电压,VCC的允许变化范围为2.7~6.0 V。

  •  可设置为待机状态和掉电状态。

  • 振荡器及时钟电路,全静态工作方式,时钟频率可为0 Hz~24 MHz。具有全静态工作方式,表明它不一定要求连续的时钟定时,在等待内部事件期间,时钟频率可降至0。

(3)AT89C51的简化芯片

AT89C2051(常简称为2051)是AT89C51的简化芯片,只有2 KB闪速存储器,其他硬件资源简化为:128 B的内部RAM单元、15条I/O口线、两个16位定时器/计数器、5个中断源(二级优先结构)、可编程全双工串行口、振荡器以及时钟电路等。AT89C2051芯片的引脚如下图所示。

AT89C2051没有并行扩展功能,所以只保留P1和P3两个I/O口。但在AT89C2051芯片中有一个模拟比较器,比较器以口线P1.1/AIN1和P1.0/AIN0为模拟量的正负输入端。由于P3.6已用作比较器输出,所以芯片不再有P3.6引脚。如下图所示。

      


4 、闪速存储器编程

单片机芯片中的闪速存储器,原始状态为擦除状态,地址单元的内容全为FFH。对它有两种编程方式。一种是使用专用编程设备进行,另一种是利用系统的自身资源进行。

利用芯片自身资源进行编程的方式,也称为系统内部写入法ISW(In SystemWriting),即在线编程。

(1)闪速存储器的编程接口信号

为实现闪速存储器编程,应预先把相关的地址、数据和控制信号准备好。AT89C51芯片FPEROM的编程接口信号如下图所示 。

其中各引脚功能如下:
  •  P0.7~P0.0:编程时代码输入,校验时代码输出。

  •  P1.7~P1.0和P2.3~P2.0:存储阵列单元地址,因为AT89C51的闪存容量为4 KB,需用12位地址。

  • P3.7、P3.6、P2.7、P2.6:高、低电平组合设置。

  •  ALE/PROG:PROG为编程脉冲信号。

  •  EA/VPP:VPP为编程电源。

对于AT89C51芯片来说,有两种编程电压,一种是+5 V,使用时可以把VPP与本芯片的VCC直接相连;另一种是+12 V,VPP单独接+12 V电源。+5 V编程电压使用户系统的在线编程成为可能,为用户提供方便;而+12 V编程电压则是供与专用编程器配套使用的。

(2)闪速存储器的编程过程

现以AT89C51用户系统的在线编程为例,对闪速存储器的编程过程进行说明,其中主要过程包括:

  • VPP接+5 V电源。
  • 写入编程单元地址。
  • 写入编程单元数据。
  • 提供需要的编程信号与电平组合。
  • 发出编程脉冲。 

改变单元地址和数据,重复上述过程,就可以完成整个存储阵列的编程操作。
推荐阅读
常用LED 发光二极管压降有哪些,具体压降参考值汇总 2019-09-17 11:34
华为P40 Pro+超大杯与大杯做了哪些加法,10倍光学多反射潜望式长焦? 2020-06-03 14:19
什么是“惯量匹配”,三菱伺服电机惯性发生原因 2021-01-06 10:18
win7系统怎么设置Realtek高清晰音频管理器(图文教程步骤) 2021-02-07 15:11
红米note8 pro测评图:安兔兔跑分、电池续航、超微距镜头 2019-10-15 14:18