PWM 1 2 PWM 3 pwm vhd 4

  • Slides: 31
Download presentation

第七章 直流馬達控制實習 PWM實習程式碼 1 ---------------------------------2 --實驗名稱:PWM實習 3 --檔案名稱:pwm. vhd 4 --功 能:以指撥開關來調整PWM訊號輸出 5 --日

第七章 直流馬達控制實習 PWM實習程式碼 1 ---------------------------------2 --實驗名稱:PWM實習 3 --檔案名稱:pwm. vhd 4 --功 能:以指撥開關來調整PWM訊號輸出 5 --日 期: 2003. 8. 8 6 ---------------------------------7 library ieee; 8 use ieee. std_logic_1164. all; 9 use ieee. std_logic_arith. all; 10 use ieee. std_logic_unsigned. all; 11 12 entity pwm is 13 port( 14 clk : in std_logic; --系統頻率 15 A : in std_logic_vector(7 downto 0); 16 pwm : out std_logic 17 ); 18 end pwm; 19 20 architecture a of pwm is 陳慶逸、林柏辰編著---文魁資訊 21 signal B: std_logic_vector(7 downto 0); 22 begin 23 24 ----- 下數計數器 ----25 process(clk) 26 begin 27 if clk'event and clk='1' then 28 B <= B-1; 29 end if; 30 end process; 31 32 ----- 比較器 ----33 pwm<='1' when A > B else '0'; 34 end a; VHDL數位電路實習與專題設計 10

第七章 直流馬達控制實習 直流馬達轉速與轉向控制實習程式碼 1 ---------------------------------2 --實驗名稱:直流馬達轉速與轉向控制實習 3 --檔案名稱:dcmotor. vhd 4 --功 能:以指撥開關來調整直流馬達轉速, 以彈跳開關控制直流馬達轉向 5

第七章 直流馬達控制實習 直流馬達轉速與轉向控制實習程式碼 1 ---------------------------------2 --實驗名稱:直流馬達轉速與轉向控制實習 3 --檔案名稱:dcmotor. vhd 4 --功 能:以指撥開關來調整直流馬達轉速, 以彈跳開關控制直流馬達轉向 5 --日 期: 2003. 8. 8 6 ---------------------------------7 library ieee; 8 use ieee. std_logic_1164. all; 9 use ieee. std_logic_arith. all; 10 use ieee. std_logic_unsigned. all; 11 12 ntity dcmotor is 13 ort( 14 clk : in std_logic; -- 系統頻率 15 DIP : in std_logic_vector(7 downto 0); --指撥開關輸入 16 BTN : in std_logic_vector(3 downto 0); --彈跳開關輸入 17 VREF : out std_logic; --PWM 訊號 18 DIR : out std_logic_vector(1 downto 0) --TA 7291模式選擇訊號 19 ); 20 end dcmotor; 21 22 architecture a of dcmotor is 23 signal B: std_logic_vector(7 downto 0); 24 begin 陳慶逸、林柏辰編著---文魁資訊 VHDL數位電路實習與專題設計 25 26 ----- 下數計數器 ----27 process(clk) 28 begin 29 if clk'event and clk='1' then 30 B <= B-1; 31 end if; 32 end process; 33 34 ----- 比較器 ----35 VREF <= '1' when DIP > B else '0'; 36 37 ----- TA 7291模式選擇 ----38 process(BTN) 39 begin 40 case BTN is 41 when "1110" => DIR <= "00"; 42 when "1101" => DIR <= "01"; 43 when "1011" => DIR <= "10"; 44 when "0111" => DIR <= "11"; 45 when others => DIR <= "00"; 46 end case; 47 end process; 48 end a; 23