第1章单片机的硬件系统.ppt_第1页
第1章单片机的硬件系统.ppt_第2页
第1章单片机的硬件系统.ppt_第3页
第1章单片机的硬件系统.ppt_第4页
第1章单片机的硬件系统.ppt_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实训1 信号灯的控制1 1.1 概述 1.2 MCS-51单片机结构和原理 1.3 并行输入/输出口电路结构 1.4 时钟电路与复位电路,返回主目录,第1章 MCS-51单片机系统机构,第1章 单片机硬件系统,1实训目的 (1) 了解单片机实验系统的基本组成及功能。 (2) 通过最简应用系统实例了解单片机的基本工作过程。 2实训设备与器件 实训设备:单片机开发系统,程序固化器。 实训电路:参见附录1原理图。 3实训步骤及要求 1) 分析附录1所示的原理图,了解以8031为基础的单片 实验系统的基本组成及功能,1) 分析附录1所示的原理图,了解以8031为基础的单片机实验系统的基本组成及功能 本

2、实训系统的核心器件是8031单片机芯片,同时外部还扩展了一片EPROM2764、一片RAM6264、一片EEPROM2864A、一片8155、一片ADC0809和MAX232等。下面首先将这些主要芯片的功能简单介绍如下: (1)EPROM2764:紫外线可擦除、电可编程的只读存储器,通常用于存放编制好的程序和常数表格。 (2)RAM6264:静态随机存储器,通常用于存放采集到的原始数据、处理中的数据及最后的结果。,(3)EEPROM2864A:电可擦除、电可编程的只读存储它是近年来广泛被使用的一种只读存储器。其主要优点是能在应用系统中进行在线改写,并能在断电情况下保存数据而不需要保护电源。它兼

3、有程序存储器与数据存储器的特点。 关于上述三种存储器以及与单片机的连接、使用将在第6章详细介绍。 (4)8155:一种可编程的RAM和I/O接口芯片,本实训系统主要用它来作扩展键盘和数码管显示的接口。详细内容将在第6、7章介绍。 (5) ADC0809:一种8路模拟输入的8位逐次逼近式A/D转换器件。详细内容将在第7章介绍。 (6)MAX232:标准的串行口电平转换器,用来将单片机 和PC机联系起来,将在第8章介绍。,此外,本系统还扩展了一片74LS245(8总线接收/发 送器),一片74LS373(8D三态输出锁存器),一片74LS138(3-8线译码器)和一片74LS240(8位反码三态输

4、出驱动器)。 本书将以此实训实验系统电路为基础开展8个实训项目和课程设计,从而使读者掌握单片机的硬件结构、软件编程及调试。 2) 向EPROM2764写入程序机器码 通过程序固化器将下列程序中对应的机器码依次写入到 EPROM2764的0000H0015H地址单元中:,机器码 地址 程序 ORG 0000H ;表示程序从地址0000H存放 75 90 000000H START:MOV P1,#00H 11 17 0003H ACALL DELAY;延时一段时间,便于观察 75 90 FF0005H MOV P1,#0FFH 11 17 0008H ACALLDELAY;延时 80 E9 00

5、0AH SJMPSTART ;返回,从START开始重复 7B FF 000CH DELAY: MOV R3,#0FFH ; 一段延时子程序,7C FF 000EH DEL2: MOV R4,#0FFH 00 0010H DEL1: NOP DC FD 0011H DJNZ R4,DEL1 DB F9 0013H DJNZ R3,DEL2 22 0015H RET ;子程序返回 END ;表示程序结束,上列程序表由几部分组成。左边所列的一组十六进制数是机器码,以及机器码在存储器中的存贮地址(0000H0015H)。机器码是计算机可以识别的语言,例如75,90,00等。这些是我们写入2764的内

6、容,它们是一段程序。 中间所列的是和机器码对应的源程序(一系列指令),例如:MOV P1,#00H。关于单片机的指令以及程序设计将在第3、4章详细介绍,在第4章的实训4中也会重点讨论上述程序。 最右边所列的是对程序的简单说明,以便于阅读。程序固化器的具体操作过程可参见相应的说明书。,3) 运行程序 将写好的EPROM插入实训电路板相应位置,再接上电源,启动运行,观察8个发光二极管的亮灭状态。 4. 实训分析与总结 (1) 实训结果是:实训电路板中的8个发光二极管按照全亮、全灭的规律不停地循环变化。 (2) 本实训所涉及的电路可参见附录1原理图的左上角:单片机的18引脚通过集成芯片74LS240

