嵌入式課程設(shè)計(jì)模擬計(jì)算器和乒乓球游戲機(jī)畢業(yè)論文_第1頁(yè)
嵌入式課程設(shè)計(jì)模擬計(jì)算器和乒乓球游戲機(jī)畢業(yè)論文_第2頁(yè)
嵌入式課程設(shè)計(jì)模擬計(jì)算器和乒乓球游戲機(jī)畢業(yè)論文_第3頁(yè)
嵌入式課程設(shè)計(jì)模擬計(jì)算器和乒乓球游戲機(jī)畢業(yè)論文_第4頁(yè)
嵌入式課程設(shè)計(jì)模擬計(jì)算器和乒乓球游戲機(jī)畢業(yè)論文_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 PAGE16 / NUMPAGES18摘要近年來(lái),隨著科技的進(jìn)步,計(jì)算機(jī)在人們的生活中的地位逐漸變得不可替代,同時(shí),嵌入式領(lǐng)域的不斷深入帶動(dòng)控制檢測(cè)技術(shù)的日益更新,嵌入式系統(tǒng)具有低功耗、體積小、功能強(qiáng)、集成度高等優(yōu)點(diǎn)。在試驗(yàn)檢測(cè)和自動(dòng)控制方面,嵌入式的部件往往作為一個(gè)核心的控制系統(tǒng)再加以軟件控制,使得生活中的自動(dòng)控制領(lǐng)域發(fā)生技術(shù)性的飛躍。本次設(shè)計(jì)包括兩個(gè)容:簡(jiǎn)易計(jì)算器和乒乓球游戲機(jī),都是利用周立功S3C2410實(shí)驗(yàn)箱上的硬件實(shí)現(xiàn)的,在模擬計(jì)算器系統(tǒng)的設(shè)計(jì)中 ,利用鍵盤(pán)輸入數(shù)據(jù),LED數(shù)碼管顯示結(jié)果,能夠進(jìn)行加減乘除的運(yùn)算。在乒乓球游戲機(jī)的系統(tǒng)設(shè)計(jì)中,利用鍵盤(pán)作為球拍,用四個(gè)LED燈模擬球運(yùn)動(dòng)

2、,數(shù)碼管顯示分?jǐn)?shù)來(lái)模擬乒乓球的擊球過(guò)程和分?jǐn)?shù)的統(tǒng)計(jì),LCD提示本局結(jié)束。關(guān)鍵字:嵌入式 S3C2410 計(jì)算器 乒乓球游戲機(jī)目 錄TOC o 1-3 h z uHYPERLINK l _Toc2821209091 系統(tǒng)需求分析 PAGEREF _Toc282120909 h 1HYPERLINK l _Toc2821209101.1 簡(jiǎn)易計(jì)算器的設(shè)計(jì) PAGEREF _Toc282120910 h 1HYPERLINK l _Toc2821209111.2 乒乓球游戲機(jī)的設(shè)計(jì) PAGEREF _Toc282120911 h 1HYPERLINK l _Toc2821209122 概要設(shè)計(jì) PA

3、GEREF _Toc282120912 h 2HYPERLINK l _Toc2821209132.1 簡(jiǎn)易計(jì)算器的功能模塊 PAGEREF _Toc282120913 h 2HYPERLINK l _Toc2821209142.2 乒乓球游戲機(jī)的功能模塊 PAGEREF _Toc282120914 h 3HYPERLINK l _Toc2821209153 詳細(xì)設(shè)計(jì) PAGEREF _Toc282120915 h 4HYPERLINK l _Toc2821209163.1 簡(jiǎn)易計(jì)算器的程序流程圖 PAGEREF _Toc282120916 h 4HYPERLINK l _Toc2821209

4、173.2 乒乓球游戲機(jī)的程序流程圖 PAGEREF _Toc282120917 h 5HYPERLINK l _Toc2821209183.3 簡(jiǎn)易計(jì)算器的功能實(shí)現(xiàn) PAGEREF _Toc282120918 h 6HYPERLINK l _Toc2821209193.3.1 顯示輸入數(shù)據(jù)的函數(shù) PAGEREF _Toc282120919 h 6HYPERLINK l _Toc2821209203.3.2 顯示計(jì)算結(jié)果的函數(shù) PAGEREF _Toc282120920 h 6HYPERLINK l _Toc2821209213.4乒乓球游戲機(jī)的功能實(shí)現(xiàn)函數(shù) PAGEREF _Toc28212

