當(dāng)前位置: 首頁(yè) > 工業(yè)電氣產(chǎn)品 > 工業(yè)繼電器 > 計(jì)時(shí)與計(jì)數(shù)器 > 計(jì)時(shí)器
發(fā)布日期:2022-07-24 點(diǎn)擊率:199
本文為大家介紹電子計(jì)時(shí)器的VHDL設(shè)計(jì)方法。
設(shè)計(jì)一個(gè)電子計(jì)時(shí)器,給定時(shí)鐘信號(hào)為512HZ,要求系統(tǒng)達(dá)到以下功能:
(1)用6個(gè)數(shù)碼管分別顯示時(shí)、分、秒,計(jì)時(shí)范圍為00:00:00~23:59:59。
(2)計(jì)時(shí)精度是1s。
(3)具有啟/ 停開(kāi)關(guān), 復(fù)位開(kāi)關(guān)。

總體方框圖
本系統(tǒng)由六十進(jìn)制計(jì)數(shù)器模塊、二十四進(jìn)制計(jì)數(shù)器模塊、分頻模塊執(zhí)行計(jì)時(shí)功能, 輸入信號(hào)是512Hz,通過(guò)分頻后為1Hz,時(shí)鐘信號(hào)是1Hz作為計(jì)時(shí)器的秒輸入,秒為60進(jìn)制計(jì)數(shù)器,分也為60進(jìn)制計(jì)數(shù)器,小時(shí)采用二十四進(jìn)制計(jì)數(shù)器, 各級(jí)進(jìn)位作為高位的使能控制。
設(shè)計(jì)一個(gè)八位的六十進(jìn)制計(jì)數(shù)器模塊,輸入信號(hào)為en、reset、clk,分別為使能、復(fù)位和時(shí)鐘信號(hào),輸出信號(hào)為qa[3„0]、qb[3„0]、rco,分別為低4位輸出、高4位輸出和進(jìn)位位。

六十進(jìn)制計(jì)數(shù)器

秒計(jì)數(shù)器的仿真波形圖
利用60進(jìn)制計(jì)數(shù)器完成00到59的循環(huán)計(jì)數(shù)功能,當(dāng)秒計(jì)數(shù)至59時(shí),再來(lái)一個(gè)時(shí)鐘脈沖則產(chǎn)生進(jìn)位輸出,即enmin=1;reset作為復(fù)位信號(hào)低電平有效,即高電平時(shí)正常循環(huán)計(jì)數(shù),低電平清零。因?yàn)檫@種60進(jìn)制的VHDL語(yǔ)言是很好寫的,它并不復(fù)雜,再說(shuō)我們必須要學(xué)會(huì)這些基本的硬件語(yǔ)言的描寫。

分鐘計(jì)數(shù)器的仿真波形圖
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.ALL;
ENTITY count60 IS
PORT( en,Reset,clk: in STD_LOGIC;
qa: out STD_LOGIC_VECTOR(3 DOWNTO 0);
qb: out STD_LOGIC_VECTOR(3 DOWNTO 0);
rco: OUT STD_LOGIC); END count60;
ARCHITECTURE a OF count60 IS
BEGIN
process(clk)
variable tma: STD_LOGIC_VECTOR(3 DOWNTO 0);
variable tmb: STD_LOGIC_VECTOR(3 DOWNTO 0); begin
If Reset =‘0’then tma:=“0000”;
tmb:=“0000”;
elsif clk‘event and clk=’1‘ then
if en=’1‘ then
rco<=tmb(2)and tmb(0)and tma(3)and tma(0);
if tma=“1001” then
tma:=“0000”;
if tmb=“0101” then
tmb:=“0000”;
else tmb:=tmb+1;
end if;
else tma:=tma+1;
end if;
end if;
end if;
qa<=tma;qb<=tmb; end process; END a;
設(shè)計(jì)一個(gè)八位的二十四進(jìn)制計(jì)數(shù)器模塊,輸入信號(hào)為en、reset、clk,分別為使能、復(fù)位和時(shí)鐘信號(hào),輸出信號(hào)為qa[3„0]、qb[3„0],分別為低4位輸出、高4位輸出。

二十四進(jìn)制計(jì)數(shù)器示意圖

