基于STM32的八位数码管显示和闹钟计时【Proteus仿真】

某鱼:两栖电子

一、系统功能

采用矩阵键盘,按下对应的数字再按下确认按键,数码管会显示自己输入的数字,如果按错可以使用删除按钮进行删除。点击计时按钮可以显示当前的时间。

二、使用器件

DS1302实时时钟芯片,8位数码管,STM32芯片,4×4矩阵按键

三、实物图展示

显示输入的数字:

 当前时间:

四、原理

DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.0V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。

DS1302有三根线,分别是 CE、I/O 和 SCLK,其中 CE 是使能线,SCLK 是时钟线,I/O 是数据线。

数码管:

 

共阳极数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳极数码管在应用时将公共极COM接到+5V,当某一字段的发光二极管的阴极为低电平时,相应字段点亮,当某一字段的阴极为高电平时,相应字段不亮。
共阴极数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阳极数码管在应用时将公共极COM接到地线GND,当某一字段的发光二极管的阳极为低电平时,相应字段点亮,当某一字段的阳极为高电平时,相应字段不亮。

五、核心代码

/*
读时间函数,顺序为:年周月日时分秒
*/
void ReadDS1302Clock(u8 *p)
{
	DS1302_OUT();
	DS1302_RST_L();
	DS1302_CLK_L();
	DS1302_RST_H();
	DelayNOP(100);
	DS1302SendByte(0xbf); //突发模式
	DS1302_IN();
	p[5] = DS1302ReceiveByte(); //秒
	p[4] = DS1302ReceiveByte(); //分
	p[3] = DS1302ReceiveByte(); //时
	p[2] = DS1302ReceiveByte(); //日
	p[1] = DS1302ReceiveByte(); //月
	p[6] = DS1302ReceiveByte(); //周
	p[0] = DS1302ReceiveByte(); //年
	DS1302ReceiveByte(); //保护标志字节
	DelayNOP(100);
	DS1302_RST_L();
	}

/*
写时间函数,顺序为:年周月日时分秒
*/
void WriteDS1302Clock(u8 *p)
{
	Write1302(DS1302_WRITE,0x00); //关闭写保护
	DS1302_OUT();
	DS1302_RST_L();
	DS1302_CLK_L();
	DS1302_RST_H();
	DelayNOP(100);
	DS1302SendByte(0xbe); //突发模式
	DS1302SendByte(p[5]); //秒
	DS1302SendByte(p[4]); //分
	DS1302SendByte(p[3]); //时
	DS1302SendByte(p[2]); //日
	DS1302SendByte(p[1]); //月
	DS1302SendByte(p[6]); //周,设置成周一,没有使用
	DS1302SendByte(p[0]); //年
	DS1302SendByte(0x80); //保护标志字节
	DelayNOP(100);
	DS1302_RST_L();
}

