当前位置: 首页 > news >正文

AT89S52单片机的最小应用系统

目录

​一.时钟电路设计

1.内部时钟方式

2.外部时钟方式

3.时钟信号的输出

二.机器周期,指令周期与指令时序

1.时钟周期

2.机器周期

3.指令周期

三.复位操作和复位电路

1.复位操作

2 复位电路设计

四.低功耗节电模式


AT89S52本身片内有8KB闪烁存储器,256B的RAM单元,4个I/0口,外接时钟电路和复位电路即构成了一个AT89S52单片机最小应用系统,如图所示:

该最小应用系统只能作为小型的数字量的测控单元


一.时钟电路设计

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

1.内部时钟方式

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

C1和C2的典型值通常选择为30pF。电容大小会影响振荡器频率高低振荡器的稳定性和起振的快速性。晶振频率范围通常是1.2~12MHz串口通信时,为了得到准确的波特率,多采用11.0592M晶体。晶体频率越高,单片机速度就越快
常选6MHz或12MHz的石英晶体。随着集成电路制造工艺技术的发展单片机的时钟频率也在逐步提高,已达33MHz。

2.外部时钟方式

用现成的外部振荡器产生脉冲信号,常用于多片AT89S52同时工作,以便于多片AT89S52单片机之间的同步,一般为低于12MHz的方波。外部时钟源直接接到XTAL1端,XTAL2端悬空,见图:

3.时钟信号的输出

当使用片内振荡器,XTAL1、XTAL2引脚还能为应用系统中的其他芯片提供时钟,但需增加驱动能力。引出的方式有两种,如图所示。

二.机器周期,指令周期与指令时序

各种指令时序与时钟周期相关。

1.时钟周期

时钟控制信号的基本时间单位。若晶振频率为f_{osc},则时钟周期T_{osc}=1/f_{osc}f_{osc}=6MHZ,T_{osc}=166.7ns

2.机器周期

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

1个机器周期包括12个时钟周期,分6个状态: S1~S6。每个状态又分两拍: P1和P2。因此,一个机器周期中的12个时钟周期表示为S1P1、S1P2、S2P1、S2P2、··、S6P2,如图所示。

3.指令周期

执行一条指令所需的时间。简单的单字节指令,取出指令立即执行,只需一个机器周期的时间。而有些复杂的指令,如转移、乘、除指令则需两个或多个机器周期
从指令执行时间看:
单字节和双字节指令一般为单机器周期和双机器周期;

三字节指令都是双机器周期;

乘、除指令占用4个机器周期;

三.复位操作和复位电路

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

1.复位操作

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

复位操作还对其他一些寄存器有影响,这些寄存器复位时的状态如图:


由表可看出,复位时,SP=07H ,而P0~P3引脚均为高电平
在某些控制应用中,要注意考虑PO~P3引脚的高电平对接在这些引脚上的外部电路的影响
例如,当P1口某个引脚外接一个继电器绕组,当复位时,该引脚为高电平继电器绕组就会有电流通过,就会吸合继电器开关,使开关接通,可能会引起意想不到的后果。

2 复位电路设计

AT89S52单片机的复位是由外部的复位电路实现的。复位电路应兼有上电复位(一开机就复位  )和人工按键复位两种功能。典型的复位电路如图:

注:信号一定要>2个机器周期,要想做到这一点,就要使复位的时间长一点,上电复位(电容的充放电速率缓慢),人工按键复位(按下按键的时候停留一会儿,保证>2个机器周期)



当时钟频率选用6MHz时,电容C的参考取值为22uF,两个电阻Rs和Rk的参考阻值分别为220\Omega和1k\Omega

四.低功耗节电模式

两种低功耗节电工作模式:空闲模式(idle mode)和掉电保持模式(power down mode)

空闲模式:表示使CPU停止工作,单片机的中断,串行口定时/计时器继续工作。

掉电模式:使外部时钟停止工作,没有外部时钟信号,内部的部件都不会进行工作。


掉电保持模式下,Vcc可由后备电源供电。图中为两种节电模式的内部控制电路。


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

PCON寄存器各位定义:

SMOD:串行通信波特率选择。

一:保留位。

GF1、GF0:通用标志位,两个标志位用户使用。

PD:掉电保持模式控制位,PD=1,则进入掉电保持模式

IDL:空闲模式控制位,若IDL=1,则进入空闲运行模式

恢复方式:

空闲模式恢复:1.中断信号使IDL=0     2.硬件复位使IDL=0

掉电模式恢复:1.外部中断信号使PD=0    2.硬件复位使PD=0

注:如果是硬件复位,那么之前运行的程序,需要重新开始,如果是中断信号,那么只需要从中断程序继续开始

相关文章:

AT89S52单片机的最小应用系统

目录 ​一.时钟电路设计 1.内部时钟方式 2.外部时钟方式 3.时钟信号的输出 二.机器周期,指令周期与指令时序 1.时钟周期 2.机器周期 3.指令周期 三.复位操作和复位电路 1.复位操作 2 复位电路设计 四.低功耗节电模式 AT89S52本身片内有8KB闪烁存储器&am…...

Pytorch中的tensor维度理解

Pytorch中的tensor维度理解 文章目录 Pytorch中的tensor维度理解摘要打消心理恐惧,从三维学起三维tensor参考文献 摘要 面对pytorch编程中的tensor时,我不时会感到恐惧。对里面数据是怎么排布的,一直没有一个直观的理解。今天我想把这个事情…...

