名称:温湿度传感器DHT11通过串口UART输出verilog语言Basys3(代码在文末下载)
软件:VIVADO
语言:Verilog
代码功能:
温湿度计传感器DHT11通过串口UART输出verilog代码:
1、使用温湿度传感器DHT11采集环境的温度和湿度,并在数码管显示。
2、使用UART协议将温湿度数据通过串口发送至电脑。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在Basys3开发板验证,开发板如下,其他开发板可以修改管脚适配:
工程文件:
程序文件:
程序编译:
管脚分配:
RTL图:
顶层代码展示:
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
阅读全文
1943