模擬乒乓球游戲機(jī)控制電路課程設(shè)計(jì)_第1頁(yè)
模擬乒乓球游戲機(jī)控制電路課程設(shè)計(jì)_第2頁(yè)
模擬乒乓球游戲機(jī)控制電路課程設(shè)計(jì)_第3頁(yè)
模擬乒乓球游戲機(jī)控制電路課程設(shè)計(jì)_第4頁(yè)
模擬乒乓球游戲機(jī)控制電路課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩14頁(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、可編輯目錄 一、基本設(shè)計(jì)要求 二、STC89C52芯片介紹三、程序流程圖四、“乒乓球”比賽系統(tǒng)數(shù)碼管部分五、“乒乓球”比賽系統(tǒng)模擬“兵乓球”部分六、“乒乓球”比賽系統(tǒng)控制開(kāi)關(guān)部分七、程序設(shè)計(jì)八、參考文獻(xiàn)一、基本設(shè)計(jì)要求:1、設(shè)計(jì)一個(gè)由甲、乙雙方參賽。2、用8個(gè)LED排成一條直線,以中點(diǎn)為界,兩邊各代表參賽雙方的位置,其中一只點(diǎn)亮的LED指示球的當(dāng)前位置,點(diǎn)亮的LED依此從左到右,或從右到左,其啟動(dòng)的方向可以由任意一方開(kāi)始。3、當(dāng)“球”(點(diǎn)亮的那只LED)運(yùn)動(dòng)到某方的最后一位時(shí),參賽者應(yīng)能果斷地按下位于自己一方的按鈕開(kāi)關(guān),即表示啟動(dòng)球拍擊球。若擊中,則球向相反方向移動(dòng);若未擊中,則對(duì)方得1分。由

2、失分的一方開(kāi)球。 4.設(shè)置自動(dòng)記分電路,甲、乙雙方各用2位數(shù)碼管進(jìn)行記分顯示,每計(jì)滿(mǎn)21分為1局,一局到的時(shí)候蜂鳴器響起,并顯示局?jǐn)?shù)之比。5、隨時(shí)可以復(fù)位比賽,比賽的比分和狀態(tài)可以復(fù)位。摘要:為了實(shí)現(xiàn)模擬乒乓球比賽的過(guò)程和規(guī)則,我們采用了STC89C52單片機(jī)來(lái)控制模擬,采用用8個(gè)LED排成一條直線,以中點(diǎn)為界,兩邊各代表參賽雙方的位置,其中一只點(diǎn)亮的LED指示球的當(dāng)前位置,用蜂鳴器來(lái)實(shí)現(xiàn)響鈴,比賽雙方用按鈕開(kāi)關(guān)來(lái)模擬啟動(dòng)球拍擊球,用數(shù)碼管來(lái)顯示比賽分?jǐn)?shù),和局?jǐn)?shù)之比。關(guān)鍵詞:AT89C51 LED 蜂鳴器。二、芯片介紹2.1、 89C52芯片介紹STC89C52是51系列單片機(jī)的一個(gè)型號(hào),它是

3、ATMEL公司生產(chǎn)的。STC89C52是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫(xiě)的Flash只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元。STC89C52有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫(xiě)口線,STC89C52可以按照常規(guī)方法進(jìn)行編程,但不可以在線編程(S系列的才支持在線編程)。其將通用的微處理器和Flash存儲(chǔ)器

4、結(jié)合在一起,特別是可反復(fù)擦寫(xiě)的Flash存儲(chǔ)器可有效地降低開(kāi)發(fā)成本。兼容MCS51指令系統(tǒng) 8k可反復(fù)擦寫(xiě)(1000次)Flash ROM 32個(gè)雙向I/O口 256x8bit內(nèi)部RAM 3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷 時(shí)鐘頻率0-24MHz 2個(gè)串行中斷 可編程UART串行通道 2個(gè)外部中斷源 共5個(gè)中斷源 2個(gè)讀寫(xiě)中斷口線 3級(jí)加密位 低功耗空閑和掉電模式 軟件設(shè)置睡眠和喚醒功能 STC89c52為40腳雙列直插封裝的8 位通用微處理器,采用工業(yè)標(biāo)準(zhǔn)的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52 相同,其主要用于會(huì)聚調(diào)整時(shí)的功能控制。功能包括對(duì)會(huì)聚主IC 內(nèi)部寄存器、數(shù)據(jù)RAM及