5、0921 h 8HYPERLINK l _Toc2821209223.4.1 定時(shí)器的設(shè)置和中斷服務(wù)函數(shù) PAGEREF _Toc282120922 h 8HYPERLINK l _Toc2821209233.4.2 發(fā)球函數(shù)的實(shí)現(xiàn) PAGEREF _Toc282120923 h 9HYPERLINK l _Toc2821209243.4.3 判斷失誤次數(shù)的函數(shù)實(shí)現(xiàn) PAGEREF _Toc282120924 h 9HYPERLINK l _Toc2821209253.4.4 擊球函數(shù)的實(shí)現(xiàn) PAGEREF _Toc282120925 h 10HYPERLINK l _Toc282120926

6、4 測(cè)試結(jié)果 PAGEREF _Toc282120926 h 13HYPERLINK l _Toc2821209274.1 簡(jiǎn)易計(jì)算器的測(cè)試 PAGEREF _Toc282120927 h 13HYPERLINK l _Toc2821209284.2 乒乓球游戲的測(cè)試 PAGEREF _Toc282120928 h 14HYPERLINK l _Toc2821209296 致 PAGEREF _Toc282120929 h 16HYPERLINK l _Toc2821209307 參考文獻(xiàn) PAGEREF _Toc282120930 h 171 系統(tǒng)需求分析1.1 簡(jiǎn)易計(jì)算器的設(shè)計(jì)設(shè)計(jì)一個(gè)能夠

7、實(shí)現(xiàn)簡(jiǎn)單的加減乘除運(yùn)算的簡(jiǎn)易計(jì)算器,主要是鍵盤(pán)的輸入和數(shù)據(jù)的顯示,利用實(shí)驗(yàn)箱上的鍵盤(pán)進(jìn)行數(shù)據(jù)和運(yùn)算符號(hào)的輸入,LED數(shù)碼管實(shí)現(xiàn)數(shù)據(jù)和結(jié)果的顯示,通過(guò)本設(shè)計(jì)的分析,主要實(shí)現(xiàn)一下功能: 1 實(shí)驗(yàn)箱上數(shù)字鍵盤(pán)的數(shù)據(jù)輸入,運(yùn)算符的輸入 2. LED動(dòng)態(tài)顯示輸入的數(shù)據(jù)和計(jì)算的結(jié)果。 3. 輸入運(yùn)算符后數(shù)碼管清屏。1.2 乒乓球游戲機(jī)的設(shè)計(jì)本設(shè)計(jì)主要是利用實(shí)驗(yàn)箱的資源模擬乒乓球的游戲過(guò)程,能夠?qū)崿F(xiàn)擊球、發(fā)球和計(jì)分的功能。主要的需求分析如下:1. 球的運(yùn)動(dòng):利用LED流水燈的流向模擬球的運(yùn)動(dòng)方向,擊球之后,燈的運(yùn)動(dòng)反向。2. 擊球:甲、乙兩方各有一個(gè)按鍵作為球拍,以按鍵的按下開(kāi)關(guān)表示擊球。如果沒(méi)有失誤,則甲

8、方擊球后發(fā)光二極管向乙方移動(dòng),反之亦然。3. 失誤:接球方必須在放光二極管移動(dòng)到自己方最末一個(gè)二極管時(shí),按下?lián)羟蜴I使球向?qū)Ψ揭苿?dòng)。如果擊球過(guò)遲或者長(zhǎng)時(shí)間沒(méi)有擊球,都認(rèn)為是失誤。4. 計(jì)分:利用數(shù)碼管顯示失誤的次數(shù)即分?jǐn)?shù),如果失誤達(dá)到11分,則數(shù)碼管熄滅表示輸,同時(shí)LCD顯示本局結(jié)束。5. 速度的控制,利用數(shù)字鍵來(lái)控制燈運(yùn)動(dòng)速度的增減。2 概要設(shè)計(jì)2.1 簡(jiǎn)易計(jì)算器的功能模塊該設(shè)計(jì)主要有數(shù)據(jù)的輸入和數(shù)據(jù)的顯示,數(shù)據(jù)的輸入靠鍵盤(pán)實(shí)現(xiàn),主要是數(shù)據(jù)的輸入和運(yùn)算符的輸入,在輸入運(yùn)算符之后數(shù)碼管全滅等待下一個(gè)數(shù)據(jù)的輸入,按下Enter鍵計(jì)算兩次輸入數(shù)據(jù)的運(yùn)算結(jié)果,再次按下Enter鍵重新開(kāi)始下一次計(jì)算數(shù)據(jù)

