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

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

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

名称:温湿度传感器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

相关推荐