十七、ds18b20温度检测(2)

1、control.v

module control(
    input                           clk         ,
    input                           rst_n       ,
    input                           sign_in     ,
    input           [23:0]          t_data      ,
    input                           t_data_vld  ,

    output                          sign_out    ,
    output    wire  [23:0]          t_out      
);

//定义信号存储数据的每一位
    wire    [3:0]          temp_r0;//最高位
    wire    [3:0]          temp_r1;    
    wire    [3:0]          temp_r2;
    wire    [3:0]          temp_r3;
    wire    [3:0]          temp_r4;
    wire    [3:0]          temp_r5;//最低位

//暂存传进来的温度数据
    reg     [23:0]         t_data_r;

//t_data_r
    always @(posedge clk or negedge rst_n)begin
        if(!rst_n)begin
            t_data_r <= 24'd0;
        end
        else if(t_data_vld)begin
            t_data_r <= t_data;
        end
    end

//输出符号赋值
    assign sign_out = sign_in;

//提取出数据的每一位
    assign temp_r0 =  t_data_r/1000_00;
    assign temp_r1 = (t_data_r%1000_00)/1000_0;
    assign temp_r2 = (t_data_r%1000_0)/1000;
    assign temp_r3 = (t_data_r%1000)/100;
    assign temp_r4 = (t_data_r%100)/10; 
    assign temp_r5 = t_data_r%10;

//输出24位宽的数据赋值
    assign t_out = {temp_r0,temp_r1,temp_r2,temp_r3,temp_r4,temp_r5};

endmodule

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值