<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 基于CPLD的驅(qū)動數(shù)碼顯示電路設(shè)計案例

          基于CPLD的驅(qū)動數(shù)碼顯示電路設(shè)計案例

          作者: 時間:2012-03-17 來源:網(wǎng)絡(luò) 收藏

          原理:
          八段管如圖1.1 所示,八段管每一段為一發(fā)光二極管,共有a~g 以及小數(shù)點dp 八個發(fā)光二極管。將八段管中的每個二極管的陰極并聯(lián)在一起,組成公共陰極端。這樣把共陰極管腳接地,此時哪個管腳輸入高電平,對應發(fā)光二極管就被點亮。

          圖 1.1 八段數(shù)碼

          本文引用地址:http://www.ex-cimer.com/article/149396.htm

          CL5461AS 數(shù)碼管管腳圖如圖1.2 所示,它將四個數(shù)碼顯示管的a~g 及小數(shù)點dp 管腳并聯(lián)在一起,作為數(shù)碼管數(shù)據(jù)輸入端;分別引出各個數(shù)碼管的陰極A1~A4。

          圖1.2 CL5461AS 數(shù)碼管管腳圖

          只要在A1~A4 管腳上輪流加低電平其頻率大于40Hz,可實現(xiàn)四個數(shù)碼管同時被點亮的視覺效果。在點亮不同數(shù)碼管的同時輸入不同的數(shù)據(jù),即可在數(shù)碼管上同時顯示四位不同的數(shù)字。例如:四個數(shù)碼管要顯示9876 數(shù)字。第一個數(shù)碼管A1 加低電平,其余A2、A3、 A4高電平,同時數(shù)碼管輸入和9 對應的數(shù)據(jù);然后第二個數(shù)碼管A2 加低電平,其余A1、A3 、A4 高電平,同時數(shù)碼管輸入和8 對應的數(shù)據(jù);然后第三個數(shù)碼管A3 加低電平,其余A1、A2 、A4 高電平,同時數(shù)碼管輸入和7 對應的數(shù)據(jù);然后第四個數(shù)碼管A4 加低電平,其余A1、A2 、A3 高電平,同時數(shù)碼管輸入和6 對應的數(shù)據(jù);周而復始重復上述過程,四個數(shù)碼管就顯示9876 數(shù)字。

          八位數(shù)碼管顯示電路框圖
          設(shè)計一個八位數(shù)碼管顯示電路。八位數(shù)碼管管腳圖如圖1.2 所示。
          用兩個CL5461AS 數(shù)碼管接成一個八位數(shù)碼管顯示,將兩個CL5461AS 數(shù)碼管的a~g 及小數(shù)點dp 管腳并聯(lián)在一起,兩個CL5461AS 數(shù)碼管的陰極A1~A4 定義為Vss0、Vss1、Vss2、Vss3、Vss4、Vss5、Vss6、Vss7。
          設(shè)計一個八位數(shù)碼管顯示電路的框圖如圖1.4 所示。

          圖1.4 驅(qū)動八位數(shù)碼管顯示電路框圖

          時鐘脈沖計數(shù)器的輸出同時作為 3 線—8 線譯碼器、八選一數(shù)據(jù)選擇器地址碼的輸入。
          時鐘脈沖計數(shù)器的輸出經(jīng)過3 線—8 線譯碼器譯碼其輸出信號接到八位數(shù)碼管的陰極Vss0、Vss1、Vss2、Vss3、Vss4、Vss5、Vss6、Vss7 端。要顯示的數(shù)據(jù)信息A~H中哪一個,通過八選一數(shù)據(jù)選擇器的地址碼來選擇,選擇出的數(shù)據(jù)信息經(jīng)七段譯碼器譯碼接數(shù)碼管的a~g 管腳。這樣八個數(shù)碼管就可以輪流顯示八個數(shù)字,如果時鐘脈沖頻率合適,可實現(xiàn)八個數(shù)碼管同時被點亮的視覺效果。

          模塊及模塊功能:
          1.3.1 時鐘脈沖計數(shù)器模塊
          時鐘脈沖計數(shù)器模塊CN8 如圖1.5 所示。CN8 模塊輸入信號是時鐘脈沖clk,其頻率大于40Hz,每遇到一個時鐘脈沖clk 上升沿,內(nèi)部累加器便加一,再把累加器所得結(jié)果以2進制數(shù)的形式輸出。要顯示八位數(shù)字,所以用3 位2 進制數(shù)作為輸出。輸出信號為cout[0..2]。

          圖 1.5 時鐘脈沖計數(shù)器模塊CN8

          library ieee;
          use ieee.std_logic_1164.all;
          use ieee.std_logic_unsigned.all;
          entity cn8 is
          port(clk:in std_logic;
          cout:out std_logic_vector(2 downto 0));
          end cn8;
          architecture rtl of cn8 is
          signal q: std_logic_vector(2 downto 0);
          begin
          process(clk)
          begin
          if (clk'event and clk='1' ) then
          if (q=7) then
          q=000;
          else
          q=q+1;
          end if;
          end if;
          end process;
          cout=q;
          end rtl;

          1.3.2 3-8線譯碼器模塊
          3-8 線譯碼器模塊DECODER3_8 如圖1.6 所示。DECODER3_8 模塊的輸入端是A[2..0]接收時鐘脈沖計數(shù)器CN8 模塊的輸出信號,經(jīng)過譯碼后輸出信號Q[7..0]分別接八個數(shù)碼管的陰極Vss7、Vss6、Vss5、Vss4、Vss3、Vss2、Vss1、Vss0,使對應的數(shù)碼管的陰極為低電平,對應的數(shù)碼管被點亮。要顯示八位數(shù)字,需要八個輸出端,所以做成3-8 線譯碼器。

          圖 1.6 3-8 線譯碼器模塊DECODER3_8

          library ieee;
          use ieee.std_logic_1164.all;
          entity decoder3_8 is
          port(a:in std_logic_vector(2 downto 0);
          q:out std_logic_vector(7 downto 0));
          end decoder3_8;
          architecture rtl of decoder3_8 is
          begin
          process(a)
          begin
          case a is
          when 000=>q=11111110;
          when 001=>q=11111101;
          when 010=>q=11111011;
          when 011=>q=11110111;
          when 100=>q=11101111;


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();