void InitClock(void)
{
	u8 tmp;

	tmp = ReadDS1302Ram(0);
	 
	if(tmp^0xa5)
	{
		WriteDS1302Ram(0,0xa5);
		Write1302(DS1302_WRITE,0x00); //关闭写保护
		Write1302(0x90,0x03);    //禁止涓流充电
		Write1302(DS1302_HOUR,0x00); //设置成24小时制
		Write1302(DS1302_SECOND,0x00); //使能时钟运行
		Write1302(DS1302_WRITE,0x80); //打开写保护
	}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/760550.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Mac虚拟机软件有什么用?

随着苹果M系列芯片电脑的推出,虚拟机的使用变得越来越流行。不同于苹果以往的Intel处理器电脑,其M系列芯片电脑无法安装双系统。如果要使用非macOS系统,可以通过创建虚拟机系统的方式实现。那么,虚拟机软件有什么作用和用途&#…

DP(动态规划)【3】 最长公共子序列 最长回文子串

目录 1.最长公共子序列 状态转移方程需要二维数组,1-dim已经不太够了 又是这个问题:如何读入字符串 2.最长回文子串 1.最长公共子序列 状态转移方程需要二维数组,1-dim已经不太够了 这里dp[i][j]是说S的前i位与T的前j位公共序列&#xff…

韩顺平0基础学java——第34天

p675-689 UDP网络编程 1.类 DatagramSocket和 DatagramPacket[数据包/数据报]实现了基于UDP协议网络程序。 2.UDP数据报通过数据报套接字DatagramSocket发送和接收,系统不保证UDP数据报一定能够安全送到目的地,也不能确定什么时候可以抵达。 3.DatagramPacket对象…

FastAPI教程III

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

植物大战僵尸融合版最新版2024蓝飘飘fly

亲爱的花园守护者们,是否已经厌倦了传统塔防游戏的老套模式?是否渴望在熟悉的《植物大战僵尸》中寻找全新的刺激体验?那么,让我们一起走进《植物大战僵尸融合版》的异想世界,开启一场别开生面的园艺之战吧!…

区间动态规划——最长回文子序列长度(C++)

把夜熬成粥,然后喝了它。 ——2024年7月1日 书接上回:区间动态规划——最长回文子串(C)-CSDN博客,大家有想到解决办法吗? 题目描述 给定一个字符串s(s仅由数字和英文大小写字母组成&#xff0…

以太网交换机原理

没有配置,比较枯燥,二可以认识线缆, 三比较重要,慢慢理解,事半功倍。 各位老少爷们,在下给大家说段以太网交换机原理,说得不好大家多多包涵,说得好呢,大家叫个好&#x…

Debugging using Visual Studio Code

One of the key features of Visual Studio Code is its great debugging support. VS Code’s built-in debugger helps accelerate your edit, compile, and debug loop. Debugger extensions VS Code 内置了对 Node.js 运行时的调试支持,可以调试 JavaScript、TypeScript…

Web3 前端攻击:原因、影响及经验教训

DeFi的崛起引领了一个创新和金融自由的新时代。然而,这种快速增长也吸引了恶意行为者的注意,他们试图利用漏洞进行攻击。尽管很多焦点都集中在智能合约安全上,但前端攻击也正在成为一个重要的威胁向量。 前端攻击的剖析 理解攻击者利用前端漏…

LW-DETR: A Transformer Replacement to YOLO for Real-Time Detection

LW-DETR: A Transformer Replacement to YOLO for Real-Time Detection 论文链接:http://arxiv.org/abs/2406.03459 代码链接:https://github.com/Atten4Vis/LW-DETR 一、摘要 介绍了一种轻量级检测变换器LWDETR,它在实时物体检测方面超越…

matrixone集群搭建、启停、高可用扩缩容和连接数据库

1. 部署 Kubernetes 集群 由于 MatrixOne 的分布式部署依赖于 Kubernetes 集群,因此我们需要一个 Kubernetes 集群。本篇文章将指导你通过使用 Kuboard-Spray 的方式搭建一个 Kubernetes 集群。 准备集群环境 对于集群环境,需要做如下准备&#xff1a…

数据结构-期末复习题

数据结构-期末复习题 一、选择题 1、在数据结构中,与所使用的计算机无关的是数据的( ) 结构。 A. 存储B. 物理C. 逻辑D. 物理和存储 【答案】C 【解析】暂无解析2、算法分析的两个主要方面是 ( )。 A. 正确性和简单性B. 可读性和文档性C. 空间复杂度…

测评推荐:企业管理u盘的软件有哪些?

U盘作为一种便携的存储设备,方便易用,被广泛应用于企业办公、个人学习及日常工作中。然而,U盘的使用也带来了数据泄露、病毒传播等安全隐患。为了解决这些问题,企业管理U盘的软件应运而生。 本文将对市面上流行的几款U盘管理软件…

【SQLmap】常用命令

文章目录 实际使用案例常用命令基本命令数据库指纹识别用户信息用户权限数据库枚举数据导出密码哈希操作系统命令执行文件操作代理和网络参数指定保存恢复自动搜索注入智能模式等级设置自动注入WAF 绕过杂项帮助和支持 SQLmap 是一款开源的自动化 SQL 注入检测和利用工具&#…

Web Based Quiz System v1.0 SQL 注入漏洞(CVE-2022-32991)

前言 CVE-2022-32991 是一个影响 Web Based Quiz System v1.0 的 SQL 注入漏洞。这个漏洞存在于 welcome.php 文件中的 eid 参数处。攻击者可以通过此漏洞在数据库中执行任意 SQL 语句,从而获取、修改或删除数据库中的数据。 具体细节如下: 攻击向量&…

【Spring Boot】Java 持久层 API:JPA

Java 持久层 API:JPA 1.Spring Data1.1 主要模块1.2 社区模块 2.JPA3.使用 JPA3.1 添加 JPA 和 MySQL 数据库的依赖3.2 配置数据库连接信息 4.了解 JPA 注解和属性4.1 常用注解4.2 映射关系的注解4.3 映射关系的属性 5.用 JPA 构建实体数据表 1.Spring Data Spring…

VMware虚拟机迁移:兼用性踩坑和复盘

文章目录 方法失败情况分析:参考文档 方法 虚拟机关机,整个文件夹压缩后拷贝到新机器中,开机启用即可 成功的情况: Mac (intel i5) -> Mac (intel i7)Mac (intel, MacOS - VMware Fusion) -> DELL (intel, Windows - VMw…

flask的基本使用2

上一篇我们介绍了基本使用方法 flask使用 【 1 】基本使用 from flask import Flask# 1 实例化得到对象 app Flask(__name__)# 2 注册路由--》写视图函数 app.route(/) def index():# 3 返回给前端字符串return hello worldif __name__ __main__:# 运行app,默认…

Linux【环境 CenOS7】部分软件安装链接整理

优质博文:IT-BLOG-CN 一、开启网络 【问题】: 刚安装完CentOS,当ping www.baidu.com时,ping不通; 【解决】: 进入cd /etc/sysconfig/network-scripts/我这里修改的是ifcfg-ens33文件,将ONBOOT…

论文阅读_基于嵌入的Facebook搜索

英文名称:Embedding-based Retrieval in Facebook Search 中文名称:基于嵌入式检索的Facebook搜索 时间:Wed, 29 Jul 2020 (v2) 地址:https://arxiv.org/abs/2006.11632 作者:Jui-Ting Huang, Ashish Sharma, Shuying …