第一篇:基于ewb的數字鐘設計報告
電子線路實驗
基于EWB 的數字鐘設計 摘要:
本文介紹、記錄了基于EWB設計所需功能數字鐘電路的方案及過程。從設計思路到芯片選擇,通過軟件仿真,一步步調試、完善。本數字鐘具有基礎功能,調試運行成功。
關鍵字:數字鐘 EWB
一、數字鐘簡介
數字鐘是指利用電子線路構成的計時器。
數字鐘應能達到的基礎功能為計時并顯示時、分、秒、星期,同時還能進行時間調整; 可增加附加功能如下:整點報時、鬧鐘、年月日、秒表功能等
二、設計思路
三、芯片說明
選用的芯片有74160、74138、74153 1、74160(1)芯片功能:
Decade Counter truth table: ___ ____ CLR | LOAD | ENP | ENT | CLK | A B C D | QA QB QC QD RCO----|------|-----|-----|-----|---------|--------------------0 | X | X | X | X | X X X X | 0 0 0 0 0 1 | 0 | 0 | 0 | POS | X X X X | A B C D *1 1 | 1 | 1 | 1 | POS | X X X X | Count *1 1 | 1 | 1 | X | X | X X X X | QA0 QB0 QC0 QD0 *1 1 | 1 | X | 1 | X | X X X X | QA0 QB0 QC0 QD0 *1
-*1-RCO goes HIGH at count 9 to 0.(2)使用
①利用160的count功能來實現時間計數器里的60進制和24進制等各種需要的進制 如下為秒60進制,左邊為低位,右邊為高位,將高位0110返回到CLK',高位置0,同時進位給分計數器
②利用160組成4進制,作為調時模式下四個數碼管的位型選擇器的組成部分(見138芯片使用介紹部分)2、74138(1)芯片功能
3-to-8 decoder/demultiplexer truth table:
__ __ | Select | GL G1 G2 | C B A | Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7-----------|---------| X X 1 | X X X | 1 1 1 1 1 1 1 1 X 0 X | X X X | 1 1 1 1 1 1 1 1-----------|---------| 0 1 0 | 0 0 0 | 0 1 1 1 1 1 1 1 0 1 0 | 0 0 1 | 1 0 1 1 1 1 1 1 0 1 0 | 0 1 0 | 1 1 0 1 1 1 1 1 0 1 0 | 0 1 1 | 1 1 1 0 1 1 1 1-----------|---------|------------------------------0 1 0 | 1 0 0 | 1 1 1 1 0 1 1 1 0 1 0 | 1 0 1 | 1 1 1 1 1 0 1 1 0 1 0 | 1 1 0 | 1 1 1 1 1 1 0 1 0 1 0 | 1 1 1 | 1 1 1 1 1 1 1 0-----------|---------|------------------------------1 1 0 | X X X | Output corresponding to stored | | address 0;all others 1
(2)使用
調試/顯示 開關 控制該部分電路的開啟,開關功能如下:
下 顯示 上 調時
利用138譯碼器,和160配合實現調試電路中數碼管位型的選擇和字型的輸出
左邊的138:控制在不同顯示模式前提下該調整的計時器部分,如果是在 時:分 模式下啟動調時,則只調整時:分 , 秒:00 模式下同理
右邊的138:前一片138的Y1端接這片138的G1端,作為字型信號輸入;地址端由160產生的四進制數控制。
顧整個調時電路的原理在于:用160控制位型,用第一片138控制模式,第二片138控制字型,從而實現調時。3、74153(1)芯片功能
Data selector/multiplexer truth table:
Select | Data Inputs | Strobe | Output B A | C0 C1 C2 C3 | G' | Y-------|----------------|--------|-------X X | X X X X | 1 | 0 0 0 | 0 X X X | 0 | 0 0 0 | 1 X X X | 0 | 1 0 1 | X 0 X X | 0 | 0 0 1 | X 1 X X | 0 | 1 1 0 | X X 0 X | 0 | 0 1 0 | X X 1 X | 0 | 1 1 1 | X X X 0 | 0 | 0 1 1 | X X X 1 | 0 | 1(2)使用
用于模式控制電路中,數碼管的輸出選擇
用一個開關“MODE”接到所有153的A端,B端接地,左邊四個153中有八個數據選擇器,將輸出“時”的八個管腳分別接到八個C0端,輸出“秒”的八個管腳接到C1端;“分”的八個管腳接到右邊四個153的C0端;最后將所有16個數據選擇器的Y輸出接到數碼管中。四個數碼管中,第一第二個數碼管在兩種模式下分別顯示“時”和“秒”,第三第四個數碼管在兩種模式下分別顯示“分”和“00”
開關撥動時有如下功能: MODE開關 B A 顯示 下 0 0 時:分 上 0 1 秒:ms
四、電路的設計和測試
電路分為如下幾個模塊:
1、顯示模塊
(1)、左上角兩個指示燈:
左邊為整點報時燈,整點時顯示綠色(同時高音蜂鳴器響)
右邊為整點五秒倒計時指示燈,從整點前一分鐘的56s~59s顯示紅色(同時低音蜂鳴器響)
(2)、中間四個數碼管:在不同模式下分別顯示 時:分 和 秒:00(3)、中間兩個指示燈:間隔標識(4)、右下角七個指示燈:顯示星期日~六
2、時間計數器
共有秒、分、時、星期模塊
3、模式調整模塊
4、調時模塊:
5、整點報時模塊
6、電源和開關模塊
五、數字鐘的使用說明
1、顯示屏:見模塊介紹中的“顯示模塊”
2、五個開關
(1)、調時/顯示 開關:開關置下為顯示當前時間模式,用“A”鍵控
(2)、MODE:模式開關,置于上方時顯示 秒:00 模式,置下時顯示 時:分 模式,用空格鍵控
(3)、位型按鈕:用于調時模式下選擇調整當前模式下四個數碼管中哪個數碼管的示數,用“E”鍵控,來回撥動一次位型前移一位
(4)、調時按鈕:調時狀態下用于調整當前選定數碼管示數,用“D“鍵控,來回撥動一次示數+1,根據各自的進制數循環顯示(5)、week:星期調整按鈕(在week模塊中),調時狀態下,用”W“鍵控,來回撥動一次星期數循環+1;在顯示模式下該鍵無效
3、啟動數字鐘:在”調時/顯示開關“為”顯示“狀態時啟動數字鐘,初始狀態為顯示 00:00
六、出現的問題、解決方案及有待改進的不足之處
1、秒模塊:
出現問題:低位8-9時高位進一
原因:將低位RCO輸出接了高位的CLK 解決:兩片CLK應接同一個,用低位RCO控制高位ENP,RCO進位輸出有效時高位芯片才工作COUNT+1 2、138 138的輸出端口為Y',故在輸出端要接非門
3、調時模式下
由138輸出開關手動給時間計數器的CLK,顯示模式下CLK則由信號源提供,故要將兩者用或門連接,再接到相應的CLK和ENP控制端
4、初始狀態問題
此數字鐘只有在“調時/顯示”開關為“顯示”狀態下,初始態才會為“00:00”,該問題有待改進
5、位型開關和字型開關
此數字鐘有兩個數碼管在調整位型開關時,理想狀態是只改變位型,不改變字型,只由字型開關來控制字型。但問題在于,位型開關改變數碼管顯示位型時,同時也會改變該位上的字型,雖然這樣與理想狀態不一樣,但是也有好處,好處在于可以知道位型開關調整到了哪一位。
本功能有待改進為:位型開關調整到的該位數碼管閃爍,但是字型不改變。
七、設計數字鐘心得體會
這是第一次使用EWB設計一個具有功能性的較大的數字電路。從最開始的時間計時模塊到最后整點報時模塊,腦子里一點一點的想法都慢慢實現出來,把所需要的功能要求轉換成數字電路,再從電路中調時實現出功能,這個過程很糾結,有時候感覺腦子已經邏輯混亂不能運轉了,但是一步一步的思考、排故、調整、完善的過程,最終調試成功,還是讓人很開心的一件事。其中很多小問題的發現和解決已經不能完全記清了,因為太多了,便只記下了上面的五個問題。
這個數字鐘功能還不是很完善,有待改進,我會繼續去完善他。
第二篇:EWB數字鐘實驗報告
EWB數字鐘實驗報告
一、利用EWB設計用于秒計數和分計數的60進制(00-59)計數器,用于時計數的24進制(00-23)計數器和用于星期計數的7進制(1-7)計數器。1.60進制計數器 電路截圖
工作原理:選用兩片74160芯片,左邊一片為顯示個位,右邊一片為顯示十位。當兩片芯片同時計數到“60”時,轉換為二進制為0110,000。控制CLR’端置0。
2.24進制計數器 電路截圖
工作原理:選用兩片74160芯片,左邊一片為顯示個位,右邊一片為顯示十位。當兩片芯片同時計數到“24”時,轉換為二進制為0010,0100。控制CLR’端置0。
3.7進制計數器 電路截圖
工作原理:選用一片74160,當計數器數字為“7”即二進制為0111時,控制LOAD’端。LED顯示1~7。.二、.利用EWB設計具有秒、分、時、星期顯示功能的基本數字鐘。電路截圖
工作原理:本數字鐘由一個七進制計數器、一個二十四進制計數器、兩個六十進制計數器構成。七進制計數器顯示星期、二十四進制計數器顯示小時、兩個六十進制計數器分別顯示分和秒。秒進位分的原理是:當秒走到“59”時,控制分控計數器的時鐘端,輸入一個脈沖信號,即分顯示一個脈沖。分進位小時同理。小時向星期進位的原理是:當小時走到“23”時,控制星期計數器的時鐘端,輸入一個脈沖信號,即星期顯示一個脈沖。
三、利用EWB設計具有秒、分、時、星期顯示功能,能夠對分和時進行校準,具有整點報時功能的改進型數字鐘。
電路截圖(分、時校準電路)
工作原理:分別用兩個開關控制兩個計數器的時鐘端,一端正常接上秒計數器的發出的信號脈沖,為正常工作狀態,另一端接秒的時鐘信號發生源。當需要調時時,按下開關,即計數器的時鐘端接秒計數器的發出的信號脈沖,當走到要調到時間再次按下開關,即恢復到正常工作狀態。
電路截圖(整點報時功能)
工作原理:電路應在整點前10秒鐘內開始整點報時,即當時間在59分50秒到59分59秒期間時,報時電路報時控制信號。當時間在59分50秒到59分59秒期間時,分十位、分個位和秒十位均保持不變,分別為5、9和5,因此可將分計數器十位的QC和QA、個位的QD和QA及秒計數器十位的QC和QA相與,從而產生報時控制信號。
4.利用EWB設計數字鐘的其它擴展功能,如鬧鐘、秒表、多功能切換、倒計時、日歷、萬年歷等。
電路截圖(秒表功能)
工作原理:秒表由一個一百進制計數器構成。時鐘端接秒計數器的信號發生脈沖。開關
C(CHANGG)切換功能,開關S(start)為秒表開始z暫停。開關R為請開關。接計數器的清零端。
本次訓練的心得體會:通過這幾天對EWB軟件的學習,我掌握了該軟件的基本操作、各個電路的連接以及功能。發現該軟件是一款端電工學生非常容易上手、實用性很強的軟件。在實驗過程中也遇到不少的問題、比如芯片的功能忘記、計數器的接法等等,這是我會去查數字電路的教科書或者選擇詢問老師,在這樣的過程中提高自己的專注力。
第三篇:EDA數字鐘設計
數字鐘
一、實驗目的
1、掌握多位計數器相連的設計方法。
2、掌握十進制,六進制,二十四進制計數器的設計方法。
3、掌握揚聲器的驅動及報時的設計。
4、LED燈的花樣顯示。
5、掌握CPLD技術的層次化設計方法。
二、實驗器材
1、主芯片Altera EPF10K10LC84-4。2、8個LED燈。
3、揚聲器。4、4位數碼顯示管。5、8個按鍵開關(清零,調小時,調分鐘)。
三、實驗內容
根據電路特點,運用層次設計概念設計。將此設計任務分成若干模塊,規定每一模塊的功能和各模塊之間的接口。
1、時計時程序: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;
entity hour is
port(reset,clk : in std_logic;
daout : out std_logic_vector(7 downto 0));end hour;
architecture behav of hour is
signal count : std_logic_vector(3 downto 0);signal counter : std_logic_vector(3 downto 0);begin
p1: process(reset,clk)
begin
if reset='0' then
count<=“0000”;
counter<=“0000”;
elsif(clk'event and clk='1')then
if(counter<2)then
if(count=9)then
count<=“0000”;
counter<=counter + 1;
else
count<=count+1;
end if;
else
if(count=3)
then
counter<=“0000”;
else
count<=count+1;
count<=“0000”;
end if;
end if;
end if;
end process;
daout(7 downto 4)<=counter;daout(3 downto 0)<=count;
end behav;
2、分計時程序: library ieee;
use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;
entity minute is
port(reset,clk,sethour: in std_logic;
daout : out std_logic_vector(7 downto 0);
enhour : out std_logic);end minute;
architecture behav of minute is
signal count : std_logic_vector(3 downto 0);signal counter : std_logic_vector(3 downto 0);signal carry_out1 : std_logic;signal carry_out2 : std_logic;begin
p1: process(reset,clk)begin
if reset='0' then
count<=“0000”;
counter<=“0000”;
elsif(clk'event and clk='1')then
if(counter<5)then
if(count=9)then
count<=“0000”;
counter<=counter + 1;
else
count<=count+1;
end if;
carry_out1<='0';
else
if(count=9)then
count<=“0000”;
counter<=“0000”;
carry_out1<='1';
else
count<=count+1;
carry_out1<='0';
end if;
end if;end if;end process;
p2: process(clk)begin
if(clk'event and clk='0')then
if(counter=0)then
if(count=0)then
carry_out2<='0';
end if;
else
carry_out2<='1';
end if;end if;end process;
daout(7 downto 4)<=counter;daout(3 downto 0)<=count;enhour<=(carry_out1 and carry_out2)or sethour;end behav;
3、秒計時程序: library ieee;
use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;
entity second is
port(reset,clk,setmin : in std_logic;
daout : out std_logic_vector(7 downto 0);
enmin : out std_logic);end second;
architecture behav of second is
signal count : std_logic_vector(3 downto 0);signal counter : std_logic_vector(3 downto 0);signal carry_out1 : std_logic;signal carry_out2 : std_logic;begin
p1: process(reset,clk)begin
if reset='0' then
count<=“0000”;
counter<=“0000”;
elsif(clk'event and clk='1')then
if(counter<5)
then
if
(count=9)
then
count<=“0000”;
counter<=counter + 1;
else
count<=count+1;
end if;
carry_out1<='0';
else
if(count=9)
then
count<=“0000”;
counter<=“0000”;
carry_out1<='1';
else
count<=count+1;
carry_out1<='0';
end if;
end if;end if;end process;daout(7 downto
4)<=counter;
daout(3
downto
0)<=count;enmin<=carry_out1 or setmin;end behav;6
4、alert程序: library ieee;
use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;
entity alert is port(clkspk : in std_logic;
second : in std_logic_vector(7 downto 0);
minute : in std_logic_vector(7 downto 0);
speak : out std_logic;
lamp : out std_logic_vector(8 downto 0));end alert;
architecture behav of alert is signal divclkspk2 : std_logic;begin p1: process(clkspk)begin
if(clkspk'event and clkspk='1')then
divclkspk2<=not divclkspk2;
end if;end process;p2: process(second,minute)begin if(minute=“01011001”)then case second is
when “01010001”=>lamp<=“000000001”;speak<=divclkspk2;when “01010010”=>lamp<=“000000010”;speak<='0';when “01010011”=>lamp<=“000000100”;speak<=divclkspk2;when “01010100”=>lamp<=“000001000”;speak<='0';when “01010101”=>lamp<=“000010000”;speak<=divclkspk2;when “01010110”=>lamp<=“000100000”;speak<='0';when “01010111”=>lamp<=“001000000”;speak<=divclkspk2;when “01011000”=>lamp<=“010000000”;speak<='0';when “01011001”=>lamp<=“100000000”;speak<=clkspk;when others=>lamp<=“000000000”;end case;end if;end process;end behav;8
5、seltime程序 library ieee;
use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;
entity seltime is port(ckdsp : in std_logic;
reset : in std_logic;
second : in std_logic_vector(7 downto 0);
minute : in std_logic_vector(7 downto 0);
hour : in std_logic_vector(7 downto 0);
daout : out std_logic_vector(3 downto 0);
sel : out std_logic_vector(2 downto 0));end seltime;
architecture behav of seltime is signal sec : std_logic_vector(2 downto 0);begin
process(reset,ckdsp)begin
if(reset='0')then sec<=“000”;
elsif(ckdsp'event and ckdsp='1')then
sec<=“000”;else
sec<=sec+1;end if;end if;end process;
process(sec,second,minute,hour)begin case sec is
when “000”=>daout<=second(3 downto 0);when “001”=>daout<=second(7 downto 4);when “011”=>daout<=minute(3 downto 0);when “100”=>daout<=minute(7 downto 4);when “110”=>daout<=hour(3 downto 0);when “111”=>daout<=hour(7 downto 4);when others=>daout<=“1111”;end case;end process;
if(sec=“111”)then
sel<=sec;end behav;
6、deled程序: LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;use ieee.std_logic_unsigned.all;
ENTITY deled IS PORT(S: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
A,B,C,D,E,F,G,H: OUT STD_LOGIC);END deled;
ARCHITECTURE BEHAV OF deled IS
SIGNAL DATA:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL DOUT:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN DATA<=S;PROCESS(DATA)BEGIN
CASE DATA IS
WHEN “0000”=>DOUT<=“00111111”;WHEN “0001”=>DOUT<=“00000110”;WHEN “0010”=>DOUT<=“01011011”;WHEN “0011”=>DOUT<=“01001111”;WHEN “0100”=>DOUT<=“01100110”;WHEN “0101”=>DOUT<=“01101101”;WHEN “0110”=>DOUT<=“01111101”;WHEN “0111”=>DOUT<=“00000111”;WHEN “1000”=>DOUT<=“01111111”;WHEN “1001”=>DOUT<=“01101111”;WHEN “1010”=>DOUT<=“01110111”;WHEN “1011”=>DOUT<=“01111100”;WHEN “1100”=>DOUT<=“00111001”;WHEN “1101”=>DOUT<=“01011110”;WHEN “1110”=>DOUT<=“01111001”;WHEN “1111”=>DOUT<=“01000000”;WHEN OTHERS=>DOUT<=“00000000”;END CASE;END PROCESS;H<=DOUT(7);
G<=DOUT(6);
F<=DOUT(5);
E<=DOUT(4);D<=DOUT(3);C<=DOUT(2);B<=DOUT(1);A<=DOUT(0);END BEHAV;
7、頂層原理圖:
四、實驗結果 頂層原理圖仿真波形:
五、心得體會
1、系統設計進要行充分的方案論證,不可盲目就動手去做;
2、實驗中對每一個細節部分都要全面思考,要對特殊情況進行處理;
3、對于數字系統,要考慮同步、異步問題;
4、數字電路的理論分析要結合時序圖;
5、遇到問題,要順藤摸瓜,分析清楚,不可胡亂改動,每做一次改變都要有充分的理由;
6、模塊化設計方法的優點在于其簡潔性,但是在實驗設計中也發現,在實驗最終電路確定之前,要盡量減少模塊重疊嵌套,因為在總的電路敲定之前,電路還不成熟,很多地方需要改進,如果在開始時就進行多層模塊化,里層模塊電路的修改將影響其外層的全部電路,這樣就是牽一發動全身,很顯然,這樣將導致電 數字鐘課程設計 電路設計的低效,所以在設計過程中,一定要盡量減少超過兩層的模塊;
7、遇到問題花了很長時間沒有解決掉,要學會想他人請教,別人的不經意一點,可能就能把自己帶出思維死區。
第四篇:多功能數字鐘設計
課程設計任務書
課程設計名稱學生姓名專業班級設計題目多功能數字鐘設計
一、課程設計目的1、綜合運用EDA技術,獨立完成一個課題的設計,考察運用所學知識,解決實際問題的能力;
2、結合理論知識,考察閱讀參考資料、文獻、手冊的能力;
3、進一步熟悉EDA技術的開發流程,掌握文件編輯、編譯、仿真、下載驗證等環節的實現方法和
應用技巧;
4、鍛煉撰寫研究報告、研究論文的能力;
5、通過本實踐環節,培養科學和嚴謹的工作作風。
二、設計內容、技術條件和要求
l、能進行正常的時、分、秒計時功能,分別由6個數碼顯示24小時、60分鐘的計數器顯示。
2、能利用實驗系統上的按鈕實現“校時”、“校分”功能;
(1)按下“SA”鍵時,計時器迅速遞增,并按24小時循環;
(2)按下“SB”鍵時,計時器迅速遞增,并按59分鐘循環,并向“時”進位;
(3)按下“SC”鍵時,秒清零;抖動的,必須對其消抖處理。
3、能利用揚聲器做整點報時:
(1)當計時到達59’50”時開始報時,頻率可為500Hz;
計滿23小時后回零;計滿59分鐘后回零。
(2)到達59’59”時為最后一聲整點報時,整點報時的頻率可定為lKHz。
4定時鬧鐘功能
5、用層次化設計方法設計該電路,用硬件描述語言編寫各個功能模塊。
6、報時功能。報時功能用功能仿真的仿真驗證,可通過觀察有關波形確認電路設計是否正確。
三、時間進度安排
1周:(1)完成設計準備,確定實施方案;(2)完成電路文件的輸入和編譯;(4)完成功能仿真。
2周:(1)完成文件至器件的下載,并進行硬件驗證;(2)撰寫設計說明書。
四、主要參考文獻
(1)譚會生、瞿遂春,《EDA技術綜合應用實例與分析》,西安電子科技大學出版社,2004
(2)曹昕燕、周鳳臣等,《EDA技術實驗與課程設計》,清華大學出版社,2006
指導教師簽字:2012年9月1日
第五篇:數字鐘課程設計報告
摘要
數字電子鐘是一種用數字顯示秒﹑分﹑時的記時裝置,與傳統的機械時鐘相比,它一般具有走時準確﹑顯示直觀﹑無機械傳動裝置等優點,因而得到了廣泛的應用。數字電子鐘的設計方法有許多種,例如,可用中小規模集成電路組成電子鐘;也可以利用專用的電子鐘芯片配以顯示電路及其所需要的外圍電路組成電子鐘;還可以利用單片機來實現電子鐘等等。本課程設計采用的是中小規模集成電路法,時鐘信號發生器采用32768Hz的CMOS石英諧振器制作,產生1Hz時鐘脈沖;用74LS290設計兩個六十進制的計數器對“分”、“秒”信號計數,二十四進制計數器對“時”信號計數、再通過“時”、“分”校正電路進行時間的校正,實現數字電子鐘的功能。
關鍵詞
數字電子鐘;中小規模集成芯片;計數器;數字電子技術
設計的目的
(1)加強對電子制作的認識,充分掌握和理解設計個部分的工作原理、設計過程、選擇芯片器件、電路的焊接與調試等多項知識。(2)把理論知識與實踐相結合,充分發揮個人與團隊協作能力,并在實踐中鍛煉。(3)提高利用已學知識分析和解決問題的能力。(4)提高實踐動手能力
設計用到的儀器和零件
計數器(3片CD4518、CD4081)、顯示譯碼器(6片CD4511)、6片共陰極數碼管、二極管、電阻、電容、晶振(32.768kHz)、集成計數器(CD4060、CD4013)、開關、接線座、PCB板等元件。
數字鐘的結構及基本工作原理
結構
數字電子時鐘實際上是一個對標準頻率(1Hz)進行計數的計數電路。由于計數的起始時間不可能與某一個標準時間(如東八時區時間)一致,故需要在電路上加上一個對“時”、“分”進行校正的校時電路,同時為了提高計時的準確性,信號發生器產生的標準的1Hz時間信號必須做到準確穩定,通常使用石英晶體振蕩器電路構成數字電子時鐘中的信號發生器電路的主元件。
(1)晶體振蕩器電路給數字鐘提供一個頻率穩定準確的32768Hz的方波信號,可保證數字鐘的走時準確及穩定。不管是指針式的電子鐘還是數字顯示的電子鐘都使用了晶體振蕩器電路。
(2)分頻器電路將32768Hz的高頻方波信號經3276次分頻后得到1Hz的方波信號供秒計數器進行計數。分頻器實際上也就是計數器。
(3)時間計數電路由秒個位和秒十位計數器、分個位和分十位計數器及時個位和時十位計數器電路構成,其中秒個位和秒十位計數器、分個位和分十位計數器為60進制計數器,而根據設計要求,時個位和時十位計數器為12進制計數器。
(4)譯碼驅動電路將計數器輸出的8421BCD碼轉換為數碼管需要的邏輯狀態,并且為保證數碼管正常工作提供足夠的工作電流。
(5)數碼管通常有發光二極管(LED)數碼管和液晶(LCD)數碼管,本設計提供的為LED數碼管。
工作原理
(1)秒脈沖產生電路— CD4060
14位二進制串行計數器 CD4060。CD4060 是由一振蕩器和 14 級二進制串行計數位組成。振蕩器的結構可以是 RC 或晶振電路。CR 為高電平時,計數器清零且振蕩器停止工作。所有的計數器均為主-從觸發器,在 CP1(和 CP0)的下降沿,計數器以二進制進行計數。在時鐘脈沖線上使用斯密特觸發器對時鐘的上升和下降時間無限制。利用CD4060組成32.768 kHz振蕩器,再經過內部分頻器14分頻從其第3腳輸出2Hz(32.768 kHz /214 = 2 Hz)的脈沖信號。焊接完畢后,通電測試 LED指示燈閃爍,1秒鐘閃爍 2次。說明該電路正常工作
(2)分脈沖產生電路— CD4518 CD4518,是一種同步加計數器,在一個封裝中含有兩個可互換二 / 十進制計數器,其功能引腳分別為1~7和9~15。該計數器是單路系列脈沖輸入(1 腳或 2 腳;9 腳或 10腳),4路BCD碼信號輸出(3腳~6腳;{11}腳~{14}腳)。此外還必須掌握其控制功能,否則無法工作CD4518有兩個時鐘輸入端CP和EN,若用時鐘上升沿觸發,信號由CP輸入,此時EN端應接高電平“1”, 若用時鐘下降沿觸發,信號由EN端輸入,此時CP端應接低電平“0”,不僅如此,清零(又稱復位)端CR也應保持低電平“0”,只有滿足了這些條件時,電路才會處于計數狀態,若不滿足則不工作。值得注意,因輸出是二/十進制的BCD碼,所以輸入端的計數脈沖到第十個時,電路自動復位0000狀態。另外,CD4518無進位功能的引腳,但電路在第十個脈沖作用下,會自動復位,同時第6腳或第14 腳將輸出下降沿的脈沖,利用該脈沖和EN端功能,就可作為計數的電路進位脈沖和進位功能端供多位數顯用。(3)小時脈沖產生電路— CD4518 與分脈沖產生電路的結構工作原理相同,只是為24進制。
(4)與門電路— CD4081 CD4081為14腳封裝,四2輸入與門。在數字鐘電路中的作用:將CD4518置為60進制、24進制計數器。
(5)2分頻電路— CD4013 CD4013 是雙 D 觸發器芯片,為14腳封裝,在數字電路中常用來進行鎖存數據,組成分頻電路等。CD4013 在數字鐘電路中的作用:將 CD4060 產生的2Hz 脈沖2分頻(2進制計數器),輸出 1Hz 的秒脈沖。(6)譯碼顯示電路— CD4511 CD4511 是一片 CMOS BCD —鎖存 / 7 段譯碼 / 驅動器,用于驅動共陰極LED數碼管顯示器的BCD碼—七段數碼管譯碼器。具有BCD轉換、消隱和鎖存控制、七段譯碼及驅動功能的CMOS電路,能提供較大的拉電流。共陰 LED 數碼管是指 7 段 LED 的陰極是連在一起的,在應用中應接地。限流電阻要根據電源電壓來選取,電源電壓5V時,可使用300Ω左右的限流電阻。(7)秒、分、時校準電路—開關S3、S2、S1 分、時校準電路:利用開關手動輸入脈沖,S2、S1每按下一次,相應的時、分的數字加一。秒校準電路:正常計時工作時,S3閉合;進行秒校準時,S3斷開,暫停秒計時,等標準時間一到,立即閉合S3,恢復正常走時。
課程設計電路的組裝與調試
組裝
(1)核對元器件清單:是否有缺件;
(2)檢查印制電路板:是否有斷線、短路等;(3)焊接電阻:擺放整齊一致,黃色環在下邊;(4)焊接二極管:1N4148,注意極性;(5)焊接跨線:剪下二極管引腳,焊J1~J6;(6)焊接集成電路座:注意缺口位置與圖一致;(7)焊接無極性電容、晶振:注意C的字在正面;(8)焊接數碼管:注意小數點在右下方;(9)焊接發光二極管:LED,注意極性;(10)焊接開關、電解電容、接線座。(1)判斷二極管1N4148,LED的極性;
(2)判斷電阻阻值:讀色環、用萬用表測量;(3)安裝集成芯片12片:芯片型號不要裝錯,缺口位置與圖/座一致,缺口左下方為1腳;(4)安裝數碼管:注意小數點在右下方;
(5)安裝電容:正負極性,無極性C的字放在正面(6)最后檢查焊接質量:焊點有無虛焊、瑕疵。
調試
(1)安裝完成后通電,觀察各個模塊的工作情況;(2)若數碼管不亮,檢查地線通否,3腳接地否;(3)若整個電路不工作,分模塊檢查,各個部分 的接線、安裝、功能是否正常;(一般方法)(4)芯片工作是否正常:首先檢查電源,??;(5)秒、分、時校準部分:測試是否功能正常。
總結與心得
通過這次課程設計,加強了我動手、思考和解決問題的能力。在設計中用的芯片可能與平時常見的不一樣,但原理一樣,同時我還理解到,同樣功能可以由不同的芯片實現,需遵行簡單,經濟的原則,從而最大程度符合目標設計。課程設計是一次難得的鍛煉機會,讓我們能夠充分利用所學過的理論知識還有自己的想象的能力,另外還讓我們學習查找資料的方法,以及自己處理分析電路,設計電路的能力。這些對我來說都是一個很好的提高。我趁著做課程設計同時也是對課本知識的鞏固和加強,由于課本上的知識太多,平時課間的學習并不能很好的理解和運用各個元件的功能,而且考試內容有限,所以在這次課程設計過程中,我們了解了很多元件的功能,并且對于其在電路中的使用有了更多的認識。另外還學習到了一些仿真軟件,比如Proteus等學習軟件,給設計提供了很大的便利。
同時,這次課設還讓我明白,困難是成功的臺階,只有一級級走上去才能有所收獲。工科院校的學生應當這樣多參與實踐,多去運用自己所學的知識,為將來工作打下基礎。