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

发布于:2024-07-17 编辑:匿名 来源:网络

为了保证程序能够连续执行,CPU必须有某种手段来确定一条指令的地址。

程序计数器PC就是起到这个作用的,所以通常也称为指令地址计数器。

在程序开始执行之前,必须设置其起始地址。

即向PC发送程序第一条指令所在内存单元的地址。

当执行一条指令时,CPU会自动修改PC的内容,使其始终保存下一条要执行的指令的地址。

由于大部分都是按顺序执行的,所以修改过程只是简单的加1。

   下面我们看一下内存系统:(这一章很重要,请仔细理解)串行单片机的内存配置方法与一般微型计算机不同。

一般微型计算机通常只有一个地址空间,ROM和RAM可以随意布置在这个地址范围内的不同空间中。

即ROM和RAM的地址被分配到同一个队列中的不同地址空间。

CPU访问内存时,一个地址对应一个唯一的存储单元,可以是ROM或RAM,并使用类似的访问指令。

这种内存结构称为普林斯顿结构。

  的内存在物理上分为程序内存空间和数据内存空间。

有四个存储空间:片内程序存储器和片外程序存储空间,以及片内数据存储器和片外数据存储器。

这种程序存储器和数据存储器分离的结构称为哈佛结构。

但从用户使用的角度来看,内存地址空间分为三类:  1。

片内、片外统一地址H-FFFFH 64K字节程序存储器地址空间,采用16位地址; 2、64K字段外数据存储器的地址空间也是从H到FFFFH,使用16位地址; 3、K字节数据存储器地址空间使用8位地址。

  以上三个存储空间的地址有重叠。

这三个不同的逻辑空间有什么区别?指令系统设计了不同的数据传输指令符号:CPU使用MOVC访问片内和片外ROM指令,访问片内ROM指令。

使用 MOVX 作为外部指令,使用 MOV 作为访问片上 RAM 的指令。

  1。

程序存储器地址空间 程序存储器用于存储编程的程序和表常量。

程序存储器通过16位程序计数器PC寻址,寻址容量为64K字节。

,64位程序存储器片内ROM为4K字节,地址为H-0FFFH,片外最大可扩展为64K字节ROM,地址为H-FFFFH,片内和内部统一编址。

  当引脚EA接高电平时,程序计数器PC在H-0FFFH范围内,即第一个4K字节地址执行片内ROM中的程序;当指令地址超过0FFFH时,自动切换到片外ROM指令。

  当引脚EA接低电平时,片内ROM不工作,CPU只能从片外ROMZ取指令,地址可以从H开始寻址。

这种接法特别适用于使用单片机的应用。

由于芯片上没有ROM,因此必须将EA 设置为0,以便可以从外部扩展EPROM 中取指令。

  从片内程序存储器和片外程序存储器取值时执行速度是相同的。

程序存储器的某些位置被保留供系统使用。

  存储单元H-H作为上电复位后的启动程序存储单元。

由于上电复位后程序计数器PC的内容为H,所以CPU总是从H开始执行程序。

如果这三个单元中有传送指令,则程序将被定向到传送指令指定的ROM空间以便执行。

  H-H单元均匀分为5段,作为5个中断服务程序的入口。

因为这五个入口之间的间隔较小,所以一般来说,这五个入口都放置跳转指令,而真正的中断服务程序则酌情安排在后面的内存中。

这五个条目分别是:   h:外部中断0的入口地址。

当外部中断引脚INT0,即P3.2有效时,产生中断申请。

CPU响应中断后,自动将地址H加载到程序计数器PC中。

,程序切换到H,执行外部中断0的中断服务程序。

  Bh:定时器0溢出中断的入口地址。

当定时器T0溢出时,产生中断请求。

CPU响应中断后,自动将地址BH加载到程序计数器PC中,并将程序传送到BH执行定时器。

0 中断服务程序。

  h:外部中断入口地址1。

当外部中断引脚INT1,即P3.3有效时,产生中断申请。

CPU响应中断后,自动将地址H装入程序计数器PC,程序转入H执行外部中断1的中断服务程序。

  Bh:定时器1溢出的入口地址打断。

当定时器T1溢出时,产生中断申请。

CPU响应中断后,自动将地址BH加载到程序计数器PC中,程序转入H执行。

