




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、、系統功能概述一)、系統實現的功能:1、具有“時”、“分”、“秒”的十進制數字顯示(小時從00 23)。2、具有手動校時、校分、校秒的功能。3、有定時和鬧鐘功能,能夠在設定的時間發出鬧鈴聲。的信號,4、能進行整點報時。從 59分 50秒起,每隔 2秒發一次低音“嘟”連續 5 次,最后一次為高音“嘀”的信號。二)、各項設計指標:1、顯示部分采用的6個LED顯示器,從高位至低位分別顯示時、分、秒。2、有一個設置調鬧鐘定時時間、正常時間的按鈕,選擇調的對象。3、有三個按鈕分別調時、分、秒的時間。4、有一個按鈕用作開啟 / 關閉鬧鈴。5、另外需要兩個時鐘信號來給系統提供脈沖信號,使時鐘和鬧鐘正常工作,
2、分別為1Hz、1kHz的脈沖。二、系統組成以及系統各部分的設計1、系統結構描述 / 要求:系統(或頂層文件)結構描述,各個模塊(或子程序)的功能描述;一) 系統的頂層文件:1、 頂層文件圖:(見下頁)2、 各模塊的解釋:1)、7個輸入量 clk_1khz 、clk_1hz 、key_slt 、key_alarm 、 sec_set 、 min_set 、hour_set :其中 clk_1khz 為鬧鈴模塊提供時鐘,處理后能產生“嘟” 、“嘀”和變化key_sltsec_set 、的鬧鈴聲音; clk_1hz 為計時模塊提供時鐘信號,每秒計數一次; 選擇設置對象: 定時或正常時間; key_a
3、larm 能夠開啟和關閉鬧鈴;min_set 、hour_set 用于設置時間或定時,與 key_slt 相關聯。各按鍵輸出 為脈沖信號。(2) 、CNT60_A_SE模塊:這個模塊式將 clk_1hz 這個時鐘信號進行 60 進制計數,并產生一個分鐘的觸發信號。該模塊能將當前計數值實時按BCD碼的格式輸出。將該輸出接到兩位LED數碼后能時時顯示秒的狀態通過 alarm_clk 可以選擇設置對象為時間還是定時值。在設置時間模式上,key 上的一個輸入脈沖可以將 clk的輸入信號加一。在設置定時模式上,key 上的脈沖只修改定時值,不影響時間脈沖 clk 的狀態。同時該模塊具有兩個輸出口 out
4、_do 、 out_di 來觸發整點報時的 “嘟”、“嘀” 聲音。(3) 、CNT6O_A_MIN模塊:這個模塊式將CNT60_A_SE的輸出信號進行60進制計數,并產生一個時位的觸發信號。該模塊能將當前計數值實時按BCD碼的格式輸出。將該輸出接到兩位LED數碼后能時時顯示分的狀態。通過alarm elk可以選擇設置對象為時間還是定時值。 在設置時間模式上, key 上的一個輸入脈沖可以將 clk的輸入信號加一。在設置定時模式上, key 上的脈沖只修改定時值,不影響 時間脈沖 clk 的狀態。同時該模塊具有三個輸出口 out_do 、 out_di 、 out_alarm 來觸發整點報時的“
5、嘟”、“嘀”、鬧鈴聲音。(4) 、CNT24_A_HOUR塊:這個模塊式將CNT60AMIN勺輸出信號做24進制計數。該模塊能將當前計數值實時按BCD碼的格式輸出。將該輸出接到兩位LED數碼后能時時顯示時勺狀態。通過 alarm_clk 可以選擇設置對象為時間還是定時值。在設置時間模式上, key 上的一個輸入脈沖可以將 clk 的輸入信號加一。在設置定時模式上, key 上的脈沖只修改定時值,不影響時間脈沖 clk 的狀態。同時該模塊具有一個輸出口 out_alarm 來觸發整點報時的鬧鈴聲音。(5) 、PWM_Ol模塊:該模塊為PWM產生模塊,通過EN可幵啟和關閉PWMt出。模塊根據CLK
6、信號二分頻產生的高低音,并組合,能輸出三種聲音狀態嘟”、“嘀”、鬧鈴。而該三種聲音要被秒、分、時的輸出觸發才能輸出PWM。(二)系統各個模塊的VHDL程序:(1)、CNT60_A_SE模塊:程序源代碼如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt60_a_sec isport(clk,clr,enb: in std_logic;-clk:時鐘輸入信號,clr :清零端,enb:使能端key: in std_logic;- 輸入按鍵脈沖,調整鬧鈴定時或時間alarm_cl
7、k: in std_logic;-1:alarm0:clk- 設置模式選擇:鬧鈴調節模式、時間調節模式qout_sl: out std_logic_vector(3 downto 0); -顯示輸出秒的低位qout_sh: out std_logic_vector(3 downto 0);-顯示輸出秒的高位co: out std_logic; -進位輸出,觸發分計數模塊out_do: out std_logic;-在整點報時中輸出“嘟”觸發信號out_di: out std_logic -在整點報時中輸出“嘀”觸發信號);end;architecture a of cnt60_a_sec is
8、 signal qout2_l:std_logic_vector(3 downto 0);signal qout2_h:std_logic_vector(3 downto 0);signal alarm_l:std_logic_vector(3 downto 0);signal alarm_h:std_logic_vector(3 downto 0);signal clk1,clk2,tclk,aclk,ac_slt: std_logic;begin process(alarm_clk) - 當 該端口輸入一個脈沖時,修改設置模式:時間調整或鬧鈴模式 切換beginif alarm_clkev
9、ent and alarm_clk=1 thenif ac_slt=0 then-如果為定時模式,將改為鬧鈴模式ac_slt=1;elseac_slt=0;end if;end if;end process;process(key,clk,ac_slt)-根據設置模式,處理 key 上的脈沖信號beginif ac_slt=0 then -時間調整模式aclk=0;if clk=1 and key=1 then -clk=1則 tclk=0 ,通過挖洞方式添加一個脈沖tclk=0;elsif clk=0 and key=1 then -clk=0,則 tclk=1, 產生一個高電平,添加一脈沖
10、tclk=1;elsetclk=clk;end if;elsif ac_slt=1 then -鬧鈴調整模式tclk=clk;aclk=key; -key 上的脈沖直接修改鬧鈴定時值end if;end process;process(tclk,clr,enb)-60 進制計數,個位、十位放在兩個臨時變量中, 表示秒的狀態beginif clr=1 then-clearing works at the state of high voltageqout2_l=0000;qout2_h=0000;elsif tclkevent and tclk=1 thenif enb=1 then-enabl
11、e works at high voltageif qout2_l=1001 and qout2_h=0101 thenqout2_l=0000;-afull mode is completed and acarryout is generatedqout2_h=0000;elsif qout2_l=1001 thenqout2_l=0000;qout2_h=qout2_h+1;elseqout2_l=qout2_l+1;- in process of countingend if;end process;end if;end if;process(aclk,clr,enb)-修改鬧鈴的定時值
12、beginif clr=1 then-clearing works at the state of high voltagealarm_l=0000;alarm_h=0000;elsif aclkevent and aclk=1 thenif enb=1 then-enable works at high voltageif alarm_l=1001 and alarm_h=0101 thenalarm_l=0000;-afull mode is completed and acarryout is generatedalarm_h=0000;elsif alarm_l=0101 thenal
13、arm_l=0000;alarm_h=alarm_h+1;elsealarm_l=alarm_l+1;- in process of countingend if;產生進位 , 顯end if;process(qout2_l,qout2_h,alarm_l,alarm_h,alarm_clk)-示時間或鬧鈴定時值end if;end process;beginif qout2_l=0000 and qout2_h=0000 thenco=1;elseco=0;end if;if ac_slt=0 then -顯示時間qout_sl=qout2_l;qout_sh=qout2_h;else顯示定
14、時值qout_sh=alarm_h;qout_sl=alarm_l;end if;end process;process(qout2_l,qout2_h) -根據秒的狀態輸出“嘟” 、“嘀”觸發信號beginif qout2_h=0101 thenif qout2_l=0000 thenout_do=1;elsif qout2_l=0010 thenout_do=1;elsif qout2_l=0100 thenout_do=1;elsif qout2_l=0110 thenout_do=1;elsif qout2_l=1000 thenout_do=1;elseout_do=0;end if
15、;elsif qout2_h=0000 thenif qout2_l=0000 thenout_di=1;out_do=0;elseout_di=0;end if;elseout_do=0;out_di=0;end;(2)、CNT60_A_Mir模塊:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt60_a_min isport(clk,clr,enb: in std_logic; -clk:時鐘輸入信號,clr :清零端,enb:使能端key: in std_logic; -
16、輸入按鍵脈沖,調整鬧鈴定時或時間alarm_clk: in std_logic; -1:alarm 0:clk- 設置模式選擇:鬧鈴調節模式、時間調節模式qout_ml: out std_logic_vector(3 downto 0); -顯示輸出分的低位qout_mh: out std_logic_vector(3 downto 0); -顯示輸出分的高位co: out std_logic; -進位輸出,觸發時計數模塊out_alarm:out std_logic;-鬧鈴觸發信號,時間到后輸出高電平觸發鬧鈴out_do,out_di: out std_logic- 在整點報時中輸出“嘟”
17、“嘀”觸發信);end;architecture a of cnt60_a_min is signal qout2_l:std_logic_vector(3 downto 0);signal qout2_h:std_logic_vector(3 downto 0);signal alarm_l:std_logic_vector(3 downto 0);signal alarm_h:std_logic_vector(3 downto 0);signal clk1,clk2,tclk,aclk,ac_slt: std_logic;beginprocess(alarm_clk) -當 該端口輸入一個
18、脈沖時,修改設置模式:時間調整或鬧鈴模式 切換beginif alarm_clkevent and alarm_clk=1 thenif ac_slt=0 then-如果為定時模式,將改為鬧鈴模式ac_slt=1;elseac_slt=0;end if;end if;end process;process(key,clk,ac_slt) -根據設置模式,處理 key 上的脈沖信號beginif ac_slt=0 then -時間調整模式aclk=0;if clk=1 and key=1 then-clk=1則 tclk=0 ,通過挖洞方式添加一個脈沖tclk=0;則 tclk=1, 產生一個高
19、elsif clk=0 and key=1 then-clk=0,電平,添加一脈沖tclk=1;elsetclk=clk;end if;elsif ac_slt=1 then -鬧鈴調整模式tclk=clk;aclk=key; -key上的脈沖直接修改鬧鈴定時值end if;end process;process(tclk,clr,enb)-60 進制計數,個位、十位放在兩個臨時變量中,表示分的狀態beginif clr=1 then-clearing works at the state of high voltageqout2_l=0000;qout2_h=0000;elsif tclke
20、vent and tclk=1 thenif enb=1 then-enable works at high voltageif qout2_l=1001 and qout2_h=0101 thenqout2_l=0000;-afull mode is completed and acarryout is generatedqout2_h=0000;elsif qout2_l=1001 thenqout2_l=0000;qout2_h=qout2_h+1;elseqout2_l=qout2_l+1;- in process of countingend if;end if;end if;end
21、 process;process(aclk,clr,enb) -修改鬧鈴的定時值beginif clr=1 then-clearing works at the state of high voltagealarm_l=0000;alarm_h=0000;elsif aclkevent and aclk=1 thenif enb=1 then-enable works at high voltageif alarm_l=1001 and alarm_h=0101 thenalarm_l=0000;-afull mode is completed and acarryout is generat
22、edalarm_h=0000;elsif alarm_l=0101 thenalarm_l=0000;alarm_h=alarm_h+1;elseend if;end if;end if;end process;alarm_l=alarm_l+1;- in process of countingprocess(qout2_l,qout2_h,alarm_l,alarm_h,alarm_clk) -產生進位 , 顯示時間或鬧鈴定時值 of high voltagebeginif qout2_l=0000 and qout2_h=0000 thenco=1;elseco=0;end if;if a
23、c_slt=0 thenqout_ml=qout2_l;qout_mh=qout2_h;elseqout_mh=alarm_h;qout_ml=alarm_l;end if;end process;process(qout2_l,qout2_h,alarm_l,alarm_h)-判斷定時值與時間值相等,輸出鬧鈴觸發信號beginif qout2_l=alarm_l and qout2_h=alarm_h thenout_alarm=1;elseout_alarm=0;end if;end process;process(qout2_l,qout2_h) -根據分的狀態輸出“嘟” 、“嘀”觸發信
24、號beginif qout2_l=1001 and qout2_h=0101 thenout_do=1;elseout_do=0;end if;if qout2_l=0000 and qout2_h=0000 thenout_di=1;elseout_di=0;end if;end process;end;(3)、CNT24_A_HOUR塊:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt24_a_hour isport(clk,clr,enb: in std_logic; -
25、clk:時鐘輸入信號,clr :清零端,enb:使能端key: in std_logic; -輸入按鍵脈沖,調整鬧鈴定時或時間alarm_clk: in std_logic;-1:alarm 0:clk- 設置模式選擇:鬧鈴調節模式、時間調節模式qout_hl: out std_logic_vector(3 downto 0); -顯示輸出時的低位qout_hh: out std_logic_vector(3 downto 0); -顯示輸出時的高位co: out std_logic; -進位輸出out_alarm:out std_logi-鬧鈴觸發信號輸出);end;architecture
26、 a of cnt24_a_hour issignal qout2_l:std_logic_vector(3 downto 0);signal qout2_h:std_logic_vector(3 downto 0);signal alarm_l:std_logic_vector(3 downto 0);signal alarm_h:std_logic_vector(3 downto 0);signal clk1,clk2,tclk,aclk,ac_slt: std_logic;begin process(alarm_clk) - 當 該端口輸入一個脈沖時,修改設置模式:時間調整或鬧鈴模式 切
27、換beginif alarm_clkevent and alarm_clk=1 thenif ac_slt=0 then-如果為定時模式,將改為鬧鈴模式ac_slt=1;elseac_slt=0;end if;end if;end process;process(key,clk,ac_slt) -根據設置模式,處理 key 上的脈沖信號beginif ac_slt=0 then -時間調整模式aclk=0;if clk=1 and key=1 then-clk=1則 tclk=0 ,通過挖洞方式添加一個脈沖則 tclk=1, 產生一個高tclk=0;elsif clk=0 and key=1
28、then-clk=0,電平,添加一脈沖tclk=1;elsetclk=clk;end if;elsif ac_slt=1 then -鬧鈴調整模式tclk=clk;aclk=key; -key上的脈沖直接修改鬧鈴定時值end if;end process;process(tclk,clr,enb)-24 進制計數,個位、十位放在兩個臨時變量中, 表示時的狀態beginif clr=1 then-clearing works at the state of high voltageqout2_l=0000;qout2_h=0000;elsif tclkevent and tclk=1 theni
29、f enb=1 then-enable works at high voltageif qout2_l=1001 thenqout2_l=0000;-afull mode is completed and acarryout is generatedqout2_h=qout2_h+1;elsif qout2_l=0011 and qout2_h=0010 thenqout2_l=0000;qout2_h=0000;elseqout2_l=qout2_l+1;- in process of countingend if;end if;end if;end process;process(aclk
30、,clr,enb) -修改鬧鈴的定時值beginif clr=1 then-clearing works at the state of high voltagealarm_l=0000;alarm_h=0000;elsif aclkevent and aclk=1 thenif enb=1 then-enable works at high voltageif alarm_l=1001 thenalarm_l=0000;-afull mode is completed and acarryout is generatedalarm_h=qout2_h+1;elsif alarm_l=0011
31、 and alarm_h=0010 thenalarm_l=0000;alarm_h=0000;elsealarm_l=alarm_l+1;- in process of countingend if;end if;end if;產生進位 , 顯end process;process(qout2_l,qout2_h,alarm_l,alarm_h,alarm_clk) -示時間或鬧鈴定時值 of high voltage beginif qout2_l=0000 and qout2_h=0000 thenco=1;elseco=0;end if;if ac_slt=0 thenqout_hl=
32、qout2_l;qout_hh=qout2_h;elseqout_hh=alarm_h;qout_hl=alarm_l;end if;end process;定時值與時間值相等,則process(qout2_l,qout2_h,alarm_l,alarm_h)-輸出鬧鐘觸發信號beginif qout2_l=alarm_l and qout2_h=alarm_h thenout_alarm=1;elseout_alarm=0;end if;end process;end;2、系統以及各個模塊的仿真波形1)、系統仿真波形:注:由于下面的模塊仿真存在毛刺,導致系統的仿真圖有一定的問題。(2) 、C
33、NT60_A_SE模塊:注:在 50、 52、 54、 56、 58 處有嘟觸發輸出, 00處有嘀觸發輸出等。(3) 、CNT60_A_Mir模塊:注:本圖展示了按鍵調節時間值和定時值的仿真波形(部分仿真圖)注:該模塊的仿真波形圖,具有嘟、嘀聲音觸發輸出,定時與時間相等時有鬧鈴觸發輸出等。(4) 、CNT24_A_HOUR塊注:該模塊的仿真圖,包含按鍵調整時間、定時值,鬧鐘觸發輸出等。(5)、PWM_OU模塊(分三段剪切下來的,展示了三種聲音的效果)(1)、“嘟”、“嘀”輸出波形(只有在 en有脈沖,打幵PWM后,才有效)注:在打幵輸出后,當兩路嘟、嘀觸發輸入同時有效時分別輸出嘟、嘀聲音。當兩路鬧鈴觸發同時有效時幵始鬧鈴聲音的輸出。注:鬧鈴輸出的變化情況(“嘀”、“嘟”交替發聲)注:鬧鈴輸出的變化情況。3、下載時選擇的幵發系統模式以及管腳定義表1 GW48-CK開發系統工作模式:3接口名稱類型(輸入/輸出)結構圖上的信號名引腳號說明
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年體育休閑廣場項目初步設計評估及景觀設計報告
- 藥品營銷團隊管理制度
- 藥品門店日常管理制度
- 藥店醫療器材管理制度
- 藥店離職衛生管理制度
- 菜肴加工衛生管理制度
- 設備團隊人員管理制度
- 設備工具耗材管理制度
- 設備機房值班管理制度
- 設備電源安全管理制度
- 甲狀腺癌手術治療護理查房
- 2024-2030年中國礦用錨桿行業發展現狀需求分析報告
- 護士角色轉換與適應
- 《數據資產會計》 課件 第三章 數據資產的確認和計量
- 2024年-2025年農作物植保員職業技能考試題及答案
- 拍賣合同模板三篇
- 2023北京西城區初二期末(下)物理試卷及答案
- 2023-2024學年山東省煙臺市高一下學期期中生物試題(解析版)
- 淺談機械設計制造及其自動化在飛機發動機中的應用
- 2024年西北工業大學附中丘成桐少年班初試數學試題真題(含答案詳解)
- 北京東城五中2025屆高三(最后沖刺)歷史試卷含解析
評論
0/150
提交評論