有关51单片机和FPGA通讯的问题

2019-03-25 08:47发布

我做了一个频率计,FPGA做频率的采集,然后通过单片机来显示,我现在的思路是,通过P3口,来控制转换的数据比如(P3-0为低电平,其他口为高电平时,FPGA的8个数据口传送给P1口一组数值,然后P3-1为低电平,其他口为高电平,FPGA的8个数据口再传送给P1口一组数值………………)可是我这么做的时候P1口总是接受不到数值,FPGA晶振频率为50M,51单片机晶振为12M,下面是我的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程序:
oid 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);
  }
} 此帖出自小平头技术问答
0条回答

一周热门 更多>