7、(8个非门)接到8个发光二极管上。8个发光二极管的阳极通过一个限流电阻接+5 V电源,8个阴极连在一起接地。单片机的这8个引脚对应其内部的一个并行I/O口P1口(有关P1口的具体结构在本章正文中介绍)。这些是本实训所涉及的硬件部分。,从附录原理图可见,当P1口的某个引脚为低电平时,相应的发光二极管变亮;当P1口的某个引脚为高电平时,相应的发光二极管熄灭。这样,我们可以通过向P1口写入一个8位二进制数来改变每个管脚的电平状态。通过相应指令可以向P1口写入数据。 实训程序中的第一条指令MOV P1,#00H(其中 # 表示其后面为常数,H表示其前面的常数为十六进制数,写成二进制形式为#000000

8、00B,B表示二进制数)对应的机器码为75H 90H 00H,表示将数据00H送给P1口。这样,P1口的8个管脚状态与写入数据之间的关系如下:,写入数据位 D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 0 0 对应P1口管脚名称 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 管脚电平状态 低 低 低 低 低 低 低 低 发光二极管状态 亮 亮 亮 亮 亮 亮 亮 亮 所以,在通电运行后,发光二极管会出现全亮的状态。 同理,当执行程序中的第三条指令MOV P1,# FFH (即#11111111B)时,发光二极管会全灭。 由此可见,我们

9、可以通过软件程序来完成对硬件 电路的控制。,(3) 实训中,我们事先将程序(机器码)正确地固化到程序存储器EPROM 2764芯片中,然后把2764芯片插入实验板,并与单片机(例如8031)通过一定的方式连接起来,接上电源后,发光二极管按照既定的规律亮灭。这说明,2764中的写入内容能够依次读出,并且送入到单片机内部完成相应的功能,而这一切工作都是在单片机的控制下来实现的,也就是说,单片机在执行机器码。,我们知道,存储器2764有三类总线:数据线、地址线和控制线。在单片机应用系统中,这三类总线都是由单片机芯片提供的,并且由单片机控制数据的读取。关于单片机的具体工作过程将在1.5节介绍。 (4)

10、 本实训中,机器码写在了单片机之外的一片EPROM中,该EPROM是用来存储编好的程序的,所以可以称之为程序存储器。实际上,有的单片机内部也具有一定容量的片内程序存储器,当内部存储器容量够用时,就不必外接EPROM了。,1.1 概 述,1.1.1 单片机及单片机应用系统 1. 微型计算机及微型计算机系统 微型计算机(Microcomputer)简称微机,是计算机的一个重要分类。人们通常按照计算机的体积、性能和应用范围等条件,将计算机分为巨型机、大型机、中型机、小型机和微型机等。微型计算机不但具有其它计算机快速、精确、程序控制等特点,最突出的是它还具有体积小、重量轻、功耗低、价格便宜等优点。个人

11、计算机简称PC(Personal Computer)机,是微型计算机中应用最为广泛的一种,也是近年来计算机领域中发展最快的一个分支。由于PC机在性能和价格方面适合个人用户购买和使用,目前,它已经像普通家电一样深入到了家庭和社会生活的各个方面。,微型计算机系统由硬件系统和软件系统两大部分组成。 硬件系统是指构成微机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。 其中,运算器和控制器一般做在一个集成芯片上,统称中央处理单元(Central Processing Unit),简称CPU,是微机的核心部件。CPU配上存放程序和数据的存储器、输入/

12、输出(Input/Output,简称I/O)接口电路以及外部设备即构成微机的硬件系统。,软件系统是微机系统所使用的各种程序的总称。人们通过它对整机进行控制并与微机系统进行信息交换,使微机按照人的意图完成预定的任务。 软件系统与硬件系统共同构成完整的微机系统,两者辅相成,缺一不可。 微型计算机系统组成示意图如图1.1所示。,图1.1 微型计算机系统组成示意图,下面把组成计算机的5个基本部件作简单说明。 1) 运算器 运算器是计算机的运算部件,用于实现算术和逻辑运算。计算机的数据运算和处理都在这里进行。 2) 控制器 控制器是计算机的指挥控制部件,它控制计算机各部分自动、协调地工作。运算器和控制器

13、是计算机的核心部分,常把它们合在一起称之为中央处理器,简称CPU。,3) 存储器 存储器是计算机的记忆部件,用于存放程序和数据。存储器又分为内存储器和外存储器。实训中使用的 EPROM2764便是存贮器。 4) 输入设备 输入设备用于将程序和数据输入到计算机中,如键盘等。 5) 输出设备 输出设备用于把计算机对数据计算或加工的结果,以某种形式显示或打印出来,如显示器、打印机。,通常把外存储器、输入设备和输出设备合在一起称之 为计算机的外部设备,简称“外设”。 2单片微型计算机 单片微型计算机是指集成在一个芯片上的微型计算机,也 就是把组成微型计算机的各种功能部件,包括CPU、随机存取 存储器R

