模擬射擊游戲_第1頁(yè)
模擬射擊游戲_第2頁(yè)
模擬射擊游戲_第3頁(yè)
模擬射擊游戲_第4頁(yè)
模擬射擊游戲_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 沈陽(yáng)航空航天大學(xué)課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告課程設(shè)計(jì)名稱:?jiǎn)纹瑱C(jī)系統(tǒng)綜合課程設(shè)計(jì)單片機(jī)系統(tǒng)綜合課程設(shè)計(jì)課程設(shè)計(jì)題目: 模擬射擊游戲模擬射擊游戲院(系):計(jì)算機(jī)學(xué)院專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí): 24010101學(xué) 號(hào): 2012040101028姓 名: 王圣和指導(dǎo)教師: 孫恩巖說(shuō)明:結(jié)論(優(yōu)秀、良好、中等、及格、不及格)作為相關(guān)教環(huán)節(jié)考核必要依據(jù);格式不符合要說(shuō)明:結(jié)論(優(yōu)秀、良好、中等、及格、不及格)作為相關(guān)教環(huán)節(jié)考核必要依據(jù);格式不符合要求;數(shù)據(jù)不實(shí)求;數(shù)據(jù)不實(shí),不予通過(guò)。報(bào)告和電子數(shù)據(jù)必須作為實(shí)驗(yàn)現(xiàn)象重復(fù)的關(guān)鍵依據(jù)。不予通過(guò)。報(bào)告和電子數(shù)據(jù)必須作為實(shí)驗(yàn)現(xiàn)象重復(fù)的關(guān)鍵依據(jù)。沈

2、陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 學(xué)術(shù)誠(chéng)信聲明 本人聲明本人聲明:所呈交的報(bào)告(含電子版及數(shù)據(jù)文件)是我個(gè)人在導(dǎo)師指導(dǎo)下獨(dú)立進(jìn)行設(shè)計(jì)工作及取得的研究結(jié)果。盡我所知,除了文中特別加以標(biāo)注或致謝中所羅列的內(nèi)容以外,報(bào)告中不包含其他人己經(jīng)發(fā)表或撰寫過(guò)的研究結(jié)果,也不包含其它教育機(jī)構(gòu)使用過(guò)的材料。與我一同工作的同學(xué)對(duì)本研究所做的任何貢獻(xiàn)均己在報(bào)告中做了明確的說(shuō)明并表示了謝意。報(bào)告資料及實(shí)驗(yàn)數(shù)據(jù)若有不實(shí)之處,本人愿意接受本教學(xué)環(huán)節(jié)“不及格”和“重修或重做”的評(píng)分結(jié)論并承擔(dān)相關(guān)一切后果。 本人簽名: 日期: 2015 年 7 月 10 日沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 I 沈陽(yáng)航空航天大學(xué)沈陽(yáng)航空航天大學(xué)課課程程

3、設(shè)設(shè)計(jì)計(jì)任任務(wù)務(wù)書書課程設(shè)計(jì)名稱單單片片機(jī)機(jī)系系統(tǒng)統(tǒng)綜綜合合課課程程設(shè)設(shè)計(jì)計(jì)專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)生姓名王圣和班級(jí)24010101學(xué)號(hào)2012040101028題目名稱模擬射擊游戲模擬射擊游戲起止日期2015年6月 29日起至2015年7月10日止課設(shè)內(nèi)容和要求:了解射擊游戲的原理,模擬一個(gè)射擊游戲。具體內(nèi)容如下: 1游戲至少分簡(jiǎn)單、中等、復(fù)雜三種級(jí)別,預(yù)先設(shè)計(jì)三種級(jí)別中獵物每次出現(xiàn)的數(shù)量(最多四個(gè))、方向、移動(dòng)的速度、停留的時(shí)間等; 2可以自選游戲級(jí)別,游戲開始時(shí)獵物出來(lái),即單色燈依次亮滅。此時(shí),如果游戲者的按鍵和小燈的位置相同,即代表打中,計(jì)分牌加 1 分(單色燈的位置右分

4、別為 0 到 7);3鍵盤上設(shè)置暫停鍵、結(jié)束鍵、開始鍵等,并在游戲進(jìn)行過(guò)程中顯示得分?jǐn)?shù).二、課程設(shè)計(jì)要求1獨(dú)立完成課程設(shè)計(jì)任務(wù);2通過(guò)老師當(dāng)場(chǎng)驗(yàn)收;3交出完整的課程設(shè)計(jì)報(bào)告。參考資料:1 張毅剛,劉杰. MCS-51 單片機(jī)原理及應(yīng)用M. 哈爾濱:哈爾濱工業(yè)大學(xué)出版社,20082 高 鋒. 單片微型計(jì)算機(jī)原理與接口技術(shù)M. 北京:科學(xué)出版社,20073 胡漢才. 單片機(jī)原理及其接口技術(shù)M. 北京:清華大學(xué)出版社,2004教教研研室室審審核核意意見見: 教教研研室室主主任任簽簽字字:指導(dǎo)教師(簽名)指導(dǎo)教師(簽名)年月日沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 II 學(xué)學(xué) 生(簽名)生(簽名)年月日沈陽(yáng)航空

