|如何制作电子时钟?


|如何制作电子时钟?

文章图片


|如何制作电子时钟?

文章图片


|如何制作电子时钟?

文章图片


|如何制作电子时钟?

文章图片


|如何制作电子时钟?

文章图片


|如何制作电子时钟?

文章图片


|如何制作电子时钟?

文章图片


|如何制作电子时钟?

文章图片


|如何制作电子时钟?



背景简介
数码管:一般为8段共阴/共阳数码管共阴极数码管:公共端接地共阳极数码管:公共端接VCC点亮一个8段数码管 , 需要分别点亮“abcdefg”以及“.” 。 共阳极八段数码管真值表如下数码管驱动方式:静态显示、动态显示(一般为多位数码管区分驱动方式)公共端-位选信号led段-段选信号硬件资源

名称功能管脚
clk系统时钟E1
rst_n系统复位M1
com_led公共端N16
seg_led[0
段选aM11
seg_led[1
段选bN12
seg_led[2
段选cC9
seg_led[3
段选dN13
seg_led[4
段选eM10
seg_led[5
段选fN11
seg_led[6
段选gP11
seg_led[7
段选hD9
KEY0按键-时E16
KEY1按键-分E15
KEY2按键-秒M2
产品需求分析
  • 本次演示使用6位数码管进行动态驱动 , 公共端接高电平 , 段位端接低电平 。

  • 6位数码管显示“HH.mm.ss”
代码演示
按照顶层文件、定时器模块、按键检测模块、计数模块、数码管动态驱动模块 , 进行结构划分 。
模块作用
顶层文件提供模块例化、中间参数
定时器模块提供1s脉冲与1ms脉冲
按键检测模块检测按键触发信号
计数模块根据信号脉冲 , 计算需要显示的时间参数
码管动态驱动模块根据1ms脉冲刷新显示时间参数
顶层文件
使用3个按键 , 分别控制时、分、秒设置 , 故例化3个按键检测模块 , 定时器模块
普通的定时器 , 输出1s、1ms脉冲 。 此处可以再简化为:只提供一个输出脉冲的可配置时间的定时器模块 , 在例化两个信号即可 。 按键检测模块
与前一个例程“蜂鸣器”中类似 , 采用消抖处理 , 不然按键修改参数时 , 可能修改多次 。 计数模块
计数模块 , 也是逻辑模块 。 根据定时器提供的普通触发 , 以及按键触发 , 对需要输出的时间参数进行不同修改 。 码管动态驱动模块1、数据定义区域
定义数码管显示对应数据时的段位状态 。 2、基本逻辑1
  • 6位数码管 , 分别获取时间参数的“HH-MM-SS”对应的各位数字 。

  • 根据外部信号 , 获取刷新频率 , 控制led显示位置“selectLed”
2、基本逻辑2
根据led显示位置“selectLed” , 确定片选“cs_led”状态 , 以及需要显示的数字“display_num_led” , 并修改段选“reg_led”状态综合分析
【|如何制作电子时钟?】