定时器1的中断服务程序。

  h:串行接口中断的入口地址。

当串行接口接收或发送一段数据时,会引起中断请求。

CPU响应中断后,自动将地址H装入程序计数器PC,程序转入H.串行接口中断服务程序。

  2。

数据存储器地址空间。

  数据存储器RAM用于存储运算中的中间结果、暂存数据、缓冲区、标志位等。

数据存储器空间也分为片内和片外两部分,即片内RAM和片外RAM。

  片外数据存储空间为64K,范围从H-FFFFH;片内存储空间以字节为单位,地址范围为H-00FFH。

  (1) 片外RAM 片外数据存储器的低地址H-00FFH 与片内数据存储器空间重叠。

如何区分片内和片外RAM空间?有两个指令:MOV 和 MOVX。

用途 区分片内和片外RAM空间。

片内RAM使用MOV指令,片外64KRAM空间专门用于MOVX指令。

  (2) 片内RAM数据存储器的最大可寻址单元分为两部分:   低字节00H-7KH是真正的RAM区域。

高字节80H-FFH为特殊功能寄存器区。

  低字节RAM,地址00H-1FH分为四组寄存器区,每组有8个工作寄存器,即R0-R7,共占用32个单元。

通过设置程序状态字PSW中的RS1和RS0两位,可以选择每组寄存器作为CPU当前的工作寄存器组。

如果程序中不需要4组,则其余的可以作为通用RAN单元。

CPU复位后,选择第0组工作寄存器。

  工作寄存器区之后的16字节单元,即20H-2FH,可以按位寻址方式访问。

该位的地址为00H-7FH。

低字节RAM单元的地址范围也是00H-7FH,以不同的寻址方式来区分,即采用位寻址来访问单位地址。

访问低字节单元可以采用直接寻址或间接寻址,这样就可以区分00H-7FH是位地址还是字节地址。

稍后将讨论寻址方法。

通过执行指令,可以直接对某一位进行操作,如置1、校验0,或者判断1、判断0等,可以作为软件标志位,也可以进行位处理。

  高字节RAM,特殊功能寄存器。

在片内高字节RAM中,除了程序计数器PC外,还有21个特殊寄存器,也称为特殊功能寄存器。

它们离散地分布在80H-FFH的RAM空间中。

21个特殊功能寄存器中,有11个特殊功能寄存器具有位寻址能力,其字节地址正好能被8整除。

下面介绍部分特殊功能寄存器,其余的稍后介绍:页--]  (1) 累加器ACC 累加器ACC 是最常见、最繁忙的八位特殊功能寄存器。

很多指令的操作数都是从ACC中取出的,很多运算结果也存放在ACC中。

A用作指令系统中累加器ACC的助记符。

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

  (2) 寄存器B 在乘法和除法指令中使用8 位B 寄存器。

乘法指令的两个操作数分别来自A和B,乘积存储在两个8位寄存器B和A中。

除法指令中,被除数存储在A中,除数存储在B中,商存储在存储在A中,余数存储在B中。

在其他指令中,B可以用作通用寄存器或RAM单元。

  (3) 程序状态寄存器PSWPSW 是8 位特殊功能寄存器。

其位包含程序执行后的状态信息,用于程序查询或判断。

各位的含义和格式如下:    除了确定的字节地址DOH外,PSW的各位还有一个位地址。

  PY,PSW.7,携带旗帜。

执行加法或减法运算指令时,如果运算结果的最高位为 7,且有进位或借位,则 CY 位由硬件置 1。

如果运算结果的最高位没有进位或借位,则CY 清0。

CY 也是位运算时的累加器。

  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单元;上电复位后,RS1=0,RS0=0,工作寄存器组位于00~07单元;根据需要,可以使用传输指令操作 PSW 整个字节或使用位操作指令改变 RS1 和 RS0 的状态来切换当前工作寄存器组。

该设置为保护节目中的场景提供了方便。

  OV,PSW.2,溢出标志。

在进行二进制补码运算时,如果出现溢出,即运算结果超出-to范围时,OV位会被硬件自动置1;当没有溢出时,OV=0。

  PSW.1为保留位,未使用,为F1用户标志位。

P,PSW.0,奇偶校验标志。

每条指令执行后,该位始终记录累加器 A 中 1 的个数。