5、航天大學(xué)課程設(shè)計(jì)報(bào)告 III 課程設(shè)計(jì)總結(jié):課程設(shè)計(jì)總結(jié):通過(guò)兩周的課程設(shè)計(jì),讓我感受最深的就是學(xué)習(xí)是一種樂(lè)趣。從拿到任務(wù)書起,充分利用網(wǎng)絡(luò)及圖書館等資源,查詢資料,了解單片機(jī)的編程原理以及實(shí)驗(yàn)箱的原理。在之前專業(yè)課理論知識(shí)的基礎(chǔ)上,我們又從模糊到熟悉逐漸了解了什么是單片機(jī)編程。在實(shí)現(xiàn)的過(guò)程中發(fā)現(xiàn)我發(fā)現(xiàn)自己的理論知識(shí)的不足,同時(shí)所學(xué)的知識(shí)掌握不牢固,就是通過(guò)這次課程設(shè)計(jì),不僅拓寬了我的知識(shí)面,還鞏固和夯實(shí)了所學(xué)的理論知識(shí),同時(shí)糾正了一些知識(shí)點(diǎn)上的錯(cuò)誤認(rèn)識(shí)和理解。其次,有一些問(wèn)題,當(dāng)我們一個(gè)人面對(duì)的時(shí)候可能怎么都想不明白,可是當(dāng)我們跟其他人一起探討時(shí),好多時(shí)候,問(wèn)題都迎刃而解,可見團(tuán)隊(duì)合作的重要

6、性,而且我們要養(yǎng)成謹(jǐn)慎,認(rèn)真,踏實(shí),有耐心,堅(jiān)持的作風(fēng),尤其是要親自動(dòng)手去做,沒(méi)有付出是不會(huì)有回報(bào)的?;仡欉@兩周的課設(shè),我學(xué)會(huì)了單片機(jī)編程的一些功能的使用,但只是一小部分而已,我此后將繼續(xù)研究這么一個(gè)強(qiáng)大的工具。對(duì)于仿真軟件的使用,非常有成就感,極大的激發(fā)了我們對(duì)新鮮事物學(xué)習(xí)的興趣,從而以積極的心態(tài)去面對(duì)這次課程設(shè)計(jì)。最后,非常感謝老師的細(xì)心指導(dǎo),讓我能開闊我的思路,讓我對(duì)問(wèn)題有更深刻的認(rèn)識(shí),鍛煉了我的解決問(wèn)題的能力,對(duì)我以后無(wú)論是學(xué)習(xí)還是其他方面的能力都有了很大的提高。沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 IV 目目 錄錄1 總體設(shè)計(jì)方案總體設(shè)計(jì)方案.11.1 設(shè)計(jì)需求.11.2 設(shè)計(jì)環(huán)境.11.3

