單片機(jī)原理與串口技術(shù)實(shí)訓(xùn)說(shuō)明_第1頁(yè)
單片機(jī)原理與串口技術(shù)實(shí)訓(xùn)說(shuō)明_第2頁(yè)
單片機(jī)原理與串口技術(shù)實(shí)訓(xùn)說(shuō)明_第3頁(yè)
單片機(jī)原理與串口技術(shù)實(shí)訓(xùn)說(shuō)明_第4頁(yè)
單片機(jī)原理與串口技術(shù)實(shí)訓(xùn)說(shuō)明_第5頁(yè)
已閱讀5頁(yè),還剩5頁(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)介

...wd......wd......wd...編號(hào):xx電子科技大學(xué)信息科技學(xué)院?jiǎn)纹瑱C(jī)原理與串口技術(shù)實(shí)訓(xùn)論文說(shuō)明書(shū)題目:打地鼠游戲機(jī)系別:機(jī)電工程系專業(yè):機(jī)械電子工程學(xué)生姓名:朱子任學(xué)號(hào):1453200122指導(dǎo)教師:莫榮職稱:教授√題目類型:理論研究實(shí)驗(yàn)研究工程設(shè)計(jì)工程技術(shù)研究軟件開(kāi)發(fā)應(yīng)用研究√2015年6月20日獨(dú)創(chuàng)性聲明本人鄭重聲明:所呈交的學(xué)位論文,是本人在導(dǎo)師的指導(dǎo)下,獨(dú)立進(jìn)展研究工作所取得的成果。除文中已經(jīng)注明引用的內(nèi)容外,本論文不含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫(xiě)過(guò)的作品成果。對(duì)本文的研究做出重要奉獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。本人完全意識(shí)到本聲明的法律結(jié)果由本人承當(dāng)。學(xué)位論文作者簽名:日期:關(guān)于學(xué)位論文版權(quán)使用授權(quán)的說(shuō)明本人完全了解xx電子科技大學(xué)信息科技學(xué)院關(guān)于收集、保存、使用學(xué)位論文的以下規(guī)定:學(xué)院有權(quán)采用影印、縮印、掃描、數(shù)字化或其它手段保存論文;學(xué)院有權(quán)提供本學(xué)位論文全文或者局部?jī)?nèi)容的閱覽服務(wù);學(xué)院有權(quán)將學(xué)位論文的全部或局部?jī)?nèi)容編入有關(guān)數(shù)據(jù)庫(kù)進(jìn)展檢索、交流;學(xué)院有權(quán)向國(guó)家有關(guān)部門(mén)或者機(jī)構(gòu)送交論文的復(fù)印件和電子版。學(xué)位論文作者簽名:日期:導(dǎo)師簽名:日期:摘要隨著電子科技的飛速開(kāi)展,單片機(jī)在電子及自動(dòng)控制領(lǐng)域均得到了廣泛的應(yīng)用。MCS-51單片機(jī)經(jīng)歷了幾十年的開(kāi)展之后,目前在技術(shù)、配套教材及資料上均已十分成熟。通過(guò)對(duì)51單片機(jī)進(jìn)展系統(tǒng)設(shè)計(jì),同學(xué)們可以更好的掌握單片機(jī)的根本原理與設(shè)計(jì)開(kāi)發(fā)過(guò)程。本次實(shí)訓(xùn)的內(nèi)容為打地鼠游戲機(jī)的設(shè)計(jì)與制作,來(lái)實(shí)現(xiàn):利用led燈亮滅表示“地鼠〞進(jìn)出地鼠洞,通過(guò)光敏元件代表錘子實(shí)現(xiàn)信號(hào)的轉(zhuǎn)化,并由單片機(jī)控制led的亮滅,數(shù)碼管的顯示。實(shí)訓(xùn)設(shè)計(jì)制作共耗時(shí)一周,實(shí)訓(xùn)作品可實(shí)現(xiàn)“地鼠〞隨機(jī)出現(xiàn),數(shù)碼管顯示,光敏原件檢測(cè)是否“擊中〞,單片機(jī)自行判斷與通關(guān)等功能,作品運(yùn)行穩(wěn)定,完全到達(dá)了實(shí)訓(xùn)要求。通過(guò)實(shí)訓(xùn),本人已對(duì)C51單片機(jī)根本了解,并有了較深刻的認(rèn)識(shí)。關(guān)鍵詞:led隨機(jī)顯示;光敏原件;數(shù)碼管顯示;單片機(jī);目錄引言……………21方案設(shè)計(jì)……………………21.1軟件設(shè)計(jì)方案…………………21.2硬件設(shè)計(jì)方案…………………22總設(shè)計(jì)………………………22.1軟件設(shè)計(jì)……………………22.2硬件設(shè)計(jì)……………………33.硬件設(shè)計(jì)……………………23.1單片機(jī)系統(tǒng)設(shè)計(jì)………………23.1.1單片機(jī)的選擇………………23.1.2單片機(jī)引腳功能………………43.1.3單片機(jī)最小系統(tǒng)……………53.2數(shù)碼管顯示模塊設(shè)計(jì)……………63.3“地鼠洞〞模塊電路……………73.4信號(hào)轉(zhuǎn)換模塊電路…………………73.4.1LM358電壓比擬器…………………73.4.2光敏電阻…………………73.4.3光電信號(hào)轉(zhuǎn)換…………………74.軟件設(shè)計(jì)…………………84.1主程序設(shè)計(jì)…………………84.2程序展示…………………95.總結(jié)…………………11辭謝…………………11參考文獻(xiàn)…………………11引言隨著電子科技的飛速開(kāi)展,單片機(jī)在電子及自動(dòng)控制領(lǐng)域均得到了廣泛的應(yīng)用。MCS-51單片機(jī)經(jīng)歷了幾十年的開(kāi)展之后,目前在技術(shù)、配套教材及資料上均已十分成熟。通過(guò)對(duì)51單片機(jī)進(jìn)展系統(tǒng)設(shè)計(jì),同學(xué)們可以更好的掌握單片機(jī)的根本原理與設(shè)計(jì)開(kāi)發(fā)過(guò)程。本次實(shí)訓(xùn)作品主要由:?jiǎn)纹瑱C(jī)最小系統(tǒng)、數(shù)碼管顯示模塊、信號(hào)轉(zhuǎn)換模塊、“地鼠洞〞模塊組成。本次實(shí)訓(xùn)的核心是C51單片機(jī)最小系統(tǒng),而后是其余拓展模塊。下面就從相關(guān)方面進(jìn)展論述。方案設(shè)計(jì)將51單片機(jī)作為控制核心,倒數(shù)計(jì)時(shí)、關(guān)卡序號(hào)、分?jǐn)?shù)由一個(gè)靜態(tài)數(shù)碼管顯示。“地鼠的冒出〞信號(hào)由單片機(jī)的P2端口輸出到地鼠洞模塊,而后相應(yīng)led點(diǎn)亮。此時(shí)用一光敏元件進(jìn)展光信號(hào)識(shí)別,〔在這里推薦使用無(wú)極性的光敏電阻〕,并發(fā)送給LM358比擬器,再由比擬器,將相應(yīng)電位輸送給單片機(jī)進(jìn)展計(jì)算與顯示。具體操作步驟為:1.1軟件設(shè)計(jì)方案利用keil對(duì)51單片機(jī)編程,使其在顯示“地鼠〞前,先利用靜態(tài)數(shù)碼管顯示一組3-1的三秒倒數(shù)計(jì)時(shí)。而后,利用相關(guān)算法使“地鼠們〞隨即從洞里鉆出〔既led逐一點(diǎn)亮〕,同時(shí)LM358比擬器比擬光敏電阻電位從而判斷“錘子〞〔光敏電阻〕是否打到地鼠,并輸出相關(guān)信號(hào)給單片機(jī)P1.0端口。單片機(jī)記錄被打到的地鼠的個(gè)數(shù),與對(duì)應(yīng)時(shí)間以制作下一組“地鼠〞冒出次序的數(shù)組。當(dāng)十個(gè)“地鼠〞全部打完時(shí),led停頓顯示,數(shù)碼管顯示分?jǐn)?shù)。同時(shí)單片機(jī)根據(jù)打到地鼠的個(gè)數(shù)選擇是否過(guò)關(guān)。在負(fù)責(zé)輸入信號(hào)的按鍵按下后,下一關(guān)開(kāi)場(chǎng)。1.2硬件設(shè)計(jì)方案本實(shí)訓(xùn)設(shè)計(jì)的“打地鼠游戲機(jī)〞,由C51單片機(jī)最小系統(tǒng)、數(shù)碼管顯示模塊、信號(hào)轉(zhuǎn)換模塊、“地鼠洞〞模塊組成?!暗厥蟥暶俺鲇直淮蚧鼗蜃詣?dòng)縮回的原理是,在單片機(jī)控制下,led被作為“地鼠〞依次點(diǎn)亮,當(dāng)作為“錘子〞的光敏電阻接觸到發(fā)光的led上的時(shí)候,光敏電阻組織發(fā)生變化,LM358感應(yīng)電位變化并輸出低電平給單片機(jī)的P1.0端口?!暗厥蟥暣蛲旰?,數(shù)碼管顯示分?jǐn)?shù),假設(shè)分?jǐn)?shù)足夠,讓獨(dú)立按鍵選擇是否進(jìn)入下一關(guān)。本硬件可分為四大局部:C51單片機(jī)最小系統(tǒng)、數(shù)碼管顯示模塊、信號(hào)轉(zhuǎn)換模塊、“地鼠洞〞模塊。2.總體設(shè)計(jì)2.1軟件設(shè)計(jì)開(kāi)場(chǎng)開(kāi)場(chǎng)單片機(jī)初始化單片機(jī)初始化倒數(shù)計(jì)時(shí)倒數(shù)計(jì)時(shí)地鼠冒出·地鼠冒出記錄打地鼠時(shí)間分?jǐn)?shù)+1是否打到地鼠記錄打地鼠時(shí)間分?jǐn)?shù)+1是否打到地鼠否是否打滿10只地鼠否是否打滿10只地鼠是顯示分?jǐn)?shù)顯示分?jǐn)?shù)是否通關(guān)分?jǐn)?shù)是否夠高是是是否通關(guān)分?jǐn)?shù)是否夠高否地鼠冒出時(shí)間減半地鼠冒出時(shí)間減半2.2硬件設(shè)計(jì)單片機(jī)最小系統(tǒng)單片機(jī)最小系統(tǒng)“地鼠洞〞模塊信號(hào)轉(zhuǎn)換模塊“地鼠洞〞模塊信號(hào)轉(zhuǎn)換模塊數(shù)碼管顯示模塊3硬件設(shè)計(jì)3.1單片機(jī)系統(tǒng)設(shè)計(jì)3.1.1單片機(jī)的選擇一般在系統(tǒng)的設(shè)計(jì)當(dāng)中,能否完成設(shè)計(jì)任務(wù)最重要的就在于系統(tǒng)的核心器件是否選擇適宜,而單片機(jī)更是是系統(tǒng)控制的核心,所以對(duì)單片機(jī)的選擇更是異常重要。如果選擇了一個(gè)適宜的單片機(jī)不僅可以最大地簡(jiǎn)化系統(tǒng)的操作,而且其功能可能是最好的,可靠性也比擬高,對(duì)整個(gè)系統(tǒng)來(lái)說(shuō)更方便。目前,市面上的單片機(jī)的種類繁多,并且他們?cè)诠δ芊矫嬉彩歉髯杂懈髯缘奶攸c(diǎn)。在一般的情況下來(lái)講,在選擇單片機(jī)時(shí)要需要考慮的幾個(gè)方面有[5]:〔1〕單片機(jī)最根本性能參數(shù)指標(biāo)。例如:執(zhí)行一條指令的速度、程序存儲(chǔ)器的容量,I/O口的引腳數(shù)量等?!?〕單片機(jī)的某些增強(qiáng)的功能?!?〕單片機(jī)的存儲(chǔ)介質(zhì)。例如:對(duì)于程序存儲(chǔ)器來(lái)說(shuō),最好選用的是Flash的存儲(chǔ)器。〔4〕單片機(jī)的封裝形式。封裝的形式多種多樣,例如:雙列直插封裝、PLCC封裝及外表貼附等?!?〕單片機(jī)對(duì)工作的溫度范圍的要求。例如:在進(jìn)展設(shè)計(jì)戶外的產(chǎn)品時(shí),就必須要選用工業(yè)級(jí)的芯片,以到達(dá)溫度范圍的要求?!?〕單片機(jī)的功耗。例如,如果信號(hào)線取電只能提供幾mA的電流,所以為了能滿足低功耗的要求這個(gè)時(shí)候選用STC的單片機(jī)是最適宜的?!?〕單片機(jī)在市面上的銷售渠道是否暢通、其價(jià)格是否廉價(jià)?!?〕單片機(jī)技術(shù)的支持網(wǎng)站如何,賣家提供的芯片資料是否足夠完善,是否包含了用戶手冊(cè),設(shè)計(jì)方案舉例,相關(guān)范例程序等?!?〕單片機(jī)的保密性是否很好,單片機(jī)的抗干擾的性能如何等。51系列單片機(jī)它在指令系統(tǒng)、硬件構(gòu)造和片內(nèi)資源等方面與標(biāo)準(zhǔn)的52系列的單片機(jī)可以完全的兼容。51系列的單片機(jī)執(zhí)行速率快(最高時(shí)鐘頻率為90MHz),功耗低,在系統(tǒng)、在應(yīng)用可編程,不占用用戶的資源[5]。根據(jù)本系統(tǒng)設(shè)計(jì)的實(shí)際要求,選擇AT89S51單片機(jī)做為本設(shè)計(jì)的單片機(jī)使用,它是由ATMEL公司生產(chǎn)的高性能、低功耗的CMOS8位單片機(jī)。89S51單片機(jī)具有以下幾個(gè)性能特點(diǎn):4k字節(jié)的閃存片內(nèi)程序存儲(chǔ)器,128字節(jié)的數(shù)據(jù)存儲(chǔ)器,32個(gè)外部輸入和輸出口,2個(gè)全雙工串行通信口,看門(mén)狗電路,5個(gè)中斷源,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,片內(nèi)震蕩和時(shí)鐘電路且全靜態(tài)工作并由低功耗的閑置和掉電模式[5]。單片機(jī)的引腳功能圖如圖3.1所示。圖3.151單片機(jī)的引腳功能圖3.1.2單片機(jī)引腳功能〔1〕電源引腳Vcc〔40腳〕:正電源的引腳,工作電壓是5V。GND〔20腳〕:接地端?!?〕時(shí)鐘電路的引腳XTAL1和XTAL2為了產(chǎn)生時(shí)鐘信號(hào),在89S51單片機(jī)的芯片內(nèi)部已經(jīng)設(shè)置了一個(gè)反相放大器,其中XTAL1端口就是片內(nèi)反相放大器的輸入端,XTAL2端則是片內(nèi)振蕩器反相放大器的輸出端[5]。單片機(jī)使用的工作方式是自激振蕩的方式,XTAL1和XTAL2外接的是12MHz的石英晶振,使內(nèi)部振蕩器按照石英晶振的頻率頻率進(jìn)展振蕩,從而就可以產(chǎn)生時(shí)鐘信號(hào)。時(shí)鐘信號(hào)電路如圖3.2所示。圖3.2時(shí)鐘信號(hào)電路〔3〕復(fù)位RST〔9腳〕當(dāng)振蕩器運(yùn)行時(shí),只要有有兩個(gè)機(jī)器周期即24個(gè)振蕩周期以上的高電平在這個(gè)引腳出現(xiàn)時(shí),那么就將會(huì)使單片機(jī)復(fù)位,如果將這個(gè)引腳保持高電平,那么51單片機(jī)芯片就會(huì)循環(huán)不斷地進(jìn)展復(fù)位[5]。復(fù)位后的P0口至P3口均置于高電平,這時(shí)程序計(jì)數(shù)器和特殊功能存放器將全部清零[5]。本課題設(shè)計(jì)的單片機(jī)復(fù)位電路如圖3.3所示。圖3.3單片機(jī)復(fù)位電路圖〔4〕輸入輸出口〔I/O口〕引腳P0口是一個(gè)三態(tài)的雙向口,既可以作為數(shù)據(jù)和地址的分時(shí)復(fù)用口,又可以作為通用輸入輸出口[5]。P0口在有外部擴(kuò)展存儲(chǔ)器時(shí)將會(huì)被作為地址/數(shù)據(jù)總線口,此時(shí)P0口就是一個(gè)真正的雙向口;而在沒(méi)有外部擴(kuò)展存儲(chǔ)器時(shí),P0口也可以作為通用的I/O接口使用,但此時(shí)只是一個(gè)準(zhǔn)雙向口;另外,P0口的輸出級(jí)具有驅(qū)動(dòng)8個(gè)LSTTL負(fù)載的能力即輸出電流不小于800uA[5]。P1口是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,而P1口只有通用I/O接口一種功能,而且P1口能驅(qū)動(dòng)4個(gè)LSTTL負(fù)載;在使用時(shí)通常不需要外接上拉電阻就能夠直接驅(qū)動(dòng)發(fā)光二極管;在端口置1時(shí),其內(nèi)部上拉電阻將端口拉到高電平,作輸入端口用[5]。對(duì)于輸出功能,在單片機(jī)工作的時(shí)候,可以通過(guò)用程序指令控制單片機(jī)引腳輸出高電平或低電平[5]。例如:指令CLR是清零的意思,CLRP1.0的意思就是讓單片機(jī)的P1.0端口輸出低電平;而指令SETB是置1的意思,SETBP1.0的意思就是讓單片機(jī)P1.0端口輸出高電平[5]。P2口是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,而且P2口具有驅(qū)動(dòng)4個(gè)LSTTL負(fù)載的能力[5]。P2端口置1時(shí),內(nèi)部上拉電阻將端口的電位拉到高電平,作為輸入口使用;在對(duì)內(nèi)部的Flash程序存儲(chǔ)器編程時(shí),P2口接收高8位地址和控制信息,而在訪問(wèn)外部程序和16位外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口就送出高8位地址[5]。在訪問(wèn)8位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),P2引腳上的內(nèi)容在此期間不會(huì)改變[5]。P3口也是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,P3口能驅(qū)動(dòng)4個(gè)LSTTL負(fù)載,這8個(gè)引腳還用于專門(mén)的第二功能[5]。P3口作為通用I/O口接口時(shí),第二功能輸出線為高電平。P3口置1時(shí),內(nèi)部上拉電阻將端口電位拉到高電平,作輸入口使用;在對(duì)內(nèi)部Flash程序存儲(chǔ)器編程時(shí),此端接控制信息[5]。P3口的第二功能,如表3.1所示[5]。表3.1P3口第二功能表P3引腳兼用功能P3.0串行通訊輸入口〔RXD〕P3.1串行通訊輸出口〔TXD〕P3.2外部中斷0請(qǐng)求輸入端〔INT0〕P3.3外部中斷1請(qǐng)求輸入端〔INT1〕P3.4定時(shí)器0輸入端(T0)P3.5定時(shí)器1輸入端(T1)P3.6外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通信號(hào)輸出端〔/WR〕P3.7外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通信號(hào)輸出端〔/RD〕〔5〕其它控制或復(fù)用引腳〔a〕ALE/PROG〔30腳〕:地址鎖存有效信號(hào)輸出端。在訪問(wèn)片外存儲(chǔ)器時(shí),ALE〔地址鎖存允許〕以每機(jī)器周期兩次進(jìn)展信號(hào)輸出,其下降沿用于控制鎖存P0口輸出的低8位地址;在不訪問(wèn)片外存儲(chǔ)器的時(shí)候,ALE端仍以不變的頻率輸出脈沖信號(hào)(此頻率是振蕩器頻率的1/6),而在訪問(wèn)片外數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖會(huì)跳空一個(gè),此時(shí)是不可以做為時(shí)鐘輸出[5]。對(duì)片內(nèi)含有EPROM的機(jī)型在編程時(shí),這個(gè)引腳用于輸入編程脈沖/PROG的輸入端[5]。〔b〕/PSEN〔29腳〕:片外程序存儲(chǔ)器讀選通信號(hào)輸出端,低電平時(shí)有效。當(dāng)89S51從外部程序存儲(chǔ)器取指令或常數(shù)時(shí),每個(gè)機(jī)器周期內(nèi)輸出2個(gè)脈沖即兩次有效,以通過(guò)數(shù)據(jù)總線P0口讀回指令或常數(shù)。但在訪問(wèn)片外數(shù)據(jù)存儲(chǔ)器時(shí),/PSEN將不會(huì)有脈沖輸出[5]?!瞔〕/EA/Vpp〔31腳〕:/EA為片外程序存儲(chǔ)器訪選用端。當(dāng)該引腳訪問(wèn)片外程序存儲(chǔ)器時(shí),應(yīng)該輸入的是低電平,要使89S51只訪問(wèn)片外程序存儲(chǔ)器,這時(shí)該引腳必須保持低電平;而在對(duì)Flash存儲(chǔ)器編程時(shí),用于施加Vpp編程電壓[5]。3.1.3單片機(jī)最小系統(tǒng)單片機(jī)最小系統(tǒng)是其他拓展系統(tǒng)的最根本的根基,單片機(jī)最小系統(tǒng)是指一個(gè)真正可用的單片機(jī)最小配置系統(tǒng)即單片機(jī)能工作的系統(tǒng)。對(duì)于80S51單片機(jī),由于片內(nèi)已經(jīng)自帶有了程序存儲(chǔ)器,所以只要單片機(jī)外接時(shí)鐘電路和復(fù)位電路就可以組成了單片機(jī)的最小系統(tǒng)了。單片機(jī)的最小系統(tǒng)如圖3.4所示。圖3.4單片機(jī)最小系統(tǒng)原理圖3.2數(shù)碼管顯示模塊設(shè)計(jì)發(fā)光二極管的縮寫(xiě)是LED,在每個(gè)數(shù)碼管里面都有8只發(fā)光二極管,它們分別記作a、b、c、d、e、f、g、dp,其中dp是小數(shù)點(diǎn),每一只發(fā)光二極管都有一根電極引到外部的引腳上,而另外一只二極管的引腳就連接在一起同樣也引到外部引腳上,此引腳就記作公共端COM。市面上常用的LED數(shù)碼管有兩種即共陽(yáng)極數(shù)碼管與共陰極數(shù)碼管。共陽(yáng)極是數(shù)碼管里面的發(fā)光二極的陽(yáng)極接在一起作為公共引腳即公共陽(yáng)極,在使用時(shí)此公共引腳接到電源正極。相反,共陰極就是數(shù)碼管里面的發(fā)光二極管的陰極接在一起作為公共引腳即公共陰極,在使用時(shí)此引腳接到電源負(fù)極。單片機(jī)對(duì)數(shù)碼管的顯示可以分為靜態(tài)顯示和動(dòng)態(tài)顯示,靜態(tài)顯示能夠穩(wěn)定地顯示數(shù)值,但是搭建電路時(shí)比擬煩索,而動(dòng)態(tài)顯示是數(shù)碼管輪流顯示再利用人眼的“視覺(jué)暫留〞特性,這樣看出來(lái)的就是在顯示不同數(shù)值[8]。數(shù)碼管的動(dòng)態(tài)顯示比擬實(shí)用,電路構(gòu)建簡(jiǎn)單,所以本設(shè)計(jì)采用動(dòng)態(tài)掃描的方法顯示測(cè)量距離,只要輪流顯示的速度足夠快的時(shí)候就能夠?qū)崿F(xiàn)測(cè)量數(shù)值的顯示。顯示模塊選用4位共陽(yáng)極數(shù)碼管進(jìn)展動(dòng)態(tài)掃描,此掃描方式能完全到達(dá)顯示要求。本次試訓(xùn)數(shù)碼管輸出數(shù)據(jù)并不復(fù)雜,故可采用靜態(tài)數(shù)碼管。同時(shí),為防止單片機(jī)管腳輸出功率過(guò)低,我們可以接上一個(gè)74Ls573h來(lái)提高輸出功率。數(shù)碼管顯示模塊電路如圖3.5所示:圖3.5數(shù)碼管顯示模塊電路圖3.3“地鼠洞〞模塊電路“地鼠洞〞模塊電路,其工作原理與數(shù)碼管顯示模塊電路大致一樣。為了讓單片機(jī)更好的顯示“地鼠〞冒出,我們可以將led的陰極聯(lián)在一起,而陽(yáng)極分別連接單片機(jī)P2端口。同時(shí)為防止單片機(jī)輸出功率不夠,我們可以再接一個(gè)74Ls573h來(lái)提高功率?!暗厥蠖川暷K電路如圖3.6所示:圖3.6“地鼠洞〞模塊電路圖3.4信號(hào)轉(zhuǎn)換模塊電路圖信號(hào)轉(zhuǎn)換器模塊的核心是LM358電壓比擬器以及光敏電阻。3.4.1LM358電壓比擬器電壓比擬器是對(duì)輸入信號(hào)進(jìn)展鑒別與比擬的電路,是組成非正弦波發(fā)生電路的根本單元電路電壓比擬器可以看作是放大倍數(shù)接近“無(wú)窮大〞的運(yùn)算放大器。其功能主要是:比擬兩個(gè)電壓的大小(用輸出電壓的高或低電平,表示兩個(gè)輸入電壓的大小關(guān)系):當(dāng)〞+〞輸入端電壓高于〞-〞輸入端時(shí),電壓比擬器輸出為高電平;當(dāng)〞+〞輸入端電壓低于〞-〞輸入端時(shí),電壓比擬器輸出為低電平;電壓比擬器的作用:它可用作模擬電路和數(shù)字電路的接口,還可以用作波形產(chǎn)生和變換電路等。利用簡(jiǎn)單電壓比擬器可將正弦波變?yōu)橥l率的方波或矩形波。它可用作模擬電路和數(shù)字電路的接口,還可以用作波形產(chǎn)生和變換電路等。利用簡(jiǎn)單電壓比擬器可將正弦波變?yōu)橥l率的方波或矩形波。在本實(shí)訓(xùn)中,我們主要使用它作為電壓比擬器的功能。3.4.2光敏電阻光敏電阻又稱光導(dǎo)體,常用的制作材料為硫化鎘,另外還有硒、硫化鋁、硫化鉛和硫化鉍等材料。這些制作材料具有在特定波長(zhǎng)的光照射下,其阻值迅速減小的特性。這是由于光照產(chǎn)生的載流子都參與導(dǎo)電,在外加電場(chǎng)的作用下作漂移運(yùn)動(dòng),電子奔向電源的正極,空穴奔向電源的負(fù)極,從而使光敏電阻器的阻值迅速下降。使得光敏電阻阻值呈現(xiàn)入射光強(qiáng),電阻減小,入射光弱,電阻增大。還有另一種入射光弱,電阻減小,入射光強(qiáng),電阻增大的變化趨勢(shì)。光敏電阻器一般用于光的測(cè)量、光的控制和光電轉(zhuǎn)換〔將光的變化轉(zhuǎn)換為電的變化〕。常用的光敏電阻器硫化鎘光敏電阻器,它是由半導(dǎo)體材料制成的。光敏電阻器對(duì)光的敏感性〔即光譜特性〕與人眼對(duì)可見(jiàn)光〔0.4~0.76〕μm的響應(yīng)很接近,只要人眼可感受的光,都會(huì)引起它的阻值變化。設(shè)計(jì)光控電路時(shí),都用白熾燈泡〔小電珠〕光線或自然光線作控制光源,使設(shè)計(jì)大為簡(jiǎn)化。3.4.3光電信號(hào)轉(zhuǎn)換光電信號(hào)轉(zhuǎn)換模塊電路的根本原理是利用光敏電阻將光信號(hào)轉(zhuǎn)換成模擬電位信號(hào),再通過(guò)LM358電壓比擬器〔接在3號(hào)“+〞輸入端口上〕將模擬電位信號(hào)同另一比擬端〔接在2號(hào)“-〞輸入端上〕的參考電位信號(hào)比擬,假設(shè)3號(hào)端口電位低于2號(hào)端口,則1號(hào)輸出端就輸出低電平。同時(shí),為實(shí)現(xiàn)選擇關(guān)卡,本人在另外連接了三個(gè)按鍵開(kāi)關(guān)用于輸出低電平信號(hào)。光電電位轉(zhuǎn)換模塊電路圖如圖3.7所示:圖3.7光電信號(hào)轉(zhuǎn)換模塊電路圖4.軟件設(shè)計(jì)本設(shè)計(jì)采用的是模塊化的思路來(lái)進(jìn)展設(shè)計(jì)和編寫(xiě)程序,程序主要由系統(tǒng)主程序和延時(shí)程序構(gòu)成。主程序完成單片機(jī)的初始化,倒數(shù)計(jì)時(shí)、顯示“地鼠〞、計(jì)算“地鼠〞被打下的時(shí)間、計(jì)算下一只“地鼠〞的位置和顯示分?jǐn)?shù)等。延時(shí)程序負(fù)責(zé)延時(shí),協(xié)同主程序執(zhí)行。4.1主程序設(shè)計(jì):初始化過(guò)后,為了游戲的可玩性,先在數(shù)碼管上顯示倒數(shù)計(jì)時(shí)3秒,而后顯示關(guān)卡序號(hào)。此時(shí)P2端口通過(guò)while循環(huán)顯示“地鼠〞,同時(shí)利用循環(huán)變量與延時(shí)控制“地鼠冒出時(shí)間〞,當(dāng)“錘子〞打到地鼠或循環(huán)變量為0時(shí),退出循環(huán)。倘假設(shè)在“地鼠冒出〞并“縮回〞期間,“錘子〞打到“地鼠〞,則循環(huán)變量非零。從而可通過(guò)此方法判斷“地鼠被打倒〞。假設(shè)真打到“地鼠〞,分?jǐn)?shù)自增,并將循環(huán)變量%8運(yùn)算的結(jié)果作為下一只“地鼠〞的冒出位置,從而實(shí)現(xiàn)“地鼠〞隨機(jī)出現(xiàn)。當(dāng)打完十只“地鼠〞后,游戲停頓,數(shù)碼管顯示得分,而后通過(guò)連接P1.0按鍵繼續(xù)游戲,如果得分高于8分,則可分別通過(guò)P1.1、P1.2選擇是否過(guò)關(guān),假設(shè)過(guò)關(guān),延時(shí)時(shí)間取原延時(shí)時(shí)間的一半,然后,進(jìn)入下一關(guān),繼續(xù)游戲。整個(gè)程序的關(guān)鍵是“地鼠〞的隨機(jī)出現(xiàn)。為了加強(qiáng)游戲的可玩性,很多游戲都選擇使用用隨機(jī)函數(shù)實(shí)現(xiàn)隨機(jī)控制。生成隨機(jī)函數(shù)主要有兩種方法:方法一:定時(shí)器直接隨機(jī)取值這是利用人工按下按鍵開(kāi)啟定時(shí)器中斷的方式,每次按鍵按下就開(kāi)啟定時(shí)計(jì)數(shù)器,從而生成一個(gè)隨機(jī)數(shù)。這種方式的優(yōu)點(diǎn)是隨機(jī)性高,程序相對(duì)簡(jiǎn)單,適用于51單片機(jī)初學(xué)者,而其對(duì)外部硬件與人工操作依賴較強(qiáng)。方法二:使用隨機(jī)函數(shù)庫(kù)random〔〕隨機(jī)函數(shù)庫(kù)random〔〕是單片機(jī)內(nèi)部專門(mén)用來(lái)產(chǎn)生隨機(jī)數(shù)的函數(shù)庫(kù)。Random〔〕與srandom〔〕程序都包含在頭文件include<stdlib.h>里。當(dāng)需要使用時(shí),只要調(diào)用random〔〕函數(shù)。Srand〔〕函數(shù)將設(shè)置起始值,并由random〔〕函數(shù)的偽隨機(jī)數(shù)發(fā)生器使用。隨機(jī)數(shù)發(fā)生器產(chǎn)生同一序列的偽隨機(jī)數(shù),并傳給定值。從而得到隨機(jī)數(shù)。這種方式的優(yōu)點(diǎn)在于:程序執(zhí)行時(shí)只需要CPU自己計(jì)算,不需要人為控制。而缺點(diǎn)在于,此類函數(shù)使用復(fù)雜。且隨機(jī)數(shù)經(jīng)常一樣,實(shí)用性較低。介于以上兩種方法,本人設(shè)計(jì)的隨機(jī)算法主要參考第一種方法。既,在顯示“地鼠〞時(shí),使用了while循環(huán)語(yǔ)句,并設(shè)置一變量在其中用于計(jì)算while循環(huán)語(yǔ)句的循環(huán)次數(shù)。同時(shí)利用循環(huán)變量與延時(shí)控制“地鼠冒出時(shí)間〞,當(dāng)“錘子〞打到地鼠或循環(huán)變量為0時(shí),退出循環(huán)。倘假設(shè)在“地鼠冒出〞并“縮回〞期間,“錘子〞打到“地鼠〞,則循環(huán)變量非零,從而斷定“地鼠被打倒〞。假設(shè)真打到“地鼠〞,分?jǐn)?shù)自增,并將循環(huán)變量%8運(yùn)算的結(jié)果作為下一只“地鼠〞的冒出位置,從而實(shí)現(xiàn)“地鼠〞隨機(jī)出現(xiàn)。4.2程序展示#include<reg52.h>

#define

uchar

unsigned

char

#define

uint

unsigned

int

sbit

hit=P1^2;

sbit

yes=P1^0;

sbit

no=P1^1;

uchar

code

table[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

//地鼠控制數(shù)組

uchar

code

score[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

//數(shù)碼管段選碼

uchar

a=100,b=10,c,d=2,e=1,x=100,s=0,time;

void

delayms(uint

x)//毫秒級(jí)延時(shí)函數(shù)

{

uchar

i,j;

for(i=x;i>0;i--)

for(j=110;j>0;j--);

}

void

delay1s()//一秒延時(shí)函數(shù)

{

uint

k,l;

for(k=1000;k>0;k--)

for(l=110;l>0;l--);

}

void

main()

{

while(1)

{

c=x;//裝入延時(shí)變量

P3=score[3];//倒數(shù)計(jì)時(shí)

delay1s();

P3=score[2];

delay1s();

P3=score[1];

delay1s();

P3=score[e];

while(b)

{

x=c;//重裝延時(shí)變量

a=100;

P2=table[d];//顯示地鼠

溫馨提示

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