我现在在做一个频率计,用FPGA做数据采集,51单片机做显示,数据通信上我说一下我的思路,当P3-0口为低电平,其他为高电平时,FPGA的数据口传送给P1口一组8位数据,当P3-1口为低电平,其他为高电平时,FPGA的数据口再传送给P1口一组8位数据,一共四组数据,可是我现在的P1口完全接收不到数据,下面是我的FPGA程序:
module dtsm(clk,p,in0,in1,in2,in3,in4,in5,in6,in7,dataout);
input clk;
input[3:0] p;
input[3:0]in0,in1,in2,in3,in4,in5,in6,in7;
output[7:0]dataout;
reg[7:0]dataout;
always@(posedge clk)
begin
case(p)
4'b1110:dataout<={in1,in2};//0
4'b1101:dataout<={in3,in4};//1
4'b1011:dataout<={in5,in6};//2
4'b0111:dataout<={in7,in0};//3
default:dataout<=8'bx;
endcase
end
endmodule
下面是我的51接收程序:
void timer0() interrupt 1
{
TH0=60;
TL0=176;
timer++;
if (timer==20)
{
timer=0;
P3=0xfe;
delay(2);
shuju1=P1;
delay(2);
P3=0xfd;
delay(2);
shuju2=P1;
delay(2);
P3=0xfb;
delay(2);
shuju3=P1;
delay(2);
P3=0xf7;
delay(2);
shuju4=P1;
delay(2);
}
}
麻烦大家给我看一看,我现在真的很急。
此帖出自
小平头技术问答
你要看下51端口大概多长时间能识别到数据,在让FPGA数据维持那个时间就行了。
一周热门 更多>