7、 設(shè)計(jì)原理.11.3.1 設(shè)計(jì)思路.21.3.2 鍵盤掃描原理.22 詳細(xì)設(shè)計(jì)方案詳細(xì)設(shè)計(jì)方案.32.1 硬件及軟件使用.32.2 軟件的設(shè)計(jì).32.1.1 主程序設(shè)計(jì).32.1.2 L1 程序設(shè)計(jì).32.1.3 L2、L3 程序設(shè)計(jì) .52.1.4 鍵盤程序設(shè)計(jì).73 結(jié)果測(cè)試及分析結(jié)果測(cè)試及分析.83.1 結(jié)果測(cè)試.83.2 結(jié)果分析.9參考文獻(xiàn)參考文獻(xiàn).10附附 錄(關(guān)鍵部分程序清單)錄(關(guān)鍵部分程序清單).11沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 0 1 總體設(shè)計(jì)方案1.1 設(shè)計(jì)需求設(shè)計(jì)需求 通過(guò)了解射擊游戲的原理,利用 LAB8000 實(shí)驗(yàn)箱上的 MSC51 單片機(jī)系統(tǒng)、鍵盤、數(shù)碼管和 LE

8、D 燈模擬射擊游戲的運(yùn)行過(guò)程。用點(diǎn)亮的 LED 彩燈表示獵物的當(dāng)前位置,鍵盤數(shù)字鍵 07 對(duì)應(yīng) 8 個(gè) LED 燈用來(lái)表示射擊獵物的位置,數(shù)碼管顯示當(dāng)前的游戲當(dāng)前分?jǐn)?shù)。要求設(shè)計(jì)游戲能按以下工作方式運(yùn)行: (1)游戲至少分為簡(jiǎn)單、中等和復(fù)雜三個(gè)級(jí)別,預(yù)先設(shè)計(jì)三種級(jí)別中獵物 每次出現(xiàn)的數(shù)量(最多四個(gè))、方向、移動(dòng)的速度、停留的時(shí)間等; (2)可以自選游戲的級(jí)別,游戲開始時(shí)獵物出來(lái),即單色燈有序地依次亮滅。此時(shí),如果游戲者的按鍵和小燈的位置相同,即代表打中,記分牌加 1 分; (3)鍵盤上設(shè)置暫停鍵、結(jié)束鍵、開始鍵、并在游戲進(jìn)行過(guò)程中顯示得分。1.2設(shè)計(jì)環(huán)境設(shè)計(jì)環(huán)境本次課程設(shè)計(jì)所采用芯片,系統(tǒng)設(shè)計(jì)所

9、需硬件都已集成于 LAB8000 實(shí)驗(yàn)箱上。LAB8000 實(shí)驗(yàn)箱一款緊湊、快速調(diào)試數(shù)字電路設(shè)計(jì)強(qiáng)有力的便攜式邏輯分析儀;實(shí)驗(yàn)箱包括 MSC-51、80C196、8088/86、ARM、PIC57 五種 MCU;鍵盤、LCD、數(shù)碼管,LED 等外部設(shè)備,以及各種傳感器;高速的 USB2.0 接口、高端的 FPGA、強(qiáng)大的 ARM 處理器等組成的嵌入式系統(tǒng)全方位智能控制;高速、高效、高性能,幫你輕松搞定問(wèn)題。先使用軟件使用 Keil uVision3,并用 80C51 單片機(jī)的 C 語(yǔ)言進(jìn)行編程,然后在試驗(yàn)箱上進(jìn)行實(shí)驗(yàn)。1.3設(shè)計(jì)原理設(shè)計(jì)原理采用鍵盤掃描技術(shù),實(shí)現(xiàn)矩陣鍵盤的掃描、延時(shí)去抖和對(duì)鍵盤

10、輸入數(shù)據(jù)的自動(dòng)識(shí)別;通過(guò) MCS-51 單片機(jī)的 I/O 接口實(shí)現(xiàn)對(duì) 8 個(gè) LED 燈亮滅的循環(huán)控制;通過(guò) MCS-51 單片機(jī)自身的定時(shí)器進(jìn)行數(shù)碼管的定時(shí)刷新顯示;通過(guò)軟件編程,實(shí)現(xiàn)對(duì)射擊游戲的具體運(yùn)行過(guò)程的控制。沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 1 1.3.1 設(shè)計(jì)思路設(shè)計(jì)思路 (1)通過(guò) MCS-51 單片機(jī)點(diǎn)亮的 LED 燈表示獵物的位置,鍵盤數(shù)字鍵 07對(duì)應(yīng) 8 個(gè) LED 燈用來(lái)表示射擊獵物的位置,A 表示游戲開始,B 表示游戲暫停,C 表示游戲結(jié)束。 (2)用 MCS-51 的 P1 口保存當(dāng)前獵物的位置值,按照設(shè)定的速度不斷變化,在設(shè)定的停留時(shí)間將其轉(zhuǎn)換成 LED 燈的亮滅顯示。

