四位数码管树莓派c语言,用树莓派和四位数码管模块做一个时钟
8种机械键盘轴体对比
本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?
预备知识
如图,这是一个4位数码管模块,由两片 74HC595 级联控制,引脚如图,从上到下,分别为VCC(3.3V/5V),SCLK(移位控制端),RCLK(输出控制端),DIO(数据输入端),GND(接地)。
74HC595
我们来看一下74HC595是什么样的
看懂这个芯片需要一点点的数字电子技术的知识,看下面这个表格符号引脚描述Q0~Q715,1~78位并行数据输出
GND8接地
QA9串行数据输出
MR10主复位(低电平)
SH_CP11数据输入时钟
ST_CP12输出存储器锁存时钟线
OE13输出有效(低电平)
DS14串行数据输入
VCC163.3V/3.5VDS(14号脚)是数据输入端,74HC595支持8位数据并行输出,但是数据输入只有DS一个脚,需要分8次输入;
OE(Out Enable)是一个使能端,使用74HC595时需要将这个脚接地,若接高电平,那么Q0~Q7全部为0(低电平);
SH_CP(Shift register ClockPin)是一个重要的引脚,此引脚的电平从低向高变(上升沿)时,芯片从DS脚读入数据(0/1);
ST_CP,集满8位数据(其实并非严格集满,Q0~Q7本来就有电平),此引脚的上升沿将8位数据输出。
74HC595级联
一个74HC595可以并行输出8位数据,两个级联就可以并行输出16位数据,级联芯片时将第一片的QA脚接到第二片芯片的DS脚,SH_CP和ST_CP也同时接在一起,当第一片芯片的SH_CP第九次上升沿触发时,第一片芯片的第一个数据将会通过QA脚输送给第二片芯片的DS脚。
也就是说,芯片的顺序是看QA和DS脚的顺序的。
电路原理图
四位数码管原理图
数码管分位共阳极和共阴极,我拿到的这个数码管是共阳极,也就是说,给相应的脚设为低电平,则数码管点亮。
四位数码管模块原理图
4位数码管模块使用两片74HC595级联来控制数码管,观察电路可知,第一片74HC595的低四位用来选中四位数码管,也即DIG.1,DIG.2,DIG.3,DIG.4,高四位留空不用。第二片的八位输出用来控制数码管显示的数字。
数码管原理
数码管内部其实是8个发光二极管,8个二极管排列成一个“8”字,控制二极管的明灭就可以控制数码管显示的数字。下面的表给出共阳极数码管的阵脚电平和显示数字对应关系(DP不亮)DP GFEDCBA显示(十进制)十六进制值1 100000000xC0
1 111100110xF9
1 010010020xA4
1 011000030xB0
1 001100140x99
1 001001050x92
1 000001060x82
1 111100070xF8
1 000000080x80
1 001000090x90
树莓派引脚图
通过控制树莓派的GPIO.X引脚电平高低即可控制外部扩展设备。
看引脚的方式是树莓派有网线接口和 USB 接口的面朝下,GPIO 阵脚的那一面面向自己,左上角位 1 号脚,右下角为 40 号脚。
编码实现
接线四位数码管模块RaspeberryVCC1 号脚(可改变)
GND9 号脚(可改变)
DIO12 号脚
SCLK13 号脚
RCLK15 号脚
演示
循环显示年份,日期,时间,只显示到分钟,不显示秒。
参考
四位数码管树莓派c语言,用树莓派和四位数码管模块做一个时钟相关推荐
- 手把手教学51单片机 | 第四节 动态数码管,用6位数码管做一个时钟
1.利用定时器做一个流水灯的程序 //流水灯从上到下一次点亮,然后让全部灯闪烁两次,依次循环 #include<reg52.h> #include<intrins.h> #de ...
- 树莓派C语言点灯,树莓派3 b GPIO 点亮小灯泡
0X00 问题环境 设备:树莓派3 B 系统:raspbian LED 一只 (发光二极管?) LED接线: 正极(长腿)接37(gpio26) 负极接4(5V) 0X01 成功代码 使用如下方式可以 ...
- 【树莓派C语言开发】实验04:继电器模块
文章目录 前言 1.实验器材 2.实验原理 2.1继电器模块 2.2继电器工作 3.电路图和接线图 3.1电路图 3.2接线图 4.代码示例 4.1部分函数解释 4.1.1pinMode 4.1.2d ...
- 【树莓派C语言开发】实验06:轻触开关模块
文章目录 前言 1.实验器材 2.实验原理 2.1电路图 2.2接线 3.程序示例 3.1部分函数解析 3.2 Geany编译器运行 3.3Linux-Gcc编译器 3.4程序优化 结语 前言 一起开 ...
- 数码管识别c语言代码,OpenCV之七段数码管识别(含代码)
1 背景 利用opencv识别数码管,采用传统的穿线法,前提是利用深度学习目标检测的方法,在机柜中将数码管区域切割出来,然后再对切割出来的区域进行识别,判断数字是多少.切割出来的形状如图所示: 数码管 ...
- 8255数码管显示c语言,用汇编语言编写七段数码管显示1~9,用8255A接口芯片,用中断方式控制。...
满意答案 vgvm7321 2013.07.19 采纳率:52% 等级:11 已帮助:11521人 正好我们做了这个实验 你知道的,把数据段中的端口地址改为你的计算机可识别的8255A的端口地址 ...
- 用C语言(keil c)给8051单片机编程来做一个LCD计算器(proteus仿真)
源代码很简单, 直接给部分电路图效果(125*25=3125):
- C语言:用switch,case函数,做一个自动售卖机
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, char ...
- 单片机c语言 常用英语,数码管单片机c语言程序设计(国外英语资料).doc
数码管单片机c语言程序设计(国外英语资料) 数码管单片机c语言程序设计(国外英语资料) 1,一个管亮<静态> # include < reg52.h > #定义使用uint u ...
最新文章
- openpyxl.utils.exceptions.InvalidFileException: openpyxl does not support the old
- 安装node.js 附带node.js以及npm初步认识 设置淘宝/npm镜像 命令
- java c3p0 连接 mysql_Java使用C3P0数据源链接数据库
- 【C 语言】文件操作 ( C 语言中的文件操作函数 | 磁盘与内存缓冲区 | 缓冲区工作机制 )
- Three Strings CodeForces - 1301A
- 循环结束后变回去 设置一个值_VBA掌握循环结构,包你效率提高500倍
- python3.5文档
- [恢]hdu 2042
- HDU1869 六度分离【Dijkstra算法】
- UVA 11423 - Cache Simulator (树状数组)
- ToStringBuilder用法
- RS485通讯介绍(附批量测试思路)
- python异步编程 图书_Python异步编程介绍
- 【2022版】 Kafka面试题整理(含答案解析)
- 自然辩证法对计算机科学技术的应用,自然辩证法与计算机科学技术
- 加什么地形就看什么等高线!等高线实时预览就是这么爽
- 虚拟机中Linux扩容硬盘空间
- 跟谁学 英语口语20090927疑问句
- 注册一个微信公众号的测试平台
- 仲至信息与Cornet Solutions签订日本经销合同
热门文章
- Nginx 配置内网访问树莓派4 ASP.NET Core 3.0 网站
- .NET 分布式自增Id组件(解决自动分配机器Id、时间回拨问题)
- 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁
- GitHub推出包管理服务,npm与Nuget全支持
- Docker最全教程——从理论到实战(二)
- .Net Core 全局配置读取管理方法 ConfigurationManager
- .NET Core快速入门教程 3、我的第一个.NET Core App (CentOS篇)
- 【错误异常大全】:ArcGIS Engine中C#无法引用ESRI.ArcGIS.AxControls问题
- 【ArcGIS Engine二次开发】入门基础(1):ArcGIS Engine简介及开发环境搭建
- ArcGIS实验教程——实验十七:缓冲区分析(Buffer Analysis)