2019年12月 Scratch(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 怎样修改图章的颜色? A:只需要一个数字来设置颜色 B:设置RGB的值 C:在画笔中设置颜色、饱和度、亮度 D:在外观中设置或修改角色颜色特效 答案:D 在外观中设置或修改角色颜色特…...

matlab-实现-BP-神经网络

最近写论文用到了很多神经网络和优化算法,算是废了不少精力收集起来的,还是整理出来分享给大家,以免浪费了。 本篇以最简单的 BP神经网络开始吧 详细的实现步骤如下: 1.环境准备:清空环境变量、关闭开启的图窗、清空变…...

基于go-zero的rpc服务示例

以下是一个基于 go-zero 框架的简单 RPC 服务示例,该示例包括一个服务端和一个客户端通过 gRPC 进行通信。 服务端 1、定义 .proto 文件 在 rpc/add 目录下创建 adder.proto 文件,定义 RPC 服务: syntax "proto3";package add…...

【算法】奇偶游戏(带权并查集)

题目 小 A 和小 B 在玩一个游戏。 首先,小 A 写了一个由 0 和 1 组成的序列 S,长度为 N。 然后,小 B 向小 A 提出了 M 个问题。 在每个问题中,小 B 指定两个数 l 和 r,小 A 回答 S[l∼r] 中有奇数个 1 还是偶数个 …...

补充:linux rsyslog配置多端口监听(基于UDP)

rsyslog默认udp监听端口为514,我们可以配置rsyslog基于udp的多端口监听,实现监控的丰富性 1.环境信息 环境信息 HostnameIpAddressOS versionModuleNotersyslog1192.168.10.246Red Hat Enterprise Linux Server release 7.7 (Maipo)rsyslogd 8.24.0-38.el7linux基础配置 Li…...

详解StringBuilder和StringBuffer(区别,使用方法,含源码讲解)

目录 一.为什么要使用StringBuilder和StringBuffer 字符串的不可变性 性能损耗 二.StringBuilder和StringBuffer StringBuffer源码讲解 使用方式 三.常用方法总结 示例: 四.StringBuilder和StringBuffer的区别 一.为什么要使用StringBuilder和StringBuffe…...

九、sdl显示bmp图片

前言 SDL中内置加载BMP的API,使用起来会更加简单,便于初学者学习使用SDL 如果需要加载JPG、PNG等其他格式的图片,可以使用第三方库:SDL_image 测试环境: ffmpeg的4.3.2自行编译版本windows环境qt5.12sdl2.0.22&…...

ROS设置DHCP option121

配置时,了解格式很关键,16进制填写格式如下: 将要访问的IPV4地址:192.168.100.0/24 192.168.30.254 转换为:掩码 目标网段 网关 0x18c0a864c0a81efe,0不用填写 ROS配置如下图: 抓…...

④【Set】Redis常用数据类型: Set [使用手册]

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ Redis Set ④Redis Set 操作命令汇总1. sadd …...

助力企业前行——ScalaSpark最佳实践课程

时间飞逝,转眼间我们的Scala&Spark培训课程已经圆满结束!在这段精彩的学习旅程中,你们展现了坚韧、决心和追求卓越的品质。 scala(Scalable Language)是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的…...

pikachu靶场Table pikachu.member doesn’t exist:解决

背景: 第一次搭建pikachu靶场,搭建好后访问index.php后,尝试练习,发现界面显示Table pikachu.member doesn t exist,后来找了很多教程,没有解决,后来发现是自己没有进行初始化,给大家…...

Github Copilot AI编码完成工具

目录 一、GitHub Copilot 1、简介 2、工作原理 3、功能 二、GitHub Copilot X 1、什么是 GitHub Copilot X 2、GitHub Copilot X 的功能 三、支持、使用 1、支持 2、使用 四、实际研究、验证(代码方向) 1、代码生成 2、代码提示 3、生成测试用例 4、代码解释 5…...

android 9 adb安装过程学习(二)

一、PackageInstalllerService流程分析 下面来分析下 PackageInstallerService 中的逻辑,我们先来看看 PackageInstallerService 的创建,当然,这部分的逻辑是在开机的时候,这里我们再回顾下: 位置:./frame…...

Java面试-框架篇-Mybatis

Java面试-框架篇-Mybatis MyBatis执行流程延迟加载使用及原理一, 二级缓存来源 MyBatis执行流程 读取MyBatis配置文件: mybatis-config.xml加载运行环境和映射文件构造会话工厂SqlSessionFactory会话工厂创建SqlSession对象(包含了执行SQL语句的所有方法)操作数据库的接口, Ex…...

java基础-集合

1、集合 在java中,集合(Collection)指的是一组数据容器,它可以存储多个对象,并且允许用户通过一些方法来访问与操作这些对象。j 集合的实现原理都基于数据结构和算法,如下: 数据结构&#xff1…...

【C++11】auto与decltype关键字使用详解

系列文章目录 C11新特性使用详解-持续更新 文章目录 系列文章目录前言一、auto关键字1.根据变量的初始化表达式来推导变量的类型2.const与引用 二、decltype关键字1.推断表达式的类型2.const与引用 三、总结 前言 auto和decltype是C11引入的俩个重要的新关键字,用…...

Servlet实现一个简单的表白墙网站

文章目录 前言效果展示事前准备HTML、CSS、JavaScript分别负责哪些HTML和CSS构架出页面的基本结构和样式JavaScript 实现行为和交互实现服务器端的业务代码整理pom.xmlweb.xmlmessageWall.htmlMessageServlet.java 前言 前面我们学习了 Java 中知名的 HTTP 服务器 tomcat 的安…...

mysql 集群恢复

准备使用集群的时候发现集群起不来, 发现抱错集群各个节点都是readonly 状态,找了很多资料,由于集群处于不一致的情况需要防止不同的节点数据写入脏数据 取消节点readonly 方法如下: MySQL 取消 super read only 直接关闭read…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求&#xff…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...