中南大學
指導老師: 張靜秋
姓名: 梁雪林
學號: 0909091925
專業班級:自動化0905
目錄一、設計內容簡介 2
二、設計要求 2
基本要求 2
提高部分要求 3
三、方案論證(整體電路設計原理) 3
四、各個模組設計原理 4
4.1 分頻電路模組設計 5
4.2 秒計時器模組設計 7
4.3 分計時器模組設計 9
4.4 小時計時器模組設計 11
4.5 報時模組設計 13
五、實驗中遇到問題及解決方法 20
六、結論 20
七、實驗心得 21
八、參考文獻 22
設計乙個數字鐘,可以完成00:00:00到23:59:59的計時功能,並在控制電路的作用下具有保持、清零、快速校時、快速校分、整點報時等功能。
我設計的電路在具有基本功能的基礎上,增加了下列功能:改變分頻比、不同整點不同報時等;
基本要求
1、能進行正常的時、分、秒計時功能;
2、分別由六個數碼管顯示時分秒的計時;
3、k1是系統的使能開關(k1=0正常工作,k1=1時鐘保持不變);
4、k2是系統的校分開關;
5、k3是系統的校時開關;
提高部分要求
1、使時鐘具有整點報時功能(當時鐘計到59』50」時開始
報時,四個不同整點發出不同聲音);
2、分頻比可變;
本實驗在實現實驗基本功能的基礎上,加入了整點報時等功能;
圖1為實驗功能方框圖:
圖1 實驗方框圖
數字計時器基本功能是計時,因此首先需要獲得具有精確振盪時間的脈振訊號,以此作為計時電路的時序基礎,實驗中可以使用的振盪頻率源為4khz,通過分頻獲得所需脈衝頻率(1hz,1khz,500hz)。為產生秒位,設計乙個模60計數器,對1hz的脈衝進行秒計數,產生秒位;為產生分位,通過秒位的進製產生分計數脈衝,分位也由模60計數器構成;為產生時位,用乙個模24計數器對分位的進製脈衝進行計數。整個數字計時器的計數部分共包括六位:
時十位、時個位、分十位、分個位、秒十位和秒個位。
顯示功能是通過數選器、解碼器、碼轉換器和7段顯示管實現的。因為實驗中只用乙個解碼顯示單元,7個7段碼(6個用於顯示時分秒,乙個顯示星期),所以通過4個7選一mux和乙個3-8解碼器配合,根據計數器的訊號進行數碼管的動態顯示。
清零功能是通過控制計數器清零端的電平高低來實現的。只需使清零開關按下時各計數器的清零端均可靠接入有效電平(本實驗中是低電平),而清零開關斷開時各清零端均接入無效電平即可。
校分校時功能由防抖動開關、邏輯閘電路實現。其基本原理是通過邏輯閘電路控制分計數器的計數脈衝,當校分校時開關斷開時,計數脈衝由低位計數器提供;當按下校分校時開通時,既可以手動觸發出發式開關給進製脈衝,也可以有恆定的1hz脈衝提供恆定的進製訊號,計數器在此脈衝驅動下可快速計數。為實現可靠調時,採用防抖動開關(由d觸發器實現)克服開關接通或斷開過程中產生的一串脈衝式振動。
保持功能是通過邏輯門控制秒計數器輸入端的1hz脈衝實現的。正常情況下,開關不影響脈衝輸入即秒正常計數,當按下開關後,使脈衝無法進入計數端,從而實現計時保持功能。
整點報時功能可以通過組合邏輯電路實現。當計數器的各位呈現特定的電平時,可以選通特定的與門和或門,將指定的頻率訊號送入蜂鳴器中,實現在規定的時刻以指定頻率發音報時。
總體的頂層原理圖如下:
一、原理圖:
二、源**:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity fenp is
port( clk : in std_logic;
clk1k : out std_logic;
clk500: out std_logic;
clk1hz:out std_logic
);end;
architecture one of fenp is
signal f1k:std_logic;
signal f500:std_logic;
signal f1:std_logic;
begin
p1:process(clk)
variable **t1:std_logic_vector(1 downto 0);
variable **t12:std_logic_vector(2 downto 0);
variable **t13:std_logic_vector(11 downto 0);
begin
if clk='1' and clk'event then
if **t1="11" then f1k<='1';**t1:="00"; --11-00=4 fen ping
else **t1:=**t1+1;f1k<='0111-000=8 fen ping
end if1111 1001 1111-0000 0000 0000=4000 fen ping
if **t12="111" then f500<='1';**t12:="000"; --11-00=4 fen ping
else **t12:=**t12+1;f500<='0111-000=8 fen ping
end if;
if **t13="111110011111" then f1<='1';**t13:="000000000000"; --11-00=4 fen ping
else **t13:=**t13+1;f1<='0111-000=8 fen ping
end if;
end if;
end process;
p2:process(f1k,f500,f1)
variable **t2:std_logic;
variable **t22:std_logic;
variable **t23:std_logic;
begin
if f1k'event and f1k='1' then
**t2:=not **t2;
if **t2='1' then clk1k<='1';
else clk1k<='0';
end if;
end if;
if f500'event and f500='1' then
**t22:=not **t22;
if **t22='1' then clk500<='1';
else clk500<='0';
end if;
end if;
if f1'event and f1='1' then
**t23:=not **t23;
if **t23='1' then clk1hz<='1';
else clk1hz<='0';
end if;
end if;
end process;
end;
三、 時序**圖:
四、功能說明
通過對輸入時鐘上公升沿進行計數,以計數的溢位值f1k、f500、f1的上公升沿對計數器輸出進行取反操作。從而可以對講計數頻率偶數次分頻,且輸出方波,占空比50%;
一、電路原理:
二、源**:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity second1 is
port( clk1s:in std_logic;
reset: in std_logic;
sec2,sec1:buffer std_logic_vector(3 downto 0);--miao gaodiwei
sec0:out std_logicmiao jinwei
);end second1;
architecture a of second1 is
begin
process(clk1s,reset)
begin
if reset='0' then --qing ling
sec1<="0000";
sec2<="0000";
sec0<='0';
elsif clk1s'event and clk1s='1' then
if (sec1="1001" and sec2="0101") then --jidao 59s
sec2<="0000";
sec1<="0000";
sec0<='1';
elsif (sec1="1001") then --jidao 9s
sec1<="0000";
sec2<=sec2+1;
sec0<='0';
else sec1<=sec1+1; --zhengchangjishu 1s
sec0<='0';
end if;
end if;
end process;
end;
三、時序**:
四、功能說明:
對輸入1hz的頻率進行計數,用reset進行復位清零;只有reset為高時才開始計數;輸出2組4位的bcd碼,用於數碼管顯示;達到59s時輸出進製訊號色sec0;
一、原理圖設計:
二、源**:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
中南大學c課程設計報告
中南大學 高階程式設計實踐 c 課程設計報告 設計題目教學裝置管理系統 指導老師 設計者專業班級 設計日期 一課題的基本內容和要求 二程式功能簡介 三主體內容 1 設計分析 2 程式整體結構 3 部分模組的結構 4 相關模組源程式 5 操作方法 6試驗結果 7設計體會 8 參考文獻 一基本內容和要求...
EDA課程設計實驗報告
課程設計報告 課程名稱數字系統與邏輯設計 課題名稱 16 16點陣顯示 專業通訊工程 班級1181 學號 201113120107 姓名肖浪 指導教師喬匯東吳德建 2013年 7月 2日 湖南工程學院 課程設計任務書 課程名稱數字系統與邏輯設計 課題 16 16點陣顯示 專業班級通訊工程1181 學...
中南大學數學院C課程設計報告
中南大學 c 課程設計 設計報告 題目 c 課程設計 學生姓名 學號專業班級數學類0901 指導老師袁修貴 數學科學與計算技術學院 2010年6月 一 實驗目的 內容 1.使用者任意輸入乙個年份以及該年的1月1日是星期幾,而後再輸入該年的任意乙個月份,由程式負責在螢幕上按照你所設計的格式顯示出這乙個...