【MCS-51】时钟电路和复位

news2024/12/25 8:59:48

 单片机的处理器内部具有众多模块,但是要想协调这些模块统一工作并不是一件易事。为了确保各部分能够统一有序工作,因为单片机已经是一个同步时序电路,所以要想让它内部能够有序工作,我们需要从外部输入一个时钟信号 

目录

🐱振荡方式

🦅内部振荡

🦅外部振荡

🚗CPU时序

🚝基本概念

🚝执行过程

🚀复位


🐱振荡方式

🦅内部振荡

单片机的震荡电路往往有两种形式,一种是内部振荡、另外一种是外部振荡。内部震荡是通过单片机内部的高增益反相放大器,将其通过引脚XTAL1和XTAL2与外部的晶体振荡器或者陶瓷谐振器连接,这样就能在内部产生时钟脉冲。

而在内部产生的振荡信号就就可以立即输入到内部的时钟电路。一般情况下,通过内部时钟发生器后常会输出频率范围为2-12MHz(通常为12MHz)的频率和两种节拍的时钟信号,分别是P1和P2:

这两种节拍对应的时刻将完成不同类型的任务,P1节拍通常是回去完成算术逻辑运算,而P2节拍通常去完成寄存器数据传输

🦅外部振荡

另外还有一种方式就是通过外接一个振荡器,将其产生的时钟信号通过XTAL2输入到单片机内部。

 

🚗CPU时序

CPU时序是CPU执行各控制指令的时间顺序。CPU时序通常有两种:

对片内功能的控制对片外扩展外设的控制

🚝基本概念

振荡周期:就是单片机通过振荡器后输出的脉冲信号的周期,单片机通常会选择一个振荡周期为操作的最小时间基准。

时钟周期S:时钟周期是两倍的振荡周期,一个时钟周期分为P1和P2两个节拍。P1周期完成算术逻辑运算,P2节拍完成内部寄存器的数据传送。

机器周期:指令一条指令每一步所需要的时间,单片机的机器周期通常是6个时钟周期组成,即:

1个机器周期=6个时钟周期=12个振荡周期

指令周期:指令周期是CPU完成一条指令需要的时间,通常情况下为1~4个机器周期

那么一个晶振频率为12MHz的单片机的振荡周期为1/12MHz=1/12us,那么它一个时钟周期为1/6us,一个机器周期为1us,一个指令周期为1~4us,即晶振频率为12MHz的单片机执行一条指令花费的时间为1-4us

🚝执行过程

单片机执行一个指令通常包括两个过程:取指令执行指令

我们知道,单片机的指令存储的位置是ROM程序存储器中,而我们的操作数一般都是放在RAM数据存储器中。

读指令操作依赖于ALE,而ALE地址锁存信号会在一个机器周期内有效两次,有效的宽度称为S的状态周期,只有在ALE有效时间内才进行读指令的操作。

单字节单机器周期指令

在执行单字节单机器周期指令时,当ALE有效时,系统会从ROM中取出指令放到指令寄存器IR中,然后执行指令,在执行过程中APU会在第二次ALE有效信号来的时候将PC+1锁存,让第二次读取1指令操作无效。

双字节单机器周期指令

在执行双字节单机器周期指令时,对应两次ALE信号都是有效的,不会出现锁存的现象。当第一次ALE有效信号来了,就读取指令,并且知道该指令为双字节机器周期指令,那么就会在第二次ALE有效信号来的时候进行读取,同时完成指令执行。

单字节双机器周期指令

对于单字节双机器周期指令,它会选择使用两个机器周期来读取,所以理论上可以产生4次ALE有效信号,但是很明显其中4次无效。当第一次ALE有效信号来时,系统会读取要操作的指令,并且将锁存住后面读操作,即让程序计数器PC不自增,这样就会使得后面三次读操作都无效,同时完成指令。

🚀复位

复位(reset)是单片机中一个很重要的功能,无论系统执行到哪一个状态,按下复位后都要回到初始的状态,类似于重启。而在51单片机中复位电路是外接的,在复位引脚加2个机器周期的的高电平可以让单片机复位。下图所示的就是复位电路,我们可以通过按下按钮来实现复位。

