久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 9087|回復(fù): 3
收起左側(cè)

MSP430單片機(jī)TFT_LCD顯示太空大戰(zhàn)小游戲設(shè)計(jì)論文

[復(fù)制鏈接]
ID:161768 發(fā)表于 2017-7-30 03:36 | 顯示全部樓層 |閱讀模式
太空大戰(zhàn)小游戲
—— 基于TFT_LCD顯示屏的MSP430單片機(jī)實(shí)驗(yàn)


目錄

一、實(shí)驗(yàn)硬件
1、概述
2、 應(yīng)用模塊
A.  LCD模塊
B.  TM1638
二、 實(shí)驗(yàn)程序
1、 程序?qū)崿F(xiàn)效果
2、 程序封裝模塊
1、圖形產(chǎn)生與移動(dòng)
2、我方戰(zhàn)機(jī)的控制
3、敵機(jī)與獎(jiǎng)勵(lì)的產(chǎn)生及移動(dòng)
4、擊落敵機(jī)與獲得獎(jiǎng)勵(lì)
5、關(guān)卡升級(jí)
6、施放大招:
三、 感想與思考
附頁(yè)(實(shí)驗(yàn)程序代碼)

一、實(shí)驗(yàn)硬件1、概述
    本次課程設(shè)計(jì)是在MSP430單片機(jī)液晶屏字符顯示功能的基礎(chǔ)上,編程設(shè)計(jì)游戲。程序的設(shè)計(jì)基于《F6638實(shí)驗(yàn)指導(dǎo)手冊(cè)》中,“TFT-LCD 實(shí)驗(yàn)--字符顯示”的程序點(diǎn)亮TFT-LCD屏幕,編寫(xiě)游戲程序,與IO控制結(jié)合,實(shí)現(xiàn)游戲的可視化和游戲操作。由于Code Composer Studio v5.5.0難以對(duì)該程序樣例實(shí)現(xiàn)編譯,采用的開(kāi)發(fā)工具為Code Composer Studio v6.0。
MSP430系列單片機(jī)是由美國(guó)TI公司生產(chǎn)的新一代16位單片機(jī),因以其集成密度高、運(yùn)算速度快、外設(shè)接口豐富等優(yōu)勢(shì)受到越來(lái)越多的產(chǎn)品開(kāi)發(fā)人員的青睞,是當(dāng)前使用最多的單片機(jī)之一。在很多具體應(yīng)用中,甚至只利用一片MSP430單片機(jī),就可以完成一個(gè)系統(tǒng)的全部功能。下面給出實(shí)驗(yàn)中使用的MSP430F66單片機(jī)的封裝圖和功能框圖。


1.001.jpg

圖1-MSP430F6638封裝圖
1.002.jpg
圖2-MSP430F6638功能框圖
2、應(yīng)用模塊A.  LCD模塊
本次編寫(xiě)的程序所用的主要模塊為L(zhǎng)CD模塊,在功能框圖中顯示為 LCD_B。硬件電路設(shè)計(jì)如下所示。其中 U21 (TPS75105DSKR)是 LCD 屏背光控制芯片,由 LCD_BL_EN 引腳控制使能端。

1.003.jpg
圖3-MSP430F6638LCD硬件設(shè)計(jì)電路




