加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入

EDA程序設(shè)計(jì)--數(shù)字日歷電路

08/23 10:37
1602
服務(wù)支持:
技術(shù)交流群

完成交易后在“購(gòu)買成功”頁(yè)面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長(zhǎng)和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購(gòu)買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
實(shí)物圖
相關(guān)方案
  • 方案介紹
  • 相關(guān)文件
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

題目:數(shù)字日歷電路

1? 系統(tǒng)設(shè)計(jì)

1.1 設(shè)計(jì)要求

1.1.1 設(shè)計(jì)任務(wù)

設(shè)計(jì)并制作一臺(tái)數(shù)字日歷。

1.1.2 性能指標(biāo)要求

① 用EDA實(shí)訓(xùn)儀的I/O設(shè)備和PLD芯片實(shí)現(xiàn)數(shù)字日歷的設(shè)計(jì)。

② 數(shù)字日歷能夠顯示年、月、日、時(shí)、分和秒。

③ 用EDA實(shí)訓(xùn)儀上的8只八段數(shù)碼管分兩屏分別顯示年、月、日和時(shí)、分、秒,即在一定時(shí)間段內(nèi)顯示年、月、日(如20080101),然后在另一時(shí)間段內(nèi)顯示時(shí)、分、秒(如00123625),兩個(gè)時(shí)間段能自動(dòng)倒換。

④ 數(shù)字日歷具有復(fù)位和校準(zhǔn)年、月、日、時(shí)、分、秒的按鈕,但校年和校時(shí)同用一個(gè)按鈕,即在顯示年、月、日時(shí)用此按鈕校年,在顯示時(shí)、分、秒時(shí)則用此按鈕校時(shí),依此類推。

1.2 設(shè)計(jì)思路及設(shè)計(jì)框圖

1.2.1設(shè)計(jì)思路

根據(jù)萬年歷的實(shí)際特點(diǎn),本設(shè)計(jì)最基礎(chǔ)的部分就是24小時(shí)計(jì)數(shù)器部分。它由兩片60進(jìn)制計(jì)數(shù)器和一片24進(jìn)制計(jì)數(shù)器構(gòu)成,輸入clk為1Hz(秒)的時(shí)鐘,經(jīng)過60分頻后產(chǎn)生1分鐘的時(shí)鐘信號(hào),再經(jīng)過60分頻后,產(chǎn)生1小時(shí)的時(shí)鐘信號(hào),最后進(jìn)行24分頻,得到1天的脈沖送cout輸出。

當(dāng)計(jì)時(shí)器設(shè)計(jì)完成后,可以為它產(chǎn)生一個(gè)元件符號(hào),作為萬年歷設(shè)計(jì)的基本元件。除了基礎(chǔ)的計(jì)時(shí)器模塊(day),萬年歷電路還包括年月日模塊(nyr2013),控制模塊(contr),校時(shí)選擇模塊(mux_4)和顯示選擇模塊(mux_16)。在基礎(chǔ)計(jì)數(shù)器完成的天計(jì)數(shù)脈沖完成之后,送入年月日模塊中進(jìn)入進(jìn)一步的計(jì)數(shù),最終進(jìn)一步得到日,月,年的計(jì)數(shù)結(jié)果。

由于設(shè)計(jì)要求8只八段數(shù)碼管分兩屏分別顯示年、月、日和時(shí)、分、秒,所以控制模塊便通過控制信號(hào)k來控制數(shù)碼管是顯示時(shí)、分、秒還是年、月、日,或者自動(dòng)輪流顯示。相應(yīng)的顯示選擇模塊也是通過k信號(hào)來控制是選擇將計(jì)時(shí)器模塊的時(shí)、分、秒結(jié)果信號(hào),還是將年月日模塊的年、月、日結(jié)果信號(hào)送到數(shù)碼管顯示。

設(shè)計(jì)還要求數(shù)字日歷具有復(fù)位和校準(zhǔn)年、月、日、時(shí)、分、秒的按鈕,但校年和校時(shí)同用一個(gè)按鈕,所以應(yīng)運(yùn)而生有校時(shí)選擇模塊,同樣也是在k信號(hào)的控制下,對(duì)j1、j2、j3這三個(gè)公共校時(shí)按鈕所產(chǎn)生的校時(shí)信號(hào)選擇是送到計(jì)時(shí)器模塊的校時(shí)端,還是年月日模塊的校年端,從而實(shí)現(xiàn)校時(shí)選擇功能。

以上就是大體的設(shè)計(jì)思路,各個(gè)模塊相輔相成,最終滿足設(shè)計(jì)要求。

1.2.2總體設(shè)計(jì)框圖

2? 各個(gè)模塊程序的設(shè)計(jì)

2.1 控制模塊contr的設(shè)計(jì)

