单片机原理、应用与Proteus仿真(txt+pdf+epub+mobi电子书下载)


发布时间:2021-01-23 14:33:46

点击下载

作者:兰建军

出版社:机械工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

单片机原理、应用与Proteus仿真

单片机原理、应用与Proteus仿真试读:

前言

单片机作为微型计算机的一个重要发展分支,被广泛应用于工业过程的自动检测和控制等领域。单片机的发展非常迅速,在短短几十年中,已经发展到上百个系列近千个机种。MCS-51系列单片机作为单片机的典型代表,以其功能强大、结构简单等优点,在单片机市场中仍占有很大的份额。为了以简单的单片机来说明复杂的单片机系统设计,本书以Intel 8051单片机为例,从单片机实际应用的角度来说明单片机的原理及应用。

在内容编排方面,全书共11章。第1章介绍单片机基础知识,包括单片机发展概述,单片机内部结构和功能引脚,并行口工作原理和单片机开发与调试等基本知识。第2章介绍单片机指令系统和汇编语言,包括寻址方式,指令介绍,指令执行过程和汇编语言程序结构等。第3章介绍Keil C51程序设计,包括单片机C语言程序设计概述,C51程序设计基础,以及单片机资源C51访问。第4章介绍Proteus虚拟仿真技术,包括Proteus中的原理图设计、电子设计与仿真以及单片机系统的设计与仿真。第5章介绍中断系统,包括中断的处理和中断程序设计,Proteus中的外部中断设计与仿真。第6章介绍定时/计数器,包括定时/计数器的基本工作原理,定时/计数器的工作方式及其设置,最后在Proteus中进行了实例设计与仿真。第7章介绍串行通信技术,包括串行通信的基本概念,串行口的结构、控制和工作方式,并给出了双机通信应用实例。第8章介绍单片机的存储器扩展,包括存储器扩展和I/O端口的基本应用与扩展。第9章介绍单片机系统接口扩展及应用,包括人机接口的键盘和显示接口扩展,以及模拟量输入/输出接口扩展。第10章介绍单片机串行扩展和功率接口技术,主要包括单总线、SPI总线接口技术以及常用的功率接口技术等,给出了具体的应用实例。第11章主要介绍Proteus中进行综合应用实例的设计和仿真。

为了适应不同读者的需求,本书第5~第7章介绍了单片机内部主要功能部件的应用实例,同时给出了汇编语言和C语言源程序,因此可满足不同的教学需求。同时为了兼顾篇幅和实际应用需求,第8~第11章的应用实例只给出了C语言源程序。本书中给出的所有源程序都在Proteus和实际硬件电路中仿真和运行通过,读者可以直接参考和借鉴。

本书部分图中的元器件符号为Proteus自带符号,表示方法与国标有所不同。读者可自行查阅相关资料。

本书的第1章、第4章、第6章、第8章、第9章和第10章由兰建军编写,第2章、第3章和第11章由伦向敏编写,第5章和第7章由关硕编写,全书由兰建军统稿。

本书在编写过程中,参考了兄弟院校部分教材的内容,得到了相关院校老师的支持和帮助,在此谨向有关单位和个人表示衷心的感谢!

由于编者水平有限,加之时间仓促,书中难免存在不妥和疏漏之处,敬请广大读者批评和指正。编者

第1章 单片机技术基础

随着大规模集成技术的不断发展,微型计算机主要朝着两个方向发展:一是向高速度、高性能的微机方向发展;另一个方向是朝着稳定可靠、小而廉价的单片机方向发展。单片机以其体积小、抗干扰能力强、可靠性高、灵活性好、价格低廉等优点,被广泛应用于工业过程的自动检测和控制、智能仪器、家用电器等各个领域。

Intel公司的8051单片机是MCS-51系列单片机的典型代表,除了具有一般单片机的优点外,以其独特的布尔控制功能深受用户青睐,本书主要以Intel 8051单片机为例来介绍单片机的基本原理和应用。

1.1 单片机概述

单片机是微型计算机发展的一个重要分支,其主要目的是面向各种场合的嵌入式应用。自1971年Intel公司推出第一款单片机以来,单片机就以其独特的优势在各种场合得到广泛的应用,经过近50年的发展,目前已经具有上百系列近千个机种。

1.1.1 单片机定义

所谓的单片机就是在一个半导体芯片上集成了中央处理器(Central Processing Unit,CPU)、存储器、I/O(Input/Output)接口、时钟振荡电路、定时/计数器和中断系统等计算机的主要功能部件,所以单个芯片就相当于一台微型计算机,因此称之为单片微型计算机(Single Chip Microcomputer,SCM),简称单片机。

