单片机的程序计数器及存储系统

发布者:科技先锋最新更新时间:2017-12-21 来源: eefocus关键字:单片机  程序计数器  存储系统 手机看文章 扫描二维码
随时随地手机看文章

  为了保证程序能够连续地执行下去,CPU必须具有某些手段来确定一条指令的地址。程序计数器PC正是起到了这种作用,所以通常又称其为指令地址计数器。在程序开始执行前,必须将其起始地址。即程序的第一条指令所在的内存单元地址送入PC。当执行指令时,CPU将自动修改PC的内容,使之总是保存将要执行的下一个条指令的地址。由于大多数都是按顺序执行的,所以修改的过程只是简单的加1操作。


  下面我们看看8051的存储器系统:(此章非常重要,请仔细理解)8051序列单片机与一般微机的存储器配置方式不相同。一般微机通常只有一个地址空间,ROM和RAM可以随意安排在这一地址范围内不同的空间,即ROM和RAM的地址同在一个队列里分配不同的地址空间。CPU访问存储器时,一个地址对应唯一的存储单元,可以是ROM也可以是RAM,并用同类访问指令。此种存储器结构称普林斯顿结构。

  8051的存储器在物理结构上分程序存储器空间和数据存储器空间。有四个存储空间:片内程序存储器和片外程序存储空间以及片内数据存储器和片外数据存储器。这种程序存储器和数据存储器分开的结构形式,称为哈佛结构。但从用户使用的角度,8051存储器地址空间分为三类:

  1、片内,片外统一编址0000H—FFFFH的64K字节的程序存储器地址空间,用16位地址;2、64K字节片外数据存储器地址空间,地址也从0000H—FFFFH,用16位地址;3、256K字节数据存储器地址空间,用8位地址。

  上述三个存储空间地址是重迭的,任何区别这三个不同的逻辑空间呢?8051的指令系统设计了不同的数据传送指令符号:CPU访问片内片外ROM指令用MOVC,访问片外指令用MOVX,访问片内RAM指令用MOV。

  一 、程序存储器地址空间8051程序存储器用于存放编好的程序和表格常数。程序存储器通过16位程序计数器PC寻址,寻址能力为64K字节。8051,8751的64程序存储器片内ROM为4K字节,地址为0000H—0FFFH,片外最多可扩至64K字节ROM,地址1000H—FFFFH,片内外是统一编址的。

  当引脚EA接高电平时,8051程序计数器PC在0000H—0FFFH范围内,即前4K字节地址执行片内ROM中的程序;当指令地址超过0FFFH后,就自动地转向片外ROM指令。

  当引脚EA接低电平时,8051片内ROM不起作用,CPU只能从片外ROMZ中取指令,地址可以从000H开始编址。这种接法特别适用于采用8031单片机的场合,由于8031片内不带ROM,所以使用使必须使EA=0.以便能够从外部扩展EPROM中取指令。

  8051从片内程序存储器和片外程序存储器取 值时执行速度相同。程序存储器的某些单元是留给系统使用的。

  存储单元0000H-0002H用作8051上电复位后引导程序存放单元。因为8051上电复位后程序计数器PC的内容为0000H,所以CPU总是从0000H开始执行程序。如果在这三个单元中存有转移指令,那么程序就被引导到转移指令指定的ROM空间去执行。

  0003H—0023H单元均匀地分为五段,用作五个中断服务程序的入口,因为这五个入口之间的间隔较小,因此,一般说来这五个入口处都是放的一条跳转指令,而把真正的中断服务程序视情况安排在后面的存储器中。这五个入口分别是:

  0003h:外部中断0的入口地址,当外部中断引脚INT0,即P3.2有效时,引起中断申请,CPU响应中断后自动将地址0003H装入程序计数器PC,程序就被转换到0003H去执行外部中断0的中断服务程序。

  000Bh:定时器0溢出中断的入口地址,当定时器T0产生溢出时,引起中断申请,CPU响应中断后自动将地址000BH装入程序计数器PC, 程序就被转移到000BH去执行定时器0的中断服务程序。

  0013h:外部中断1的入口地址,当外部中断引脚INT1,即P3.3有效时,引起中断申请,CPU响应中断后自动将地址0013H装入程序计数器PC, 程序就被转移到0013H去执行外部中断1的中断服务程序。

  001Bh:定时器1溢出中断的入口地址,当定时器T1产生溢出时,引起中断申请,CPU响应中断后自动将地址001BH装入程序计数器PC, 程序就被转3移到0003H去执行定时器1的中断服务程序。

  0023h:串行接口中断的入口地址,当串行接口接收或发送完一个数据后,引起中断申请,CPU响应中断后自动将地址0023H装入程序计数器PC,程序就被转移到0023H去串行接口中断服务程序。

  二、数据存储器地址空间。

  数据存储器RAM用于存放运算中的中间结果,数据暂存,缓冲,标志位等。数据存储器空间也分为片内和片外两部分,即片内RAM和片外RAM。

  8051片外数据存储器空间为64K,从0000H—FFFFH;片内存储器空间为256字节,地址从0000H—00FFH。

  (一)片外RAM片外数据存储器与片内数据存储器空间低地址0000H—00FFH是重迭的,如何区分片内,片外RAM空间呢?8051有MOV和MOVX两种指令,用于区分片内片外RAM空间。片内RAM使用MOV指令,片外64KRAM空间专门为MOVX指令使用。

  (二)片内RAM数据存储器最大可寻址256个单元,它们又分为两个部分:

  低128字节,00H—7KH,是真正的RAM区。高128字节,80H—FFH,为特殊功能寄存器区。

  低128字节RAM ,00H—1FH地址安排为四组寄存器区,每组有八个工作寄存器,即R0-R7,,共占32个单元。通过对程序状态字PSW中RS1,RS0两位的设置,每组寄存器可选作CPU的当前工作寄存器组。若程序中并不需要四组,那么其余可用作一般RAN单元。CPU复位后,选中第0组工作寄存器。

  工作寄存器区后的16字节单元,即20H—2FH,可以位寻址方式访问其各位,这128个位的地址为00H—7FH。低128字节RAM单元地址范围也是00H—7FH,8051采用不同寻址方式加以区分,即访问128个位地址用位寻址方式。访问低128字节单元用直接寻址或间接寻址,这样就可以区分开00H—7FH是位地址还是字节地址,寻址方式以后再讲。通过执行指令可直接对某一位操作,如置1,请0或判1,判0等,可用作软件标志位或用于位处理。

  高128字节RAM,特殊功能寄存器,8051片内高128字节RAM中,除程序计数器PC外,有21专用寄存器,也称特殊功能寄存器,它们离散地分布在80H—FFH的RAM空间中。在21个特殊功能寄存器中,有11个特殊功能寄存器具有位寻址能力,它们的字节地址正好能被8整除,下面介绍部分特殊功能寄存器,其余将在后面讲述:

  (1)累加器ACC累加器ACC是8051最常见,最繁忙的八位特殊功能寄存器,许多指令的操作数取自于ACC,许多运算结果也存放于ACC中。在指令系统中采用A作为累加器ACC的助记符。

  (2)寄存器B在乘、除指令中,用到了8位B寄存器。乘法指令的两个操作数分别来自A和B,乘积存放于B,A两个8位寄存器中。除法指令中,A中存放被除数,B中放除数,商存放于A中,B中存放余数。在其他指令中,B可作为一般通用寄存器或一个RAM单元使用。

  (3)程序状态寄存器PSWPSW是一个8位特殊功能寄存器,它的各位包含了程序执行后的状态信息,供程序查询或判别之用。各位的含义及其格式如下:

  PSW除有确定的字节地址DOH外,每一位均有位地址。

  PY,PSW.7,进位标志位。在执行加法或减法运算指令时,如果运算结果最高位即位7,向前有进位或借位,CY位由硬件置1,如运算结果最高位无进位或借位,则CY清0。CY也是8051在进行位操作时的累加器。

  AC,PSW.6半标记位,也称辅助进位标志。当执行加法或减法操作时,其运算结果产生由低半字节,即位3向高半字节有半进位或借位时AC位将被硬件自动置1,否则AC被自动清0。

  PSW.5,用户标志位。用户可以根据自己的需要对FO位赋予一定含义,由用户置位,复位,系统没有规定它的意义。

  RSO,和RS1,PSW.4,和PSW.5,工作寄存器组选择控制位。这两位的值决定选择哪一组工作寄存器为当前工作寄存器组。由用户用软件改变RS1和RS0值的组合,以切换当前选用的工作寄存器组。

  当RS1=0,RS0=0时,工作寄存器组定位在00到07单元,即此时R0就是00,R1就是01,R2就是02,R3就是03,R4就是04,R5就是05,R6就是06,R7就是07。

  当RS1=0,RS0=1时,工作寄存器组定位在08到0F单元;当RS1=1,RS0=0时,工作寄存器组定位在10到17单元;当RS1=1,RS0=1时,工作寄存器组定位在18到1F单元;8051上电复位后, RS1=0,RS0=0,工作寄存器组定位在00到07单元;根据需要,可利用传送指令对PSW整字节操作或用位操作指令改变RS1和RS0的状态,以切换当前工作寄存器组。这样的设置对程序中保护现场提供了方便。

  OV,PSW.2,溢出标志位。当进行补码运算时,如有溢出,即当运算结果超出-128到+127的范围时,OV位由硬件自动置1;无溢出时,OV=0。

  PSW.1,为保留位,8051未用,8052为F1用户标志位。P, PSW.0,奇偶检验标志位。每条指令执行后,该位始终跟踪指示累加器A中1的个数。如结果A中有奇数个1,则置P=1,否则P=0.常用于校验串行通讯中的数据传送是否出错。

  (4)堆栈指针SP堆栈指针SP为8位特殊功能寄存器,SP的内容即堆栈指针可指向8051片内00H—7FH RAM的任何单元。系统复位后,SP初始化为07H,即指向07H的RAM单元。下面介绍一下堆栈的概念。

  8051同一般微机处理器一样,设有堆栈。在片内RAM中专门开辟出一个区域,数据的存取是以“后进先出”的结构方式处理的。这种数据结构方式对于中断,调用子程序都非常方便。堆栈的操作有两种:

  一种叫数据压入,即PUSH;另一种叫数据弹出,即POP。栈顶由堆栈指针SP自动管理。每次进行压入或弹出操作以后,堆栈指针便自动调整以保持指示堆栈顶部的位置。在使用堆栈之前,先给SP赋值,以规定堆栈的起始位置,称为栈底。

  当数据压入堆栈后SP自动加1以指出当前栈顶位置。8051的堆栈指针SP是一个双向计数器。在压栈时SP内容自动增值,出栈时自动减值,存取信号必须按照“后进先出”的原则。

  (5)数据指针DPTRDPTR是一个16位的特殊功能寄存器,其高位字节寄存器用DPH表示,地址83H,低位字节寄存器用DPL表示,地址82H。DPTR既可以作为一个16位寄存器来处理,也可以作为一个16寄存器来处理,也可以作为两个独立的8位寄存器DPH和DPL使用。

  (6)IO端口P0,P1,P2,P3PO,P1,P2,P3.为四个8位特殊功能寄存器,分别是四个并行IO端口的锁存器。它们都是有字节地址,每一个锁存器还有位地址,所以每一个IO线独立地作输入或输出时,数据可以锁存,作输出时数据可以缓冲。8051的中断源包括:定时计数器0,定时计数器1,外中断0,外中断1,串口中断,除上述资源外8051还有40条引脚(关于这40条引脚,请查看相关资料)。


