MCS-51单片机的指令时序

51单片机的时钟电路与时序以及 复位电路和电源模式 本文主要涉及51单片机的时钟电路以及相关时序的知识,也讲解了了51单片机的复位电路以及电源模式。 阅读详情

时序是用定时单位来描述的,MCS-51的时序单位有四个,它们分别是节拍、状态、机器周期和指令周期,接下来我们分别加以说明。

 

    ·节拍与状态:

    我们把振荡脉冲的周期定义为节拍(为方便描述,用P表示),振荡脉冲经过二分频后即得到整个单片机工作系统的时钟信号,把时钟信号的周期定义为状态(用S表示),这样一个状态就有两个节拍,前半周期相应的节拍我们定义为1(P1),后半周期对应的节拍定义为2(P2)。

 

    ·机器周期:

    MCS-51有固定的机器周期,规定一个机器周期有6个状态,分别表示为S1-S6,而一个状态包含两个节拍,那么一个机器周期就有12个节拍,我们可以记着S1P1、S1P2……S6P1、S6P2,一个机器周期共包含12个振荡脉冲,即机器周期就是振荡脉冲的12分频,显然,如果使用6MHz的时钟频率,一个机器周期就是2us,而如使用12MHz的时钟频率,一个机器周期就是1us。

 

    ·指令周期:

    执行一条指令所需要的时间称为指令周期,MCS-51的指令有单字节、双字节和三字节的,所以它们的指令周期不尽相同,也就是说它们所需的机器周期不相同,可能包括一到四个不等的机器周期(这些内容,我们将在下面的章节中加以说明)。

 

    ·MCS-51的指令时序:

    MCS-51指令系统中,按它们的长度可分为单字节指令、双字节指令和三字节指令。执行这些指令需要的时间是不同的,也就是它们所需的机器周期是不同的,有下面几种形式:

 

    ·单字节指令单机器周期

    ·单字节指令双机器周期

    ·双字节指令单机器周期

    ·双字节指令双机器周期

    ·三字节指令双机器周期

    ·单字节指令四机器周期(如单字节的乘除法指令)

 

    下图是MCS-51系列单片机的指令时序图:

 

 

 

    上图是单周期和双周期取指及执行时序,图中的ALE脉冲是为了锁存地址的选通信号,显然,每出现一次该信号单片机即进行一次读指令操作。从时序图中可看出,该信号是时钟频率6分频后得到,在一个机器周期中,ALE信号两次有效,第一次在S1P2和S2P1期间,第二次在S4P2和S5P1期间。

 

    接下来我们分别对几个典型的指令时序加以说明。

 

    ·单字节单周期指令:

    单字节单周期指令只进行一次读指令操作,当第二个ALE信号有效时,PC并不加1,那么读出的还是原指令,属于一次无效的读操作。

 

    ·双字节单周期指令:

    这类指令两次的ALE信号都是有效的,只是第一个ALE信号有效时读的是操作码,第二个ALE信号有效时读的是操作数。

 

    ·单字节双周期指令:

    两个机器周期需进行四读指令操作,但只有一次读操作是有效的,后三次的读操作均为无效操作。

    单字节双周期指令有一种特殊的情况,象MOVX这类指令,执行这类指令时,先在ROM中读取指令,然后对外部数据存储器进行读或写操作,头一个机器周期的第一次读指令的操作码为有效,而第二次读指令操作则为无效的。在第二个指令周期时,则访问外部数据存储器,这时,ALE信号对其操作无影响,即不会再有读指令操作动作。

 

    上页的时序图中,我们只描述了指令的读取状态,而没有画出指令执行时序,因为每条指令都包含了具体的操作数,而操作数类型种类繁多,这里不便列出,有兴趣的读者可参阅有关书籍。

 

    ·外部程序存储器(ROM)读时序

    右图8051外部程序存储器读时序图,从图中可看出,P0口提供低8位地址,P2口提供高8位地址,S2结束前,P0口上的低8位地址是有效的,之后出现在P0口上的就不再是低8位的地址信号,而是指令数据信号,当然地址信号与指令数据信号之间有一段缓冲的过度时间,这就要求,在S2其间必须把低8位的地址信号锁存起来,这时是用ALE选通脉冲去控制锁存器把低8位地址予以锁存,而P2口只输出地址信号,而没有指令数据信号,整个机器周期地址信号都是有效的,因而无需锁存这一地址信号。

 

 

    从外部程序存储器读取指令,必须有两个信号进行控制,除了上述的ALE信号,还有一个PSEN(外部ROM读选通脉冲),上图显然可看出,PSEN从S3P1开始有效,直到将地址信号送出和外部程序存储器的数据读入CPU后方才失效。而又从S4P2开始执行第二个读指令操作。

 

    ·外部数据存储器(RAM)读时序

    右图8051外部数据存储器读写时序图,从ROM中读取的需执行的指令,而CPU对外部数据存储的访问是对RAM进行数据的读或写操作,属于指令的执行周期,值得一提的是,读或写是两个不同的机器周期,但他们的时序却是相似的,我们只对RAM的读时序进行分析。

    上一个机器周期是取指阶段,是从ROM中读取指令数据,接着的下个周期才开始读取外部数据存储器RAM中的内容。

 

 

    在S4结束后,先把需读取RAM中的地址放到总线上,包括P0口上的低8位地址A0-A7和P2口上的高8位地址A8-A15。当RD选通脉冲有效时,将RAM的数据通过P0数据总线读进CPU。第二个机器周期的ALE信号仍然出现,进行一次外部ROM的读操作,但是这一次的读操作属于无效操作。

    对外部RAM进行写操作时,CPU输出的则是WR(写选通信号),将数据通过P0数据总线写入外部存储

