第一范文网 - 专业文章范例文档资料分享平台

基于VHDL的空调控制器设计

来源:用户分享 时间:2025/8/5 10:54:53 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

U1: switch PORT MAP(a=>switchin,b=>swb,c=>swa,clk=>clk1,d=>sigBCD7_1); U2: control PORT MAP(a=>switchin,b=>swc,clk=>clk1,c=>swb); U3: fan PORT MAP(a=>swa,b=>fanup,c=>fandown,clk=>clk1,di=>dis,zhong=>zhongs,gao=>gaos,ssleep=>sigBCD7_2,sdi=>sigBCD7_3,szhong=>sigBCD7_4,sgao=>sigBCD7_5); U4: temp PORT MAP(a=>swa,b=>tempup,c=>tempdown,clk=>clk1,temp1=>sigBCD7_6,temp2=>sigBCD7_7); U5: timer PORT MAP(a=>swa,clk1=>clk1,clk2=>clk2,b=>timerop,c=>timercancel,up=>timerup,down=>timerdown,sw1=>swc,oh1=>sigBCD7_8,oh2=>sigBCD7_9,ot1=>sigBCD7_10,ot2=>sigBCD7_11); U6: mode PORT MAP(b=>swa,c=>modeset,clk=>clk1,cool=>cools,heat=>heats,dry=>drys,cool1=>sigBCD7_12,heat1=>sigBCD7_13,dry1=>sigBCD7_14);

U7: BCD7 PORT MAP(a=>swa,b=>sigBCD7_1,q=>switchstate); U8: BCD7 PORT MAP(a=>swa,b=>sigBCD7_2,q=>sleepstate); U9: BCD7 PORT MAP(a=>swa,b=>sigBCD7_3,q=>distate);

U10: BCD7 PORT MAP(a=>swa,b=>sigBCD7_4,q=>zhongstate); U11: BCD7 PORT MAP(a=>swa,b=>sigBCD7_5,q=>gaostate); U12: BCD7 PORT MAP(a=>swa,b=>sigBCD7_6,q=>tempd); U13: BCD7 PORT MAP(a=>swa,b=>sigBCD7_7,q=>temps); U14: BCD7 PORT MAP(a=>swa,b=>sigBCD7_8,q=>hdstate); U15: BCD7 PORT MAP(a=>swa,b=>sigBCD7_9,q=>hsstate); U16: BCD7 PORT MAP(a=>swa,b=>sigBCD7_10,q=>tdstate); U17: BCD7 PORT MAP(a=>swa,b=>sigBCD7_11,q=>tsstate); U18: BCD7 PORT MAP(a=>swa,b=>sigBCD7_12,q=>coolstate); U19: BCD7 PORT MAP(a=>swa,b=>sigBCD7_13,q=>heatstate); U20: BCD7 PORT MAP(a=>swa,b=>sigBCD7_14,q=>drystate); PROCESS(clk1) BEGIN

END PROCESS;

END ARCHITECTURE behave;

2)单脉冲模块

LIBRARY IEEE ;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL ; ENTITY pulse IS --单脉冲模块 PORT(a,clk: IN STD_LOGIC; b: OUT STD_LOGIC); END ENTITY pulse;

8

ARCHITECTURE behave OF pulse IS SIGNAL d:STD_LOGIC:='0'; SIGNAL f:STD_LOGIC:='0';

SIGNAL g:STD_LOGIC:='0'; --确保经过第一个clk上升沿时输出1 SIGNAL h:STD_LOGIC:='0'; --同上 BEGIN

PROCESS(a,clk) BEGIN

