CD4017 – 带解码输出的十进制计数器

news/2024/7/8 1:39:51 标签: 单片机, 嵌入式硬件

CD4017 IC 是一个十进制计数器,它有 10 个输出,分别代表 0 到 9 的数字。计数器在(14号引脚)每个时钟脉冲上升时增加 1。计数器达到 9 后,它会在下一个时钟脉冲时从 0 重新开始。

引脚名称管脚 #类型描述
VDD16电源电压(+3 至 +15V)
GND8接地(0V)
Q0-Q91-7 和 9-11输出连接输出例如led
CO12输出执行。十个时钟脉冲后变为高电平(级联管脚)
CI13输入时钟禁止。忽略时钟输入高电平时芯片被禁止,一般接地
CLK14输入

时钟输入。每次高电平则计数器加一

MR15输入将计数器重置为 0

如何使用CD4017

首先,你需要一个 3 到 15V 的电源电压。

将VDD 引脚连接到正极,将GND 引脚连接到负极。

时钟 (CLK) 14引脚每次从低电平变为高电平时,计数器都会增加一。随着计数的增加,输出引脚 (Q0-Q9) 会逐一变为高电平。第 10 个输入脉冲后,计数器会重置并再次从 0 开始。将此引脚从低电平变为高电平可增加计数器。芯片加电时Q0=高电平。

随着计数器的增加,输出引脚 Q0 至 Q9逐一升高。如果要查看引脚状态变化,请将每个引脚连接到电阻器和 LED。

时钟禁止 (CI) 引脚可禁用计数器,这样 CLK 引脚上的任何时钟脉冲都会被忽略。将此引脚设置为低电平可启用计数器。

当计数器达到 10 时,进位输出 (CO) 引脚从低电平变为高电平,然后重置回 0。该引脚保持高电平 5 个时钟脉冲,然后再次变为低电平。如果要计数高于 10,请将此引脚连接到另一个十进制计数器的时钟输入(是个串联引脚)。

CD4017 示例电路 – 运行 LED

用该芯片构建的最受欢迎的业余爱好者项目之一是运行 LED 电路。它的工作原理如下:

555 定时器设置为非稳态模式,这使其成为产生时钟信号的振荡器电路。该时钟信号进入 IC 4017 的时钟输入。每次时钟输入变为高电平时,4017 中的计数器都会增加,从而使下一个输出变为高电平。LED 连接到每个输出,因此看起来像是沿着一条线“运行”。

这是电路图:

组件列表

部分价值笔记
R1、R2、R310千欧姆三个标准电阻
C14.7 μF极化电容器
L1 至 L10led标准发光二极管
U1NE555555定时器IC
U2CD4017B4017 十进制计数器

注意:某些版本的 555 IC 需要在引脚 5 和地/负极之间放置一个 0.01µF 电容器。

LED 会按顺序从第一个到最后一个闪烁,然后再次从第一个开始闪烁。例如,您可以使用此技术来创建流水灯。

到达Q9后,4017会重新开始计数,从Q0重新开始。如果要限制LED的数量,只需将相应的下一个输出位连接到MR引脚即可。

例如,如果您只有 5 个 LED,则将 Q6 连接到 MR 引脚。当计数达到第 6 位时,Q6被设置成高电平,它会设置 MR 引脚并重置操作。

如何设置“运行”速度

555 定时器输出每秒变为高电平的次数就是频率  以赫兹 (Hz) 为单位。例如,10 Hz 表示每秒十次。这意味着 LED 每秒移动 10 个位置。

电阻器 R1 和 R2 以及电容器 C1 根据以下公式决定频率:

频率:1.44 / ((R1 + R2 + R2) * C1)

注意:  R1 绝不能小于 1 kΩ,因为当引脚 7(放电)接地时可能会损坏芯片。

使用arduino uno代替ne555芯片电路图:

uno开发板程序:

// C++ code
//
void setup()
{
  pinMode(3, OUTPUT);
  pinMode(2, OUTPUT);

  digitalWrite(3, HIGH);
}

void loop()
{
  digitalWrite(3, LOW);
  digitalWrite(2, HIGH);
  delay(300); // Wait for 300 millisecond(s)
  digitalWrite(2, LOW);
  delay(300); // Wait for 300 millisecond(s)
}


http://www.niftyadmin.cn/n/5535882.html

相关文章

ios调用高德地图定位报错

错误信息如下: Thread Performance Checker: Thread running at User-interactive quality-of-service class waiting on a lower QoS thread running at Default quality-of-service class. Investigate ways to avoid priority inversions PID: 1668, TID: 1538…

linux指令tcpdump

目录 1. 安装 tcpdump 2. 基本用法 捕获所有网络接口上的数据包 捕获特定网络接口上的数据包 捕获特定协议的数据包 3. 示例 捕获特定主机的数据包 捕获特定端口的数据包 捕获源或目的 IP 和端口的组合 捕获 ICMP 数据包(如 ping 请求) 捕获并…

35 智能指针

目录 为什么需要智能指针?内存泄露智能指针的使用及原理c11和boost中智能指针的关系RAII扩展学习 1. 为什么需要智能指针? 下面我们先分析一下下面这段程序有没有什么内存方面的问题? int div() {int a, b;cin >> a >> b;if (…

git clone报错RPC failed; curl 92 HTTP/2 stream 7 was not closed cleanly

问题描述 git clone github上的项目报错: RPC failed; curl 92 HTTP/2 stream 7 was not closed cleanly: CANCEL (err 8) 4796 bytes of body are still expected fetch-pack: unexpected disconnect while reading sideband packet early EOF fetch-pack: invalid index-pac…

黑马苍穹外卖技术亮点 详情

1.使用工厂模式和策略模式实现布隆过滤器解决缓存穿透问题 Bitmap Bitmap是一种数据结构,它使用位图来表示数据。在处理大量数据时,Bitmap可以通过将每个数据元素映射到一个位,然后使用位运算来对数据进行操作。 通过使用Bitmap&#xff0c…

FastAPI教程III

本文参考FastAPI教程https://fastapi.tiangolo.com/zh/tutorial 这部分暂无需求的没有记录,仅放置标题。 依赖项 安全性 中间件 你可以向FastAPI应用添加中间件。 ”中间件“是一个函数,它在每个请求被特定的路径操作处理之前,以及在每个…

Python逻辑控制语句 之 判断语句--if语句的基本结构

1.程序执行的三大流程 顺序 分支(判断) 循环 2.if 语句的介绍 单独的 if 语句,就是 “如果 条件成⽴,做什么事” 3.if 语句的语法 if 判断条件: 判断条件成立,执行的代码…

Spring Cloud LoadBalancer基础入门与应用实践

官网地址:https://docs.spring.io/spring-cloud-commons/reference/spring-cloud-commons/loadbalancer.html 【1】概述 Spring Cloud LoadBalancer是由SpringCloud官方提供的一个开源的、简单易用的客户端负载均衡器,它包含在SpringCloud-commons中用…