热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

单片机中的锁存器工作原理解析及其应用

本文详细解析了单片机中锁存器的工作原理,并探讨了其在实际应用中的重要作用。通过分析锁存器的结构和功能,文章揭示了其在数据存储和信号传输中的关键作用,为相关领域的工程师提供了宝贵的参考。

5ba8b9ad97b346e9d99aaf77bfe9a004.gif

电工之家:www.dgzj.com   QQ群:2179090

关注电工之家官方微信公众号“电工之家”,收获更多经验知识

这个问题非常有代表性,我相信很多初学者都会有这个疑问:为什么只是简单地将对应寄存器的相应位设置一下,就可以让单片机做不同的动作(例如,端口输出高低电平、定时器定时溢出等等)。今天我们就来简单了解一下这方面的知识。

一、单片机的基础电路

单片机内部主要由数字电路组成。所以如果我们想要了解单片机的内部结构及工作原理,还是需要学一些数字电路方面的知识的。这里简单介绍一下单片机中常用的基础电路。

1、与门电路原理介绍

与门电路如下图所示。

adf605e417a6376210f3d10dd0de74ff.png

它是一个由二极管和电阻构成的电路, 其中A、 B为输入端, Y为输出端, +5V电压经R1、 R2分压, 在E点得到3V的电压。

工作原理:

当A、 B两端同时输入低电平(0V) 时, 由于E点电压为3V, 所以二极管VD1、 VD2都导通, E点电压马上下降到0.7V (低电平) , 即当A、 B端均输入低电平“0”时, Y端输出低电平“0”。

当 A 端输入低电平(0V) 、 B 端输入高电平(5V) 时, 由于E点电压为3V, 所以二极管VD1马上导通, E点电压下降到0.7V。此时VD2正端电压为0.7V, 负端电压为5V,VD2处于截止状态, 即当A端输入低电平“0”、 B 端输入高电平“1”时, Y端输出低电平“0”。

当A端输入高电平(5V) 、 B端输入低电平(0V) 时, VD1截止, VD2导通, E点电

压为0.7V (低电平) , 即当A端输入高电平“1”、 B端输入低电平“0”时, Y端输出低电平“0”。

当A、 B端同时输入高电平(5V) 时, VD1、 VD2均不能导通, E点电压为3V(高电平) , 即当A、 B两端都输入高电平“1”时, Y端输出“1”。

由此可见, 与门的特点是:只有输入端都输入高电平时, 输出端才会输出高电平;只要有一个输入端输入低电平, 输出端就会输出低电平。

二、单片机内部的触发器、寄存器、锁存器

单片机内部有大量寄存器, 寄存器是一种能够存储数据的电路, 由触发器构成。

1、 触发器

触发器是一种具有记忆存储功能的电路, 由门电路组成。常见的触发器包括:RS 触发器、 D 触发器和 JK触发器等, 其中D触发器最为常用。如下图所示。

85cf2d8bad13dee71d4ac31f1cde444d.png

从图中可以看出, D触发器的端子包括:输入端D、 输出端Q、 反相输出端 、 时钟脉冲输入端CLK、 置“0”端R和置“1”端S。

数据存储过程:当D触发器的D端输入数据“1”时, 数据并不能马上被存入触发器, 只有CLK端时钟脉冲信号上升沿(即低电平转为高电平时) 到来时, “1”才能被存入触发器, 存入后Q端输出“1”, 端输出“0”。也就是说, 只有时钟脉冲上升沿到来时, D触发器才能将输入端的数据存储起来, 并从Q端输出。

D触发器的置“0”和置“1”:当置“0”端R为低电平时, 触发器被置“0”, 即Q端为“0”;当置“1”端S为低电平时, 触发器被置“1”, 即Q端为“1”。

2、 寄存器

寄存器是单片机内部的基本存储单元, 由触发器构成, 一个触发器就是1位寄存器。下图所示是一种由D触发器构成的4位寄存器。

baa2b5fc3bb133fa99f687625330d403.png

在工作时, 寄存器先让清0线为低电平, 该低电平送到各触发器的CLR端(实际为D触发器的R端) , 将各触发器清0, Y3Y2Y1Y0=0000;然后将数据送到各触发器输入端,当CLK端的时钟脉冲上升沿到来时, 输入端的数据就被存入到各触发器中, 并从输出端输出。