PIN NO.
FUNCTION DESCRIPTIONS SYMBOL(模塊引腳定義以及各個(gè)引腳的功能)
NO.
Symbol
Description
1, 2
GND
3, 4
VCC
電源(2.8-3.4V)
5
NC1
空腳
6
NC2
空腳
7
NC3
空腳
8
RESET
復(fù)位
9
A0
LCD寄存器選擇段
10
SDA
LCD數(shù)據(jù)傳輸線
11
SCK1
LCD CLK 時(shí)鐘線
12
LCD_CS
LCD片選
13
SCK
SD卡CLK時(shí)鐘線
14
MISO
SD卡主輸入,從輸出
15
MOSI
SD卡從輸入,主輸出
16
CS_SD
SD卡片選
17, 18
LED+
背光正極
19, 20
LED-
背光負(fù)極


    LCD的全稱(chēng)是Liquid Crystal Display,即液晶顯示器,因功耗低而備受工程師青睞,大規(guī)模應(yīng)用于電子設(shè)備中。而MSP430單片機(jī)中的TFT-LCD則是指薄膜晶體管,Thin-Film Transistor。薄膜晶體管液晶顯示器(TFT-LCD)具有重量輕、平板化、低功耗、無(wú)輻射、顯示品質(zhì)優(yōu)良等特點(diǎn),其應(yīng)用領(lǐng)域正在逐步擴(kuò)大,已經(jīng)從音像制品、筆記本電腦等顯示器發(fā)展到臺(tái)式計(jì)算機(jī)、工程工作站(EWS)用監(jiān)視器。對(duì)液晶顯示器的要求也正在向高分辨率、高彩色化發(fā)展。

MSP430F6638所采用的TFT-LCD 液晶屏的工作參數(shù)如下:

X320 點(diǎn) TFT 透射式點(diǎn)陣液晶顯示模塊
驅(qū)動(dòng)duty:1/240 Duty
2.4“ (COG 式)
可視角度:12 時(shí)
ILI9328 LCD 驅(qū)動(dòng)程序或同等能力
邏輯電壓:2.8V
數(shù)據(jù)接口:80的系統(tǒng) 8/9/16/18bit 總線接口
觸摸面板
白色背光

B.  TM1638
在我們所制作的游戲中有一部分用到了矩陣鍵盤(pán)的一個(gè)按鍵,矩陣鍵盤(pán)隸屬于TM1638電路,TM1638是帶鍵盤(pán)掃描接口的LED(發(fā)光二極管顯示器)驅(qū)動(dòng)控制專(zhuān)用電路,內(nèi)部集成有MCU 數(shù)字接口、數(shù)據(jù)鎖存器、LED 高壓驅(qū)動(dòng)、鍵盤(pán)掃描等電路。其對(duì)于矩陣鍵盤(pán)的讀取如下圖所示:

1.004.jpg
圖4-TM1638鍵盤(pán)讀取電路

其中A-F分別對(duì)應(yīng)KS1-KS6。一旦有按鍵按下,TM1638中相關(guān)的寄存器的值就會(huì)改變(按鍵按下時(shí)相應(yīng)字節(jié)由0變1)。

2、實(shí)驗(yàn)程序1、程序?qū)崿F(xiàn)效果
在TFT-LCD屏上進(jìn)行飛機(jī)大戰(zhàn)小游戲。規(guī)則如下:
  • 擊中敵機(jī)得一分,敵機(jī)觸及底線扣除一點(diǎn)生命值,生命值為零時(shí)游戲結(jié)束。
  • 隨機(jī)出現(xiàn)紅黃藍(lán)三種獎(jiǎng)勵(lì),紅色獎(jiǎng)勵(lì)增加攻擊范圍,藍(lán)色獎(jiǎng)勵(lì)增加移動(dòng)速度,黃色獎(jiǎng)勵(lì)增加一點(diǎn)生命值。
  • 隨得分增長(zhǎng)游戲難度提升,逐步增加敵機(jī)出現(xiàn)頻率及移動(dòng)速度,共15關(guān)。
  • 按“1”鍵可施放大招,消滅屏幕上所有敵機(jī),冷卻30秒后可再次施放。

2、程序封裝模塊1、圖形產(chǎn)生與移動(dòng)
    基于示例程序“SPI_LCD_TFT”中所含頭文件,利用其中各函數(shù)進(jìn)行繪圖。在繪制各圖形時(shí)選取其上一點(diǎn)為相對(duì)參考點(diǎn),然后用相對(duì)于它的坐標(biāo)畫(huà)出整個(gè)圖形。需要移動(dòng)圖形時(shí)通過(guò)參量“sp”控制其移動(dòng)距離,移動(dòng)參考點(diǎn),并在新的位置畫(huà)出圖形,同時(shí)將原來(lái)位置圖形用背景色描一遍以擦除。在移動(dòng)我方戰(zhàn)機(jī)時(shí),程序?yàn)橄炔脸笥覂蛇呍瓉?lái)圖形,再顯示即時(shí)位置圖形,這樣可以防止擦除行為影響到新圖形。
    如繪制敵機(jī)的函數(shù)為:
void Drawenemy(x,y,c)
{
              LCD_TFT_FillRectangle(x,y-4,x+2,y-1,c);
              LCD_TFT_FillRectangle(x,y+1,x+2,y+4,c);
              LCD_TFT_FillRectangle(x+2,y-5,x+6,y+5,c);
              LCD_TFT_DrawLine(x+2,y-9,x+2,y+9,c);
              LCD_TFT_DrawLine(x+2,y-9,x+6,y-5,c);
              LCD_TFT_DrawLine(x+2,y+9,x+6,y+5,c);
              LCD_TFT_DrawLine(x+6,y-3,x+9,y,c);
              LCD_TFT_DrawLine(x+6,y+3,x+9,y,c);
}

2、我方戰(zhàn)機(jī)的控制
    參考按鍵消抖示例程序“msp430f6638_Key_debounce”,在按鍵時(shí)將戰(zhàn)機(jī)參考點(diǎn)分別向左或向右移動(dòng)sp個(gè)單元。
    如向左移動(dòng)主要語(yǔ)句為:
    if(Is_sw1_pressed()==1)                  // is key 1 pressed
        {                                                    // yes
                      s=s-sp;
        }
void movebird()
{
              Drawbird(s-sp,BLACK);
              LCD_TFT_DrawLine(205,s-sp,1,s-sp,BLACK);
              Drawbird(s+sp,BLACK);
              LCD_TFT_DrawLine(205,s+sp,1,s+sp,BLACK);
              Drawbird(s,YELLOW);
}

3、敵機(jī)與獎(jiǎng)勵(lì)的產(chǎn)生及移動(dòng)
    兩次利用隨機(jī)數(shù)函數(shù)rand()。對(duì)于某種顏色的敵機(jī),第一次產(chǎn)生一個(gè)0到1000隨機(jī)數(shù),將其與某數(shù)(sp0)比較以決定是否產(chǎn)生該顏色敵機(jī),改變sp0值即可改變敵機(jī)出現(xiàn)頻率;第二次產(chǎn)生一個(gè)14到305的隨機(jī)數(shù)以決定敵機(jī)出現(xiàn)的位置參考點(diǎn)y坐標(biāo)。獎(jiǎng)勵(lì)的產(chǎn)生同樣如此。
    敵機(jī)和獎(jiǎng)勵(lì)的移動(dòng)速度可由兩個(gè)參量改變,即時(shí)間間隔sp1及移動(dòng)距離sp2。
    如敵機(jī)向下移動(dòng)的函數(shù)為:
  1. void moveenemy(i)
  2. {
  3.               if(enemy[i]==1)
  4.               {
  5.                             if(ttt[i] < sp1)
  6.                             {
  7.                                           ttt[i]++;
  8.                             }
  9.                             else
  10.                             {
  11.                                           t[i]=t[i]+sp2;
  12.                                           Drawenemy(t[i]-sp2,r[i],BLACK);
  13.                                           if(r[i]<500)
  14.                                           {
  15.                                                         Drawenemy(t[i],r[i],enemycolor[i]);
  16.                                           }
  17.                                           ttt[i]=1;
  18.                             }
  19.               }
  20. }
復(fù)制代碼

4、擊落敵機(jī)與獲得獎(jiǎng)勵(lì)
    通過(guò)比較敵機(jī)與我方戰(zhàn)機(jī)的相對(duì)位置來(lái)判斷是否擊落,擊落后將及時(shí)位置圖形描為背景色,并將各參數(shù)重置,由數(shù)組enemy[7]來(lái)標(biāo)志某顏色敵機(jī)是否存在于畫(huà)面,若不存在則允許產(chǎn)生。獎(jiǎng)勵(lì)的獲得同上,其中加速效果通過(guò)改變sp達(dá)到,增加攻擊范圍效果通過(guò)addweapon()函數(shù)在畫(huà)面上呈現(xiàn),同時(shí)通過(guò)改變?cè)谂袛鄵袈鋾r(shí)所用的參量range來(lái)達(dá)到改變攻擊范圍的效果。詳見(jiàn)程序附頁(yè)。