小時(shí)計(jì)數(shù)器的仿真波形圖
小時(shí)計(jì)數(shù)模塊利用24進(jìn)制計(jì)數(shù)器,通過(guò)分鐘的進(jìn)位信號(hào)的輸入可實(shí)現(xiàn)從00到23的循環(huán)計(jì)數(shù)。
該模塊部分VHDL 源程序如下:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.ALL;
ENTITY count24 IS
PORT( en,Reset,clk: in STD_LOGIC;
qa: out STD_LOGIC_VECTOR(3 DOWNTO 0);
qb: out STD_LOGIC_VECTOR(3 DOWNTO 0));
END count24;
ARCHITECTURE a1 OF count24 IS
BEGIN
process(clk)
variable tma: STD_LOGIC_VECTOR(3 DOWNTO 0);
variable tmb: STD_LOGIC_VECTOR(3 DOWNTO 0);
begin
If Reset = ‘0’then tma:=“0000”;
tmb:=“0000”; else
if clk‘event and clk=’1‘ then
if en=’1‘ then
if tma=“1001” then
tma:=“0000”;
tmb:=tmb+1;
elsif tmb=“0010” and tma=“0011” then
tma:=“0000”;
tmb:=“0000”;
else tma:=tma+1;
end if;
end if;
end if;
end if;
qa<=tma;
qb<=tmb;
end process;
END a1;
設(shè)計(jì)一個(gè)分頻器,要求將輸入512HZ的時(shí)鐘信號(hào)分頻為1HZ的時(shí)鐘信號(hào)作為計(jì)時(shí)器的秒輸入。輸入信號(hào)為clk和rst,分別為時(shí)鐘信號(hào)和復(fù)位信號(hào),輸出信號(hào)為clk_out,為分頻器1HZ的時(shí)鐘信號(hào)輸出。

分頻器示意圖
該模塊部分VHDL 源程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY fenpinqi IS
PORT (CLK,RST:in std_logic;
CLK_OUT:out std_logic);
END fenpinqi;
ARCHITECTURE behav OF fenpinqi IS
signal clk_data:std_logic;
SIGNAL CNT6 :
INTEGER := 0;
BEGIN
PROCESS(CLK)
BEGIN
IF RST = ‘0’ THEN CNT6<=0
ELSIF CLK‘EVENT AND CLK=’1‘ THEN
IF CNT6=255 THEN
clk_data<=NOT clk_data;
CNT6<=0;
ELSE CNT6<=CNT6+1;
END IF;
END IF;
CLK_OUT<=clk_data;
END PROCESS;
END behav;
LED有著顯示亮度高,響應(yīng)速度快的特點(diǎn),最常用的是七段式LED顯示器,又稱數(shù)碼管。七段LED顯示器內(nèi)部由七個(gè)條形發(fā)光二極管和一個(gè)小圓點(diǎn)發(fā)光二極管組成,根據(jù)各管的亮暗組合成字符。
LED數(shù)碼管的g~a七個(gè)發(fā)光二極管因加正電壓而發(fā)亮,因加零電壓而不能發(fā)亮,不同亮暗的組合就能形成不同的字形,這種組合稱之為字形碼(段碼),如顯示”0”,字形碼為3fh。

LED數(shù)碼管結(jié)構(gòu)圖
數(shù)碼管的接口有靜態(tài)接口和動(dòng)態(tài)接口。動(dòng)態(tài)接口采用各數(shù)碼管循環(huán)輪流顯示的方法,當(dāng)循環(huán)顯示頻率較高時(shí),利用人眼的暫留特性,看不出閃爍顯示現(xiàn)象,這種顯示需要一個(gè)接口完成字形碼的輸出(字形選擇),另一接口完成各數(shù)碼管的輪流點(diǎn)亮(數(shù)位選擇)。
將二十四進(jìn)制計(jì)數(shù)器和2個(gè)六十進(jìn)制計(jì)數(shù)器的輸出作為L(zhǎng)ED顯示模塊的輸入,在時(shí)鐘信號(hào)的控制下通過(guò)此模塊完成6個(gè)LED數(shù)碼管的顯示,輸出信號(hào)為WEI[2…0]和LED[6…0],分別為位選信號(hào)和段碼輸出。

