数字钟课程设计报告Word文档格式.docx
- 文档编号:20746357
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:39
- 大小:127.17KB
数字钟课程设计报告Word文档格式.docx
《数字钟课程设计报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《数字钟课程设计报告Word文档格式.docx(39页珍藏版)》请在冰豆网上搜索。
(5)设计一个秒表,显示1%秒、60秒、手动停止,手动清零;
(6)设计一个倒计时,显示小时、分钟、秒、%1秒,可清零,可设置起始时间。
2设计分析及系统方案设计
系统总共有5个状态,分别对应设计要求中的
(1)24小时计数器
(2)时钟校准
(3)闹铃
(4)倒计时
(5)秒表
程序开始利用50MHz的时钟分别构造1Hz的时钟和100Hz的时钟。
先用50MHz时钟构造模500000计数器,用作分频产生100HZ信号,然后用100HZ信号构造模100计数器,用作分频产生1HZ信号,从而构造出周期是1秒和0.01秒的时钟。
(1)时间显示
此部分是用1HZ的时钟驱动秒的个位,然后通过进位关系分别带动其余5位时间,从而完成时间显示功能。
当清零位置‘0’时,时间一直显示为0。
(2)手动校时
此部分通过三个DE2的KEY按键来实现。
第一个是状态转换按键,通过它
来将状态转换到校时状态;
第二个是校准位置选择按键,通过它来选择此时校准哪一位;
第三个是对所选位置进行加一的按键。
设置好时间之后可以通过两个开关分别将设置好的时间送到正常显示模块和倒计时模块。
(3)闹铃功能
此部分通过和手动校时部分相同的操作过程来设置闹铃,系统提供一个可以打开和关闭闹铃的开关。
闹铃部分的信号是一个单独的信号,对该信号的设置并不影响时钟的正常运行。
当闹铃的小时、分钟和秒的信号分别和时钟的小时、分钟和秒的信号对应相等时,闹铃启动,进行30秒的闹铃提醒。
(4)零点报时
在正常显示24小时的状态中,当时间信号运行到23:
59:
50时,开始零点报时,程序中以驱动绿色LED灯亮来代表。
(5)秒表功能
此部分由100HZ的时钟驱动%1秒位,通过进位关系分别带动其余7位时间完成计时功能。
秒表的信号是一个单独的信号,使用秒表并不影响时钟的正常运行。
对秒表可以进行清零和暂停操作,通过两个开关来实现。
(6)倒计时功能
此部分就是24小时正常显示模块的逆过程。
用100HZ的时钟驱动%1秒的个位,然后通过退位关系分别带动其余7位完成倒计时功能。
倒计时的信号为独立的信号,使用倒计时并不影响时钟的正常运行。
倒计时设有清零位,用开关控制。
数字钟原理框图如下:
3系统以及模块硬件电路设计
(1)输入信号
clk0:
系统时钟(50MHZ)
state:
状态转换按键
positionselect:
位置选择按键
jiayi:
校准、设闹钟时对所选的位进行加一的按键
queding:
校时之后的确定开关
queding1:
设置倒计时之后再确定开关
kainaozhong:
闹钟开关控制
qingling:
秒表清零开关
zanting:
秒表暂停开关
qingling1:
正常显示的清零开关
qingling2:
倒计时的清零开关
(2)输出信号
输出到数码管显示:
bighour:
outstd_logic_vector(6downto0);
--时针十位
smallhour:
--时针个位
bigminute:
--分针十位
smallminute:
--分针个位
bigsecond:
--秒针十位
smallsecond:
--秒针个位
bigpercentsecond:
--%1秒十位
smallpercentsecond:
--%1秒个位
lednaozhong:
LED代表闹铃输出
baoshi:
零点报时指示灯1
baoshi1:
零点报时指示灯2
开发系统模式以及管脚定义如下:
4系统的VHDL设计
---------------------------------------------------
--------------------------定义库
---------------------------------------------------
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
--------------------------定义实体
entityhomeworkis
port(
---------------------------------------------
--------------------输入信号
---------------------------------------------
--1/系统时钟
clk0:
instd_logic;
--2/状态转换按键
state:
--3/校准时进行位置选择的按键
positionselect:
--4/校准、设闹钟时对所选的位进行加一的按键
jiayi:
--5/校时之后确定开关(赋给正常显示模块)
queding:
--6/设置倒计时之后再确定开关
queding1:
--7/闹钟开关控制
kainaozhong:
--8/秒表清零开关
qingling:
--9/秒表暂停开关
zanting:
--10/正常显示的清零开关
qingling1:
--11/倒计时的清零开关
qingling2:
-----------------------------------------------------------------
-----------------------------------------输出信号
-----------------------------------------------------------------
-----------------------------------------输出到数码管显示
bighour:
--LED代表闹铃输出
lednaozhong:
outstd_logic_vector(17downto0);
--零点报时指示灯1
baoshi:
outstd_logic_vector(7downto0);
--零点报时指示灯2
baoshi1:
outstd_logic
);
end;
-----------------------------------------------------------------------
-----------------------------------定义结构体
-----------------------------------------------------------------------
architectureshuzizhongofhomeworkis
-------------产生100HZ信号时的计数器
signalcnt0:
integerrange0to499999;
-------------产生1HZ信号时的计数器
signalcnt1:
integerrange0to99;
-------------100HZ信号
signalclk1:
std_logic;
-------------1HZ信号
signalclk2:
--------送数码管显示的时针,分针,秒针,%1秒信号
signalbh:
std_logic_vector(3downto0);
signalsh:
signalbm:
signalsm:
signalbs:
signalss:
signalbps:
signalsps:
---------------------状态为"
000"
时的时钟信号(正常显示)
signalbh0:
signalsh0:
signalbm0:
signalsm0:
signalbs0:
signalss0:
-------------------状态为"
001"
时的时钟信号(校准时)
signalbh1:
signalsh1:
signalbm1:
signalsm1:
signalbs1:
signalss1:
--------------状态为"
010"
时的时钟信号(设置闹钟时)
signalbh2:
signalsh2:
signalbm2:
signalsm2:
signalbs2:
signalss2:
--------状态为"
011"
时的时钟信号(设置倒计时时)
signalbh3:
signalsh3:
signalbm3:
signalsm3:
signalbs3:
signalss3:
signalbps3:
signalsps3:
100"
时的时钟信号(设置秒表)
signalbh4:
signalsh4:
signalbm4:
signalsm4:
signalbs4:
signalss4:
signalbps4:
signalsps4:
---------------------------------表示状态转换时的信号
signalstatesignal:
std_logic_vector(2downto0);
---------------------------------表示位置选择时的信号
signalpositionselectsignal:
---------------------------------程序开始
begin
---------------------------------状态转换
-------statesignal="
-->
正常计时
校准
闹钟
倒计时
秒表
process(state)
begin
if(state'
eventandstate='
1'
)then
if(statesignal="
statesignal<
="
;
else
=statesignal+1;
endif;
endprocess;
----------------------------------校时时的位置选择
--------positionselectsignal="
101"
->
秒个位
秒十位
分个位
分十位
时个位
时十位
process(positionselect)
if(positionselect'
eventandpositionselect='
if(positionselectsignal="
positi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 课程设计 报告