當前位置:編程學習大全網 - 圖片素材 - 求電子鐘課程設計報告

求電子鐘課程設計報告

EDA課程設計報告

電子鐘

組員

呂衛偉:200840720126

張奎:200840830133

侯從彬:200840830133

萬遠程:200840830133

李傳迪:200840830133

楊占勝:200840830133

指導教師:陳衛兵

壹、電子鐘的設計原理:

電子鐘主要有四個模塊組成: 掃描電路、計數模塊電路、BCD

碼轉換電路、顯示器驅動電路。

由CP送入1HZ的時鐘信號,並輸入計數60的分頻計秒電路。在計數至6o瞬間. 進位至計數60的分頻計分分頻使分頻計分電路加1。而計秒電路也消除為0重新再計秒。計分電路與計時電路功能同上。計數輸出的二進制數通過BCD碼轉換電路將其轉為BCD碼,再通過掃描電路選擇輸出的BCD碼。送至顯示驅動電路.再將其結果轉換成相應的十進制數在七段數碼顯示管上顯示.並通過掃描電路控制數碼管的顯示。最終在數碼顯示管上可以看到秒,分,時的顯示結果

二、設計實現

本程序總***有十二個部分依次是產生脈沖信號、60秒計數器、60分計數器、24時計數器、毫秒計數器、秒計數器、月份判斷、年月日。

設計過程:仿真圖和源程序

(1).秒鐘模塊

秒是這次電子鐘設計的最底層模塊.其核心是壹個60進制計數器,以外來時鐘信號作為其觸發時鐘信號,當外來信號進入clk時鐘信號端,其內部的60進制計數器便開始工作,對信號源進行計數.計數結果由count輸出至數碼管顯示秒鐘時間.當計數到60時,其值置零,並向外輸出壹個進位信號C,這個進位信號便為下個分鐘模塊的輸入時鐘信號

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity miao is

port(rst,clk:in std_logic;

d:in std_logic_vector(1 downto 0);

clk1:out std_logic);

end miao;

architecture do of miao is

signal d1:std_logic_vector(1 downto 0);

begin

process(clk,d)

begin

if rst='1' then

d1<="00";

ELSif clk'event and clk='1'then

if d1="11"then

d1<=d;clk1<='1';

else d1<=d1+1; clk1<='0';

end if;

end if;

end process;

end do;

(2).分鐘模塊

分鐘模塊核心也是壹個60進制計數器,其功能的實現是將秒模塊的進位信號進行計數,計數結果由dout輸至數碼管顯示,當計數至60是數值置零,並向外輸出進位信號c.

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity fen is

port(zs1,clk2,rst1:in std_logic;

d1: in std_logic_vector(5 downto 0);

fe :out std_logic_vector(5 downto 0);

clk3:out std_logic);

end fen;

architecture do of fen is

signal d0:std_logic_vector(5 downto 0);

begin

process(clk2,d1,zs1,rst1)

begin

if rst1='1'then

d0<="000000";

elsif clk2'event and clk2='1'then

if d0="111111"then

clk3<='1';d0<="000000";

elsif zs1='1'then

d0<=d1;

else d0<=d0+1;clk3<='0';

end if;

end if;

end process;

fe<=d0;

end do;

(3)時、星期計數模塊

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity shi is

port(clk5 :in std_logic;

xs:out std_logic_vector(4 downto 0);

xinqi:out std_logic_vector(2 downto 0));

end shi;

architecture do of shi is

signal d3:std_logic_vector(4 downto 0);

signal d4:std_logic_vector(2 downto 0);

signal clk6:std_logic;

begin

r1:process(clk5)

begin

if clk5'event and clk5='1'then

if d3="11000"then

d3<="00000";clk6<='1';

else d3<=d3+1;clk6<='0';

end if;

end if;

end process r1;

r2: process(clk6)

begin

if clk6'event and clk6='1'then

if d4="111"then

d4<="001";

else d4<=d4+1;

end if;

end if;

end process r2;

