- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字系统设计与硬件描述语言
期末考试作业
题目: 智能空调控制器的设计
学院: 电子信息工程学院
专业: 电子信息工程
学号: 3012204273
姓名: 王欢
2015-01-09
选题设计描述
功能介绍
对于这次的期末课程作业,我选择的是智能空调控制器的设计。众所周知,日常使用的空调至少具有定时、控温、模式选择等基本功能。我设计的这个智能空调主要能实现以下几种功能:
①四种模式选择:强风、弱风、自然风、睡眠状态。
②工作时间设定:半小时、一小时、一个半小时、两小时。
③工作温度设置:可以自由设置温度,然后将室温与设置的温度进行比较,当室温低于设置的温度时,空调温度升高;当室温高于设置的温度时,空调温度下降;并且当室温达到设置的温度时,温度就不再变化。
2. 算法简介
按照上述的几种功能介绍,我将分几个模块依次介绍:
①模式选择模块:因为有4种模式,所以用一个4路数据选择器就可以实现。“00”、“01”、“10”、“11”分别代表“强风”、“弱风”、“自然风”、“睡眠状态”。
②时间设置模块:半个小时即三十分钟,可以用一个三十进制的计数器来实现定时,一个小时即六十分钟,可以用一个六十进制的计数器实现,依此类推即可。
③温度设置模块:室温与设置温度的比较需要用比较语句来实现,空调温度的增减都需要用计数器来实现,所以这是一个包含比较和计数两种功能的电路。
④开关模块:我采用的是一个是三输入开关控制器,三个输入分别代表模式选择、时间设置、温度设置,只要其中有一个模块开始工作,那么开关就打开,空调就开始工作。
⑤显示模块:上述几个模块都需要这个模块来进行显示。用两个BCD-七段译码器来分别显示显示十位和个位。就可以看出温度和时间的变化。
程序源代码及说明
①模式选择,四选一数据选择器:仿真见图一
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY xuanze IS
PORT(a,b,c,d,s1,s2 : IN STD_LOGIC; ---a,b,c,d是数据端口,
s1和s2是选择端口。
y : OUT STD_LOGIC);
END ENTITY xuanze;
ARCHITECTURE one OF xuanze IS
SIGNAL ss : STD_LOGIC_VECTOR (0 TO 1);
BEGIN ss=s2s1; ---将两个标准逻辑位类型变成一个标准逻辑矢量类型
PROCESS(ss)
BEGIN
CASE ss IS ---用case语句实现多路选择
WHEN 00 = y=a;
WHEN 01 = y=b;
WHEN 10 = y=c;
WHEN 11 = y=d;
WHEN OTHERS = NULL;
END CASE;
END PROCESS;
END ARCHITECTURE one;
②定时半小时,三十进制计数器:仿真见图二
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity thirty is
port(clk,clr:in std_logic;
gewei,shiwei:out std_logic_vector(3 downto 0); ---个位和十位
dingshi:out std_logic); ---定时脉冲
end entity;
architecture arc of thirty is
signal jinwei: std_logic; ---进位
begin process(clk,clr)
variable ge:std_logic_vector(3 downto 0);
begin
if clr=1 then ge:=0000; ---clr有清零作用
elsif clk event and clk=1
then if ge=1000 then ge:=ge+1; jinwei=1;
文档评论(0)