国产久操视频-国产久草视频-国产久热精品-国产久热香蕉在线观看-青青青青娱乐-青青青青在线成人视99

  • 方案介紹
  • 附件下載
  • 相關推薦
申請入駐 產(chǎn)業(yè)圖譜

貪吃蛇大作戰(zhàn),基于Basys3和FPGA設計的貪吃蛇小游戲設計資料

2017/07/26
44
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

程序源代碼.rar

共1個文件

現(xiàn)在小孩子玩的最多的玩具就是手機了,不禁感慨,我們小時候都是咋過來的,有個游戲機,可以玩?zhèn)€貪吃蛇、俄羅斯方塊就不錯了??梢宰约涸O計個貪吃蛇游戲玩玩,重溫童年的經(jīng)典,也讓現(xiàn)在小孩子知道,珍惜當下美好的生活。

功能實現(xiàn)說明:
此游戲較為簡單,沒有設置多余障礙物,只設置了四周的墻壁,貪食蛇所吃的蘋果隨機刷新,當蛇裝上墻壁或者自己的身體,游戲結束。
此游戲使用五個按鍵,利用Basys3上的按鈕,四個方向鍵,一個重新開始游戲按鈕,一個操作開關。使用7位數(shù)碼管進行計分,每吃到一個蘋果分數(shù)+1。使用VGA顯示游戲界面。
DIY動手指南:
Step1:材料準備
硬件
Basys3開發(fā)板
VGA連接線及VGA顯示器一臺
軟件平臺:Vivado2016.4
Step2:系統(tǒng)框架

系統(tǒng)主要由6部分組成,分別是按鍵輸入模塊、控制模塊、數(shù)據(jù)路徑模塊、隨機生成 模塊、VGA顯示模塊和數(shù)碼管顯示模塊。
Step3:程序設計

上圖是本程序的RTL級視圖。
下面我們對于各個模塊進行分析。
1.鍵盤掃描
我們一共設置了五個按鍵,分別執(zhí)行up,down,left,right,restart這五個功能。
以up_key_press為例,介紹消抖的算法。
在每個時鐘高電平時并行執(zhí)行以下兩條語句
up_key_press<=0;
up_key_last<=0;
當有按鍵按下時,每100ms(cnt=5_0000) last=up,last輸出比up滯后一個周期,若up_key_last==0&&up==1,則說明按鍵按下,press輸出置1。
2.控制模塊


當打開開始開關并按下任意一個方向鍵時,游戲開始,當游戲結束時閃爍5下,重新開始游戲。
3.數(shù)據(jù)路徑模塊

cube_x,cube_y表示一整條蛇身體各節(jié)的格坐標。is_exist有16位,即蛇體最長為16*1格,每一位對應一個格,1為該格顯示,0則不顯示(圖中虛框)。每吃下一個蘋果蛇長度增加1,相應exist位置變?yōu)?。
蛇每次移動,對應的cube[x] = cube[x+1],即后一位的身子會移動到前一位的位置,蛇頭根據(jù)按下的按鈕來判斷是撞到了墻,還是撞到了身子,還是移動到了下一個位置。
當蛇頭和蘋果重合時,生成一個增加身長的信號,并在計數(shù)器上+1。
4.隨機生成模塊
采用偽隨機數(shù)的產(chǎn)生方法,比較笨拙。
每個時鐘周期random_num都在變,而我們吃下蘋果的時刻卻因走法、按鍵的時間等有所不同,所以不同時刻吃下蘋果后下一個蘋果出現(xiàn)的地方近似隨機~
5.VGA顯示模塊
使用640*480分辨率,需要分頻為25MHz的時鐘信號。
6.數(shù)碼管顯示模塊
當有增長身長信號產(chǎn)生時,分數(shù)也對應增加,數(shù)碼管動態(tài)掃描顯示分數(shù)。
Step4:演示

  • 程序源代碼.rar
    下載
    描述:源程序代碼

相關推薦

农安县| 西林县| 攀枝花市| 江山市| 富川| 原阳县| 库伦旗| 黎城县| 松阳县| 高阳县| 高清| 资兴市| 吴堡县| 天门市| 沽源县| 六枝特区| 荥经县| 深水埗区| 汉中市| 西乌| 靖宇县| 马鞍山市| 和平区| 盐城市| 汉阴县| 文昌市| 元谋县| 德钦县| 涞水县| 东乌珠穆沁旗| 伽师县| 拜泉县| 会理县| 永胜县| 南康市| 阿勒泰市| 五常市| 满城县| 凤阳县| 曲靖市| 普宁市|