关键字:单片机  程序计数器  存储系统 引用地址:单片机的程序计数器及存储系统

上一篇:单片机系统资源—指令寄存器、指令译码器
下一篇:8051单片机的复位状态

推荐阅读最新更新时间:2024-03-16 15:50

STM32大行当道,Microchip却集中发布60余款8位MCU
为满足对 8 位微控制器 (MCU) 的需求,Microchip 一下子推出了 5 个新系列、超过 60 款器件,涵盖PIC 和 AVR。 嵌入式设计正成为电子产品越来越流行和重要的元素。就目前而言,您可以在市场上的绝大多数电子和消费设备中找到 MCU。 支持种类繁多的嵌入式设备需要一个多功能的市场,提供满足大多数应用需求的产品。为了满足这一需求,Microchip 最近发布了五个全新的 8 位 PIC 和 AVR MCU 系列,总计超过 60 款器件。 在本文中,我们将介绍 8 位 MCU,它们为何如此重要,以及 Microchip 的五个新系列带来了什么。 单片机位宽 由于 MCU 可用于许多不同的应用,因
[单片机]
STM32大行当道,Microchip却集中发布60余款8位<font color='red'>MCU</font>
关于MCS-51单片机实现PWM的方法
关于MCS-51单片机实现PWM的方法 PWM 是 脉冲宽度调制 的意思。 PWM 实际上是在单片机的某个引脚输出一系列的矩形波,其周期一般是固定的;而其高电平、低电平所占用的时间,是可以受控调整的。高电平、低电平所占用的时间之比,称为占空比,其值为0~1之间。PWM 的应用很广,简单的说,它可以控制灯光的亮度、可以控制直流电机的转速,甚至还可以输出语音信号。 新型的单片机,往往都含有硬件的 PWM 模块,编写程序就很简单;而老式的MCS-51系列,就不具备这个条件。 其实,在没有 PWM 硬件的单片机上实现 PWM,也并不难,只需一个定时器,令其工作在中断方式即可。下面以网上的一个题目为例,说明实现 PWM 方法。 题目链接:ht
[单片机]
单片机教程实战5 动态扫描显示接口
动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。其接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以我们就可以自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。   在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示
[单片机]
<font color='red'>单片机</font>教程实战5 动态扫描显示接口
基于普通单片机的LIN协议实现方案
1 概述   LIN协议是新出现的一种新型低成本串行通信总线,其全称是Local Interconnect Network,即局部互联网络。它最开始出现于汽车行业,是为解决汽车智能化和网络化的发展要求和降低汽车制造成本的矛盾而提出来的一种串行总线协议,主要用于车门、车灯等需要简单控制但又要求智能控制的场合。它的主要特点是:采用单个主控制器/多从设备通信模式;基于普通UART/SCI接口硬件实现,协议简单;网络传输速率不高,最高可达20kb/s。由于LIN协议的突出特点是协议对硬件的依赖程度低,可以基于普通单片机的通用串口等硬件资源以软件方式实现,成本低廉,因此可广泛应用于汽车行业以外的其他领域,如智能家庭网络内部的数据传输、节点控
[单片机]
如何快速掌握一款新的MCU
任何一款MCU,其基本原理和功能都是大同小异,所不同的只是其外围功能模块的配置及数量、指令系统等。对于指令系统,虽然形式上看似千差万别,但实际上只是符号的不同,其所代表的含义、所要完成的功能和寻址方式基本上是类似的。因此,对于任何一款MCU,主要应从如下的几个方面来理解和掌握: * MCU的特点: 要了解一款MCU,首先需要知道就是其ROM空间、RAM空间、IO口数量、定时器数量和定时方式、所提供的外围功能模块(Peripheral Circuit)、中断源、工作电压及功耗等等。 * 了解这些MCU Features后,接下来第一步就是将所选MCU的功能与实际项目开发的要求的功能进行对比,明确那些资源是目前所需要的,那些是本项
[单片机]
基于采用AT89S51单片机和LM35温度传感器的温度采集显示系统设计
随着电子和传感技术的快速发展,温度的测量和控制在民用、工业以及航空航天技术等领域,等到了广泛应用。小型的、低功耗的、廉价的、可靠性高的温度传感器引起了人们的广泛关注。在实际生产、生活等领域中,温度是环境因素不可或缺的一部分,对温度进行及时精确的控制和检测显得尤为重要。本文基于AT89S51单片机,采用 LM35温度传感器,设计了一种灵敏度较高,抗干扰能力强,工作稳定可靠的温度采集显示系统。 1、系统结构及工作原理 温度采集显示系统电路由温度采集模块、A/D转换模块、单片机控制模块、数码管显示模块和下载模块组成。电路工作原理是:首先由LM35温度传感器采集外界环境的温度,经LM358放大10倍后以电压形式输入到A/D采样电路,由
[单片机]
基于采用AT89S51<font color='red'>单片机</font>和LM35温度传感器的温度采集显示系统设计
利用MCU设计离线锂电池充电器
高效、低成本及可靠的电池充电器设计可用各种方法来实现,但采用8位闪速MCU不仅能缩短设计时间、降低成本及提供安全可靠的产品,而且还能使设计人员以最少的工作量来进行现场升级。 图1:(a):降压转换器开关“开”;(b):降压转换器开关“关” 考虑到电池安全充电的成本、设计效率及重要性,基于MCU的解决方案可为设计者们提供诸多优势。通过选择带适当外围与闪存的8位MCU,工程师们能充分利用其优势来设计一种离线锂电池充电器。带2KB闪存及适当外围以提供一种廉价解决方案的飞利浦 80C51型MCU就是这样一个例子。集成化闪存还能提供高效及方便地调试应用代码并进行现场软件升级(如果需要)的能力。 由于设计
[单片机]
利用<font color='red'>MCU</font>设计离线锂电池充电器
基于单片机实现嵌入式因特网终端的设计
主要芯片介绍 ·SX52BD是Ubicom公司生产的一款RISC指令集的高速单片机。程序存储器采用Flash,片内容量为4096字节,重复写周期1万次以上;数据存储器是SRAM,片内容量为262×8位。SX52BD采用4个阶段传递(接收-解码-执行-写入),所以每一时钟周期执行1条指令。当最大操作频率达到100MHz时,指令以每10ns的时钟周期运行。通过串口或并口可以对芯片进行在线编程,芯片还有在线调试支持逻辑。该单片机的最大特点就是虚拟外设功能,即通过软件对I/O口进行灵活的配置, CPU通过执行虚拟软件模块直接驱动I/O口实现硬件外设功能(如UART、I2C、SPI、Caller ID、FSK等)。 ·
[单片机]
基于<font color='red'>单片机</font>实现嵌入式因特网终端的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved