名稱:溫濕度傳感器DHT11通過串口UART輸出verilog語言Basys3(代碼在文末下載)
軟件:VIVADO
語言:Verilog
代碼功能:
溫濕度計傳感器DHT11通過串口UART輸出verilog代碼:
1、使用溫濕度傳感器DHT11采集環(huán)境的溫度和濕度,并在數(shù)碼管顯示。
2、使用UART協(xié)議將溫濕度數(shù)據(jù)通過串口發(fā)送至電腦。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在Basys3開發(fā)板驗證,開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
工程文件:
程序文件:
程序編譯:
管腳分配:
RTL圖:
頂層代碼展示:
module?DH11_uart_top( ????input?clk_100M,//100M時鐘 ????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
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=297
閱讀全文