下面我们重点来看复位后各个模块的状态:

首先是CPU的寄存器,首先是PC寄存器里面存储的地址是0000H也就是ROM最开始的单元。而累加器ACC、PSW寄存器、寄存器B和DPTR寄存器都会清0。而SP堆栈指针会指向07H开始。

而IO口都会被置为高电平,而串行口的SBUF寄存器会被置为随机数,大部分的定时器和计数器的寄存器也会被清0。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/477285.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MyBatis凭什么征服SpringBoot ?

1、MyBatis的优势 众所周知,MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。通过xml映射到接口,使开发者使用接口的方式就能够轻松的映射、解析、执行xml中的SQL。MyBatis 消除了几乎所有的JDBC代码和参数的手工设…

No.052<软考>《(高项)备考大全》【冲刺6】《软考之 119个工具 (4)》

《软考之 119个工具 (4)》 61.人际交往:62.组织理论:63.预分派:64.谈判:65.招募:66.虚拟团队:67.多标准决策分析:68.人际关系技能:69.培训:70.团队建设活动:71.基本规则:72.集中办公:73.认可与奖励:74.人事评测工具:75.观察和交谈:76.项目绩效评估:77.冲…

Linux学习[8]查找文件指令:which whereis locate find

文章目录 前言1. which2. whereis3. locate4. find总结: 前言 之前在弄交叉编译的时候需要找到gcc,gdb什么的在哪里;涉及到了查找文件指令。 这里对linux中的查找指令进行总结 1. which which指令一般用来寻找可执行文件的路径,…

OpenCV实战(20)——图像投影关系

OpenCV实战(20)——图像投影关系 0. 前言1. 相机成像原理2. 图像对的基本矩阵3. 完整代码小结系列链接 0. 前言 数码相机通过将光线通过镜头投射到图像传感器上来捕捉场景产生图像。由于通过将 3D 场景投影到 2D 平面上形成图像,因此场景与其…

时序预测 | MATLAB实现BO-CNN-GRU贝叶斯优化卷积门控循环单元时间序列预测

