<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)的“乒乓球”游戲機(jī)智能控制系統(tǒng)

          基于單片機(jī)的“乒乓球”游戲機(jī)智能控制系統(tǒng)

          作者: 時(shí)間:2012-01-17 來(lái)源:網(wǎng)絡(luò) 收藏

          0 前言

          日常娛樂(lè)生活中,的娛樂(lè)產(chǎn)品非常流行。單片機(jī)具有功能強(qiáng)、可靠性高、使用方便、體積小及重量輕等優(yōu)點(diǎn)。國(guó)外已廣泛應(yīng)用于自動(dòng)化控制的各個(gè)領(lǐng)域。近年來(lái),國(guó)內(nèi)的單片機(jī)技術(shù)與產(chǎn)品開發(fā)應(yīng)用方面的發(fā)展也很快,各種電子產(chǎn)品已越來(lái)越多地采用單片機(jī)控制系統(tǒng)且性價(jià)比高。本文從實(shí)用的角度以AT89C2051單片機(jī)為核心設(shè)計(jì)了一種智能。實(shí)踐證明,該游戲機(jī)運(yùn)行狀況穩(wěn)定、可靠,滿足了要求。

          1 系統(tǒng)的基本工作原理

          本設(shè)計(jì)中,通過(guò)5只連續(xù)排列的發(fā)光二極管的依次點(diǎn)亮代表“乒乓球”的運(yùn)動(dòng)。再用兩個(gè)按鍵模擬左右兩個(gè)球拍,鍵按下代表球拍擊球。“左拍”按下可使發(fā)光二極管從左向右依次點(diǎn)亮,如同“乒乓球”從左向右飛來(lái);“右拍”按下則可使發(fā)光二極管從右向左依次點(diǎn)亮,代表“乒乓球”從右向左運(yùn)動(dòng)。在游戲過(guò)程中,用數(shù)碼顯示管實(shí)時(shí)顯示雙方比分。游戲規(guī)則如下:

          (1)“乒乓球”移動(dòng)速度是固定的,設(shè)定每秒鐘移動(dòng)一位(發(fā)光二極管)。

          (2)在“乒乓球”移位一次的過(guò)程中,進(jìn)行25次的測(cè)試(即每40毫秒一次),查詢接球方是否有擊球動(dòng)作。

          安徽省教育廳基金項(xiàng)目。編號(hào):2003JK093

          (3)接球方的擊球動(dòng)作應(yīng)發(fā)生在“乒乓球”到達(dá)本方最后一位發(fā)光二極管(即點(diǎn)亮)一秒鐘時(shí)間之內(nèi)。如接球方在此一秒鐘之內(nèi)按鍵,則接球成功,接球方得分?!捌古仪颉鞭D(zhuǎn)為相反方向運(yùn)動(dòng)。此后,原接球方變?yōu)榘l(fā)球方,原發(fā)球方變?yōu)榻忧蚍?。游戲繼續(xù)進(jìn)行。

          (4)如接球方提前或滯后擊球,則接球方失誤。雙方都不得分。這時(shí)“乒乓球”熄滅,數(shù)碼顯示管顯示雙方的比分不變。然后仍由原發(fā)球方發(fā)球。

          2 硬件組成

          具體電路由單片機(jī)電路、發(fā)光二極管顯示電路、按鍵電路和數(shù)碼顯示電路等部分組成。

          2.1 單片機(jī)電路

          AT89C2051、X1、R1、C1等組成單片機(jī)電路,R1、C1組成單片機(jī)的復(fù)位電路,接通電源的瞬間,由于電源電壓通過(guò)R1對(duì)C1的充電過(guò)程,單片機(jī)AT89C2051復(fù)位端1腳獲得一個(gè)高電平復(fù)位脈沖,使得單片機(jī)進(jìn)入初始狀態(tài)。見(jiàn)圖1。

          2.2 發(fā)光二極管顯示和按鍵電路

          利用AT89C2051作發(fā)光二極管和按鍵的接口電路。P3.0~P3.4口接5只發(fā)光二極管,P3.7口接左按鍵,模擬左拍擊球動(dòng)作;P3.5口接右按鍵,模擬右拍擊球動(dòng)作。見(jiàn)圖1。

          2.3 數(shù)碼顯示電路

          利用顯示譯碼器MC14459組成6位共陰極LED靜態(tài)顯示電路。當(dāng)P1.4=1時(shí),譯碼器74LS138開通,由P1.5~P1.7口經(jīng)譯碼器74LS138控制各MC14459芯片依次選通各LED,同時(shí)由P1.0~P1.3口將欲顯示的十六進(jìn)制數(shù)直接輸出到各MC14459芯片中,再使控制端為高電平,鎖存P1.0~P1.3口輸出的數(shù)據(jù),并進(jìn)行譯碼驅(qū)動(dòng)顯示。見(jiàn)圖1。

          圖1 系統(tǒng)原理框圖

          3 軟件設(shè)計(jì)

          為了便于調(diào)試,本系統(tǒng)的軟件主要采用模塊化結(jié)構(gòu)設(shè)計(jì),具體的程序由主程序、“乒乓球”左移子程序、“乒乓球”右移子程序和比分顯示子程序等模塊組成。下面給出了主程序、“乒乓球”左移子程序、“乒乓球”右移子程序及顯示子程序的流程圖。

          3.1 主程序

          主程序的功能是進(jìn)行初始化工作,并控制“乒乓球”游戲的開始。模擬左拍的按鍵接P3.7口,模擬右拍的按鍵接P3.5口。游戲開始時(shí),顯示的比分是零比零,此后,如左拍按下則“乒乓球”右移;如右拍按下則“乒乓球”左移。在主程序中,需要用四個(gè)通用寄存器分別作為右方得分寄存器、左方得分寄存器、1秒計(jì)時(shí)常數(shù)寄存器及“乒乓球”移位計(jì)數(shù)器。其流程圖見(jiàn)圖2。

          圖2 主程序流程圖

          3.2 “乒乓球”左移子程序

          左移子程序的主要功能是控制“乒乓球”的向左移動(dòng),并在逐位移動(dòng)過(guò)程中判斷是否有左拍擊球動(dòng)作。只有當(dāng)“乒乓球”移動(dòng)到最左的一秒時(shí)間內(nèi)擊球才是有效的,左拍得分,并轉(zhuǎn)乒乓球右移子程序,使“乒乓球”向右移動(dòng),即相當(dāng)于左方發(fā)球。除此之外,所有的左拍擊球都算失誤,重新開始“乒乓球”左移子程序,相當(dāng)于由右方重新發(fā)球。其流程圖見(jiàn)圖3。

          圖3 “乒乓球”左移子程序流程圖

          3.3 “乒乓球”右移子程序

          “乒乓球”的右移子程序的原理與左移子程序的原理相同,只要把左移子程序流程圖中的“右”與“左”互換即可。

          3.4 顯示子程序

          3.4.1 比分顯示格式

          比分顯示用六位數(shù)碼顯示管進(jìn)行顯示。其顯示格式見(jiàn)圖4。

          圖4 “乒乓球”游戲比分顯示格式

          3.4.2 顯示原理

            “乒乓球”游戲的左右拍得分分別存在左方得分寄存器和右方得分寄存器中(在主程序中已設(shè)置好兩個(gè)寄存器)。首先設(shè)置初值,使二極管熄滅并使比分顯示為“00——00”,然后游戲開始,如左拍或右拍正確擊球,相應(yīng)方的比分加1分,否則比分保持原來(lái)比分不變。其流程圖見(jiàn)圖5。

          圖5 顯示子程序流程圖

          4 結(jié)束語(yǔ)

          本文作者創(chuàng)新點(diǎn):整個(gè)設(shè)計(jì)以AT89C2051單片機(jī)為核心,充分利用了AT89C2051有限的外圍引腳資源,實(shí)現(xiàn)了對(duì)的左右操作及比分顯示的控制。整個(gè)系統(tǒng)通過(guò)按鍵可以很方便地操作。且運(yùn)行穩(wěn)定,抗干擾能力強(qiáng)。真正實(shí)現(xiàn)了娛樂(lè)產(chǎn)品的

          參考文獻(xiàn)

          [1] 李廣第.單片機(jī)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,1993.

          [2] 盧存?zhèn)?,錢捷.微機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì)[M].南京:河海大學(xué)出版社,1992.

          [3] 劉淑榮,丁錄軍.基于單片機(jī)控制的溫度智能控制系統(tǒng)[J].微計(jì)算機(jī)信息,2003,19-7:29-30。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();