11、 (3)通過(guò)鍵盤讀出鍵值,比較兩位置值是否相等,如果相等這表示射擊擊中獵物同時(shí)加 1 分,否則不擊中,繼續(xù)等待新的鍵入判斷。 (4)在游戲的過(guò)程中可以通過(guò)按功能鍵實(shí)現(xiàn)游戲的開始、暫停、結(jié)束。1.3.2 鍵盤掃描原理鍵盤掃描原理 鍵盤掃描程序采用逐列掃描的方式進(jìn)行,具體算法如下:(1)判斷鍵盤是否閉合:通過(guò)掃描鍵盤的行地址的 KEY0KEY3 進(jìn)行掃描若全為,則鍵盤上無(wú)閉合鍵;若不全為,則有鍵處于閉合狀態(tài)。(2)消除鍵的機(jī)械抖動(dòng):判別鍵盤閉合后,延遲一段時(shí)間后再判別鍵盤的狀態(tài),若仍有鍵閉合,則認(rèn)為鍵盤上處于一個(gè)穩(wěn)定的閉合期,否則為鍵盤的抖動(dòng),不進(jìn)行讀值處理。(3)獲取閉合的鍵號(hào):對(duì)鍵盤的列線進(jìn)行

12、逐列掃描,依次輸入 0XFB, 0XF7, 0XEF, 0XDF,即只有一列為低電平,其余各列為高電平。然后,讀取鍵盤的行值,若該行有鍵按下則該行為低電平,其余為高電平,從左往右 03 列,從下往上 03 行。因此,閉合的鍵號(hào)為:N=行號(hào)+列號(hào)*4。 (4)使 CPU 對(duì)鍵的一次閉合僅作一次處理,利用等待閉合鍵釋放后再做處理的方法。沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 2 2 詳細(xì)設(shè)計(jì)方案2.1 硬件及軟件使用硬件及軟件使用本設(shè)計(jì)中用到的硬件有 LAB8000 實(shí)驗(yàn)箱上的小鍵盤、八段數(shù)碼管,以及 8個(gè) LED 燈。將試驗(yàn)箱上 CS0 口與 KEYLEDCS 口相連而單片機(jī)的 P1.0P1.7 分別與

13、LED 燈的 L0L7 相連;通過(guò) Keil uVision3 軟件進(jìn)行程序的編寫 8051C 語(yǔ)言程序,并通過(guò)其進(jìn)行與試驗(yàn)箱互聯(lián),進(jìn)行程序的運(yùn)行與調(diào)試工作,詳細(xì)電路圖見圖 2.1 所示。2.2 軟件的設(shè)計(jì)軟件的設(shè)計(jì) 軟件的設(shè)計(jì)分為主程序設(shè)計(jì)、游戲等級(jí)程序設(shè)計(jì)、及鍵盤程序設(shè)計(jì) 3 部分組成。2.1.1 主程序設(shè)計(jì)主程序設(shè)計(jì)主程序入口循環(huán)檢測(cè)鍵盤是否有鍵入,沒(méi)有按鍵則等待按鍵鍵入,表示還沒(méi)有選擇游戲等級(jí),不能開始游戲。游戲者需要先選擇 1、2、3 三個(gè)游戲等級(jí),然后鍵入 A 可以開始相應(yīng)等級(jí)的游戲。,選擇不同的等級(jí)將分別用 L1、L2、L3 程序來(lái)處理。在游戲的過(guò)程中可以同按 B 鍵進(jìn)行暫停,通

