北邮数电实验学校作息时间管理系统Word下载.docx
- 文档编号:8136199
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:42
- 大小:1.62MB
北邮数电实验学校作息时间管理系统Word下载.docx
《北邮数电实验学校作息时间管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《北邮数电实验学校作息时间管理系统Word下载.docx(42页珍藏版)》请在冰点文库上搜索。
2.3.8调整打铃时间模块...............................................................................................9
2.3.9数据选择模块.....................................................................................................10
3.仿真波形及波形分析.............................................................................................................11
3.1模60计数器...............................................................................................................11
3.2模24计数器...............................................................................................................12
3.3调时模块.....................................................................................................................13
3.4点阵模块.....................................................................................................................14
3.5数码管译码模块.........................................................................................................16
3.6数据选择模块.............................................................................................................16
3.7打铃控制模块.............................................................................................................17
3.8闹钟打铃控制模块.....................................................................................................18
3.9防抖模块.....................................................................................................................18
4.源程序....................................................................................................................................19
5.功能说明及资源使用情况.....................................................................................................30
5.1功能说明.....................................................................................................................30
5.2按键锁定情况.............................................................................................................31
5.3板上资源利用情况.....................................................................................................31
6.故障及问题分析.....................................................................................................................31
7.总结和结论.............................................................................................................................32
8.对于数字电路实验的意见和建议.........................................................................................32
1.任务要求
设计一个学校作息时间管理系统,该管理系统有常态、考试和假日三种工作模式,三种模式用一个按键BTN实现切换,并用点阵进行显示:
常态模式显示N,考试模式显示E,假日模式显示H。
在三个模式下,在不同的时间会触发打铃。
铃声要求:
预备铃声、上课铃声、下课铃声、熄灯铃声、考试铃声和收卷铃声至少用3种用不同的乐曲表示,每种铃声不短于10秒,不长于20秒,且上课铃声和考试铃声必须终止于开始时间,下课铃声和收卷铃声必须起始于课程或考试结束时间。
任何模式下,时钟都要走时正确,且可以用按键BTN进行校正调节,时间用6个数码管显示。
附加要求:
可以自行调整打铃时间。
2.系统设计
2.1总体设计思路
为了实现学校作息时间管理的基本功能,我们首先需要计时模块:
通过对50MHZ时钟信号分频得到1HZ信号,使用60进制计数器产生秒计数,上一级计数器的输出CO接入下一级电路的CLK,从而产生分钟和小时的计数信号。
当load(调时)信号有效时,计时模块根据输入进行置位操作。
为了实现调整时间的功能,我们需要一个调时模块,这个模块包括一个片选计数器,两个5进制计数器,两个9进制计数器,一个24进制计数器。
当load(调时)信号有效时,片选计数器受numshift(调时数位切换)按键控制,产生一个CS信号,可以控制目前调时的数位。
其余5个计数器受CS信号的控制,当CS有效时,受add按键控制,进行增计数,CS无效时,计数器不作操作。
当load信号为0时,调时模块不受numshift和add控制。
为了实现控制打铃时间的目的(提高要求),我们需要一个打铃调时模块,这个模块与调时模块的结构基本相同,首先可以用来设置打铃时间,然后将调打铃的时间锁存,并且与当前时间作比较,如果相同,则输出song(歌曲开始)信号,接到打铃模块上。
为了实现三个模式的切换和点阵的显示功能,我们需要一个点阵显示模块。
这个模块由3进制计数器和点阵译码器组成,3进制计数器对stateshift(模式切换)信号做计数,根据计数结果令点阵显示N、E、
H。
同时,将技术结果statectl输出,供其他模块使用。
为了实现按时打铃的功能,我们设计一个打铃控制模块。
该模块将计时模块的输出进行选择译码,当计时模块输出为需要打铃的时间之后,打铃控制模块输出一个songctl(歌曲选择)信号,一个song(歌曲开始)信号,接到打铃模块上。
我们还需要一个打铃模块。
打铃模块当song信号出现上升沿时,
模块根据songctl的状态选择歌曲开始播放,播放一遍后自动停止。
一个数码管译码模块。
该模块读取计时模块和调时模块的输出,当load有效时,显示调试模块结果,当load无效时,输出计时模块结果。
一个数据选择模块。
该模块在load=1时,将调时模块输出给数码管译码器,使得目前调整的时间在数码管上显示出来。
当setalert=1时,将调整打铃时间模块输出给数码管译码器,从数码管上显示正在调整的打铃时间。
最后我们还需要一个防抖模块。
这个模块对使用到的按键和电路中可能出现冒险的信号做防抖,消除毛刺。
2.2总体设计框图
2.2.1模块框图
本次实验需要的模块及模块间的连接示意图如下:
图一总体模块设计框图
2.2.2ASM图
图二ASM图
2.2.3MDS图
Load=0,setalert=0
图三MDS图
2.3分块设计
2.3.1计时模块
计时模块,最基本的功能有计时功能与置位功能。
在Load=0的状态下,通过对50MHZ时钟信号分频得到1HZ信号,使用60进制计数器产生秒,秒计数器的CO接入下一级60进制计数器的CLK,产生分钟,分钟计数器的CO接入下一级24进制计数器的CLK,产生小时。
Load=1时,计时模块根据输入进行置位操作。
当Load由1变回0时,计时模块将从置位结果开始计数。
以下是QuartusII中使用符号文件建立的原理图:
图四计时模块原理图
2.3.2调时模块
调时模块,是在load、numshift、add三个信号作用下起到调整时间功能。
本模块包含一个片选计数器,两个5进制计数器,两个9进制计数器,一个24进制计数器。
当load(调时)信号有效时,片选计数器受numshift按键控制,产生一个CS信号,可以控制目前调时的数位。
其余5个计数器首先被置位到当前计数模块的时间,然后受CS信号的控制,当CS有效时,对add按键进行增计数。
将计数结果送到计数模块用来预置。
当load信号无效时,调时模块不受numshift和add控制。
Numshift和add锁定在btn上的,所以要先通过防抖模块进行防抖处理。
图五调时模块原理图
2.3.3点阵显示模块
点阵显示模块模块由3进制计数器和点阵译码器组成,3进制计数器对stateshift(模式切换)信号做计数,根据计数结果令点阵显示N、E、H。
同时,将计数结果statectl输出,供其他模块使用。
经过实验,我们选了1kHZ作为点阵扫描频率,我在实验中发现,点阵显示红色时比绿色更醒目,所以选择使用红色显示。
由于stateshift信号是锁定在按键btn上,要先对信号做防抖处理。
图六点阵显示模块原理图
2.3.4打铃控制模块
打铃控制模块将计时模块的输出进行选择译码,当计时模块输出为需要打铃的时间之后,打铃控制模块输出一秒高电平的songctl(歌曲选择)信号,一秒高电平的song(歌曲开始)信号,接到打铃模块上。
由于计数模块为异步时序电路,打铃控制模块在译码过程中会存在毛刺现象。
解决方案是将电路输出连接到防抖模块,做防抖处理,处理后的信号再接入打铃模块。
在load信号为高电平时,打铃控制模块处于禁止状态,输出低电平。
图七打铃控制模块原理图
2.3.5打铃模块
打铃模块当song信号出现上升沿时,模块根据songctl的状态选择歌曲开始播放,播放一遍后自动停止。
我设计了三个计数器,一个用来控制输出声音的音长,另一个用来控制输出声音的音高,第三个用来对演奏过的音符计数。
音高是使用脉冲的频率控制的,对于蜂鸣器输出频率不一样的脉冲信号,蜂鸣器的发声情况不同。
当song信号出现上升沿时,音符计数器开始计数,当音高计数器计满一圈时,输出信号翻转,达到调整频率的目的。
当音长计数器计满时,音符计数器加一,另外两个计数器清零,开始演奏下一个音符。
图为打铃控制模块和打铃模块的连接示意图,输出out_bit连接至beep管脚60。
图七打铃控制模块与打铃模块连接示意图
2.3.6数码管译码模块
模块使用的时钟频率为1kHZ。
具体实现方法为:
定义一个6进制计数器,每个时钟上升沿自增1,根据计数器输出读取不同的时间位数(小时高位,小时低位,分钟高位,分钟低位,秒高位,秒低位),将其依次输出到CAT5~CAT0。
当load信号为0时,读取计时模块输出结果,当load为1时,读取调整时间模块结果。
另外,输入一个2HZ的低频时钟clk05,本时钟用于当调时模式时,根据将目前正在调整的位数闪烁显示。
num[3..0]用于获取正在调整的位数。
a[5..0]连接CAT5~CAT0,b[7..0]连接AP,AA,AB,AC,AD,
AE,AF,AG,AH。
图八数码管译码模块原理图
2.3.7防抖模块
针对输入信号时,按键发生的抖动现象,和由于延时造成的毛刺现象,我们需要一个防抖模块。
防抖模块的基本原理是:
模块本身由两级D触发器构成,在相邻的两个时钟边沿对输入信号做两次采样,如果采样信号出现翻转,则认为原信号出现了一个翻转。
合理设置输入时钟的频率,即可起到防抖的目的。
本模块采用64HZ的时钟信号,对四路信号做防抖处理。
图九防抖模块原理图
2.3.8调整打铃时间模块
调整打铃时间模块与调时模块的结构基本相同,首先可以用来设置打铃时间,然后将调打铃的时间锁存,并且与当前时间作比较,如果相同,则输出song(歌曲开始)信号,接到打铃模块上。
图十调整打铃时间模块原理图
2.3.9数据选择模块
为了合理的控制数码管的输出内容,我设计了数据选择模块。
当setalert=1时,将调整打铃时
间模块输出给数码管译码器,从数码管上显示正在调整的打铃时间。
该模块的QuartusII原理图如下图所示:
图十一数据选择模块原理图
3.仿真波形及波形分析
3.1模60计数器
3.1.1Load=0,正常计数时
图十一模60计数器仿真波形图
从图中我们可以看出,随着输入时钟的变化,低位计数器开始模10计数,当低位计满时,高位+1,当计满60时,输出一个周期的co信号,同时计数器回到0。
3.1.2Load=1,计数器置位时
图十二模60计数器仿真波形图
从图中可以看出,load=1时计数器被置位到输入的状态(图中低位为8,高位为2),当load=0之后,计数器从该状态开始继续计数。
3.1.3Clr=1,计数器清零
图十三模60计数器仿真波形图
从图中可以看出,clr=1时,计数器进入全零状态。
3.2模24计数器
由于模24计数器与模60计数器除了进制不同,其他特性完全一样,故只给出三张仿真图,不再详细说明。
3.2.1Load=0,正常计数时
图十四模24计数器仿真波形图
3.2.2Load=1,计数器置位时
图十五模24计数器仿真波形图
3.2.3Clr=1,计数器清零
3.3调时模块
3.3.1Load=0时
图十六调时模块仿真波形图
Load=0时,调时模块的输出与输入一致,这是为了在开始调时的时候,计数器可以停在目前的时间上,方便调时的需要。
3.3.2Load=1时
图十七调时模块仿真波形图
当numshift没有被按下时,当前调时位数为秒低位,随着add按键的按下,秒低位自增一。
当numshift被按下时,当前调时位数切换到秒高位,随着add按键的按下,秒高位自增一。
当numshift继续被按下时,将会对分低位,分高位,小时进行调时,原理与以上各图一致。
3.4点阵模块
3.4.1假日状态时
图十八点阵模块仿真波形图
从图中可以看出,当点阵由上向下扫描时,col输出
01100110,01100110,01111110,01111110,01100110,01100110,显示在点阵上即为字母H。
3.4.2考试模式
图十九点阵模块仿真波形图
从图中可以看出,stateshift按下时,状态由假日模式切换到考
试模式,当点阵由上向下扫描时,col输出01111110,01111110,
01100000,01111110,01111110,01100000,01111110,01111110显示在点阵上即为字母E。
3.4.3常态模式
图二十点阵模块仿真波形图
从图中可以看出,stateshift按下时,状态由考试模式切换到常态模式,当点阵由上向下扫描时,col输出01100110,01100110,01110110,01110110,01111110,01101110,01101110,
01100110,显示在点阵上即为字母N。
3.5数码管译码模块
图二十一数码管译码模块仿真波形图
首先把输入信号设置为21:
34:
05,当输入一个时钟信号时,我们可以看到CAT5~CAT0按位扫描,输出数字依次为2、1、3、4、0、5,符合设计要求。
3.6数据选择模块
图二十二数据选择模块仿真波形图
当调时模块的输出为01:
23:
56,调整打铃时间模块的输出为23:
45:
23时,如果setalert=1,则输出为23:
23,送到数码管译码器上面显示。
图二十三数据选择模块仿真波形图
23时,如果load=1,则输出为01:
56,送到数码管译码器上面显示。
从中看来,该模块完成任务。
3.7打铃控制模块
图二十四打铃控制模块仿真波形图
当load信号等于1时,打铃控制模块不做输出,这
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北邮数电 实验学校 作息 时间 管理 系统