5、外部接口等功能部件的初始化,會(huì)聚調(diào)整控制,會(huì)聚測(cè)試圖控制,紅外遙控信號(hào)IR的接收解碼及與主板CPU通信等。主要管腳有:XTAL1(19 腳)和XTAL2(18 腳)為振蕩器輸入輸出端口,外接12MHz 晶振。RST/Vpd(9 腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。VCC(40 腳)和VSS(20 腳)為供電端口,分別接+5V電源的正負(fù)端。P0P3 為可編程通用I/O 腳,其功能用途由軟件定義,在本設(shè)計(jì)中,P0 端口(3239 腳)被定義為N1 功能控制端口,分別與N1的相應(yīng)功能管腳相連接,13 腳定義為IR輸入端,10 腳和11腳定義為I2C總線控制端口,分別連接N1的SDAS(1

6、8腳)和SCLS(19腳)端口,12 腳、27 腳及28 腳定義為握手信號(hào)功能端口,連接主板CPU 的相應(yīng)功能端,用于當(dāng)前制式的檢測(cè)及會(huì)聚調(diào)整狀態(tài)進(jìn)入的控制功能。P0 口P0口是一組8 位漏極開(kāi)路型雙向I/O 口, 也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng)8 個(gè)TTL邏輯門(mén)電路,對(duì)端口P0 寫(xiě)“1”時(shí),可作為高阻抗輸入端用。在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8 位)和數(shù)據(jù)總線復(fù)用,在訪問(wèn)期間激活內(nèi)部上拉電阻。在Flash 編程時(shí),P0 口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。P1 口P1 是一個(gè)帶內(nèi)部上拉電阻的

7、8 位雙向I/O 口, P1 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL 邏輯門(mén)電路。對(duì)端口寫(xiě)“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。P2 口P2 是一個(gè)帶有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL 邏輯門(mén)電路。對(duì)端口P2 寫(xiě)“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。在訪問(wèn)外部程序存儲(chǔ)器或16 位地址的外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行M

8、OVX DPTR 指令)時(shí),P2 口送出高8 位地址數(shù)據(jù)。在訪問(wèn)8 位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行MOVX RI 指令)時(shí),P2 口輸出P2 鎖存器的內(nèi)容。Flash 編程或校驗(yàn)時(shí),P2亦接收高位地址和一些控制信號(hào)。P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I/O 口。P3 口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL 邏輯門(mén)電路。對(duì)P3 口寫(xiě)入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的P3 口將用上拉電阻輸出電流(IIL)。P3 口除了作為一般的I/O 口線外,更重要的用途是它的第二功能,P3 口還接收一些用于Flash 閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。RS

9、T復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。ALE/PROG當(dāng)訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8 位字節(jié)。一般情況下,ALE 仍以時(shí)鐘振蕩頻率的1/6 輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ALE 脈沖。對(duì)Flash 存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過(guò)對(duì)特殊功能寄存器(SFR)區(qū)中的8EH 單元的D0 位置位,可禁止ALE 操作。該位置位后,只有一條MOVX 和MOVC指令才能將ALE 激活。此外,該引腳會(huì)被微弱

10、拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE 禁止位無(wú)效。PSEN程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)STC89C52 由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN 有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,將跳過(guò)兩次PSEN信號(hào)。EA/VPP外部訪問(wèn)允許。欲使CPU 僅訪問(wèn)外部程序存儲(chǔ)器(地址為0000HFFFFH),EA 端必須保持低電平(接地)。XTAL1振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸入端。XTAL2振蕩器反相放大器的輸出端。特殊功能寄存器在STC89C52 片內(nèi)存儲(chǔ)器中,80H-FFH 共128 個(gè)單元為特殊功能寄存器(SFE),

