已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章 单片机硬件系统第1章 单片机硬件系统M 本章概要及学习目标:本章从单片机的概念入手,以AT89C51单片机芯片为例,介绍MCS-51型单片机芯片的外部引脚功能、内部硬件结构及工作特性,并通过单片机应用系统开发过程实验说明使读者对单片机应用系统及其开发有一个感性认识,对单片机的基本工作原理和工作过程有一个大致的了解,同时也指出了学习单片机的两个基本方面:硬件结构和软件编程。通过对本章的学习,读者应掌握和了解以下知识:1计算机、微型机、单片机及单片机应用系统的概念2微型机的CPU、存储器和输入/输出的硬件构成及功能389C51外部引脚及功能,内部结构及工作原理489C51的RAM分布、ROM结构及地址形成589C51的SFR689C51的并行口及时钟与复位7单片机应用系统的开发过程及工作过程1.1 计算机、微型机、单片机及单片机应用系统概述微型计算机的出现给人类生活带来了根本性的变化,使现代科学研究产生了质的飞跃,单片机技术的出现则给现代工业测控领域带来了一次新的技术革命。它在工业控制、数控采集、智能化仪表、办公自动化等诸多领域得到了极为广泛的应用,毫不夸张地说,单片机技术的开发和应用水平已逐步成为一个国家工业发展的标志之一。单片微型计算机(Single Chip Micro Computer)简称单片机,它是一种把组成微型计算机的各功能部件:中央处理单元CPU、一定容量的随机存储器RAM和只读存储器ROM、I/O接口电路、定时器/计数器以及串行口等制作在一块芯片中的计算机。由于单片机的硬件结构与指令系统的功能都是按工业控制要求而设计的,常用在工业检测、控制装置中,因而也称为微控制器(Micro-Controller)。单片机具有结构简单、控制功能强、可靠性高、体积小、价格低等特点,在家用电器、智能化仪器、工业控制以及火箭导航尖端技术领域都发挥着十分重要的作用。1.1.1 单片机及单片机应用系统1微型计算机及微型计算机系统计算机的硬件系统由运算器、存储器、控制器、输入和输出设备五大部分组成。把运算器、控制器及一些寄存器集成在一块硅片上而成为独立的器件,该器件就称为微处理器(CPU)。微处理器芯片、存储器芯片、输入/输出接口电路芯片以及外部设备,在它们之间用总线连接起来就构成了微型计算机,如图1-1所示。图1-1 微型计算机组成框图可见,微型计算机结构的突出特征是具有一个包含运算器和控制器的集成芯片微处理器(CPU)。微型机硬件系统各部分的组成及功能简述如下:1)微处理器微处理器是微型计算机的核心,其结构示意如图1-2所示。图1-2 微处理器结构示意图微处理器包括运算器,控制器和寄存器组3个基本部分。(1)运算器:运算器是计算机的运算部件,用于实现算术和逻辑运算。计算机的数据运算和处理都在这里进行。通常运算器由算术/逻辑运算单元ALU、累加器A、暂存寄存器、标志寄存器F等组成。累加器A是一个特殊的寄存器。通常其作用有两个:一是运算时把一个操作数经暂存器送至ALU;二是在运算后保存其运算结果。暂存寄存器用来暂时存储数据总线或其他寄存器送来的操作数,是ALU的数据输 入源。标志寄存器F用来保存ALU运算结果的特征(如进位标志、溢出标志等)和处理器的状态,这些特征和状态可以作为控制程序转移的条件。算术/逻辑运算单元ALU由加法器和相应的控制逻辑电路组成。它能分别对来自两个暂存器数据源的两个操作数进行加、减、与、或等运算,还能进行数据的移位。ALU进行何种运算由控制器发出的命令确定,运算后的结果经数据总线送至累加器A,同时影响标志寄存器F的状态。(2)控制器:计算机的控制器由指令寄存器IR、指令译码器ID、定时及控制逻辑电路和程序计数器PC等组成,它控制使计算机各部分自动、协调地工作。控制器按照指定的顺序从程序存储器中取出指令进行译码并根据译码结果发出相应的控制信号,从而完成该指令所规定的任务。指令寄存器IR用来保存当前正在执行的一条指令。要执行一条指令,首先要把它从程序存储器中取到指令寄存器中。指令的内容包括操作码和操作数(或操作数的地址码)两部分。操作码送到指令译码器ID,经译码后确定所要执行的操作;操作数的地址码也要送到操作数地址形成电路以便形成真正的操作数地址。定时及控制逻辑电路是CPU的核心部件。它的任务有控制取指令、执行指令、存取操作数或运算结果等操作,向其他部件发出控制信号,协调各部件的工作。程序计数器PC也叫指令地址计数器。计算机的程序是有序地存储在程序存储器中的各种指令的集合。计算机运行时,按顺序取出程序存储器中的指令并逐一执行。程序计数器PC指出当前要执行的指令的地址。每当指令取出后,PC的内容自动加1(除转移指令外),从而指向按序排列的下一条指令的地址。若遇到转移指令(JMP)、子程序调用指令(CALL)或返回指令(RET)时,这些指令会把要执行的下一条指令的地址直接置入PC中,PC的内容才会突变。程序计数器PC的位数决定了微处理器所寻址的存储器空间。(3)寄存器组:寄存器组作为CPU内部的暂存单元至关重要,它是CPU处理数据所必需的一个存取空间,其多少直接影响着微机系统处理数据的能力和速度。2)存储器存储器是计算机存放程序或数据的器件,它由若干存储单元组成。存储器有两个指标:存储容量是指存储器所能存放的最大字节数,每个存储单元按顺序都有一个惟一的编号,即存储地址;存取时间是指存储器存取一次数据所需要的时间,在某种程度上,它决定着计算机系统的运行速度。存储器又分内存储器和外存储器。存放程序的存储器采用只读存储器(ROM);存放输入/输出数据或中间结果的存储器采用随机存储器(RAM)。在实验系统中使用的EEPROM2864、SRAM6264都是存储器芯片。3)输入设备输入设备用于把程序和数据输入到计算机中。常用的输入设备有键盘、鼠标、光电输入机等。4)输出设备输出设备用于把计算机数据计算或数据处理的结果,以用户需要的形式显示或打印出来。常用的输出设备有打印机、显示器、绘图仪等。计算机用于控制时,输入输出信息还包括现场的各种信息和控制命令。通常把外存储器、输入设备和输出设备合在一起称为计算机的外部设备,简称“外设”。 微型计算机加上它的软件系统便构成了微型计算机系统,如图1-3所示。软件系统是微型机系统所使用的各种程序的总称。人们通过它对整机进行控制并与微型机系统进行信息交换,使微机按照人的意图完成预定的任务。软件系统和硬件系统共同构成完整的微型机系统,两者相辅相成,缺一不可。2单片微型计算机前面已经提到:单片微型计算机简称单片机,它是指把组成微型计算机的各功能部件集成在一个芯片上构成一个完整的微型机,从而实现微型计算机的基本功能。单片机的内部结构示意图如图1-4所示。单片机实质上是一个芯片,在实际应用中通常很难直接把单片机和受控对象进行电气连接,而是必须外加各种扩展接口电路以至外部设备,连同受控对象和单片机程序软件构成一个单片机应用系统。 图1-3 微型计算机系统结构示意图 图1-4 单片机内部结构示意图3单片机应用系统及组成图1-5 单片机应用系统示意图单片机应用系统是以单片机为核心,配以输入、输出、显示、测量和控制等外围电路和软件能实现一种或多种功能的实用系统。本书的实训系统即一个单片机的应用系统。该应用系统除了有单片机芯片,还有许多其他外围电路,所以说单片机应用系统是由硬件和软件组成的。硬件是单片机应用系统的基础,软件则是在硬件的基础上对其资源进行合理调配和使用,从而完成应用系统所要求的任务。硬件和软件二者相互依赖,缺一不可。单片机应用系统的组成示意图如图1-5所示。因此,单片机应用系统的设计人员必须从硬件和软件两个角度来深入了解单片机,并能将二者有机地结合起来,才能设计制作出具有特定功能的单片机应用系统或整机产品。自1974年美国Fairchild公司研制出第一台单片机F8以来,单片机经历了由4位机到8位机再到16位、32位机的发展过程。单片机制造商很多,主要有美国的Intel、Motorola、Zilog等公司。目前,单片机正朝着高性能、多品种方向发展。近年来,32位单片机已进入了实用阶段,但是由于8位单片机在性能价格比上占有优势,并且8位增强型单片机在速度和功能上可向现在的16位单片机挑战,因此在未来相当长的时期内,16位机可能被淘汰,而8位单片机仍是单片机的主流机型。1.1.2 MCS-51系列单片机Intel公司于1976年推出了MCS-48系列单片机,于1980年推出了MCS-51系列单片机,于1983年推出了MCS-96系列单片机。1MCS-51系列单片机MCS-51系列单片机是一种高性能的8位单片机,它是在MCS-48系列单片机的基础上推出的第二代单片机。其典型产品为8051,封装为40引脚。芯片内部集成有:r 一个8位的微处理器(CPU)r 4KB的程序存储器r 128B的数据存储器r 64KB的片外程序存储器寻址能力r 64KB的片外数据存储器寻址能力r 32根输入/输出线r 1个全双工异步串行口r 2个16位定时/计数器r 5个中断源,2个优先级MCS-51系列单片机按片内有无程序存储器及程序存储器的形式分为三种基本产品:8051、8751和8031。8051单片机片内含有4KB的ROM,ROM中的程序是由单片机芯片生产厂家固化的,适合于大批量的产品;8751单片机片内含有4KB的EPROM,单片机应用开发人员可以把编好的程序用开发机或编程器写入其中,需要修改时,可以先用紫外线擦除器擦除,然后再写入新的程序;8031片内没有程序存储器,当在单片机芯片外扩展EPROM后,就相当于一片8751,此种应用方式方便灵活。这三种芯片只是在程序存储器的形式上不同,在结构和功能上都一样。表1-1为MCS-51系列单片机常用产品特性一览表。表1-1 MCS-51系列单片机常用产品特性一览表型号片内存储器(B)I/O口线定时/计数器片外存储器(B)程序存储器数据存储器程序存储器数据存储器80514KROM128322个16位64K64K87514KEPROM128322个16位64K64K8031无128322个16位64K64K80C514KROM128322个16位64K64K87C514KEPROM128322个16位64K64K80C31无128322个16位64K64K续表型号片内存储器(B)I/O口线定时/计数器片外存储器(B)程序存储器数据存储器程序存储器数据存储器80524KROM256323个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口线定时/计数器模拟比较器中断源串行口程序存储器数据存储器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转换器,并配有串行总线接口;80C51XA使单片机位数增至16位;Intel公司的80C51GA/GB也增加了A/D转换功能。1.2 MCS-51单片机结构和原理1.2.1 MCS-51单片机的引脚及内部结构对于一个单片机应用系统的开发设计者,熟悉并掌握单片机的硬件结构是十分重要的,这里从实际需要出发,只介绍与程序设计和系统扩展应用有关的内容。MCS-51系列单片机的典型芯片为8031、8051、8751。由于AT89C51的开发调试使用方便,它又和MCS-51系列的软硬件兼容,因此下文就以AT89C51芯片为例,介绍MCS-51系列单片机的外部引脚及内部结构。189C51的外部引脚89C51是标准的40引脚双列直插式集成电路芯片,如图1-6所示。图1-6 89C51引脚按其功能可分为电源、时钟、控制和I/O接口四大部分:1)电源引脚VCC:芯片主电源,外接+5V;GND:电源地线。2)时钟引脚XTAL1与XTAL2为内部振荡器的两条引出线。3)控制引脚(1)ALE/:地址锁存控制信号/编程脉冲输入端在扩展系统时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低8位地址和数据的隔离,P0口作为数据地址复用口线。当访问单片机外部程序或数据存储器或外接I/O口时,ALE输出脉冲的下降沿用于低8位地址的锁存信号;即使不访问单片机外部程序或收据存储器或外接I/O口,ALE端仍以晶振频率的1/6输出正脉冲信号,因此可作为外部时钟或外部定时信号使用。但应注意,此时不能访问单片机外部程序、数据存储器或外设I/O接口。ALE端可以驱动8个TTL负载。对于EEPROM型单片机(89C51)或EPROM型单片机(8751),在EEPROM或EPROM编程期间,该引脚用来输入一个编程脉冲(PROG)。(2):片外程序存储器读选通有效信号在CPU向片外程序存储器读取指令和常数时,每个机器周期两次低电平有效。但在此期间,每当访问外部数据存储器或I/O接口时,该两次低电平有效信号将不出现。端可以驱动8个TTL负载。(3)/VPP:访问程序存储器控制信号/编程电源输入端当该引脚信号为低电平时,只访问片外程序存储器,不管片内是否有程序存储器;当该引脚为高电平时,单片机访问片内的程序存储器。但对AT89C51来说,当PC(程序计数器)值超出4K地址时,自动转到片外程序存储器1000H开始顺序读取指令。对于EEPROM型单片机(89C51)或EPROM型单片机(8751),在EEPROM或EPROM编程期间,该引脚用于施加一个+12V或+21V的电源。(4)RST/VPD:复位/掉电保护信号输入端当振荡器运行时,在该引脚加上一个2个机器周期以上的高电平信号,就能使单片机回到初始状态,即进行复位。掉电期间,该引脚可接上备用电源(VPD)以保持内部RAM的数据。4)I/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功能外,每一个引脚还兼有第二功能。如表1-3所示。表1-3 P3口各引脚对应的第二功能P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7RXDTXDT0T1P3口可以驱动4个TTL电路。P3口的第二功能信号都是单片机的重要控制信号,因此,在实际使用时,先按需要选用第二功能信号,剩下的才以第一功能的身份作为数据位的I/O使用。P1、P2、P3口线片内均有固定的上拉电阻,故称为准双向并行I/O接口;P0口片内无固定的上拉电阻,由两个MOS管串接,既可开路输出,又可处于高阻的“悬空”状态,故称为双向三态并行I/O接口。读者在学完1.3节后会有较深刻的理解。以上是把MSC-51单片机芯片全部40个信号引脚的定义及功能作一简单说明。对于各种型号的芯片,其引脚的第一功能信号是相同的,所不同的是引脚的第二功能信号,读者可以对照实训电路找到相应的引脚,在电路中查看每个引脚的连接使用。289C51的内部结构89C51单片机的内部结构图如图1-7所示。由图1-7可知,89C51单片机由运算器和控制器组成的微处理器、片内存储器RAM/ROM、P0P3组成的I/O端口以及各种存储器组成的特殊功能寄存器SFR和串行接口、定时/计数器、中断系统、振荡器等构成。下面介绍其各构成部分的基本含义。1)89C51的微处理器(CPU)微处理器是单片机的核心部分,完成运算和控制功能。89C51的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芯片中共有4KBFPEROM,地址范围是0000H0FFFH,用于存放程序、原始数据或表格,因此称之为程序存储器,简称内部ROM。图1-7 单片机89C51内部结构框图4)定时/计数器89C51芯片中共有两个16位的定时/计数器以实现定时或计数功能,并以其定时或计数结果实现控制功能。5)并行I/O口89C51芯片中共有4个8位的I/O口(P0、P1、P2、P3)以实现数据的并行输入/输出。本书在实训1中已经使用了P1口,通过P1口连接8个发光二极管。6)串行口89C51单片机有一个全双工的串行口以实现单片机和其他设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。7)中断控制系统MCS-51系列单片机的中断功能较强以满足控制应用的需要。89C51共有5个中断 源,即外中断两个、定时/计数中断两个、串行中断一个。全部中断分为高级和低级两个优先级别。8)时钟电路89C51芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路位单片机产生时钟脉冲序列。系统允许的晶振频率一般为6MHz12MHz。从上述内容可以看出,MCS-51虽然是一个单片机芯片,但作为计算机应该具有的基本部件它都包括,因此,实际上它已属于一个简单的微型计算机系统了。1.2.2 MCS-51单片机的内部数据存储器存储器功能是存储信息程序和数据。存储器按其存取方式可以分成两大类,一类是随机存取存储器(RAM);另一类是只读存储器(ROM)。对于RAM,CPU在运行过程中能随时进行写入和读出,但在关闭电源时,其存储信息将丢失,所以它只能用来存放暂时性的输入/输出数据、运算的中间结果或用作堆栈。因此,RAM常被称作数据存储器。ROM是一种写入信息后不能改写只能读出的存储器,断电后,其信息仍保留不变。ROM用来存放固定的程序或数据,如系统监控程序、常数表格等。所以,ROM常被称作程序存储器。MCS-51单片机的芯片内部包含数据存储器(RAM)和程序存储器(ROM)两类存储器。下文先介绍内部数据存储器(RAM)。1内部数据存储器(RAM)的地址分配其地址分配如图1-8所示。F8HFFH.80H87HSFR区30H7FH用户RAM区(数据缓冲区)20H2FH位寻址区(00H7FH)18H1FH工作寄存器区3区(R7R0)10H17H工作寄存器区2区(R7R0)08H0FH工作寄存器区1区(R7R0)00H07H工作寄存器区0区(R7R0)图1-8 MCS-51内部数据存储器(RAM)的地址分配图内部RAM共有256个单元,通常把256个单元按其功能划分为两部分:低128字节(00H7FH)RAM和高128字节(80HFFH)。2内部数据存储器(RAM)低128单元内部数据存储器的低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作为寄存单元的编号。寄存器常用于存放操作数及中间结果,由于它们的功能及使用不作预先规定,因此称为通用寄存器,有时也叫工作寄存器。4组通用寄存器占据内部RAM的00H1F单元地址。在任一时刻,CPU只能使用四组寄存器中的一组寄存器,并且把正在使用的那组寄存器称之为当前寄存器组。到底是哪一组,由程序状态字寄存器PSW中的RS1、RS0的状态组合来决定(见SFR中的PSW)。通用寄存器为CPU提供了就近存储数据的功能,有利于提高单片机的运算速度。此外,使用通用寄存器还能提高程序编制的灵活性,因此在单片机的应用编程中应充分地利用这些寄存器,以简化程序设计,提高程序运行速度。2)位寻址区内部RAM的20H2FH单元,既可以作为一般的RAM单元,进行字节操作,也可以对单元中每一位进行位操作,因此把该区称为位寻址区。位寻址区共有16个RAM单元字节,计128位,各位地址位00H7FH。MCS-51具有布尔处理机的功能,位寻址区可以构成布尔处理机的存储空间。这种位寻址区能力是MCS-51的一个重要特点,表1-4为位寻址区的位地址表。表1-4 片内RAM位寻址区的位地址表单元地址位地址MSB LSB2FH2EH2DH2CH2BH2AH29H28H27H26H25H7F776F675F574F473F372F7E766E665E564E463E362E7D756D655D554D453D352D7C746C645C544C443C342C7B736B635B534B433B332B7A726A625A524A423A322A79716961595149413931297870686058504840383028续表单元地址位地址MSB LSB24H23H22H21H20H271F170F07261E160E06251D150D05241C140C04231B130B03221A120A02211911090120181008003)用户RAM区在内部RAM的128个单元中,通用寄存器占了32个单元,位寻址区占了16个单元,剩下80个单元,这就是供用户使用的一般RAM区,其单元地址为30H7FH。对用户RAM区的使用没有任何规定和限制,但在实际使用中,常需在RAM区设置堆栈。这在编程中使用RAM单元时应特别注意,不要和栈区单元混淆。3内部数据存储器(RAM)高128单元内部数据存储器(RAM)高128单元是供给专用寄存器使用的,其单元地址为80HFFH。但这21个专用寄存器的地址分散地分布在80HFFH的地址空间中,只占用了高128单元中的21个单元。因这些寄存器的功能已作专门规定,故称之为专用寄存器(Special Function Register),也可称之为特殊功能寄存器。1)特殊功能寄存器(SPR)简介8051/89C51共有21个专用寄存器,现把其中部分寄存器简单介绍如下:(1)程序计数器(Program Counter,PC) PC是一个16位的计数器,它的作用是控制程序的执行顺序,其内容为下一条要执行的指令的地址,寻址范围达64KB。PC有自动加1的功能,从而实现程序的顺序执行。PC没有地址,是不可寻址的,因此用户无法对它进行读/写操作,但可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。因地址不在SFR(专用寄存器)内,一般不计作专用寄存器。(2)累加器(Accumulator,ACC) 累加器为8位寄存器,是最常用的专用寄存器,功能较多,地位重要。它既可用于存放操作数,也可用来存放运算的中间结果。MCS-51单片机中大部分单操作数指令的操作数就取自累加器,许多双操作数指令中的一个操作数也取自累加器。(3)B寄存器 B寄存器也是一个8位寄存器,主要用于乘除运算。乘法运算时,B存乘数,乘法操作后,乘积的高8位存于B中;除法运算时,B存除数,除法操作后,余数存于B中。此外,B寄存器也可作为一般寄存器使用。(4)程序状态字(Program Status Word,PSW) 程序状态字是一个8位寄存器,用于存放程序运行中的各种状态信息。其中有些位的状态是根据程序执行结果,由硬件自动设置的,而有些位的状态则使用软件方法设定。PSW的位状态可以用专门指令进行测试,也可以用指令读出。一些条件转移指令根据PSW某些位的状态进行程序转移。PSW的各位定义如图1-10所示。PSW位地址:D7HD6HD5HD4HD3HD2HD1HD0HCYACF0RS1RS0OVP图1-10 PSW的各位定义PSW的字节地址为D0H。除PSW.1位保留未用外,其余各位的定义及使用如下:CY(PSW.7)进位标志位。CY是PSW中最常用的标志位。其功能有二:一是存放算术运算的进位标志,在进行加或减运算时,如果操作结果的最高位有进位或借位时,CY由硬件置“1”(Single Chip Micro Computer),否则清“0”;二是在位操作中作累加位使用。位传送、位与位等位操作,进位标志位是固定的操作位之一。AC(PSW.6)辅助进位标志位。在进行加或减运算中,当低4位向高4位进位或借位时,AC由硬件置“1”,否则AC位清“0”。在BCD码调整中也要用到AC位状态。F0(PSW.5)用户标志位。这是一个供用户定义的标志位,需要利用软件方法置位或复位,用于控制程序的转向。RS1和RS0(PSW.4、PSW.3)工作寄存器组选择位。它们被用于选择CPU当前使用的通用寄存器组。通用寄存器共有4组,其对应关系如表1-5所示。表1-5 通用寄存器组的选择RS1 RS0寄存器组片内RAM地址0 0第0组00H07H0 1第1组08H0FH1 0第2组10H17H1 1第3组18H1FH这两个选择位的状态是由软件设置的,被选中的寄存器组即为当前通用寄存器组。当单片机上电或复位后,RS1:RS0=00。OV(PSW.2)溢出标志位。在带符号数加减运算中,OV=1表示加减运算超出了累加器A所能表示的符号数有效范围(-128+127),即产生了溢出;因此运算结果是错误的;OV=0表示运算正确,即无溢出产生。在乘法运算中,OV=1表示乘积超过255,即乘积分别在B与A中;OV=0表示乘积只在A中。在除法运算中,OV=1表示除数为0,除法不能进行;OV=0表示除法可正常进行。P(PSW.0)奇偶标志位,表明累加器A中内容的奇偶性。如果A中有奇数个“1”,则P置“1”,否则置“0”。凡是改变累加器A中内容的指令均会影响P标志位。该标志位对串行通信中的数据传输有重要的意义,在串行通信中常采用奇偶校验的办法来校验数据传输的可靠性。(5)数据指针(DPTR) 数据指针为16位寄存器。编程时,DPTR既可以按16位寄存器使用,也可以按两个8位寄存器分开使用,即: DPH DPTR高8位字节 DPL DPTR 低8位字节DPTR通常在访问外部数据存储器时作地址指针使用。由于外部数据存储器的寻址范围为64KB,故把DPTR设计为16位。(6)堆栈指针 (Stack Pointer,SP) 堆栈是一个特殊的存储区,用来暂存数据和地址,它是按“先进后出”的原则存取数据的。堆栈共有两种操作:进栈和出栈。由于MCS-51单片机的堆栈设在内部RAM中,因此SP是一个8位寄存器。系统复位后,SP的内容为07H,从而复位后堆栈实际上是从08H单元开始的,但08H1FH单元分别属于工作寄存器13区,如果程序要用到这些区,最好把SP值改为更大的值。一般在内部RAM的30H7FH单元中开辟堆栈。SP的内容一经确定,堆栈的位置也就跟着确定下来,由于SP可初始化为不同的值,因此,堆栈位置是浮动的。这里只集中讲述了6个专用寄存器,其余的专用寄存器(如TCON、TMOD、IE、IP、SCON、PCON、SBUF等)将在以后章节中陆续介绍。2)特殊功能寄存器中的字节寻址和位寻址MCS-51系列单片机有21个可寻址的专用寄存器,其中有11个专用寄存器是可以位寻址的。下面把各寄存器的字节地址及位地址并列于表1-6和表1-7中。表1-6 专用寄存器地址表符 号名 称地 址ACCBPSW累加器B寄存器程序状态字E0HF0HD0HSPDPTRP0堆栈指针数据指针(包括DPH和DPL)P0口锁存寄存器81H82H83H80HP1P2P3P1口锁存寄存器P2口锁存寄存器P3口锁存寄存器90HA0HB0HIPIETMOD中断优先级控制寄存器中断允许控制寄存器定时/计数器工作方式状态寄存器B8HA8H89HTCONTH0TL0定时/计数器控制寄存器定时/计数器0(高字节)定时/计数器0(低字节)88H8CH8AHTH1TL1定时/计数器1(高字节)定时/计数器1(低字节)8DH8BHSCONSBUFPCON串行口控制寄存器串行口数据缓冲器电源控制寄存器98H99H87H表1-7 可进行位寻址的SFR的分布SFR位地址/位定义字节地址MSB LSBB0F7HF6HF5HF4HF3HF2HF1HF0HF0HACCE7HF6HE5HE4HE3HE2HE1HE0HE0HPSWD7HD6HD5HD4HD3HD2HD1D0HD0HCYACF0RS1RS0OVPIPBFHBEHBDHBCHBBHBAHB9HB8HB8HPSPT1PX1PT0PX0P3B7B6B5B4B3B2B1B0BOHP3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0IEAFAEADACABAAA9A8A8HEAESET1EX1ET0EX0P2A7A6A5A4A3A2A1A0A0HP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0SCON9F9E9D9C9B9A999898HSM0SM1SM2RENTB8RB8TIRIP1979695949392919090HP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0TCON8F8E8D8C8B8A898888HTF1TR1TF0TR0IE1IT1IE0IT0P0878685848382818080HP0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0对专用寄存器的字节寻址问题作如下几点说明:(1)21个可字节寻址的专用寄存器不连续地分散在内部RAM高128单元之中,尽管还余有许多空闲地址,但用户并不能使用。(2)程序寄数器PC不占据RAM单元,它在物理上是独立的,因此是不可寻址的寄存器。(3)对专用寄存器只能使用直接的寻址方式,书写时既可使用寄存器符号,也可使用寄存器单元地址。全部专用寄存器可位寻址的位共83位,这些位都具有专门的定义和用途。这样,加上位寻址的128位,在MCS-51的内部RAM中共有128+83=211个可寻址位。1.2.3 MCS-51单片机的内部程序存储器MCS-51的程序存储器用于存放编好的程序和表格常数。8051片内有4KB的ROM,8751片内有4KB的EPROM,8031片内无程序存储器。MCS-51的片外最多能扩张64KB程序存储器,片内外的ROM是统一编址的。端保持高电平时,8051的程序计数器PC在0000H0FFFH地址范围内(即前4KB地址)执行片内ROM中的程序,当PC在1000HFFFFH地址范围内时,自动执行片外程序存储器中的程序;保持低电平时,只能寻址外部程序存储器,片外存储器可以从0000H开始编址。MCS-51程序存储器有些单元具有特殊功能,使用时应予以注意。其中一组特殊单元为0000H0002H。系统复位后,(PC)=0000H,单片机从0000H单元开始取指令执行程序。如果程序不从0000H单元开始,应在这三个单元中存放一条无条件转移指令,以便直接转去执行指定的程序。还有一组特殊的单元是0003H002AH,共40个单元。这40个单元被均匀地分为5段,作为5个中断源的中断地址区,其中:0003H000AH 外部中断0中断地址区;000BH0012H 定时/计数器0中断地址区;0013H001AH 外部中断1中断地址区;001BH0022H 定时/计数器1中断地址区;0023H002AH 串行中断地址区。中断响应后,按中断种类,自动转到各中断区的首地址区执行程序,因此在中断地址区中理应存放中断服务程序。通常情况下,8个单元难以存下一个完整的中断服务程序,因此也通常从中断地址区首地址开始存放一条无条件转移指令,以便中断响应后,通过中断地址区再转到中断服务程序的实际入口地址。1.3 MCS-51单片机的并行端口结构单片机芯片内还有一项主要内容即并行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位双向口,这些口在结构和特性上基本相同,但又各具特点,以下对其分别作以介绍。1.3.1 P0口P0口的口线逻辑电路如图1-11所示。由图可知,电路中包含一个数据输出锁存器、两个三态数据输入缓冲器、一个数据输出的驱动电路和一个输出控制电路。当对P0口进行写操作时,由锁存器和驱动电路构成数据输出通路。由于通路中已有输入锁存器,因此数据输出时可以与外设直接连接,而不需再加数据锁存电路。图1-11 P0口某位结构考虑到P0口既可以作为通用的I/O口进行数据输入/输出,也可以作为单片机系统的地址/数据线使用,为此在P0口的电路中有一个多路转接电路MUX。在控制信号的作用下,多路转接电路可以分别接通锁存器输出或地址/数据线。当作为通用的I/O口使用时,内部的控制信号为低电平,封锁与门,将输出电路的上拉场效应管(FET)截止,同时使多路转接电路MUX接通被封锁存器端的输出通路。当P0口作为输出口使用时,内部的写脉冲加在D触发器的CP端,数据写入锁存器,并向端口输出。当P0口作为输入口使用时,应区分读引脚和读端口两种情况,为此,在端口电路中有两个用于读入驱动的三态缓冲器。所谓读引脚即读芯片引脚的数据,这时使用下方的数据缓冲器,由“读引脚”信号把缓冲器打开,把端口引脚上的数据从缓冲器通过内部总线读进来。使用传送指令(MOV)进行读端口操作都是属于这种情况。读端口是指通过上面的缓冲器读锁存器Q端的状态。在端口已处于输出状态的情况下,Q端与引脚信号是一致的,这样安排的目的是为了适应对端口进行“读修改写”操作指令的需要。例如,“ANL P0,A”就是属于这类指令,执行时先读入P0口锁存器中的数据,然后与A的内容进行逻辑与,再把结果送回P0口。对于这类“读修改写”指令,不直接读引脚而读锁存器是为了避免可能出现的错误。因为在端口已处于输出状态的情况下,如果端口的负载恰是一个晶体管的基极,导通了的PN结会把端口引脚的高电平拉低,这样直接读引脚就会把本来的“1”误读为“0”;但若从锁存器Q端读,就能避免这样的错误,得到正确的数据。需要注意的是,当P0口进行一般的I/O输出时,由于输出电路是漏极开路电路,因此必须外接上拉电阻才能有高电平输出;当P0口进行一般的I/O输入时,必须先向电路中的锁存器写入“1”使FET截止,以避免锁存器为“0”状态时对引脚读入的封锁。在实际应用中,P0口绝大多数情况下都是作为单片机系统的地址/数据线使用,这要比一般I/O口应用简单。当输出地址或数据时,由内部发出控制信号,打开上面的与门,并使多路转接电路MUX处于内部地址/数据线与驱动场效应管栅极反向接通状态,这时输出驱动电路由于上、下两个FET处于反相,形成推拉式电路结构,使负载能力大为提高。当输入数据时,数据信号直接从引脚通过输入缓冲器进入内部总线。1.3.2 P1口图1-12 P1口某位结构P1口的口线逻辑电路如图1-12所示。因为P1口通常是作为通用I/O口使用的,所以在电路结构上与P0口有一些不同之处:首先它不再需要多路转接电路MUX;其次是电路的内部有上拉电阻,与场效应管共同组成输出驱电路。因此,P1口作为输出口使用时,已经能向外提供推拉电流负载,无需再外接上拉电阻。当P1口作为输入口使用时,同样也需先向锁驱动电路FET截止。1.3.3 P2口P2口的口线逻辑电路如图1-13所示。P2口电路比P1口电路多了一个多路转接电路MUX,这又正好与P0口一样。P2口可以作为通用I/O口使用,这时多路转接电路开关倒向锁存器Q端。通常情况下,P2口是作为高位地址线使用,此时多路转接电路开关应倒向相反方向。图1-13 P2口某位结构1.3.4 P3口P3口的口线逻辑电路如图1-14所示。P3口的特点在于适应引脚信号第二功能的需要,增强了第二功能控制逻辑。由于第二功能信号有输入和输出两类,因此分两种情况说明。对于第二功能为输出的信号引脚,当作为I/O使用时,第二功能信号引脚应保持高电平,与非门开通,以维持从锁存器到输出端数据输出通路的畅通。输出第二功能信号时,该位的锁存器应置“1”,使与非门对第二功能信号的输出是畅通的,从而实现第二功能信号的输出。图1-14 P3口某位结构对于第二功能为输入的信号引脚,在口线的输入通路上增加了一个缓冲器,输入的第二功能信号就从这个缓冲器的输出端取得。而作为I/O使用的数据输入,仍取自三态缓冲器的输出端。不管是作为输入口使用还是第二功能信号输入,输出电路中的锁存器输出和第二功能输出信号线都应该保持高电平。1.4 时钟电路与复位电路时钟电路用于产生单片机工作所需要的时钟信号,而时序所研究的是指
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 下半年山西省抹灰工技师考试试题
- 仓储防火安全课件
- 企业安全培训课件下载
- 儿童心理测评试题及评分标准
- 家庭装修知识与技巧题库解答集
- 企业管理-文化广场建设申请报告模板
- 快速反应力测试题及解答指南
- 建筑材料知识自测题及答案一览表
- 客户服务市场能力自测题及参考答案
- 康师傅营养知识测试题及答案详解
- 画展展示活动策划方案
- 全国大学生职业规划大赛《财务管理》专业生涯发展展示【曾获省级一等奖】
- 2023年湘西土家族苗族自治州辅警协警招聘考试真题及一套答案详解
- 全册教案-2025-2026学年度二年级上册音乐人音版
- 主播签电子合同范本
- 专题27.4 相似三角形的性质【十大题型】(举一反三)(人教版)(原卷版)
- 高中英语非谓语动词专项训练题库
- 河南省青桐鸣大联考2025-2026学年高一上学期10月联考物理试卷(含解析)
- 2025-2030中国饮料行业智能制造示范工厂建设标准解读
- 野兽派艺术心理学课件
- 2024人教版七年级全一册体育与健康全册教案
评论
0/150
提交评论