type
status
date
slug
summary
tags
category
icon
password
Property
Mar 6, 2024 11:23 AM
Created time
Jan 31, 2024 05:37 PM
因为是大二直接找前辈借的,手头没有资料,也没老师专门带着用,只能自己一点一点找资料了。
芯片型号是Cyclone EP1C3T100C8

芯片的一些引脚原理图

芯片所有的引脚
芯片所有的引脚
左上角便是数码管的接线
左上角便是数码管的接线
还有一些别的部件的原理图
notion image
notion image

这种数码管的原理:

notion image
首先这八个数字都共用一个ABCDEFGH的信号,H就是DP。 这八个字段对应的芯片引脚标号可以看前面的图,也可以直接在板子上找到(紧靠着ABCDEFGH的那些引脚数字)。 然后就是看到前面原理图,八个数字下面都会引出一条线,从SEL7到SEL0,代表控制这个数字部分亮不亮,0的话就亮。 他们对应的芯片引脚可以在第一张原理图找到,也可以在板子上找到,就是在ABCDEFGH上面的那些数字。 既然是共用ABCDEFGH的话,实际上我同一时刻只能显示同一个数字。但是我们可以用SEL7到0控制同时亮多少个数字,亮哪几个数字。那我想要同时亮出不同的数字实际上是不能真正实现的。代替办法是让数码管的每个时刻在不同位置显示一个数字,然后让显示的变化速度加快,提高帧率,达到人眼看不出这么短的变化过程,就类似于同时显示的效果了。 假设我要显示1234, 那我就让第1毫秒显示1空空空, 第2毫秒显示空2空空, 第3毫秒显示空空3空, 第4毫秒显示空空空4, 第5毫秒显示1空空空, 第6毫秒显示空2空空…… 如此快速地循环往复,起到类似同时显示的效果。 代码方面我参考的是下面这篇文章:

实现OUT指令的暂停和继续

因为指令运行非常快,必须要进行自动的指令暂停和按键后继续。我的设计思路是在IN OUT模块中接入OUT指令,当OUT指令为1的时候,输出一个指令令SM_EN=0,类似停机,然后接入一个外部按钮输入(按钮按下为0,不按是1),当按下按钮的时候,实现恢复SM_EN=1。

实现按键去抖

按键毕竟不像时钟,他按下和释放都会有波形抖动,造成运行错误,所以要进行去抖,我写了个模块进行暂停恢复按键和复位按键的去抖。参考的是这篇文章:

实现复位

高精度温湿度/气压/细颗粒物气象要素观测记录仪开发计划展望关于每日气象数据的微博推送方案
  • Giscus