產(chǎn)品分類

      當前位置: 首頁 > 工業(yè)電氣產(chǎn)品 > 工業(yè)繼電器 > 計時與計數(shù)器 > 計時器

      類型分類:
      科普知識
      數(shù)據(jù)分類:
      計時器

      基于VHDL的電子計時器的設(shè)計方法詳解 - 定時器電路圖

      發(fā)布日期:2022-07-24 點擊率:108


      本文為大家介紹電子計時器的VHDL設(shè)計方法。

      設(shè)計要求

      設(shè)計一個電子計時器,給定時鐘信號為512HZ,要求系統(tǒng)達到以下功能:

      (1)用6個數(shù)碼管分別顯示時、分、秒,計時范圍為00:00:00~23:59:59。

      (2)計時精度是1s。

      (3)具有啟/ 停開關(guān), 復(fù)位開關(guān)。

      基于VHDL的電子計時器的設(shè)計方法詳解

      總體方框圖

      內(nèi)部各功能模塊

      本系統(tǒng)由六十進制計數(shù)器模塊、二十四進制計數(shù)器模塊、分頻模塊執(zhí)行計時功能, 輸入信號是512Hz,通過分頻后為1Hz,時鐘信號是1Hz作為計時器的秒輸入,秒為60進制計數(shù)器,分也為60進制計數(shù)器,小時采用二十四進制計數(shù)器, 各級進位作為高位的使能控制。

      六十進制計數(shù)器模塊

      設(shè)計一個八位的六十進制計數(shù)器模塊,輸入信號為en、reset、clk,分別為使能、復(fù)位和時鐘信號,輸出信號為qa[3„0]、qb[3„0]、rco,分別為低4位輸出、高4位輸出和進位位。

      基于VHDL的電子計時器的設(shè)計方法詳解

      六十進制計數(shù)器

      波形分析

      基于VHDL的電子計時器的設(shè)計方法詳解

      秒計數(shù)器的仿真波形圖

      利用60進制計數(shù)器完成00到59的循環(huán)計數(shù)功能,當秒計數(shù)至59時,再來一個時鐘脈沖則產(chǎn)生進位輸出,即enmin=1;reset作為復(fù)位信號低電平有效,即高電平時正常循環(huán)計數(shù),低電平清零。因為這種60進制的VHDL語言是很好寫的,它并不復(fù)雜,再說我們必須要學(xué)會這些基本的硬件語言的描寫。

      基于VHDL的電子計時器的設(shè)計方法詳解

      分鐘計數(shù)器的仿真波形圖

      VHDL源程序

      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=&ldquo;1001&rdquo; then

      tma:=&ldquo;0000&rdquo;;

      if tmb=&ldquo;0101&rdquo; then

      tmb:=&ldquo;0000&rdquo;;

      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ù)器模塊

      設(shè)計一個八位的二十四進制計數(shù)器模塊,輸入信號為en、reset、clk,分別為使能、復(fù)位和時鐘信號,輸出信號為qa[3&bdquo;0]、qb[3&bdquo;0],分別為低4位輸出、高4位輸出。

      基于VHDL的電子計時器的設(shè)計方法詳解

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

      波形分析

      基于VHDL的電子計時器的設(shè)計方法詳解

      小時計數(shù)器的仿真波形圖

      VHDL源程序

      小時計數(shù)模塊利用24進制計數(shù)器,通過分鐘的進位信號的輸入可實現(xiàn)從00到23的循環(huán)計數(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 = &lsquo;0&rsquo;then tma:=&ldquo;0000&rdquo;;

      tmb:=&ldquo;0000&rdquo;; else

      if clk&lsquo;event and clk=&rsquo;1&lsquo; then

      if en=&rsquo;1&lsquo; then

      if tma=&ldquo;1001&rdquo; then

      tma:=&ldquo;0000&rdquo;;

      tmb:=tmb+1;

      elsif tmb=&ldquo;0010&rdquo; and tma=&ldquo;0011&rdquo; then

      tma:=&ldquo;0000&rdquo;;

      tmb:=&ldquo;0000&rdquo;;

      else tma:=tma+1;

      end if;

      end if;

      end if;

      end if;

      qa<=tma;

      qb<=tmb;

      end process;

      END a1;


      分頻器模塊

      設(shè)計一個分頻器,要求將輸入512HZ的時鐘信號分頻為1HZ的時鐘信號作為計時器的秒輸入。輸入信號為clk和rst,分別為時鐘信號和復(fù)位信號,輸出信號為clk_out,為分頻器1HZ的時鐘信號輸出。

      基于VHDL的電子計時器的設(shè)計方法詳解

      分頻器示意圖

      VHDL 源程序

      該模塊部分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 = &lsquo;0&rsquo; THEN CNT6<=0

      ELSIF CLK&lsquo;EVENT AND CLK=&rsquo;1&lsquo; 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顯示模塊

      LED有著顯示亮度高,響應(yīng)速度快的特點,最常用的是七段式LED顯示器,又稱數(shù)碼管。七段LED顯示器內(nèi)部由七個條形發(fā)光二極管和一個小圓點發(fā)光二極管組成,根據(jù)各管的亮暗組合成字符。

      LED數(shù)碼管的g~a七個發(fā)光二極管因加正電壓而發(fā)亮,因加零電壓而不能發(fā)亮,不同亮暗的組合就能形成不同的字形,這種組合稱之為字形碼(段碼),如顯示&rdquo;0&rdquo;,字形碼為3fh。

      基于VHDL的電子計時器的設(shè)計方法詳解

      LED數(shù)碼管結(jié)構(gòu)圖

      數(shù)碼管的接口有靜態(tài)接口和動態(tài)接口。動態(tài)接口采用各數(shù)碼管循環(huán)輪流顯示的方法,當循環(huán)顯示頻率較高時,利用人眼的暫留特性,看不出閃爍顯示現(xiàn)象,這種顯示需要一個接口完成字形碼的輸出(字形選擇),另一接口完成各數(shù)碼管的輪流點亮(數(shù)位選擇)。

      將二十四進制計數(shù)器和2個六十進制計數(shù)器的輸出作為LED顯示模塊的輸入,在時鐘信號的控制下通過此模塊完成6個LED數(shù)碼管的顯示,輸出信號為WEI[2&hellip;0]和LED[6&hellip;0],分別為位選信號和段碼輸出。

      基于VHDL的電子計時器的設(shè)計方法詳解

      LED顯示示意圖

      VHDL 源程序

      該模塊部分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&lsquo;EVENT AND CLK = &rsquo;1&lsquo; THEN

      CNT6 <= CNT6 + 1;

      CASE CNT6 IS

      WHEN 0 => WEI <= &ldquo;000&rdquo;; SHUJU <= S1;

      WHEN 1 => WEI <= &ldquo;001&rdquo;; SHUJU <= S2;

      WHEN 2 => WEI <= &ldquo;010&rdquo;; SHUJU <= S3;

      WHEN 3 => WEI <= &ldquo;011&rdquo;; SHUJU <= S4;

      WHEN 4 => WEI <= &ldquo;100&rdquo;; SHUJU <= S5;

      WHEN 5 => WEI <= &ldquo;101&rdquo;; SHUJU <= S6;

      CNT6<=0;

      WHEN OTHERS => NULL;

      END CASE;

      END IF;

      END PROCESS;

      PRO2: PROCESS(SHUJU)

      BEGIN

      CASE SHUJU IS

      WHEN &ldquo;0000&rdquo; => LED<= &ldquo;1111110&rdquo;

      WHEN &ldquo;0001&rdquo; => LED<= &ldquo;0110000&rdquo;

      WHEN &ldquo;0010&rdquo; => LED<= &ldquo;1101101&rdquo;

      WHEN &ldquo;0011&rdquo; => LED<= &ldquo;1111001&rdquo;

      WHEN &ldquo;0100&rdquo; => LED<= &ldquo;0110011&rdquo;

      WHEN &ldquo;0101&rdquo; => LED<= &ldquo;1011011&rdquo;

      WHEN &ldquo;0110&rdquo; => LED<= &ldquo;1011111&rdquo;

      WHEN &ldquo;0111&rdquo; => LED<= &ldquo;1110000&rdquo;

      WHEN &ldquo;1000&rdquo; => LED<= &ldquo;1111111&rdquo;

      WHEN &ldquo;1001&rdquo; => LED<= &ldquo;1111011&rdquo;

      WHEN others=> LED<= &ldquo;0000000&rdquo;

      END CASE;

      END PROCESS;

      END


      頂層系統(tǒng)聯(lián)調(diào)

      通過上面的分頻器,兩個60進制的計數(shù)器,一個12/24進制的計數(shù)器,6選1掃描器,7段數(shù)碼顯示器,設(shè)計如圖所示的頂層。規(guī)定每一模塊的功能和各模塊之間的接口。同時整個計數(shù)器有清零。 設(shè)計思想,利用脈沖時鐘產(chǎn)生一個1Hz的信號來實現(xiàn)一秒鐘的控制,要產(chǎn)生1Hz的信號就要用到分頻器,實驗中用512分頻器把512Hz的信號變成1Hz。然后信號進入控制秒的計數(shù)器,當?shù)?0個脈沖時鐘到來時,產(chǎn)生一個進位信號, 送到控制分的計數(shù)器,同理,當?shù)?0個脈沖時鐘到來時,產(chǎn)生一個進位信號,送到控制小時的計數(shù)器。當小時計數(shù)器計數(shù)到12/24時,完成一個周期,跳轉(zhuǎn)到零。輸出是由動態(tài)掃描器來完成的。掃描器時鐘取至前面分頻未結(jié)束時的一個512Hz的信號。這樣就能夠在7段數(shù)碼顯示管上,以512Hz的頻率掃描顯示出時鐘的數(shù)字變化。

      通過元件例化將各個模塊連接起來,組成一個整體。

      元件例化就是將預(yù)先設(shè)計好的設(shè)計實體定義為一個元件,然后利用特定的語句將此元件與當前的設(shè)計實體中的指定端口相連接,從而為當前設(shè)計實體引入一個新的低一級的設(shè)計層次。所定義的例化元件相當于一個要插在這個電路系統(tǒng)板上的芯片,而當前設(shè)計實體中指定的端口則相當于這塊電路板上準備接受此芯片的一個插座。



        自制電路板最常用的五種方法

        1、描繪法

        是制作電路板所需要工具最少,制作過程最簡單的一種方法。但精度不是很高

        2、感光板法制作較簡單,特別是大面積接地線條時更能顯示出優(yōu)勢。精度較高。但制作細線條時曝光需要經(jīng)驗。

        3、感光干膜法這種方法比起感光板法在成本上占有一定的優(yōu)勢,比起熱轉(zhuǎn)印法在制作電路質(zhì)量上有一定的優(yōu)勢。但她的缺點是操作上有一定的難度,不象熱轉(zhuǎn)印法和感光板法那樣簡單。因此到低選用那種方法還應(yīng)該根據(jù)您自己的感覺。

        4、熱轉(zhuǎn)印法制作較簡單,特別是細線條時更能顯示出優(yōu)勢,制作精度很大程度取決于設(shè)備,與人操作熟練程序基本上無關(guān)。初學(xué)者也能制作出精美的線路板。但需要激光打印機,對于大面積接地線條往往會有一些不足。

        5、絲網(wǎng)印法制作相對復(fù)雜,對操作者的熟練程度有很大關(guān)系,特別是制版時的曝光控制很是關(guān)鍵,但對細線條和大面積接地線均能很好的表現(xiàn)。特別是在大批量生產(chǎn)時更能顯示出她的優(yōu)勢。如果只需要制作幾張線路板您會覺得這種方法很麻煩,但當您需要制作幾百張幾千張線路板時,那么您非選她不可。

        遙控車電路板的接法

      自制遙控玩具車電路板

        GND是地,電池負極,應(yīng)該還有一個點接電池正極,可能是VDD,

        F forward 和B backward 兩條線接前進/後退電機,

        L left 和 R right 兩條線接左右轉(zhuǎn)向電機,

        LED + - 應(yīng)該是接收板上的某個功能的指示燈。

        遙控接收電路工作原理

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

      自制遙控玩具車電路板

        遙控玩具汽車電路原理圖

      自制遙控玩具車電路板

        遙控發(fā)射電路

        該遙控發(fā)射電路主要以集成塊IC1 (TX-2BS)為核心及其他元件組成, 其工作原理如圖1所示。集成塊IC1的 3、11腳為電源供應(yīng)端;其1、16腳為 左右轉(zhuǎn)彎控制信號輸入端;4、5腳為 前進和后退控制信號輸入端;6腳為 加速控制信號輸入端;7、8、9腳為 空端;10、12腳為編碼信號控制輸出 端;13、14腳外接振蕩電阻。三極管 VT2及晶體B1等構(gòu)成載波振蕩器,其振 蕩頻率為35MHz。

        在接通電源后,操作遙控器中的 功能鍵,其集成塊IC1相應(yīng)控制腳接 地,內(nèi)部對應(yīng)的功能選通,開始進行 編碼產(chǎn)生與操作功能鍵相一致的編碼 信號,然后由其10腳輸出控制編碼脈 沖信號,同時其12腳輸出高電平控制 信號,發(fā)射二極管LED 亮,三極管VT2的B極有高電平信號而導(dǎo)通工作,三極 管VT2與晶體振蕩器B1組成的載波振蕩 器工作,產(chǎn)生35MHz的振蕩載波頻率, 經(jīng)電容C3耦合到三極管VT1的B極。當 集成塊IC1(TX-2BS)的10腳輸出高 電平控制編碼脈沖信號時,三極管VT1 導(dǎo)通工作,其功能控制編碼脈沖信號 及三極管VT2及晶體振蕩器B1產(chǎn)生的 35MHz載波經(jīng)三極管VT1調(diào)制放大后, 經(jīng)電容C6、電感L3耦合發(fā)射出去。

      自制遙控玩具車電路板

        遙控車充電電路

        由于微型無線遙控車其自身較 小,沒有空間安裝5號電池,生產(chǎn)廠家就采用三節(jié)紐扣電池串聯(lián)使用。當遙控車沒有電時,就把遙控手柄中的插頭插入遙控車的插座充電即可使用,其充電電路工作原理見圖1中虛線部分。

        當微型車無電,把遙控手柄中的 插頭插入遙控車后,遙控器內(nèi)的+6V電 壓通過連接插座進入到遙控車充電電 路,該電壓加到三極管VT7的C極;同 時還通過電阻R21,電阻R23加到三極 管VT4的B極和E極;通過電阻R20、電 阻R25、電容C10加到三極管VT3的B極 和C極。由于電容C10兩端電壓瞬間不 能突變,就給三極管VT3的B極提供一 定的偏置導(dǎo)通電壓,三極管VT3導(dǎo)通, 其C極電位降低,三極管VT4的B極電位 降低而導(dǎo)通,+6V電壓經(jīng)過三極管VT4 的E、C極,電阻R18加到三極管VT7的 B極,三極管VT7導(dǎo)通,開始給遙控車 內(nèi)電池組充電;同時,該電壓經(jīng)電阻R22給電容CH充電,充電指示燈LED1 亮。在電容CH充電時,又給三極管VT3 的B極提供了一定的偏壓,從而加速了 三極管VT3、VT4、VT7的導(dǎo)通,隨后電 容的充電電流越來越小,三極管VT3、 VT4、VT7相應(yīng)進入截止狀態(tài),充電指 示燈LED1滅,表明給遙控車內(nèi)電池組 充電結(jié)束。

      自制遙控玩具車電路板

       


      下一篇: PLC、DCS、FCS三大控

      上一篇: 航模遙控開關(guān)電路圖大

      主站蜘蛛池模板: 一区二区三区日韩| 精品国产一区二区三区av片| 亚洲国产精品一区二区久久hs| 一本大道东京热无码一区 | 激情一区二区三区| 精品久久久久一区二区三区| 在线视频一区二区三区三区不卡| 亚洲一区二区三区影院| 2020天堂中文字幕一区在线观| 亚欧免费视频一区二区三区 | 日韩精品一区二区三区中文版| 无码人妻精品一区二区蜜桃AV| 久久se精品一区二区| 免费看无码自慰一区二区| 久久久久国产一区二区三区| 亚洲狠狠狠一区二区三区| 国产精品亚洲一区二区三区在线观看 | 亚洲av无码一区二区三区天堂古代 | 亚洲日韩精品一区二区三区 | 无码少妇精品一区二区免费动态| 中文字幕乱码亚洲精品一区 | 91福利视频一区| 日本免费精品一区二区三区| 亚洲爆乳无码一区二区三区| 国产精品无码一区二区三区在 | 国产精品视频一区二区三区经| 在线视频国产一区| 色狠狠一区二区三区香蕉| 免费一区二区无码视频在线播放| 国产丝袜视频一区二区三区| 在线日韩麻豆一区| 久久久一区二区三区| 四虎精品亚洲一区二区三区| 3D动漫精品一区二区三区| 亚洲国产综合无码一区二区二三区| 3d动漫精品啪啪一区二区中文 | 亚洲一区视频在线播放| 亚洲日韩AV一区二区三区四区| 国产日韩AV免费无码一区二区| 日韩一区二区免费视频| 亚洲Av高清一区二区三区|