14、AM、只读存储器ROM、基本输入/输出接口电路、 定时器/计数器等部件都制作在一块集成芯片上,构成一个完 整的微型计算机,从而实现微型计算机的基本功能。 单片机内部结构示意图如图1.2所示。,图1.2 单片机内部结构示意图,单片机实质上是一个芯片。 在实际应用中,通常很难将单片机直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。,3单片机应用系统及组成 单片机应用系统是以单片机为核心,配以输入、输出、显 示、控制等外围电路和软件,能实现一种或多种功能的实用系统。 单片机应用系统的组成如图1.3所示。,图1.3 单片机应用系统的组成

15、,由此可见,单片机应用系统的设计人员必须从硬件和软件 两个角度来深入了解单片机,并能够将二者有机结合起来,才 能形成具有特定功能的应用系统或整机产品。,自从1974年美国 Fairchild 公司研制出第一台单片机F8之后,迄今为止,单片机经历了由4位机到8位机再到16位机的发展过程。 单片机制造商很多,主要有美国的Intel、Motorola、Zilog等公司。目前,单片机正朝着高性能、多品种方向发展。近年来,32位单片机已进入了实用阶段,但是由于8位单片机在性能价格比上占有优势,而且8位增强型单片机在速度和功能上向现在的16位单片机挑战,因此在未来相当长的时期内,8位单片机仍是单片机的主流

16、机型。,1.1.2 MCS-51单片机系列 尽管单片机类型很多,但是,使用最为广泛的应属MCS-51单片机。 基于这一事实,本书以应用最为广泛的MCS-51系列8位单片机(8031、8051、8751等)为研究对象,介绍单片机的硬件结构、工作原理及应用系统的设计。 MCS-51单片机系列共有十几种芯片,如表1.1所示。,表1.1 MCS-51系列单片机分类表,表中列出了MCS-51单片机系列的芯片型号,以及它们的技术性能指标,使我们对它们的基本情况有了一个概括的了解。下面我们就在这个表的基础上对MCS-51系列单片机作进一步说明。 151子系列和52子系列 MCS-51系列又分为51和52两个

17、子系列,并以芯片型号的最末位数字作为标志。其中,51子系列是基本型,而52子系列则属增强型。52子系列功能增强的具体方面,从表1.1所列内容中可以看出:,(1) 片内ROM从4 KB增加到8 KB。 (2) 片内RAM从128 B增加到256 B。 (3) 定时/计数器从2个增加到3个。 (4) 中断源从5个增加到6个。 在52子系列的内部ROM中,以掩膜方式集成有8 KB BASIC解释程序,这就是通常所说的8052-BASIC。这意味 着单片机已可以使用高级语言。该BASIC与基本BASIC相 比,增加了一些控制语句,以满足单片机作为控制机的需要。,2单片机芯片半导体工艺 MCS-51系列

18、单片机采用两种半导体工艺生产。一种是HMOS工艺,即高速度、高密度、短沟道MOS工艺。另外一种是CHMOS工艺,即互补金属氧化物的HMOS工艺。表1.1中,芯片型号中带有字母“C”的,为CHMOS芯片,其余均为一般的HMOS芯片。 CHMOS是CMOS和HMOS的结合,除保持了HMOS高速度和高密度的特点之外,还具有CMOS低功耗的特点。例如8051的功耗为630 mW,而80C51的功耗只有120 mW。在便携式、手提式或野外作业仪器设备上,低功耗是非常有意义的,因此,在这些产品中必须使用CHMOS的单片机芯片。,3片内ROM存储器配置形式 MCS-51单片机片内程序存储器有三种配置形式,即

19、掩膜ROM、EPROM和无ROM。这三种配置形式对应三种不同的单片机芯片,它们各有特点,也各有其适用场合,在使用时应根据需要进行选择。 一般情况下,片内带掩膜型ROM适用于定型大批量应用产品的生产;片内带EPROM适合于研制产品样机;外接EPROM的方式适用于研制新产品。最近,Intel公司又推出片内带EEPROM型的单片机,可以在线写入程序。,1.2 MCS-51单片机结构和原理,1 .2.1 MCS-51单片机的内部组成及信号引脚 MCS-51单片机的典型芯片是8031、8051、8751。8051 内部有4 KB ROM,8751内部有4KB EPROM,8031内部无 ROM;除此之外

20、,三者的内部结构及引脚完全相同。因此, 以8051为例,说明本系列单片机的内部组成及信号引脚。 18051单片机的基本组成 8051单片机的基本组成请参见图1.4。下面介绍各部分的 基本情况。,1) 中央处理器(CPU) 中央处理器是单片机的核心,完成运算和控制功能。 MCS-51的CPU能处理8位二进制数或代码。 2) 内部数据存储器(内部RAM) 8051芯片中共有256个RAM单元,但其中后128单元被 专用寄存器占用,能作为寄存器供用户使用的只是前128单 元,用于存放可读写的数据。因此通常所说的内部数据存储器 就是指前128单元,简称内部RAM。,图1.4 MCS-51 单片机结构框

