数字系统课程设计报告中央空调.docx

上传人:b****1 文档编号:3267094 上传时间:2023-05-05 格式:DOCX 页数:36 大小:89.70KB
下载 相关 举报
数字系统课程设计报告中央空调.docx_第1页
第1页 / 共36页
数字系统课程设计报告中央空调.docx_第2页
第2页 / 共36页
数字系统课程设计报告中央空调.docx_第3页
第3页 / 共36页
数字系统课程设计报告中央空调.docx_第4页
第4页 / 共36页
数字系统课程设计报告中央空调.docx_第5页
第5页 / 共36页
数字系统课程设计报告中央空调.docx_第6页
第6页 / 共36页
数字系统课程设计报告中央空调.docx_第7页
第7页 / 共36页
数字系统课程设计报告中央空调.docx_第8页
第8页 / 共36页
数字系统课程设计报告中央空调.docx_第9页
第9页 / 共36页
数字系统课程设计报告中央空调.docx_第10页
第10页 / 共36页
数字系统课程设计报告中央空调.docx_第11页
第11页 / 共36页
数字系统课程设计报告中央空调.docx_第12页
第12页 / 共36页
数字系统课程设计报告中央空调.docx_第13页
第13页 / 共36页
数字系统课程设计报告中央空调.docx_第14页
第14页 / 共36页
数字系统课程设计报告中央空调.docx_第15页
第15页 / 共36页
数字系统课程设计报告中央空调.docx_第16页
第16页 / 共36页
数字系统课程设计报告中央空调.docx_第17页
第17页 / 共36页
数字系统课程设计报告中央空调.docx_第18页
第18页 / 共36页
数字系统课程设计报告中央空调.docx_第19页
第19页 / 共36页
数字系统课程设计报告中央空调.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数字系统课程设计报告中央空调.docx

《数字系统课程设计报告中央空调.docx》由会员分享,可在线阅读,更多相关《数字系统课程设计报告中央空调.docx(36页珍藏版)》请在冰点文库上搜索。

数字系统课程设计报告中央空调.docx

数字系统课程设计报告中央空调

中央空调控制系统设计报告

组员:

040

040

1.设计要求

大楼分为1,2,3号楼,共用某型号中央空调,但是1,2,3号都有独立的2级控制器,大楼另有总控制器1级控制开关。

1,2,3号楼均有一定的房间(假设为3个,001-003)。

每个房间又有自己的控制面板3级控制。

如果总控1级打开,则2级可以使用,而且2级可以控制下一级的设置,意思是如果2级选择了制热模式,则3级所在的房间就只能选择制热,通风,除湿模式,不能设置为制冷方式,如果2级是制冷,3级就不能制热;如果2级是通风,3级就只能是通风或除湿,如果2级是除湿,3级也只能是通风或除湿。

但是2级又本身是每号楼的001号房间的3级控制器。

另外,二级控制器可以选择是否控制温度范围,根据政府的规定,夏天制冷不得低于26度,冬季制冷不得高于20度,可以通过2级控制器设置限制并且控制。

对于3级控制器,根据2级控制器的选择做出相应的动作并提供相应的指示。

2.设计思路

根据设计要求,系统有模式如下:

1:

以上框架从左到右分别表示一级,二级,三级开关,其中二级开关又是每号楼001号房间的开关,只有当上级开关打开时下级开关才有效,否则无效。

2:

根据实际情况,每个房间除了有开关以外还有一个模式调节信号,当这个信号出现一个上升沿,相应房间的模式便会改变到我们设定的循环的下一个状态各输入输出信号如下:

例:

一号楼

floor1_sel2:

001号房间模式选择开关

floor1_sel12:

002号房间模式选择开关

floor1_sel13:

003号房间模式选择开关

floor1_modeout_room1:

001号房间模式输出

floor1_modeout_room2:

002号房间模式输出

floor1_modeout_room3:

002号房间模式输出

floor1_mode2:

二级开关的模式(中间变量,用于控制2号三号房间的模式循环模式)

floor1_modein_room2:

002号房间循环模式

floor1_modein_room3:

003号房间循环模式

floor1_modeout2:

2级开关循环模式

二级开关的循环模式

关(000)制冷(001)制热(010)

 

除湿(100)

通风(011)

如果二级开关是制冷:

三级开关模式循环模式

关(000)

制冷(001)

通风(011)

 

除湿(100)

 

如果二级开关是制热:

三级开关模式循环模式

关(000)

制热(001)

通风(011)

 

除湿(100)

 

如果二级开关是通风:

三级开关模式循环模式

关(000)

通风(011)除湿(100)

如果二级开关是除湿:

三级开关模式循环模式

关(000)

除湿(100)通风(011)

各个房间的模式变换由下列进程完成

process(floor1_k2,floor1_sel2,key_all)

process(pr_mode1)

process(floor1_mode2)

process(floor1_k12,floor1_sel12,floor1_k2,key_all)

process(pr_moderoom312,nx_moderoom212,floor1_modein_room2)

process(floor1_k13,floor1_sel13,floor1_k2,key_all)

process(pr_moderoom313,pr_moderoom213,floor1_modein_room3)

另外,二号楼和三号楼变量和一号楼一样,且各自独立。

 

3:

除了以上,每个房间都有温度控制系统,二级开关有温度控制开关它决定是否对该楼进行温度控制,若选择对温度控制,则要输入制冷的最低温度(大于等于26摄氏度),制热的最低温度(小于等于20摄氏度);对于,三级开关,当模式为制冷或者制热的,要有温度输入,和开关的温度输出,输出受温度控制开关,温度限制和输入温度的共同控制,当为其他模式时,则没有,具体变量如下:

例:

一号楼温度控制系统

floor1_temp_control:

温度控制开关

floor1_top_temp:

制热最高温度输入

floor1_low_temp:

制冷最低温度输入

floor1_temp_setroom1:

001号房间的温度输入

floor1_temp_setroom2:

002号房间的温度输入

floor1_temp_setroom3:

003号房间的温度输入

floor1_temp_outroom1:

001号房间的温度输入

floor1_temp_outroom2:

002号房间的温度输出

floor1_temp_outroom3:

001号房间的温度输出

这些功能由下列进程完成:

process(floor1_temp_control,floor1_modeout2,floor1_temp_setroom1)

process(floor1_temp_control,floor1_modeout2,floor1_temp_setroom2)

process(floor1_temp_control,floor1_modeout2,floor1_temp_setroom3)

另外,二号楼和三号楼变量和一号楼一样,且各自独立。

3.源代码

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityairconditionis

port(

key_all:

instd_logic;

floor1_k2:

instd_logic;

floor1_k12:

instd_logic;

floor1_k13:

instd_logic;

floor1_sel2:

instd_logic;

floor1_sel12:

instd_logic;

floor1_sel13:

instd_logic;

floor2_k2:

instd_logic;

floor2_k22:

instd_logic;

floor2_k23:

instd_logic;

floor2_sel2:

instd_logic;

floor2_sel22:

instd_logic;

floor2_sel23:

instd_logic;

floor3_k2:

instd_logic;

floor3_k32:

instd_logic;

floor3_k33:

instd_logic;

floor3_sel2:

instd_logic;

floor3_sel32:

instd_logic;

floor3_sel33:

instd_logic;

floor1_modeout_room1:

outstd_logic_vector(2downto0);

floor1_modeout_room2:

outstd_logic_vector(2downto0);

floor1_modeout_room3:

outstd_logic_vector(2downto0);

floor2_modeout_room1:

outstd_logic_vector(2downto0);

floor2_modeout_room2:

outstd_logic_vector(2downto0);

floor2_modeout_room3:

outstd_logic_vector(2downto0);

floor3_modeout_room1:

outstd_logic_vector(2downto0);

floor3_modeout_room2:

outstd_logic_vector(2downto0);

floor3_modeout_room3:

outstd_logic_vector(2downto0);

floor1_mode2:

bufferstd_logic_vector(2downto0);

floor2_mode2:

bufferstd_logic_vector(2downto0);

floor3_mode2:

bufferstd_logic_vector(2downto0);

floor1_modein_room2:

bufferstd_logic_vector(2downto0);

floor1_modein_room3:

bufferstd_logic_vector(2downto0);

floor2_modein_room2:

bufferstd_logic_vector(2downto0);

floor2_modein_room3:

bufferstd_logic_vector(2downto0);

floor3_modein_room2:

bufferstd_logic_vector(2downto0);

floor3_modein_room3:

bufferstd_logic_vector(2downto0);

floor1_modeout2:

bufferstd_logic_vector(2downto0);

floor2_modeout2:

bufferstd_logic_vector(2downto0);

floor3_modeout2:

bufferstd_logic_vector(2downto0);

floor1_temp_control:

instd_logic;

floor2_temp_control:

instd_logic;

floor3_temp_control:

instd_logic;

floor1_top_temp:

instd_logic_vector(4downto0);

floor2_top_temp:

instd_logic_vector(4downto0);

floor3_top_temp:

instd_logic_vector(4downto0);

floor1_low_temp:

instd_logic_vector(4downto0);

floor2_low_temp:

instd_logic_vector(4downto0);

floor3_low_temp:

instd_logic_vector(4downto0);

floor1_temp_setroom1:

instd_logic_vector(4downto0);

floor1_temp_setroom2:

instd_logic_vector(4downto0);

floor1_temp_setroom3:

instd_logic_vector(4downto0);

floor1_temp_outroom1:

outstd_logic_vector(4downto0);

floor1_temp_outroom2:

outstd_logic_vector(4downto0);

floor1_temp_outroom3:

outstd_logic_vector(4downto0);

floor2_temp_setroom1:

instd_logic_vector(4downto0);

floor2_temp_setroom2:

instd_logic_vector(4downto0);

floor2_temp_setroom3:

instd_logic_vector(4downto0);

floor2_temp_outroom1:

outstd_logic_vector(4downto0);

floor2_temp_outroom2:

outstd_logic_vector(4downto0);

floor2_temp_outroom3:

outstd_logic_vector(4downto0);

floor3_temp_setroom1:

instd_logic_vector(4downto0);

floor3_temp_setroom2:

instd_logic_vector(4downto0);

floor3_temp_setroom3:

instd_logic_vector(4downto0);

floor3_temp_outroom1:

outstd_logic_vector(4downto0);

floor3_temp_outroom2:

outstd_logic_vector(4downto0);

floor3_temp_outroom3:

outstd_logic_vector(4downto0));

endaircondition;

architecturebehaveofairconditionis

typemodesis(one,two,three,four,five);

typemodes33is(one,two,three,four);

typemodes32is(one,two,three);

signalpr_mode1,nx_mode1:

modes;

signalpr_mode2,nx_mode2:

modes;

signalpr_mode3,nx_mode3:

modes;

signalpr_moderoom312,nx_moderoom312:

modes33;

signalpr_moderoom313,nx_moderoom313:

modes33;

signalpr_moderoom212,nx_moderoom212:

modes32;

signalpr_moderoom213,nx_moderoom213:

modes32;

signalpr_moderoom322,nx_moderoom322:

modes33;

signalpr_moderoom323,nx_moderoom323:

modes33;

signalpr_moderoom222,nx_moderoom222:

modes32;

signalpr_moderoom223,nx_moderoom223:

modes32;

signalpr_moderoom332,nx_moderoom332:

modes33;

signalpr_moderoom333,nx_moderoom333:

modes33;

signalpr_moderoom232,nx_moderoom232:

modes32;

signalpr_moderoom233,nx_moderoom233:

modes32;

begin

------------第一层楼代码-----------

process(floor1_k2,floor1_sel2,key_all)

begin

if(floor1_k2='0'orkey_all='0')thenpr_mode1<=five;