14、過(guò)按 C 鍵退出相應(yīng)的游戲等級(jí)并通過(guò)選擇進(jìn)入下一個(gè)游戲等級(jí),流程圖如 2.1 所示。2.1.2 游戲等級(jí)游戲等級(jí) 1(L1)程序設(shè)計(jì))程序設(shè)計(jì) L1 程序是游戲的第 1 等級(jí)。主要實(shí)現(xiàn)對(duì)一個(gè)獵物的控制。P1 端口連接 8 個(gè)LED 燈,由于 LED 燈低高平有效,通過(guò) P1 端口送出 8 位二進(jìn)制數(shù),即可以實(shí)現(xiàn)對(duì)8 個(gè) LED 燈亮滅的控制。用 P1 保存要通過(guò) LED 燈顯示的獵物的位置值,通過(guò)查表及定時(shí)器方式來(lái)實(shí)現(xiàn)獵物的數(shù)量(最多四個(gè))、方向、移動(dòng)的速度、停留的時(shí)間等,通過(guò)不斷的查詢是否有鍵盤輸入的值與 P1 口當(dāng)前的值是否相同來(lái)判別是否打中獵物。如果打中則等分加一,否者不得分,程序的流程

15、圖如圖 2.2 所示。沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 3 圖圖 2.1 電路原理圖電路原理圖 沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 4 圖圖 2.2 主程序流程圖主程序流程圖2.1.3 游戲等級(jí)游戲等級(jí) 2、3(L2、L3)程序設(shè)計(jì)程序設(shè)計(jì) L2 程序是游戲的第 2 等級(jí)。主要實(shí)現(xiàn)對(duì)多個(gè)獵物的控制和對(duì)獵物移動(dòng)方向的控制。用 P1 保存要通過(guò) LED 燈顯示的獵物的位置值,通過(guò)查表及定時(shí)器方式來(lái)實(shí)現(xiàn)獵物的數(shù)量、方向、移動(dòng)的速度、停留的時(shí)間等,通過(guò)不斷的查詢是否有 開始等待按鍵輸入游戲等級(jí)輸入 1、2、3否等待按鍵輸入開始是 輸入 A否 L1 程序L2 程序 L3 程序等待按鍵輸入輸入 C否 結(jié)束輸出得分沈

16、陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 5 鍵盤輸入的值與 P1 口當(dāng)前的值是否相同來(lái)判別是否打中獵物。如果打中則等分加一。 L3 與 L2 結(jié)構(gòu)基本相同,不同在于查表的值不同,L3 用通過(guò)查表實(shí)現(xiàn)同時(shí)出現(xiàn)了四個(gè)獵物。通過(guò)對(duì)獵物出現(xiàn)的的時(shí)間的控制來(lái)實(shí)現(xiàn)了對(duì)獵物的移動(dòng)速度的控制。 圖圖 2.3 L1 程序流程圖程序流程圖 開始輸出當(dāng)前獵物的位置到 P1 口 等待鍵盤的輸入判斷輸入是否與P1 相等 得分加一是判斷是否輸入B、C等待鍵盤的輸入輸入 B判斷輸入A、C 結(jié)束輸入 C輸入 C輸入 A沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 6 2.1.4 鍵盤程序設(shè)計(jì)鍵盤程序設(shè)計(jì) 鍵盤掃描程序采用逐列掃描的方式進(jìn)行,通過(guò)兩次判斷

17、是否有鍵按下來(lái)消除機(jī)械抖動(dòng)。依次向 8002 地址中輸入 BUFFER4 = 0XFB, 0XF7, 0XEF, 0XDF;,然后讀取鍵盤的行值,若該行有鍵按下則該行為低電平,其余為高電平,從左往右 03 列,從下往上 03 行。因此,閉合的鍵號(hào)為:N=行號(hào)+列號(hào)*4,流程圖如圖 2.3 所示。 圖圖 2.4 鍵盤程序流程圖鍵盤程序流程圖 開始依次向 8002 中輸入BUFFERJ TEMP = 0X01;J=0;I=0; J4 I4 key&temp key&temp return (i+j*4); 結(jié)束 I+J+是否是是否否沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 7 3 結(jié)果測(cè)試及分

