名稱:Nexys4開發(fā)板的溫度顯示ADT7420傳感器verilog(代碼在文末付費下載)
軟件:Vivado
語言:Verilog
要求:使用Nexys4開發(fā)板顯示溫度,溫度傳感器型號ADT7420
代碼頂層
`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
閱讀全文