LED顯示示意圖
該模塊部分VHDL 源程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY clock1 IS
PORT(CLK: IN STD_LOGIC;
S1, S2, S3, S4, S5, S6: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
WEI: OUT STD_LOGIC_VECTOR(2 DOWNTO 0);
LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
END ENTITY;
ARCHITECTURE behave OF clock1 IS
SIGNAL CNT6 : INTEGER RANGE 0 TO 5 := 0;
SIGNAL SHUJU: STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
PRO1:PROCESS(CLK)
BEGIN
IF CLK‘EVENT AND CLK = ’1‘ THEN
CNT6 <= CNT6 + 1;
CASE CNT6 IS
WHEN 0 => WEI <= “000”; SHUJU <= S1;
WHEN 1 => WEI <= “001”; SHUJU <= S2;
WHEN 2 => WEI <= “010”; SHUJU <= S3;
WHEN 3 => WEI <= “011”; SHUJU <= S4;
WHEN 4 => WEI <= “100”; SHUJU <= S5;
WHEN 5 => WEI <= “101”; SHUJU <= S6;
CNT6<=0;
WHEN OTHERS => NULL;
END CASE;
END IF;
END PROCESS;
PRO2: PROCESS(SHUJU)
BEGIN
CASE SHUJU IS
WHEN “0000” => LED<= “1111110”
WHEN “0001” => LED<= “0110000”
WHEN “0010” => LED<= “1101101”
WHEN “0011” => LED<= “1111001”
WHEN “0100” => LED<= “0110011”
WHEN “0101” => LED<= “1011011”
WHEN “0110” => LED<= “1011111”
WHEN “0111” => LED<= “1110000”
WHEN “1000” => LED<= “1111111”
WHEN “1001” => LED<= “1111011”
WHEN others=> LED<= “0000000”
END CASE;
END PROCESS;
END
通過(guò)上面的分頻器,兩個(gè)60進(jìn)制的計(jì)數(shù)器,一個(gè)12/24進(jìn)制的計(jì)數(shù)器,6選1掃描器,7段數(shù)碼顯示器,設(shè)計(jì)如圖所示的頂層。規(guī)定每一模塊的功能和各模塊之間的接口。同時(shí)整個(gè)計(jì)數(shù)器有清零。 設(shè)計(jì)思想,利用脈沖時(shí)鐘產(chǎn)生一個(gè)1Hz的信號(hào)來(lái)實(shí)現(xiàn)一秒鐘的控制,要產(chǎn)生1Hz的信號(hào)就要用到分頻器,實(shí)驗(yàn)中用512分頻器把512Hz的信號(hào)變成1Hz。然后信號(hào)進(jìn)入控制秒的計(jì)數(shù)器,當(dāng)?shù)?0個(gè)脈沖時(shí)鐘到來(lái)時(shí),產(chǎn)生一個(gè)進(jìn)位信號(hào), 送到控制分的計(jì)數(shù)器,同理,當(dāng)?shù)?0個(gè)脈沖時(shí)鐘到來(lái)時(shí),產(chǎn)生一個(gè)進(jìn)位信號(hào),送到控制小時(shí)的計(jì)數(shù)器。當(dāng)小時(shí)計(jì)數(shù)器計(jì)數(shù)到12/24時(shí),完成一個(gè)周期,跳轉(zhuǎn)到零。輸出是由動(dòng)態(tài)掃描器來(lái)完成的。掃描器時(shí)鐘取至前面分頻未結(jié)束時(shí)的一個(gè)512Hz的信號(hào)。這樣就能夠在7段數(shù)碼顯示管上,以512Hz的頻率掃描顯示出時(shí)鐘的數(shù)字變化。
通過(guò)元件例化將各個(gè)模塊連接起來(lái),組成一個(gè)整體。
元件例化就是將預(yù)先設(shè)計(jì)好的設(shè)計(jì)實(shí)體定義為一個(gè)元件,然后利用特定的語(yǔ)句將此元件與當(dāng)前的設(shè)計(jì)實(shí)體中的指定端口相連接,從而為當(dāng)前設(shè)計(jì)實(shí)體引入一個(gè)新的低一級(jí)的設(shè)計(jì)層次。所定義的例化元件相當(dāng)于一個(gè)要插在這個(gè)電路系統(tǒng)板上的芯片,而當(dāng)前設(shè)計(jì)實(shí)體中指定的端口則相當(dāng)于這塊電路板上準(zhǔn)備接受此芯片的一個(gè)插座。
1、描繪法
是制作電路板所需要工具最少,制作過(guò)程最簡(jiǎn)單的一種方法。但精度不是很高
2、感光板法制作較簡(jiǎn)單,特別是大面積接地線條時(shí)更能顯示出優(yōu)勢(shì)。精度較高。但制作細(xì)線條時(shí)曝光需要經(jīng)驗(yàn)。
3、感光干膜法這種方法比起感光板法在成本上占有一定的優(yōu)勢(shì),比起熱轉(zhuǎn)印法在制作電路質(zhì)量上有一定的優(yōu)勢(shì)。但她的缺點(diǎn)是操作上有一定的難度,不象熱轉(zhuǎn)印法和感光板法那樣簡(jiǎn)單。因此到低選用那種方法還應(yīng)該根據(jù)您自己的感覺(jué)。
4、熱轉(zhuǎn)印法制作較簡(jiǎn)單,特別是細(xì)線條時(shí)更能顯示出優(yōu)勢(shì),制作精度很大程度取決于設(shè)備,與人操作熟練程序基本上無(wú)關(guān)。初學(xué)者也能制作出精美的線路板。但需要激光打印機(jī),對(duì)于大面積接地線條往往會(huì)有一些不足。
5、絲網(wǎng)印法制作相對(duì)復(fù)雜,對(duì)操作者的熟練程度有很大關(guān)系,特別是制版時(shí)的曝光控制很是關(guān)鍵,但對(duì)細(xì)線條和大面積接地線均能很好的表現(xiàn)。特別是在大批量生產(chǎn)時(shí)更能顯示出她的優(yōu)勢(shì)。如果只需要制作幾張線路板您會(huì)覺(jué)得這種方法很麻煩,但當(dāng)您需要制作幾百?gòu)垘浊埦€路板時(shí),那么您非選她不可。