11、SFR 的地址空間映象如表2 所示。并非所有的地址都被定義,從80HFFH 共128 個(gè)字節(jié)只有一部分被定義,還有相當(dāng)一部分沒(méi)有定義。對(duì)沒(méi)有定義的單元讀寫(xiě)將是無(wú)效的,讀出的數(shù)值將不確定,而寫(xiě)入的數(shù)據(jù)也將丟失。不應(yīng)將數(shù)據(jù)“1”寫(xiě)入未定義的單元,由于這些單元在將來(lái)的產(chǎn)品中可能賦予新的功能,在這種情況下,復(fù)位后這些單元數(shù)值總是“0”。STC89C52除了與STC89C51所有的定時(shí)/計(jì)數(shù)器0 和定時(shí)/計(jì)數(shù)器1 外,還增加了一個(gè)定時(shí)/計(jì)數(shù)器2。定時(shí)/計(jì)數(shù)器2。STC89C52 有256 個(gè)字節(jié)的內(nèi)部RAM,80H-FFH 高128 個(gè)字節(jié)與特殊功能寄存器(SFR)地址是重疊的,也就是高128字節(jié)的RA

12、M 和特殊功能寄存器的地址是相同的,但物理上它們是分開(kāi)的。當(dāng)一條指令訪問(wèn)7FH 以上的內(nèi)部地址單元時(shí),指令中使用的尋址方式是不同的,也即尋址方式?jīng)Q定是訪問(wèn)高128 字節(jié)RAM 還是訪問(wèn)特殊功能寄存器。如果指令是直接尋址方式則為訪問(wèn)特殊功能寄存器。定時(shí)器0和定時(shí)器1:STC89C52的定時(shí)器0和定時(shí)器1 的工作方式與STC89C51 相同。定時(shí)器2定時(shí)器2 是一個(gè)16 位定時(shí)/計(jì)數(shù)器。定時(shí)器2 由兩個(gè)8 位寄存器TH2 和TL2 組成,在定時(shí)器工作方式中,每個(gè)機(jī)器周期TL2 寄存器的值加1,由于一個(gè)機(jī)器周期由12 個(gè)振蕩時(shí)鐘構(gòu)成,因此,計(jì)數(shù)速率為振蕩頻率的1/12。在計(jì)數(shù)工作方式時(shí),當(dāng)T2 引腳

13、上外部輸入信號(hào)產(chǎn)生由1 至0 的下降沿時(shí),寄存器的值加1,在這種工作方式下,每個(gè)機(jī)器周期的5SP2 期間,對(duì)外部輸入進(jìn)行采樣。若在第一個(gè)機(jī)器周期中采到的值為1,而在下一個(gè)機(jī)器周期中采到的值為0,則在緊跟著的下一個(gè)周期的S3P1 期間寄存器加1。由于識(shí)別1 至0 的跳變需要2 個(gè)機(jī)器周期(24 個(gè)振蕩周期),因此,最高計(jì)數(shù)速率為振蕩頻率的1/24。為確保采樣的正確性,要求輸入的電平在變化前至少保持一個(gè)完整周期的時(shí)間,以保證輸入信號(hào)至少被采樣一次。管腳圖如下: 三、程序流程圖:右拍先發(fā)球開(kāi)始: 按SB4開(kāi)始 右向左移動(dòng) 右向左移動(dòng)SHU2是否等于21SB1是否等于0 SHU2加1 NO SHU1=