18、析3.1 結(jié)果測(cè)試結(jié)果測(cè)試程序編譯連接完成之后,對(duì)課程設(shè)計(jì)要求的各項(xiàng)內(nèi)容進(jìn)行測(cè)試,按射擊游戲控制系統(tǒng)連線圖連接好電路以后,把程序編譯下載到機(jī)器中運(yùn)行。運(yùn)行的的測(cè)試案例如表 3.1 所示。 表表 3.1 測(cè)試表測(cè)試表操作LED 顯示 得分 備注11111111 按 1 鍵11111111選擇游戲等級(jí) 1按 A 鍵11111111 00開始游戲00010000 0000000010 00按 3 鍵00001000 01打中按 3 鍵00010000 01沒(méi)打中按 7 鍵10000000 02打中00001000 02按 B 鍵00001000 02暫停00001000 02暫停00001000 0

19、2暫停按 A 鍵00100000 02開始按 C 鍵00000000 00退出按 2 鍵00000000 00選擇游戲等級(jí) 2按 A 鍵00000000 00開始游戲10000100 00按 7 鍵10001000 01打中按 B 鍵01001000 01暫停沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 8 01001000 01按 A 鍵10010000 0111000000 01按 C 鍵00000000 00退出按 3 鍵00000000 00選擇游戲等級(jí) 3按 A 鍵00000000 00開始01101010 00按 4 鍵01011010 01打中按 B 鍵11010010 01暫停11010010

20、 01按 A 鍵11001010 01按 C 鍵00000000 00退出經(jīng)過(guò)多次循環(huán)測(cè)試,程序可實(shí)現(xiàn)如下功能:(1)通過(guò)選擇游戲等級(jí),進(jìn)入不同的等級(jí)游戲。(2)在獵物移動(dòng)過(guò)程中,游戲者可以射擊獵物,如果擊中分?jǐn)?shù)加 1 分,否則不得 分。(3)在游戲過(guò)程中,可以隨時(shí)暫停游戲,結(jié)束暫停,結(jié)束游戲。3.2 結(jié)果分析結(jié)果分析按照課程設(shè)計(jì)的要求,游戲的各項(xiàng)功能基本得以實(shí)現(xiàn)。由于 LAB8000 實(shí)驗(yàn)箱對(duì)于芯片的集成度較高,外部的連線相對(duì)較少。在讀入按鍵鍵值時(shí),可能是鍵盤硬件的原因,某些情況下鍵盤響應(yīng)時(shí)間不可忽略。由于鍵盤采用查詢方式會(huì)造成延時(shí),對(duì)于這種程序上設(shè)計(jì)的缺陷,本應(yīng)該將判斷鍵值的程序用中斷實(shí)現(xiàn)

21、,可以消除這種時(shí)間的不同步,但是考慮處理器執(zhí)行指令速度較快上述情況發(fā)生的概率很小,并沒(méi)有改變程序的設(shè)計(jì)思路。沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 9 參考文獻(xiàn)1 張毅剛,劉杰. MSC-51 單片機(jī)原理與應(yīng)用M. 哈爾濱:哈爾濱工業(yè)大學(xué)出版社,20082 高峰. 單片微型計(jì)算機(jī)原理與接口技術(shù)M. 北京:科學(xué)出版社,20073 胡漢才.單片機(jī)原理及其接口技術(shù)M. 北京:清華大學(xué)出版社,20044 郭天祥.新概念 51 單片機(jī) C 語(yǔ)言教程M.北京:電子工業(yè)出版社,2009.5 張迎新單片機(jī)初級(jí)教程單片機(jī)基礎(chǔ)M北京航空航天出版社,20066 江世明,黃同成單片機(jī)原理及應(yīng)用M中國(guó)鐵道出版社,2010沈陽(yáng)航空

22、航天大學(xué)課程設(shè)計(jì)報(bào)告 10 附 錄(關(guān)鍵部分程序清單)#include #include #define uchar unsigned char#define uint unsigned int xdata uchar key _at_ 0 x8001; xdata uchar led _at_ 0 x8002;xdata uchar dat _at_ 0 x8004;uchar code keytable16=0 x0d,0 x0c,0 x0b,0 x0a,0 x0e,0 x03,0 x06,0 x09,0 x0f,0 x02,0 x05,0 x08,0 x00,0 x01,0 x04,0