GND是地,電池負(fù)極,應(yīng)該還有一個(gè)點(diǎn)接電池正極,可能是VDD,
F forward 和B backward 兩條線接前進(jìn)/後退電機(jī),
L left 和 R right 兩條線接左右轉(zhuǎn)向電機(jī),
LED + - 應(yīng)該是接收板上的某個(gè)功能的指示燈。
該遙控接收電路主要以集成塊IC2 (RX-2)為核心及其他元件組成,其 工作原理見(jiàn)圖2所示。 當(dāng)操作遙控器上的各功能鍵時(shí), 所發(fā)出的高頻信號(hào)經(jīng)遙控車上的天線 接收后,由超再生接收電路解調(diào)出編 碼控制脈沖信號(hào),再經(jīng)電阻R3、電 容C7耦合,送到接收集成塊IC2的14 腳,經(jīng)其內(nèi)部放大處理后,從其相應(yīng) 控制端輸出控制信號(hào),送到電機(jī)驅(qū)動(dòng) 控制電路。電動(dòng)機(jī)驅(qū)動(dòng)電路都是采用 雙端平衡方式,改變其兩端工作電壓 極性,就可控制電動(dòng)機(jī)轉(zhuǎn)動(dòng)方向。當(dāng) 輸出的是前進(jìn)信號(hào)時(shí),集成塊IC2的11 腳輸出高電平控制信號(hào),三極管VT8、 VT10、VT11隨之導(dǎo)通,電動(dòng)機(jī)M1正 轉(zhuǎn),遙控車前進(jìn)。當(dāng)輸出后退,左右 轉(zhuǎn)向控制信號(hào)時(shí),用戶可自已分析電路原理。