目前,许多新型的单片机内部还集成有模拟-数字及数字-模拟转换器,高速输入/输出接口,浮点运算等特殊功能部件,由于其硬件结构和指令功能都是按工业控制要求设计的,特别适用于各种测量控制和数据处理的场合。为了突出单片机的控制特性,通常也把单片机称为微控制器(Micro Controller Unit,MCU),由于其嵌入式应用的特点,也习惯把其称之为嵌入式控制器(Embedded Micro Controller Unit,EMCU)。

1.1.2 单片机特点和应用

单片机把微型计算机的主要部件集成在一个芯片中,和传统的微机型计算机相比主要具备如下特点。

1.性价比高

现有的单片机种类很多,在满足相应的控制功能前提下,有很多单片机可供选择。目前国内市场上有些单片机的价格只需要几元人民币,配上少量的外围器件就可以构建一套功能比较完善的自动控制装置。

2.集成度高

单片机把各大功能部件都集成于一个芯片上,而且体积小,适合于构建小体积装置的嵌入式应用系统,以降低设计成本。同时严密的外部封装降低了各大部件受干扰的几率,大大提高了单片机的可靠性和抗干扰能力。

3.控制能力强

单片机均配有丰富的指令系统,可根据实际情况实现各种复杂的控制要求,特别近年来随着单片机技术的不断发展,单片机的控制能力也在不断增强。

4.低功耗

随着单片机嵌入式应用的不断普及,在手持设备场合中的应用也日益广泛。因为采用电池供电,所以要求单片机的功耗和供电电压朝着更低的方向发展,目前部分单片机的供电电压已经降到0.9V以下,休眠模式下的电流消耗低于50nA,大大降低了电能的消耗,延长了电池的更换或充电周期。

由于单片机具有上述的诸多特点,使其在家用电器、自动测控系统、智能仪器、机器人等领域得到了广泛的应用。单片机应用的几个主要领域如下。

1.工业自动化领域

单片机因I/O线多、指令丰富、逻辑操作能力强等优点,在工业自动化行业,无论是检测还是控制方面都发挥了重要的作用。其既可进行单机控制,还可作多级控制的前端处理机,应用领域相当广泛。

2.智能仪器仪表领域

这是国内目前应用单片机最多、最活跃的领域。在各类仪器仪表中(包括温度、湿度、流量、流速、电压、频率、功率、厚度、角度和长度测定等),引入单片机,使仪器仪表数字化、智能化、微型化,功能大大提高。

3.消费类电子产品领域

该领域主要以家电方向应用最为普遍,因为家电产品的智能化是必然的趋势,因此以单片机为核心的电子秤、便携式心率监护仪、电视机、洗衣机、电冰箱、电磁炉、微波炉、空调、家用防盗报警器等产品也是层出不穷。

4.通信领域

现有许多的单片机都具有相应的通信接口(如串行通信接口、CAN总线接口和以太网接口等),为单片机在计算机网络与通信设备中的应用创造了很好的条件,如通信过程的调制解调器、程控交换技术、电话自动分路器等方面。

1.1.3 单片机技术的发展

自20世纪70年代单片机诞生以来,以8位单片机作为起点,单片机的发展大致经历了以下几个阶段。

1.第一阶段(1976—1978年)

该阶段是低性能的8位单片机发展阶段,以Intel公司的MCS-48系列单片机为典型代表,这一阶段的单片机主要以8位单片机为主。

2.第二阶段(1978—1982年)

该阶段是高性能8位单片机发展阶段,以Intel公司的MCS-51系列单片机为典型代表,在48系列单片机基础上,完善了外部总线,改善了内部结构,以满足不同的应用需求。

3.第三阶段(1982—1990年)

该阶段是16位单片机的发展阶段,以Intel公司的MCS-96系列单片机为典型代表,其在51系列单片机基础上,内部集成了模拟-数字(A-D)转换器和高速输入/高速输出(HIS/HSO)接口。

4.第四阶段(1990年.现在)

该阶段是单片机全面发展阶段,可谓百花齐放,百家争鸣。无论是8位单片机还是16位单片机都得到了长足的发展。随着单片机在各个领域应用的不断深入,16位单片机已经发展到32位单片机,特别是近年来已经有多核的单片机被推出。

无法具体预知今后的单片机会发展成何种具体形式,但从现有单片机技术的发展情况来看,目前的基本发展趋势是朝着CMOS化、低功耗化、低电压化、大容量化、高性能化、各种外围功能的内装化等方向发展。

1.1.4 MCS-51单片机系列

MCS-51系列单片机是Intel公司在1980年推出的高性能8位单片机,在目前单片机市场中,8位单片机仍占有重要的地位。MCS-51系列单片机及其兼容机以其良好的性能价格比,仍是目前单片机开发和应用的主流机型之一。表1-1所示为MCS-51系列单片机的分类表,按资源的配置情况划分,可分为51和52子系列,其中51子系列是基本型,而52子系列属于增强型。表1-1 MCS-51系列单片机的分类表

