<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>

            發光二極管走馬燈電路的設計與實現實驗(一)

            時間:2024-07-26 22:16:08 電子信息工程畢業論文 我要投稿
            • 相關推薦

            發光二極管走馬燈電路的設計與實現實驗(一)

            實驗程序:
             設計思路:首先用按鍵SW1來控制顯示模式。用狀態機來實現單點移動和幕布式移動。
            VHDL程序如下
            library ieee;
            use ieee.std_logic_1164.all;
            entity scan is
             port(clk,reset:in std_logic;
               light:out std_logic_vector(7 downto 0);
               a:in std_logic
              );
            end scan;
            architecture arch_scan of scan is
            TYPE state_type is(s0,s1,s2,s3,s4,s5,s6,s7);
            signal state:state_type;
            begin
            process(a,clk,reset)     ——————process使用嵌套
            begin
            if(reset='1') then light<="00000000";
            elsif(rising_edge(clk)) then
             if a='0' then      ——————‘a’代表BW1的值,控制顯示模式
              case state is    ——————實現單點移動
               when s0=>
                 state<=s1;
                 light<="10000000";
               when s1=>
                 state<=s2;
                 light<="01000000";
               when s2=>
                 state<=s3;
                 light<="00100000";
               when s3=>
                 state<=s4;
                 light<="00010000";
               when s4=>
                 state<=s5;
                 light<="00001000";
               when s5=>
                 state<=s6;
                 light<="00000100";
               when s6=>
                 state<=s7;
                 light<="00000010";
               when s7=>
                    state<=s0;
                  light<="00000001";
              end case;
              else
                 case state is     ——————實現幕布式移動
              when s0=>
                state<=s1;
               light<="00011000";
              when s1=>
                state<=s2;
               light<="00111100";
              when s2=>
               state<=s3;
               light<="01111110";
              when s3=>
               state<=s4;
               light<="11111111";
              when s4=>
               state<=s5;
               light<="01111110";
              when s5=>
               state<=s6;
               light<="00111100";
              when s6=>
               state<=s7;
               light<="00011000";
              when s7=>
               state<=s0;
               light<="00000000"; 
              end case;
               end if;
            end if; 
            end process;
            end arch_scan;

            仿真波形如下:

            600)makesmallpic(this,600,1800);' src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps_clip_image-0.png" width="662" height="244" />


            實驗總結
             仿照上個實驗的狀態機設計,自己寫出了以上的程序。雖然程序簡單,容易寫出,但由于語法不熟,在編寫的過程中走了很多的彎路也出現了較多的錯誤。還好,在老師的指導下,經過不段的調試,改正終于得出了正確的結果。
             最初,我由于不知道要用嵌套PROCESS,而在一個PROCESS中又加入倆個PROCESS。導致編譯不能通過。這是由于語法不清而犯的錯誤。
             還有就是在寫程序的時候沒有進行深入的思考。簡單的認為狀態機不能實現幕布式的移動(因為我認為狀態機的狀態不足以表達幕布式的各個狀態,其實是足夠的)而使用了兩個循環,這樣就把程序弄的很復雜。編寫的時候太草率了,應該進行細致的思考后再去編寫。
             最后的問題就是,整個編程的過程中,小錯誤總是不段。這里多個‘;’,那里少個字母的。這些小的錯誤雖然在編譯后能夠更正過來,但最好還是希望自己能在以后不要在出現類似的錯誤。
             經過這次實驗,存在的問題還是老問題——語法不清、不夠細心。語法的問題是由于沒有具體的學習過,又沒有在課下反復的聯系。要去系統的學習VHDL語言,在近期有點不切實際,還是要多加練習。在練習中熟練 VHDL的語法,而做的多了,也就能避免在細節問題上總是出錯。

            【發光二極管走馬燈電路的設計與實現實驗(一)】相關文章:

            錯誤檢測與糾正電路的設計與實現03-20

            ADPCM語音編解碼電路設計及FPGA實現03-18

            Boost電路的一種軟開關實現方法03-18

            AGC電路的設計03-07

            用Protel99SE實現脈沖電路的仿真03-18

            換體DMA高速數據采集電路的CPLD實現03-18

            一款開關同步檢波電路的設計03-07

            開關電源控制及觸發電路的設計(一)03-07

            IP協議設計實現—重裝模塊(一)03-07

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看