21、图,3) 内部程序存储器(内部ROM) 8051共有4 KB掩膜ROM,用于存放程序、原始数 据或表格,因此,称之为程序存储器,简称内部ROM。 4) 定时/计数器 8051共有两个16位的定时/计数器,以实现定时或 计数功能,并以其定时或计数结果对计算机进行控制。 5) 并行I/O口 MCS-51共有4个8位的I/O口(P0、P1、P2、P3), 以实现数据的并行输入/输出。在实训中我们已经使用了 P1口,通过P1口连接8个发光二极管。,6) 串行口 MCS-51单片机有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为

22、同步移位器使用。 7) 中断控制系统 MCS-51单片机的中断功能较强,以满足控制应用的需要。8051共有5个中断源,即外中断两个,定时/计数中断两个,串行中断一个。全部中断分为高级和低级共两个优先级别。 8) 时钟电路 MCS-51芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率一般为6 MHz和12 MHz。,从上述内容可以看出,MCS-51虽然是一个单片机芯片,但作为计算机应该具有的基本部件它都包括,因此,实际上它已是一个简单的微型计算机系统了。 2. MCS-51的信号引脚 MCS-51是标准的40引脚双列直插式集成电路芯片,引脚排

23、列请参见图1.5。 1) 信号引脚介绍 P0.0 P0.7: P0口8位双向口线。 P1.0 P1.7 :P1口8位双向口线。 P2.0 P2.7 :P2口8位双向口线。 P3.0 P3.7 :P3口8位双向口线。,图1.5 MCS-51引脚图,ALE:地址锁存信号输出端。在访问片外存储器时,高电平有效,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。此外,ALE以晶振1/6的固定频率输出正脉冲,可作为外部时钟或外部定时脉冲使用。 :外部程序存储器读选通信号。在读外部ROM时, 有效(低电平),以实现外部ROM单元的读操作。 :访问程序存储控制信号。当信号为低电平时

24、,对ROM的读操作限定在外部程序存储器;当信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。,RST:复位信号。当输入的复位信号延续两个机器周期以上的高电平时,即为有效,用以完成单片机的复位初始化操作。 XTAL1和XTAL2:外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。 VSS:地线。 VCC:+5 V电源。 以上是MCS-51单片机芯片40条引脚的定义及简单功能说明,读者可以对照实训电路找到相应引脚,在电路中查看每个引脚的连接使用。,2) 信号引脚的第二功能 由于工艺及标准化等原因,芯片

25、的引脚数目是有限制的。例如,MCS-51系列把芯片引脚数目限定为40条,但单片机为实现其功能所需要的信号数目却远远超过此数,因此就出现了需要与可能的矛盾。如何解决这个矛盾?“兼职”是惟一可行的办法,即给一些信号引脚赋以双重功能。如果把前述的信号定义为引脚第一功能的话,则根据需要再定义的信号就是它的第二功能。下面介绍一些信号引脚的第二功能。,(1) P3口线的第二功能。P3的8条口线都定义有第二功 能,详见表1.2。 (2) EPROM存储器程序固化所需要的信号。有内部EPROM的单片机芯片(例如8751),为写入程序需提供专门的编程脉冲 和 编程电源,这些信号也是由信号引脚以第二功能的形式提供

26、的,即: 编程脉冲:30脚(ALE/ ) 编程电压(25 V):31脚( /VPP),表1.2 P3口各引脚与第二功能表,(3) 备用电源引入。MCS-51单片机的备用电源也是以第 二功能的方式由9脚(RST/VPD)引入的。当电源发生故障,电 压降低到下限值时,备用电源经此端向内部RAM提供电压,以 保护内部RAM中的信息不丢失。 对于各种型号的芯片,其引脚的第一功能信号是相同的,所不同的只在引脚的第二功能信号。 对于9、30和31三个引脚,由于第一功能信号与第二功能 信号是单片机在不同工作方式下的信号,因此不会发生使用上 的矛盾。 P3口的情况却有所不同,它的第二功能信号都是单片机重 要控

27、制信号。因此,在实际使用时,都是先按需要选用第二功 能信号,剩下的才以第一功能的身份作数据位的输入/输出使 用。,1.2.2 MCS-51内部数据存储器 MCS-51单片机的芯片内部有RAM和ROM两类存储器, 即所谓的内部RAM和内部ROM,首先分析内部RAM。 1. 内部数据存储器 低128单元 8051的内部RAM共有256个单元,通常把这256个单元按 其功能划分为两部分:低128单元(单元地址00H7FH)和 高128单元(单元地址80HFFH)。图1.6所示为低128单元 的配置图。,图1.6 片内RAM的配置,低128单元是单片机的真正RAM存储器,按其用途划分为寄 存器区、位寻