5、關(guān)卡升級(jí)
    通過(guò)一系列參量數(shù)組以及判斷是否升級(jí),然后通過(guò)增加sp0與sp2的值分別增加敵機(jī)出現(xiàn)頻率及敵機(jī)移動(dòng)速度完成關(guān)卡升級(jí)。以下為關(guān)卡升級(jí)內(nèi)容的主要函數(shù),其中各個(gè)細(xì)節(jié)因關(guān)系到游戲難度,所以都是由我們多次測(cè)試所得到的。
  1. void levelup(i)
  2. {
  3.               if(level[i]==0)
  4.               {
  5.                             sp0=sp0+30;
  6.                             if(i==1||i==3||i==5||i==7||i==9||i==10||i==11||i==12||i==13||i==14)
  7.                             {
  8.                                           sp2=sp2+3;
  9.                                           buffspeed++;
  10.                             }
  11.                             if(i==12||i==13||i==14)
  12.                             {
  13.                                           sp2=sp2+2;
  14.                             }
  15.                             if(i==3||i==7||i==9||i==12||i==13||i==14)
  16.                             {
  17.                                           possibuff[2]=possibuff[2]+70;
  18.                             }
  19.                             level[i]=1;
  20.               }
  21. }
復(fù)制代碼


6、施放大招
    參考關(guān)于矩陣鍵盤(pán)的樣例程序“MatrixKeyboard_DigitalTube”,利用內(nèi)置函數(shù)判斷“1”鍵是否按下,爾后通過(guò)循環(huán)語(yǔ)句執(zhí)行函數(shù)kill(i)中部分指令來(lái)消滅所有敵機(jī),同時(shí)通過(guò)drawdazhao()函數(shù)在畫(huà)面上呈現(xiàn)。爾后借用簡(jiǎn)單的循環(huán)語(yǔ)句完成大招冷卻時(shí)間倒計(jì)時(shí)。
    詳見(jiàn)程序中dazhao()函數(shù)。

附頁(yè)(實(shí)驗(yàn)程序代碼)

請(qǐng)下載附件

完整論文下載(word格式 可編輯):
http://m.zg4o1577.cn/bbs/dpj-90602-1.html



回復(fù)

使用道具 舉報(bào)

ID:312905 發(fā)表于 2019-7-15 15:42 | 顯示全部樓層
大佬流弊

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产成人99久久亚洲综合精品 | 玖玖久久 | 欧美国产激情二区三区 | 久久精彩视频 | 国产成人网 | 中文字幕在线观看第一页 | 亚洲成人久久久 | 在线免费观看毛片 | 一区二区精品 | www.五月婷婷.com | 亚洲精品免费观看 | 国产精久久久久久久妇剪断 | 亚洲视频在线观看 | 亚洲一区二区三区乱码aⅴ 四虎在线视频 | 看片91 | 国产一级毛片视频 | 亚洲免费视频一区二区 | 免费看一级毛片 | 91久久国产综合久久 | 国产黄色av网站 | 亚洲视频 欧美视频 | 福利社午夜影院 | 国产精品美女久久久久aⅴ国产馆 | 亚洲精品68久久久一区 | 91精品国产综合久久久久久首页 | 国产精品久久久久无码av | 五月天国产视频 | 自拍第1页 | 在线观看黄色电影 | 欧洲亚洲视频 | 中文在线一区二区 | 欧美日韩黄色一级片 | 欧美视频三区 | 国产精品日产欧美久久久久 | 中文字幕在线视频免费视频 | 三级特黄特色视频 | 午夜一级大片 | 午夜精品一区二区三区在线观看 | 久久免费精品视频 | 精品电影| 日日操操 |