ds18B20中,temperature_buf[bit_valid] <= one_wire; 什么意思啊????
还有下面程序不理解????
// DS18B20状态机 结束
//--------------------------------------
//++++++++++++++++++++++++++++++++++++++
// 对采集到的温度进行处理 开始
//++++++++++++++++++++++++++++++++++++++
wire [15:0] t_buf = temperature_buf & 16'h07FF;
//--------------------------------------
// 对采集到的温度进行处理计算
//--------------------------------------
always@(posedge clk or negedge rst_n)
begin
if(!rst_n) begin
DS18B20_DATA_buf[15:0] =16'b0000000000000000;
//复位后全部清零
end
else begin
DS18B20_DATA_buf[3:0] = (t_buf[3:0] * 10) >> 4; // 小数点后一位
DS18B20_DATA_buf[7:4] = (t_buf[7:4] >= 10) ? (t_buf[7:4] - 10) : t_buf[7:4]; // 个位
DS18B20_DATA_buf[11:8] = (t_buf[7:4] >= 10) ? (t_buf[11:8] + 1) : t_buf[11:8]; // 十位
// DS18B20_DATA_buf[15:12] = temperature_buf[12] ? 1 : 0;
// 这里是显示正数还是负数的。我们做正数处理
end
end
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>