C51的指令与时序的一点总结 我们知道C51的指令存储在ROM中,它需要从ROM中取出指令才能知道该干什么事。一条指令,首先应该告诉计算机要做什么性质的操作,是加减,还是跳转判断等;其次,还需要给出拿去运算的数据,可以是直接的数据(就是立即能用的数,立即数),也可以是数据存放的地址。那么如何告诉计算机我这个操作码后面跟的是立即数还是地址呢?简单,做个记号,用#来表示立即数,没记号的都是地址。取出指令时,要放在指令寄存器IR里, 阅读详情

相关推荐

MCS-51单片机原理及应用

详细介绍了MCS-51单片机的硬件资源和汇编方法

Tariya's Blog 7078

51单片机内部外设:实时时钟(SPI)

51单片机内部外设:实时时钟

qq_28576837的博客 5079

修改注册表导致开机时电脑显示“无法登陆到你的账户”的问题解决方案

1.问题描述:开机电脑显示“无法登陆到你的账户:通常可以通过从你的账户注销,然后重新登陆来解决问题,如果不立即注销,你创建的任何文件或进行的任何更改都将会丢失。” 2.问题原因:想要修改cmd中的用户名(红色部分),修改了注册表,重启时出现问题。 3.问题解决: win+R输入cmd,确定进入注册表界面,将下面的地址复制进地址栏(你也可以自己按目录查找),双击ProfileImage...

qq_33835957的博客 7万+

深入解析MCS-51单片机扩展8255A并行I/O的MOVX指令时序与硬件设计

本文深入解析MCS-51单片机扩展8255A并行I/O接口的MOVX指令时序与硬件设计。通过详细分析MOVX指令的读写机制、地址锁存器74LS373的协同工作,以及ALE、WR、RD控制信号的精确配合,为单片机系统设计提供实用的时序优化和抗干扰解决方案。

a3b4c5的博客 931

AI Pika 生成进击的巨人动漫分镜案例

AI Pika 生成进击的巨人动漫分镜案例 Pika 是一个使用AI生成和编辑视频的平台。

独立开发,substack顶级编辑 2572

玩转Matlab-Simscape(初级)-01-从一个简单模型开始学习之旅

本文从初学者的角度分享的关于Matlab simscape 的基础内容,简单分享了Simscape搭建模型,创建子系统,修改定义参数等内容,为将来深入学习和使用simscape做铺垫。

万金油笑匠的博客 6516

《单片机原理及应用》 第3章 MCS-51单片机指令系统与程序设计

MCS - 51 单片机的指令系统是一套规定好的指令集合,用于控制单片机完成各种操作。这些指令可以分为不同的类型,包括数据传送、算术运算、逻辑运算、控制转移和位操作等指令。指令系统是单片机软件编程的基础,熟悉指令系统对于编写高效、准确的程序至关重要。MCS - 51 指令系统具有丰富的指令种类,能够满足各种应用场景的需求,例如工业控制、智能仪器仪表等领域。

qq_40844444的博客 2151

Unity 2022打包Android APK:手把手教你创建和配置第一个签名Keystore(避坑指南)

本文详细介绍了Unity 2022打包Android APK时创建和配置签名Keystore的全流程,包括环境准备、Keystore创建、高级配置避坑指南以及签名验证与故障排查。特别强调了Android应用签名的重要性及安全维护策略,帮助开发者避免常见错误,确保应用顺利发布。

weixin_27379781的博客 241

MCS-51单片机扩展并行I/O实现读与写(8255A与理解MOVX指令时序)

