`
数码管我就不做太多的介绍了
分为共阴和共阳两种
对应的GPIO管脚
给四位位选设置为0则开启数码管
数码管的显示又分为动态显示和静态显示
静态显示即每个数码管显示相同的数字(如果要显示不同的数字需要占用很多io)
动态显示即每个数码管可以显示不同的数字(通过快速逐位循环显示)
这里先编写一个静态显示的代码
一、首先创建文件,这里我就不重复,可以参考我前面发的帖子
文件其实主要有三部分
1.计时部分 每次计数0.5s将标志位置1并清空计数器
2.数码管显示部分
(注意该数码管是共阴)
根据相应的数字显示
3.数字的更新
根据收到的标志位对数字进行加1
二、最后就是配置物理约束文件,对相应的io进行配置
可通过FloorPlanner配置生成cst文件,也可直接自己编写cst文件
由于在实现代码时候,将代码分成多个Verilog文件时出现了一些问题,这里我将它们写在了一个.v文件中。
(官方代码看起来较复杂,部分代码参考正点原子例程并进行了修改)
三、具体实现
编译
烧入代码
实验展示
每隔0.5s更新一次
这里附带一下代码
等等,这里还有动态显示的代码
动态显示的代码较多我就不一一贴出来了
原理:其中一个数码管显示其他全关闭快速循环,看起来像同时显示4位,其实每次只显示了一位
这里我附带一下动态显示的代码
功能:从1计数到999
部分时钟频率(以及分频)未修改,不过功能实现
`