云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 基于VHDL的空调控制器设计

基于VHDL的空调控制器设计

  • 62 次阅读
  • 3 次下载
  • 2025/6/29 13:09:52

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的空调控制器设计 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

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 PO

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com