控制模塊的元件符號(hào)如上圖所示。由于設(shè)計(jì)要求8只八段數(shù)碼管分兩屏分別顯示年、月、日和時(shí)、分、秒,因此需要通過在控制模塊中通過分頻電路來實(shí)現(xiàn),在此模塊中采用了一個(gè)16秒的分頻電路,占空比為50%,即8秒高電平,8秒低電平,因此很容易實(shí)現(xiàn)萬年歷年、月、日和時(shí)、分、秒的自動(dòng)切換顯示功能。其中clk是1秒脈沖信號(hào)輸入端,k1和k2是控制輸入端:當(dāng){k1,k2}=00或11時(shí)即進(jìn)入自動(dòng)切換顯示模式,當(dāng){k1,k2}=01時(shí),數(shù)碼管僅顯示時(shí)、分、秒,當(dāng){k1,k2}=10時(shí),數(shù)碼管僅顯示年、月、日。{k1,k2}的值決定了控制信號(hào)k的輸出。

2.2 校時(shí)選擇模塊mux_4v的設(shè)計(jì)

校時(shí)選擇模塊的元件符號(hào)如上圖所示。k是控制信號(hào)的輸入端,由控制模塊輸出,控制對(duì)j1、j2、j3這三個(gè)公共校時(shí)按鈕所產(chǎn)生的校時(shí)信號(hào)選擇是送到計(jì)時(shí)器模塊的校時(shí)端,還是年月日模塊的校年端,其中當(dāng)k=0時(shí),將j1、j2、j3產(chǎn)生的信號(hào)送到計(jì)時(shí)器模塊的jm(校秒)、jf(校分)、js(校時(shí))端;其中當(dāng)k=1時(shí),將j1、j2、j3產(chǎn)生的信號(hào)送到年月日模塊的jr(校日)、jy(校月)、jn(校年)端,從而校年和校時(shí)可以同用一組按鈕。

2.3 年月日模塊nyr2020的設(shè)計(jì)

年月日模塊的元件符號(hào)如上圖所示。k是控制信號(hào)的輸入端,由控制模塊輸出。其中,clrn是異步清除輸入端,低電平有效;clk是時(shí)鐘輸入端,上升沿有效;jn、jy、jr分別是校年、校月。校日的輸入端,qn、qy、qr則分別是年、月、日的狀態(tài)輸出端。

2.4 顯示選擇模塊mux_16v的設(shè)計(jì)

顯示選擇模塊的元件符號(hào)如上圖所示。k是控制信號(hào)的輸入端,由控制模塊輸出。因?yàn)榭刂颇K決定了數(shù)碼管有多中不同的顯示模式,所以當(dāng)k=0時(shí),將計(jì)時(shí)器模塊輸出的qm、qf、qs的狀態(tài)信號(hào)送到數(shù)碼管顯示;而當(dāng)k=1時(shí),將年月日模塊輸出的qr、qy、qn的狀態(tài)信號(hào)送到數(shù)碼管顯示。其中我加入了擴(kuò)展功能,在數(shù)碼管只顯示時(shí)、分、秒的時(shí)候,有2個(gè)數(shù)碼管并沒有數(shù)值顯示,因此我將其中一個(gè)數(shù)碼管選擇顯示A或F,當(dāng)時(shí)間在12點(diǎn)之前是顯示A,代表上午(AM),當(dāng)時(shí)間在12點(diǎn)之后時(shí)顯示F,代表下午(FM)。

2.5 計(jì)時(shí)器模塊jsq的設(shè)計(jì)

計(jì)時(shí)器模塊的元件符號(hào)如上圖所示。clk是秒時(shí)鐘輸入端;clrn是清除輸入端,低電平有效;jm、jf、js分別是校秒、校分、校時(shí)的輸入端,下降沿有效;qm、qf、qs分別是秒、分、時(shí)的輸出端;day是“天”脈沖輸出端。計(jì)時(shí)器模塊是萬年歷電路最基礎(chǔ)的組成部分。它由分頻器、兩片60進(jìn)制計(jì)數(shù)器和一片24進(jìn)制計(jì)數(shù)器構(gòu)成,具體構(gòu)成如下圖:

2.6 LED顯示模塊LED1的設(shè)計(jì)(擴(kuò)展功能的實(shí)現(xiàn))

qy和qr和nyr模塊中的輸出相連,LED是輸出,在實(shí)驗(yàn)時(shí)用一個(gè)LED燈把管腳鎖住鎖住,每到節(jié)日來的脈沖便會(huì)使LED燈亮。加入的擴(kuò)展功能,能讓萬年歷在節(jié)日的時(shí)候能亮一盞LED燈,比如在元旦節(jié)、情人節(jié)一些比較重要的節(jié)日,起到提醒的作用,也可以從而使萬年歷的顯示內(nèi)容更為完整。

