【正文】
編了 VHDL 語(yǔ)言的 24 選 4 數(shù)據(jù)選擇器。 以計(jì)數(shù)器構(gòu)成計(jì)時(shí)部件,通過分頻器分出的1HZ 脈沖計(jì)時(shí),調(diào)用動(dòng)態(tài)顯示電路顯示,通過整點(diǎn)報(bào)時(shí)電路控制蜂鳴器。實(shí)驗(yàn)主要包含三個(gè)主體 時(shí)鐘 基本功能電路、鬧鐘電路、萬(wàn)年歷電路。 EDA 課程設(shè)計(jì)報(bào)告 名稱: 多功能數(shù)字 時(shí)鐘 指導(dǎo)教師: 姓 名: 學(xué) 號(hào): 院 系: 時(shí) 間: EDA(II) 多功能數(shù)字鐘 1 摘 要 本文是 基于 Altera公司出品 QuartusII軟件以及相應(yīng)的實(shí)驗(yàn)平臺(tái)完成 的 多功能數(shù)字計(jì)時(shí)器實(shí)驗(yàn) ,使我們清楚地了解到我們身邊的數(shù)字表的功能是怎樣實(shí)現(xiàn)的 。 設(shè)計(jì)時(shí)采用了層次設(shè)計(jì)思想,功能逐級(jí)遞加,并在封裝時(shí)留有很多外圍接口,以備增加其他新功能。 主體一 : 主要涉及模 60 與模 24 計(jì)數(shù)器、動(dòng)態(tài)顯示控 制電路、分頻器主要整點(diǎn)報(bào)時(shí)電路, 這些電路都是以模塊封裝好的,以便其他電路調(diào)用。 在計(jì)數(shù)器級(jí)聯(lián)時(shí)采用內(nèi)部同步外部異步的方式,但通過簡(jiǎn)單的改變達(dá)到了同步的效果而且比同步還可靠。 主體二 : 主要涉及模 60 與模 24 計(jì)數(shù)器、顯示控制電路、 147 同或門。 主體三:主要涉及模 100、模 12 與模 30 計(jì)數(shù)器、動(dòng)態(tài)顯示電路。 最后由于功能中涉及的開關(guān)太多,我們采用了兩種復(fù)用原理,給出了兩種復(fù)用思想。 本電路在 原有基礎(chǔ)上進(jìn)行了拓展,具備以下功能: ① . 能進(jìn)行正常的時(shí)、分、秒計(jì)時(shí)功能; ② . 鎖死功能 鎖死狀態(tài)下時(shí)鐘保持不變; ③ . 整點(diǎn)報(bào)時(shí)功能 當(dāng)時(shí)鐘計(jì)到 59’ 53” 時(shí)開始報(bào)時(shí),在 59’ 53” , 59’ 55” ,59’ 57” 時(shí)報(bào)時(shí)頻率為 512Hz,59’ 59” 時(shí)報(bào)時(shí)頻率為 1KHz, ; ④ . 清零功能 — 時(shí)鐘計(jì)時(shí)電路和萬(wàn)年歷電路; ⑤ . 快速校時(shí),校分功 能 校定時(shí)其他計(jì)時(shí)電路保持 ; ⑥ . 鬧表功能 — 定時(shí)精確到分,鬧鐘設(shè)計(jì)響一分鐘,可關(guān)閉; ⑦ . 萬(wàn)年歷 可顯示 XX年 XX月 XX日,可快速校定到正確的日期 。 a、 正常計(jì)時(shí)狀態(tài) ( K K8 都為一) :此狀態(tài)下數(shù)碼管顯示當(dāng)前的時(shí)間, K1為校分開關(guān) , K2為校時(shí)開關(guān) , K4為清零開關(guān) ,校分、校時(shí)都是以 2HZ的信號(hào)進(jìn)行快速到位的。 c、 萬(wàn)年歷狀態(tài)( K7=X、 K8=1): 此狀態(tài)下數(shù)碼管顯示當(dāng)前 的年月日, K1 為 設(shè)定日期開關(guān), K2為 設(shè)定月 開關(guān) , K3為設(shè)定年開關(guān)、 K4 為清零開關(guān) 。 (兩種方案) (方便,易操作,但開關(guān)太多 — 7個(gè)) EDA(II) 多功能數(shù)字鐘 5 K1 K2 K3 K4 K5 K7 K8 0 1 0 1 0 1 0 1 0 1 0 1 0 1 任意 ○ ● ○ ● ○ ● ○ ● ○ ● ○ ● ○ ● ★ 各種操作的開關(guān)狀態(tài) 1 ★★★★○★★ 鎖死狀態(tài) 2 ●○★○●●● 校分狀態(tài) 3 ○●★ ○●●● 校時(shí)狀態(tài) 4 ○○★●●●● 時(shí)鐘清零 5 ●○★★●●○ 設(shè)定鬧鐘分 6 ○●★★●●○ 設(shè)定鬧鐘時(shí) 7 ●○○○●○★ 設(shè)定萬(wàn)年歷天 8 ○●○○●○★ 設(shè)定萬(wàn)年歷月 9 ○○●○●○★ 設(shè)定萬(wàn)年歷年 10 ○○○●●○★ 萬(wàn)年歷清零 b.帶計(jì)數(shù)器的復(fù)用 通過上面的介紹我們可以清楚的看到電路總共有 10 種工作狀態(tài), 但這里要把鎖死狀態(tài)單獨(dú)考慮,所以總共 我們就可以通過控制一個(gè)摸十 或摸九 的計(jì)數(shù)器,再把結(jié)果輸送給一個(gè)數(shù)據(jù)分配器, 在 不同數(shù)值時(shí) 把 開關(guān)狀態(tài)輸送到不同的控制口 ,計(jì)數(shù)器數(shù)值可以通過 LED 燈觀測(cè) 。 (具體電路見下面分析) 二. 方案論證 : : 整個(gè)電路有三大主體電路: 1. 控制電路, , 3,功能電路 時(shí)鐘電路首先要有輸入脈沖,由于平臺(tái)提供了脈沖 發(fā)生器 ,就省去了脈沖發(fā)生器的設(shè)計(jì), 這里我們只需要設(shè)計(jì)一個(gè)分頻器,得到我們需要的頻率。為了顯示當(dāng)前時(shí)鐘時(shí)間,我們需要一個(gè)顯示電路。要實(shí)現(xiàn)整點(diǎn)報(bào)時(shí)功能,一個(gè)報(bào)時(shí)控制電路是必不可少的。 為了實(shí)現(xiàn)我們加入的鬧鐘功能,我們需要一個(gè)鬧鐘時(shí)間設(shè)定電路;鬧鐘時(shí)間保持電路;比較電路;蜂鳴器控制電路;鬧表時(shí)間顯示電路。萬(wàn)年歷電路需要由計(jì)時(shí)電路提供計(jì)時(shí)脈沖,脈沖輸送給 一個(gè)由模 模 1模100 級(jí)聯(lián)而成計(jì)時(shí)電路。 通過以上分析我們可以得到如下框架圖: 圖 1 電路結(jié)構(gòu)圖 II. 電路的工作原理 電路總圖如下(電路進(jìn)行了封裝): EDA(II) 多功能數(shù)字鐘 7 圖 2 電路總圖 首先由分頻器把原來(lái)的 48MHZ 的脈沖用進(jìn)行分頻得到 1Khz、 500hz、 2hz、 1hz的脈沖。把三個(gè)計(jì)數(shù)器的輸出輸送給一個(gè) 24選 4 的數(shù)據(jù)選擇器,六組分別為秒個(gè)位、秒十位、分個(gè)位、分十位、時(shí)個(gè)位、時(shí)十位。數(shù)據(jù)選擇器的輸出送入 7447 段譯碼器的輸入口 , 74138的的輸出由于選擇顯示器的位, 7447 的輸出用于段的顯示,這樣就實(shí)現(xiàn)了動(dòng)態(tài)顯示。 鬧鐘電路:首先通過選擇是否向分位和十位電路送脈沖來(lái)設(shè)定時(shí)間,當(dāng)兩個(gè)電路都無(wú)脈沖則電路保持當(dāng)前的數(shù)字,輸出端上的電平不在改變, 把這個(gè)電平信號(hào)與時(shí)鐘計(jì)時(shí)電路中的對(duì)應(yīng)位輸送到一個(gè)雙輸入的同或門,再把 14 個(gè)與門的輸出與起來(lái),在與 1khz 的脈沖與其來(lái)送入蜂鳴器。 萬(wàn)年歷電路:其正常狀態(tài)的脈沖是由時(shí)鐘計(jì)數(shù)器時(shí)位的進(jìn)位信號(hào)提供的,在調(diào)整日期時(shí),時(shí)鐘信號(hào)是通過開關(guān)選擇一個(gè) 2hz 脈沖輸送到各個(gè)電路時(shí)鐘端 的。萬(wàn)年歷各位的動(dòng)態(tài)顯示原理與上面相同。 以上的各種狀態(tài)下的控制鍵通過模式的選擇進(jìn)行了復(fù)用。 三. 各子模塊設(shè)計(jì)原理 I. 脈沖 分頻 模塊 平臺(tái)提供給我們的是 48Mhz的脈沖 , 由于電路的需要,我們要把 48Mhz的脈沖分頻得到 1Khz(蜂鳴器、動(dòng)態(tài)顯示) 、 500hz(蜂鳴器) 、 2hz(快速調(diào)整) 、 1hz(時(shí)鐘計(jì)數(shù)) 的脈沖 。 EDA(II) 多功能數(shù)字鐘 9 VCC1kINPUT10O U T P U T100O U T P U T500O U T P U TC O U N T E RC L KE N TABCDL D NE N PC L R NQDQAQBQCRCO74160ins t C O U N T E RC L KE N TABCDL D NE N PC L R NQDQAQBQCRCO74160ins t 1V C CC O U N T E RC L KE N TABCDL D NE N PC L R NQDQAQBQCRCO74160ins t 3A N D 2ins t 5A N D 2ins t 61OUTPUT2OUTPUTV C Cc 48 I N P U Tc1O U T P U TC O U N T E RCBAE N TDC L R NC L KE N PL D NQAQBQCQDRCO74163in s tV C Cc3 c1m o d 3in s t 1 圖 5 把一個(gè)模 16 計(jì)數(shù)器和模 3的計(jì)數(shù)器級(jí)聯(lián)( 16 3=48)即可得到模 48的計(jì)數(shù)器 ,輸出即為48分頻后的脈沖。 EDA(II) 多功能數(shù)字鐘 10 分頻器的總電路圖: V C Cc lc 48m I N P U T2hzO U T P U T1hzO U T P U T500hzO U T P U T1 k h zO U T P U T1k2110100500m u l t i D Fins t 41k2110100500m u l t i D Fin s t 5c 4 8 c1m o d 4 8in s t 圖 7 最終從 48MHZ的脈沖我們得到 1Khz(蜂鳴器、動(dòng)態(tài)顯示) 、 500hz(蜂鳴器) 、 2hz(快速調(diào)整) 、 1hz(時(shí)鐘計(jì)數(shù)) 的脈沖 。其中秒位與分位均為 60 進(jìn)制計(jì)時(shí),時(shí)位為 24進(jìn)制計(jì)時(shí) 。 秒向分進(jìn)位,分向時(shí)進(jìn)位,這樣把兩個(gè)模 60 和一個(gè)模 24計(jì)數(shù)器級(jí)聯(lián)就可以得到時(shí)鐘的計(jì)時(shí)電路。把進(jìn)位信號(hào)送入使能端 ENT(高電平有效),當(dāng)?shù)谝黄?jì)數(shù)到 1001( 9)時(shí), ENT端變成 高電平,但 74160是上升沿觸發(fā)的,此時(shí) clk 無(wú)上升沿第二片不計(jì)數(shù),當(dāng) CLK 的 上升沿到來(lái),第一片回到 0000狀態(tài),第二片 計(jì)數(shù)器的值增加 1。第二片我們把 Qc、 Qa 與非起來(lái)送入同步置數(shù)端 LDN,當(dāng)?shù)诙挠?jì)數(shù)值為 0101( 5)時(shí), LDN 端低電平,但 74160 是同步置數(shù)的而且是上升沿有效,此時(shí)無(wú)上升沿不置數(shù),當(dāng) CLK 的上升沿到來(lái)第一片會(huì)到 0000 狀態(tài),第二片置數(shù)為 0000,這樣計(jì)數(shù)器就實(shí)現(xiàn)了 0000000001011001 的計(jì)數(shù)范圍。 ② 、清零:與保持端相似。為什么選用非信號(hào)在總時(shí)鐘電路時(shí)在分析。所以我們要把 Q1b、 Qa Q2b( 00100011— 23)與非起來(lái),把此信號(hào)作為置數(shù)信號(hào)。秒位芯片 CLC1接 1HZ 脈沖 CLC2 不接,分位芯片 CLC1接秒位的進(jìn)位信號(hào)脈沖 CLC2接 2HZ脈沖 用于校分,時(shí)位芯片 CLC1接 分位的進(jìn)位信號(hào)脈沖 CLC2 接 2HZ脈沖 EDA(II) 多功能數(shù)字鐘 14 用于校時(shí)。當(dāng)秒位為 0— 58時(shí), SCI為高,當(dāng)秒位為 59時(shí), SCI為低,此時(shí)出現(xiàn)下降沿 , 分的計(jì)數(shù)器不計(jì)數(shù),當(dāng)秒位由 59— 變?yōu)?0時(shí), SCI又變?yōu)楦唠娖?,出現(xiàn)上升沿, 觸發(fā)分位的計(jì)數(shù)器,分位計(jì)數(shù)器加 1,從而達(dá)到與同步計(jì)數(shù)方法相同的效果,而且不會(huì)出現(xiàn)冒險(xiǎn),這也就是為什么把原來(lái)的進(jìn)位信號(hào)非后再送出的原因,分向秒進(jìn)位分析方法相同。由于校分和校時(shí) 切換的是脈沖開關(guān)的顫抖可能被芯片誤認(rèn)為是計(jì)數(shù)脈沖,從而造成不穩(wěn)定,所以在這兩個(gè)開關(guān)上加了防抖動(dòng)裝置( D觸發(fā)器)。為了達(dá)到消顫的目的同時(shí)又不造成開關(guān)的延時(shí)這里我們引入的脈沖是 2HZ。 校分: 開關(guān)值接到分位的 K,為了達(dá)到校分 時(shí)其他的保持這里還要把開關(guān)的值接到其他兩個(gè)芯片的保持信號(hào)輸入端。 由于秒位在校分和校時(shí)時(shí)都要保持,所以要把兩個(gè)保持信號(hào)或其來(lái)。和靜態(tài)顯示不同,動(dòng)態(tài)顯示使用數(shù)據(jù)選擇器的分時(shí)復(fù)用功能,將任意多位數(shù)碼管的顯示 驅(qū)動(dòng),由一個(gè)七段顯示譯碼器來(lái)完成。 主體是一個(gè) 24 選 4 的數(shù)據(jù)選擇器,路選信號(hào)是由一個(gè) 模 8計(jì)數(shù)器提 供的,這樣在一個(gè)周期里空余兩個(gè)路選信號(hào),由于用的是動(dòng)態(tài)原理, 信號(hào)停留時(shí)間很短一個(gè)周期 1/1000 秒, 這樣 人眼根本看不出。模 8計(jì)數(shù)器的輸出同時(shí)送到位選控制電路,由一個(gè) 74138譯碼器構(gòu)成,以便在任意時(shí)間只有一個(gè)位有效 ,這樣在任意的一個(gè)時(shí)間段里由 7447提供段顯信號(hào), 74138 提供位顯信號(hào), 從而達(dá)到動(dòng)態(tài)顯示的目的。 4數(shù)據(jù)選擇器的設(shè)計(jì) 這里我們是自己依據(jù)實(shí)驗(yàn)參考書里的 mux數(shù)據(jù)選擇器的 VHDL語(yǔ)句編寫的。 use 。 SH1,SH2,SH3,SH4:in std_logic。 MH1,MH2,MH3,MH4:in std_logic。 HH1,HH2,HH3,HH4:in std_logic。 D1,D2,D3,D4 :out std_logic)。 architecture P of MUX24 is SIGNAL SL:std_logic_vector(3 downto 0)。 SIGNAL ML:std_logic_vector(3 downto 0)。 SIGNAL HL:std_logic_vector(3 downto 0)。 SIGNAL D:std_logic_vector(3 downto 0)。//定義數(shù)組范圍 begin SL=SL1amp。SL3amp。 SH=SH1amp。SH3amp。 ML=ML1amp。ML3amp。 MH=MH1amp。MH3amp。 HL=HL1amp。HL3amp。 HH=HH1amp。HH3amp。 SEL=A1amp。A3。 D1=D(3) 。 D3=D(1)。 end P。 電路圖 : EDA(II) 多功能數(shù)字鐘 18 V C C48m I N P U TV C Cx iao f en I N P U TV C Cx iao s hi I N P U TV C CC LE AR I N P U TaO U T P U TbO U T P U TcO U T P U TdO U T P U TeO U T P U TfO U T P U TgO U T P U TSLO U T P U TSHO U T P U TML