14、0、SHU2=0、d+、蜂鳴器響起 YES YES 左向右移動(dòng)SB2是否等于0 SHU1加1 NO YESSHU1是否等于21 YESSHU1=0、SHU2=0、c+、蜂鳴器響起左拍先發(fā)球開(kāi)始:按SB4開(kāi)始 右向左移 左向右移動(dòng)SHU1是否等于21SB2是否等于0 SHU1加1 NO SHU1=0、SHU2=0、c+、蜂鳴器響起 YES YES 右向左移動(dòng)SB1是否等于0 SHU2加1 NO YESSHU2是否等于21 YESSHU1=0、SHU2=0、d+、蜂鳴器響起四、 乒乓球比賽系統(tǒng)數(shù)碼管部分整個(gè)過(guò)程由STC89C52單片機(jī)控制,對(duì)分?jǐn)?shù)的顯示我們用數(shù)碼管,數(shù)碼管有發(fā)光亮度強(qiáng)的優(yōu)點(diǎn),能夠滿(mǎn)

15、足我們的要求通過(guò)控制數(shù)碼管的段,就可以控制數(shù)碼管的數(shù)學(xué)的顯示,我們采用了動(dòng)態(tài)方式來(lái)控制數(shù)碼,該方式是通過(guò)讓數(shù)碼管快速切換顯示,人眼分辨不出來(lái),不僅節(jié)約電能,而且還能夠節(jié)約單片機(jī)的端口,從而減少程序的復(fù)雜性。用P0口來(lái)控制數(shù)碼管段顯,用P2口的低三位控制數(shù)碼管的位選,采用74LS138譯碼器,可以節(jié)省單片機(jī)得端口。數(shù)碼管電路圖如下圖所示: 五、 乒乓球比賽系統(tǒng)模擬“兵乓球”部分 STC89C52單片機(jī)有價(jià)格低,抗干擾能力強(qiáng)的優(yōu)點(diǎn),所以完成能夠滿(mǎn)足我們的要求,我們用單片機(jī)的P1控制8個(gè)LED的開(kāi)關(guān),通過(guò)對(duì)P1口的控制就能控制LED,由于P1口內(nèi)部沒(méi)有上拉電阻,不能良好的驅(qū)動(dòng)LED,LED顯示亮度會(huì)

16、很暗,所以我們?cè)谕獠刻砑恿松侠娮?。依次?duì)P0口給值0X01、0X02、0X04、0x08、0x10、0X20、0X40、0X80便可以控制燈得流水。 P2.5控制蜂鳴器,如下圖所示:六、“乒乓球”比賽系統(tǒng)控制開(kāi)關(guān)部分P3.0來(lái)控制LED由左到右的開(kāi)關(guān)(即左拍)、P3.1來(lái)控制LED由左到右的開(kāi)關(guān)(即右拍),P3.2來(lái)控制左向右的開(kāi)始發(fā)球,P3.3來(lái)控制右向左的開(kāi)始發(fā)球。整體圖如下所示:(實(shí)際中只用到S1、S2、S3、S4)七、程序設(shè)計(jì)#include #define uchar unsigned char #define uint unsigned intsbit SB1=P30; /按鍵定

17、義 sbit SB2=P31; /按鍵定義 sbit SB3=P32; /按鍵定義sbit SB4=P33; /按鍵定義sbit Mic=P25; /蜂鳴器定義uchar count=0;uchar i,j,shu1,shu2,a,b,c,d,shi,shi1,ge ,ge1;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/數(shù)碼管顯示dengcode=0x7f,0xbf,0xdf,0xef, 0xf7,0xfb,0xfd,0xfe;/流水燈顯示void delay(uint x) /延時(shí)程序 uchar y

18、; while(x-) for(y=0;y125;y+); void timer0() /計(jì)數(shù)器程序 TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; /開(kāi)總中斷 ET0=1; TR0=1;/數(shù)碼管顯示程序void desplay(uchar a,uchar b,uchar c,uchar d) P0=tablec; /局比分?jǐn)?shù) P2=0; delay(5); P0=tabled; P2=1; delay(5); shi1=a/10; /左拍得分?jǐn)?shù) P0=tableshi1; P2=3; delay(5); ge1=a%10; P0=tablege1; P2=4; elay(5); shi=b/10; /右拍得分?jǐn)?shù) P0=tableshi; P2=6; delay(5); ge=b%10; P0=tablege; P2=7; delay

溫馨提示

  • 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)論