3? 調(diào)試過程

把寫好的程序經(jīng)驗(yàn)證仿真確認(rèn)無誤并且鎖定好管腳后經(jīng)下載端口下載到EDA實(shí)訓(xùn)儀上,通過實(shí)際操作來驗(yàn)證是否能實(shí)現(xiàn)相應(yīng)功能。

4? 功能測(cè)試

4.1 測(cè)試儀器與設(shè)備

① EDA實(shí)訓(xùn)儀???? ????? 1臺(tái)

② 電腦??????????? ??? 1臺(tái)

4.2 性能指標(biāo)測(cè)試

① 數(shù)字日歷能夠正確顯示年、月、日、時(shí)、分和秒。

② EDA實(shí)訓(xùn)儀上的8只八段數(shù)碼管能夠分兩屏分別顯示年、月、日和時(shí)、分、秒。

③ EDA實(shí)訓(xùn)儀上的8只八段數(shù)碼管能夠自動(dòng)切換顯示年、月、日和時(shí)、分、秒。

④ 數(shù)字日歷具有復(fù)位和校準(zhǔn)年、月、日、時(shí)、分、秒的按鈕,且校年和校時(shí)同用一個(gè)按鈕就能實(shí)現(xiàn)。

4.3 誤差分析

由于在程序編寫的過程中經(jīng)過了反復(fù)的思考和檢查,因此在下載到硬件電路后,所有基礎(chǔ)功能都達(dá)到了設(shè)計(jì)要求,并且自己的擴(kuò)展功能也成功的實(shí)現(xiàn)。

部分程序清單

1、計(jì)算器模塊(jsq)

(1)分頻器

module fenpin(clk,cout);

input clk;

output reg cout;

reg[24:0]qq;

always @(posedge clk)

begin

if(qq==19999999) begin qq=0;cout=1;end

else begin qq=qq+1;cout=0;end

end

endmodule

(2)cnt60

module cnt60(clk,clrn,j,q,cout);

input clrn,clk,j;

output reg[7:0]q;

output reg cout;

always @(posedge clk^j or negedge clrn)

begin

if(~clrn) q=0;

else begin

if(q=='h59) q=0;

else q=q+1;

if(q[3:0]=='ha) begin q[3:0]=0; q[7:4]=q[7:4]+1;end

if(q=='h59) cout=1;

else cout=0;

end

end

endmodule

(3)cnt24

module cnt24(clrn,clk,j,q,cout);

input clrn,clk,j;

output reg[7:0]q;

output reg cout;

always @(posedge clk^j or negedge clrn)

begin

if(~clrn) q=0;

else begin

if(q=='h23) q=0;

else q=q+1;

if(q[3:0]=='ha) begin q[3:0]=0;q[7:4]=q[7:4]+1;end

if(q=='h23) cout=1;

else cout=0;

end

end

endmodule

2、控制模塊(contr)

module contr(clk,k1,k2,k);

input clk,k1,k2;

output reg k;

reg[3:0] qc;

reg rc;

always @(posedge clk)

begin

qc=qc+1;

if(qc<8) rc=0;

else rc=1;

case({k1,k2})

0:k=rc;

1:k=0;

2:k=1;

3:k=rc;

endcase

end

endmodule

3、校時(shí)選擇模塊(mux_4)

module mux_4(k,jm,jf,js,jr,jy,jn,j1,j2,j3);

input k,j1,j2,j3;

output reg jm,jf,js,jr,jy,jn;

always

begin

if(k==0)

{jm,jf,js}={j1,j2,j3};

else

{jr,jy,jn}={j1,j2,j3};

end

endmodule

4、顯示選擇模塊(mux_16v)

module mux_16v(k,qm,qf,qs,qr,qy,qn,q);

input k;

input[7:0]qm,qf,qs,qr,qy;

input[15:0]qn;

output reg [31:0] q;

always

begin

if(k==0)

begin

if(qs<'h12)

q[31:28]='ha;

else

q[31:28]='hf;

q[27:24]=0;

q[23:0]={qs,qf,qm};

end

else

q={qn,qy,qr};

end

endmodule

  • 有需要資料的可了解一下.docx

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
ABS10-32.768KHZ-9-T 1 Abracon Corporation CRYSTAL 32.7680KHZ 9PF SMD

ECAD模型

下載ECAD模型
$0.85 查看
FOD420SD 1 onsemi Random Phase Snubberless Triac Driver, 1000-REEL
$2.69 查看
AT27C256R-70PU 1 Atmel Corporation OTP ROM, 32KX8, 70ns, CMOS, PDIP28, 0.600 INCH, GREEN, PLASTIC, MS-011AB, DIP-28

ECAD模型

下載ECAD模型
$2.54 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