elsif(floor1_sel2'eventandfloor1_sel2='1')then

pr_mode1<=nx_mode1;

endif;

endprocess;

process(pr_mode1)

begin

casepr_mode1is

whenone=>floor1_mode2<="001";nx_mode1<=two;

whentwo=>floor1_mode2<="010";nx_mode1<=three;

whenthree=>floor1_mode2<="011";nx_mode1<=four;

whenfour=>floor1_mode2<="100";nx_mode1<=five;

whenfive=>floor1_mode2<="000";nx_mode1<=one;

endcase;

endprocess;

process(floor1_mode2)

begin

casefloor1_mode2is

when"000"=>floor1_modeout2<="000";floor1_modein_room2<="000";

floor1_modein_room3<="000";floor1_modeout_room1<="000";

when"001"=>floor1_modeout2<="001";floor1_modein_room2<="001";

floor1_modein_room3<="001";floor1_modeout_room1<="001";

when"010"=>floor1_modeout2<="010";floor1_modein_room2<="010";

floor1_modein_room3<="010";floor1_modeout_room1<="010";

when"011"=>floor1_modeout2<="011";floor1_modein_room2<="011";

floor1_modein_room3<="011";floor1_modeout_room1<="011";

when"100"=>floor1_modeout2<="100";floor1_modein_room2<="100";

floor1_modein_room3<="100";floor1_modeout_room1<="100";

whenothers=>null;

endcase;

endprocess;

process(floor1_k12,floor1_sel12,floor1_k2,key_all)

begin

if(floor1_k12='0'orfloor1_k2='0'orkey_all='0')thenpr_moderoom312<=four;pr_moderoom212<=three;

elsif(floor1_sel12'eventandfloor1_sel12='1')then

pr_moderoom312<=nx_moderoom312;

pr_moderoom212<=nx_moderoom212;

endif;

endprocess;

process(pr_moderoom312,nx_moderoom212,floor1_modein_room2)

begin

casefloor1_modein_room2is

when"000"=>floor1_modeout_room2<="000";

when"001"=>

casepr_moderoom312is

whenone=>floor1_modeout_room2<="001";nx_moderoom312<=two;

whentwo=>floor1_modeout_room2<="011";nx_moderoom312<=three;

whenthree=>floor1_modeout_room2<="100";nx_moderoom312<=four;

whenfour=>floor1_modeout_room2<="000";nx_moderoom312<=one;

endcase;

when"010"=>

casepr_moderoom312is

whenone=>floor1_modeout_room2<="010";nx_moderoom312<=two;

whentwo=>floor1_modeout_room2<="011";nx_moderoom312<=three;

whenthree=>floor1_modeout_room2<="100";nx_moderoom312<=four;

whenfour=>floor1_modeout_room2<="000";nx_moderoom312<=one;

endcase;

when"011"=>

casepr_moderoom212is

whenone=>floor1_modeout_room2<="011";nx_moderoom212<=two;

whentwo=>floor1_modeout_room2<="100";nx_moderoom212<=three;

whenthree=>floor1_modeout_room2<="000";nx_moderoom212<=one;

endcase;

when"100"=>

casepr_moderoom212is

whenone=>floor1_modeout_room2<="100";nx_moderoom212<=two;

whentwo=>floor1_modeout_room2<="011";nx_moderoom212<=three;

whenthree=>floor1_modeout_room2<="000";nx_moderoom212<=one;

endcase;

whenothers=>null;

endcase;

endprocess;

process(floor1_k13,floor1_sel13,floor1_k2,key_all)

begin

if(floor1_k13='0'orfloor1_k2='0'orkey_all='0')thenpr_moderoom313<=four;pr_moderoom213<=three;

elsif(floor1_sel13'eventandfloor1_sel13='1')then

pr_moderoom313<=nx_moderoom313;

pr_moderoom213<=nx_moderoom213;

endif;

endprocess;

process(pr_moderoom313,pr_moderoom213,floor1_modein_room3)

begin

casefloor1_modein_room3is

when"000"=>floor1_modeout_room3<="000";

when"001"=>

casepr_moderoom313is

whenone=>floor1_modeout_room3<="001";nx_moderoom313<=two;

whentwo=>floor1_modeout_room3<="011";nx_moderoom313<=three;

whenthree=>floor1_modeout_room3<="100";nx_moderoom313<=four;

whenfour=>floor1_modeout_room3<="000";nx_moder

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2