• 方案介紹
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

溫濕度傳感器DHT11通過串口UART輸出verilog語言Basys3

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

名稱:溫濕度傳感器DHT11通過串口UART輸出verilog語言Basys3(代碼在文末下載)

軟件:VIVADO

語言:Verilog

代碼功能:

溫濕度計(jì)傳感器DHT11通過串口UART輸出verilog代碼:

1、使用溫濕度傳感器DHT11采集環(huán)境的溫度和濕度,并在數(shù)碼管顯示。

2、使用UART協(xié)議將溫濕度數(shù)據(jù)通過串口發(fā)送至電腦。

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

本代碼已在Basys3開發(fā)板驗(yàn)證,開發(fā)板如下,其他開發(fā)板可以修改管腳適配:

basys3開發(fā)板.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時(shí)鐘
????input?reset,//復(fù)位,按下高電平
????output?uart_tx,//串口發(fā)送
????output?uart_led,//串口發(fā)送指示燈--U16
????input?switch,//切換(switch==1溫度)和(switch==0濕度)--SW0
????inout?dh11_io,//溫濕度傳感器接口--JA1-J1
????output?[3:0]?bit_select,//數(shù)碼管位選
????output?[7:0]?lednum_select?//數(shù)碼管段選?
????);
?
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)
);
//數(shù)碼管顯示模塊
display_num?i_display_num(
.?clk(clk_100M),
.?temp_data(temp_data),
.?humi_data(humi_data),
.?bit_select(bit_select),//數(shù)碼管位選
.?lednum_select(lednum_select)//數(shù)碼管段選?
);?
?wire?[7:0]?send_data;
?assign?send_data=(switch==1)?temp_data:humi_data;
?//串口發(fā)送模塊
uart?i_uart(
.?clk_50m(clk_50M),?
.?tx(uart_tx),
.?tx_busy(uart_led),
.?din(send_data),
.?wr_en(1'b1)??
);
?
endmodule

點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=297

相關(guān)推薦