80C51单片机系列是在MCS-51系列的基础上发展起来的,早期的80C51只是MCS-51系列众多芯片中的一类,但是随着芯片的发展,80C51已经形成独立的系列,并且成为当前8位单片机的典型代表。80C51与MCS-51相比,主要具有以下几个方面的特点。

在制造工艺方面,MCS-51系列芯片采用HMOS工艺,而80C51芯片则采用CHMOS工艺,CHMOS工艺是COMS和HMOS的结合。

在功耗方面,80C51芯片具有COMS低功耗的特点,MCS-51芯片的功耗为630mW,而80C51的功耗只有120mW,较低的功耗对单片机在便携式或户外作业的仪器仪表设备上应用十分有利。

在功能增强方面,80C51芯片增加了待机和掉电保护两种工作方式,以保证单片机在待机和掉电情况下能以最低的电流消耗来维持单片机工作。

除此之外,80C51系列芯片内部集成的程序存储器类型也有所改2变,除了基本的ROM型和EPROM型外,还有EPROM型,并且片内程序存储器的容量也越来越大。同时内部集成的程序存储器还具有保密机制,防止应用程序泄密或被复制。

1.1.5 单片机选型

进行单片机系统设计和开发时,需要是根据设计要求和功能,进行单片机选型。目前市场上可供选择的单片机种类繁多,各种型号的单片机都有各自的特点和应用环境,在选用时要多加比较,合理选择,以获得最佳的性价比。在单片机选型上,首要的一点就是满足功能要求,即在明确设计对象和设计任务的基础上,根据任务的具体情况和复杂程度来选择单片机。具体可以从以下几个方面进行考虑。

1.存储器方面

单片机的存储器根据用途主要可以分为程序存储器和数据存储器两种,常见的程序存储器有掩模式ROM、OTPROM、EPROM和Flash ROM等几种类型。不同类型的程序存储器的擦写方式和时间不同,在试验或样机的研发阶段,需要经常的写入和擦除程序,推荐使用Flash ROM的单片机,因为Flash ROM采用电写入和电擦除形式,擦除和写入时间短,可有效提高调试和开发速度。在数据存储器方面,2因其掉电后数据丢失的特点,因此可选择内部带有EPROM的单片机,用于存储掉电后需要保护的关键数据(如系统的各种参数)。

2.串行接口方面

目前许多单片机外围功能器件通常采用UART(Universal 2Asynchronous Receiver/Trans-mitter)、IC(Inter-Integrated Circuit)、CAN(Controller Area Network)、SPI(Serial Periph-eral Interface)、USB(Universal Serial Bus)等串行接口方式。为了使单片机非常方便地和这些器件进行连接,节省接口协议程序的开发。因此在进行单片机选型时,还需要结合外围器件的接口方式,来选择内部集成有相应串行接口的单片机,以简化程序设计,缩短开发周期。

3.模拟量输入/输出功能方面

单片机系统中通常需要实现模拟量的输入和输出,如果采用外部扩展相应的模拟-数字(A-D)和数字-模拟(D-A)转换接口方式,会使得系统的体积增加,同时提高了设计成本。因此可以选用内部集成有采样/保持电路、A-D接口和D-A接口单片机,这样既可方便用户构建精密的数据采集系统,同时还可以降低系统成本。此外,不少单片机内部还集成有PWM(Pulse-Width Modulation)接口,可方便地应用于变频调速等场合。

4.工作电压和功耗方面

为了使单片机适应各种工作应用场合,现在的单片机的工作电压可选择的范围非常宽,常用的工作电压范围为4.5~5.5V,低电压范围为2.4~3.6V,部分单片机的工作电压甚至低至0.9V。如Silicon Lab公司推出的8051F9xx低电压低功耗系单片机,其工作电压范围为0.9~3.6V。

单片机选型时,还需要根据电源供应的具体情况来选择单片机,重点考虑单片机的工作电压和功耗的参数,如单片机在正常工作模式下的电流消耗。尤其是单片机采用电池供电方式时,要选用电流消耗小的单片机产品。同时还需要考虑单片机是否具有待机模式,当单片机进入空闲状态时,切入待机模式,从而进一步降低单片机的功率消耗,这些都是单片机选型时应当考虑的问题。

5.抗干扰性能.保密性方面

如果单片机系统需要长期工作在工业现场,在选用单片机的时候,要选择抗干扰性能好的,特别是用在干扰比较大的工业环境的情况更应如此,以保证单片机能够长期可靠地工作。同时还需要考虑单片机的保密性能,这样可保证知识产权不容易被侵犯。

