FPGA读写DS18B20温度并通过七段数码管显示verilog设计实验Quartus9.1工程源码,可以做为你的学习设计参考。
/ds18b20_seg7.v
//----------------------------------------
module ds18b20_seg7(
input CLOCK_50, // 板载50MHz时钟
input Q_KEY, // 板载按键RST
//
inout DS18B20,
//
output [7:0] SEG7_SEG, // 七段数码管 段脚
output [7:0] SEG7_SEL // 七段数码管 待译位脚
);
//++++++++++++++++++++++++++++++++++++++
// 获取温度值开始
//++++++++++++++++++++++++++++++++++++++
wire [15:0] t_buf;
ds18b20_drive ds18b20_u0(
.clk(CLOCK_50),
.rst_n(Q_KEY),
//
.one_wire(DS18B20),
//
.temperature(t_buf)
);
//-------------------------------------
// 获取温度值 结束
//-------------------------------------
//+++++++++++++++++++++++++++++++++++++
// 显示键盘值 开始
//+++++++++++++++++++++++++++++++++++++
seg7x8_drive seg7_u0(
.i_clk (CLOCK_50),
.i_rst_n (Q_KEY),
.i_turn_off (8'b1110_1000), // 熄灭位[2进制]
.i_dp (8'b0000_0010), // 小数点位[2进制]
// 欲显数据[16进制]
// 正负位 空白 十位 个位 小数位
.i_data ({12'h0, t_buf[15:12], 4'h0, t_buf[11:0]}),
.o_seg (SEG7_SEG),
.o_sel (SEG7_SEL)
);
//-------------------------------------
// 显示键盘值 结束
//-------------------------------------
endmodule