28、址区和用户RAM区三个区域。 1) 寄存器区 8051共有4组寄存器,每组8个寄存单元(各为8),各组 都以R0R7作寄存单元编号。寄存器常用于存放操作数中间结 果等。由于它们的功能及使用不作预先规定,因此称之为通用 寄存器,有时也叫工作寄存器。4组通用寄存器占据内部RAM 的00H1FH单元地址。 在任一时刻,CPU只能使用其中的一组寄存器,并且把正在 使用的那组寄存器称之为当前寄存器组。到底是哪一组,由程序 状态字寄存器PSW中RS1、RS0位的状态组合来决定。,通用寄存器为CPU提供了就近存储数据的便利,有利于提 高单片机的运算速度。此外,使用通用寄存器还能提高程序编 制的灵活性,因此,

29、在单片机的应用编程中应充分利用这些寄 存器,以简化程序设计,提高程序运行速度。 2) 位寻址区 内部RAM的20H2FH单元,既可作为一般RAM单元使 用,进行字节操作,也可以对单元中每一位进行位操作,因此 把该区称之为位寻址区。位寻址区共有16个RAM单元,计128 位,地址为00H7FH。MCS-51具有布尔处理机功能,这个位 寻址区可以构成布尔处理机的存储空间。这种位寻址能力是 MCS-51的一个重要特点。表1.3为位寻址区的位地址。,表1.3 片内RAM位寻址区的位地址,3) 用户RAM区 在内部RAM低128单元中,通用寄存器占去32个单元,位 寻址区占去16个单元,剩下80个单元,

30、这就是供用户使用的 一般RAM区,其单元地址为30H7FH。 对用户RAM区的使用没有任何规定或限制,但在一般应 用中常把堆栈开辟在此区中。 2. 内部数据存储器高128单元 内部RAM的高128单元是供给专用寄存器使用的,其单元 地址为80HFFH。因这些寄存器的功能已作专门规定,故称 之为专用寄存器(Special Function Register),也可称为特殊 功能寄存器。,1) 专用寄存器(SFR)简介 8051共有21个专用寄存器,现把其中部分寄存器简单介绍 如下: (1) 程序计数器(PCProgram Counter)。在实训中,我 们已经知道PC是一个16位的计数器,它的作

31、用是控制程序的执 行顺序。其内容为将要执行指令的地址,寻址范围达64 KB。PC 有自动加1功能,从而实现程序的顺序执行。PC没有地址,是不 可寻址的,因此用户无法对它进行读写,但可以通过转移、调 用、返回等指令改变其内容,以实现程序的转移。因地址不在 SFR(专用寄存器)之内,一般不计作专用寄存器。,(2) 累加器(ACCAccumulator)。累加器为8位寄存器, 是最常用的专用寄存器,功能较多,地位重要。它既可用于存 放操作数,也可用来存放运算的中间结果。MCS-51单片机中 大部分单操作数指令的操作数就取自累加器,许多双操作数指 令中的一个操作数也取自累加器。 (3) B寄存器。B寄

32、存器是一个8位寄存器,主要用于乘除运 算。乘法运算时,B存乘数。乘法操作后,乘积的高8位存于B 中,除法运算时,B存除数。除法操作后,余数存于B中。此 外,B寄存器也可作为一般数据寄存器使用。,(4) 程序状态字(PSWProgram Status Word)。程序状态字是一个8位寄存器,用于存放程序运行中的各种状态信息。其中有些位的状态是根据程序执行结果,由硬件自动设置的,而有些位的状态则使用软件方法设定。PSW的位状态可以用专门指令进行测试,也可以用指令读出。一些条件转移指令将根据PSW有些位的状态,进行程序转移。PSW的各位定义如下:,除PSW.1位保留未用外,其余各位的定义及使用如下:

33、 CY(PSW.7)进位标志位。CY是PSW中最常用的标志位。其功能有二:一是存放算术运算的进位标志,在进行加或减运算时,如果操作结果的最高位有进位或借位时,CY由硬件置“1”,否则清“0”;二是在位操作中,作累加位使用。位传送、位与、位或等位操作,操作位之一固定是进位标志位。,AC(PSW.6)辅助进位标志位。在进行加减运算 中,当低4位向高4位进位或借位时,AC由硬件置“1”,否则 AC位被清“0”。在BCD码调整中也要用到AC位状态。 F0(PSW.5)用户标志位。这是一个供用户定义的 标志位,需要利用软件方法置位或复位,用以控制程序的转向。 RS1和RS0(PSW.4,PSW.3)寄存

34、器组选择位。它们 被用于选择CPU当前使用的通用寄存器组。通用寄存器共有4 组,其对应关系如下:,这两个选择位的状态是由软件设置的,被选中的寄存器 组即为当前通用寄存器组。但当单片机上电或复位后, RS1 RS0 = 0 0。 OV(PSW.2)溢出标志位。在带符号数加减运算 中,OV=1表示加减运算超出了累加器A所能表示的符号数有 效范围(-128 +127),即产生了溢出,因此运算结果是错 误的,否则,OV=0表示运算正确,即无溢出产生。 在乘法运算中,OV=1表示乘积超过255,即乘积分别在 B与A中,否则,OV=0,表示乘积只在A中。 在除法运算中,OV=1表示除数为0,除法不能进行,

