FPGA与51单片机通讯的问题

2019-03-25 08:33发布

我现在在做一个频率计,用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);
                }        
}

麻烦大家给我看一看,我现在真的很急。 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
ybbrdfxk0922
1楼-- · 2019-03-25 11:46
< / 新手一个,表示完全没发现问题。。。。
Crazy_HUA
2楼-- · 2019-03-25 13:44
 精彩回答 2  元偷偷看……
motata
3楼-- · 2019-03-25 17:35
会不会定时器没有启动呀。
luyucan001
4楼-- · 2019-03-25 18:24
大哥,你要考虑波特率问题啊,FPGA走的一个时钟,单片机一条指令都不一定走完。
你要看下51端口大概多长时间能识别到数据,在让FPGA数据维持那个时间就行了。
jay8830095
5楼-- · 2019-03-26 00:19
同意楼上的,肯定和速度有关系。FPGA的输出速度是多少?51 I/O分辨率是多少?这个要匹配才可以,你要综合考虑下需要传输多少数据量,然后选择合适的传输方式。
清风403
6楼-- · 2019-03-26 00:32
不是时钟问题,是前面一个模块的连接没有建立,后来看原理图的时候找到了

一周热门 更多>