IF(clk'EVENT AND clk='1')THEN IF(f='1')THEN g<='1';

ELSE g<='0'; END IF; END IF;

END PROCESS; PROCESS(a,clk) BEGIN

IF(clk'EVENT AND clk='0')THEN IF(a='1')THEN IF(f='1')THEN IF(g='1')THEN d<='1'; ELSE d<='0'; END IF; ELSE d<='1'; END IF;

ELSE d<='0'; --a为0时,重置此单脉冲发生器 END IF; END IF;

END PROCESS; PROCESS(d) BEGIN IF(a='1')THEN IF(d='1')THEN f<='0';

ELSE f<='1'; END IF; ELSE f<='0'; END IF; b<=f;

END PROCESS;

END ARCHITECTURE behave;

9

3)开关模块

LIBRARY IEEE ;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY switch IS --开关模块

PORT(a,b,clk: IN STD_LOGIC; --b受定时模块的控制,时间减为0时,关闭开关

c: OUT STD_LOGIC;

d: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); --输送给数码管 END ENTITY switch;

ARCHITECTURE behave OF switch IS

COMPONENT pulse --调用单脉冲模块 PORT(a,clk: IN STD_LOGIC; b: OUT STD_LOGIC); END COMPONENT pulse; SIGNAL p1 : STD_LOGIC:='0'; SIGNAL p2 : STD_LOGIC:='0'; BEGIN

U1: pulse PORT MAP(a=>a,b=>p1,clk=>clk); U2: pulse PORT MAP(a=>b,b=>p2,clk=>clk); PROCESS(a,b,clk) BEGIN

IF(clk'EVENT AND clk='1')THEN IF(p1='1')THEN --空调开关打开 c<='1';d<=\ END IF;

IF(p2='1')THEN --时间减为0时,定时模块返回1,关闭开关 c<='0';d<=\ END IF; END IF; END PROCESS;

END ARCHITECTURE behave;

4)开关控制模块

LIBRARY IEEE ;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY control IS --开关控制模块 PORT(a,b,clk: IN STD_LOGIC; c: OUT STD_LOGIC); END ENTITY control;

ARCHITECTURE behave OF control IS

COMPONENT pulse --调用单脉冲模块

10

PORT(a,clk: IN STD_LOGIC; b: OUT STD_LOGIC); END COMPONENT pulse; SIGNAL p1 : STD_LOGIC:='0'; SIGNAL p2 : STD_LOGIC:='0'; BEGIN

U1: pulse PORT MAP(a=>a,b=>p1,clk=>clk); U2: pulse PORT MAP(a=>b,b=>p2,clk=>clk); PROCESS(a,b,clk) BEGIN

IF(clk'EVENT AND clk='1')THEN IF(p1='1')THEN --空调开关打开 c<='0'; END IF;

IF(p2='1')THEN --时间减为0时,定时模块返回1,关闭开关 c<='1'; END IF; END IF; END PROCESS;

END ARCHITECTURE behave;

5)温度模块

LIBRARY IEEE ;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL ;

ENTITY temp IS --温度模块,最高30度,最低16度,默认26度 PORT(a,b,c,clk: IN STD_LOGIC; --a控制开关,b提高1度,c降低1度 temp1,temp2: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END ENTITY temp;

ARCHITECTURE behave OF temp IS

COMPONENT pulse --调用单脉冲模块 PORT(a,clk: IN STD_LOGIC; b: OUT STD_LOGIC); END COMPONENT pulse;

SIGNAL t1 : STD_LOGIC_VECTOR(3 DOWNTO 0):=\SIGNAL t2 : STD_LOGIC_VECTOR(3 DOWNTO 0):=\SIGNAL p1 : STD_LOGIC:='0'; SIGNAL p2 : STD_LOGIC:='0'; SIGNAL p3 : STD_LOGIC:='0'; BEGIN

U1: pulse PORT MAP(a=>b,b=>p1,clk=>clk); U2: pulse PORT MAP(a=>c,b=>p2,clk=>clk);

11

搜索更多关于: 基于VHDL的空调控制器设计 的文档
基于VHDL的空调控制器设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2mkn98wnmb8jj329nz0t2wkqq4mjdl00lzb_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top