6.其他方面

在考虑上述的几个方面的基础上,还有一些诸如中断源的数量和优先级、工作温度范围、工作电源电压低检测功能等因素需要考虑。

1.2 单片机内部结构

图1-1所示为8051单片机的内部结构框图,其包含了CPU、存储器、定时/计数器、I/O接口、中断系统、时钟振荡电路等计算机的基本功能部件,各功能部件通过总线相连,集成于同一个芯片中。图1-1 8051单片机内部结构框图

1.中央处理器(CPU)

8051单片机中设置有一个8位字长的CPU,和其他计算机CPU一样,内部包含有运算器和控制器。同时为了面向控制功能,其内部还增加了布尔处理器,使得8051 CPU同时具有字节数据和位数据处理两个功能。

2.存储器

8051单片机内部集成有4KB的程序存储器和256B的数据存储器(实际可用的只有低128B)。对于简单的应用,内部集成的存储器容量完全可以满足应用要求,如果片内的存储器容量不够,可以进行外部扩展数据存储器和程序存储器。

3.定时/计数器

8051单片机内部具有两个16位的定时/计数器,均为加法计数器。可分别配置成定时器或者计数器用。用作定时器用时可实现内部精确的定时;用作计数器式可完成外部事件的脉冲计数,并且具有4种工作方式可供选择。

4.I/O接口

8051单片机配置有4个独立的8位并行I/O接口,分别为P0口、P1口、P2口和P3口,主要用于并行数据的输入和输出。其中P3口的P3.0和P3.1还可配置成一个全双工的串行接口,用于和其他单片机或者设备构成相应的通信系统。

5.中断系统

8051单片机内部集成功能强大的中断系统,系统支持5个中断源和2级中断优先级,配置和使用灵活。

6.时钟振荡电路

内部集成有一个用于构成振荡器的高增益反相放大器,外部只需连接一个石英晶体振荡器和两个电容就能为系统提供准确可靠的时钟信号。

1.2.1 CPU

8051单片机的CPU主要包含运算器和控制器,用于实现数据的运算和产生各种控制信号,是单片机的核心部分。

1.运算器

运算器主要由算术逻辑运算单元(Arithmetic Logical Unit,ALU)、累加器(A)、位处理器和程序状态字(Program Status Word,PSW)等部分构成,用于实现各种算术和逻辑运算。(1)算术逻辑运算单元(ALU)

ALU主要完成字节数据的各种算术逻辑运算,包括逻辑与、或、异或、求补和清零等逻辑运算以及加、减、乘、除等算术运算,功能十分强大。特别值得一提的是,8051的布尔处理功能还可实现位数据的置位、清零、逻辑与、逻辑或等各种运算,使得8051单片机在各种控制中显示出独特的优势。(2)累加器(A)

累加器(A)是一个8位累加器,也是8051单片机使用最频繁的一个寄存器,几乎所有的算术运算和绝大多数的逻辑运算都是在累加器A中完成的,因此也给8051单片机带来一个“瓶颈”现象。(3)程序状态字(PSW)

程序状态字(PSW)是一个8位的寄存器,其主要有两个作用,一是通过该寄存器反映当前CPU的运行状态,二是通过该寄存器控制CPU的运行。PSW寄存器数据格式如下所示,并具体描述PSW中各位的主要含义。

1)Cy(PSW.7)称为进位标志位,在程序设计中通常用C来表示,当CPU在执行算术和逻辑运算时,如果有进位或者借位,该位可被硬件自动置“1”,否则被清“0”。

2)Ac(PSW.6)称为辅助进位标志位,在运算过程中如果低4位有向高4位进位或者借位时,该位同样可被硬件自动置“1”,否则被清“0”。

3)F0(PSW.5)称为用户标志位,是专门留给用户使用的一个标志位,可通过程序置“1”或者清“0”,可用于存放相应判断的标志位。

4)RS1(PSW.4)、RS0(PSW.3)是工作寄存器区选择控制位1和位0,8051单片机为R0~R7共8个通用寄存器提供了4组存储区域,具体存放于哪个地址区域,由RS1和RS0这两位的组合情况来选择,详细的工作寄存器地址区域分配表如表1-2所示。表1-2 工作寄存器地址区域分配表

5)OV(PSW.2)是溢出标志位,当执行算术运算时,内部硬件会根据运算结果是否溢出自动对该位置“1”或者清“0”。

6)-(PSW.1)为系统保留位,暂时不能使用。

7)P(PSW.0)是奇偶标志位,用于指示累加器A中“1”的个数是奇数还是偶数,当P=1时,A中“1”的个数为奇数;P=0则表明A中“1”的个数为偶数。上述的Cy、Ac、OV、P标志位的变化受各种运算情况影响,情况较为复杂,本书将在第2章中结合具体的指令进行详细的说明。