該遙控發(fā)射電路主要以集成塊IC1 (TX-2BS)為核心及其他元件組成, 其工作原理如圖1所示。集成塊IC1的 3、11腳為電源供應(yīng)端;其1、16腳為 左右轉(zhuǎn)彎控制信號(hào)輸入端;4、5腳為 前進(jìn)和后退控制信號(hào)輸入端;6腳為 加速控制信號(hào)輸入端;7、8、9腳為 空端;10、12腳為編碼信號(hào)控制輸出 端;13、14腳外接振蕩電阻。三極管 VT2及晶體B1等構(gòu)成載波振蕩器,其振 蕩頻率為35MHz。
在接通電源后,操作遙控器中的 功能鍵,其集成塊IC1相應(yīng)控制腳接 地,內(nèi)部對(duì)應(yīng)的功能選通,開(kāi)始進(jìn)行 編碼產(chǎn)生與操作功能鍵相一致的編碼 信號(hào),然后由其10腳輸出控制編碼脈 沖信號(hào),同時(shí)其12腳輸出高電平控制 信號(hào),發(fā)射二極管LED 亮,三極管VT2的B極有高電平信號(hào)而導(dǎo)通工作,三極 管VT2與晶體振蕩器B1組成的載波振蕩 器工作,產(chǎn)生35MHz的振蕩載波頻率, 經(jīng)電容C3耦合到三極管VT1的B極。當(dāng) 集成塊IC1(TX-2BS)的10腳輸出高 電平控制編碼脈沖信號(hào)時(shí),三極管VT1 導(dǎo)通工作,其功能控制編碼脈沖信號(hào) 及三極管VT2及晶體振蕩器B1產(chǎn)生的 35MHz載波經(jīng)三極管VT1調(diào)制放大后, 經(jīng)電容C6、電感L3耦合發(fā)射出去。

由于微型無(wú)線遙控車其自身較 小,沒(méi)有空間安裝5號(hào)電池,生產(chǎn)廠家就采用三節(jié)紐扣電池串聯(lián)使用。當(dāng)遙控車沒(méi)有電時(shí),就把遙控手柄中的插頭插入遙控車的插座充電即可使用,其充電電路工作原理見(jiàn)圖1中虛線部分。
當(dāng)微型車無(wú)電,把遙控手柄中的 插頭插入遙控車后,遙控器內(nèi)的+6V電 壓通過(guò)連接插座進(jìn)入到遙控車充電電 路,該電壓加到三極管VT7的C極;同 時(shí)還通過(guò)電阻R21,電阻R23加到三極 管VT4的B極和E極;通過(guò)電阻R20、電 阻R25、電容C10加到三極管VT3的B極 和C極。由于電容C10兩端電壓瞬間不 能突變,就給三極管VT3的B極提供一 定的偏置導(dǎo)通電壓,三極管VT3導(dǎo)通, 其C極電位降低,三極管VT4的B極電位 降低而導(dǎo)通,+6V電壓經(jīng)過(guò)三極管VT4 的E、C極,電阻R18加到三極管VT7的 B極,三極管VT7導(dǎo)通,開(kāi)始給遙控車 內(nèi)電池組充電;同時(shí),該電壓經(jīng)電阻R22給電容CH充電,充電指示燈LED1 亮。在電容CH充電時(shí),又給三極管VT3 的B極提供了一定的偏壓,從而加速了 三極管VT3、VT4、VT7的導(dǎo)通,隨后電 容的充電電流越來(lái)越小,三極管VT3、 VT4、VT7相應(yīng)進(jìn)入截止?fàn)顟B(tài),充電指 示燈LED1滅,表明給遙控車內(nèi)電池組 充電結(jié)束。

下一篇: PLC、DCS、FCS三大控
型號(hào):H3CR-H8RL?DC100-125?M
價(jià)格:面議
庫(kù)存:10
訂貨號(hào):H3CR-H8RL?DC100-125?M
型號(hào):H3CR-AP?AC100-240/DC100-125
價(jià)格:面議
庫(kù)存:10
訂貨號(hào):H3CR-AP?AC100-240/DC100-125
型號(hào):H3CR-F?AC24-48/DC12-48
價(jià)格:面議
庫(kù)存:10
訂貨號(hào):H3CR-F?AC24-48/DC12-48
型號(hào):H3CR-H8RL?AC100-120?M
價(jià)格:面議
庫(kù)存:10
訂貨號(hào):H3CR-H8RL?AC100-120?M
型號(hào):H5CX-A?AC100-240(Q)
價(jià)格:面議
庫(kù)存:10
訂貨號(hào):H5CX-A?AC100-240(Q)
型號(hào):H5CN-XANM?AC100-240
價(jià)格:面議
庫(kù)存:10
訂貨號(hào):H5CN-XANM?AC100-240