欢迎来到天天文库
浏览记录
ID:29472452
大小:873.54 KB
页数:45页
时间:2018-12-20
《基于vhdl语言的智能空调控制器的设计说明书》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、数字系统设计与硬件描述语言期末考试作业题目:智能空调控制器的设计学院:电子信息工程学院专业:电子信息工程学号:3012204273姓名:王欢2015-01-0938一、选题设计描述1.功能介绍对于这次的期末课程作业,我选择的是智能空调控制器的设计。众所周知,日常使用的空调至少具有定时、控温、模式选择等基本功能。我设计的这个智能空调主要能实现以下几种功能:①四种模式选择:强风、弱风、自然风、睡眠状态。②工作时间设定:半小时、一小时、一个半小时、两小时。③工作温度设置:可以自由设置温度,然后将室温与设
2、置的温度进行比较,当室温低于设置的温度时,空调温度升高;当室温高于设置的温度时,空调温度下降;并且当室温达到设置的温度时,温度就不再变化。2.算法简介按照上述的几种功能介绍,我将分几个模块依次介绍:①模式选择模块:因为有4种模式,所以用一个4路数据选择器就可以实现。“00”、“01”、“10”、“11”分别代表“强风”、“弱风”、“自然风”、“睡眠状态”。②时间设置模块:半个小时即三十分钟,可以用一个三十进制的计数器来实现定时,一个小时即六十分钟,可以用一个六十进制的计数器实现,依此类推即可。③温
3、度设置模块:室温与设置温度的比较需要用比较语句来实现,空调温度的增减都需要用计数器来实现,所以这是一个包含比较和计数两种功能的电路。38④开关模块:我采用的是一个是三输入开关控制器,三个输入分别代表模式选择、时间设置、温度设置,只要其中有一个模块开始工作,那么开关就打开,空调就开始工作。⑤显示模块:上述几个模块都需要这个模块来进行显示。用两个BCD-七段译码器来分别显示显示十位和个位。就可以看出温度和时间的变化。一、程序源代码及说明①模式选择,四选一数据选择器:仿真见图一LIBRARYIEEE;U
4、SEIEEE.STD_LOGIC_1164.ALL;ENTITYxuanzeISPORT(a,b,c,d,s1,s2:INSTD_LOGIC;---a,b,c,d是数据端口,s1和s2是选择端口。y:OUTSTD_LOGIC);ENDENTITYxuanze;ARCHITECTUREoneOFxuanzeISSIGNALss:STD_LOGIC_VECTOR(0TO1);BEGINss<=s2&s1;---将两个标准逻辑位类型变成一个标准逻辑矢量类型PROCESS(ss)BEGINCASEssIS
5、---用case语句实现多路选择WHEN"00"=>y<=a;38WHEN"01"=>y<=b;WHEN"10"=>y<=c;WHEN"11"=>y<=d;WHENOTHERS=>NULL;ENDCASE;ENDPROCESS;ENDARCHITECTUREone;②定时半小时,三十进制计数器:仿真见图二libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitythirtyisport(clk,clr:i
6、nstd_logic;gewei,shiwei:outstd_logic_vector(3downto0);---个位和十位dingshi:outstd_logic);---定时脉冲endentity;architecturearcofthirtyissignaljinwei:std_logic;---进位beginprocess(clk,clr)variablege:std_logic_vector(3downto0);begin38ifclr='1'thenge:="0000";---clr有
7、清零作用elsifclk'eventandclk='1'thenifge="1000"thenge:=ge+1;jinwei<='1';---当个位加到“1000”即第九个时钟上升时产生一个进位。elsifge="1001"thenge:="0000";---个位加到9之后返回0jinwei<='0';elsege:=ge+1;jinwei<='0';endif;endif;gewei<=ge;endprocess;process(clk,clr,jinwei)variableshi:std_lo
8、gic_vector(3downto0);Beginifclr='1'thenshi:="0000";elseifclk'eventandclk='1'thenifjinwei='1'thenifshi="0010"thenshi:="0000";---十位从“0000”变成“0010”,38即经过了30个时钟脉冲,然后返回“0000”。同时产生一个定时脉冲。dingshi<='1';elseshi:=shi+1;dingshi<='0';endif;endif;shiwei<=s
此文档下载收益归作者所有