时序预测 | MATLAB实现BO-CNN-GRU贝叶斯优化卷积门控循环单元时间序列预测 目录 时序预测 | MATLAB实现BO-CNN-GRU贝叶斯优化卷积门控循环单元时间序列预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 基于贝叶斯(bayes)优化卷积神经网络-门控循环单元(CNN-GR…

2023年人工智能GPT-4时代,最新13个ChatGPT商业市场AIGC应用正在掀起革命性变革!

目录 前言ChatGPT商业应用——LLM是星辰大海1. 研究背景1.1 研究背景1.2 研究方法 2. 商业应用和案例分析2.1 工具层ChatGPT搜索ChatGPT办公ChatGPT教育 2.2 行业层ChatGPT游戏ChatGPT音乐ChatGPT零售电商ChatGPT广告营销ChatGPT媒体新闻ChatGPT金融ChatGPT医疗ChatGPT设计Chat…

AI绘画能力的起源:通俗理解VAE、扩散模型DDPM、ViT/Swin transformer

前言 2018年我写过一篇博客,叫:《一文读懂目标检测:R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD》,该文相当于梳理了2019年之前CV领域的典型视觉模型,比如 2014 R-CNN2015 Fast R-CNN、Faster R-CNN2016 YOLO、SSD2…

Linux命令集(Linux网络连接管理命令--ifconfig指令篇)

Linux命令集(Linux网络连接管理命令--ifconfig指令篇) Linux网络连接管理命令集(ifconfig指令篇)1. ifconfig(interface configuration)1. 信息显示2. 接口配置 Linux网络连接管理命令集(ifconfig指令篇) 如…

C++Primer第五版【阅读笔记】

CPrimer第五版 阅读笔记 第1章开始1.1 编写一个简单的C程序1.1.1 编译、运行程序 1.2 初识输入输出1.3 注释简介1.4 控制流1.4.1 while语句1.4.2 for语句1.4.3 读取数量不定的输入数据1.4.4 if语句 1.5 类简介1.5.1 Sales_item 类1.5.2 初识成员函数 1.6 书店程序第一章小结 第…

【Linux入门】linux指令(1)

【Linux入门】linux指令(1) 目录 【Linux入门】linux指令(1)操作系统登录服务器Linux下的基本指令ls指令pwd指令Linux路径分割符 /cd指令touch指令mkdir指令(重要)rmdir指令&&rm指令(重…

4.30下周美联储携非农来袭黄金多空该如何布局?

近期有哪些消息面影响黄金走势?下周黄金多空该如何研判? ​黄金消息面解析:周五(4月28日)当周金价维持震荡交投,金价基本持稳于2000美元下方。支撑和打压金价的因素参半。经济衰退的担忧,以及避险情绪支持金价&#x…

Fabric.js 讲解官方demo:Stickman

theme: smartblue 本文简介 戴尬猴,我是德育处主任 Fabric.js 官网有很多有趣的Demo,不仅可以帮助我们了解其功能,还可以为我们提供创意灵感。其中,Stickman是一个非常有趣的例子。 先看看效果图 从上图可以看出,在拖拽…

【SpringBoot2】二:基础入门---自动配置原理(SpringBoot特点+容器功能)

文章目录 1.SpringBoot特点1.1 依赖管理1.2 自动配置 2.容器功能2.1 组件添加2.1.1Configuration2.1.2 Bean、Component、Controller、Service、Repository2.1.3 ComponentScan、Import2.1.4 Conditional 2.2 原生配置引入ImportResource2.3 配置绑定2.3.1 Component Configur…

如何保障网络安全

网络安全是一个涵盖范围广、深入浅出的话题。随着互联网在现代社会中扮演的重要角色日益突出,网络安全问题成为各个领域所关注的焦点。在此,我们将从以下几个方面来阐述网络安全的重要性,并讨论几种保障网络安全的方式。 一、网络安全的重要性…

K8s(1.20.15版本)部署(3master+2node)

1.准备工作 准备五台centos 7的虚拟机(每台虚拟机分配2核2G,存储使用20G硬盘,必须2核不然报错):如下图机器的分配情况: IP节点名称节点类型10.10.10.11k8s-master11master10.10.10.12k8s-master12master1…

解决centos8下域名raw.githubusercontent.com解析错误

在win10环境下执行命令 D:\test>ping raw.githubusercontent.com Ping 请求找不到主机 raw.githubusercontent.com。请检查该名称,然后重试。 解决很简单,把ipv6的DNS服务器设为240c::6666就行了,改完后执行命令 D:\test>ping raw.g…

C语言函数大全-- s 开头的函数(2)

C语言函数大全 本篇介绍C语言函数大全-- s 开头的函数(2) 1. setlinestyle 1.1 函数说明 函数声明函数功能void setlinestyle( int linestyle, unsigned upattern, int thickness );设置当前绘图窗口的线条样式、线型模式和线条宽度 参数&#xff1a…

SQL中去除重复数据的几种方法,我一次性都告你​

使用SQL对数据进行提取和分析时,我们经常会遇到数据重复的场景,需要我们对数据进行去重后分析。 以某电商公司的销售报表为例,常见的去重方法我们用到distinct 或者group by 语句, 今天介绍一种新的方法,利用窗口函数…

不得不说的行为型模式-命令模式

目录 命令模式: 代码实例: 下面是面试中可能遇到的问题: 命令模式: 命令模式(Command Pattern)是一种行为型设计模式,它允许将请求封装成对象,从而让你能够用不同的请求对客户端进行参数化,对…

Guitar Pro8苹果mac最新版本下载安装教程

Guitar Pro是一款专业的吉他制谱软件,现在已更新至Guitar Pro8,新增了支持添加音频轨道、支持嵌套连音符、直观的效果器视图、让指法一目了然的音阶示意图等实用新功能。下面我们来看Guitar Pro8 Mac如何安装。 guitar pro是一款专业的吉他学习软件&…