摘要:51单片机通过8255A扩展IO口时,需使用74LS373锁存器配合P0口复用地址/数据总线。74LS373在ALE下降沿锁存地址信号(A1A0),8255A根据地址选择寄存器(PA/PB/PC/控制口)。MOVX指令自动生成时序:先输出地址并锁存,再传输数据,通过WR/RD信号控制读写。Proteus仿真验证了该设计,程序成功实现PB口数据转发至PA口。时序分析表明,ALE周期性脉冲不影响操作,仅当WR有效时8255A才会响应。(148字)

2401_87583721的博客 1623

THUCNews新闻文本分类-tfidf+sklearn

本文使用的是和鲸社区现有数据集,代码也在和鲸社区公开,fork之后可以直接运行。 本文中所用的数据集清华NLP组提供的THUCNews新闻文本分类数据集的一个子集(原始的数据集大约74万篇文档,训练起来需要花较长的时间)。 本次训练使用了其中的体育, 财经, 房产, 家居, 教育, 科技, 时尚, 时政, 游戏, 娱乐10个分类,每个分类6500条,总共65000条新闻数据。项目在和鲸社区的平台上跑的,数据集直接引用了和鲸的数据集,每个分类6500条,总共65000条新闻数据。 数据集划分如下: cnews

wmq104的博客 4590

【人工智能时代】-什么是MCP?本地如何开发MCP Server

MCP(Model Context Protocol)全称模型上下文协议,是由 Anthropic 推出的一种开放标准,旨在统一大型语言模型(LLM)与外部数据源和工具之间的通信协议。掌握更多的信息控制更多的工具在没有联网搜索之前,大模型的数据来源只有训练数据的时候以及推理我们告诉他的东西。所以后来的rag、知识库都是让AI掌握更多的信息,而MCP的出现是为了让大模型控制更多的工具,赋予更多能力。在本篇文章中,基于 Python 完成了一个简单的 MCP Server 的开发。

xiaoli8748的专栏 1984

MCS—51引脚功能以及CPU时序

1.引脚功能 1.电源引脚Vcc(40脚):电源端 Vss(20脚):接地端 2.时钟电路引脚XTAL1:接外部石英晶体和微调电容的一端,在片内,它是振荡器反相放大器的输入。 XTAL2:接外部石英晶体和微调电容的另一端,在片内,它是振荡器反相放大器的输出。 振荡器: 是用来产生重复电子讯号(通常是正弦波或方波)的电子元件。其构成的电路叫振荡电路.振荡器是收发设备的基础电路,它的作用是产生一定频率的交流信号。 3.控制信号引脚 ALE/PROG非(30脚):地址锁存允许信号输出端。 此引脚的

m0_67318246的博客 1438

【DRAM存储器四十三】LPDDR5介绍--寻址

简要说明LPDDR5 X16、x8 die的寻址

highman110的博客 966

单片机之时序

先提一个问题:我们学校里什么是最重要的。(铃声)校长可以出差,老师可以休息,但学校一日无铃声必定大乱。整个学校就是在铃声的统一指挥下,步调一致,统一协调地工作着。这个铃是按一定的时间安排来响的,我们可以称之为“时序��时间的顺序”。一个由人组成的单位尚且要有一定的时序,计算机当然更要有严格的时序。事实上,计算机更象一个大钟,什么时候分针动,什么时候秒针动,什么时候时针动...

Gaodes的博客 1943

含分布式光伏的IEEE 33节点配电网电压越限仿真分析

摘要 本文针对分布式光伏接入配电网引发的电压越限问题,基于IEEE 33节点系统开展仿真研究。首先分析了光伏出力的随机性和波动性特性,采用Beta分布和马尔可夫链方法建立光伏出力模型;其次在MATLAB/Simulink平台搭建完整测试系统,包含光伏模型、配电网线路模型和控制模块;最后通过多场景仿真定量分析了不同光伏渗透率和接入位置对节点电压的影响。结果表明:光伏渗透率提高会显著增加电压越限风险,特别是线路末端节点;光伏接入位置对电压分布具有决定性影响,馈线末端接入更易引发电压越限。研究为含高比例光伏的配电

huanghm88的专栏 319

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

MCS-51单片机总体概述(二)

MCS-51总体概述(二)1. CPU的时序及辅助电路1.1 CPU时序的基本概念1.2 时钟电路1.3 复位电路2. MCS-51的引脚及片外总线结构2.1 MCS-51的引脚功能2.2 MCS-51的外部总线结构 1. CPU的时序及辅助电路 1.1 CPU时序的基本概念 1.2 时钟电路 1.3 复位电路 2. MCS-51的引脚及片外总线结构 2.1 MCS-51的引脚功能 2.2 MCS-51的外部总线结构 ...

