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

Nexys4開發(fā)板的溫度顯示ADT7420傳感器verilog代碼

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

名稱:Nexys4開發(fā)板的溫度顯示ADT7420傳感器verilog(代碼在文末付費下載)

軟件:Vivado

語言:Verilog

要求:使用Nexys4開發(fā)板顯示溫度,溫度傳感器型號ADT7420

溫度計2.png

代碼頂層

`timescale?1ns?/?1ps

//////////////////////////////////////////////////////////////////////////////////
module?temp_top(
????input?clk,//100M時鐘
????input?rst_p,//復(fù)位按鍵???
????output??[7:0]?weixuan,//數(shù)碼管位選
????output??[7:0]?duanxuan,??//數(shù)碼管段選??
????
????output?temp_SCL,//傳感器IIC接口
????inout?temp_SDA//傳感器IIC接口
????);

wire?[7:0]?read_data;//高位
wire?[7:0]?read_data1;//低位
wire?[12:0]?temp_sensor_data;
assign?temp_sensor_data={read_data,read_data1[7:3]};//溫度數(shù)據(jù)由高位和低位拼接

wire?[3:0]int_data_ten;//整數(shù)部分的十位
wire?[3:0]int_data_one;//整數(shù)部分的個位
wire?[3:0]?point_data_tho;//小數(shù)部分

wire?clk_out;
//計數(shù)及分頻模塊,先計數(shù),再分頻
div_count?i_div_count(
.?clk(clk),
.?rst_n(~rst_p),
.?clk_out(clk_out)//輸出分頻信號200分頻----100M/200=500K
????);

//傳感器溫度采集模塊
temp_sensor?tempsensor(
.clk_out(clk_out),
.rst_n(~rst_p),
.scl(temp_SCL),//傳感器IIC接口
.sda(temp_SDA),//傳感器IIC接口
.read_data(read_data),//高位
.read_data1(read_data1)//低位
);

//譯碼編碼模塊,將溫度數(shù)據(jù)轉(zhuǎn)換為BCD碼
code_decode?i_code_decode(
.?clk(clk),//100M
.?rst_p(rst_p),//push?high
.?temp_sensor_data(temp_sensor_data),
.?int_data_ten(int_data_ten),//整數(shù)部分的十位
.?int_data_one(int_data_one),//整數(shù)部分的個位
.?point_data_tho(point_data_tho)//小數(shù)部分
????);

//數(shù)碼管動態(tài)顯示模塊
segments_display?segmentsdisplay(
.?clk(clk),//100M
.?rst_p(rst_p),//push?high
.?int_data_ten(int_data_ten),//整數(shù)部分的十位
.?int_data_one(int_data_one),//整數(shù)部分的個位
.?point_data_tho(point_data_tho),//小數(shù)部分
.?weixuan(weixuan),//數(shù)碼管位選
.?duanxuan(duanxuan)??//數(shù)碼管段選?
);

endmodule

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

相關(guān)推薦