51单片机的时钟电路与时序以及 复位电路和电源模式

51单片机的时钟电路与时序以及 复位电路和电源模式

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

文章目录

  • 51单片机的时钟电路与时序以及 复位电路和电源模式
    • 一、时钟电路与时序
      • 1、 时钟电路设计
        • 1.1 内部时钟方式
        • 1.2 外部时钟方式
        • 1.3 时钟信号的输出
      • 2、机器周期、指令周期与指令时序
    • 二、 复位电路和电源模式
      • 1、 复位操作和复位电路
        • 1.1 复位操作
        • 1.2 复位电路设计
      • 2、低功耗节电模式
        • 2.1 空闲模式
        • 2.2 掉电运行模式
        • 2.3 掉电和空闲模式下的WDT

一、时钟电路与时序

时钟电路产生AT89S51工作时所必需的控制信号,在时钟信号的控制下,严格按时序执行指令。
执行指令时,CPU首先到程序存储器中取出需要执行的指令操作码,然后译码,并由时序电路产生一系列控制信号完成指令所规定的操作。
CPU发的时序信号两类,一类用对片内各个功能部件控制,用户无须了解;另一类用于对片外存储器或I/O端口的控制,这部分时序对于分析、设计硬件接口电路至关重要。

1、 时钟电路设计

时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。

1.1 内部时钟方式

AT89S51内部有一个用于构成振荡器的高增益反相放大器,输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器,图2-8是AT89S51内部时钟方式的电路。

在这里插入图片描述

电路中的电容 C1和 C2 的典型值通常选择为 30pF。晶体振荡频率的范围通常是在1.2~12MHz
AT89S51单片机常选择振荡频率6MHz或12MHz的石英晶体。

1.2 外部时钟方式

用现成的外部振荡器产生脉冲信号,常用于多片AT89S51同时工作,以便于多片AT89S51单片机之间的同步。
外部时钟源直接接到XTAL1端,XTAL2端悬空,见图2-9。
在这里插入图片描述

1.3 时钟信号的输出

当使用片内振荡器,XTAL1、XTAL2引脚还能为应用系统中的其他芯片提供时钟,但需增加驱动能力。其引出的方式有两种,如图2-10。
在这里插入图片描述

2、机器周期、指令周期与指令时序

各种指令时序与时钟周期相关。
1.时钟周期
时钟控制信号的基本时间单位。若晶振频率为fosc,则时钟周期Tosc=1/fosc
如fosc=6MHz,Tosc=166.7ns。

2.机器周期
CPU完成一个基本操作所需时间为机器周期。执行一条指令分为几个机器周期。每个机器周期完成一个基本操作,如取指令、读或写数据等。每12个时钟周期为1个机器周期

1个机器周期包括12个时钟周期,分6个状态:S1~S6。每个状态又分两拍P1和P2
因此,一个机器周期中的12个时钟周期表示为S1P1、S1P2、S2P1、S2P2、…、S6P2,如图2-11。
在这里插入图片描述

3.指令周期
执行一条指令所需的时间简单的单字节指令,取出指令立即执行,只需一个机器周期的时间。而有些复杂的指令,如转移指令则需两个或多个机器周期。

从指令执行时间看:

  • 单字节和双字节指令一般为单机器周期双机器周期;
  • 三字节指令都是双机器周期;
  • 乘、除指令占用4个机器周期

二、 复位电路和电源模式

1、 复位操作和复位电路

单片机的初始化操作,给复位脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就使AT89S51复位。

1.1 复位操作

复位时,PC初始化为0000H,程序从0000H单元开始执行。
除系统的正常初始化外,当程序出错(如程序跑飞)或操作错误使系统处于死锁状态时,需按复位键使RST脚高电平,使AT89S51摆脱“跑飞”或“死锁”状态而重新启动程序。

复位操作还对其他一些寄存器有影响,这些寄存器复位时的状态如表2-8。
在这里插入图片描述

1.2 复位电路设计

由复位电路实现。AT89S51片内复位电路结构见图2-12。
在这里插入图片描述

复位引脚RST通过一个施密特触发器与复位电路相连,施密特触发器用来抑制噪声,在每个机器周期的S5P2,施密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。