3、锁存器

锁存器也是一种能存储数据的电路。其特点是当锁存信号没有到来时, 输出端的状态随输入端状态的变化而变化;当锁存信号来到时, 输入端的数据被锁存到输出端, 即当输入端的信号再变化时输出端也不会发生变化。

以下图为例来说明锁存器的工作原理。

3ad0d7115343456205d81b3bcb786c14.png

当锁存器的控制端EN=1时, 锁存器输出端Y与输入端A的状态保持一致, 即A端数据变化时, Y端数据也变化;当锁存器的控制端EN由“1”变为“0”时, 输入端此刻的数据马上被锁存到输出端, 在EN=0期间, 输出端的数据始终保持不变, 不会随输入端而变化;当EN又变为“1”时, 即取消锁存, 输出端又会随输入端的变化而变化。

三、单片机端口的工作原理

有了上面的知识铺垫,现在我们就以51单片机的P3端口为例来介绍一下端口的工作原理。

P3端口有P3.0~P3.7共8个引脚, P3端口可作为I/O接口, 还可以用于其他方面。P3端口每个引脚的内部电路结构都相同, 其内部电路结构如下图所示

f6c82e1d012e83b1641e9230431834b2.png

1、 当P3端口用作I/O接口时

如果要将P3端口用作I/O接口, 应让与非门的选择输出功能端为“1”, 以开通与非门。当将P3端口用作输出端口时, 给锁存器的CL端送写脉冲信号, 内部总线送来的数据就可以通过D端进入锁存器并从Q端输出, 再通过与非门和场效应管从P3端口引脚输出。

当将 P3 端口用作输入端口时, 应先通过内部总线向锁存器写“1”, 让 Q=1, 场效应管截止, P3端口输入的信号就可以通过缓冲器、 输入三态门送到内部总线。

2、 当P3端口用作第二功能时

P3端口用作第二功能(又称复用功能) 时, 实际上也是在该端口输入或输出信号,只不过输入、 输出的是一些特殊功能的信号。所以当P3端口用作第二功能时, 其内部电路的工作原理与用作I/O接口时是一样的, 在用作输入功能时, 端口的锁存器同样要先置“1”。

P3端口8个引脚的第二功能详见下表。例如P3.2引脚用作第二功能时, 该端口可输入由外部设备送到的中断请求信号, 该信号通过缓冲器、 输入三态门送到内部总线。

P3端口除了可以接收外界的输入信号外, 还可以接收内部的替代输入功能端送来的信号, 该信号通过输入三态门送到内部总线。

cd7ccfdfcbb9c206a810d6dba0f7fe88.png

未完,请点击左下角“阅读原文”继续阅读




