多功能數字鐘報告及VHDL源程式

2021-08-13 20:24:03 字數 3127 閱讀 8563

一、系統功能概述

功能描述;

1. 完成秒/分/時的依次顯示並正確計數;

2. 實現整點報時,有揚聲器發出報時聲音;

3. 時間設定,在計時狀態下按下set鍵,進入校時狀態,再按下s1鍵實現秒校驗,按下s2鍵實現分計時,按下s3鍵實現時校驗。

4. 實現12/24小時轉換,按下change鍵,進入24小時計時;

二、系統組成以及系統各部分的設計

1、系統結構描述

本設計未採用模組構成電路圖結構,也未用頂層檔案,而由簡單的vhdl語句構成.。

首先 ,進入程序後由if語句判斷啟動鍵是否有效,當啟動鍵有效時,再判斷秒校時鍵是否有效,然後依次判斷分校時,時校時。當校時鍵有效時,時間設定按脈衝依次計時,到設定值後斷開校時鍵,最後斷開啟動校時鍵,即實現時間的設定。

計時功能由if語句巢狀實現,外層實現秒計時,內層依次實現分計時,時計時。最後將變數值傳給輸出埠。

整點報時功能的實現,通過判斷時、分、秒高低位都為0來輸出高電位,否者,輸出低電位。

2.設計源程式

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity shuzizhong is

port(clk,set,change,s1,s2,s3:in std_logic;

second1,second2,minite1,minite2,hour1,hour2:out std_logic_vector(3 downto 0);

cout:out std_logic);

end entity;

architecture one of shuzizhong is

begin

pro1:process(clk,set,s1,s2,s3,change)

variable msecond1,msecond2,mminite1,mminite2,mhour11,mhour12,mhour21,mhour22:std_logic_vector(3 downto 0);

begin

if clk'event and clk='1' then

if set='1' then啟動校驗

if s1='1'

then msecond1:=msecond1+1;

if msecond1="1010"

then msecond1:="0000";

msecond2:=msecond2+1;

if msecond2="0110"

then msecond2:="0000";

end if;

end if;

end if秒校驗

if s2='1'

then

mminite1:=mminite1+1;

if mminite1="1010"

then mminite1:="0000";

mminite2:=mminite2+1;

if mminite2="0110"

then mminite2:="0000";

end if;

end if;

end if分校驗

if s3='1' then

mhour11:=mhour11+1;

mhour21:=mhour21+1;

if mhour11="1010" then mhour11:="0000";

mhour12:=mhour12+1;

end if;

if mhour11="0011" and mhour12="0001"

then mhour11:="0001";mhour12:="0000";

end if;

if mhour21="1010" then mhour21:="0000";

mhour22:=mhour22+1;

end if;

if mhour21="0100"and mhour22="0010"

then

mhour21:="0000";mhour22:="0000";

end if;

end if;-------時校驗

else msecond1:=msecond1+1;-----正常計時工作

if msecond1="1010"

then msecond1:="0000";

msecond2:=msecond2+1;

if msecond2="0110"

then msecond2:="0000";

mminite1:=mminite1+1;

if mminite1="1010"

then mminite1:="0000";

mminite2:=mminite2+1;

if mminite2="0110"

then mminite2:="0000";

mhour11:=mhour11+1;

mhour21:=mhour21+1;

if mhour11="1010" then mhour11:="0000";

mhour12:=mhour12+1;

end if;

if mhour11="0011" and mhour12="0001"

then mhour11:="0001";mhour12:="0000";

end if;-------12小時制

if mhour21="1010" then mhour21:="0000";

mhour22:=mhour22+1;

end if;

if mhour21="0100"and mhour22="0010"

then mhour21:="0000";mhour22:="0000";

end if24小時制

end if;

end if;

end if;

end if;

if (msecond1="0000") and (msecond2="0000") and (mminite1="0000") and (mminite2="0000")

then cout<='1';

else cout<='0';

end if整點報時

多功能數字鐘的設計

課題 多功能數字鐘的設計 一 設計任務 使用硬體描述語言,在cpld fpga上實現乙個多功能數字鐘。二 設計要求 除按鍵 led 揚聲器 時鐘訊號外,整個數字鐘的功能要求在一塊晶元上實現。a 具有時,分,秒,計數顯示功能,以24小時迴圈計時 b 具有時間清零功能 c 具有小時 分鐘和秒鐘調整功能 ...

數字鐘設計報告

數電設計報告 課程名稱電子技術課程設計 課題名稱多功能數字鐘 專業電氣工程及其自動化 班級電氣109 班 學號姓名andry 指導老師李延平 審批2012年 5月 1日 目錄1.設計的任務與要求 2 1.1數字鐘的設計目的 2 1.2數字鐘的設計要求 2 1.3數字電子鐘的基本原理 2 2.實驗器材...

數字鐘實訓報告

矽湖職業技術學院 實訓報告 實訓題目 數字電子鐘的製作 姓名 張文濤 學號 090000544 班級 電氣09 專業 電氣自動化 所屬課程 電子技術應用 下 指導老師 朱陽燕 二零一零年十一月二十二日 實訓目錄 一.實訓專案1 二.實訓內容1 三.實訓地點2 四.實訓目的2 五.實訓器材2 六.實訓...