35、否 则,OV=0,除数不为0,除法可正常进行。,P(PSW.0)奇偶标志位。表明累加器A中内容的奇 偶性。如果A中有奇数个“1”,则P置“1”,否则置“0”。凡是 改变累加器A中内容的指令均会影响P标志位。 此标志位对串行通信中的数据传输有重要的意义。在串 行通信中常采用奇偶校验的办法来校验数据传输的可靠性。 (5) 数据指针(DPTR)。数据指针为16位寄存器。编程 时,DPTR既可以按16位寄存器使用,也可以按两个8位寄存 器分开使用,即: DPH 是 DPTR高位字节 DPL 是 DPTR低位字节,DPTR通常在访问外部数据存储器时作地址指针使用。 由于外部数据存储器的寻址范围为64 K

36、B,故把DPTR设计为 16位。 (6) 堆栈指针(SPStack Pointer)。堆栈是一个特殊的 存储区,用来暂存数据和地址,它是按“先进后出”的原则存 取数据的。堆栈共有两种操作:进栈和出栈。 由于MCS-51单片机的堆栈设在内部RAM中,因此SP是 一个8位寄存器。系统复位后,SP的内容为07H,从而复位后 堆栈实际上是从08H单元开始的。但08H1FH单元分别属于 工作寄存器13区,如程序要用到这些区,最好把SP值改为 1FH或更大的值。,一般在内部RAM的30H7FH单元中开辟堆栈。SP的内 容一经确定,堆栈的位置也就跟着确定下来,由于SP可初始 化为不同值,因此堆栈位置是浮动的

37、。 此处,只集中讲述了6个专用寄存器,其余的专用寄存 器(如TCON、TMOD、IE、IP、SCON、PCON、SBUF等) 将在以后章节中陆续介绍。 2) 专用寄存器中的字节寻址和位地址 MCS-51系列单片机有21个可寻址的专用寄存器,其中 有11个专用寄存器是可以位寻址的。 下面把各寄存器的字节地址及位地址一并列于表1.4中。,表1.4 MCS-51专用寄存器地址表,SFRMSB 位地址/位定义 LSB字节地址 BF7F6F5F4F3F2F1F0F0H ACCE7E6E5E4E3E2E1E0E0H PSWD7D6D5D4D3D2D1D0D0H CYACF0RS1RS0OVF1P IPBF

38、BEBDBCBBBAB9B8B8H /PSPT1PX1PT0PX0 P3B7B6B5B4B3B2B1B0B0H P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0,续表(2),IEAFAEADACABAAA9A8A8H EA/ESET1EX1ET0EX0 P2A7A6A5A4A3A2A1A0A0H P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0 SBUF(99H) SCON9F9E9D9C9B9A999898H SM0SM1SM2RENTB8RB8TIRI P1979695949392919090H P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.

39、0 TH1(8DH),续表(3),TH0(8CH) TL1(8BH) TL0(8AH) TMODGATEC/M1M0GATEC/M1M0(89H) TCON8F8E8D8C8B8A898888H TF1TR1TF0TR0IE1IT1IE0IT0 PCONSMOD/(87H) DPH(83H) DPL(82H) SP(81H) P0878685848382818080H P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0,对专用寄存器的字节寻址问题作如下几点说明: (1) 21个可字节寻址的专用寄存器是不连续地分散在 内部RAM高128单元之中,尽管还余有许多空闲地址, 但用户并不

40、能使用。 (2) 程序计数器PC不占据RAM单元,它在物理上 是独立的,因此是不可寻址的寄存器。 (3) 对专用寄存器只能使用直接寻址方式,书写时既 可使用寄存器符号,也可使用寄存器。,表1.4中,凡字节地址不带括号的寄存器都是可进行位寻址的寄存器,带括号的是不可位寻址的寄存器。 全部专用寄存器可寻址的位共83位,这些位都具有专门的定义和用途。这样,加上位寻址区的128位,在MCS-51的内部RAM中共有128+83=211个可寻址位。,1.2.3 MCS-51内部程序存储器 MCS-51的程序存储器用于存放编好的程序和表格常数。8051片内有4 KB的ROM,8751片内有4 KB的EPRO

41、M,8031片内无程序存储器。 MCS-51的片外最多能扩展64 KB程序存储器,片内外的ROM是统一编址的。如 端保持高电平,8051的程序计数器PC在0000H0FFFH地址范围内 (即前4 KB地址) 是执行片内ROM中的程序,当PC在1000HFFFFH地址范围时,自动执行片外程序存储器中的程序;当 保持低电平时,只能寻址外部程序存储器,片外存储器可以从0000H开始编址。,MCS-51的程序存储器中有些单元具有特殊功能,使用时 应予以注意。 其中一组特殊单元是0000H0002H。系统复位后, (PC)=0000H,单片机从0000H单元开始取指令执行程序。如果 程序不从0000H单