23、x07;/鍵盤值表鍵盤值表uchar code LEDtable16=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71;/七段顯示碼七段顯示碼uchar code Ltable18=0 x80,0 x02,0 x08,0 x10,0 x40,0 x01,0 x04;/L1 表表uchar code Ltable28=0 x81,0 x12,0 x48,0 x14,0 x42,0 x21,0 x44;/L2 表表uchar code Ltable38=0

24、x33,0 x87,0 x72,0 x8e,0 x35,0 x59,0 xc5;、/L3 表表uint Leds2;uchar num=0;uchar scores=0;uint k2;uchar k,k1=0;uchar i,j,temp;uchar t;uchar k4;uint f2=0;uchar Buffer4 = 0 xfb, 0 xf7, 0 xef, 0 xdf;/存放鍵盤的列值存放鍵盤的列值沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 11 void delay(uint p)、/延時(shí)延時(shí) 1ms int i,j; for(i=0;ip;i+) for(j=0;j124;j+) ; uint

25、 getkey()/獲取鍵值獲取鍵值 uchar i,j,temp; uchar Buffer4 = 0 xfb, 0 xf7, 0 xef, 0 xdf; for(j=0; j4; j+) led = Bufferj;temp = 0 x01; for(i=0; i4; i+)if(!(key&temp) while(key!=0 x0f);delay(10);return (i+j*4);temp = 1;沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 12 void Time0_Init() 定時(shí)器、定時(shí)器、/定時(shí)器初始化定時(shí)器初始化 TMOD=0 x11; TH0=0 x8C; TL0=0 xb

26、0; EA=1; PT1=0; ET0=1; TR0=1; TH1=0 x3C; TL1=0 xb0; ET1=1; TR1=1;void timer() interrupt 1 /定時(shí)器定時(shí)器 0 的計(jì)數(shù)程序的計(jì)數(shù)程序 TH0=0 x8c;TL0=0 xb0;EA=0;num+;EA=1;void timer1() interrupt 3 /數(shù)碼管顯示程序數(shù)碼管顯示程序 TH1=0 x1c;沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 13 TL1=0 xb0;led=0 x20; t=0 x20; for(i=0;i=1; delay(26); void jianpan(uint k4) /鍵盤判斷程序鍵

27、盤判斷程序 int flag=0;uchar b;f2=0; if(k4=0 x0c) scores=0; f2=1; Leds0=scores/10; Leds1=scores%10; return; if(k4=0 x0b) flag=1;TR0=1;沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 14 if(k4=0 x00) b=0 x01; if(P1&b) scores+; Leds0=scores/10; Leds1=scores%10; if(k4=0 x01) b=0 x02; if(P1&b) scores+; Leds0=scores/10; Leds1=scores%10

28、; if(k4=0 x02) b=0 x04; if(P1&b) scores+;沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 15 Leds0=scores/10; Leds1=scores%10; if(k4=0 x03) b=0 x08; if(P1&b) scores+; Leds0=scores/10; Leds1=scores%10; if(k4=0 x04) b=0 x10; if(P1&b) scores+; Leds0=scores/10; Leds1=scores%10 ; if(k4=0 x05) b=0 x20; if(P1&b)沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)

29、報(bào)告 16 scores+; Leds0=scores/10; Leds1=scores%10; if(k4=0 x06) b=0 x40; if(P1&b) scores+; Leds0=scores/10; Leds1=scores%10; if(k4=0 x07) b=0 x80; if(P1&b) scores+; Leds0=scores/10; Leds1=scores%10; while(flag)沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 17 k2=getkey(); k4=keytablek2;/TR0=0;if(k4=0 x0a) flag=0; TR0=1; break;if(k4=0 x0c)flag=0;return; void start() /L1 開始程序開始程序 uchar s=0;Time0_Init();while(1) k2=getkey(); k4=keytablek2; jianpan(k4); if(num=20) 沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 18 num=0;s+;P1=Ltable

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論