这是本文档旧的修订版!
always@(posedge spi_clk or negedge rst_n) if(!rst_n) data_in<=40'd0; else if(!spi_cs) data_in<=40'd0; else data_in<={data_in[38:0],spi_mosi_r};//将SPI输入数据存入data_in寄存器
<code verilog>
always@(posedge spi_clk or negedge rst_n) if(!rst_n) data<=32'd0; else if(data_in[7:0] == 8'd13)//“回车”键对应的ASCII码的值为8‘d13 data<=data_in>>8;//取回车键之前的值 else data<=data;
————————–data—————————-
/*对比接收数据*/ reg [2:0]led; always@(posedge CLK_25M or negedge rst_n) if(!rst_n) begin led <= 3'b111; end else if (data == ledr) led <= 3'b011; //红灯亮 else if (data == ledg) led <= 3'b101; //绿灯亮 else if (data == ledb) led <= 3'b110; //蓝灯亮
<code verilog> always@(negedge spi_clk or negedge rst_n)
      if(!rst_n)
          begin 
          spi_miso<=1;
          data_out<=hello;
          end
      else    if(!spi_cs )
              begin
              spi_miso <= data_out[39]; //将最高位通过SPI总线发送出去
              data_out<=data_out<<1;
              end
          else
              begin
              spi_miso<=1'b1;
              data_out<=hello;
              end