42、元开始,应在这三个单元中存放一条无条件 转移指令,以便直接转去执行指定的程序。 还有一组特殊单元是0003H002AH,共40个单元。这40 个单元被均匀地分为5段,作为5个中断源的中断地址区。 其中: 0003H000AH 外部中断0 中断地址区 000BH0012H 定时/计数器0 中断地址区 0013H001AH 外部中断1 中断地址区 001BH0022H 定时/计数器1 中断地址区 0023H002AH 串行 中断地址区,中断响应后,按中断种类,自动转到各中断区的首地址去执行程序,因此在中断地址区中理应存放中断服务程序。但通常情况下,8个单元难以存下一个完整的中断服务程序,因此通常也

43、是从中断地址区首地址开始存放一条无条件转移指令,以便中断响应后,通过中断地址区,再转到中断服务程序的实际入口地址。,1.3 并行输入/输出口电路结构,单片机芯片内还有一项主要内容就是并行I/O口。MCS-51 共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。每个口都 包含一个锁存器、一个输出驱动器和输入缓冲器。实际上,它 们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。 在访问片外扩展存储器时,低8位地址和数据由P0口分时传 送,高8位地址由P2口传送。在无片外扩展存储器的系统中,这 4个口的每一位均可作为双向的I/O端口使用。 MCS-51单片机的4个I/O口都是8位双向

44、口,这些口在结构 和特性上是基本相同的,但又各具特点,以下将分别介绍之。,1.3.1 P0口 P0口的口线逻辑电路如图1.7所示。,图1.7 P0口某位结构,由图可见,电路中包含有一个数据输出锁存器、两个三态数据输入缓冲器、一个数据输出的驱动电路和一个输出控制电路。当对P0口进行写操作时,由锁存器和驱动电路构成数据输出通路。由于通路中已有输出锁存器,因此数据输出时可以与外设直接连接,而不需再加数据锁存电路。 考虑到P0口既可以作为通用的I/O口进行数据的输入/输出,也可以作为单片机系统的地址/数据线使用,为此在P0口的电路中有一个多路转接电路MUX。在控制信号的作用下,多路转接电路可以分别接通

45、锁存器输出或地址/数据线。当作为通用的I/O口使用时,内部的控制信号为低电平,封锁与门,将输出驱动电路的上拉场效应管(FET)截止,同时使多路转接电路MUX接通锁存器Q端 的输出通路。,读端口是指通过上面的缓冲器读锁存器Q端的状态。在端口已处于输出状态的情况下,Q端与引脚的信号是一致的,这样安排的目的是为了适应对口进行“读修改写”操作指令的需要。例如,“ANL P0,A”就是属于这类指令,执行时先读入P0口锁存器中的数据,然后与A的内容进行逻辑与,再把结果送回P0口。对于这类“读修改写”指令,不直接读引脚而读锁存器是为了避免可能出现的错误。因为在端口已处于输出状态的情况下,如果端口的负载恰是一

46、个晶体管的基极,导通了的PN结会把端口引脚的高电平拉低,这样直接读引脚就会把本来的“1”误读为“0”。但若从锁存器Q端读,就能避免这样的错误,得到正确的数据。,但要注意,当P0口进行一般的I/O输出时,由于输出电路是漏极开路电路,因此必须外接上拉电阻才能有高电平输出;当P0口进行一般的I/O输入时,必须先向电路中的锁存器写入“1”,使FET截止,以避免锁存器为“0”状态时对引脚读入的干扰。 在实际应用中,P0口绝大多数情况下都是作为单片机系统的地址/数据线使用,这要比作一般I/O口应用简单。当输出地址或数据时,由内部发出控制信号,打开上面的与门,并使多路转接电路MUX处于内部地址/数据线与驱动

47、场效应管栅极反相接通状态。这时的输出驱动电路由于上、下两个FET处于反相,形成推拉式电路结构,使负载能力大为提高。而当输入数据时,数据信号则直接从引脚通过输入缓冲器进入内部总线。,1.3.2 P1口 P1口的口线逻辑电路如图1.8所示。 因为P1口通常是作为通用I/O口使用的,所以在电路结构上与P0口有一些不同之处: 首先它不再需要多路转接电路MUX; 其次是电路的内部有上拉电阻,与场效应管共同组成输出驱动电路。为此,P1口作为输出口使用时,已经能向外提供推拉电流负载,无需再外接上拉电阻。当P1口作为输入口使用时,同样也需先向其锁存器写“1”,使输出驱动电路的FET截止。,图1.8 P1口某位

