新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的乒乓球游戲的設計與實現

        基于FPGA的乒乓球游戲的設計與實現

        作者: 時間:2012-02-27 來源:網絡 收藏

        代碼分析:

        首先簡單介紹Avalon總線。SOPCBuilder自動生成的Avalon交換架構是針對系統處理器和外設的專用互聯需求進行優化。Avalon總線可以連接許多外部設備,如定時器/計數器,外部三態橋接,外部SRAM接口,UART,LCD接口,用戶邏輯接口JTAG,UARTC,并行I/O等。代碼中,IOWR_ALTERA_AVALON_UART_STATUS()函數可以完成向串口發送數據的任務,IOWR_ALTERA_AVALON_PIO_DATA()函數則可以給內部工程發送并行數據,控制占空比的值。

        在中斷服務函數中,通過設置標志位變量flag辨別是否為雙擊命令。在確定擊球方式后生成cmd的四種狀態。cmd為全局變量,在main()函數中實現狀態的選擇。

        3.4小球運動程序

        41.jpg

        程序分析:

        該段程序是主函數main()的關鍵部分,其中數組xlabel[50]是小球在X軸方向的運動軌跡,軌跡方程是xlabel=i×5。數組ylabel[50]和ylabel2[50]是小球在Y方向的兩個軌跡,軌跡方程分別為ylabel=-0.007i2+1.792i和ylabel2=-0.013i2+3.328i,其中i是小球運動的變量,在for循環函數中勻速增加或減小。當出現break時小球運動方向改變。當i=0或者i=49時,說明小球觸壁卻沒能遭到有效擊球,判定一方得分,通過UART發送指令在單片機上顯示比分。delay()函數用來控制小球的運動速度。

        4實驗結果

        將程序燒寫到芯片內部,在NiosII開發環境下運行RunasNiosⅡHardware。把低通濾波器的兩個輸出通道分別接到雙蹤示波器的輸入端。觀察到示波器上顯示出小球沿著拋物線軌跡來回運動,并可以通過按鍵實現擊球命令改變小球運動。

        5結束語

        本實驗可以進行適當改進。比如小球軌跡可以選用三個或三個以上更加豐富的軌道碼表,這樣小球的運動軌跡將更加多樣。還可以設立對游戲難度的設置,改變對小球的運動速度,這個想法可以在中斷服務函數通過對delay()函數進行實參的變換而實現。


        上一頁 1 2 3 下一頁

        關鍵詞: FPGA

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 岑巩县| 乌兰察布市| 江川县| 神木县| 崇阳县| 昭苏县| 辛集市| 南汇区| 临江市| 呼玛县| 齐齐哈尔市| 永济市| 隆尧县| 陇南市| 灵丘县| 绥江县| 浦城县| 斗六市| 伊宁市| 景德镇市| 绥滨县| 白朗县| 遂溪县| 视频| 宾阳县| 景谷| 泗洪县| 岑巩县| 宝鸡市| 伊宁县| 札达县| 庄河市| 朝阳县| 许昌县| 韶山市| 慈利县| 绥棱县| 兰州市| 曲水县| 宁南县| 枣庄市|