用Proteus仿真一个STM32显示电路
嵌入式工程师成长日记 2025-01-03

一、系统功能

STM32主控系统中,我们实现了一个4×4的键盘矩阵界面,用于学生学号的便捷输入。用户只需按下对应的数字键,LCD1602液晶显示屏便会即时显示输入的数值。一旦用户连续输入了8位数字,通过按下确认键,输入的学号将被锁定在屏幕上,方便后续的操作和确认。除此之外,系统还融入了一个实用的计时功能。当用户按下计时按钮时,系统会迅速捕获当前的时间信息,并在LCD1602屏幕上显示出来,为用户提供即时的时间参考。当然,考虑到用户可能需要重新输入学号,我们也特别设计了一个删除按钮。用户只需轻按此按钮,屏幕上的当前学号便会被清空,为用户再次通过4×4键盘矩阵输入新的学号提供了方便。整个系统不仅提供了流畅的数字输入和确认功能,还具备时间显示和学号重置的便捷性,为用户带来了极大的便利。

二、系统设计原理

矩阵键盘是一种基于行列交叉检测原理的输入设备,它利用多行多列的按键布局,每个按键位于行与列的交叉点上。在初始状态下,所有的行线和列线都维持在高电平。当用户按下某个按键时,该按键会连接其所在的行和列,导致该行的电平降低,而对应列的电平升高。

矩阵键盘的扫描过程大致如下:

初始化:首先,系统将所有行线设置为高电平,并将所有列线配置为输入模式,以便监测电平变化。

行扫描:随后,系统开始逐行扫描,每次将一行设置为低电平,而其他行保持高电平。

列检测:在某一行被设置为低电平的同时,系统会检查所有列线的电平状态。如果检测到某个列线从高电平变为低电平,则表示该行与该列交叉点上的按键被按下。

记录信息:一旦检测到按键按下,系统会记录下该行和列的信息,并将该行重新设置为高电平,以便进行下一行的扫描。

重复扫描:这个过程会重复进行,直到所有行都被扫描过。

按键识别:通过分析哪些行和列被激活,系统可以确定具体是哪个按键被按下,并将其转换为相应的按键代码,供系统进一步处理。

DS1302实时时钟模块的工作原理基于其时钟计数和数据存储功能。该模块通过外接晶振产生稳定的时钟脉冲信号,这些信号经过内部电路的分频处理,形成不同频率的计数信号,用于实时更新时钟/日历寄存器的值。

在数据存储方面,DS1302内部集成了RAM,用于存储当前的年、月、日、时、分、秒等时间信息。通过一套复杂的控制逻辑,DS1302能够实现对这些数据的读写操作,确保时间的准确记录和读取。

简而言之,DS1302实时时钟模块通过外接晶振产生稳定的时钟信号,并经过分频和计数处理来更新时钟/日历信息,然后将这些信息存储在内部RAM中,为用户提供可靠的实时时间服务。

数码管是一种常用的电子显示器件,它通过内部的LED(发光二极管)阵列来显示数字或字符。这些LED按照特定的模式排列,每个LED段代表数字或字符的特定部分(如abcdefg)。数码管有两种常见的连接方式:共阴极和共阳极,这两种方式决定了LED的点亮方式。

为了显示特定的数字或字符,数码管的每个LED段(ag)都可以被单独控制。例如,要显示数字“2”,控制系统会激活abcde这五个LED段,并关闭fg段。通过精确控制这些LED段的亮灭组合,数码管能够清晰地显示从09的数字以及某些特定的字符或符号。这种灵活的控制方式使得数码管在多种电子设备中得到了广泛应用。

三、系统硬件设计

四、系统软件设计

//时间显示 if(time==1){ for(j=0;j<8;j++){ GPIOB->ODR=0x0001</选择哪个数码管显示 switch(j){ case 0:GPIOA->ODR=number[day/10];break; case 1:GPIOA->ODR=number2[day%10];break; case 2:GPIOA->ODR=number[shi/10];break; case 3:GPIOA->ODR=number2[shi%10];break; case 4:GPIOA->ODR=number[fen/10];break; case 5:GPIOA->ODR=number2[fen%10];break; case 6:GPIOA->ODR=number[miao/10];break; case 7:GPIOA->ODR=number[miao%10];break; } HAL_Delay(1); }  } else{//显示数码管 Numbertwo=Number; for(j=0;j GPIOB->ODR=(0x0080>>(8-show_set))>>j;//选择哪个数码管显示 GPIOA->ODR=number[Numbertwo%10];//数码管引脚 Numbertwo=Numbertwo/10; HAL_Delay(1); }  }

五、结果展示

 


声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • EDA
  • 仿真
  • CAD
  • 芯片
  • 用“软件陷阱+程序口令”对付PC指针的弹飞

    单片机编程经验总结

    2024-12-19
  • 电场和磁场是两种不同的物理场

    电场和磁场是两种不同的物理场,它们有着不同的性质和作用。核心答案是:电场是由电荷引起的物理场,它影响带电粒子的运动;而磁场是由电流或磁性物质引起的物理场,它对磁性物质和电流产生力和影响。

    2024-12-19
  • 指定 .func 命令的常数运行仿真并进行参数分析

    在上篇 LTspice 系列文章中,我们分享了如何利用ISO模型进行电源线瞬态电传导干扰测试,本文将介绍使用 .func 命令中的指定常数以有效运行仿真并进行参数分析的方法。更多参数分析的内容,...

    2024-12-13
  • 深入理解PDK的作用

    2024-12-13
  • BUCK电源输出放电功能怎么样?

    继续分析下输出放电功能...

    2024-12-13
  • 74LS160十进制计数器芯片工作原理

    工作原理74LS160 IC封装由16个引脚组成,包含一个4位同步计数器电路,无需外部逻辑芯片就可以连接进行十年计数的mod。通过将多个74LS160布线在一起(级联),可以实现更长的计数长度(10的幂)。例如,两个串联在一...

    2024-12-12
  • pic单片机是当前最实用工具之一

    pic单片机是当前最实用工具之一,而对于pic单片机的探讨往往与其他类型单片机相联系。本文中,将讨论pic单片机和51单片机谁更易于学习,以此帮助大家增进对pic单片机的理解。 51好学一些,但是PIC也没比51难多少。首...

    2024-12-12
  • 什么是FFT?

    在试着使用LTspice系列中,我们简单介绍了LTspice的用法。在TRAN分析的一种基于时间轴的分析中,可以像示波器一样查看信号电平随时间的变化。另一方面,当你想要查看一个信号的频率成分时,...

    2024-12-06
  • 芯片散热怎么设计?

    在IC中,一个温度参照点始终是器件的一个节点,即工作于给定封装中的芯片内部最热的点。

    2024-12-04
  • 如何选择全定制与半定制ASIC设计

    ASIC分为全定制和半定制。全定制设计需要设计者完成所有电路的设计,因此需要大量人力物力,灵活性好但开发效率低下。如果设计较为理想,全定制能够比半定制的ASIC芯片运行速度更快。半定制使用库里的标准逻辑单元(...

    2024-09-12
下载排行榜
更多
评测报告
更多
EE直播间
更多
广告