48、结构,1.3.3 P2口 P2口的口线逻辑电路如图1.9所示。,图1.9 P2口某位结构图,P2口电路比P1口电路多了一个多路转接电路MUX,这又正好与P0口一样。P2口可以作为通用I/O口使用,这时多路转接电路开关倒向锁存器Q端。通常情况下,P2口是作为高位地址线使用,此时多路转接电路开关应倒向相反方向。,1.3.4 P3口 P3口的口线逻辑电路如图1.10所示。,图1.10 P3口某位结构,P3口的特点在于,为适应引脚信号第二功能的需要,增加了第二功能控制逻辑。由于第二功能信号有输入和输出两类,因此分两种情况说明。 对于第二功能为输出的信号引脚,当作为I/O使用时,第二功能信号引线应保持高

49、电平,与非门开通,以维持从锁存器到输出端数据输出通路的畅通。当输出第二功能信号时,该位的锁存器应置“1”,使与非门对第二功能信号的输出是畅通的,从而实现第二功能信号的输出。,对于第二功能为输入的信号引脚,在口线的输入通路上增加了一个缓冲器,输入的第二功能信号就从这个缓冲器的输出端取得。而作为I/O使用的数据输入,仍取自三态缓冲器的输出端。 不管是作为输入口使用还是第二功能信号输入,输出电路中的锁存器输出和第二功能输出信号线都应保持高电平。,1.4 时钟电路与复位电路,1.4.1 时钟电路与时序 1. 时钟信号的产生 在MCS-51芯片内部有一个高增益反相放大器,其输入 端为芯片引脚XTAL1,

50、其输出端为引脚XTAL2 。而在芯片 的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容, 从而构成一个稳定的自激振荡器,这就是单片机的时钟电 路,如图1.11所示。 时钟电路产生的振荡脉冲经过触发器进行二分频之后, 才成为单片机的时钟脉冲信号。 请注意:时钟脉冲与振荡脉冲之间的二分频关系,否则会 造成概念上的错误。,一般地,电容C1和C2取 30 pF左右,晶体的振荡频 率范围是1.212 MHz。晶体振荡频率高,则系统的时 钟频率也高,单片机运行速度也就快。MCS-51在通常 应用情况下,使用振荡频率为6 MHz或12 MHz。,图1.11 时钟振荡电路,2. 引入外部脉冲信号 在

51、由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,应当引入惟一的公用外部脉冲信号作为各单片机的振荡脉冲。这时,外部的脉冲信号是经XTAL2引脚注入,其连接如图1.12所示。,图1.12 外部时钟源接法,3. 时序 时序是用定时单位来说明的。MCS-51的时序定时单位共有4个,从小到大依次是:节拍、状态、机器周期和指令周期。下面分别加以说明。,1) 节拍与状态 把振荡脉冲的周期定义为节拍(用P表示)。 振荡脉冲经过二分频后,就是单片机的时钟信号的周期, 其定义为状态(用S表示)。 这样,一个状态就包含两个节拍,具前半周期对应的拍节 叫节拍1(P1),后半周期对应的节拍叫节拍2(P2)。

52、2) 机器周期 规定一个机器周期的宽度为6个状态,并依次表示为S1S6。 由于一个状态又包括两个节拍,因此,一个机器周期总共有12 个节拍,分别记作S1P1、S1P2、S6P2。由于一个机器周期 共有12个振荡脉冲周期, 因此机器周期就是振荡脉冲的十二分频。,当振荡脉冲频率为12 MHz时,一个机器周期为1s;当 振荡脉冲频率为6 MHz时,一个机器周期为2s。 3) 指令周期 指令周期是执行一条指令所需要的时间。 是最大的时序定时单位。 它一般由若干个机器周期组成。不同的指令,所需要的 机器周期数也不相同。通常,包含一个机器周期的指令称为 单周期指令,包含两个机器周期的指令称为双周期指令,等

53、 等 。,指令的运算速度与指令所包含的机器周期有关,机器周期 数越少的指令执行速度越快。 MCS-51单片机通常可以分为单周期指令、双周期指令和 四周期指令等三种。 四周期指令只有乘法和除法指令两条,其余均为单周期和 双周期指令。 单片机执行任何一条指令时都可以分为取指令阶段和执行 指令阶段。MCS-51的取指/执行时序如图1.13所示。,图1.13 MCS-51单片机的取指/执行时序(a) 单字节单周期指令;(b) 双字节单周期指令;(c) 单字节双周期指令,由图1.13可见,ALE引脚上出现的信号是周期性的,在每个机器周期内出现两次高电平。第一次出现在S1P2和S2P1期间,第二次出现在S4P2和S5P1期间。 ALE信号每出现一次,CPU就进行一次取指操作,但由于不同指令的字节数和机器周期数不同,因此取指令操作也随指令不同而有小的差异。 按照指令字节数和机器周期数,8051的111条指令可分为6类,分别是:单字节单周期指令、单字节双周期指令、单字节四周期指令、双字节单周期指令、双字节双周期指令、三字节双周期指令,可以参见附录二。,图1.13(a),(b)所示

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论