xs<=d3;xinqi<=d4;

end do;

(4)年月日計數

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity haos is

port(clk8,zr,zy:in std_logic;

g2:in std_logic_vector(4 downto 0);

g1: in std_logic_vector(3 downto 0);

ri :out std_logic_vector(4 downto 0);

yue: out std_logic_vector(3 downto 0));

end haos;

architecture do of haos is

signal clk9:std_logic;

signal w1:std_logic_vector(4 downto 0);

signal w2:std_logic_vector(3 downto 0);

begin

r1: process(clk8,zr,g2)

begin

if zr='1'then

w1<=g2;

elsif clk8'event and clk8='1'then

if w1="11110"then

w1<="00001";clk9<='1';

else w1<=w1+1;clk9<='0';

end if;

end if;

end process r1;

r2:process(clk9)

begin

if zy='1'then

w2<=g1;

elsif clk9'event and clk9='1'then

if w2="1100"then

w2<="0001";

else w2<=w2+1;

end if;

end if;

end process r2;

ri<=w1;yue<=w2;

end do;

最後將這幾個模塊(GDF)連接壹起就可以了.

根據實際情況做引腳鎖定,引腳表見附錄。

課程設計心得

設計語言主要是采用VHDL語言的自頂向下的設計方法。EDA中,自頂向下的設計方法,就是在整個設計流程中各設計環節逐步求精的過程,應用VHDL運行自頂向下的設計,就是使用VHDL模型在所有綜合級別上對硬件進行說明、建模和仿真測試。頂層文件采用了原理圖的方法設計,使各模塊之間的層次關系清晰。

在多功能電子鐘實際設計過程中,所有的模塊都是通過不同進制的計數器來實現其主要功能的,各模塊之間是通過進位信號連接在壹起的。前壹級的進位信號作為下壹級的計數clk信號,通過層次關系使設計思路清晰壹開始由於程序的設計考慮置位調整。沒有好的思路,走了不少彎路。後來(有人)想到了在程序裏設置總控制端,於是解決了問題。和同學的合作使我的程序更加優化。

通過這次課設,也給我帶來以下壹些收獲:

1、 進壹步熟悉maxplus II軟件的使用和操作方法,以及硬件實現時的下載方法與運行方法;

2、 對VHDL語言的自頂向下設計方法有了進壹步的認識;在底層文件具備的條件下,使用原理圖可以使設置更加簡單。使程序清晰,增加可讀性。

3、 鍛煉了我獨立思考和解決問題的能力,也認識到團隊合作的重要性。

4、 熟悉了寫電子設計試驗報告的方法,為寫畢業設計論文奠定了壹定的基礎。

5、 當然本次課程設計也存在壹些不足之處,月的功能沒有設置好,很多擴展功能沒有實現,比如說秒表,鬧鈴等等

謝辭

首先,在這裏感謝學校給我們安排了這次課設,使我們有壹個可以自己動手的機會,通過動手,進壹步熟悉自己所學的理論知識,體會自己動手得出結果的那種感覺。

再次,在這要感謝我們的指導老師,陳衛兵老師和實驗室老師在我們的實踐過程中不提自己的辛苦,耐心回答我們所問的所有問題,幫助我們解決壹些程序和調試,在這表示感謝!

感謝這次課程設計中給我幫助的同學,是妳們的幫助,我才順利的完成了課程設計任務。

謝謝妳們的幫助!

參考文獻

[1]盧毅.賴傑. VHDL與數字電路設計. 北京:科學出版社, 2001

[2]潘松. VHDL使用教程. 成都:電子科技出版社,2000

[3]黃繼業. EDA技術實用教程.科學出版社,2002

[4]徐誌軍.CPLD/FPGA的開發與應用.北京電子工業出版社,2002

[5]曾繁泰,侯亞寧,崔元明.可編程器件應用導論,2001

  • 上一篇:gt630m能玩什麽遊戲?
  • 下一篇:三國群英傳Ⅵ秘籍
  • copyright 2024編程學習大全網