6、r; assignNO_ACK=tempNO_ACK; assignsdao=tempsda; assignsclo=tempscl; al==0) begin shiftdata[7:0]=indata[7:0]; end shiftdata=shiftdata<<1; tempsda=shiftdata[8]; tempscl=1;//置SCL为高电平 send_byte_zt=delay_1; send_byte_num=send_byte_num+1; end delay_1
7、://延时三个周期 begin if(delay_counter>=2) begin send_byte_zt=sendbit2; delay_counter=0; end else begin delay_counter=delay_counter+1; send_byte_zt=send_byte_zt; end end sendbit2: begin tempsc1=0;//SCL置零 send_byte_zt=delay_2; end delay_2://延时三个周期 b
8、egin if(delay_counter>=2) begin send_byte_zt=sendbit3; delay_counter=0; end else begin delay_counter=delay_counter+1; send_byte_zt=send_byte_zt; end end sendbit3://判断是否字节中所有位都发送完毕 begin if(send_byte_num<=8) begin send_byte_zt=sendbit1; end
9、else begin send_byte_zt=ForACK1; send_byte_num=0; end end ForACK1: begin tempsda=1;//释放数据线,等待应答信号 send_byte_zt=delay_ACK; end delay_ACK://延时