版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章单片机硬件系统本章概要及学习目标:本章从单片机的概念入手,以AT89C51单片机芯片为例,介绍 MCS-51型单片机芯片的外部引脚功能、内部硬件结构及工作特性,并通过单片机应用系统开发过程实验说明使 读者对单片机应用系统及其开发有一个感性认识,对单片机的基本工作原理和工作过程有 一个大致的了解,同时也指出了学习单片机的两个基本方面:硬件结构和软件编程。通过对本章的学习,读者应掌握和了解以下知识:1 计算机、微型机、单片机及单片机应用系统的概念2 .微型机的CPU、存储器和输入/输出的硬件构成及功能3. 89C51外部引脚及功能,内部结构及工作原理4. 89C51的RAM分布、ROM结构及
2、地址形成5. 89C51 的 SFR6. 89C51的并行口及时钟与复位7单片机应用系统的开发过程及工作过程1.1计算机、微型机、单片机及单片机应用系统概述微型计算机的出现给人类生活带来了根本性的变化,使现代科学研究产生了质的飞跃,单片机技术的出现则给现代工业测控领域带来了一次新的技术革命。它在工业控制、数控 采集、智能化仪表、办公自动化等诸多领域得到了极为广泛的应用,毫不夸张地说,单片 机技术的开发和应用水平已逐步成为一个国家工业发展的标志之一。单片微型计算机(Single Chip Micro Computer)简称单片机,它是一种把组成微型计 算机的各功能部件:中央处理单元 CPU、一定
3、容量的随机存储器 RAM和只读存储器 ROM、 I/O接口电路、定时器/计数器以及串行口等制作在一块芯片中的计算机。由于单片机的硬 件结构与指令系统的功能都是按工业控制要求而设计的,常用在工业检测、控制装置中, 因而也称为微控制器(Micro-Controller )。单片机具有结构简单、控制功能强、可靠性高、 体积小、价格低等特点,在家用电器、智能化仪器、工业控制以及火箭导航尖端技术领域 都发挥着十分重要的作用。1.1.1单片机及单片机应用系统1 微型计算机及微型计算机系统计算机的硬件系统由运算器、存储器、控制器、输入和输出设备五大部分组成。把运 算器、控制器及一些寄存器集成在一块硅片上而成
4、为独立的器件,该器件就称为微处理器(CPU)。微处理器芯片、存储器芯片、输入/输出接口电路芯片以及外部设备,在它们之间用总线连接起来就构成了微型计算机,如图1-1所示。图1-1微型计算机组成框图地址忠.址AH数据总线DU,0合°控制总线C比可见,微型计算机结构的突出特征是具有一个包含运算器和控制器的集成芯片微处理 器( CPU )。微型机硬件系统各部分的组成及功能简述如下:1) 微处理器微处理器是微型计算机的核心,其结构示意如图1-2所示。图1-2微处理器结构示意图微处理器包括运算器,控制器和寄存器组3个基本部分。(1 )运算器:运算器是计算机的运算部件,用于实现算术和逻辑运算。计算
5、机的数据 运算和处理都在这里进行。通常运算器由算术/逻辑运算单元ALU、累加器A、暂存寄存器、标志寄存器F等组成。累加器A是一个特殊的寄存器。通常其作用有两个:一是运算时把一个操作数经暂存 器送至ALU ;二是在运算后保存其运算结果。暂存寄存器用来暂时存储数据总线或其他寄存器送来的操作数,是ALU的数据输入源。标志寄存器F用来保存ALU运算结果的特征(如进位标志、溢出标志等)和处理器的 状态,这些特征和状态可以作为控制程序转移的条件。算术/逻辑运算单元 ALU由加法器和相应的控制逻辑电路组成。它能分别对来自两个 暂存器数据源的两个操作数进行加、减、与、或等运算,还能进行数据的移位。ALU进行何
6、种运算由控制器发出的命令确定,运算后的结果经数据总线送至累加器A,同时影响标志寄存器F的状态。(2)控制器:计算机的控制器由指令寄存器IR、指令译码器ID、定时及控制逻辑电路和程序计数器 PC等组成,它控制使计算机各部分自动、协调地工作。控制器按照指定 的顺序从程序存储器中取出指令进行译码并根据译码结果发出相应的控制信号,从而完成 该指令所规定的任务。指令寄存器IR用来保存当前正在执行的一条指令。要执行一条指令,首先要把它从程序存储器中取到指令寄存器中。指令的内容包括操作码和操作数(或操作数的地址码)两 部分。操作码送到指令译码器ID,经译码后确定所要执行的操作;操作数的地址码也要送到操作数地
7、址形成电路以便形成真正的操作数地址。定时及控制逻辑电路是 CPU的核心部件。它的任务有控制取指令、执行指令、存取操 作数或运算结果等操作,向其他部件发出控制信号,协调各部件的工作。程序计数器PC也叫指令地址计数器。计算机的程序是有序地存储在程序存储器中 的各种指令的集合。计算机运行时,按顺序取出程序存储器中的指令并逐一执行。程序 计数器PC指出当前要执行的指令的地址。每当指令取出后,PC的内容自动加1 (除转移指令外),从而指向按序排列的下一条指令的地址。若遇到转移指令(JMP)、子程序调用指令(CALL )或返回指令(RET )时,这些指令会把要执行的下一条指令的地址 直接置入PC中,PC的
8、内容才会突变。程序计数器PC的位数决定了微处理器所寻址的存储器空间。(3)寄存器组:寄存器组作为 CPU内部的暂存单元至关重要,它是 CPU处理数据所 必需的一个存取空间,其多少直接影响着微机系统处理数据的能力和速度。2)存储器存储器是计算机存放程序或数据的器件,它由若干存储单元组成。 存储器有两个指标:存储容量是指存储器所能存放的最大字节数,每个存储单元按顺序都有一个惟一的编号,即存储地址;存取时间是指存储器存取一次数据所需要的时间,在某种程度上,它决定 着计算机系统的运行速度。存储器又分内存储器和外存储器。存放程序的存储器采用只读存储器(ROM );存放输入/输出数据或中间结果的存储器采用
9、随机存储器(RAM )o在实验系统中使用的EEPROM2864、SRAM6264都是存储器芯片。3)输入设备输入设备用于把程序和数据输入到计算机中。常用的输入设备有键盘、鼠标、光电输 入机等。4)输出设备输出设备用于把计算机数据计算或数据处理的结果,以用户需要的形式显示或打印出 来。常用的输出设备有打印机、显示器、绘图仪等。计算机用于控制时,输入输出信息还包括现场的各种信息和控制命令。通常把外存储器、输入设备和输出设备合在一起称为计算机的外部设备,简称“外设”。微型计算机加上它的软件系统便构成了微型计算机系统,如图1-3所示。软件系统是微型机系统所使用的各种程序的总称。人们通过它对整机进行控制
10、并与微型机系统进行信 息交换,使微机按照人的意图完成预定的任务。软件系统和硬件系统共同构成完整的微型机系统,两者相辅相成,缺一不可。2 单片微型计算机前面已经提到:单片微型计算机简称单片机,它是指把组成微型计算机的各功能部件 集成在一个芯片上构成一个完整的微型机,从而实现微型计算机的基本功能。单片机的内 部结构示意图如图1-4所示。单片机实质上是一个芯片,在实际应用中通常很难直接把单片机和受控对象进行电气 连接,而是必须外加各种扩展接口电路以至外部设备,连同受控对象和单片机程序软件构 成一个单片机应用系统。微型计算机系统输 A 按 口 电L 1 *1运算器L控制3S1 L 一-8-1-疔储器1
11、输出设备tN图1-4单片机内部结构示意图行CPUWI/O 按月L1阳行閃按口图1-3微型计算机系统结构示意图3 单片机应用系统及组成单片机应用系统是以单片机为核心,配以输入、输出、显示、测量和控制等外围电路图1-5单片机应用系统示意图和软件能实现一种或多种功能的实用系统。本书的实 训系统即一个单片机的应用系统。该应用系统除了有 单片机芯片,还有许多其他外围电路,所以说单片机 应用系统是由硬件和软件组成的。硬件是单片机应用 系统的基础,软件则是在硬件的基础上对其资源进行 合理调配和使用,从而完成应用系统所要求的任务。 硬件和软件二者相互依赖,缺一不可。单片机应用系 统的组成示意图如图1-5所示。
12、因此,单片机应用系统的设计人员必须从硬件和 软件两个角度来深入了解单片机,并能将二者有机地结合起来,才能设计制作出具有特定 功能的单片机应用系统或整机产品。自1974年美国Fairchild公司研制出第一台单片机 F8以来,单片机经历了由 4位机到 8位机再到16位、32位机的发展过程。 单片机制造商很多,主要有美国的In tel 'Motorola、Zilog等公司。目前,单片机正朝着高性能、多品种方向发展。近年来,32位单片机已进入了实用阶段,但是由于8位单片机在性能价格比上占有优势,并且8位增强型单片机在速度和功能上可向现在的16位单片机挑战,因此在未来相当长的时期内,16位机可
13、能被淘汰,而8位单片机仍是单片机的主流机型。1.1.2 MCS-51系列单片机In tel公司于1976年推出了 MCS-48系列单片机,于1980年推出了 MCS-51系列单片机,于1983年推出了 MCS-96系列单片机。1. MCS-51系列单片机MCS-51系列单片机是一种高性能的8位单片机,它是在MCS-48系列单片机的基础上推出的第二代单片机。其典型产品为8051,封装为40引脚。芯片内部集成有:一个8位的微处理器(CPU)4KB的程序存储器128B的数据存储器64KB的片外程序存储器寻址能力64KB的片外数据存储器寻址能力32根输入/输出线1个全双工异步串行口2个16位定时/计数
14、器5个中断源,2个优先级MCS-51系列单片机按片内有无程序存储器及程序存储器的形式分为三种基本产品:8051、8751 和 8031。8051单片机片内含有 4KB的ROM,ROM中的程序是由单片机芯片生产厂家固化的, 适合于大批量的产品;8751单片机片内含有 4KB的EPROM,单片机应用开发人员可以把 编好的程序用开发机或编程器写入其中,需要修改时,可以先用紫外线擦除器擦除,然后 再写入新的程序;8031片内没有程序存储器,当在单片机芯片外扩展EPROM后,就相当于一片8751,此种应用方式方便灵活。这三种芯片只是在程序存储器的形式上不同,在结 构和功能上都一样。表1-1为MCS-51
15、系列单片机常用产品特性一览表。表1-1 MCS-51系列单片机常用产品特性一览表型号片内存储器(B)I/O 口线疋时/计数器片外存储器(B)P程序存储器数据存储器程序存储器数据存储器80514KROM128322个16位64K64K87514KEPROM128322个16位64K64K8031无128322个16位64K64K80C514KROM128322个16位64K64K87C514KEPROM128322个16位64K64K80C31无128322个16位64K64K续表型号片内存储器(B)I/O 口线疋时/计数器片外存储器(B)程序存储器数据存储器程序存储器数据存储器80524KRO
16、M256323个16位64K64K87524KEPROM256323个16位64K64K8032无256323个16位64K64K2. 其他51系列单片机(1) AT89系列单片机AT89系列单片机是美国 ATMEL公司的8位Flash单片机产品,它以MCS-51为内核, 与MCS-51系列的单片机软硬件兼容。该系列中有20引脚封装的产品,体积的减小使其应用更加灵活。时钟频率的提高可使运算速度加快。在片内含有Flash存储器,Flash存储器是一种可以电擦除和电写入的闪速存储器(简记为FPEROM ),这使开发调试更为方便。表1-2 AT89系列单片机常用产品特性一览表型号片内存储器I/O 口
17、线定时/计数器模拟比较器中断源串行口程序存储器数据存储器89C10511KBFEPROM64B151个16位1个3个无89C20512KBFEPROM128B152个16位1个5个2级UART89C514KBFEPROM128B322个16位无5个2级UART89C528KBFEPROM256B323个16位无6个2级UART(2)其他MCS-51系列兼容单片机为了进一步增强 MCS-51系列单片机的功能,一些单片机生产厂商还对MCS-51系列单片机的硬件进行了扩充。 如PHILIPS的8XC552系列,在80C51的基础上增加了一个 16 位的定时/计数器和一个8路输入的10位A/D转换器,
18、并配有串行总线接口; 80C51XA使 单片机位数增至16位;In tel公司的80C51GA/GB也增加了 A/D转换功能。1.2 MCS-51单片机结构和原理1.2.1 MCS-51单片机的引脚及内部结构对于一个单片机应用系统的开发设计者,熟悉并掌握单片机的硬件结构是十分重要的,这里从实际需要出发,只介绍与程序设计和系统扩展应用有关的内容。MCS-51系列单片机的典型芯片为 8031、8051、 方便,它又和MCS-51系列的软硬件兼容,因此下文 就以AT89C51芯片为例,介绍 MCS-51系列单片机 的外部引脚及内部结构。1. 89C51的外部引脚89C51是标准的40引脚双列直插式集
19、成电路芯 片,如图1-6所示。按其功能可分为电源、时钟、控制和I/O接口四8751。由于AT89C51的开发调试使用RSI ¥卩1)M.l'TXDP3.2 l luW.3 1NTIP34/TD門十里卫IU 7X I '> IAt 1匚匚匚匚二匚二匸匚匚匚匚匚ULJLJLJLJ匚二 2 *J J 5 to 7- 8 9 o 2 J 4 5 6 7 AT oIL .L IL .L IL 1 丁 D -1 A VPP ALE/PROG HStSl P2.7 F2C F2.5 F2.4P2 i lJ2 2P2 II叮:i4|)曲朝知孔巧切知翦朗27却苗24232221图
20、1-689C51弓I脚大部分:1)电源引脚VCC :芯片主电源,外接 +5V ; GND :电源地线。2)时钟引脚XTAL1与XTAL2为内部振荡器的两条引出线。3)控制引脚(1)ALE/ PROG :地址锁存控制信号/编程脉冲输入端在扩展系统时,ALE用于控制把P0 口输出的低8位地址锁存起来,以实现低8位地址和数据的隔离,P0 口作为数据地址复用口线。当访问单片机外部程序或数据存储器或外 接I/O 口时,ALE输出脉冲的下降沿用于低 8位地址的锁存信号;即使不访问单片机外部 程序或收据存储器或外接 I/O 口,ALE端仍以晶振频率的 1/6输出正脉冲信号,因此可作 为外部时钟或外部定时信号
21、使用。但应注意,此时不能访问单片机外部程序、数据存储器 或外设I/O接口。ALE端可以驱动8个TTL负载。对于EEPROM 型单片机(89C51 )或EPROM型单片机(8751 ),在EEPROM 或EPROM 编程期间,该引脚用来输入一个编程脉冲(PROG)。(2)PSEN :片外程序存储器读选通有效信号在CPU向片外程序存储器读取指令和常数时,每个机器周期 PSEN两次低电平有效。但在此期间,每当访问外部数据存储器或I/O接口时,该PSEN两次低电平有效信号将不出现。PSEN端可以驱动8个TTL负载。(3)EA/VPP :访问程序存储器控制信号 /编程电源输入端当该引脚EA信号为低电平时
22、,只访问片外程序存储器,不管片内是否有程序存储器;当该引脚为高电平时,单片机访问片内的程序存储器。但对AT89C51来说,当PC (程序计数器)值超出4K地址时,自动转到片外程序存储器 1000H开始顺序读取指令。对于EEPROM 型单片机(89C51 )或EPROM型单片机(8751 ),在EEPROM 或EPROM 编程期间,该引脚用于施加一个 +12V或+21V的电源。(4)RST/VPD :复位/掉电保护信号输入端当振荡器运行时,在该引脚加上一个2个机器周期以上的高电平信号,就能使单片机回到初始状态,即进行复位。掉电期间,该引脚可接上备用电源 (VPD )以保持内部RAM的数据。4)I
23、/O引脚P0 口( P0.0P0.7) : 8位双向并行I/O接口。扩展片外存储器或I/O 口时,作为低8位地址总线和8位数据总线的分时复用接口,它为双向三态。P0 口可带8个TTL负载电流。P1 口( P1.0P1.7): 8位准双向并行I/O接口。P1 口每一位都可以独立设置成输入输 出位。P1 口可以驱动4个TTL电路。P2 口( P2.0P2.7) : 8位准双向并行I/O接口。扩展外部数据、程序存储器时,作为 高8位地址输出端口。P2 口可以驱动 4个TTL电路。P3 口( P3.0P3.7): 8位准双向并行I/O接口。除了与 P1 口有一样的I/O功能外,每 一个引脚还兼有第二功
24、能。如表1-3所示。表1-3 P3 口各引脚对应的第二功能P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7RXDTXDINT0INT1T0T1WRRDP3 口可以驱动 4个TTL电路。P3 口的第二功能信号都是单片机的重要控制信号,因此,在实际使用时,先按需要选 用第二功能信号,剩下的才以第一功能的身份作为数据位的I/O使用。P1、P2、P3 口线片内均有固定的上拉电阻,故称为准双向并行I/O接口; P0 口片内无固定的上拉电阻,由两个 MOS管串接,既可开路输出,又可处于高阻的“悬空”状态, 故称为双向三态并行I/O接口。读者在学完1.3节后会有较深刻的理解。以上是把MSC-
25、51单片机芯片全部40个信号引脚的定义及功能作一简单说明。对于各种型号的芯片,其引脚的第一功能信号是相同的,所不同的是引脚的第二功能信号,读者 可以对照实训电路找到相应的引脚,在电路中查看每个引脚的连接使用。2. 89C51的内部结构89C51单片机的内部结构图如图1-7所示。由图1-7可知,89C51单片机由运算器和控制器组成的微处理器、片内存储器 RAM/ROM、P0P3组成的I/O端口以及各种存储器组成的特殊功能寄存器SFR和串行接口、定时/计数器、中断系统、振荡器等构成。下面介绍其各构成部分的基本含义。1)89C51的微处理器(CPU)微处理器是单片机的核心部分,完成运算和控制功能。8
26、9C51的CPU能处理8位二进数或代码,它由运算器(包括算术/逻辑运算单元 ALU、累加器A、寄存器B、暂存寄存器、 程序状态字寄存器 PSW)、控制器(包括指令寄存器 IR、指令译码器ID、定时及控制逻辑 电路)、程序计数器PC等组成。2)89C51的内部数据存储器(内部 RAM )89C51芯片中共有256个RAM单元,但其中高128单元被专用寄存器 SFR占用,能 作为寄存器供用户使用的只是低128单元,地址范围是 00H7FH,用于存放可读写的数据。因此通常所说的内部数据存储器是指低128单元,简称内部 RAM。3)89C51的内部程序存储器(内部 ROM )89C51芯片中共有 4K
27、BFPEROM,地址范围是 0000H0FFFH,用于存放程序、原始 数据或表格,因此称之为程序存储器,简称内部ROM。卩】 口图1-7单片机89C51内部结构框图P >聘口*?2口说存髀4)定时/计数器89C51芯片中共有两个16位的定时/计数器以实现定时或计数功能,并以其定时或计 数结果实现控制功能。5)并行I/O 口89C51芯片中共有4个8位的I/O 口(PO、P1、P2、P3)以实现数据的并行输入/输出。 本书在实训1中已经使用了 P1 口,通过P1 口连接8个发光二极管。6)串行口89C51单片机有一个全双工的串行口以实现单片机和其他设备之间的串行数据传送。 该串行口功能较强
28、,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。7)中断控制系统MCS-51系列单片机的中断功能较强以满足控制应用的需要。89C51共有5个中断源,即外中断两个、定时/计数中断两个、串行中断一个。全部中断分为高级和低级两个优 先级别。8)时钟电路89C51芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路位单片机产 生时钟脉冲序列。系统允许的晶振频率一般为6MHz12MHz。从上述内容可以看出,MCS-51虽然是一个单片机芯片,但作为计算机应该具有的基 本部件它都包括,因此,实际上它已属于一个简单的微型计算机系统了。1.2.2 MCS-51单片机的内部数据存储器存储器功能是
29、存储信息一一程序和数据。存储器按其存取方式可以分成两大类,一类 是随机存取存储器(RAM );另一类是只读存储器(ROM )。对于RAM , CPU在运行过程中能随时进行写入和读出,但在关闭电源时,其存储信 息将丢失,所以它只能用来存放暂时性的输入/输出数据、运算的中间结果或用作堆栈。因此,RAM常被称作数据存储器。ROM是一种写入信息后不能改写只能读出的存储器,断电后,其信息仍保留不变。ROM用来存放固定的程序或数据,如系统监控程序、常数表格等。所以,ROM常被称作程序存储器。MCS-51单片机的芯片内部包含数据存储器( RAM )和程序存储器(ROM )两类存储 器。下文先介绍内部数据存储
30、器( RAM )。1 内部数据存储器(RAM )的地址分配其地址分配如图1-8所示。F8HFFHSFR区80H87H30H7FH用户RAM区(数据缓冲区)20H2FH位寻址区(00H7FH)18H1FH工作寄存器区 3区(R7R0)10H17H工作寄存器区 2区(R7R0)08H0FH工作寄存器区1区(R7R0)00H07H工作寄存器区 0区(R7R0)图1-8 MCS-51内部数据存储器(RAM )的地址分配图内部RAM共有256个单元,通常把256个单元按其功能划分为两部分:低128字节(00H 7FH) RAM 和高 128 字节(80H FFH )。2 内部数据存储器(RAM )低12
31、8单元内部数据存储器的低 128单元(00H7FH )是真正的RAM存储器,按其用途划分为 工作寄存器区、位寻址区和用户RAM区三个区域,如图1-9所示。30H7FH用户RAM区(数据缓冲区)20H2FH位寻址区(00H7FH)18H1FH工作寄存器区 3区(R7R0)10H17H工作寄存器区 2区(R7R0)08H0FH工作寄存器区1区(R7R0)00H07H工作寄存器区 0区(R7R0)图1-9片内RAM低128字节的配置1 )寄存器区共有4组寄存器,每组8个寄存单元,各单元8位,每组的8个寄存单元都以 R0R7 作为寄存单元的编号。寄存器常用于存放操作数及中间结果,由于它们的功能及使用不
32、作 预先规定,因此称为通用寄存器,有时也叫工作寄存器。4组通用寄存器占据内部 RAM的00H仆单元地址。在任一时刻,CPU只能使用四组寄存器中的一组寄存器,并且把正在使用的那组寄存 器称之为当前寄存器组。到底是哪一组,由程序状态字寄存器PSW中的RS1、RS0的状态组合来决定(见 SFR中的PSW)。通用寄存器为CPU提供了就近存储数据的功能,有利于提高单片机的运算速度。此外, 使用通用寄存器还能提高程序编制的灵活性,因此在单片机的应用编程中应充分地利用这 些寄存器,以简化程序设计,提高程序运行速度。2)位寻址区内部RAM的20H2FH单元,既可以作为一般的 RAM单元,进行字节操作,也可以
33、对单元中每一位进行位操作,因此把该区称为位寻址区。位寻址区共有16个RAM单元字节,计128位,各位地址位 00H7FH。MCS-51具有布尔处理机的功能,位寻址区可以构 成布尔处理机的存储空间。这种位寻址区能力是MCS-51的一个重要特点,表 1-4为位寻址区的位地址表。表1-4 片内RAM位寻址区的位地址表位地址LSB单元地址MSB2FH7F7E7D7C7B7A79782EH77767574737271702DH6F6E6D6C6B6A69682CH67666564636261602BH5F5E5D5C5B5A59582AH575655545352515029H4F4E4D4C4B4A49
34、4828H474645444342414027H3F3E3D3C3B3A393826H373635343332313025H2F2E2D2C2B2A2928续表单元位地址地址MSBLSB24H272625242322212023H1F1E1D1C1B1A191822H171615141312111021H0F0E0D0C0B0A090820H07060504030201003)用户RAM区在内部RAM的128个单元中,通用寄存器占了32个单元,位寻址区占了 16个单元,剩下80个单元,这就是供用户使用的一般 RAM区,其单元地址为30H7FH。对用户RAM区的使用没有任何规定和限制,但在实际使
35、用中,常需在RAM区设置堆栈。这在编程中使用 RAM单元时应特别注意,不要和栈区单元混淆。3 内部数据存储器(RAM )高128单元内部数据存储器(RAM )高128单元是供给专用寄存器使用的,其单元地址为80HFFH。但这21个专用寄存器的地址分散地分布在 80HFFH的地址空间中,只占用了高128 单元中的21个单元。因这些寄存器的功能已作专门规定,故称之为专用寄存器(SpecialFunction Register),也可称之为特殊功能寄存器。1)特殊功能寄存器(SPR)简介8051/89C51共有21个专用寄存器,现把其中部分寄存器简单介绍如下:(1)程序计数器(Program Cou
36、nter, PC)PC是一个16位的计数器,它的作用是控制程序的执行顺序,其内容为下一条要执行的指令的地址,寻址范围达64KB。PC有自动加1的功能,从而实现程序的顺序执行。PC没有地址,是不可寻址的,因此用户无法对它进行读/写操作,但可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。因 地址不在SFR (专用寄存器)内,一般不计作专用寄存器。(2)累加器(Accumulator , ACC ) 累加器为8位寄存器,是最常用的专用寄存器,功能较多,地位重要。它既可用于存放操作数,也可用来存放运算的中间结果。MCS-51单片机中大部分单操作数指令的操作数就取自累加器,许多双操作数指令中
37、的一个操作数 也取自累加器。(3) B寄存器 B寄存器也是一个 8位寄存器,主要用于乘除运算。乘法运算时,B存乘数,乘法操作后,乘积的高8位存于B中;除法运算时,B存除数,除法操作后,余数存于B中。此外,B寄存器也可作为一般寄存器使用。(4) 程序状态字(Program Status Word, PSW)程序状态字是一个 8位寄存器,用于存放程序运行中的各种状态信息。其中有些位的状态是根据程序执行结果,由硬件自动 设置的,而有些位的状态则使用软件方法设定。PSW的位状态可以用专门指令进行测试,也可以用指令读出。一些条件转移指令根据PSW某些位的状态进行程序转移。PSW的各位定义如图1-10所示
38、。PSW位地址:D7HD6HD5HD4HD3HD2HD1HD0HCYACF0RS1RS0OVP图1-10 PSW的各位定义PSW的字节地址为 D0H。除PSW.1位保留未用外,其余各位的定义及使用如下:CY( PSW.7)进位标志位。CY是PSW中最常用的标志位。其功能有二:一是存放算术运算的进位标志,在进行加或减运算时,如果操作结果的最高位有进位或借位时,CY由硬件置"1” ( Single Chip Micro Computer ),否则清"0”;二是在位操作中作累加位 使用。位传送、位与位等位操作,进位标志位是固定的操作位之一。AC ( PSW.6)辅助进位标志位。在
39、进行加或减运算中,当低4位向高4位进位或借位时,AC由硬件置“1”,否则AC位清“ 0”。在BCD码调整中也要用到 AC位状态。F0( PSW.5)用户标志位。这是一个供用户定义的标志位,需要利用软件方法置 位或复位,用于控制程序的转向。RS1和RS0( PSW.4、PSW.3)工作寄存器组选择位。它们被用于选择CPU当前使用的通用寄存器组。 通用寄存器共有4组,其对应关系如表1-5所示。表1-5通用寄存器组的选择RS1RS0寄存器组片内RAM地址00第0组00H07H01第1组08H -0FH10第2组10H17H11第3组18H -1FH这两个选择位的状态是由软件设置的,被选中的寄存器组即
40、为当前通用寄存器组。当单片机上电或复位后,RS1: RSO=OO。OV( PSW.2)溢出标志位。在带符号数加减运算中,0V=1表示加减运算超出了累加器A所能表示的符号数有效范围(-128+ 127),即产生了溢出;因此运算结果是错 误的;OV=0表示运算正确,即无溢出产生。在乘法运算中,0V=1表示乘积超过 255,即乘积分别在 B与A中;OV=0表示乘积 只在A中。在除法运算中,0V=1表示除数为0,除法不能进行;OV=0表示除法可正常进行。P(PSW.0)奇偶标志位,表明累加器A中内容的奇偶性。如果A中有奇数个“1”, 则P置“ 1 ”,否则置“0”。凡是改变累加器 A中内容的指令均会影
41、响 P标志位。该标志位对串行通信中的数据传输有重要的意义,在串行通信中常采用奇偶校验的办 法来校验数据传输的可靠性。(5) 数据指针(DPTR )数据指针为16位寄存器。编程时,DPTR既可以按16位寄存器使用,也可以按两个8位寄存器分开使用,即:DPH DPTR高8位字节DPL DPTR 低8位字节DPTR通常在访问外部数据存储器时作地址指针使用。由于外部数据存储器的寻址范 围为64KB,故把DPTR设计为16位。(6) 堆栈指针 (Stack Pointer, SP)堆栈是一个特殊的存储区,用来暂存数据和地 址,它是按“先进后出”的原则存取数据的。堆栈共有两种操作:进栈和出栈。由于MCS-
42、51单片机的堆栈设在内部 RAM中,因此SP是一个8位寄存器。系统复位 后,SP的内容为07H,从而复位后堆栈实际上是从 08H单元开始的,但08H仆H单元分 别属于工作寄存器13区,如果程序要用到这些区,最好把SP值改为更大的值。一般在内部RAM的30H7FH单元中开辟堆栈。SP的内容一经确定,堆栈的位置也就跟着确定 下来,由于SP可初始化为不同的值,因此,堆栈位置是浮动的。这里只集中讲述了 6个专用寄存器,其余的专用寄存器(如 TCON、TMOD、IE、IP、 SCON、PCON、SBUF等)将在以后章节中陆续介绍。2)特殊功能寄存器中的字节寻址和位寻址MCS-51系列单片机有21个可寻址
43、的专用寄存器,其中有 11个专用寄存器是可以位 寻址的。下面把各寄存器的字节地址及位地址并列于表1-6和表1-7中。表1-6专用寄存器地址表符号名称地址ACC累加器E0HBPSWB寄存器 程序状态字F0HD0HSP堆栈指针81HDPTR数据指针(包括 DPH和DPL )82H83HP0P0 口锁存寄存器80HP1P1 口锁存寄存器90HP2P2 口锁存寄存器A0HP3P3 口锁存寄存器B0HIP中断优先级控制寄存器B8HIE中断允许控制寄存器A8HTMOD定时/计数器工作方式状态寄存器89HTCON定时/计数器控制寄存器88HTH0定时/计数器0 (高字节)8CHTL0定时/计数器0 (低字节
44、)8AHTH1定时/计数器1 (高字节)8DHTL1定时/计数器1 (低字节)8BHSCON串行口控制寄存器98HSBUF串行口数据缓冲器99HPCON电源控制寄存器87H表1-7 可进行位寻址的SFR的分布SFR位地址/位定义字节地址MSBLSBB0F7HF6HF5HF4HF3HF2HF1HF0HF0HACCE7HF6HE5HE4HE3HE2HE1HE0HE0HPSWD7HD6HD5HD4HD3HD2HD1D0HD0HCYACF0RS1RS0OVPIPBFHBEHBDHBCHBBHBAHB9HB8HB8HPSPT1PX1PT0PX0P3B7B6B5B4B3B2B1B0BOHP3.7P3.6P
45、3.5P3.4P3.3P3.2P3.1P3.0IEAFAEADACABAAA9A8A8HEAESET1EX1ET0EX0P2A7A6A5A4A3A2A1A0A0HP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0SCON9F9E9D9C9B9A999898HSM0SM1SM2RENTB8RB8TIRIP1979695949392919090HP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0TCON8F8E8D8C8B8A898888HTF1TR1TF0TROIE1IT1IE0IT0P0878685848382818080HP0.7P0.6P0.5P0.4P0.3P
46、0.2P0.1P0.0对专用寄存器的字节寻址问题作如下几点说明:(1) 21个可字节寻址的专用寄存器不连续地分散在内部RAM高128单元之中,尽管 还余有许多空闲地址,但用户并不能使用。(2)程序寄数器 PC不占据RAM单元,它在物理上是独立的,因此是不可寻址的寄 存器。(3) 对专用寄存器只能使用直接的寻址方式,书写时既可使用寄存器符号,也可使用 寄存器单元地址。全部专用寄存器可位寻址的位共83位,这些位都具有专门的定义和用途。 这样,加上位寻址的128位,在MCS-51的内部 RAM中共有128+83=211个可寻址位。123 MCS-51单片机的内部程序存储器MCS-51的程序存储器用于
47、存放编好的程序和表格常数。8051片内有4KB的ROM ,8751片内有4KB的EPROM,8031片内无程序存储器。 MCS-51的片外最多能扩张 64KB 程序存储器,片内外的 ROM是统一编址的。EA端保持高电平时,8051的程序计数器PC 在0000H0FFFH地址范围内(即前4KB地址)执行片内 ROM中的程序,当PC在1000H FFFFH地址范围内时,自动执行片外程序存储器中的程序;EA保持低电平时,只能寻址外部程序存储器,片外存储器可以从0000H开始编址。MCS-51程序存储器有些单元具有特殊功能,使用时应予以注意。其中一组特殊单元为0000H0002H。系统复位后,(PC)
48、 =0000H,单片机从 0000H单元开始取指令执行程序。如果程序不从0000H单元开始,应在这三个单元中存放一条无条件转移指令,以便直接转去执行指定的程序。还有一组特殊的单元是 0003H002AH,共40个单元。这40个单元被均匀地分为5段,作为5个中断源的中断地址区,其中:0003H-000AH外部中断0中断地址区;000BH 7012H定时/计数器0中断地址区;0013H-001AH外部中断1中断地址区;001BH 7022H定时/计数器1中断地址区;0023H -002AH串行中断地址区。中断响应后,按中断种类,自动转到各中断区的首地址区执行程序,因此在中断地址区中理应存放中断服务
49、程序。通常情况下,8个单元难以存下一个完整的中断服务程序,因此也通常从中断地址区首地址开始存放一条无条件转移指令,以便中断响应后,通过中 断地址区再转到中断服务程序的实际入口地址。1.3 MCS-51单片机的并行端口结构单片机芯片内还有一项主要内容即并行 I/O 口。MCS-51共有4个8位的I/O 口,分别 记作P0、P1、P2、P3。每个口都包含一个锁存器、 一个输出驱动器和输入缓冲器。 实际上, 它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。在访问片外扩展存储器时,低8位地址和数据由P0分时传送,高8位地址由P2 口传送。在无片外扩展存储器的系统中,这4个口的每一位均可作为双
50、向的I/O端口使用。MCS-51单片机的4个I/O 口都是8位双向口,这些口在结构和特性上基本相同,但又各具特点,以下对其分别作以介绍。1.3.1 P0 口P0 口的口线逻辑电路如图 1-11所示。由图可知,电路中包含一个数据输出锁存器、两个三态数据输入缓冲器、一个数据输 出的驱动电路和一个输出控制电路。当对P0 口进行写操作时,由锁存器和驱动电路构成数据输出通路。由于通路中已有输入锁存器,因此数据输出时可以与外设直接连接,而不需 再加数据锁存电路。地址/教拥+5V图1-11 P0 口某位结构考虑到P0 口既可以作为通用的I/O 口进行数据输入/输出,也可以作为单片机系统的 地址/数据线使用,
51、为此在P0 口的电路中有一个多路转接电路MUX。在控制信号的作用下,多路转接电路可以分别接通锁存器输出或地址/数据线。当作为通用的I/O 口使用时,内部的控制信号为低电平,封锁与门,将输出电路的上拉场效应管(FET)截止,同时使多路转接电路MUX接通被封锁存器 Q端的输出通路。当P0 口作为输出口使用时,内部的写脉冲加在D触发器的CP端,数据写入锁存器,并向端口输出。当P0 口作为输入口使用时, 应区分读引脚和读端口两种情况,为此,在端口电路中有两个用于读入驱动的三态缓冲器。所谓读引脚即读芯片引脚的数据,这时使用下方的数据 缓冲器,由“读引脚”信号把缓冲器打开,把端口引脚上的数据从缓冲器通过内
52、部总线读 进来。使用传送指令(MOV )进行读端口操作都是属于这种情况。读端口是指通过上面的缓冲器读锁存器Q端的状态。在端口已处于输出状态的情况下,Q端与引脚信号是一致的,这样安排的目的是为了适应对端口进行“读一一修改一一写” 操作指令的需要。例如,“ANL P0,A”就是属于这类指令,执行时先读入P0 口锁存器中的数据,然后与 A的内容进行逻辑与,再把结果送回P0 口。对于这类“读一一修改一一写”指令,不直接读引脚而读锁存器是为了避免可能出现的错误。因为在端口已处于输出 状态的情况下,如果端口的负载恰是一个晶体管的基极,导通了的PN结会把端口引脚的高电平拉低,这样直接读引脚就会把本来的“1”误读为“ 0”;但若从锁存器 Q端读,就能避免这样的错误,得到正确的数据。需要注意的是,当 P0 口进行一般的I/O输出时,由于输出电路是漏极开路电路,因此 必须外接上拉电阻才能有高电平输出;当P0 口进行一般的I/O输入时,必须先向电路中的锁存器写入“1 ”使FET截止,以避免锁存器为“0”状态时对引脚读入的封锁。在实际应用中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度医疗废物收集运输处置委托合同3篇
- 2024年度环保型烧结砖绿色建材购销合作协议2篇
- 2024年城市轨道交通事业编制合同制员工聘用协议3篇
- 马路牙采购合同范例
- 莱芜租房合同范例
- 《基于复杂结构件的全三维参数化设计建模技术研究》
- 《我国大学生中式台球赛事发展研究》
- 2024版商业综合体保安服务派遣协议2篇
- 2024年度科研机构土方挖掘及运输合同3篇
- 《愈裂定痛膏治疗Ⅰ期肛裂(血热肠燥型)的临床观察》
- 【MOOC】法理学-西南政法大学 中国大学慕课MOOC答案
- 辽宁省普通高中2024-2025学年高一上学期12月联合考试语文试题(含答案)
- 储能运维安全注意事项
- 2024蜀绣行业市场趋势分析报告
- 电力法律法规培训
- 2024年世界职业院校技能大赛“智能网联汽车技术组”参考试题库(含答案)
- 【课件】校园安全系列之警惕“死亡游戏”主题班会课件
- 化工企业冬季安全生产检查表格
- 2024年工程劳务分包联合协议
- 蜜雪冰城员工合同模板
- 广东省深圳市龙岗区2024-2025学年三年级上学期11月期中数学试题(含答案)
评论
0/150
提交评论