2.控制器

控制器是单片机的控制部件,主要负责指令的读取、译码和执行。控制器能根据指令的执行情况产生相应的控制信号,协调单片机内各部件工作。其内部主要包含程序计数器(Program Counter,PC)、指令寄存器(Instruction Register,IR)、指令译码器(Instruction Decoder,ID)和各种时序控制电路。(1)程序计数器(PC)

程序计数器(PC)是一个独立的16位寄存器,用于存放下一条要执行的指令在程序存储器中的存储地址,单片机复位成功后,该寄存器被自动设置成0000H,保证单片机从程序存储器的起始位置读取指令。

同时PC还具有计数器的功能,单片机每取出一条指令,PC寄存器的数值会自动加1,保证了单片机能自动地从程序存储器中按照地址从小到大的顺序连续读取指令。当单片机碰到转移、子程序调用和返回(含中断服务子程序)指令等情况时,单片机会根据实际情况自动地将PC值修改成目标程序的地址,从而实现了程序的转向。需要强调的一点是,不能采用通过指令直接对PC寄存器赋值来修改PC值的方法进行程序的转向。(2)指令寄存器、指令译码器和时序控制电路

单片机执行程序的过程就是取指令、执行指令的过程。单片机取完指令后,首先将指令送入指令寄存器,之后将指令送至指令译码器,由指令译码器完成指令的译码。时序控制电路会根据译码结果自动产生相应的控制信号,控制单片机的各个组成部件按照一定顺序协调工作。

1.2.2 存储器结构

和传统的个人计算机(Personal Computer,PC)不同,8051单片机存储器结构采用的是哈佛(Harvard)结构。该结构,程序存储器和数据存储器在物理结构上是两个单独的部件,因此都有各自独立的地址空间,8051单片机采用不同的指令对两个存储空间进行访问。以下对8051单片机的程序、数据存储空间进行详细的介绍。

1.程序存储空间

对于8051而言,其内部集成有4KB的程序存储器(地址范围为0000H~0FFFH),主要用于存放实现单片机系统各种功能的应用程序和相关常数。如果设计的单片机应用程序较小的话(小于4KB),只用片内的程序存储器就可满足存储要求,不需要进行外部扩展。

如果开发的应用程序较大,片内的程序存储器容量不够时,就需要进行外部扩展(最多可扩展到64KB)。因此程序存储器的存储空间可以采用全片内和全片外的方式,也可以采用片内和片外相结合的方式。全片外方式就是不用片内的程序存储器,完全把应用程序存储于片外扩展的程序存储器中。片内和片外相结合的方式通常是先利用内部的存储器,容量不够时外部再扩展相应容量的存储器。这样,8051单片机的程序存储空间就包含两部分,一是片内程序存储器空间,二是外部扩展的程序存储器空间,如图1-2所示为8051程序存储器地址结构图。图1-2 8051程序存储器地址结构图

另外,8051单片机在程序存储器的使用上有一个规定,就是8051单片机程序存储器开始的一段区域不能随便使用,该区域的地址范围为0000H~002AH(不同型号的MCS-51系列单片机,地址区域范围也有所不同)。这些区域被预留为存放5个中断源的中断服务子程序,每个中断源占用8B,当单片机对应中断源的中断请求得到8051响应后,8051会自动转向该中断源对应的地址区域执行程序。表1-3所示为8051中断源地址空间分配表。表1-3 8051中断源地址空间分配表

根据前面的介绍,当单片机成功复位后,PC被初始化成0000H,单片机开始从0000H单元处取指令,每取完一条指令,PC会自动加1。如果PC不断的自动加1,这样即使8051没有响应中断,同样也会把所有的中断服务子程序都执行一遍,这不是我们所希望的。这样就需要在程序开始处设置一条专用指令,转到主程序的起始地址。如果中断源对应的服务子程序较大,超过系统分配的地址范围,将影响到其他中断子程序,因此在每个中断源的入口地址处也需要设置相应的转移指令,将程序跳向对应的中断服务子程序的起始地址,具体的实现方法将在中断系统章节中详细介绍。

2.数据存储空间

8051单片机的数据存储空间和程序存储空间类似,也可由片内和片外两部分构成。片内集成有256B(实际可用的为128B)的数据存储器,主要用于存放各种临时数据。用户可根据所需存储数据量大小的实际情况决定是否需要外部扩展,外部最多可扩展64KB。图1-3所示为8051数据存储器地址结构图,需要说明的是,由于8051单片机访问内部RAM和外部RAM的指令不同,这样实际的数据存储区域空间容量要比程序存储空间多128B。