Spring-99的博客 1980

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

单片机新结

也算是用过一段时间的单片机,但是当初也就是熟悉了一些模块的使用,对于单片机的工作原理并不是很了解。 所以最后也难以深入学习,充其量就是熟悉了C51的编程,要想了解一个MCU的工作原理,了解汇编是很有必要的。 而在编程过程中,最重要的就是时序!无论是进行存储器的读写,还是进行通信,只有时序匹配了,才可以写出 高效的少bug的代码。而这些恰恰是需要掌握最基础的东西才能达到的。于是重新学...

didunwei1204的博客 219

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

采用中断方式编写c语言程序,(C语言版)单片机复习题资料

单片机复习题一、名词解释1、时序:按照时间顺序显示的对象(或引脚、事件、信息)序列关系。2、指令:CPU用于指挥功能部件完成某一指定动作的指示和命令。3、变量:在程序执行过程中,数值可以发生改变的量称为变量。4、伪指令:伪指令又称汇编系统控制译码指令或指示性指令,仅仅用于指示汇编系统软件要完成的操作,故一般不产生机器代码(定义字节或字的伪指令除外)。5、存储种类:变量在程序执行过程中的作用范围。变...

weixin_39928099的博客 204

【学习笔记】单片机原理

汇编语言是与机器打交道的语言 补码

云敬山 4303

MCS-51单片机的结构组成

MCS-51单片机的内部结构包含了作为微型计算机所必需的基本功能部件,CPU、RAM、ROM、定时器/计数器、可编程并行口和可编程串行口等。80C51的内部资源主要包括:1个8位中央处理器(CPU);1个片内振荡器和时钟电路;4KB片内程序存储器(ROM);256字节的片内数据存储器(RAM);2个16位定时器/计数器(T/C);可寻址64KB程序存储空间和64KB数据存储空间的总线控制器;4个8位双向并行I/O口;1个全双工串行口;5个中断源。单片机内最核心部分的是CPU,其主要功能是产生各种控制信号、控

2302_76295184的博客 6361

单片机时钟周期、状态周期、机器周期、指令周期的理解

在我们做学习单片机时,往往要用到延时程序,而要用**汇编语言**写出来,就必须对几个常见周期有所了解,这也算是学习单片机的基本知识。

白鹤想亮翅的博客 3万+

MCS-51单片机原理与应用---期末速成(免费)

复习51单片机原理时,发现免费资料不完整,完整资料又要付费因此我将我复习的知识点在此免费公开,希望对寻找这门课资料的博主提供帮助若哪里有错,敬请指正五~八章,打字太麻烦,将笔记及例题以图片形式展示目录前言一、绪论1.1 MCS-51系列单片机典型芯片二、单片机硬件结构2.1按功能分为8个部件,通过片内总线连接起来2.2单片机引脚及最小系统2.2.1主要分为四大引脚(用标号代替)2.2.2总结2.3CPU由运算器和控制器构成2.3.1运算器2.3.2控制器2.4CPU时序与复位2.4.1时钟周期。

2301_78841466的博客 409

单片机 c语言 概念题,(C语言版)单片机复习题.doc

单片机复习题一、名词解释1、时序:按照时间顺序显示的对象(或引脚、事件、信息)序列关系。2、指令:CPU用于指挥功能部件完成某一指定动作的指示和命令。3、变量:在程序执行过程中,数值可以发生改变的量称为变量。4、伪指令:伪指令又称汇编系统控制译码指令或指示性指令,仅仅用于指示汇编系统软件要完成的操作,故一般不产生机器代码(定义字节或字的伪指令除外)。5、存储种类:变量在程序执行过程中的作用范围。变...

weixin_36215736的博客 394

单片机晶振的作用

晶振,又称晶体振荡器,通常分为有源晶振和无源晶振两种类型,无源晶振一般称之为crystal(晶体),而有源振荡器则叫作oscillator(振荡器)。从晶振的这个名字上就可以知道,它注定要不停地振荡。 单片机是一个复杂的同步时序电路,为了保证同步方式的实现,电路应在唯一的时钟信号控制下严格地按照时序进行工作。而晶振起到的作用就是为单片机系统提供基准时钟信号,类似于部队训练时喊口令的教官,所有的士兵都在教官的口令下完成响应的动作。单片机内部所有的工作都是以这个时钟信号为基准来进行工作的。用...

1万+
上一篇: 时钟周期/指令周期/机器周期/总线周期
下一篇: 流水线、超流水线、超标量技术对比
csshuke
博客等级 码龄16年 1517粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值