9、的輸入。能夠?qū)崿F(xiàn)數(shù)碼管的動(dòng)態(tài)顯示。圖2.1 簡(jiǎn)易計(jì)算器功能模塊圖2.2 乒乓球游戲機(jī)的功能模塊乒乓球游戲機(jī)的主要是球的運(yùn)動(dòng)部分、擊球部分和失誤統(tǒng)計(jì)部分。球的運(yùn)動(dòng)部分能夠?qū)崿F(xiàn)任意球員發(fā)球,燈的運(yùn)動(dòng)方向不同,擊球部分主要用鍵盤(pán)模擬球拍,在擊球的時(shí)候判斷是否已經(jīng)超過(guò)擊球時(shí)間,是否長(zhǎng)時(shí)間沒(méi)有擊球,數(shù)碼管主要是統(tǒng)計(jì)顯示失誤的分?jǐn)?shù),輸球是刷新分?jǐn)?shù),當(dāng)失誤次數(shù)達(dá)到11時(shí),熄滅掉輸方的數(shù)碼管,同時(shí)LCD顯示本局結(jié)束。該系統(tǒng)的功能模塊圖如下:圖2.2 乒乓球游戲機(jī)功能模塊圖3 詳細(xì)設(shè)計(jì)3.1 簡(jiǎn)易計(jì)算器的程序流程圖圖3.1 簡(jiǎn)易計(jì)算器程序流程圖3.2 乒乓球游戲機(jī)的程序流程圖圖3.2 乒乓球游戲機(jī)程序流程圖3.

10、3 簡(jiǎn)易計(jì)算器的功能實(shí)現(xiàn)3.3.1 顯示輸入數(shù)據(jù)的函數(shù)該函數(shù)主要功能是進(jìn)行移位,使輸入的數(shù)據(jù)能夠準(zhǔn)確顯示輸入的數(shù)據(jù),而不是倒著顯示。void move_num(int num)int i;for(i=num;i0;i-)disp_bufi = disp_bufi-1;3.3.2 顯示計(jì)算結(jié)果的函數(shù) 該函數(shù)主要是用來(lái)顯示計(jì)算結(jié)果,并根據(jù)輸入數(shù)據(jù)的小數(shù)點(diǎn)位數(shù)判斷結(jié)果的小數(shù)點(diǎn)的顯示位數(shù)和位置。對(duì)于不同的運(yùn)算保持不同的精度。Voidshow_result(float Last_result,int point_position,int a)int sum;int i = 0;if(a=1)disp_b

11、ufpoint_position=0;sum = (int)Last_result;while(sum 0)disp_bufi = sum % 10;sum /= 10;i+;disp_bufpoint_position += 0 x80;ZLG7290_SendBuf(uint8 *)disp_buf,8); if(a=2) disp_bufpoint_position * 2=0;sum = (int)Last_result;while(sum 0)disp_bufi = sum % 10;sum /= 10;i+;disp_bufpoint_position * 2 += 0 x80;Z

12、LG7290_SendBuf(uint8 *)disp_buf,8); 3.4乒乓球游戲機(jī)的功能實(shí)現(xiàn)函數(shù)3.4.1 定時(shí)器的設(shè)置和中斷服務(wù)函數(shù)定時(shí)器設(shè)置為0.01秒,每0.01秒進(jìn)入中斷服務(wù)程序一次,在中斷服務(wù)程序中進(jìn)行時(shí)間的累加,到1秒中檢測(cè)是否擊球,沒(méi)有擊球就使失誤分?jǐn)?shù)加1。/定時(shí)器設(shè)置void settime()/ Fclk=200MHz,時(shí)鐘分頻配置為1:2:4,即Pclk=50MHz。rTCFG0 = 250;/ 預(yù)分頻器0設(shè)置為250,取得200KHzrTCFG1 = 1;/ TIMER0再取1/4分頻,取得50KHzrTCMPB0 = 0 x0000;/ 設(shè)置定時(shí)器為0rTCNT

13、B0 = 500; / 定時(shí)0.01秒rTCON = (11);/ 更新定時(shí)器數(shù)據(jù)rTCON = (10)|(13);/ 啟動(dòng)定時(shí)器/中斷服務(wù)程序void IRQ_Time0(void)time+; / 清除中斷標(biāo)志 rSRCPND = 110; rINTPND = rINTPND;3.4.2 發(fā)球函數(shù)的實(shí)現(xiàn)該函數(shù)主要是確定發(fā)球方,進(jìn)而確定球的運(yùn)動(dòng)方向。void OneStart()/甲方發(fā)球int j;for(j=1;j =1;j/=2) LED_DispNum(j); DelayNS(set_time); 3.4.3 判斷失誤次數(shù)的函數(shù)實(shí)現(xiàn)該函數(shù)主要是計(jì)算并顯示雙方失誤的次數(shù),判斷是否達(dá)到