8051单片机内部256B的数据存储器,被分成两大区域,其中高128B区域被映射为特殊功能寄存器(Special Function Register,SFR)区,这些特殊功能寄存器有专门的用途,不能用于数据的存储。因此8051单片机实际可用的数据存储区域只有低128B的区域,在低128B区域又被分成工作寄存器组区、位寻址区和用户RAM区3个区域,这样8051单片机的内部RAM相当于被分成了4个区域,图1-4所示为8051内部数据存储器结构图。图1-3 8051程序存储器地址结构图图1-4 8051内部数据存储器结构图(1)工作寄存器组区

8051单片机设置有R0~R7共8个通用寄存器,为了给程序设计者提供方便,给每组寄存器提供了4个存储区域,具体选择数据存放在哪个区域,可以通过PSW寄存器中的RS1和RS0位来设置,工作寄存器地址区域分配表如表1-4所示。如RS1和RS0被设置成“10”后,那么R0~R7这8个寄存器存储区域被安排在2区,即R0对应的地址为10H,R1的地址为11H,依次类推,R7的地址为17H。表1-4 工作寄存器地址区域分配表(2)位寻址区

位寻址区位于内部RAM地址为20H~2FH的区域中,共16B,每个字节包含有8个二进制位,因此总共有128位,每1位都有独立的位地址,用于实现位寻址,详细的位寻址区字节地址和位地址关系表如表1-5所示。对于这128二进制位的访问,既可以采用字节寻址,还可以采用位寻址。表1-5 位寻址区字节地址和位地址关系表(3)用户RAM区

用户RAM区共有80个单元,地址范围为30H~7FH。该区域主要用来存放中间计算结果等临时数据,还可以用来设置堆栈,对该区域只能采用字节寻址的方式进行访问。(4)特殊功能寄存器区

在8051单片机内部RAM高128B区域离散地安排了21个特殊功能寄存器(SFR),这21个SFR主要用于控制和管理单片机内部主要组成部件,如定时/计数器工作方式设置、启动和停止控制等。不同的SFR有不同的控制和管理功能,主要涉及定时/计数器、中断系统、串行通信接口等。表1-6给出了特殊功能寄存器地址映像表,以下只对部分特殊功能寄存器进行介绍,其他寄存器将在相应的章节中给予详细介绍。表1-6 特殊功能寄存器地址映像表(续)

特殊功能寄存器前带*的表示该特殊功能寄存器支持位寻址,共11个。

1)寄存器B是专门为乘法和除法设计的寄存器,是一个8位寄存器。进行乘法运算时,在运算前B寄存器用于存放乘数,运算结束后用于存放乘积的高8位;进行除法运算时,运算前存放除数,运算结束后存放余数。不进行乘除法运算时,该寄存器也可作为他用。

2)堆栈指针SP是一个8位寄存器,用来存放堆栈栈顶的地址,即SP永远指向栈顶。所谓的堆栈就是内存中一段连续(地址连续)的存储区域,存储区域的大小称为堆栈的深度。堆栈主要是为了子程序调用和中断操作等设置的,用于存放断点地址等重要信息。当单片机调用子程序或者响应中断时,为了保证子程序执行完(包括中断服务子程序)后,还能返回到主程序继续执行程序,就需要把主程序中被中断执行的程序的地址(断点地址)保存起来,这就是所说的断点保护。另外,当单片机执行子程序后有可能修改了某些寄存器或者存储单元中的内容,为了保证返回主程序后这些寄存器和存储单元的内容仍保持为调用子程序之前的状态,所以也需要把这些寄存器单元的内容进行保护,即所说的现场保护。

堆栈的操作主要有两种方式,一是入栈(也称为压栈)操作,二是出栈(也称为弹栈)操作。遵循“先进后出”(或者“后进先出”)的操作原则。这就如同堆盘子,要想把堆在下面的盘子取出来,必须等到上面的盘子都拿走后才能取出。

8051单片机的堆栈可以设置在低128B的内部RAM中,即地址范围为00H~7FH的内部RAM区域中。8051单片机复位后,SP被初始化成07H,此时,堆栈的底部(栈底)和顶部(栈顶)重合。堆栈的增长方向为低地址向高地址变化,即当有入栈操作时,堆栈指针SP自动加1,指向下一个单元,之后存入数据;进行弹栈操作时,是先取出SP指向地址单元中的数据,之后SP自动减1。

3)数据指针DPTR是1个16位的特殊功能寄存器,当单片机访问程序存储器、外部RAM和I/O端口时,用于提供16位的地址,是8051单片机中唯一可以通过指令赋值的16位寄存器。既可以进行16位的形式操作,又可以展开成两个独立的8位寄存器使用,高8位为DPH,低8位为DPL。

