名称:Nexys4开发板的温度显示ADT7420传感器verilog(代码在文末付费下载)
软件:Vivado
语言:Verilog
要求:使用Nexys4开发板显示温度,温度传感器型号ADT7420
代码顶层
`timescale?1ns?/?1ps ////////////////////////////////////////////////////////////////////////////////// module?temp_top( ????input?clk,//100M时钟 ????input?rst_p,//复位按键??? ????output??[7:0]?weixuan,//数码管位选 ????output??[7:0]?duanxuan,??//数码管段选?? ???? ????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]};//温度数据由高位和低位拼接 wire?[3:0]int_data_ten;//整数部分的十位 wire?[3:0]int_data_one;//整数部分的个位 wire?[3:0]?point_data_tho;//小数部分 wire?clk_out; //计数及分频模块,先计数,再分频 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)//低位 ); //译码编码模块,将温度数据转换为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),//整数部分的十位 .?int_data_one(int_data_one),//整数部分的个位 .?point_data_tho(point_data_tho)//小数部分 ????); //数码管动态显示模块 segments_display?segmentsdisplay( .?clk(clk),//100M .?rst_p(rst_p),//push?high .?int_data_ten(int_data_ten),//整数部分的十位 .?int_data_one(int_data_one),//整数部分的个位 .?point_data_tho(point_data_tho),//小数部分 .?weixuan(weixuan),//数码管位选 .?duanxuan(duanxuan)??//数码管段选? ); endmodule
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=145
阅读全文