第一篇:基于verilog的數字時鐘設計
課程設計
基于Verilog HDL的數字秒表設計
系別:物理與電氣工程學院 專業:微電子學 班級:<2>班 成員:
目錄
一、前言…………………………………………………………………………………………………………………3
二、實驗目的………………………………………………………………………………………………………….3
三、功能設計…………………………………………………………………………………………………………3
四、用Verilog描述電路……………………………………………………………………………………….4
4.1時鐘調校及計時模塊……………………………………………………………………………………4.2整數分頻模塊………………………………………………………………………………………………..8
4.3時鐘信號選擇模塊………………………………………………………………………………………8
4.4七段顯示設置………………………………………………………………………………………………14.4.1 BCD碼顯示模塊……………………………………………………………………………………11
4.4.2 二位七段顯示模塊………………………………………………………………………………14.4.3一位七段顯示模塊………………………………………………………………………………12
4.5頂層模塊實現…………………………………………………………………………………………14
五、模擬與仿真…………………………………………………………………………………………………..15
六、邏輯綜合……………………………………………………………………………………………………….16
七、下載到硬件電路……………………………………………………………………………………………16
八、總結……………………………………………………………………………………………………………….18
九、心得體會……………………………………………………………………………………………………….18
十、參考文獻……………………………………………………………………………………………………….19
一、前言
隨著微電子技術的的飛速發展,大規模可編程器件的密度和性能不斷提高,數字系統的設計方法、設計過程也發生了重大改變,傳統的設計方法已經逐漸被電子設計自動化EDA(Electronic Design Automation)工具所取代。可編程器件可以通過硬件描述語言(如Verilog HDL)的形式根據實際設計的需要靈活地嵌入規模化的數字單元,大大地縮短了產品的設計周期。以可編程邏輯器件為核心的設計在數字系統設計領域將占據越來越重要的作用,因此,作為硬件設計者掌握EDA設計方法和工具是必須的。
二、實驗目的
(1)通過本次課程設計加深對Verilog語言課程的全面認識、復習和掌握。(2)掌握定時器、外部中斷的設置和編程原理。
(3)通過此次課程設計能夠將軟硬件結合起來,對程序進行編輯、調試。使其能夠通過電腦下載到芯片,正常工作。
(4)實際操作Quartus II軟件,復習鞏固以前所學知識。
三、功能設計
數字鐘是一個常用的數字系統,其主要功能是計時和顯示時間。這里通過一個數字鐘表的模塊化設計方法,說明自頂向下的模塊化設計方法和實現一個項目的設計步驟。這里實現的電子表具有顯示和調時的基本功能,可以顯示時、分 秒和毫秒,并通過按鍵進行工作模式選擇,工作模式有4種,分別是正常計時模式、調時模式、調分模式、調秒模式。
構成電子表的基本基本模塊有四個,分別是時鐘調校及計時模塊myclock、整數分頻模塊int_div、時鐘信號選擇模塊clkgen和七段顯示模塊disp_dec。
四、用Verilog實現電路
4.1時鐘調校及計時模塊
時鐘調校及計時模塊myclock實現的功能是根據當前的工作狀態進行時、分、秒的調整或正常的計時。代碼端口說明如下:
輸入信號:
RSTn——復位信號
CLK——100Hz時鐘信號
FLAG[1:0]——工作模式控制信號,模式定義為:00表示正常顯示,01表示調時,10表示調分,11表示調秒;
UP——調校模式時以加1方式調節信號;
DN——調校模式時以減1方式調節信號。
輸出信號:
H[7:0]——“時”數據(十六進制);
M[7:0]——“分”數據(十六進制);
S[7:0]——“秒”數據(十六進制);
MS[7:0]———“百分秒”數據(十六進制)。
該模塊的設計思路是,當復位信號RSTn有效時,時、分、秒信號清零,否則工作模式控制信號FLAG的值決定當前的工作狀態。當FLAG=2’b00時,電子表工作在正常計時狀態,對輸入的100Hz的時鐘信號clk進行計數,修改當前的百分秒(MS)、秒(S)、分(M)和時(H)的計數值;當FLAG信號=2’b01時,電子表工作在“時”校正狀態,若此時UP信號有效則H加1,若此時DN信號有效則H減1,;當FLAG信號=1’b10時,電子表工作在“分” 校正狀態,若此時UP信號有效則M加1,若此時DN信號有效則M減1;當FLAG=2’b11時,電子表工作在“秒”校正狀態,其UP和DN的控制過程與“時”、“分”類似
代碼:
module myclock(RSTn,CLK,FLAG,UP,DN,H,M,S,MS);
input RSTn,CLK,UP,DN;
output [7:0] H,M,S;
output [7:0] MS;
input[1:0] FLAG;
reg [5:0] m_H,m_M,m_S;
reg [6:0] m_MS;
assign H=m_H;
assign M=m_M;
assign S=m_S;
assign MS=m_MS;
always @(posedge CLK)
if(~RSTn)
begin
m_H<=8'd23;
m_M<=8'd52;
m_S<=8'b0;
m_MS<=8'b0;
end
else if(FLAG==2'b01)
begin
if(UP)
begin
if(m_H==8'd23)
m_H<=8'd0;
else
m_H=m_H+1'b1;
end
else if(DN)
//復位狀態
//調時狀態 5
begin
if(m_H==8'h00)
m_H<=8'd23;
else
m_H<=m_H-1'b1;
end
end
else if(FLAG==2'b10)
begin
if(UP)
if(m_M==8'd59)
m_M<=8'd0;
else
m_M<=m_M+1'b1;
else if(DN)
if(m_M==8'h00)
m_M<=8'd59;
else
m_M<=m_M-1'b1;
end
else if(FLAG==2'b11)
begin
if(UP)
if(m_S==8'd59)
m_S<=8'b0;
else
m_S<=m_S+1'b1;
else if(DN)
if(m_S==8'h00)
//調分狀態
//調秒狀態6
m_S<=8'd59;
else
m_S<=m_S<=m_S-1'b1;
end
else
begin
//正常計時狀態
if(m_MS==8'd99)
begin
m_MS<=8'd0;
if(m_S==8'd59)
begin
m_S<=8'd0;
if(m_M==8'd59)
begin
m_M<=8'd0;
if(m_H==8'd23)
m_H<=0;
else
m_H<=m_H+1'b1;
end
else
m_M<=m_M+8'd1;
end
else
m_S<=m_S+1'b1;
end
else
m_MS<=m_MS+1'b1;
end
endmodule
4.2整數分頻模塊
由于數字系統提供的基準時鐘信號頻率往往較高,因此需要分頻模塊產生所需頻率的失蹤信號,例如上面時鐘校正及計時模塊所需的100Hz的時鐘信號。整數分頻模塊int_div可以實現對輸入時鐘clock進行F_DIV分頻后輸出clk_out。F_DIV分頻系數范圍為1~2^n(n=F_DIV_WIDTH),若要改變分頻系數,改變參數F_DIV或F_DIV_WIDTH到相應范圍即可。若分頻系數為偶數,則輸出時鐘占空比為50%;若分頻系數為奇數,則輸出的時鐘占空比取決于輸入的時鐘占空比和分頻系數(當輸入為50%時,輸出也是50%)。
代碼:
module int_div(clock,clk_out);
parameter F_DIV=48000000;
//分頻系數
parameter F_DIV_WIDTH=32;
//分頻計數器寬度
input clock;
//輸入時鐘
output clk_out;
//輸出時鐘
reg clk_p_r;
reg clk_n_r;
reg[F_DIV_WIDTH-1:0] count_p;
reg[F_DIV_WIDTH-1:0] count_n;
wire full_div_p;
//上升沿計數滿標志
wire half_div_p;
//上升沿計數半滿標志
wire full_div_n;
//下降沿計數滿標志
wire half_div_n;
//下降沿計數半滿標志
//判斷計數標志位置位與否
assign full_div_p=(count_p assign half_div_p=(count_p<(F_DIV>>1)-1); assign full_div_n=(count_n assign half_div_n=(count_n<(F_DIV>>1)-1); //時鐘輸出 assign clk_out=(F_DIV==1)?clock:(F_DIV[0]?(clk_p_r&clk_n_r):clk_p_r); always @(posedge clock) //上升沿脈沖計數 begin if(full_div_p) begin count_p<=count_p+1'b1; if(half_div_p) clk_p_r<=1'b0; else clk_p_r<=1'b1; end else begin count_p<=0; clk_p_r<=1'b0; end end always @(negedge clock) //下降沿脈沖計數 begin if(full_div_n) begin count_n<=count_n+1'b1; if(half_div_n) clk_n_r<=1'b0; else clk_n_r=1'b1; end else begin count_n<=0; clk_n_r<=1'b0; end end endmodule 4.3時鐘信號選擇模塊 時鐘信號選擇模塊clkgen實際上時一個二選一電路,用于提供時鐘調校及計時時模塊所需的時鐘脈沖。當電子表工作在正常計時狀態時選擇100Hz時鐘信號;當電子表工作在調時、調分、調秒是那種設置模式時,如果采用100Hz時鐘信號,那么手動一次按鍵可能引起設置數據的一串跳變,因此為了方便按鍵時動作對時間的設置,這里采用2Hz的時鐘信號。其端口說明如下: flag——時鐘選擇輸入信號; clk_100Hz———輸入100Hz的時鐘信號; clk_2Hz——輸入2Hz的時鐘信號; Clkout——輸出時鐘信號。 代碼: module clkgen(flag,clk_100hz,clk_2hz,clkout); input[1:0] flag; //若flag=0則clkout=100Hz,否則clkout=2Hz input clk_100hz,clk_2hz; output clkout; assign clkout=(flag==2'b00)?clk_100hz:clk_2hz;endmodule 4.4七段顯示設置 為了對時鐘時、分、秒和毫秒數據輸出顯示,需要將時、分、秒和毫秒的二進制轉換為十進制數。由于時、分、秒最大到60,毫秒最大到99,所以十進制數選擇2位就能滿足要求。為了在七段數碼管輸出時間數據,還需要將顯示的十進制數轉化為七段段碼。以上功能分別由BCD碼顯示模塊和七段譯碼管模塊來實現。 4.4.1 BCD碼顯示模塊 BCD碼顯示模塊的功能是將8位二進制數轉化為2位十進制數后,進行七段段譯碼顯示。為了實現顯示功能,在其內部調用了dual_hex 2位七段顯示模塊。其端口說明如下: 輸入信號: hex——2位8421BCD碼輸入。輸出信號: dispout——2位8421碼對應的七段數碼管段碼。 代碼: module disp_dec(hex,dispout); input[7:0] hex; //八位二進制輸入數據 output[15:0] dispout; //2位十進制的七段段碼顯示數據 reg[7:0] dec; always @(hex) begin //8位二進制數轉化為2位BCD碼 dec[7:4]=hex/4'd10; dec[3:0]=hex%4'd10; end dual_hex u1(1'b0,dec,dispout); //調用2位共陽極七段顯示模塊 endmodule 4.4.2 二位七段顯示模塊 二位七段顯示模塊的功能是將2進制或十六進制數轉化為對應的七段段碼,內部調用了一位七段譯碼模塊seg_decoder。 代碼: module dual_hex(iflag,datain,dispout); input iflag; //共陰或共陽輸出選擇 input[7:0] datain; //2位的十進制或十六進制數據 output[15:0] dispout; //2個七段段碼數據 seg_decoder u1(iflag,datain[7:4],dispout[15:8]); seg_decoder u2(iflag,datain[3:0],dispout[7:0]);endmodule 4.4.3 一位七段譯碼模塊 一位七段譯碼模塊的功能是將4位二進制數轉化為對應的共陰或共陽七段段碼。 代碼: module seg_decoder(iflag,iA,oY); input iflag; //共陰或共陽輸出選擇 input[3:0] iA; //4位二進制數據 output reg[7:0] oY; //七段段碼顯示數據 always @(iflag,iA) begin case(iA) //共陰級七段輸出 4'b0000:oY=8'h3f; 4'b0001:oY=8'h06; 4'b0010:oY=8'h5b; 4'b0011:oY=8'h4f; 4'b0100:oY=8'h66; 4'b0101:oY=8'h6d; 4'b0110:oY=8'h7d; 4'b0111:oY=8'h27; 4'b1000:oY=8'h7f; 4'b1001:oY=8'h6f; 4'b1010:oY=8'h77; 4'b1011:oY=8'h7c; 4'b1100:oY=8'h58; 4'b1101:oY=8'h5e; 4'b1110:oY=8'h79; 4'b1111:oY=8'h71; endcase if(!iflag) oY=~oY; end endmodule //共陽極七段輸出 13 4.5、頂層模塊的實現 頂層模塊是將各功能模塊連接起來,實現電子表的完整功能。其端口信號說明如下: 輸入信號: iCLK——50——50MHz時鐘信號; RSTn——復位信號; FLAG——工作模式控制信號,模式定義為:00表示正常顯示,01表示調時,10表示調分,11表示調秒; UP——調校模式時以加1方式調節信號; DN——調校模式時以減1方式調節信號。 輸出信號: H_dis——“小時”數據的七段數碼管數據; M_dis——“分鐘”數據的七段數碼管數據; S_dis——“秒”數據的七段譯碼管數據; MS_dis——“百分秒”數據的七段譯碼管數據; Mode——工作模式輸出; H——“時”數據(十六進制); M——“分”數據(十六進制); S——“秒”數據(十六進制); MS———“百分秒”數據(十六進制)。 代碼: module clock(iCLK_50,RSTn,FLAG,UP,DN,H_dis,M_dis,S_dis,MS_dis,Mode,H,M,S); input iCLK_50; input RSTn,UP,DN; input [1:0] FLAG; output [1:0] Mode; output [15:0] H_dis,M_dis,S_dis,MS_dis; output [7:0] H,M,S; wire [7:0] MS; wire clk_100hz,clk_2hz; wire clk; assign Mode=FLAG; int_div #(500000,32)nclk100(iCLK_50,clk_100hz); int_div #(50000000,32)nclk2(iCLK_50,clk_2hz); clkgen u0(FLAG,clk_100ha,clk_2hz,clk); myclock u1(RSTn,clk,FLAG,UP,DN,H,M,S,MS); disp_dec Hour(H,H_dis); disp_dec Minute(M,M_dis); disp_dec Second(S,S_dis); disp_dec hour(MS,MS_dis);endmodule 五、模擬與仿真 在Quartus II中利用仿真波形進行功能或時序仿真的基本步驟如下:(1)創建新的矢量波形文件(*.vwf).(2)添加輸入、輸出節點。(3)編譯輸入節點的波形。 (4)完成矢量波形文件的創建之后,用戶即可以對設計進行功能或時序仿真。(5)仿真啟動后,狀態窗口會同時自動打開,在狀態窗口中顯示仿真進度及所用時間。 (6)默認情況下,仿真器報告窗口內在仿真過程中會顯示仿真波形部分,其中還包括當前仿真器的設置信息和仿真信息等。 計時狀態仿真波形 六、邏輯綜合 完成項目創建和設計輸入后,用Quartus II的編譯器(compiler)對設計進行檢查和邏輯綜合,并生成用于配置可編程邏輯器件的下載文件。Quartus II編譯器中的Analysis & Synthesis模塊將分析設計文件并建立工程數據庫。該模塊使用Quartus II內置綜合器,綜合Verilog HDL設計文件(.v)。(1)編譯器件選項設置。(2)引腳分配。(3)編譯設計。(4)查看適配結果。 七、下載到硬件電路 在設計(工程)編譯成功后,便可以對所選的(Altera)目標器件進行編程和配置。Quartus II編譯器的Assembler 模塊將會對工程的各個組件轉換成編程文件,包括編譯器對象文件(*.pof)和SRAM對象文件(.sof)。Quartus II編譯器(Progrsmmer)可以使用這些編程文件與Altera編程硬件配合,對Quartus II軟件所支持的Altera器件進行編程和配置。 秒顯示 分顯示 八、總結 在QuartusII開發環境下,采用自頂向下的設計方法有利于在早期發現結構設計中的錯誤,避免不必要的重復設計。再結合基于FPGA 的“在系統”可編程實驗板,輕輕松松就能實現各種電子產品的設計,現場觀察實驗測試結果。大大縮短了產品的設計周期和調試周期,提高了設計的可靠性和成功率,充分體現了可編程邏輯器件在數字電路設計中的優越性。 九、心得體會 兩周時間的課程設計,終于達到了數字秒表系統的要求,盡管還不是十分完美,但從心底里說,還是很高興的。 通過以上步驟就可以完成對數字秒表的過程設計。這次設計,我克服了很多關于設計問題方面的困難,使我對Quartus II軟件的使用有了更進一步的了解,同時也積累了一些經驗。在這次的課程設計中,我體會最深的就是,理論與實際的差別,往往理論上十分成熟的技術,在真正實現的過程中還是會出現很多問題,要考慮到諸多因素。通過此次設計,我真正的意識到,在以后的學習中,要理論聯系實際,把我們所學的理論知識用到實際當中,只有通過實踐,才能不斷提高,不斷進步。 參考文獻 [1]王金明.Verilog HDL程序實際教程.北京:人民郵電出版社,2004.[2]杜建國.Verilog HDL硬件描述語言.北京:國防工業出版社,2004.[3]王誠, 吳繼華,等.Altera FPGA/CPLD設計(基礎篇).北京:人民郵電出版社,2005.[4]夏宇聞.Verilog數字系統設計教程.北京:航空航天大學出版社,2003.[5]Stephen Brown,Zvonko Vranesic.數字邏輯基礎與Verilog設計.北京:機械工業出版社,2008.[6]杜慧敏,等.基于Verilog的FPGA設計基礎.西安:電子科技大學出版社,2006.[7]杜勇.FPGA/VHDL設計入門與進階.北京:機械工業出版社,2011.[8]楊曉惠,等.FPGA系統設計與實例.北京:人民郵電出版社.[9]周瑞景,等.基于Quartus II的數字系統Verilog HDL設計實例講解.北京:電子工業出版社,2010.[10]王金明.數字系統設計與Verilog HDL設計實例.北京:電子工業出版社,2009. (電子技術課程) 設計說明書 數字電子時鐘 起止日期: 2016 年 11月23日 至 2016年 11月 27 日 學生姓名 班級 學號 成績 指導教師(簽字) 交通工程學院(部)2016年 11月 29日 數字電子鐘 設計一個數字電子鐘,具體要求: 1、以24小時為一個計數周期;具有“時”、“分”、“秒”數字數碼管顯示電路; 2、具有校時功能; 3、整點前10秒,數字鐘會自動報時,以示提醒; 4、設計+5V直流電源。(設計220V輸入,+5V輸出) 5、啟動電路。 6、用PROTEUS畫出電路原理圖仿真成功再用數字電子技術實驗箱驗證。; 設計步驟及內容: 一、首先對本次設計所需要用到的器件的引腳及功能進行詳細的了解 1、555定時器 “1”腳為公共接地端GND;“8”腳為正電源電壓VCC;“2”腳是觸發端;“4”腳為復位輸出端; “7”腳為放電端;“6”腳位閾值端;“5”腳為控制電壓輸入端;“3”腳是輸出端。2、74LS163 CEP、CET:計數使能輸入端,高電平有效;CLK:時鐘脈沖,上升沿觸發; MR:清零端,低電平有效;LOAD:并行置數使能端,低電平有效;RCO:進位信號輸出端; D[0:3]:并行二進制數據輸入端;Q[3:0]:計數狀態輸出端。 二、實驗步驟 1、連接555定時器,產生1Hz方波。 首先將555定時器按照如圖所示的接法連接起來,并根據555定時器電容充放電時間的計算確定各元件的取值。 電容充電時間T=0.7(R1+R2)C1 為使555定時器輸入1Hz的方波,經計算各元件的取值為 R1=43K,R2=51K,C1=10u F,C2=0.01u F。3腳作為時鐘脈沖的輸出連接到各個計數器的CLK。 2、時鐘電路的連接 本次設計使用的是74LS163芯片,因為它是16進制計數器,所以需要在控制端加上適當的門電路使其構成十進制計數器,將計數器按照如圖所示的方式連接起來。 a、秒各位 將輸出端的Q3、Q1用與門(74LS08)連接起來并輸入到清零端MR,其目的是為了構成十進制,當計數器計數到9時,與門U1打開,經過非門U1A輸出低電平使得MR在下一個脈沖上升沿時清零。 b、秒十位 與秒各位不同的是,秒十位的使能端是由各位Q3、Q1相與的電平控制的,秒十位的進位的條件是當各位為9時,在下一個脈沖的上升沿來臨時進位。秒十位的清零需要等到個位為9且十位為5時,U2與U3經過U4輸出高電平再經過U3A輸出低電平,是的MR在下一個脈沖上升沿是清零。 c、分個位 分各位的構成原理與秒個位相似,不同的是控制端上的門電路換成了與非門U4(為了使之后方便連接門電路),分個位的使能信號由U3輸入,清零條件為分個位為9,秒為59時清零,清零信號由U5A輸出的低電平提供。 d、分十位 分十位的構成原理與秒十位相似,使能信號由U4輸出的高電平提供,清零條件為分為59,秒為59,清零信號由U7A輸出的低電平提供。 e、時 時個位的使能信號由U7提供,時十位的使能信號由U9提供。時個位有兩個清零信號,一個是當它自身為9時,等到下一個時鐘脈沖的上升沿時清零,另一個是當十位為2,個位為3時,十位和個位同時清零。用與非門U12將個位Q2和十位Q1相連,再將兩個清零信號相與,實現清零工作。 完整的時鐘電路如下圖所示 3、校準電路 校準電路連線圖如圖所示,當開關打在右邊時,U14B關閉不工作,U14C送出一個高電平信 6 號,等到秒對分的進位信號來臨時和進位信號通過U15A送出一個低電平,使得U15B打開,又因為U15B接入了分個位的使能端,所以相當于開關打在右邊時校準電路成為分個位的使能信號進位信號;開關打在左邊時,U14C關閉不工作,U14B送出一個高電平信號,然后與秒脈沖信號通過U14D送出一個低電平接入分個位的使能端,所以相當于開關打在左邊時,分個位接收了一個秒脈沖信號,使得它能像秒鐘一樣計時并且能向十位進位,就相當于校準功能,當分鐘跳到你想要的時間時把開關打到右邊(此時時鐘電路照常工作)從你調整好的時間繼續計數,達到校準的目的。(時的校準電路與分的校準電路一樣) 但是直接把校準電路這樣連入時鐘電路會出現一些問題,就是在校準的時候分會出現16進制,所以就需要在電路中加入反饋,將它控制到10進制,具體的反饋連接方式如圖所示(不能接在MR端,不然會使電路出現問題)時鐘電路與校準電路如圖所示 將開關打到左邊進行校準: 完成之后將開關打到右邊繼續計數: 4、報時電路 報時電路使用的是74HC30芯片,它是一個8輸入與非門芯片,只有當所有輸入都為1時輸出為0,使得喇叭能夠正常工作(喇叭一端接高電平一端接低電平),因為是整點報時,所以秒個位就不用接入芯片,只需在多余的兩個引腳接入電源就可以實現在59分50秒到59秒的報時,具體接法如下圖所示 整個可校準可報時的數字電路如圖所示 三、心得體會 本次數字電子課程設計是我覺得收獲非常大的一次實習,而這次課程設計給我們提供了一個應用自己所學知識來設計作品的平臺。 在本次課程設計中,我更加熟悉Proteus軟件的操作了,同時對74LS163、74LS161、74HC30、555等芯片加深了了解,和對它們的使用,對于數字、模擬電路的綜合運用有了更深一步理解,為以后的電路分析和設計奠定了一定的基礎。 本次課程設計很遺憾沒能選擇最有挑戰性的課題來做,因為基礎知識不夠扎實,做數字電子時鐘也是費了很大勁。 這次設計我主要覺得有兩個難點: 一、從一開始沒選擇十進制計數器來做,所以使設計的電路看起來很復雜,并且進位需要考慮的很周全,越高位必要條件越多,所以用了許多門電路; 二、校準電路直接連入電路會產生十六進制,所以需要加反饋,在最開始不太理解反饋的意思,又去翻了數電書還問了老師很多次,接了很多遍才將反饋接出來。 但是最后成功了看著自己能把理論知識運用到實際,心里還是非常開心的,在做課題的這幾天學會了很多,對仿真也產生了濃厚的興趣,想自己試著在課余時間再做做幾個課題。 實驗報告 數字時鐘的設計 一、實驗目的 1、掌握數字鐘的設計方法。 2、掌握計數器相互級聯的方法。學號:14040120049 姓名:陶澤 二、實驗設備和器件 1、數字邏輯電路實驗板2、74HC(LS)20(二四輸入與非門) 3、74HC(LS)160(4位十進制計數器) 1塊 2片 4片、三、實驗原理 1、設計總框圖: 2、各部分單元的設計提示與分析: 1)時鐘源 它是數字式時鐘的核心,它保證了時鐘的走時準確及穩定。1Hz的脈沖信號由CPLD輸出的信號得到。 2)時間計數單元 時間計數單元有分計數和秒計數等幾個部分。分計數和秒計數單元為60進制計數器,其輸出為8421BCD碼。 3)譯碼驅動及顯示單元 計數器實現了對時間的累計并以8421BCD碼形式輸出,顯示譯碼電路將計數器的輸出數碼轉換為數碼顯示器件所需要的輸出邏輯和一定的電流。4)校時電路 當重新接通電源或走時出現誤差時都需要對時間進行校正。通常,校正時間的方法是:首先截斷正常的計數通路,然后再進行人工出觸發計數或將頻率較高的方波信號加到需要校正的計數單元的輸入端,校正好后,再轉入正常計時狀態即可。5)鬧鐘電路 一般時鐘都應具備鬧鐘功能,即在到達某預定時間時,時鐘會發出連續的或有節奏的音頻聲波,較復雜的也可以是實時語音提示,以示提醒。實驗用器件管腳介紹: 四、實驗內容與步驟 1、用兩片74HC(LS)160連接構成秒計數器,并連接數碼管顯示(基本命題) 例如采用整體置零法。實現計數范圍為0000 0000--0101 1001。電路連接完成后,檢驗其功能。 2、在實驗內容與步驟1的基礎上再用兩片74 HC(LS)160實現分的計數(基本命題) 分計數器的個位和十位之間的連接類同于秒計數器。需實現從秒到分的進位。電路連接完成后檢驗其功能。 3、實現校時功能(擴展命題) 檢驗功能 4、實現鬧鐘功能(擴展命題) 連接電路,檢驗其功能。 五、實驗注意事項 集成電路要輕插輕拔! 六.實驗電路圖 1.用兩片74HC(LS)160連接構成秒計數器,并連接數碼管顯示 2.在實驗內容與步驟1的基礎上再用兩片74 HC(LS)160實現分的計數 七.其他(實驗過程中出現的問題或心得體會)這次實驗增加了我對計數器的了解,增強了我的動手能力。這次實驗我們插錯了一根線,結果成了模100的計數器,經過仔細的檢查才發現。 數字電子技術課程設計報告 一、設計目的 數字鐘是一種用數字電路技術實現時、分、秒計時的裝置,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。數字鐘從原理上講是一種典型的數字電路,其中包括了組合邏輯電路和時序電路。 因此,我們此次設計與制做數字鐘就是為了了解數字鐘的原理,從而學會制作數字鐘.而且通過數字鐘的制作進一步的了解各種在制作中用到的中小規模集成電路的作用及實用方法.且由于數字鐘包括組合邏輯電路和時敘電路.通過它可以進一步學習與掌握各種組合邏輯電路與時序電路的原理與使用方法.二、設計要求 (1)設計指標 ① 時間以12小時為一個周期; ② 顯示時、分、秒; ③ 具有校時功能,可以分別對時及分進行單獨校時,使其校正到標準時間; ④ 計時過程具有報時功能,當時間到達整點前10秒進行蜂鳴報時; ⑤ 為了保證計時的穩定及準確須由晶體振蕩器提供表針時間基準信號。(2)設計要求 ① 畫出電路原理圖(或仿真電路圖); ② 元器件及參數選擇; ③ 電路仿真與調試; ④ PCB文件生成與打印輸出。 (3)制作要求 自行裝配和調試,并能發現問題和解決問題。 (4)編寫設計報告 寫出設計與制作的全過程,附上有關資料和圖紙,有心得體會。 三、原理框圖 1.數字鐘的構成 數字鐘實際上是一個對標準頻率(1HZ)進行計數的計數電路。由于計數的起始時間不可能與標準時間(如北京時間)一致,故需要在電路上加一個校時電路,同時標準的1HZ時間信號必須做到準確穩定。通常使用石英晶體振蕩器電路構成數字鐘。 0 / 12 (a)數字鐘組成框圖 2.晶體振蕩器電路 晶體振蕩器電路給數字鐘提供一個頻率穩定準確的32768Hz的方波信號,可保證數字鐘的走時準確及穩定。不管是指針式的電子鐘還是數字顯示的電子鐘都使用了晶體振蕩器電路。一般輸出為方波的數字式晶體振蕩器電路通常有兩類,一類是用TTL門電路構成;另一類是通過CMOS非門構成的電路,本次設計采用了后一種。如圖(b)所示,由CMOS非門U1與晶體、電容和電阻構成晶體振蕩器電路,U2實現整形功能,將振蕩器輸出的近似于正弦波的波形轉換為較理想的方波。輸出反饋電阻R1為非門提供偏置,使電路工作于放大區域,即非門的功能近似于一個高增益的反相放大器。電容C1、C2與晶體構成一個諧振型網絡,完成對振蕩頻率的控制功能,同時提供了一個180度相移,從而和非門構成一個正反饋網絡,實現了振蕩器的功能。由于晶體具有較高的頻率穩定性及準確性,從而保證了輸出頻率的穩定和準確。 (b)CMOS 晶體振蕩器(仿真電路)/ 12 3.時間記數電路 一般采用10進制計數器如74HC290、74HC390等來實現時間計數單元的計數功能。本次設計中選擇74HC390。由其內部邏輯框圖可知,其為雙2-5-10異步計數器,并每一計數器均有一個異步清零端(高電平有效)。 秒個位計數單元為10進制計數器,無需進制轉換,只需將QA與CPB(下降沿有效)相連即可。CPA(下降沒效)與1HZ秒輸入信號相連,Q3可作為向上的進位信號與十位計數單元的CPA相連。 秒十位計數單元為6進制計數器,需要進制轉換。將10進制計數器轉換為6進制計數器的電路連接方法如圖 2.4所示,其中Q2可作為向上的進位信號與分個位的計數單元的CPA相連。 十進制-六進制轉換電路 分個位和分十位計數單元電路結構分別與秒個位和秒十位計數單元完全相同,只不過分個位計數單元的Q3作為向上的進位信號應與分十位計數單元的CPA相連,分十位計數單元的Q2作為向上的進位信號應與時個位計數單元的CPA相連。 時個位計數單元電路結構仍與秒或個位計數單元相同,但是要求,整個時計數單元應為12進制計數器,不是10的整數倍,因此需將個位和十位計數單元合并為一個整體才能進行12進制轉換。利用1片74HC390實現12進制計數功能的電路如圖(d)所示。 (d)十二進制電路 另外,圖(d)所示電路中,尚余-2進制計數單元,正好可作為分頻器2HZ輸出信號轉化為1HZ信號之用。 4.譯碼驅動及顯示單元電路 選擇CD4511作為顯示譯碼電路;選擇LED數碼管作為顯示單元電路。由CD4511把輸進來的二進制信號翻譯成十進制數字,再由數碼管顯示出來。這里的LED數碼管是采用共陰的方法連接的。 計數器實現了對時間的累計并以8421BCD碼的形式輸送到CD4511芯片,再由451/ 12 芯片把BCD碼轉變為十進制數碼送到數碼管中顯示出來。 5.校時電路 數字鐘應具有分校正和時校正功能,因此,應截斷分個位和時個位的直接計數通路,并采用正常計時信號與校正信號可以隨時切換的電路接入其中。即為用COMS與或非門實現的時或分校時電路,In1端與低位的進位信號相連;In2端與校正信號相連,校正信號可直接取自分頻器產生的1HZ或2HZ(不可太高或太低)信號;輸出端則與分或時個位計時輸入端相連。當開關打向下時,因為校正信號和0相與的輸出為0,而開關的另一端接高電平,正常輸入信號可以順利通過與或門,故校時電路處于正常計時狀態;當開關打向上時,情況正好與上述相反,這時校時電路處于校時狀態。 實際使用時,因為電路開關存在抖動問題,所以一般會接一個RS觸發器構成開關消抖動電路,所以整個較時電路就如圖(f)。 (f)帶有消抖電路的校正電路 6.整點報時電路 電路應在整點前10秒鐘內開始整點報時,即當時間在59分50秒到59分59秒期間時,報時電路報時控制信號。 當時間在59分50秒到59分59秒期間時,分十位、分個位和秒十位均保持不變,分別為5、9和5,因此可將分計數器十位的QC和QA、個位的QD和QA及秒計數器十位的QC和QA相與,從而產生報時控制信號。 報時電路可選74HC30來構成。74HC30為8輸入與非門。/ 12 說明:當時間在59分50秒到59分59秒期間時 分十位、分個 位和秒十位均保持不變,分別為5,9和5;因此,可以將分計數器十位的Qc和QA,個位的QD和QA及秒計數器十位的QC和QA相與,從而產生報時控制信號。IO1分計數器十位的Qc和QAIO2U11VCCIO35VVCCX182345V分計數器個位的QD和QAIO456114V_0.5WIO512秒計數器十位的QC和QAIO674HC30D數字鐘設計-整點報時電路部分 四、元器件 1.四連面包板1塊(編號A45)2.鑷子1把 3.剪刀1把 4.共陰八段數碼管6個 5.網絡線2米/人 6.CD4511集成塊6塊 7.CD4060集成塊1塊 8.74HC390集成塊3塊 9.74HC51集成塊1塊 10.74HC00集成塊4塊 11.74HC30集成塊1塊 12.10MΩ電阻5個 13.500Ω電阻14個 14.30p電容2個 15.32.768k時鐘晶體1個 16.蜂鳴器10個(每班)1)芯片連接圖 1)74HC00D 2)CD4511 / 12 3)74HC390D 4)74HC51D 2.面包板的介紹 面包板一塊總共由五部分組成,一豎四橫,面包板本身就是一種免焊電板。面包板的樣式是: / 12 面包板的注意事項: 1. 面包板旁一般附有香蕉插座,用來輸入電壓、信號及接地。2. 上圖中連著的黑線表示插孔是相通的。 3. 拉線時,盡量將線緊貼面包板,把線成直角,避免交叉,也不要跨越元件。4. 面包板使用久后,有時插孔間連接銅線會發生脫落現象,此時要將此排插孔做記號。并不再使用。 五、各功能塊電路圖 數字鐘從原理上講是一種典型的數字電路,可以由許多中小規模集成電路組成,所以可以分成許多獨立的電路。 (一)六進制電路 由74HC390、7400、數碼管與4511組成,電路如圖一。 U1A3123U2A12Com74HC00D74HC00DU5SEVEN_SEG_COM_KABCDEFGU3AV1 32Hz 5V141INA1INB21CLR31QA1QB1QC1QD5677126U413DADBDCDD5OAOBOCODOE1211109151474HC390D43~ELOF~BI~LTOGVCC5V4511BD將十進制計數器轉換為六進制的連接方法 (二)十進制電路 由74HC390、7400、數碼管與4511組成,電路如圖二。/ 12 U4A3126U4B4574HC00D74HC00DComU3SEVEN_SEG_COM_KU1AV1 60Hz 5V141INA1INB21CLR31QA1QB1QC1QD5677126U213DADBDCDD5OAOBOCODOE12111091514ABCDEFGVCC5V74HC390D43~ELOF~BIOG~LT4511BD十進制接法測試仿真電路 (三)六十進制電路 由兩個數碼管、兩4511、一個74HC390與一個7400芯片組成,電路如圖三。 (四)雙六十進制電路 由2個六十進制連接而成,把分個位的輸入信號與秒十位的Qc相連,使其產生進位,電路圖如圖四。/ 12 ComComSEVEN_SEG_COM_KU1B6453U1A12U4SEVEN_SEG_COM_KU7U11BABCDEFG64513DADBDCDD5OAOBOCODOE~ELOF~BI~LTOG1211109151421CLR141INA1INB3U10A12ABCDEFG74HC00D74HC00DU3B15122INA2INB142CLR132QA2QB2QC2QD11109U2712674HC00D74HC00DU8A31QA1QB1QC1QD5677126U913DADBDCDD5OAOBOCODOE12111091514VCC5V74HC390D43U1C891011U1D12134511BD74HC390DComVCCU643~ELOF~BI~LTOG5VSEVEN_SEG_COM_K74HC00D74HC00DABCDEFG84511BDComU15C91011U16DSEVEN_SEG_COM_K1213U14U3A131INA1INB21CLR1QA1QB1QC1QD5677126U513DADBDCDD5OAOBOCODOE1211109151474HC00D74HC00DU12B15122INA2INB142CLR132QA2QB2QC2QD111097126U13DADBDCDD5OAOBOCODOEABCDEFG***14V1 100kHz 5V474HC390D43~ELOF~BI~LTOGVCC74HC390D5V43~ELOF~BI~LTOG4511BD4511BD (五)時間計數電路 由1個十二進制電路、2個六十進制電路組成,因上面已有一個雙六十電路,只要把它與十二進制電路相連即可,詳細電路見圖五。 ComComComComComComU1SEVEN_SEG_COM_KU2SEVEN_SEG_COM_KU4SEVEN_SEG_COM_KU3SEVEN_SEG_COM_KU5SEVEN_SEG_COM_KU6SEVEN_SEG_COM_KABCDEFGABCDEFGABCDEFGVCCVCCABCDEFGABCDEFGABCDEFG5V***45VVCCVCC***49***45V***3121110***01514145V9VCCOG995V99OAOBODOAOBODOAOBODOEOEOCOCOCOFOFOEOGOAOBODOAOBODOAOBODOEOEOCOCOCOFOFOEOGOG~LT~LT~EL~EL~BI~BI~ELDADCDDDADCDDDADC~LT~LT~LTDBDB~EL~EL~EL~BI~BIDADCDDDADCDDDADCDBDB3DBDD~BI5V73DBDD4511BD54511BD******12643U23CU25A74HC00D***8U21A74HC00D13111038U20C74HC00D3U19A74HC00D131110974HC00D9356356772QB1QD2QD2QD1QB1QC2QB2QC2QB2QC1QB1QA2QA2QA1QA1QC1QD2QA2QC2QD61QB2INA1CLR2CLR2CLR1INA1INB2INA2INB2INA2INB1INA1INA1INB74HC00D161CLR74HC390D6151INB74HC00D111CLRU26B74HC390D74HC390N1174HC390N74HC390DU20B1574HC00D1262INB74HC00D74HC00D***242V1 1000Hz 5V時,分,秒計時電路圖 (六)校正電路 由74CH51D、74HC00D與電阻組成,校正電路有分校正和時校正兩部分,電路如圖六。/ 12 142CLRU13AU16B1QA1QC1QDU24DU22BU14AU17BU20DU15AU18B74HC390N43~BI~LT4511BDOGU7U8OFU10VCC4511BDOGU9U114511BDOFU124511BD1010921921254***254IO1VCC正常輸入信號5V校正信號IO2R1U2C9108小時校正電路J110Mohm74HC00D注意:分校時時,不會進位到小時。U11111213910U2DKey = A12R210MohmIO313U2A8123時計數器IO574HC00D1123674HC00D正常輸入信號校正信號IO4R3U3A10Mohm12U2B456分計數器IO64574HC00D74HC51D3J274HC00DKey = B分鐘校正電路分校正時鎖定小時信號輸入R410MohmU3B456圖中采用基本RS觸發器構成開關消抖動電路,其中與非門選用74HC00;對J1和J2,因為校正信號與0相與為0,而開關的另一端接高電平,正常輸入信號可以順利通過與或門,故校時電路處于正常計時狀態,當開關打向上時,情況正好與上述相反,這時電路處于校時狀態。74HC00D數字鐘設計-校時電路部分 (七)晶體振蕩電路 由晶體與2個30pF電容、1個4060、一個10兆的電阻組成,芯片3腳輸出2Hz的方波信號,電路如圖七。 (八)整點報時電路 由74HC30D和蜂鳴器組成,當時間在59:50到59:59時,蜂鳴報時,電路如圖八。/ 12 說明:當時間在59分50秒到59分59秒期間時 分十位、分個 位和秒十位均保持不變,分別為5,9和5;因此,可以將分計數器十位的Qc和QA,個位的QD和QA及秒計數器十位的QC和QA相與,從而產生報時控制信號。IO1分計數器十位的Qc和QAIO2U11VCCIO35VVCCX182345V分計數器個位的QD和QAIO456114V_0.5WIO512秒計數器十位的QC和QAIO674HC30D數字鐘設計-整點報時電路部分 六、總接線元件布局簡圖 整個數字鐘由時間計數電路、晶體振蕩電路、校正電路、整點報時電路組成。 其中以校正電路代替時間計數電路中的時、分、秒之間的進位,當校時電路處于正常輸入信號時,時間計數電路正常計時,但當分校正時,其不會產生向時進位,而分與時的校位是分開的,而校正電路也是一個獨立的電路。 電路的信號輸入由晶振電路產生,并輸入各電路。簡圖如圖九。 七、芯片連接總圖 因仿真與實際元件上的差異,所以在原有的簡圖的基礎上,又按實際布局畫了這張按實際芯片布局的接線圖,如圖十。 八、總結 1. 實驗過程中遇到的問題及解決方法 ① 面包板測試 測試面包板各觸點是否接通。 ② 七段顯示器與七段譯碼器的測量 / 12 把顯示器與CD4511相連,第一次接時,數碼管完全沒有顯示數字,檢查后發現是數碼管未接地而造成的,接地后發現還是無法正確顯示數字,用萬用表檢測后,發現是因芯片引腳有些接觸不良而造成的,所以確認芯片是否接觸良好是非常重要的一件事。 ③ 時間計數電路的連接與測試 六進制、十進制都沒有什么大的問題,只是芯片引腳的老問題,只要重新插過芯片就可以解決了。但在六十進制時,按圖接線后發現,顯示器上的數字總是100進制的,而不是六十進制,檢測后發現無論是線路的連通還是芯片的接觸都沒有問題。最后,在重對連線時發現是線路接錯引腳造成的,改過之后,顯示就正常了。 ④ 校正電路 因上面程因引腳接錯而造成錯誤,所以校正電路是完全按照仿真圖所連的,在測試時,開始進行時校時時,沒有出現問題,但當進行到分校時時,發現計數電路的秒電路開始亂跳出錯。因此,電路一定是有地方出錯了,在反復對照后,發現是因為在接入校正電路時忘了把秒十位和分個位之間的連線拿掉而造成的,因此,在接線時一定要注意把不要的多余的線拿掉。 2. 設計體會 通過這次對數字鐘的設計與制作,讓我了解了設計電路的程序,也讓我了解了關于數字鐘的原理與設計理念,要設計一個電路總要先用仿真仿真成功之后才實際接線的。但是最后的成品卻不一定與仿真時完全一樣,因為,再實際接線中有著各種各樣的條件制約著。而且,在仿真中無法成功的電路接法,在實際中因為芯片本身的特性而能夠成功。所以,在設計時應考慮兩者的差異,從中找出最適合的設計方法。通過這次學習,讓我對各種電路都有了大概的了解,所以說,坐而言不如立而行,對于這些電路還是應該自己動手實際操作才會有深刻理解。 3. 對設計的建議 我希望老師在我們動手制作之前應先告訴我們一些關于所做電路的資料、原理,以及如何檢測電路的方法,還有關于檢測芯片的方法。這樣會有助于我們進一步的進入狀況,完成設計 / 12 電 子 課 程 設 計 題 目:數字時鐘 數字時鐘設計實驗報告 一、設計要求: 設計一個 24 小時制的數字時鐘。 要求:計時、顯示精度到秒;有校時功能。采用中小規模集成電路設計。 發揮:增加鬧鐘功能。 二、設計方案: 由秒時鐘信號發生器、計時電路和校時電路構成電路。 秒時鐘信號發生器可由振蕩器和分頻器構成。 計時電路中采用兩個 60 進制計數器分別完成秒計時和分計時;24 進制計數器完成時計時;采用譯碼器將計數器的輸出譯碼后送七段數碼管顯示。 校時電路采用開關控制時、分、秒計數器的時鐘信號為校時脈沖以完成校時。 三、電路框圖: 圖一 數字時鐘電路框圖 四、電路原理圖: (一)秒脈沖信號發生器 秒脈沖信號發生器是數字電子鐘的核心部分,它的精度和穩定度決定了數字鐘的質量。由振蕩器與分頻器組合產生秒脈沖信號。 ? 振蕩器: 通常用 555 定時器與 RC 構成的多諧振蕩器,經過調整輸出 1000Hz 脈沖。 ? 分頻器: 分頻器功能主要有兩個,一是產生標準秒脈沖信號,一是提供功能 擴展電路所需要的信號,選用三片 74LS290 進行級聯,因為每片為 1/10 分頻器,三片級聯好獲得 1Hz 標準秒脈沖。其電路圖如下: 譯碼器 譯碼器 譯碼器 時計數器(24 進制)分計數器(60 進制)秒計數器(60 進制)校 時 電 路 秒信號發生器 圖二 秒脈沖信號發生器 (二)秒、分、時計時器電路設計 秒、分計數器為 60 進制計數器,小時計數器為 24 進制計數器。 ? 60 進制——秒計數器 秒的個位部分為逢十進一,十位部分為逢六進一,從而共同完成 60 進制計數器。當計數到 59 時清零并重新開始計數。秒的個位部分的設計:利用十進制計數器 CD40110 設計 10 進制計數器顯示秒的個位。個位計數器由 0 增加到 9 時產生進位,連在十位部計數器脈沖輸入端 CP,從而實現 10 進制計數和進位功能。利用 74LS161 和 74LS11 設計 6 進制計數器顯示秒的十位,當十位計數器由 0 增加到 5 時利用 74LS11 與門產生一個高電平接到個位、十位的 CD40110 的清零端,同時產生一個脈沖給分的個位。其電路圖如下: 圖三 60 進制--秒計數電路 ? 60 進制——分計數電路 分的個位部分為逢十進一,十位部分為逢六進一,從而共同完成 60 進制計數器。當計數到 59 時清零并重新開始計數。秒的個位部分的設計:來自秒計數電路的進位脈沖使分的個位加 1,利用十進制計數器 CD40110 設計 10 進制計數器顯示秒的個位。個位計數器由 0 增加到 9 時產生進位,連在十位部計數器脈沖輸入端 CP,從而實現 10 進制計數和進位功能。利用 74LS161 和 74LS11 設計 6 進制計數器顯示秒的十位,當十位計數器由 0增加到 5 時利用 74LS11 與門產生一個高電平接到個位、十位的 CD40110 的清零端,同時產生一個脈沖給時的個位。其電路圖如下: 圖四 60 進制--分計數電路 ? 24 進制——時計數電路 來自分計數電路的進位脈沖使時的個位加,個位計數器由 0 增加到 9 是產生進位,連在十位計數器脈沖輸入端 CP,當十位計到 2 且個位計到 3 是經過 74LS11 與門產生一個清零信號,將所有 CD40110 清零。其電路圖如下: 圖五 24 進制--時計數電路 ? 譯碼顯示電路 譯碼電路的功能是將秒、分、時計數器的輸出代碼進行翻譯,變成相應的數字。用以驅動 LED 七段數碼管的譯碼器常用的有 74LS148。74LS148 是 BCD-7 段譯碼器/驅動器,輸出高電平有效,專用于驅動 LED 七段共陰極顯示數碼管。若將秒、分、時計數器的每位輸出分別送到相應七段數碼管的輸入端,便可以進行不同數字的顯示。在譯碼管輸出與數碼管之間串聯電阻 R 作為限流電阻。其電路圖如下: 圖六 譯碼顯示電路 ? 校時電路 校時電路是數字鐘不可缺少的部分,每當數字鐘與實際時間不符時,需要根據標準時間進行校時。一般電子表都具有時、分、秒等校時功能。為了使電路簡單,在此設計中只進行分和小時的校時。“快校時”是通過開關控制,使計數器對 1Hz 校時脈沖計數。圖中 S1 為校正用的控制開關,校時脈沖采用分頻器輸出的 1Hz 脈沖,當 S1 為“0”時可以進行“快校時”。 其電路圖如下: 圖七 校隊電路 五、實驗方法: 1、秒脈沖產生部分 采用555多諧振蕩器產生1HZ頻率信號,作為秒脈沖及整體電路的信號輸入部分。其仿真電路圖如下圖所示: 圖八 秒脈沖發生器仿真電路 2、計數電路 電子鐘計時分為小時、分鐘和秒,其中小時為二十四進制,分鐘和秒均為六十進制,輸出可以用數碼管顯示,所以要求二十四進制為 00000000~00100100 計數,六十進制為 00000000~01100000 計數,并且均為 8421 碼編碼形式。 (1) 小時計數——二十四進制電路仿真 用兩片 74LS160N(分 A 片、B 片)設計一個一百進制的計數器,在 24(00100100)處直接取出所有為 1 的端口,經過輸入與非門 74LS00D,再給兩個清零端 CLR。使用 74LS160N 異步清零功能完成二十四進制循環,計數范圍為 0~23。然后用七段顯示譯碼器 74LS47D 將 A、B 兩片8 U1074LS01 U1174LS0112 U1074LS00 R3.3 C0.01uS1 GN10 1U8E 74LS01HZ S2/M2 +5 74LS160N 的輸出譯碼給 LED 數碼管。仿真電路如圖九所示。 : 圖九 24 進制——時計數器仿真電路(2)分鐘、秒計數——六十進制電路仿真 此電路類似于二十四進制計數器,采用 74LS160N 設計出一百進制的計數器,在 60(01100000)處直接取出所有為 1 的端口,經過輸入與非門 74LS00D,再給兩個清零端 CLR。使用 74LS160N異步清零功能完成六十進制循環,計數范圍為 0~59。然后用七段顯示譯碼器 74LS47D 將 A、B兩片 74LS160N 的輸出譯碼給 LED 數碼管。仿真電路如圖所示: 圖十 60 進制——秒計數器仿真電路 圖十一 60 進制——分計數器仿真電路 (四)校時校分(秒)電路。 數字鐘應具有分校正和時校正功能,因此,應截斷分個位和時個位的直接計數通路,并采用正常計時信號與校正信號可以隨時切換的電路接入其中。這里利用兩個與非門加一個單刀雙擲開關來實現校時功能。第一個 74LS00D 與非門的輸入端一端接清零信號,另一端接第二個與非門的輸入端,第二個 74LS00D 的輸入端一端接計數脈沖,另一端接一個單刀雙擲開關。開關接通的一段接地,另一端接高電平。當開關打到另一端時,時或分的個位就單獨開始計數,這樣就能實現校時功能。其電路圖如圖所示: 圖十二 校分仿真電路 六、實驗結果和結論: 數字時鐘仿真電路圖如下圖所示,在 Multisim11.0 中進行仿真,可以實現數字時鐘的顯示功能、校時功能。顯示功能中,小時實現的是 24 進制,分和秒實現的是 60 進制,通過校時電路能夠分別校對時和分。 圖十三 數字時鐘仿真電路 七、設計體會: 在本次 Multisim 仿真過程,從安裝軟件、選定課題、設計電路、進行仿真、運行結果都自己實際操作完成。在數字時鐘設計中,根據老師上課所講的內容,可以用兩片集成十進制同步計數器 74LS160D 級聯為 100 進制,再利用其異步清零功能,可以分別實現小時的 24 進制和分秒的 60 進制。當然,在仿真過程中也遇到了很多困難和問題。比如說,無法直接從秒進位到分和分進位到時,并且在仿真中總是出錯。于是自己請教了一些也做數字時鐘的同學,同時在網上查找了相關資料,最后終于用兩個與非門和單刀雙擲開關實現了從秒到分的進位、分到時的進位功能及校準功能。 通過本次實驗對數電知識有了更深入的了解,將其運用到了實際中來,明白了學習電子技術基礎的意義,也達到了其培養的目的。也明白了一個道理:成功就是在不斷摸索中前進實現的,遇到問題我們不能灰心、煩躁,甚至放棄,而要靜下心來仔細思考,分部檢查,找出最終的原因進行改正,這樣才會有進步,才會一步步向自己的目標靠近,才會取得自己所要追求的成功。 當然,自己的仿真技術和應用能力還是很欠缺的,雖然完成了基本的設計要求,但是很多自己想要的擴展功能還未能實現。而且很多時候會走過很多彎路,浪費了很多不必要的時間。不過,這次設計經歷必將使我受益終身,讓我明白如何更好的獲取知識,如何更好的理論聯系實際。今后的學習更需要不斷努力,在獲得知識的同時獲得快樂,真正的主動探索,主動學習,形成自己的思維方式,不斷應用,不斷進取。第二篇:數字電子時鐘設計
第三篇:數字時鐘的設計實驗報告
第四篇:數字時鐘課程設計
第五篇:數字時鐘設計實驗報告