朱月彤 发表于 2018-6-25 10:54:29

关于hx711电子秤的一些问题

想用zx—2板子做一个电子秤,关于hx711网上Verilog的资料比较少,自己看了手册和芯片的焊接原理图,还是不能正确读出数据,代码手册焊接原理如下,希望大神能帮我看一下,感激不尽
module hx711_driver(Clk,Rst_n,out,ADDO,ADSK,Get_Flag);
        input Clk;
        input Rst_n;
        output reg out;
        output reg ADDO;
        output reg ADSK;
        output reg Get_Flag;
       
        reg out_reg;
        reg Cnt1;
       
        always@(posedge Clk or negedge Rst_n)
                if(!Rst_n)
                        Cnt1 <= 20'd0;
                else if(Cnt1 == 20'd100000)
                        Cnt1 <= 20'd0;
                else
                        Cnt1 <= Cnt1 + 1'b1;
                       
        always@(posedge Clk or negedge Rst_n)
                if(!Rst_n)
                        begin
                                ADSK <= 1'b0;
                                ADDO <= 1'b1;
                                out_reg <= 8'd0;
                                out <= 8'd0;
                        end
                else
                        begin
                                case(Cnt1)
                                        1 : ADDO <= 1'b0;
                                        51 : ADSK <= 1;
                                        52 : out_reg <= ADDO;
                                        71 : ADSK <= 0;
                                        91 : ADSK <= 1;
                                        92 : out_reg <= ADDO;
                                        111 : ADSK <= 0;
                                        131 : ADSK <= 1;
                                        132 : out_reg <= ADDO;
                                        151 : ADSK <= 0;
                                        171 : ADSK <= 1;
                                        172 : out_reg <= ADDO;
                                        191 : ADSK <= 0;
                                        211 : ADSK <= 1;
                                        212 : out_reg <= ADDO;
                                        231 : ADSK <= 0;
                                        251 : ADSK <= 1;
                                        252 : out_reg <= ADDO;
                                        271 : ADSK <= 0;
                                        291 : ADSK <= 1;
                                        292 : out_reg <= ADDO;
                                        311 : ADSK <= 0;
                                        331 : ADSK <= 1;
                                        332 : out_reg <= ADDO;
                                        351 : ADSK <= 0;
                                        371 : ADSK <= 1;
                                        372 : out_reg <= ADDO;
                                        391 : ADSK <= 0;
                                        411 : ADSK <= 1;
                                        412 : out_reg <= ADDO;
                                        431 : ADSK <= 0;
                                        451 : ADSK <= 1;
                                        452 : out_reg <= ADDO;
                                        471 : ADSK <= 0;
                                        491 : ADSK <= 1;
                                        492 : out_reg <= ADDO;
                                        511 : ADSK <= 0;
                                        531 : ADSK <= 1;
                                        532 : out_reg <= ADDO;
                                        551 : ADSK <= 0;
                                        571 : ADSK <= 1;
                                        572 : out_reg <= ADDO;
                                        591 : ADSK <= 0;
                                        611 : ADSK <= 1;
                                        612 : out_reg <= ADDO;
                                        631 : ADSK <= 0;
                                        651 : ADSK <= 1;
                                        652 : out_reg <= ADDO;
                                        671 : ADSK <= 0;
                                        691 : ADSK <= 1;
                                        692 : out_reg <= ADDO;
                                        711 : ADSK <= 0;
                                        731 : ADSK <= 1;
                                        732 : out_reg <= ADDO;
                                        751 : ADSK <= 0;
                                        771 : ADSK <= 1;
                                        772 : out_reg <= ADDO;
                                        791 : ADSK <= 0;
                                        811 : ADSK <= 1;
                                        812 : out_reg <= ADDO;
                                        831 : ADSK <= 0;
                                        851 : ADSK <= 1;
                                        852 : out_reg <= ADDO;
                                        871 : ADSK <= 0;
                                        891 : ADSK <= 1;
                                        892 : out_reg <= ADDO;
                                        911 : ADSK <= 0;
                                        931 : ADSK <= 1;
                                        932 : out_reg <= ADDO;
                                        951 : ADSK <= 0;
                                        971 : ADSK <= 1;
                                        972 : out_reg <= ADDO;
                                        991 : ADSK <= 0;
                                        1011 : begin ADSK <= 1; ADDO <= 1'b1;end
                                        1031 : ADSK <= 0;
                                        99997 : Get_Flag <= 1;
                                        99998 : begin out <= out_reg;Get_Flag <= 0;end
                                        99999 : ADDO <= 1'b0;
                                endcase
                        end
endmodule
       

朱月彤 发表于 2018-6-25 11:11:08

clk是1MHZ的

fpga_feixiang 发表于 2018-7-2 10:57:55

顶~~~~~~~~~~~~~~~~~~~~~

fpga_feixiang 发表于 2018-7-2 11:03:20

顶~~~~~~~~~~~~

fpga_feixiang 发表于 2018-11-10 17:19:48

顶~~~~~~~~~~~~~~~~~
页: [1]
查看完整版本: 关于hx711电子秤的一些问题