14、11次,沒(méi)有達(dá)到則繼續(xù)擊球,否則LCD顯示本局結(jié)束,輸球方的數(shù)碼管熄滅。void jisuan(int err1,int err2) /計(jì)算最后輸贏if(err1=11)disp_buf4 = 0 x1f;disp_buf5 = 0 x1f;ZLG7290_SendBuf(uint8 * )disp_buf,8);DispDesktop(); / 顯示圖片 DelayNS(100); if(err2=11)disp_buf0 = 0 x1f;disp_buf1 = 0 x1f;ZLG7290_SendBuf(uint8 * )disp_buf,8);DispDesktop(); / 顯示圖片

15、DelayNS(100); 3.4.4 擊球函數(shù)的實(shí)現(xiàn)該函數(shù)主要是實(shí)現(xiàn)擊球的情況,同時(shí)判斷擊球的時(shí)間是否已經(jīng)超過(guò)預(yù)設(shè)時(shí)間,如果長(zhǎng)時(shí)間不擊球則認(rèn)為失誤或者擊球時(shí)間超過(guò)1秒也是失誤,失誤分?jǐn)?shù)加1,調(diào)用顯示函數(shù)顯示當(dāng)前分?jǐn)?shù)。if(key=1)/甲方打球 DelayNS(5); if(key=1) if(start_flag=0) time = 0; start_flag = 1; if(time = 100) for(j=1;j =8;j*=2) LED_DispNum(j); DelayNS(set_time); if(j=8) time=0; player_flag = 2; else/甲方失誤

16、 error1+; disp_buf4 = error1 % 10; disp_buf5 = error1 / 10; ZLG7290_SendBuf(uint8 * )disp_buf,8); jisuan(error1,error2); TwoStart(); time=0; if(key=12)/乙方打球 DelayNS(5); if(key=12) if(start_flag=0) time = 0; start_flag = 1; if(time =1;j/=2) LED_DispNum(j); DelayNS(set_time); if(j=8) time=0; player_fl

17、ag = 1; else/乙方失誤 error2+; disp_buf0 = error2 % 10; disp_buf1 = error2 / 10; ZLG7290_SendBuf(uint8 * )disp_buf,8); jisuan(error1,error2); OneStart(); time=0; 4 測(cè)試結(jié)果4.1 簡(jiǎn)易計(jì)算器的測(cè)試測(cè)試輸入兩個(gè)數(shù)相乘觀察結(jié)果如下:圖4.1 輸入數(shù)據(jù)的顯示圖4.2 計(jì)算結(jié)果的顯示4.2 乒乓球游戲的測(cè)試乒乓球游戲的測(cè)試中,主要測(cè)試燈的流動(dòng)方向,擊球之后反向運(yùn)動(dòng),數(shù)碼管的失誤分?jǐn)?shù)統(tǒng)計(jì),能夠動(dòng)態(tài)顯示計(jì)數(shù)分?jǐn)?shù),在結(jié)束時(shí)LCD屏幕的提示輸方的數(shù)碼管燈熄滅等。主要顯示功能如下圖所示:圖4.3 乒乓球運(yùn)動(dòng)顯示圖4.4 失誤分?jǐn)?shù)的顯示圖4.5 結(jié)束提示5 總結(jié)通過(guò)本次簡(jiǎn)易計(jì)算器和乒乓球游戲機(jī)的設(shè)計(jì),我對(duì)S3C2410實(shí)驗(yàn)箱的結(jié)構(gòu)有了更加詳細(xì)的了解,同時(shí),也鞏固了平時(shí)學(xué)習(xí)中的理論知識(shí)。在對(duì)ZLG7290的運(yùn)用中,熟悉并掌握了ZLG7290的操作原理和編程,會(huì)了鍵盤(pán)的消抖、連擊處理等知識(shí),簡(jiǎn)易計(jì)算器的設(shè)計(jì)完成了計(jì)算器的基本功能,能夠?qū)崿F(xiàn)加減乘除的運(yùn)算,并且能夠準(zhǔn)確顯示所輸入的數(shù)據(jù),得出

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論