模擬乒乓球游戲機控制電路課程設計.doc
《模擬乒乓球游戲機控制電路課程設計.doc》由會員分享,可在線閱讀,更多相關《模擬乒乓球游戲機控制電路課程設計.doc(18頁珍藏版)》請在裝配圖網(wǎng)上搜索。
目錄 一、基本設計要求 二、STC89C52芯片介紹 三、程序流程圖 四、“乒乓球”比賽系統(tǒng)數(shù)碼管部分 五、“乒乓球”比賽系統(tǒng)模擬“兵乓球”部分 六、“乒乓球”比賽系統(tǒng)控制開關部分 七、程序設計 八、參考文獻 一、基本設計要求: 1、設計一個由甲、乙雙方參賽。 2、用8個LED排成一條直線,以中點為界,兩邊各代表參賽雙方的位置,其中一只點亮的LED指示球的當前位置,點亮的LED依此從左到右,或從右到左,其啟動的方向可以由任意一方開始。 3、當“球”(點亮的那只LED)運動到某方的最后一位時,參賽者應能果斷地按下位于自己一方的按鈕開關,即表示啟動球拍擊球。若擊中,則球向相反方向移動;若未擊中,則對方得1分。由失分的一方開球。 4.設置自動記分電路,甲、乙雙方各用2位數(shù)碼管進行記分顯示,每計滿21分為1局,一局到的時候蜂鳴器響起,并顯示局數(shù)之比。 5、隨時可以復位比賽,比賽的比分和狀態(tài)可以復位。 摘要: 為了實現(xiàn)模擬乒乓球比賽的過程和規(guī)則,我們采用了STC89C52單片機來控制模擬,采用用8個LED排成一條直線,以中點為界,兩邊各代表參賽雙方的位置,其中一只點亮的LED指示球的當前位置,用蜂鳴器來實現(xiàn)響鈴,比賽雙方用按鈕開關來模擬啟動球拍擊球,用數(shù)碼管來顯示比賽分數(shù),和局數(shù)之比。 關鍵詞:AT89C51 LED 蜂鳴器。 二、芯片介紹 2.1、 89C52芯片介紹 STC89C52是51系列單片機的一個型號,它是ATMEL公司生產(chǎn)的。STC89C52是一個低電壓,高性能CMOS 8位單片機,片內(nèi)含8k bytes的可反復擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產(chǎn),兼容標準MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元。 STC89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,STC89C52可以按照常規(guī)方法進行編程,但不可以在線編程(S系列的才支持在線編程)。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復擦寫的Flash存儲器可有效地降低開發(fā)成本。 兼容MCS51指令系統(tǒng) 8k可反復擦寫(>1000次)Flash ROM 32個雙向I/O口 256x8bit內(nèi)部RAM 3個16位可編程定時/計數(shù)器中斷 時鐘頻率0-24MHz 2個串行中斷 可編程UART串行通道 2個外部中斷源 共5個中斷源 2個讀寫中斷口線 3級加密位 低功耗空閑和掉電模式 軟件設置睡眠和喚醒功能 STC89c52為40腳雙列直插封裝的8 位通用微處理器,采用工業(yè)標準的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52 相同,其主要用于會聚調(diào)整時的功能控制。功能包括對會聚主IC 內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,會聚調(diào)整控制,會聚測試圖控制,紅外遙控信號IR的接收解碼及與主板CPU通信等。主要管腳有:XTAL1(19 腳)和XTAL2(18 腳)為振蕩器輸入輸出端口,外接12MHz 晶振。RST/Vpd(9 腳)為復位輸入端口,外接電阻電容組成的復位電路。VCC(40 腳)和VSS(20 腳)為供電端口,分別接+5V電源的正負端。P0~P3 為可編程通用I/O 腳,其功能用途由軟件定義,在本設計中,P0 端口(32~39 腳)被定義為N1 功能控制端口,分別與N1的相應功能管腳相連接,13 腳定義為IR輸入端,10 腳和11腳定義為I2C總線控制端口,分別連接N1的SDAS(18腳)和SCLS(19腳)端口,12 腳、27 腳及28 腳定義為握手信號功能端口,連接主板CPU 的相應功能端,用于當前制式的檢測及會聚調(diào)整狀態(tài)進入的控制功能。 P0 口 P0口是一組8 位漏極開路型雙向I/O 口, 也即地址/數(shù)據(jù)總線復用口。作為輸出口用時,每位能吸收電流的方式驅(qū)動8 個TTL邏輯門電路,對端口P0 寫“1”時,可作為高阻抗輸入端用。 在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8 位)和數(shù)據(jù)總線復用,在訪問期間激活內(nèi)部上拉電阻。 在Flash 編程時,P0 口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。 P1 口 P1 是一個帶內(nèi)部上拉電阻的8 位雙向I/O 口, P1 的輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL 邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。 P2 口 P2 是一個帶有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 的輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL 邏輯門電路。對端口P2 寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。 在訪問外部程序存儲器或16 位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR 指令)時,P2 口送出高8 位地址數(shù)據(jù)。在訪問8 位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX @RI 指令)時,P2 口輸出P2 鎖存器的內(nèi)容。 Flash 編程或校驗時,P2亦接收高位地址和一些控制信號。 P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I/O 口。P3 口輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL 邏 輯門電路。對P3 口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的P3 口將用上拉電阻輸出電流(IIL)。 P3 口除了作為一般的I/O 口線外,更重要的用途是它的第二功能,P3 口還接收一些用于Flash 閃速存儲器編程和程序校驗的控制信號。 RST 復位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復位。 ALE/PROG 當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8 位字節(jié)。一般情況下,ALE 仍以時鐘振蕩頻率的1/6 輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE 脈沖。對Flash 存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH 單元的D0 位置位,可禁止ALE 操作。該位置位后,只有一條MOVX 和MOVC指令才能將ALE 激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應設置ALE 禁止位無效。 PSEN 程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當STC89C52 由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN 有效,即輸出兩個脈沖。在此期間,當訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。EA/VPP外部訪問允許。欲使CPU 僅訪問外部程序存儲器(地址為0000H—FFFFH),EA 端必須保持低電平(接地)。 XTAL1 振蕩器反相放大器的及內(nèi)部時鐘發(fā)生器的輸入端。 XTAL2 振蕩器反相放大器的輸出端。 特殊功能寄存器 在STC89C52 片內(nèi)存儲器中,80H-FFH 共128 個單元為特殊功能寄存器(SFE),SFR 的地址空間映象如表2 所示。并非所有的地址都被定義,從80H—FFH 共128 個字節(jié)只有一部分被定義,還有相當一部分沒有定義。對沒有定義的單元讀寫將是無效的,讀出的數(shù)值將不確定,而寫入的數(shù)據(jù)也將丟失。不應將數(shù)據(jù)“1”寫入未定義的單元,由于這些單元在將來的產(chǎn)品中可能賦予新的功能,在這種情況下,復位后這些單元數(shù)值總是“0”。STC89C52除了與STC89C51所有的定時/計數(shù)器0 和定時/計數(shù)器1 外,還增加了一個定時/計數(shù)器2。定時/計數(shù)器2。 STC89C52 有256 個字節(jié)的內(nèi)部RAM,80H-FFH 高128 個字節(jié)與特殊功能寄存器(SFR)地址是重疊的,也就是高128字節(jié)的RAM 和特殊功能寄存器的地址是相同的,但物理上它們是分開的。 當一條指令訪問7FH 以上的內(nèi)部地址單元時,指令中使用的尋址方式是不同的,也即尋址方式?jīng)Q定是訪問高128 字節(jié)RAM 還是訪問特殊功能寄存器。如果指令是直接尋址方式則為訪問特殊功能寄存器。 定時器0和定時器1: STC89C52的定時器0和定時器1 的工作方式與STC89C51 相同。 定時器2 定時器2 是一個16 位定時/計數(shù)器。定時器2 由兩個8 位寄存器TH2 和TL2 組成,在定時器工作方式中,每個機器周期TL2 寄存器的值加1,由于一個機器周期由12 個振蕩時鐘構(gòu)成,因此,計數(shù)速率為振蕩頻率的1/12。 在計數(shù)工作方式時,當T2 引腳上外部輸入信號產(chǎn)生由1 至0 的下降沿時,寄存器的值加1,在這種工作方式下,每個機器周期的5SP2 期間,對外部輸入進行采樣。若在第一個機器周期中采到的值為1,而在下一個機器周期中采到的值為0,則在緊跟著的下一個周期的S3P1 期間寄存器加1。由于識別1 至0 的跳變需要2 個機器周期(24 個振蕩周期),因此,最高計數(shù)速率為振蕩頻率的1/24。為確保采樣的正確性,要求輸入的電平在變化前至少保持一個完整周期的時間,以保證輸入信號至少被采樣一次。 管腳圖如下: 三、程序流程圖: 右拍先發(fā)球開始: 按SB4開始 右向左移動 右向左移動 SHU2是否等于21 SB1是否 等于0 SHU2加1 NO SHU1=0、SHU2=0、d++、蜂鳴器響起 YES YES 左向右移動 SB2是否 等于0 SHU1加1 NO YES SHU1是否等于21 YES SHU1=0、SHU2=0、c++、蜂鳴器響起 左拍先發(fā)球開始: 按SB4開始 右向左移 左向右移動 SHU1是否等于21 SB2是否 等于0 SHU1加1 NO SHU1=0、SHU2=0、c++、蜂鳴器響起 YES YES 右向左移動 SB1是否 等于0 SHU2加1 NO YES SHU2是否等于21 YES SHU1=0、SHU2=0、d++、蜂鳴器響起 四、 乒乓球比賽系統(tǒng)數(shù)碼管部分 整個過程由STC89C52單片機控制,對分數(shù)的顯示我們用數(shù)碼管,數(shù)碼管有發(fā)光亮度強的優(yōu)點,能夠滿足我們的要求通過控制數(shù)碼管的段,就可以控制數(shù)碼管的數(shù)學的顯示,我們采用了動態(tài)方式來控制數(shù)碼,該方式是通過讓數(shù)碼管快速切換顯示,人眼分辨不出來,不僅節(jié)約電能,而且還能夠節(jié)約單片機的端口,從而減少程序的復雜性。用P0口來控制數(shù)碼管段顯,用P2口的低三位控制數(shù)碼管的位選,采用74LS138譯碼器,可以節(jié)省單片機得端口。數(shù)碼管電路圖如下圖所示: 五、 乒乓球比賽系統(tǒng)模擬“兵乓球”部分 STC89C52單片機有價格低,抗干擾能力強的優(yōu)點,所以完成能夠滿足我們的要求,我們用單片機的P1控制8個LED的開關,通過對P1口的控制就能控制LED,由于P1口內(nèi)部沒有上拉電阻,不能良好的驅(qū)動LED,LED顯示亮度會很暗,所以我們在外部添加了上拉電阻。依次對P0口給值0X01、0X02、0X04、0x08、0x10、0X20、0X40、0X80便可以控制燈得流水。 P2.5控制蜂鳴器,如下圖所示: 六、“乒乓球”比賽系統(tǒng)控制開關部分 P3.0來控制LED由左到右的開關(即左拍)、P3.1來控制LED由左到右的開關(即右拍),P3.2來控制左向右的開始發(fā)球,P3.3來控制右向左的開始發(fā)球。整體圖如下所示:(實際中只用到S1、S2、S3、S4) 七、程序設計 #include- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 模擬 乒乓球 游戲機 控制電路 課程設計
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
鏈接地址:http://www.820124.com/p-6670292.html