• 方案介绍
  • 相关推荐
申请入驻 产业图谱

温湿度传感器DHT11通过串口UART输出verilog语言Basys3

05/12 13:39
1325
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

名称:温湿度传感器DHT11通过串口UART输出verilog语言Basys3(代码在文末下载)

软件:VIVADO

语言:Verilog

代码功能:

温湿度计传感器DHT11通过串口UART输出verilog代码:

1、使用温湿度传感器DHT11采集环境的温度和湿度,并在数码管显示。

2、使用UART协议将温湿度数据通过串口发送至电脑。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在Basys3开发板验证,开发板如下,其他开发板可以修改管脚适配:

basys3开发板.png

工程文件:

97899ef3-28ce-4b3d-a6fb-ed0ec24796d8.png

程序文件:

0ba03695-39e6-4bf4-ad03-3af3295fc086.png

程序编译:

c4891c93-a1ab-4d44-8182-3670715bc10b.png

管脚分配:

8b8f1c80-c737-4f65-a68f-100385a6d3d4.png

RTL图:

5d0b720b-5b94-4b60-a333-82cdd5eb80f4.png

顶层代码展示:

module DH11_uart_top(
    input clk_100M,//100M时钟
    input reset,//复位,按下高电平
    output uart_tx,//串口发送
    output uart_led,//串口发送指示灯--U16
    input switch,//切换(switch==1温度)和(switch==0湿度)--SW0
    inout dh11_io,//温湿度传感器接口--JA1-J1
    output [3:0] bit_select,//数码管位选
    output [7:0] lednum_select //数码管段选 
    );
 
wire [7:0]  temp_data;//温度
wire [7:0]  humi_data;//湿度
reg clk_50M=0; 
always@(posedge clk_100M)
    clk_50M<=~clk_50M;//2分频到50MHz
//dht11温湿度采集模块
 dht11 i_dht11(
.i_clk(clk_50M),
.i_rst_n(~reset),
.io_data(dh11_io),
.o_temp(temp_data),
.o_humi(humi_data)
);
//数码管显示模块
display_num i_display_num(
. clk(clk_100M),
. temp_data(temp_data),
. humi_data(humi_data),
. bit_select(bit_select),//数码管位选
. lednum_select(lednum_select)//数码管段选 
); 
 wire [7:0] send_data;
 assign send_data=(switch==1)?temp_data:humi_data;
 //串口发送模块
uart i_uart(
. clk_50m(clk_50M), 
. tx(uart_tx),
. tx_busy(uart_led),
. din(send_data),
. wr_en(1'b1)  
);
 
endmodule

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=297

相关推荐