1.2.3 I/O接口

8051单片机有4个8位的并行I/O端口,分别为P0口、P1口、P2口和P3口,共32根I/O口线,8051单片机和外部设备的数据交换都是通过这些I/O端口来实现的。对于这些I/O端口的操作,既可以采用字节寻址的方式操作,又可以采用位寻址的方式操作,多种寻址方式的支持,为8051单片机的灵活控制提供了方便。

1.3 8051引脚及其功能

单片机数据的输入和输出都是通过相关的引脚来实现的,要掌握单片机的应用,首先应当熟悉单片机各引脚的功能。8051单片机具有40只引脚,通常采用双列直插式封装形式,如图1-5所示为8051单片机引脚图。为了方便描述和记忆,40引脚按照其功能可分成电源与时钟引脚、控制引脚和I/O接口引脚等。图1-5 8051单片机引脚图

1.3.1 电源与时钟引脚

电源和时钟引脚是单片机最基本的引脚,电源引脚的功能主要为单片机提供工作电源,时钟引脚为单片机工作提供可靠的时钟信号。

1.电源引脚

●VCC:40脚,该引脚接+5V电源。

●VSS:20脚,该引脚接电源地。

2.时钟引脚

●XTAL1:19脚,当单片机时钟采用内部振荡方式时,该引脚接石英晶体振荡器的一端,为内部振荡器的输入端。如果采用外部时钟信号时,该引脚接地。

●XTAL2:18脚,该引脚接石英晶体振荡器的另一端,为内部振荡器的输出端。如果采

用外部时钟信号时,该引脚接外部输入的时钟信号。

1.3.2 控制引脚

8051单片机的控制引脚主要用于提供各种控制信号,较多的控制引脚都具有复用功能,以下分别介绍。

1.RST/VPD(9脚)

该引脚具有复用功能,RST是单片机的复位引脚,高电平有效,当该引脚上加上两个机器周期宽度的高电平后,可保证8051成功复位。单片机必须进行复位后才能正常工作,复位成功后,该引脚的电压不能超过0.5V。VPD为8051单片机的备用电源引脚,当单片机主电源VCC低至正常工作电压条件后,将+5V电源输入VPD引脚,保证8051单片机内部RAM中的数据不丢失。

2.(29脚)

该引脚为外部程序存储器选通信号输出引脚,当8051单片机要访问外部程序存储器时,该引脚会自动输出负跳变的脉冲信号,用于外部程序存储器的选通控制。

3.ALE/(30脚)

该引脚也是复用引脚。ALE引脚会输出频率为外部晶振频率6分频的时钟信号,即一个机器周期时间内出现两个脉冲。该引脚主要用于输出地址锁存允许信号,用于控制外部地址锁存器锁存地址/数据复用总线上的地址数据。同时还有第二功能,当对单片机进行编程(烧结)操作时,通过引脚输入编程脉冲。

4.(31脚)

该引脚用作时,用于控制单片机选择内部还是外部的程序存储器,=0即该引脚接低电平时,8051单片机访问外部的程序存储器;当=1时,单片机先访问内部的程序存储器,当PC值超过内部存储器4KB的地址范围(0000H~0FFFH)时,将自动从外部程序存储器取指令。VPP为该引脚的第二功能,当对内部程序存储器编程时,用于提供编程电压,和从引脚输入的编程脉冲配合,完成内部程序存储器的固化编程功能。

1.3.3 I/O接口引脚

1.P0.0~P0.7(39~32脚)

这8个引脚构成了8位双向三态的P0口,用于构建8051单片机的8位数据总线和低8位的地址总线,两种总线分时复用,可驱动8个LS型TTL负载。

2.P1.0~P1.7(1~8脚)

这8个引脚构成了8位准双向的P1口,可驱动4个LS型TTL负载。

3.P2.0~P2.7(21~28脚)

这8个引脚构成了8位准双向的P2口,用于构建8051单片机的高8位地址总线,可驱动4个LS型TTL负载。

4.P3.0~P3.7(10~17脚)

这8个引脚构成了8位准双向的P3口,还可以构建第二复用功能,用于扩展8051单片机的功能,可驱动4个LS型TTL负载。

1.4 并行口内部结构和工作原理

8051单片机的4个并行I/O接口分别称为P0口,P1口,P2口和P3口,每个并行口都有8根I/O接口线,总共32根线。4个并行口的内部结构有所不同,因此各端口的功能也不尽相同。4个并行I/O接口都可用作普通I/O口使用,除此之外,通常还利用P0口来构建8位数据总线低8位的地址总线,因此P0口就是一个地址/数据复用总线接口;利用P2口来构建高8位地址总线;P3口可以作第二功能用,用以实现外部中断、串行通信等功能;而P1口只能作为普通I/O口来使用。

