资源预览内容
第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
第9页 / 共21页
第10页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
vhdl程序:基于VHDl的洗衣机控制 器主程序1.运行的时候运行xijiyi.vhd即可,其它10个小模块功能独立: 蜂鸣器,控制设置,洗衣机盖子,洗衣机盖子设置,电机马达,模式板块,所有模式,盖子揭开后 中断,开始暂停.2.这个程序是模块化的。另外程序是单个进程的,所有要求的功能模块都写在里面,看起来会比较容易理解,运行起来也是对的。3.版权所有:Jonathan He.2009 blog.sina.com.cn/heyongsong4.仅作参考,仅作学习与交流.一:模块化-以下10个文件放在一个文件夹里面,最后运行xiyiji.vhd1.文件名:buzzer_set.vhdlibrary ieee;use ieee.std_logic_1164.all;USE ieee.std_logic_signed.all;USE ieee.std_logic_arith.all;entity buzzer_set is -蜂鸣器port( clk:IN std_logic; p:in std_logic; control:in std_logic_vector(2 downto 0); flag:in std_logic; buzzer:out std_logic:=0 );end buzzer_set;architecture arch_buzzer of buzzer_set issignal q:std_logic_vector(4 downto 0):=00000;beginprocess(clk)beginif clkevent and clk=1 then if p=1 and control=110 and flag=1 then if q=11110 then q=11110 ;buzzer=0; else q=q+1;buzzer=1; end if; else buzzer=0; end if;end if;end process;end arch_buzzer;2 文件名:controlset.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all; ENTITY controlset IS port( clk:in std_logic; ps:in std_logic; modeout_a:in std_logic_vector(1 downto 0);-输入的强、标准、弱的信号; modeout_b:in std_logic_vector(2 downto 0);-洗、漂、甩的各种组合 led_qiang:out std_logic:=0; led_biaozhun:out std_logic:=0; led_ruo:out std_logic:=0; led_xi:out std_logic:=0; led_piao:out std_logic:=0; led_shuai:out std_logic:=0; control:out std_logic_vector(2 downto 0) ); end;architecture arc_control of controlset is -根据模式的设定,送出电机的运转时间控制信号;signal qxtime:std_logic_vector(10 downto 0):=10000111000;-强洗-1080秒;signal bzhxtime:std_logic_vector(10 downto 0):=01101001000;-标准洗-840秒signal rxtime:std_logic_vector(10 downto 0):=01001011000;-弱洗-600秒;signal qptime:std_logic_vector(10 downto 0):=01101001000;-强漂-840秒;signal bzhptime:std_logic_vector(10 downto 0):=00111100000;-标准漂-480秒signal rptime:std_logic_vector(10 downto 0):=00101101000;-弱漂-360秒signal shuaitime:std_logic_vector(10 downto 0):=00011110000;-甩-时间240秒signal modeout_c:std_logic_vector(4 downto 0);signal q_x_p_time:std_logic_vector(10 downto 0):=11110000000; -强+洗+漂 一共1920秒signal q_x_sh_time:std_logic_vector(10 downto 0):=10100101000; -强+洗+甩一共1320秒signal q_p_sh_time:std_logic_vector(10 downto 0):=10000111000; -强+漂+甩一共1080秒signal q_x_p_sh_time:std_logic_vector(11 downto 0):=100001110000; -强+洗+漂+甩一共2160秒signal b_x_p_time:std_logic_vector(10 downto 0):=10100101000; -标+洗+漂 一共1320秒signal b_x_sh_time:std_logic_vector(10 downto 0):=10000111000; -标+洗+甩一共1080秒signal b_p_sh_time:std_logic_vector(10 downto 0):=01011010000; -标+漂+甩一共720秒signal b_x_p_sh_time:std_logic_vector(10 downto 0):=11000011000; -标+洗+漂+甩一共1560秒 signal r_x_p_time:std_logic_vector(9 downto 0):=1111000000; -弱+洗+漂 一共960秒signal r_x_sh_time:std_logic_vector(9 downto 0):=1101001000; -弱+洗+甩一共840秒signal r_p_sh_time:std_logic_vector(9 downto 0):=1001011000; -弱+漂+甩一共600秒signal r_x_p_sh_time:std_logic_vector(10 downto 0):=10010110000; -弱+洗+漂+甩一共1200秒signal control_set1:std_logic_vector(2 downto 0):=000;signal control_set2:std_logic_vector(2 downto 0):=000;signal control_set3:std_logic_vector(2 downto 0):=000;signal control_set4:std_logic_vector(2 downto 0):=000;signal control_set5:std_logic_vector(2 downto 0):=000;signal control_set6:std_logic_vector(2 downto 0):=000;signal control_set7:std_logic_vector(2 downto 0):=000;signal control_set8:std_logic_vector(2 downto 0):=000;signal control_set9:std_logic_vector(2 downto 0):=000;signal control_set10:std_logic_vector(2 downto 0):=000;signal control_set11:std_logic_vector(2 downto 0):=000;signal control_set12:std_logic_vector(2 downto 0):=000;signal control_set13:std_logic_vector(2 downto 0):=000;signal control_set14:std_logic_vector(2 downto 0):=000;signal control_set15:std_logic_vector(2 downto 0):=000;signal control_set16:std_logic_vector(2 downto 0):=000;signal control_set17:std_logic_vector(2 downto 0):=000;signal control_set18:std_logic_vector(2 downto 0):=000;signal control_set19:std_logic_vector(2 downto 0):=000;signal control_set20:std_logic_vector(2 downto 0):=000;signal control_set21:std_logic_vector(2 downto 0):=000;begin process(clk) is begin modeout_c=(modeout_a & modeout_b); if(clkevent and clk=1) then if
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号