新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于FPGA的乒乓球游戲的設(shè)計與實現(xiàn)

基于FPGA的乒乓球游戲的設(shè)計與實現(xiàn)

作者: 時間:2012-02-27 來源:網(wǎng)絡(luò) 收藏

代碼分析:

每當輸入時鐘clk_in變化時進程被觸發(fā)。在進程中,每一個時鐘上升沿計數(shù)器變量c0dutytmp加一,在一個周期內(nèi),計數(shù)器小于預(yù)設(shè)值時輸出低電平,大于預(yù)設(shè)值時輸出高電平。在設(shè)計中,我選用的預(yù)設(shè)值為8位,所以在0到255之間給定任意一個數(shù)作為輸入就可以設(shè)置它的占空比。占空比38.jpg。而通過SOPCbuilder生成的SOPC控制c0duty便可以間接控制其占空比。以上代碼完成了一條通道的控制,另一個數(shù)據(jù)通道方法類似。

3.2直流信號生成方法

生成直流信號的方法很多。在此論述幾種常見方法。

第一種是通過D/A芯片。市場上D/A芯片較多,如DAC0832,DAC0809等。這種方法原理簡單,只需給定恒定的數(shù)字值便可以輕松控制輸出直流波形的電壓值。出于成本考慮,我們轉(zhuǎn)而另一種方法。

第二種方法是低通濾波法。例如當方波占空比為100%時可當作是直流高電平信號。而占空比為0表示零電平。將一定占空比的直流信號經(jīng)過低通濾波器,經(jīng)過計算可知占空比對于輸出信號的電平高低成線性關(guān)系。所以我們可以利用這點來完成電平控制。

3.3擊球控制

運用單片機與實驗板之間的通訊完成擊球命令的傳遞。常見的通訊方法:串口通訊和并口通訊。

并口通訊雖然使用簡單,但是速度較慢,占用管腳較多,實現(xiàn)功能受到位數(shù)限制,可以完成的指令較少。于是利用串口通訊。在Quartus軟件下運行SOPCBuilder生成SOPC并為其添加UART功能。設(shè)置波特率為9600。利用SOPC的txd和rxd兩個端口與單片機的串口端相連接。于是便可以在程序中加入串口接收中斷并且在中斷服務(wù)函數(shù)中完成大量工作。以下編碼全部用C語言完成。

39.jpg

SOPC內(nèi)部中斷服務(wù)函數(shù):

40.jpg



關(guān)鍵詞: FPGA

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