如果结果 A 中 1 的个数为奇数,则设置 P=1,否则 P=0。

常用于检查串行通信中数据传输是否有错误。

  (4) 堆栈指针SP 堆栈指针SP 是8 位特殊功能寄存器。

SP的内容即堆栈指针,可以指向片内RAM 00H-7FH的任意单元。

系统复位后,SP被初始化为07H,指向RAM单元07H。

我们先来介绍一下栈的概念。

  和一般的微机处理器一样,它有一个堆栈。

在片内RAM中专门开辟了一个区域,并以“后进先出”的结构处理数据访问。

这种数据就像一般的微机处理器一样配备了堆栈。

在片内RAM中专门开辟了一个区域,并以“后进先出”的结构处理数据访问。

这种数据结构方式对于中断和调用子程序来说非常方便。

栈操作有两种:   一种叫数据压入,即PUSH;另一种叫data pop,即POP。

栈顶由栈指针SP自动管理。

每次压入或弹出操作后,堆栈指针都会自动调整以保持指示堆栈顶部的位置。

在使用栈之前,先给SP赋值,指定栈的起始位置,称为栈底。

  当数据入栈时,SP自动加1,表示当前栈顶位置。

堆栈指针SP是一个双向计数器。

SP 内容在压入堆栈时自动递增,在从堆栈弹出时自动递减。

接入信号必须遵循“后进先出”的原则。

  (5) 数据指针DPTRDPTR 是16 位特殊功能寄存器。

高位字节寄存器用DPH表示,地址为83H。

低位字节寄存器用DPL表示,地址为82H。

DPTR既可以作为16位寄存器处理,也可以作为16位寄存器处理,也可以作为两个独立的8位寄存器DPH和DPL处理。

  (6)IO口P0、P1、P2、P3PO、P1、P2、P3为4个8位特殊功能寄存器,是4个并行IO口的锁存器。

它们都有字节地址,每个锁存器也有位地址,所以当每条IO线独立输入或输出时,可以锁存数据,输出时可以缓冲数据。

中断源包括:定时计数器0、定时计数器1、外部中断0、外部中断1、串口中断。

