秒表

作者: c0950a553955 | 来源:发表于2023-10-16 15:32 被阅读0次

效果演示

https://www.bilibili.com/video/BV1dK411m7UQ/

基础知识

八段数码管

数码管也称LED数码管,按段数可分为七段数码管和八段数码管。八段数码管比七段数码管多一个发光二极管单元,也就是多一个小数点(DP)这个小数点可以更精确的表示数码管想要显示的内容;按能显示多少个(8)可分为1位、2位、3位、4位、5位、6位、7位等数码管。


八段数码管

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

以八段共阴数码管显示“2”举例,如上图显示2需要点亮a、b、g、e、d这五个LED,其余LED全部熄灭。所以输出信号应该输出的数据是01011011。显示其余数字也是类似的原理,而dp一般是用作小数点处理,不需要的时候一般都不点亮这个LED。


数码管各个LED灯编号名称

实验平台采用的八段数码管控制电路如图所示:

八段数码管电路控制图

实验原理

(1)获取一秒钟的频率,可以直接使用宏模块LPM_COUNTER计数器对时钟进行分频。已知一秒钟的频率为1Hz,系统时钟频率为50MHz,则使用宏模块LPM_COUNTER计数器进行分频 50000000 /1=50000000, 但是得到的数字不是2的幂次方,则我们取 2^26 大于 50000000 即可,同时可以在宏模块内部选择在模为50000000,这样可以在时钟到达了1Hz的频率时自动清零重新计数。

LPM_COUNTER

调整频率占空比。占空比是指高电平在一个周期之内所占的时间比率,方波的占空比为50%,占空比为0.5,说明正电平所占时间为0.5个周期。若信号的周期为T,每周期高电平时间为t1,低电平时间为t2,T=t1+t2,则占空比D=t1/T。获取一秒钟频率之后,考虑到其占空比较大,频率闪烁较快,所以直接使用宏模块LPM_COMPARE比较器将其占空比调整为50%,当比较器“小于”50%的频率时,输出端获取合适的占空比。

LPM_COMPARE

在实际的应用中会发现:将如上两个器件相连接,输入系统时钟的频率,也不能得到想要的一秒钟频率,但是逻辑上找不出其生产不出一秒钟在的频率的原因。此时联合实际生产要知道:实际的器件在生成波形时,会产生小毛刺,这是电平信号出现一段不确定的波形,使得波形处于一种未知的状态。为消除毛刺带来的不确定性,所以使用D触发器来消抖。

D触发器

(2)制作秒表所需要0 ~ 59 的数字可以使用加法计数器生成。74163作为计数器 ,具有同步清零、同步置数的功能,其具体的功能如74163功能表所示。其中LDN为同步置数控制端,A ~ D为四位预置数据输入,ENT和ENP为计数控制端,CLRN为异步清零端,QA~QD为四位计数器的状态,ECO为计数器进位输出端。

74163 74163功能表

作为秒表个位需逢九归零,意为:当秒表的个位同步计数到“9”时,下一位数就要清零,从“0”开始。而秒表的十位需不见六,意为:当秒表走到“59”时,需都清零回到“00”的状态,不能看见“60” 。

(3)动态扫描是:多个数码管显示数字的时候,我们实际上是轮流点亮数码管(一个时刻内只有一个数码管是亮的),利用人眼的视觉暂留现象(也叫余辉效应),就可以做到看起来是所有数码管都同时亮了。我们利用数据选择器实现数据选择,完成两个数字轮流亮起。

通过LPM_MUX多路选择器将数据输出到八段数码管中,当输入的时钟频率切换较快时,就可以达成动态扫描的效果。秒表需要输入到多路选择器data0x~data1x的数据包括当前计数器上QA ~ QD的秒表个位与十位的状态,和秒表计数器个位与十位在八段数码管所显示的位置信息;通过sel端口输入时钟选择数据,再从result端口输出数据,达到多个数码管轮流显示的效果。

LPM_MUX

(4)当LPM_MUX数据选择器输出的计数器状态,输入到7448译码器A ~ D端端口进行译码,再通过OA ~ OG端口输出其对应数字的电频信号,到对应数码管的各个LED灯端口中,就可以显示秒表对应的数字。

7448

在数字电路实验教学平台各个LED管对应的FPGA控制管脚如表所示:

各LED管对应的FPGA控制管脚

拨码开关对应的FPGA控制管脚:


拨码开关对应控制管脚

按键对应的FPGA控制管脚:


按键对应控制管脚

八段数码管片选引脚对应FPGA控制管脚:

八段数码管片选引脚

八段数码管引脚对应FPGA控制管脚:

八段数码管引脚

步骤

(1) 启动Quartus II,利用建立工程向导建立一个工程文件。

(2) 选择File->New->Block Diagram/Schematic,建立一个原理图输入文件。

(3) 双击原理图空白处,输入所要添加的器件,然后设置引脚的输入、输出值,编译通过后对引脚进行IO分配,并把没用到的引脚设置为三态输入。

(4) 把编译成功的文件下载到核心板上,观察结果。

(5) 填写实验报告(可以在背面填写或者另添纸填写)。

(6) 完成基本实验后可以设计自己的实验。


秒表的设计与实现

班级 学号 姓名 指导教师 实验时间
20____年____月

要求

  1. 通过对系统时钟50MHz分频的方式产生一秒的频率;
  2. 通过计数器产生每秒的编码;
  3. 利用八段数码管,显示每秒。

相关文章

网友评论

      本文标题:秒表

      本文链接:https://www.haomeiwen.com/subject/fccetdtx.html