新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 基于FPGA的乒乓球游戏的设计与实现

基于FPGA的乒乓球游戏的设计与实现

作者: 时间:2012-02-27 来源:网络 收藏

代码分析:

每当输入时钟clk_in变化时进程被触发。在进程中,每一个时钟上升沿计数器变量c0dutytmp加一,在一个周期内,计数器小于预设值时输出低电平,大于预设值时输出高电平。在设计中,我选用的预设值为8位,所以在0到255之间给定任意一个数作为输入就可以设置它的占空比。占空比38.jpg。而通过SOPCbuilder生成的SOPC控制c0duty便可以间接控制其占空比。以上代码完成了一条通道的控制,另一个数据通道方法类似。

3.2直流信号生成方法

生成直流信号的方法很多。在此论述几种常见方法。

第一种是通过D/A芯片。市场上D/A芯片较多,如DAC0832,DAC0809等。这种方法原理简单,只需给定恒定的数字值便可以轻松控制输出直流波形的电压值。出于成本考虑,我们转而另一种方法。

第二种方法是低通滤波法。例如当方波占空比为100%时可当作是直流高电平信号。而占空比为0表示零电平。将一定占空比的直流信号经过低通滤波器,经过计算可知占空比对于输出信号的电平高低成线性关系。所以我们可以利用这点来完成电平控制。

3.3击球控制

运用单片机与实验板之间的通讯完成击球命令的传递。常见的通讯方法:串口通讯和并口通讯。

并口通讯虽然使用简单,但是速度较慢,占用管脚较多,实现功能受到位数限制,可以完成的指令较少。于是利用串口通讯。在Quartus软件下运行SOPCBuilder生成SOPC并为其添加UART功能。设置波特率为9600。利用SOPC的txd和rxd两个端口与单片机的串口端相连接。于是便可以在程序中加入串口接收中断并且在中断服务函数中完成大量工作。以下编码全部用C语言完成。

39.jpg

SOPC内部中断服务函数:

40.jpg



关键词: FPGA

评论


相关推荐

技术专区

关闭