除了上述资源外,还有40个引脚(这40个引脚请查看相关信息)。

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

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • “土巴兔”提交创业板上市申请拟募资7亿元

    “土巴兔”提交创业板上市申请拟募资7亿元

    日前,深交所受理了土巴兔集团股份有限公司创业板上市申请。 招股书显示深交所网站披露,近三年,土巴兔净利润分别为9700元、9000元、7500元。 土巴兔本次在创业板公开发行的数量将不低于发行后公司总股本的25%,且不超过10000股,拟募集资金8400元。 发行后股本总额不超过0万

    06-17

  • 中国大陆三大芯片代工厂纷纷扩大产能缩小与巨头的差距

    中国大陆三大芯片代工厂纷纷扩大产能缩小与巨头的差距

    过去几年,中国政府大力推动国内半导体产业的发展,实现了更多芯片的国产化。 据悉,除了大量半导体设计公司涌现之外,中国大陆的芯片代工厂也在巨头的压力下扩大产能,走出一条发展道路。 半导体市场分为两类:设计和代工。 如今,几乎所有设计公司都没有芯片制造生产线,而

    06-06

  • 荣誉 -靖亚资本荣获《融资中国》2020年度最具成长价值投资机构十强

    荣誉 -靖亚资本荣获《融资中国》2020年度最具成长价值投资机构十强

    本次年会云集了一批投资界大咖,共同探讨基金行业发展,VC如何变革以及科技创新投资的新趋势。 深入讨论。 多年来,融众研究始终致力于基于研究视角的客观筛选和媒体角度的公正判断,打造客观、公正、权威的综合榜单。 在本次评选中,靖亚资本凭借优质的投资策略和出色的基金

    06-17

  • 价值数万元的新能源智能驾驶

    价值数万元的新能源智能驾驶

    在司机踩下刹车的那一刻,刘元的辅助驾驶系统就退出了。 “当时我在环路上,智能辅助驾驶开启,时速设置为90公里。 一辆车以不安全的距离驶入我的车道。 犹豫之后,我立即选择自己接管。 ”他告诉《Tech星球》 。 随着技术的成熟,国内智能驾驶产业正处于L2向L3过渡的重要阶段

    06-18

  • 帧观德芯完成数亿元C轮融资,高达同志与国信资本共同投资

    帧观德芯完成数亿元C轮融资,高达同志与国信资本共同投资

    投资界(ID:pedaily)12月17日消息,据Arterial.com报道,近日,帧观德芯完成数亿元人民币C轮融资中,由高达先生与国信资本共同投资。 本轮融资将用于探测器的进一步研发、医疗产品线的拓展、科研产品线的建立、销售体系的拓展。 据了解,帧观德芯此前已获得北极光、中金资本

    06-18

  • 融汇金科完成数百万美元B轮融资,由澳洲电信投资领投

    融汇金科完成数百万美元B轮融资,由澳洲电信投资领投

    投资界6月5日获悉,据36氪报道,融汇金科近期完成数百万美元B轮融资由澳洲电信投资公司领导。 本轮融资将用于系统、服务器、存储等方面的技术投资以及金融科技领域的人才招聘。 此前,融汇金科获得了红杉资本中国基金的A轮融资和华创中国领投的A+轮融资。 据了解,融汇金科是

    06-17

  • 新松投资完成云启资本、泰佑基金首批LP投资

    新松投资完成云启资本、泰佑基金首批LP投资

    据投资界7月9日消息,新松机器人投资有限公司(简称“新松投资”)与上海云盘投资云启资本管理有限公司(简称“云启资本”)与北京泰有创业投资管理有限公司(“泰有基金”)投资签约仪式在新松投资总部举行。 此次签约将实现战略合作及数亿LP投资。 双方将共同重点投资机器

    06-18

  • 阿里巴巴与自动驾驶的“殊死搏斗”,应用了AI科学家的“命中注定”故事

    阿里巴巴与自动驾驶的“殊死搏斗”,应用了AI科学家的“命中注定”故事

    9月27日,阿里巴巴宣布小蛮累计配送订单突破1万辆,并表示将启动自动驾驶卡车的研发。 长期以来,这家互联网公司经常以自动驾驶“投资人”的形象出现,但对于阿里巴巴自身在自动驾驶方面的实践以及背后的灵魂人物王刚却知之甚少。 阿里巴巴集团的王刚、副总裁、达摩院自动驾驶

    06-17

  • 九天睿芯获亿元A轮融资,韦豪创新与浦东科技联合领投

    九天睿芯获亿元A轮融资,韦豪创新与浦东科技联合领投

    6月25日消息,九天睿芯近期获得亿元A轮融资,本轮融资由韦豪领投创新新和浦东科技有限公司联合领投,华谊创投、盘满投资、上海物枢参投;去年获得陆奇博士奇绩创新论坛Pre-A轮融资。 九天睿芯CEO刘洪杰告诉36氪,本轮融资主要用于新产品研发和人员扩充。 九天睿芯于2001年在深

    06-18

  • 对外投资合作指南(日本)-国家概况

    对外投资合作指南(日本)-国家概况

    简介 在您准备去日本(日本,简称“日本”或“日本”)开展投资合作之前,您了解日本的政治、经济吗?以及社会文化环境和投资环境?当地有哪些规范外商投资的法律法规?投资时应该注意什么?如何与当地政府、居民、媒体和执法部门打交道? 《对外投资合作国别(地区)指南》系

    06-17

  • 年底VC人员全部退出

    年底VC人员全部退出

    “年初众筹,年底众退”。 这句话本来是一句玩笑话,却让人皱眉。 吴宇在北京供职于一家双币VC,其中一支基金成立于2016年左右,目前已接近退出清算期。 今年,老大召开了全体员工大会。 主题是让每个人列出自己的投资组合,并根据退出不同资产的紧迫性进行讨论。 最终的决定

    06-18

  • 生物科技公司Esco传闻今年计划赴港上市,融资3亿美元至5亿美元

    生物科技公司Esco传闻今年计划赴港上市,融资3亿美元至5亿美元

    据悉,新加坡生物科技公司艺思高(简称“Esco”)计划赴港上市最快今年第四季度在香港公开募集资金。 约3亿美元至5亿美元。 中金公司、美国银行、杰富瑞和摩根大通正在与该公司协调上市事宜。 听,中小企业反馈平台。 倾听用户需求,倾听创业者声音,解决中小企业痛点。 点击

    06-17