复位电路采用上电自动复位和按钮复位两种方式。最简单的上电自动复位电路如图2-13所示。
在这里插入图片描述

上电自动复位是给电容C充电加给RST引脚一个短的高电平信号,此信号随着VCC对电容C的充电过程而逐渐回落,即RST引脚上的高电平持续时间取决于电容C充电时间。为保证系统可靠复位,RST引脚上的高电平必须维持足够长的时间。
除了上电复位外,有时还需要按键手动复位。按键手动复位有电平脉冲两种方式。

2、低功耗节电模式

两种低功耗节电工作模式:空闲模式(idle mode)和掉电保持模式(power down mode)。
掉电保持模式下,Vcc可由后备电源供电。图2-17为两种节电模式的内部控制电路。
在这里插入图片描述

两种节电模式可通过PCON的位IDL和位PD的设置来实现。

格式如图2-18。
在这里插入图片描述

PCON寄存器各位定义:
SMOD:串行通信波特率选择。
━ :保留位。
GF1、GF0:通用标志位,两个标志位用户使用。
PD: 掉电保持模式控制位,PD=1,则进入掉电保持模式。
IDL:空闲模式控制位,若IDL=1,则进入空闲运行模式。

2.1 空闲模式
  1. 空闲模式进入
    如把PCON中的IDL位置“1”,通往CPU的时钟信号关断,便进入空闲模式。虽然振荡器运行,但是CPU进入空闲状态。所有外围电路(中断系统、串行口和定时器)仍继续工作,SP、PC、PSW、A、P0–P3端口等所有其他寄存器、内部RAM和SFR中内容均保持进入空闲模式前状态

  2. 空闲模式退出
    两种方法退出,响应中断方式,硬件复位方式。

空闲模式下,若任一个允许的中断请求被响应时,IDL位被片内硬件自动清“0”,从而退出空闲模式。当执行完中断服务程序返回时,将从设置空闲模式指令的下一条指令(断点处)继续执行程序。

当使用硬件复位退出空闲模式时,在复位逻辑电路发挥控制作用前,有长达两个机器周期时间,单片机要从断点处(IDL位置“1”指令的下一条指令处)继续执行程序。在这期间,片内硬件阻止CPU对片内RAM的访问,但不阻止对外部端口(或外部RAM)的访问。为了避免在硬件复位退出空闲模式时出现对端口(或外部RAM)的不希望的写入,在进入空闲模式时,紧随IDL位置1指令后的不应是写端口(或外部RAM)的指令。

2.2 掉电运行模式
  1. 掉电模式的进入
    用指令把PCON寄存器的PD位置1,便进入掉电模式。在掉电模式下,进入时钟振荡器的信号被封锁振荡器停止工作
    由于没有时钟信号,内部的所有功能部件均停止工作,但片内RAM和SFR的原来的内容都被保留,有关端口的输出状态值保存在对应的特殊功能寄存器中。

  2. 掉电模式的退出
    两种方法:硬件复位外部中断
    硬件复位时要重新初始化SFR,但不改变片内RAM的内容。只有当Vcc恢复到正常工作水平时,只要硬件复位信号维持10ms,便可使单片机退出掉电运行模式。

2.3 掉电和空闲模式下的WDT

掉电模式下振荡器停止,意味着WDT也就停止计数。用户在掉电模式下不需操作WDT。

当用硬件复位退出掉电模式时,对WDT的操作与正常情况一样。

在系统进入掉电模式前先对寄存器WDTRST复位。在中断服务程序中复位寄存器WDTRST。

在进入空闲模式前,应先设置AUXR中的WDIDLE位,以确认WDT是否继续计数。
当WDIDLE=0,空闲模式下的WDT保持继续计数。为防止复位单片机,用户可设计一定时器。该定时器使器件定时退出空闲模式,然后复位WDTRST,再重新进入空闲模式。
当WDIDLE=1,WDT在空闲模式下暂停计数,退出空闲模式后,方可恢复计数。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023-12-07 LeetCode每日一题(重新规划路线)