1.4.1 P0口

P0口字节地址为80H,包含P0.0~P0.7这8个引脚,位地址分别为80H~87H。8根口线内部都包含数据输出锁存器、输入缓冲器、多路转接开关、MOS管和控制电路。各引脚内部结构和功能完全一样,但是电路却相互独立,图1-6所示为P0口的位结构框图,P0口具有普通I/O口和地址/数据复用总线两种工作方式。

1.地址.数据复用总线方式

通常情况下P0口工作在地址/数据复用总线方式的情形较多,工作在该方式下,P0口是一个双向、三态的8位并行I/O接口。用作地址/数据复用总线方式时,控制信号输出高电平(逻辑“1”),多路转接开关拨向地址/数据总线端,T1和T2这2个场效应管构成推挽式输出,即T1和T2只有一个导通。当地址/数据总线端口输出“1”时,由于控制信号也输出“1”,因此T1导通;而输出数据经非门取反后为“0”,T2截止,内部VCC电压作用于P0.X引脚上,输出逻辑“1”。当地址/数据总线端输出0时,T1截止,T2导通,P0.X引脚输出逻辑“0”。

另外,因为P0口内部有两个场效应管和一个三态门构成,当T1、T2和三态门都处于截止状态时,P0.X就处于高阻状态,因此P0口作为地址/数据复用总线时,还是一个三态接口。

2.普通I/O口方式

当P0口工作在普通I/O口方式下时,控制信号输出逻辑“0”,场效应管T1截止,多路开关拨向锁存器的端。如果内部总线输出逻辑“0”,锁存器端输出逻辑“1”,T2导通,P0.X引脚输出“0”;如果内部总线输出逻辑“1”,锁存器端输出逻辑“0”,T2截止,为了保证P0.X引脚也能输出逻辑“1”,就需要外接一个上拉电阻,把P0.X引脚上拉至高电平,从而实现逻辑“1”的输出。但是P0口外接上拉电阻后,就不具有高阻状态了,因此,P0口作为普通I/O口时,不是三态接口。图1-6 P0口的位结构框图

以上只分析了P0口用作输出口使用的情况,如果P0口作为输入口使用时,外部输入的信号在读引脚控制下,经三态门进入内部总线,完成数据的输入。需要强调的一点是,当P0.X引脚输入高电平时,如果T2导通,那么高电平也会被拉至低电平,从而无法实现逻辑“1”的输入。因此作为输入口用时,需要关断T2,具体的方法就是内部总线先写入“1”,锁存器Q端输出逻辑“0”关断T2。

1.4.2 P1口

P1口字节地址为90H,包含P1.0~P1.7这8个引脚,位地址分别为90H~97H。P1口内部结构和P0有所不同,图1-7所示为P1口的位结构框图。由于P1口只能作为普通I/O口使用,因此不需要多路转接开关。另外内部集成有上拉电阻,这样P1口作为输出口使用时,外部无须再接上拉电阻。由于内部有上拉电阻,这样P1口就不是一个三态接口,因此把其称为准双向口。图1-7 P1口的位结构框图

1.4.3 P2口

P2口字节地址为A0H,包含P2.0~P2.7这8个引脚,位地址分别为A0H~A7H。P2口可作为普通I/O口使用,也可作为高8位地址总线接口使用,因此与P0口内部结构类似,图1-8所示为P2口的位结构框图。图1-8 P2口的位结构框图

1.普通I/O口方式

P2口作为普通I/O口使用时,多路转接开关拨向锁存器的Q端。由于场效应管前面有个非门,和P1口接锁存器的Q端效果一样,其工作原理和P1口类似,读者可自行分析,在此不再赘述。

2.地址总线工作方式

作为高8位地址总线使用时,开关拨向地址端。由于其只作地址总线使用,无须提供数据总线,因此其不需要设置为三态接口。另外由于其内部也集成有上拉电阻,因此P2口也是一个准双向口。

1.4.4 P3口

P3口字节地址为B0H,包含P3.0~P3.7这8个引脚,位地址分别为B0H~B7H。P3口可作为普通I/O口使用,也可作为第二功能使用,图1-9所示为P3口的位结构框图。由于8051单片机引脚数目较少,为了增加单片机的功能,P3口也被设置成具有复用功能的I/O接口。图1-9 P3口的位结构框图

1.普通I/O口方式

I/O口进行数据输出时,第二输出功能端应保持高电平状态,即第二输出功能控制端输出逻辑“1”。如果内部总线输出“1”,与非门输出“0”,场效应管T截止,P3.X引脚被上拉电阻拉至高电平,从而实现逻辑“1”的输出;如果内部总线输出“0”,与非门输出

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载