名称:温湿度计传感器DHT11控制数码管显示
软件:QuartusII
语言:Verilog
代码功能:
使用温湿度传感器DHT11采集环境的温度和湿度,并在数码管显示
本代码已在开发板验证
开发板资料:
大西瓜第一代FPGA升级板原理图.pdf
DHT11传感器电路图:
演示视频:温湿度计传感器DHT11控制数码管显示verilog_Verilog/VHDL资源下载
FPGA代码Verilog/VHDL代码资源下载网:www.hdlcode.com
代码下载:
温湿度计传感器DHT11控制数码管显示verilog_Verilog/VHDL资源下载名称:温湿度计传感器DHT11控制数码管显示(代码在文末付费下载)软件:QuartusII语言:Verilog代码功能: 使用温湿度传感器DHT11采集环境的温度和湿度,并在数码管显示 本代码已在开发板验证 开发板资料:大西瓜第一代FPGA升级板原理图.pdf DHT11传感器电路图:演示视频:FPGA代码Verilog/VHDL代码资源下载网:www.hdlcode.comhttp://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=220
部分代码展示
//========================================================================== //温湿度计dht11的数据采集,采集间隔1s //========================================================================== module dht11(i_clk,i_rst_n,io_data,o_temp,o_humi);input i_clk;//50mhz input i_rst_n;//低电平复位 inout io_data;//数据端口 output reg [7:0]o_temp;//输出温度 output reg [7:0]o_humi;//输出湿度 reg o_data;//输出数据reg [39:0]get_data;//dht11获取的数据 reg [5:0]data_num;//获取数据的位数 reg[3:0]crt_state;//三段状态机 reg [3:0]next_state; parameter idle = 4'b0001;//空闲状态 parameter init = 4'b0010;//主机请求复位状态 parameter ans = 4'b0100;//从机应答 parameter rd_data = 4'b1000;//接受数据reg data_sam1;//输入采样1 reg data_sam2;//输入采样2reg data_pluse;//检测输入上升沿脉冲 always@(posedge i_clk ) begindata_sam1<=io_data;data_sam2<=data_sam1;data_pluse<=(~data_sam2)&data_sam1; end reg[26:0] cnt_1s;//1s计数器 always@(posedge i_clk or negedge i_rst_n )if(!i_rst_n)cnt_1s<=27'd0; else if(cnt_1s==27'd49999999)cnt_1s<=27'd0;elsecnt_1s<=cnt_1s+1'b1;reg updata=0; reg[26:0] cnt_2s=27'd0;//2s计数器 always@(posedge i_clk or negedge i_rst_n )if(!i_rst_n)cnt_2s<=27'd0; else if(cnt_2s==27'd99999999)cnt_2s<=27'd0;elsecnt_2s<=cnt_2s+1'b1;always@(posedge i_clk)if(cnt_2s==27'd99999999)updata<=1;elseupdata<=0; /============状态机 always@(posedge i_clk or negedge i_rst_n )if(!i_rst_n)crt_state<=idle;else if(updata==1)//2s更新一次crt_state<=idle;elsecrt_state<=next_state;
设计文档:
设计文档.doc
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 仿真图
按键消抖模块仿真
数码管显示模块仿真
开启控制模块仿真