当前位置: 首页 > 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…...

别再用SE16N改数据了!用LSMW批量更新SAP数据的3个高效场景与配置详解

别再用SE16N改数据了!用LSMW批量更新SAP数据的3个高效场景与配置详解 每次看到同事在SAP里用SE16N一条条修改数据时,我都忍不住想递上这份LSMW配置指南。上周财务部的王姐为了更新5000条客户主数据,硬是加班到凌晨两点——而同样工作量&…...

微信电脑版冗余文件清理工具(附下载链接)

WeChatCacheCleaner.exe微信电脑版用久以后,文件目录会越来越大,里面堆满了文档、图片、压缩包、表格和各种临时文件。手动清理很麻烦,用普通清理软件又容易担心误删,所以我做了一个面向 Windows 微信文件目录的清理小工具&#x…...

新手开发者首次接入大模型API可能遇到的常见问题与排查思路

新手开发者首次接入大模型API可能遇到的常见问题与排查思路 1. 获取与配置API Key 在Taotoken平台创建API Key是接入的第一步。常见问题包括密钥未正确保存或配置错误。登录Taotoken控制台后,在「API密钥」页面点击「新建密钥」,系统会生成一串以sk-开…...

Room 3.0:移动端持久化的“重生”变革

Room 3.0:移动端持久化的“重生”变革 Room 3.0 是什么?先补点课 在移动端开发的浩瀚宇宙里,Room 可是一颗相当耀眼的明星。它是 Google 为咱 Android 开发者量身打造的持久化库,基于强大的 SQLite,采用 DAO&#xff0…...

从产品草图到交互原型:我是如何用Balsamiq Wireframes快速搞定客户需求会议的

从产品草图到交互原型:我是如何用Balsamiq Wireframes快速搞定客户需求会议的 去年夏天的一个周四下午,我正在星巴克修改产品方案时,突然接到客户总监Linda的电话:"Alex,明天上午10点能来参加紧急需求会议吗&…...

告别幽灵刹车!用4D毫米波雷达解决城市道路误触发难题(附大陆/采埃孚实测数据)

4D毫米波雷达:破解城市自动驾驶误刹车的终极武器 清晨七点的城市高架桥上,一辆搭载传统3D毫米波雷达的自动驾驶测试车突然急刹——系统将前方30米处的限高架误判为障碍物。这种被称为"幽灵刹车"的现象,正是困扰自动驾驶行业多年的技…...

Momenta 校招 C++ 考试题到底怎么考?它筛的不是刷题机器,是能把算法和系统一起落地的人

共享内存、vector reserve、emplace_back、移动语义,这些东西如果连续出现在同一场面试里,你就不该再把 Momenta 理解成“小而硬核的互联网公司”。 Momenta 的 C++ 方向,最典型的地方,不是某几道算法题特别怪。 而是它会很自然地把三件事绑在一起考: 算法和数据结构 系…...

JasperGold Deep Bug Hunting保姆级配置指南:九大策略(Cycle/Bound/State Swarm等)怎么选?

JasperGold深度Bug狩猎实战指南:九大策略的精准选择与配置 在芯片验证的深水区,当传统形式验证工具已经跑不出新的反例(CEX)时,资深验证工程师的武器库中需要一把更锋利的手术刀——JasperGold的Deep Bug Hunting&…...

ALLPCB 1美元6层PCB打样服务全解析

1. ALLPCB 1美元PCB打样服务深度体验报告作为一名硬件工程师,我深知PCB打样在项目开发中的重要性。最近发现ALLPCB推出的1美元6层板打样活动,第一时间下单体验并记录全过程,希望能为同行提供参考。ALLPCB成立于2015年,总部位于杭州…...

工业R语言预测模型过不了产线验收?这7项ISO 13374-3合规性验证要点必须闭环

更多请点击: https://intelliparadigm.com 第一章:工业R语言设备剩余寿命预测的ISO 13374-3合规性挑战本质 ISO/IEC 13374-3:2016 定义了状态监测与诊断系统中“数据处理与分析”模块的架构要求,强调算法可追溯性、输入输出语义一致性及不确…...