2023-12-07每日一题 一、题目编号 1466. 重新规划路线二、题目链接 点击跳转到题目位置 三、题目描述 n 座城市,从 0 到 n-1 编号,其间共有 n-1 条路线。因此,要想在两座不同城市之间旅行只有唯一一条路线可供选择(路线网形成…

华为12月开奖,你毁约吗?打工人必看!

哈喽,华孝子们! 👋 今天要跟大家聊一聊华为12月份开奖的话题。 2023年华为开奖🎁: 对比了一下去年的华为开出的薪资,似乎今年与去年是持平的,去年的华为薪资就是很低的。千寻虽然是北大的&…

K8S 删除命令空间时 一直卡住怎么办?

当使用完一个命名空间后,想删除了又删除不掉,这个时候查看命名空间的状态一直是Terminating。使用强制删除,也是还是不行。(找了好多办法都不行) [rootk8s-master kubernetes-yaml]# kubectl delete ns mem-example Er…

Kafka性能调优:高吞吐、低延迟的数据流

Apache Kafka作为一种高性能、分布式流处理平台,对于实时数据的处理至关重要。本文将深入讨论Kafka性能调优的关键策略和技术,通过丰富的示例代码为大家提供实际操作指南,以构建高吞吐、低延迟的数据流系统。 Broker 配置的优化 首先&#…

Win10 安装.NET Framework 3.5 报错0x80240438

环境: Win10专业版 NET Framework 3.5 问题描述: Win10 安装.NET Framework 3.5 报错0x80240438 解决方案: 1.检查自动更新服务是否未开启,开启自动更新失败,用工具开启自动更新,重启电脑(未解决&am…

HarmonyOS系统架构及项目结构浅析

语雀知识库地址:语雀HarmonyOS知识库 飞书知识库地址:飞书HarmonyOS知识库 基本概念 UI框架 HarmonyOS提供了一套UI开发框架,即方舟开发框架(ArkUI框架)。方舟开发框架可为开发者提供应用UI开发所必需的能力&#xf…

时间序列预测实战(二十六)PyTorch实现Seq2Seq(LSTM)(结果可视化+自动保存结果)

一、本文介绍 本文给大家带来的时间序列模型是Seq2Seq,这个概念相信大家都不陌生了,网上的讲解已经满天飞了,但是本文给大家带来的是我在Seq2Seq思想上开发的一个模型和新的架构,其是专门为新手开发的,而且为了方便大…

【Linux】无法使用 screenfetch 查看系统信息,报错 command not found: screenfetch

问题描述 screenfetch是一个命令行工具,用于在终端显示系统的硬件和软件信息。它会收集各种系统和环境的信息,并以彩色 ASCII 艺术的形式在终端中展示出来。 当你在终端中运行screenfetch命令时,它会检测你的操作系统、主机名、内核版本、C…

小航助学2023年9月GESP_Scratch二级真题(含题库答题软件账号)

需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统(含题库答题软件账号) 单选题3.00分 删除编辑附件图文 答案:D 第1题我国第一台大型通用电子计算机使用的逻辑部件是( ) A、集成电路B、大规模集成电路C、晶体…

Pixyz Studio 和 Pixyz Scenario Processor 使用入门

介绍 Pixyz产品官网 下载、安装与技术文档 官网介绍:Pixyz 支持超过 45 种工业文件格式,包括 CATIA、JT、STEP、IFC、PVZ、NWD、USD 及 glTF。包括 CAD、曲面细分/网格模型、点云等。Unity 中的资产将实时关联到原始数据,可自动更新文件的修…

【每日一题】—— D. Divide and Equalize(Codeforces Round 903 (Div. 3))(数学、数论)

🌏博客主页:PH_modest的博客主页 🚩当前专栏:每日一题 💌其他专栏: 🔴 每日反刍 🟡 C跬步积累 🟢 C语言跬步积累 🌈座右铭:广积粮,缓称…

堆栈与堆(Stack vs Heap):有什么区别?

程序内存大致分四块如下&#xff1a; 下面以两个例子来解释堆栈和堆如何在程序中体现&#xff1a; #include <iostream>int add(int a, int b){int sum a b;return aum; }int main(){int x 5;int result add(x, 10);std::cout << "Result: " <&l…