版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、專題二:數(shù)字鐘及校園打鈴系統(tǒng)設計一、教學內容:數(shù)字鐘設計二、教學目的及要求: 1、掌握VHDL語言的基本結構及編程思想。 2、掌握VHDL語言的軟件仿真方法。 3、掌握VHDL語言的下載及硬件仿真方法。 4、提高綜合應用能力。 三、授課課時:6課時四、教學重點、難點:數(shù)字鐘VHDL語言設計 數(shù)字鐘及校園打鈴系統(tǒng)設計設計目標: 1、基本的數(shù)字鐘計時功能、校時功能; 2、定時鬧鐘功能; 可以任意設定鬧鐘時間,鬧鈴時間為1分鐘。 3、校園打鈴功能; (1)正常教學打鈴:分夏季作息時間和春季作息時間打鈴,響鈴時間20秒。兩季作息時間通過開關切換。 (2)考試時間打鈴,響鈴時間20秒。 (3)正常教學打
2、鈴和考試打鈴通過開關切換。一、基本的數(shù)字鐘計時功能、校時功能電路設計一、基本的數(shù)字鐘計時功能、校時功能電路設計1、基本計時功能電路設計60進制計數(shù)器元件外部引腳功能圖元件外部引腳功能圖說明:說明:1、EN1時,正常計數(shù),時,正常計數(shù),0時,停止計數(shù)。時,停止計數(shù)。 2、CLRN0時,復位清零,時,復位清零,1時,正常計數(shù)。時,正常計數(shù)。 3、CLK時鐘信號,上升沿觸發(fā)。時鐘信號,上升沿觸發(fā)。 4、QSA:60進制個位輸出;進制個位輸出; QSB:60進制十位輸出。進制十位輸出。LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY clock_60 I
3、SPORT( CLRN,EN,CLK: IN STD_LOGIC; cout1: out STD_LOGIC; Qsa : OUT INTEGER RANGE 0 TO 9; Qsb : OUT INTEGER RANGE 0 TO 5);END clock_60;ARCHITECTURE a OF clock_60 IS BEGIN PROCESS(CLK,CLRN) VARIABLE tmpsa: INTEGER RANGE 0 TO 9; VARIABLE tmpsb: INTEGER RANGE 0 TO 5; 60進制計數(shù)器設計(VHDL程序)BEGIN IF CLRN=0 THEN
4、 tmpsb := 0; tmpsa := 0; ELSIF CLKevent AND CLK=1 THEN IF EN=1 THEN IF tmpsb=5 AND tmpsa=9 THEN tmpSa:=0; tmpSb:=0 ;COUT1=1; ELSIF tmpSa=9 THEN tmpSa:=0; tmpSb:=tmpSb+1; ELSE tmpSa:=tmpSa+1; END IF; END IF; END IF ; QSA=tmpsa;QSB=tmpsb; END PROCESS ;END a;24進制計數(shù)器設計元件外部引腳功能圖:進制計數(shù)器設計元件外部引腳功能圖:說明:說明:1、
5、EN1時,正常計數(shù),時,正常計數(shù),0時,停止計數(shù)。時,停止計數(shù)。 2、CLRN0時,復位清零,時,復位清零,1時,正常計數(shù)。時,正常計數(shù)。 3、CLK時鐘信號,上升沿觸發(fā)。時鐘信號,上升沿觸發(fā)。 4、QHA:24進制個位輸出;進制個位輸出;QHB:24進制十位輸出。進制十位輸出。LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY clock_24 ISPORT( CLRN,EN,CLK: IN STD_LOGIC; cout: out STD_LOGIC; Qha : OUT INTEGER RANGE 0 TO 9; Qhb : OUT INTE
6、GER RANGE 0 TO 2);END clock_24;ARCHITECTURE a OF clock_24 IS BEGIN PROCESS(CLK,CLRN) VARIABLE tmpha: INTEGER RANGE 0 TO 9; VARIABLE tmphb: INTEGER RANGE 0 TO 2; 24進制計數(shù)器設計BEGIN IF CLRN=0 THEN tmphb := 0; tmpha := 0; ELSIF CLKevent AND CLK=1 THEN IF EN=1 THEN IF tmphb=2 AND tmpha=3 THEN tmpha:=0; tmph
7、b:=0 ;COUT=1; ELSIF tmpha=9 THEN tmpha:=0; tmphb:=tmphb+1; ELSE tmpha:=tmpha+1; END IF; END IF; END IF ; QHA=tmpha;QHB=tmphb; END PROCESS ;END a;數(shù)字鐘實體數(shù)字鐘實體數(shù)字鐘實體數(shù)字鐘實體 LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY clock_v ISPORT( EN,CLK,CLRN : IN STD_LOGIC; QSa,QMa,QHa : OUT INTEGER RANGE 0 TO 9; Q
8、Sb,QMb : OUT INTEGER RANGE 0 TO 5; QHb : OUT INTEGER RANGE 0 TO 2 ; cout: out std_logic );END clock_v;ARCHITECTURE a OF clock_v IS signal cout1,cout2,COUT3:STD_LOGIC; BEGINu60s: PROCESS(CLK,CLRN) VARIABLE tmpsa: INTEGER RANGE 0 TO 9; VARIABLE tmpsb: INTEGER RANGE 0 TO 5; BEGIN IF CLRN=0 THEN tmpsb :
9、= 0; tmpsa := 0; ELSIF CLKevent AND CLK=1 THEN IF EN=1 THEN IF tmpsb=5 AND tmpsa=9 THEN tmpSa:=0; tmpSb:=0 ;COUT1=1; ELSIF tmpSa=9 THEN tmpSa:=0; tmpSb:=tmpSb+1; COUT1=0; ELSE tmpSa:=tmpSa+1;COUT1=0; END IF; END IF; END IF ; QSA=tmpsa;QSB=tmpsb; END PROCESS u60s; 數(shù)字鐘VHDL程序的結構體部分接下頁u60M: PROCESS(cout
10、1,CLRN) VARIABLE tmpMa: INTEGER RANGE 0 TO 9; VARIABLE tmpMb: INTEGER RANGE 0 TO 5; BEGIN IF CLRN=0 THEN tmpMb := 0; tmpMa := 0; ELSIF COUT1event AND COUT1=1 THEN IF EN=1 THEN IF tmpMb=5 AND tmpMa=9 THEN tmpMa:=0; tmpMb:=0 ;COUT2=1; ELSIF tmpMa=9 THEN tmpMa:=0; tmpMb:=tmpMb+1; COUT2=0; ELSE tmpMa:=t
11、mpMa+1;COUT2=0; END IF; END IF; END IF ; QMA=tmpMa;QMB=tmpMb; END PROCESS u60M;數(shù)字鐘分計數(shù)器接下頁 u24H: PROCESS(COUT2,CLRN) VARIABLE tmpHa: INTEGER RANGE 0 TO 9; VARIABLE tmpHb: INTEGER RANGE 0 TO 2; BEGIN IF CLRN=0 THEN tmpHb := 0; tmpHa := 0; ELSIF COUT2event AND COUT2=1 THEN IF EN=1 THEN IF tmpHb=2 AND t
12、mpHa=3 THEN tmpHa:=0; tmpHb:=0 ;COUT3=1; ELSIF tmpHa=9 THEN tmpHa:=0; tmpHb:=tmpHb+1; COUT3=0; ELSE tmpHa:=tmpHa+1;COUT3=0; END IF; END IF; END IF ; QHA=tmpHa;QHB=tmpHb;COUT=COUT3; END PROCESS u24H;END a;數(shù)字鐘時計數(shù)器結構圖結構圖NO.7:此電路適合于設計時鐘、定時器、秒表等。因為可利用鍵8和鍵5分別控制時鐘的清零和設置時間的使能;利用鍵7、5和1進行時、分、秒的設置。D16D15D14D13
13、D12D11D9D8PIO47D7PIO46D6PIO45D5PIO44D4PIO43D3PIO42D2PIO41PIO40D1NO.7實驗電路結構圖SPEAKER揚聲器FPGA/CPLD目標芯片12345678PIO0PIO2PIO3PIO4PIO5PIO6PIO7單脈沖單脈沖單脈沖鍵1鍵2鍵3鍵4鍵5鍵6鍵7鍵8PIO47-PIO40PIO39-PIO36PIO35-PIO32PIO31-PIO28PIO27-PIO24PIO23-PIO20PIO19-PIO16譯碼器譯碼器譯碼器譯碼器譯碼器譯碼器原理圖設計方法帶校時電路的數(shù)字鐘電路設計帶校時電路的數(shù)字鐘電路設計狀態(tài)機狀態(tài)圖2選選1多路選
14、擇器多路選擇器vhdl程序程序ENTITY mux21a IS PORT( a, b : IN BIT ; k : IN BIT; c : OUT BIT ) ;END ENTITY mux21a ;ARCHITECTURE one OF mux21a IS BEGIN c = a WHEN k = 1 ELSE b ;END ARCHITECTURE one ;狀態(tài)機程序LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY zhuantaiji ISPORT ( CLK 0,reset: IN STD_LOGIC; y : OUT STD_LOGI
15、C_VECTOR(2 DOWNTO 0);END zhuantaiji;ARCHITECTURE behav OF zhuantaiji IS TYPE states IS (st0, st1, st2, st3,st4); SIGNAL stx : states ; BEGIN COMREG : PROCESS(CLK,RESET) BEGIN -決定轉換狀態(tài)的進程決定轉換狀態(tài)的進程 IF RESET =1 THEN STX STX STX STX STX STX y y y y Q=“111 ; END CASE ; END PROCESS COM1 ; END behav; 二、定時鬧鐘
16、功能電路設計二、定時鬧鐘功能電路設計定時器控制電路定時器控制電路復位復位定時時間存儲電路定時時間存儲電路調時或調分調時或調分選擇開關選擇開關“”鍵鍵分分輸輸出出時時輸輸出出基本數(shù)字鐘電路基本數(shù)字鐘電路秒脈沖秒脈沖時時輸輸出出分分輸輸出出校時校時校時功能切換校時功能切換復位復位秒秒輸輸出出七段數(shù)碼管譯碼器及顯示器七段數(shù)碼管譯碼器及顯示器正常計時時間和定時時間輸出選擇切換電路正常計時時間和定時時間輸出選擇切換電路時時輸輸出出分分輸輸出出秒秒輸輸出出VCCK1K1閉合,顯示正常計時時間閉合,顯示正常計時時間K1斷開,顯示定時器時間斷開,顯示定時器時間思考:在正常思考:在正常顯示時間時,顯示時間時,如
17、何使定時器如何使定時器“”鍵失效,鍵失效,以保證在正常以保證在正常計時時定時時計時時定時時間不被修改?間不被修改?正常計時時間和鬧鈴時間比較器電路連接正常計時“時”信號輸出連接正常計時“分”信號輸出連接鬧鈴時間“時”信號輸出連接鬧鈴時間“分”信號輸出與門電路兩時間相等,輸出高電平512Hz周期信號思考:響鈴思考:響鈴時間為時間為1分鐘,分鐘,如何保證?如何保證?數(shù)字鐘電路設計將上一講中的數(shù)字鐘包裝成一個元件,引腳定義如下圖所示。將上一講中的數(shù)字鐘包裝成一個元件,引腳定義如下圖所示。定時器控制電路及定時時間存儲電路設計定時器控制電路定時器控制電路復位復位定時時間存儲電路定時時間存儲電路調時或調分
18、調時或調分選擇開關選擇開關“”鍵鍵分分輸輸出出時時輸輸出出定時器控制電定時器控制電路及定時時間路及定時時間存儲電路存儲電路Ctrl_memoresetk1Up_key“+”鍵Q_houra3.0Q_hourb1.0Q_minuea3.0Q_minueb2.0定時器控制電路及定時時間存儲電路VHDL程序LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY ctrl_memo ISPORT( reset,k1,up_key: IN STD_LOGIC; -k1高電平為調時,低電平為調分高電平為調時,低電平為調分 Q_hourb : OUT INTEGER
19、 RANGE 0 TO 2;-“時時”高位高位 Q_houra : OUT INTEGER RANGE 0 TO 9;-“時時”低位低位 Q_minueb : OUT INTEGER RANGE 0 TO 5; Q_minuea : OUT INTEGER RANGE 0 TO 9);END ctrl_memo;ARCHITECTURE a OF ctrl_memo IS BEGIN PROCESS(reset,k1,up_key) VARIABLE Q_tmpma: INTEGER RANGE 0 TO 9; VARIABLE Q_tmpmb: INTEGER RANGE 0 TO 5; V
20、ARIABLE Q_tmpha: INTEGER RANGE 0 TO 9; VARIABLE Q_tmphb: INTEGER RANGE 0 TO 2;BEGIN IF reset=0 THEN Q_tmpma:= 0; Q_tmpmb:= 0;Q_tmpha:= 0; Q_tmphb:= 0; ELSIF up_keyevent AND up_key=1 THEN IF k1=1 THEN IF Q_tmphb=2 AND Q_tmpha=3 THEN Q_tmphb:=0; Q_tmpha:=0 ; ELSIF Q_tmpha=9 THEN Q_tmpha:=0; Q_tmphb:=Q
21、_tmphb+1; ELSE Q_tmpha:=Q_tmpha+1; END IF; else IF Q_tmpmb=5 AND Q_tmpma=9 THEN Q_tmpmb:=0; Q_tmpma:=0 ; ELSIF Q_tmpma=9 THEN Q_tmpma:=0; Q_tmpmb:=Q_tmpmb+1; ELSE Q_tmpma:=Q_tmpma+1; END IF; END IF; END IF ; Q_hourb=Q_tmphb; Q_houra=Q_tmpha; Q_minueb=Q_tmpmb; Q_minuea=Q_tmpma; END PROCESS ;END a;正常計
22、時時間和定時時間輸出選擇切換電路正常計時時間和定時時間輸出選擇切換電路QHAI5.0正常計時時間和定時時間輸出選擇切換電路正常計時時間和定時時間輸出選擇切換電路 NOR_ARM_CTL.VHDk2Q_HAO3.0Q_HBO1.0Q_MAO3.0Q_MBO2.0Q_SAO3.0Q_SBO2.0QSAI6.0QMAI6.0QH_ARM5.0QM_ARM6.0正常時間輸入,接時鐘輸出正常時間輸入,接時鐘輸出鬧鐘時間輸入,接鬧鐘定時輸出鬧鐘時間輸入,接鬧鐘定時輸出K2為高電平時顯示正常時間仿真波形仿真波形正常計時時間和定時時間輸出選擇切換電路 VHDL程序LIBRARY ieee; USE ieee.
23、std_logic_1164.all;ENTITY NOR_ARM_CTL ISPORT( k2: IN STD_LOGIC; QSAI,QMAI,QHAI:IN INTEGER RANGE 0 TO 9; QSBI,QMBI:IN INTEGER RANGE 0 TO 5; QHBI:IN INTEGER RANGE 0 TO 2; QH_ARM_A,QM_ARM_A: IN INTEGER RANGE 0 TO 9; QH_ARM_B: IN INTEGER RANGE 0 TO 2; QM_ARM_B: IN INTEGER RANGE 0 TO 5; Q_HAO,Q_MAO,Q_SAO
24、:OUT INTEGER RANGE 0 TO 9; Q_HBO: OUT INTEGER RANGE 0 TO 2; Q_MBO,Q_SBO : OUT INTEGER RANGE 0 TO 5);END NOR_ARM_CTL;ARCHITECTURE a OF NOR_ARM_CTL IS BEGIN Q_HAO=QHAI WHEN K2=1 ELSE QH_ARM_A; Q_HBO=QHBI WHEN K2=1 ELSE QH_ARM_B; Q_MAO=QMAI WHEN K2=1 ELSE QM_ARM_A; Q_MBO=QMBI WHEN K2=1 ELSE QM_ARM_B; Q
25、_SAO=QSAI WHEN K2=1 ELSE 0; Q_SBO=QSBI WHEN K2=1 ELSE 0;END a;仿真波形仿真波形正常計時時間和鬧鈴時間比較器電路 BIJIAOQI.VHD與門電路兩時間相等,輸出高電平512Hz周期信號正常計時時間和鬧鈴時間比較器電路設計clk0speakQH_AQH_BQM_AQM_BHARM_AHARM_BMARM_AMARM_BY正常計時時間和鬧鈴時間比較器電路VHDL程序LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY BIJIAOQI ISPORT( CLk0: IN STD_LOGIC; Q
26、H_A,QM_A: IN INTEGER RANGE 0 TO 9; QH_B: IN INTEGER RANGE 0 TO 2; QM_B: IN INTEGER RANGE 0 TO 5; HARM_A,MARM_A: IN INTEGER RANGE 0 TO 9; HARM_B: IN INTEGER RANGE 0 TO 2; MARM_B: IN INTEGER RANGE 0 TO 5; SPEAK: OUT STD_LOGIC);END BIJIAOQI;ARCHITECTURE a OF BIJIAOQI IS SIGNAL Y: STD_LOGIC; BEGIN SPEAK
27、=CLK0 AND Y; Y=1 WHEN (QH_A=HARM_A) AND (QM_A=MARM_A) AND (QH_B=HARM_B) AND (QM_B=MARM_B) ELSE 0;END a;仿真波形仿真波形總電路圖總電路圖三、校園打鈴系統(tǒng)功能電路設計三、校園打鈴系統(tǒng)功能電路設計方案二:地址發(fā)生器及外置存儲器方式方案二:地址發(fā)生器及外置存儲器方式方案一:直接數(shù)據比較方法方案一:直接數(shù)據比較方法方案一:直接數(shù)據比較方法方案一:直接數(shù)據比較方法春季作息時間夏季作息時間6:50起床6:40起床7:40預備7:30預備7:50第一節(jié)上課7:40第一節(jié)上課8:35第一節(jié)下課8:25第一節(jié)下
28、課8:45第二節(jié)上課8:35第二節(jié)上課9:30第二節(jié)下課9:20第二節(jié)下課9:50第三節(jié)上課9:40第三節(jié)上課10:35第三節(jié)下課10:25第三節(jié)下課10:45第四節(jié)上課10:35第四節(jié)上課11:30第四節(jié)下課11:20第四節(jié)下課14:00預備14:20預備14:10下午第一節(jié)上課14:30下午第一節(jié)上課14:55下午第一節(jié)下課15:15下午第一節(jié)下課15:05下午第二節(jié)上課15:25下午第二節(jié)上課15:50下午第二節(jié)下課16:10下午第二節(jié)下課16:00下午第三節(jié)上課 16:20下午第三節(jié)上課16:45下午第三節(jié)下課 17:05下午第三節(jié)下課16:55下午第四節(jié)上課 17:15下午第四節(jié)上課
29、17:40下午第四節(jié)下課 18:00下午第四節(jié)下課19:00晚上第一節(jié)上課 19:10晚上第一節(jié)上課19:45晚上第一節(jié)下課 19:55晚上第一節(jié)下課19:55晚上第二節(jié)上課 20:05晚上第二節(jié)上課20:40晚上第二節(jié)下課 21:00晚上第二節(jié)下課將“時分”并置,得到下列數(shù)據:春季作息時間 夏季作息時間065006400740073007500740083008250845083509300920095009401035102510451035113011201400142014101430145515151505152515501610160016201645170516551715174
30、0180019001810194519551955200520402100實現(xiàn)方法:實現(xiàn)方法: 將數(shù)字鐘輸出的時間(時和分)逐一與上表中的數(shù)據進行比較,將數(shù)字鐘輸出的時間(時和分)逐一與上表中的數(shù)據進行比較,如果相等,則如果相等,則Q_Y輸出高電平,否則輸出低電平。輸出高電平,否則輸出低電平?;緮?shù)字鐘電路基本數(shù)字鐘電路秒脈沖秒脈沖時時輸輸出出分分輸輸出出校時校時校時功能切換校時功能切換復位復位秒秒輸輸出出時間比較器(時間比較器(comp_time)JK交流電鈴220V5VQ_YR3K高電平:春季低電平:夏季K3Q_HAQ_HBQ_MAQ_MB譯碼及顯示譯碼及顯示時間比較器的時間比較器的VHD
31、L程序(程序(COMP_TIME.VHD)LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY COMP_TIME ISPORT( K3: IN STD_LOGIC; Q_HA,Q_MA: IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q_HB: IN STD_LOGIC_VECTOR(1 DOWNTO 0); Q_MB: IN STD_LOGIC_VECTOR(2 DOWNTO 0); Q_Y: OUT STD_LOGIC);END COMP_TIME;ARCHITECTURE a OF COMP_TIME IS SIGNAL
32、QTIME:STD_LOGIC_VECTOR(12 DOWNTO 0); BEGIN QTIME Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y Q_Y=0; END CASE; END IF; END PROCESS; END a;關于電鈴響鈴時間關于電鈴響鈴時間15秒的處理方法秒的處理方法:說明:因為比較器的輸出說明:因為比較器的輸出QY高電平時間為高電平時間為1分鐘,如果不作處理,則電鈴分鐘,如果不作處理,則電鈴將響將響1分鐘。分鐘。處理方法:處理方法:1、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版空壓機銷售與能源管理培訓服務合同3篇
- 二零二五年度家具行業(yè)展覽展示合同范本
- 2025版LED智能廣告租賃與信息發(fā)布合同3篇
- 二零二五年度建筑材料委托采購與環(huán)保審查服務合同3篇
- 二零二五年度二手房買賣合同中房產增值收益分配協(xié)議范本3篇
- 二零二五年度林業(yè)知識產權保護簡易樹木買賣合同范本3篇
- 二零二五年度旅游節(jié)慶項目合同3篇
- 二零二五年度新型建筑起重機械租賃及維護服務合同3篇
- 二零二五年度新型房產交易反擔保與擔保合同3篇
- 2025年度白酒原漿銷售與市場開發(fā)合同3篇
- 設備部年度工作總結和來年計劃
- 藥品的收貨與驗收培訓課件
- 寶寶大便觀察及護理課件
- 公司月度安全生產綜合檢查表
- 開題報告會記錄單
- 對話的力量:焦點解決取向在青少年輔導中的應用
- 我的家鄉(xiāng)湖北荊門介紹
- (銀川市直部門之間交流)2022事業(yè)單位工作人員調動表
- 廣州市小學生學籍表
- 法律與社會學習通章節(jié)答案期末考試題庫2023年
- 瓷磚采購投標方案
評論
0/150
提交評論