版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第7章 綜合計時系統(tǒng)的設(shè)計與分析,7.1 系統(tǒng)設(shè)計要求 7.2 系統(tǒng)設(shè)計方案 7.3 主要VHDL源程序 7.4 系統(tǒng)仿真/硬件驗證 7.5 設(shè)計技巧分析 7.6 系統(tǒng)擴展思路,7.1 系統(tǒng)設(shè)計要求,設(shè)計一個綜合性的計時系統(tǒng),要求能實現(xiàn)年、月、日、時、分、秒及星期的計數(shù)等綜合計時功能,同時將計時結(jié)果通過15個七段數(shù)碼管顯示,并且可通過兩個設(shè)置鍵,對計時系統(tǒng)的有關(guān)參數(shù)進行調(diào)整。具體系統(tǒng)功能面板如圖7.1所示。,圖7.1 系統(tǒng)功能面板,7.2 系統(tǒng)設(shè)計方案,7.2.1 綜合計時電路的設(shè)計 根據(jù)系統(tǒng)的設(shè)計要求,綜合計時電路可分為計秒電路、計分電路、計時電路、計星期電路、計日電路、計月電路、計年電路等
2、7個子模塊,這7個子模塊必須都具有預(yù)置、計數(shù)和進位功能,設(shè)計思想如下:,(1) 計秒電路:以直接輸入或由分頻器產(chǎn)生的秒脈沖作為計秒電路的計數(shù)時鐘信號,待計數(shù)至60瞬間,進位,計分電路加1,而計秒電路則清零并重新計秒。 (2) 計分電路、計時電路:其設(shè)計思想與計秒電路類似。 (3) 計星期電路:將計時電路產(chǎn)生的進位脈沖信號作為計星期電路的計數(shù)時鐘信號,待計數(shù)至7瞬間,計星期電路返回1重新開始計數(shù)。,(4) 計日電路:將計時電路產(chǎn)生的進位脈沖信號作為計日電路的計數(shù)時鐘信號,通過系統(tǒng)辨認(rèn),確定本月總天數(shù)X(包括28、29、30、31四種情況),待計數(shù)至X1瞬間,進位,計月電路加1,而計日電路返回1重
3、新開始計數(shù)。 (5) 計月電路:將計日電路產(chǎn)生的進位脈沖信號作為計月電路的計數(shù)時鐘信號,待計數(shù)至12瞬間,進位,計年電路加1,而計月電路返回1重新開始計數(shù)。 (6) 計年電路:將計月電路產(chǎn)生的進位脈沖信號作為計年電路的計數(shù)時鐘信號,待計數(shù)至100瞬間,計年電路返回0重新開始計數(shù)。,CNT60計數(shù)模塊是一個多用計時模塊,它既可作為計秒電路調(diào)用,又可作為計分電路、計時電路調(diào)用。圖7.2是其輸入、輸出端口圖。其中,輸入信號LD為置數(shù)控制信號,低電平有效;輸入信號CLK為計數(shù)時鐘信號;輸入信號DATA為待預(yù)置數(shù);輸出信號NUM為計數(shù)結(jié)果;輸出信號CO為計數(shù)溢出信號。,圖7.2 CNT60計數(shù)模塊輸入、
4、輸出端口圖,CNT60的主要VHDL程序段如下: IF(LD=0) THEN NUM=DATA; ELSIF CLKEVENT AND CLK=1 THEN IF NUM=111011 THEN -59 NUM=000000;CO=1; ELSE NUM=NUM+1;CO=0; END IF; END IF;,CNT30的主要VHDL程序段如下: IF(LD=0) THEN NUM=DATA; ELSIF CLKEVENT AND CLK=1 THEN MAX_DAYS=TOTAL_DAYS; IF NUM=TOTAL_DAYS THEN -99 NUM=00001;CO=1; ELSE NU
5、M=NUM+1;CO=0; END IF; END IF;,圖7.3 CNT30計數(shù)模塊輸入、輸出端口圖,7.2.2 顯示控制電路的設(shè)計 本設(shè)計顯示需要使用的是15個七段顯示數(shù)碼管。在計時結(jié)果顯示電路中,七段數(shù)碼管顯示部分是一個不容忽視的環(huán)節(jié),如若處理不得當(dāng),可能引起系統(tǒng)功率過大,產(chǎn)生散熱問題,嚴(yán)重時甚至?xí)?dǎo)致系統(tǒng)的燒毀。為了解決好以上問題,下面就對七段數(shù)碼管顯示電路做簡要的分析和介紹。,通常點亮一個LED所需的電流是550 mA,通電的電流愈大,LED的亮度愈高,相對的也會使其壽命縮短。一般以10 mA的導(dǎo)通電流來估算它所必須串聯(lián)的阻值,其計算方式參考圖7.4所示。 七段顯示器可分為共陽極、
6、共陰極型兩種,它們都可以等效成8個LED的連接電路,其中圖7.5就是共陰極型七段顯示器的等效電路和每節(jié)LED的定義位置圖。,圖7.4 單個LED的串接電阻計算方式,圖7.5 共陰極型七段顯示器的LED位置定義和等效電路,根據(jù)以上設(shè)計思想,本系統(tǒng)的數(shù)據(jù)顯示電路可分為兩個子模塊: (1) 顯示控制電路XSKZQ:負(fù)責(zé)完成數(shù)據(jù)選擇掃描及數(shù)碼管位選擇信號的產(chǎn)生,數(shù)據(jù)掃描選擇輸出,對于選擇的數(shù)據(jù)進行BCD碼轉(zhuǎn)換等功能; (2) 顯示譯碼電路:將用于顯示的BCD碼數(shù)據(jù)進行譯碼。,XSKZQ的輸入、輸出端口如圖7.6所示。其中,輸入信號CLK_SCAN為用于產(chǎn)生數(shù)據(jù)選擇掃描等控制信號的時鐘信號;輸入信號SE
7、C、MIN、HOUR、DAY、MON、YEAR、WEEK分別來自計秒電路、計分電路、計時電路、計日電路、計月電路、計年電路、計星期電路等計時電路的計時結(jié)果輸出端;輸出信號BCD為被選擇進行顯示的計秒/計分/計時/計日/計月/計年/計星期電路等計時電路的計時結(jié)果的8位BCD碼,輸出端SELOUT經(jīng)外部的3-8譯碼電路譯碼后用于選擇對應(yīng)計時結(jié)果顯示數(shù)碼管的公共端COM。圖7.7為15個共陰極型七段數(shù)碼管驅(qū)動接線圖。,圖7.6 XSKZQ的輸入、輸出端口圖,圖7.7 15個共陰極型七段數(shù)碼管驅(qū)動接線圖,7.2.3 調(diào)整控制電路TZKZQ的設(shè)計 對于系統(tǒng)中的時間調(diào)整電路,擬通過模式和調(diào)整兩個外部按鍵完
8、成。模式鍵負(fù)責(zé)切換正常時間計數(shù)模式和時間調(diào)整模式,調(diào)整模式切換順序如圖7.8所示。調(diào)整鍵負(fù)責(zé)在時間調(diào)整模式之下,對當(dāng)前模式的計時結(jié)果進行調(diào)整。,圖7.8 調(diào)整模式切換順序,圖7.9 TZKZQ的輸入、輸出端口圖,7.2.4 系統(tǒng)總體組裝電路的設(shè)計 此系統(tǒng)的總體組裝電路圖如圖7.10(略)所示。,7.3 主要VHDL源程序,7.3.1 綜合計時電路的VHDL源程序 1CONT60計時電路的VHDL源程序 -CNT60.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT
9、60 IS,PORT(LD: IN STD_LOGIC; -置位信號(低電平有效) CLK: IN STD_LOGIC;-時鐘脈沖 DATA: IN STD_LOGIC_VECTOR(5 DOWNTO 0); -預(yù)置數(shù) NUM: BUFFER STD_LOGIC_VECTOR(5 DOWNTO 0); -計數(shù)結(jié)果 CO: OUT STD_LOGIC); -進位信號 END ENTITY CNT60; ARCHITECTURE ART OF CNT60 IS,BEGIN PROCESS(CLK,LD) IS BEGIN IF(LD=0) THEN NUM=DATA; ELSIF CLKEVENT
10、 AND CLK=1 THEN IF NUM=111011 THEN -59 NUM=000000;CO=1; ELSE,NUM=NUM+1;CO=0; END IF; END IF; END PROCESS; END ARCHITECTURE ART;,2CONT30計時電路的VHDL源程序 -CNT30.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT30 IS PORT(LD:IN STD_LOGIC; -置位信號(低電平有效) CLK:IN STD_LOG
11、IC; -時鐘脈沖,NIAN:IN STD_LOGIC_VECTOR(6 DOWNTO 0); -當(dāng)前年 YUE :IN STD_LOGIC_VECTOR(3 DOWNTO 0); -當(dāng)前月 DATA:IN STD_LOGIC_VECTOR(4 DOWNTO 0); -預(yù)置數(shù) NUM:BUFFER STD_LOGIC_VECTOR(4 DOWNTO 0); -計數(shù)結(jié)果 MAX_DAYS:OUT STD_LOGIC_VECTOR(4 DOWNTO 0); -本月總天數(shù) CO:OUT STD_LOGIC); -進位信號 END ENTITY CNT30;,ARCHITECTURE ART OF C
12、NT30 IS SIGNAL TOTAL_DAYS:STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN PROCESS(CLK,LD) IS VARIABLE IS_RUNNIAN:STD_LOGIC; BEGIN CASE NIAN IS WHEN 0000000 = IS_RUNNIAN:=1;-0,-如當(dāng)前年為00,則輸出閏年確認(rèn)信號 WHEN 0000100 = IS_RUNNIAN:=1;-4 WHEN 0001000 = IS_RUNNIAN:=1;-8 WHEN 0001100 = IS_RUNNIAN:=1;-12 WHEN 0010000 = IS_RUN
13、NIAN:=1;-16 WHEN 0010100 = IS_RUNNIAN:=1;-20 WHEN 0011000 = IS_RUNNIAN:=1;-24 WHEN 0011100 = IS_RUNNIAN:=1;-28 WHEN 0100000 = IS_RUNNIAN:=1;-32 WHEN 0100100 = IS_RUNNIAN:=1;-36 WHEN 0101000 = IS_RUNNIAN:=1;-40 WHEN 0101100 = IS_RUNNIAN:=1;-44 WHEN 0110000 = IS_RUNNIAN:=1;-48 WHEN 0110100 = IS_RUNNIA
14、N:=1;-52 WHEN 0111000 = IS_RUNNIAN:=1;-56,WHEN 0111100 = IS_RUNNIAN:=1;-60 WHEN 1000000 = IS_RUNNIAN:=1;-64 WHEN 1000100 = IS_RUNNIAN:=1;-68 WHEN 1001000 = IS_RUNNIAN:=1;-72 WHEN 1001100 = IS_RUNNIAN:=1;-76 WHEN 1010000 = IS_RUNNIAN:=1;-80 WHEN 1010100 = IS_RUNNIAN:=1;-84 WHEN 1011000 = IS_RUNNIAN:=
15、1;-88 WHEN 1011100 = IS_RUNNIAN:=1;-92 WHEN 1100000 = IS_RUNNIAN:=1;-96 WHEN OTHERS = IS_RUNNIAN:=0; END CASE; CASE YUE IS,WHEN 0001 = TOTAL_DAYS TOTAL_DAYS TOTAL_DAYS TOTAL_DAYS TOTAL_DAYS TOTAL_DAYS TOTAL_DAYS TOTAL_DAYS TOTAL_DAYS TOTAL_DAYS TOTAL_DAYS -2,IF (IS_RUNNIAN=1) THEN TOTAL_DAYSNULL; EN
16、D CASE; IF(LD=0) THEN NUM=DATA; ELSIF CLKEVENT AND CLK=1 THEN MAX_DAYS=TOTAL_DAYS;,IF NUM=TOTAL_DAYS THEN-99 NUM=00001;CO=1; ELSE NUM=NUM+1;CO=0; END IF; END IF; END PROCESS; END ARCHITECTURE ART; 3其他計時電路的VHDL源程序 請讀者參照前述程序自行完成。,7.3.2 顯示控制電路XSKZQ的VHDL源程序 -XSKZQ.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_11
17、64.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY XSKZQ IS PORT(CLK_SCAN:IN STD_LOGIC; -掃描時鐘 SEC,MIN:IN STD_LOGIC_VECTOR(5 DOWNTO 0);-當(dāng)前秒、分,HOUR: IN STD_LOGIC_VECTOR(4 DOWNTO 0); -當(dāng)前時 DAY: IN STD_LOGIC_VECTOR(4 DOWNTO 0); -當(dāng)前日 MON: IN STD_LOGIC_VECTOR(3 DOWNTO 0); -當(dāng)前月 YE
18、AR: IN STD_LOGIC_VECTOR(6 DOWNTO 0); -當(dāng)前年 WEEK: IN STD_LOGIC_VECTOR(2 DOWNTO 0); -當(dāng)前星期 SELOUT: OUT STD_LOGIC_VECTOR(2 DOWNTO 0); -掃描信號 BCD: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -七段顯示碼輸出,END ENTITY XSKZQ; ARCHITECTURE ART OF XSKZQ IS SIGNAL TEMP: INTEGER RANGE 0 TO 99; SIGNAL CNT: STD_LOGIC_VECTOR(2 DOW
19、NTO 0); BEGIN PROCESS(CLK_SCAN) IS BEGIN IF CLK_SCANEVENT AND CLK_SCAN=1 THEN -對各個輸出信號進行掃描 IF CNT=111 THEN,CNT=000; ELSE CNT=CNT+1; END IF; END IF; END PROCESS; SELOUT=CNT; PROCESS(CNT) BEGIN CASE CNT IS,WHEN 000 = TEMP TEMP TEMP TEMP TEMP TEMP TEMP TEMPNULL;,END CASE; CASE TEMP IS WHEN 0 =BCDBCDBCD
20、BCDBCDBCDBCDBCDBCDBCDBCD=00010000 ;,WHEN 11 =BCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCD=00100011 ;,WHEN 24 =BCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCD=00110110 ;,WHEN 37 =BCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCD=01001001 ;,WHEN 50 =BCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCD=01100011 ;,WHEN 64 =BCDBCDBCDBCD
21、BCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCD=01111000 ;,WHEN 79 =BCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCDBCD=10010001 ;,WHEN 92 =BCDBCDBCDBCDBCDBCDBCDBCDBCD=00000000; END CASE; END PROCESS; END ARCHITECTURE ART;,7.3.3 調(diào)整控制電路TZKZQ的VHDL源程序 -TZKZQ.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSI
22、GNED.ALL; ENTITY TZKZQ IS PORT(KEY: IN STD_LOGIC_VECTOR(1 DOWNTO 0); -按鍵信號 CLK_KEY: IN STD_LOGIC; -鍵盤掃描信號,MAX_DAYS:IN STD_LOGIC_VECTOR(4 DOWNTO 0); -本月最大天數(shù) SEC_EN,MIN_EN,HOUR_EN, DAY_EN,MON_EN,YEAR_EN,WEEK_EN:OUT STD_LOGIC; -異步并行置位使能 HOUR_CUR:IN STD_LOGIC_VECTOR(4 DOWNTO 0); MIN_CUR,SEC_CUR:IN STD_L
23、OGIC_VECTOR(5 DOWNTO 0); YEAR_CUR:IN STD_LOGIC_VECTOR(6 DOWNTO 0); MON_CUR :IN STD_LOGIC_VECTOR(3 DOWNTO 0); DAY_CUR :IN STD_LOGIC_VECTOR(4 DOWNTO 0); WEEK_CUR:IN STD_LOGIC_VECTOR(2 DOWNTO 0);,SEC,MIN:BUFFER STD_LOGIC_VECTOR(5 DOWNTO 0); HOUR:BUFFER STD_LOGIC_VECTOR(4 DOWNTO 0); DAY :BUFFER STD_LOGI
24、C_VECTOR(4 DOWNTO 0); MON :BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); YEAR:BUFFER STD_LOGIC_VECTOR(6 DOWNTO 0); WEEK:BUFFER STD_LOGIC_VECTOR(2 DOWNTO 0); END ENTITY TZKZQ; ARCHITECTURE ART OF TZKZQ IS,TYPE STATETYPE IS (NORMAL,SEC_SET,MIN_SET,HOUR_SET,DAY_SET,MON_SET, YEAR_SET,WEEK_SET); SIGNAL MODE:STATE
25、TYPE; BEGIN PROCESS(KEY,CLK_KEY) BEGIN IF CLK_KEYEVENT AND CLK_KEY=1 THEN IF KEY=01 THEN -如果按下設(shè)置鍵,切換到下一個狀態(tài),SEC_EN MODE MODE=MIN_SET;MIN=MIN_CUR;SEC_EN=1;MIN_EN=0;,-切換到分設(shè)置模式,讀入當(dāng)前分,分異步并行置位使能有效, 同時秒異步并行置位使能復(fù)位 WHEN MIN_SET = MODE MODE MODE MODE=YEAR_SET;YEAR=YEAR_CUR; MON_EN=1;,YEAR_EN MODE MODE=NORMAL;
26、 END CASE; ELSIF KEY=10 THEN -如果按下調(diào)整鍵,則自加 CASE MODE IS,WHEN SEC_SET = SEC_EN MIN_EN=0; IF MIN=111011 THEN MIN=000000; ELSE MIN=MIN+1; END IF;,WHEN HOUR_SET= HOUR_EN DAY_EN=0; IF DAY=MAX_DAYS THEN DAY=00001; ELSE DAY=DAY+1; END IF;,WHEN MON_SET = MON_EN YEAR_EN=0; IFYEAR=1100011 THEN YEAR=0000000; EL
27、SE YEAR=YEAR+1; END IF;,WHEN WEEK_SET= WEEK_ENNULL; END CASE; END IF; END IF; END PROCESS; END ARCHITECTURE ART;,7.3.4 系統(tǒng)總體組裝電路的VHDL源程序 請讀者根據(jù)圖7.10 綜合計時系統(tǒng)的總體組裝電路原理圖自行完成。,7.4 系統(tǒng)仿真/硬件驗證,7.4.1 系統(tǒng)的有關(guān)仿真 1CNT60.VHD的仿真 從圖7.11可以看出,CNT60.VHD實現(xiàn)了從0到59的循環(huán)計數(shù),每實現(xiàn)一次59到0的計數(shù)動作,計數(shù)模塊輸出一個進位信號。當(dāng)LD端有低電平輸入時,說明置數(shù)信號(LD)有效,模塊將預(yù)置數(shù)(DATA)56送入計數(shù)結(jié)果(NUM)中去,計數(shù)模塊從56開始重新計數(shù)。,圖7.11 CNT60.VHD模塊仿真圖,2CNT30.VHD的仿真 從圖7.12可以看出,該模塊首先要讀取當(dāng)前年月(NIAN和YUE),再對該月的最大天數(shù)(MAX_DAYS)進行判斷并將結(jié)果向外輸出。在正常計數(shù)過程中,模塊實現(xiàn)了從0到最大天數(shù)(MAX_DAYS)的循環(huán)計數(shù),每實現(xiàn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit 2 My body Lesson 1(說課稿)-2024-2025學(xué)年人教新起點版英語三年級上冊
- 2025年期末復(fù)習(xí)計劃的日記:期末考試
- Unit 5 Fun Clubs Section B (1a-2b) 說課稿 2024-2025學(xué)年人教版(2024)七年級英語上冊
- 2025年高二地理教學(xué)工作計劃范例
- Unit 6 Useful numbers Part B Start to read(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語三年級上冊
- 2025年圖書室工作計劃
- 保險業(yè)技術(shù)工作總結(jié)
- Unit 3 Healthy Lifestyle Reading A Vocabulary Focus 說課稿 -2023-2024學(xué)年高中英語上外版(2020)必修第三冊
- 2025年幼兒園小班衛(wèi)生保健工作計劃上學(xué)期
- 服裝行業(yè)員工關(guān)系總結(jié)
- 山東師范大學(xué)新聞采訪期末復(fù)習(xí)題
- 小王子-英文原版
- 讓與擔(dān)保合同協(xié)議范本
- 住宅設(shè)計效果圖協(xié)議書
- 新版中國食物成分表
- 2024河南鄭州市金水區(qū)事業(yè)單位招聘45人歷年高頻難、易錯點500題模擬試題附帶答案詳解
- 食物損失和浪費控制程序
- TCI 373-2024 中老年人免散瞳眼底疾病篩查規(guī)范
- 2024四川太陽能輻射量數(shù)據(jù)
- 石油鉆采專用設(shè)備制造考核試卷
- 法人變更股權(quán)轉(zhuǎn)讓協(xié)議書(2024版)
評論
0/150
提交評論