3060|2

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

用FPGA写的用DHT11检测温度,为什么运行报错呢 [复制链接]

本来打算用FPGA写一个小功能,用DHT11检测温度并显示出来,写完后程序报错,死活找不出为什么错,就来求助一下大家,希望有大神帮我过过眼,这样写对不对。下面附上代码:
library IEEE;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;


entity temperatrue is
    Port ( temp : in std_logic;
           vcc:out std_logic:='1';
           clk : in STD_LOGIC;
           light :out std_logic_vector(1 downto 0);
           num1 : out std_logic_vector(7 downto 0));
end temperatrue;

architecture Behavioral of temperatrue is
signal i:integer:=1;
signal k:integer:=-2;
signal k1:integer:=0;
signal k2:integer:=0;
signal m:integer:=0;
signal n1:integer:=0;
signal n2:integer:=0;
signal t:integer:=1;
signal light_next:std_logic_vector(1 downto 0);
signal num_next1:std_logic_vector(7 downto 0);
signal num_next2:std_logic_vector(7 downto 0);
signal temperatrue_next :std_logic_vector(7 downto 0);
begin
process(clk) is
begin   
    if clk'event and clk='1' then
        light<=light_next;
        num1<=num_next1;
        if n1=3 then
           n1<=0;
         else
             n1<=n1+1;
         end if;
    end if;

end process;

process(clk) is
begin
    if clk'event and clk='1' then
    n2<=n2+1;

    if n2<1500 then
    vcc<='1';
    elsif n2<1500+20 then
    vcc<='0' ;
    elsif n2<1520+2850 then
    vcc<='1';
    end if;

    if n2=1520+2850 then
    n2<=1;
    end if;

end if;
end process;

process(n1) is
begin
    case n1 is
    when 0=> light_next<="10";
    when 1=> light_next<="01";
    when others=> light_next<="11";
    end case;   
end process;

process(light_next,t) is
begin
    case light_next is
    when"10"=> case t/10 is
        when 0=>    num_next1<="00000011";
        when 1=>    num_next1<="10011111";
        when 2=>    num_next1<="00100101";
        when 3=>    num_next1<="10011111";
        when 4=>    num_next1<="00001101";
        when 5=>    num_next1<="10011001";
        when 6=>    num_next1<="01001001";
        when 7=>    num_next1<="00011111";
        when 8=>    num_next1<="00000001";
        when 9=>    num_next1<="00001001";
         when others=>  num_next1<="11111111";
        end case;
    when "01"=> case  t-(t/10)*10 is  
        when 0=>    num_next1<="00000011";
        when 1=>    num_next1<="10011111";
        when 2=>    num_next1<="00100101";
        when 3=>    num_next1<="10011111";
        when 4=>    num_next1<="00001101";
        when 5=>    num_next1<="10011001";
        when 6=>    num_next1<="01001001";
        when 7=>    num_next1<="00011111";
        when 8=>    num_next1<="00000001";
        when 9=>    num_next1<="00001001";  
         when others=>  num_next1<="11111111";
        end case;  
    when others=>  num_next1<="11111111";
    end case;            
end process;

process(temp) is
begin
    if temp'event and temp='1' then
        k<=k+1;
        k1<=k2;
        k2<=n2;
        if k>15 and k<24 then
            if k2-k1>100 then   
                if k=23 then
                    t<=t+1;
                else
                    m<=1;
                    i<=1;
                    while i<=23-k loop
                        m<=m*2;
                        i<=i+1;
                    end loop;
                    t<=t+m;
                end if;
            end if;            
        end if;      
    end if;   
    if k=39 then
    k<=-2;
    k1<=0;
    k2<=0;
    t<=0;
    end if;
end process;





end Behavioral;


此帖出自FPGA/CPLD论坛

最新回复

又是毕设,没有初始状态,怎么跑的起来的,这种程序呵呵了  详情 回复 发表于 2017-5-23 16:59
点赞 关注
 

回复
举报

3471

帖子

13

TA的资源

五彩晶圆(高级)

沙发
 
写完后程序报错。那就把错误信息发出来。完整的截图。根据提示,来分析原因。
此帖出自FPGA/CPLD论坛
 
 

回复

304

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
又是毕设,没有初始状态,怎么跑的起来的,这种程序呵呵了
此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表