推荐阅读
  • HTML 页面中调用 JavaScript 函数生成随机数值并自动展示
    在HTML页面中,通过调用JavaScript函数生成随机数值,并将其自动展示在页面上。具体实现包括构建HTML页面结构,定义JavaScript函数以生成随机数,以及在页面加载时自动调用该函数并将结果呈现给用户。 ... [详细]
  • SAP 实用技巧:如何高效终止运行中的进程
    在ERP系统中,通过事务代码SM66和SM51可以查看服务器上的进程执行情况。在某些特殊情况下,可能需要终止占用资源的进程。本文详细介绍了几种高效终止进程的方法,并提供了操作步骤和注意事项,帮助用户在遇到问题时快速解决。 ... [详细]
  • 为何好友的微信朋友圈无法进行评论和点赞?解析朋友圈互动权限设置 ... [详细]
  • 本文探讨了如何有效地构建和优化微信公众平台账号,涵盖了用户信息管理、内容创作与发布、互动策略及数据分析等方面。通过合理设置用户信息字段,如用户名、昵称、密码、真实姓名和性别等,确保账号的安全性和用户体验。同时,文章还介绍了如何利用微信公众平台的各项功能,提升用户参与度和品牌影响力。 ... [详细]
  • 掌握这些技巧,轻松获取超过90%的资源信息
    在数字时代,高效获取所需资源是每个人必备的技能。本文将分享一系列实用技巧,帮助读者轻松获取超过90%的网络资源信息,无论是学术资料、技术文档还是最新资讯,都能迅速找到。通过优化搜索引擎使用、利用专业数据库和社群资源等方法,读者将能够在信息海洋中游刃有余。 ... [详细]
  • 微信平台通过盛派SDK(sdk.weixin.senparc.com)允许服务号和订阅号使用appId和token读取关注用户的个人信息。然而,这一过程需严格遵守隐私保护和数据安全的相关规定,确保用户数据的安全性和隐私性。 ... [详细]
  • 如何在安卓设备上恢复已删除的微信聊天记录?详细教程与技巧分享
    在安卓设备上恢复已删除的微信聊天记录是一项常见需求,但许多用户对此并不熟悉。本文将详细介绍具体的恢复步骤和技巧,帮助用户轻松找回丢失的聊天记录。通过专业的数据恢复工具和方法,您可以高效地完成这一过程,确保重要信息不丢失。 ... [详细]
  • 微信头像设置失败,仅显示已保存图片,无法正常更换怎么办?
    微信头像设置失败,仅显示已保存图片,无法正常更换怎么办? ... [详细]
  • 2020年高薪专业排行榜揭晓:计算机科学之外还有哪些值得关注的选择?
    近日,《2020年中国大学生就业报告》正式发布,揭示了除计算机科学外,多个高薪专业值得关注。报告指出,金融工程、电子信息工程、软件工程等领域的毕业生薪资水平同样表现优异,这些专业的就业前景和发展潜力不容忽视。此外,随着新兴行业的崛起,如大数据分析、人工智能和生物技术,相关专业的人才需求也在持续增长,为学生提供了更多优质的职业选择。 ... [详细]
  • 本文详细解析了微信服务端示例类的功能与应用。其中,`ClientResponseHandler` 类主要用于处理微信支付所需的响应数据,而 `TenpayHttpClient` 则是对 HTTP 请求(包括 GET 和 POST 方法)进行了封装,以便在内部调用时更加便捷和高效。这些工具类在实际开发中起到了关键作用,开发者无需深入了解其底层实现细节,即可轻松集成微信支付功能。 ... [详细]
  • 经过短暂的休整,我们再次推出新的小程序功能,进一步提升用户体验。现在,小程序页面不仅支持放置转发按钮,还新增了长按快速转发的功能,让用户能够更加便捷地分享页面内容。这一更新将为开发者提供更多创意空间,同时也大幅提升了用户的互动性和使用便利性。 ... [详细]
  • 如何高效导出微信支付交易记录
    要高效导出微信支付交易记录,首先需打开微信应用,进入个人主页后选择“支付”功能。随后,点击“钱包”图标,在钱包页面中找到并点击“账单”选项,即可轻松导出详细的支付记录。此外,用户还可以通过设置筛选条件,如时间范围和交易类型,进一步优化导出的数据,确保信息的准确性和完整性。 ... [详细]
  • 优化后的标题:利用 jQuery 实现高效树形结构元素选择与操作
    在Web前端开发中,DOM结构本质上是一种树形结构。通过优化后的jQuery选择器,可以高效地选择和操作DOM树中的节点。这些选择器不仅简化了代码编写,还提高了性能和可维护性。本文将详细介绍如何利用jQuery的树形选择器实现高效的元素选择与操作。 ... [详细]
  • 开源实习机会 | Compiler SIG 正式发布实习任务,诚邀您加入申请!
    对编译技术充满兴趣却苦于无从入手?当前疫情形势下,外出实习变得困难重重?现在,Compiler SIG 正式发布了一系列实习任务,为有志之士提供了宝贵的机会。无论你是初学者还是有一定基础的学生,都能在这里找到适合自己的实践项目。我们诚挚邀请您的加入,共同探索编译技术的无限可能! ... [详细]
  • Java 点餐系统源代码附带管理后台(免费提供)
    本项目提供了一套基于 Java 的点餐系统,包括前端小程序和后端管理平台。采用 Spring Boot 和 SSM 框架,结合 MySQL 和 Redis 数据库技术,适用于学习和二次开发。有需要源代码的开发者可以通过私信联系,免费获取下载链接。 ... [详细]
author-avatar
大布丁
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有