2-第二章 80C51单片机的硬件

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第二章80C51单片机的硬件结构80C51单片机的内部结构80C51的外部引脚及功能80C51的存储器配置80C51的并行输入/输出接口电路80C51外围电路设计2.180C51单片机的内部结构80C51系列单片机是由Intel等各大公司推出的8位主流单片机系列,它是我国目前应用最广泛的一种单片机系列。以该系列中的典型芯片80C51为线索来介绍单片机的内部结构、外部引脚、存储器配置、并行I/O端口、外围电路等内容。在51系列单片机里,80C51是最典型的单片机,其它芯片都具有与80C51基本相同的硬件结构和软件特征,其内部结构如图2.1所示。80C51概况数据总线为8位,地址总线为16位;CMOS工艺;128B的RAM;4K的ROM;2个16位的定时器;5个中断源;……….2.280C51的外部引脚及功能引脚共计40根,其中:电源引脚:2根,Vcc和Vss;晶振引脚:2根,XTAL1和XTAL2;I/O引脚:32根;控制引脚:4根EARSTPSENALE2.380C51的存储器配置80C51的片内集成有一定容量的程序存储器和数据存储器(128B)。当然,还可以根据需要对存储器进行外部扩展。80C51的存储器配置如图2.3所示。从物理上分,80C51的存储器有4个存储空间:片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器。从逻辑上分,80C51有3个存储器地址空间:片内外统一的64KB的程序存储器地址空间、256B的内部数据存储器地址空间(其中128B的专用寄存器地址空间,仅有部分字节有实际意义)和64KB的外部数据存储器地址空间。为了区分不同的存储器空间,在用指令访问这三个不同的逻辑空间时采用了不同形式的指令。一、程序存储器80C51单片机内部有4K的程序存储器,0000H~3FFFH;程序从0000H开始;有一些特殊功能的区域,如中断入口地址。中断入口地址表:中断源入口地址外部中断00003H定时器0000BH外部中断10013H定时器1001BH串行口0023H二、内部数据存储器内部数据存储器在物理上分为两个不同的存储空间:数据存储器空间(低128单元)特殊功能寄存器空间(高128单元)。这两个空间是相连的。从用户角度而言,低128单元才是真正的数据存储器。1.数据存储器空间(低128单元)数据存储器空间(低128单元)按功能划分为:通用寄存器区位寻址区用户区图2.4内部数据存储器配置(1).通用寄存器区00H~1FH的32个单元是4个通用工作寄存器区,每个区有8个8位寄存器,其编号为R0~R7。在任一时刻,CPU只能使用其中的一组寄存器,并且把正在使用的那组寄存器称之为当前寄存器区。到底选择哪一个工作组为当前工作区,取决于专用寄存器PSW(程序状态字)中的RS1和RS0位的状态。RS1和RS0的状态可通过指令来改变。用户可以通过设置RS1和RS0位的状态来选择/切换当前工作寄存器区,这给用户保护寄存器中的内容提供了极大的方便。(2).位寻址区RAM中的20H~2FH的16个单元除了可作为一般RAM单元进行字节寻址外,还可进行位寻址,称作位寻址区。位寻址区共有16个RAM单元,合计128位,位地址为00H~7FH。80C51单片机具有位处理机(又称布尔处理机)功能,位处理机的存储空间就包括这个位寻址区。表2-3为位寻址区的位地址表。表2-3位寻址区的位地址(3).用户区在内部RAM低128单元中,通用寄存器占去32个单元,位寻址区占去16个单元,剩下的80个单元就是供用户使用的一般RAM区,地址单元为30H~7FH。对这部分区域的使用不作任何规定和限制,但应当说明的是,堆栈一般开辟在此区。*关于堆栈堆栈:是一个特殊的存储区域;特点:“后进先出”。单片机的堆栈是地址增加型,即压入数据时地址指针增加。堆站的操作有压入:PUSH弹出:POP2.特殊功能寄存器SFR(高128单元)内部RAM的高128单元是给特殊寄存器使用的,因此称之为专用寄存器区,其单元地址为80H~FFH。因为这些寄存器的功能已作专门规定,所以称其为专用寄存器或特殊功能寄存器(SpecialFunctionRegisters)。特殊功能寄存器的总数为21个,仅占用了80H~FFH中的很小一部分。表2-4给出了这些特殊功能寄存器的符号、名称和地址等。表2-4特殊功能寄存器一览表21个特殊功能寄存器是不连读地分散在内部RAM的高128单元之中,尽管其中还有许多空闲地址,但用户不能使用。程序计数器PC是独立于SFR之外的唯一的一个不可寻址的专用寄存器。PC不占RAM单元,在物理上是独立存在的。它不包括在21个特殊功能寄存器中。在21个特殊功能寄存器中,有11个寄存器不仅可以字节寻址,也可以进行位寻址。凡是能进行位寻址的SFR,其特征是字节地址都能被8整除(字节地址的末位是0或8)。IP中有3位、IE中有2位、PSW中有一位对用户无实际意义,所以直接寻址位为82位;再加上数据存储器中的128位,80C51共计有210位可寻址位。(1)程序计数器PCPC是一个16位的计数器。其内容为将要执行的指令地址,寻址范围达64KB。PC有自动加1功能,从而实现程序的顺序执行。PC没有地址,是不可寻址的(但在物理上是存在的),因此用户无法对它进行读写;但可以通过转移、调用返回等指令改变其内容,以实现程序的转移。(2)累加器A累加器A为8位寄存器,是最常用的专用寄存器,功能较多。它既可用于存放操作数,也可用来存放中间结果。80C51单片机中大部分单操作数指令的操作数就取自累加器,许多双操作数指令中的一个操作数也取自累加器。加、减、乘、除运算指令的运算结果都存放在累加器A或AB寄存器对中。(3)B寄存器B寄存器是一个8位寄存器,主要用于乘除运算。乘法运算时,B是乘数。乘法操作后,乘积的高8位存于B中。除法运算时,B存放除数。除法操作后,余数存于B中。此外,B寄存器也可作为一般数据寄存器使用。(4)程序状态字PSW(PROGRAMSTATUSWORD)程序状态字PSW是一个8位寄存器,用于存放程序运行的状态信息。其中,有些位的状态是程序执行的结果,是由硬件自动置位的;而有些位的状态则采用软件的方法来设定。PSW的位状态可以用专门指令进行测试,也可以用指令读出。一些条件转移指令会根据PSW有关位的状态进行程序转移。PSW的各位含义如图2.5所示。其中PSW.1为保留位,未用。图2.5程序状态字PSW位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位含义CYACF0RS1RS0OV/P图中:CY(PSW.7):进位标志位CY是PSW中最常用的标志位,其功能有二:一是存放算术运算的进位标志;二是在位操作中作累加位使用。位传送、位与、位或操作,操作数之一为进位标志位。AC(PSW.6):辅助进位位当进行加法或减法操作而产生由低4位向高4位的进位或借位时,由硬件将AC置1;否则就被清除。AC还用于十进制调整,同DAA指令结合起来使用。F0(PSW.5):用户标志位它是用户定义的一个状态标记,可以用软件来使它置位或清除,也可用软件测试F0以控制程序的流向。RS1、RS0(PSW.4,PSW.3):当前寄存器区选择位用软件来置位或清除,以选择和确定当前工作寄存器区。RS1、RS0与寄存器区的关系如表2-5所示。表2-5RS1、RS0与寄存器区的关系RS1RS0当前区号(组)R0~R7地址00000H~07H01108H~0FH10210H~17H11318H~1FHOV(PSW.2)溢出标志位①在带符号数运算中,OV=1,表示加减运算结果超出了累加器A所能表示的符号数的有效范围(–128~+127),即产生了溢出,因此运算结果是错误的;否则OV=0,运算结果正确,无溢出。溢出标志OV在硬件上是通过一个异或门来实现的,即:OV=C6⊕C7其中,C6为D6位向D7位的进位或借位,C7为D7向C的进位或借位。②在乘法运行中,OV=1,表示乘积超过255,即乘积分别放在B与A中;否则OV=0,表示乘积只放在A中。③在除法运行中,OV=1,表示除数为0,除法不能进行;否则,OV=0,除数不为0,除法可正常进行。P(PSW.0):奇偶位每个指令周期都由硬件来置位或清除,以表示累加器A中1的个数的奇偶性。P=1,则累加器A中1的个数为奇数;若P=0,则累加器A中1的个数为偶数。(5)栈指针SP栈指针SP是一个8位专用寄存器。它指示出堆栈顶部在内部数据存储器中的位置。系统复位后,SP初始化为07H,使得堆栈向上由08H单元开始。考虑到08H~1FH单元属于工作寄存器区,若程序设计中要用到这些区,最好把SP的值置为1FH或更大一些,一般将堆栈开辟在30H~7FH区域中。SP的值越小,堆栈深度就越深,但最大为128字节。SP的值除了可以用软件直接改变外(MOVSP,#DATA),在执行堆栈操作,程序调用、子程序返回及中断返回等指令时,SP的值自动增量或减量。堆栈操作指令为:PUSHACC(压入堆栈)POPACC(弹出堆栈)(6)数据指针DPTR数据指针DPTR是唯一1个16位的可寻址的专用寄存器;由两个8位寄存器DPH和DPL拼装而成,其中DPH为DPTR的高8位,DPL为DPTR的低8位。它既可作为一个16位寄存器来使用,也可作为2个独立的8位寄存器(DPH和DPL)来使用。DPTR通常用来存放16位地址。既可访问外部RAM,也可访问ROM。例如:MOVDPTR,#2000HMOVXA,@PPTR;将外RAM2000H单元内容→AMOVCA,@A+DPTR;访问ROM指令(7)端口P0~P3专用寄存器P0、P1、P2和P3分别是I/O口P0~P3的锁存器。在80C51中,I/O和RAM统一编址,既可以字节寻址,也可以位寻址,使用起来较方便。有关P0~P3的详细情况,在后续内容中介绍。(8)串行数据缓冲器SBUF串行数据缓冲器SBUF用于存放欲发送或接收的数据,它实际上由两个独立的寄存器组成,一个是发送缓冲器,另一个是接收缓冲器。当要发送的数据传送到SBUF时,进入的是发送缓冲器,当要从SBUF取数据时,则取自接收缓冲器,取走的是刚接收到的数据。(9)定时器/计数器80C51单片机有两个16位定时器/计数器T0和T1,它们分别由两个独立的8位寄存器组成,共有4个独立的寄存器:TH0,TL0,TH1,TL1,可对这4个寄存器寻址,但不能把T0和T1当成16位寄存器来访问。(10)其它控制寄存器IP、IE、TMOD、TCON、SCON和PCON寄存器分别包含有中断系统、定时器/计数器、串行口和供电方式的控制和状态位,这些寄存器将在以后内容中介绍。三、外部数据存储器当用户需处理的数据量较大而80C51的内部RAM不够用时,单片机需要在芯片外部连接数据存储器(RAM)和I/O接口。单片机可访问的外部RAM的地址空间为0~64KB,最多可由16位地址线寻址;外部RAM与外部I/O口统一编址,即CPU对RAM和I/O口不加区分;对外部数据存储器只能采用间接寻址方式进行访问,访问外部RAM的专用指令为MOVX。R0、R1和DPTR都可作为间接寻址寄存器使用,前者寻址范围仅为256B,后者为64KB。例如:MOVXA,@Ri;(i=0,1)范围为256BMOVXA,@DPTR;范围为64K需要指出的是,尽管80C51单片机的存储器有内部ROM、外部ROM、内部RAM和外部RAM,存储器空间也是重叠的,但在实际应用中不会发生混乱。对内ROM和外ROM,单片机是通过EA引脚来控制的,内外统一,不会出错;对内外RAM而言,通过指令MOV和MOVX加以区分。因此,用户在使用时可尽管放心,只要你使用正确的指令,就能指挥单片机为你正常地工作了。2.4并行输入/输出接口电路单片机芯片内的一项重要内容就是并行I/O口。80C51共有四个8位的

1 / 74
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功