2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩24頁(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、<p><b>  課程設(shè)計(jì)(論文)</b></p><p>  題 目 名 稱(chēng) 競(jìng) 賽 搶 答 器 </p><p>  課 程 名 稱(chēng) 單片機(jī)原理及應(yīng)用課程設(shè)計(jì) </p><p>  學(xué) 生 姓 名 </p><p

2、>  學(xué) 號(hào) </p><p>  系 、專(zhuān) 業(yè) </p><p>  指 導(dǎo) 教 師 </p><p>  2011年 6 月 25 日</p><p><b>  目 錄</b><

3、/p><p><b>  1 任務(wù)要求1</b></p><p><b>  2 方案設(shè)計(jì)1</b></p><p><b>  2.1設(shè)計(jì)思路1</b></p><p>  2.2 方案論證2</p><p>  2.3 設(shè)計(jì)原理2</p&

4、gt;<p>  2.4 系統(tǒng)程序流程3</p><p><b>  3 硬件電路圖5</b></p><p>  3.1 系統(tǒng)電路原理5</p><p>  3.2主要元器件選擇6</p><p><b>  4仿真圖7</b></p><p>  

5、5課程設(shè)計(jì)心得11</p><p><b>  參考文獻(xiàn)12</b></p><p><b>  致謝13</b></p><p><b>  附錄:14</b></p><p><b>  摘 要</b></p><p>

6、;  知識(shí)比賽中,特別是做搶答題目的時(shí)候,在搶答過(guò)程中,為了知道哪一組或哪一位選手先答題,必須要設(shè)計(jì)一個(gè)系統(tǒng)來(lái)完成這個(gè)任務(wù)。因?yàn)樵趽尨疬^(guò)程中,靠視覺(jué)是很難判斷出哪組先答題。利用單片機(jī)系統(tǒng)來(lái)設(shè)計(jì)搶答器,使以上問(wèn)題得以解決,即使各組的搶答時(shí)間相差幾微秒,也可分辨出哪組優(yōu)先答題。該課程設(shè)計(jì)主要介紹了單片機(jī)搶答器設(shè)計(jì)及工作原理,以及它的實(shí)際用途。本系統(tǒng)采用AT89C51單片機(jī)作為核心??刂葡到y(tǒng)的四個(gè)模塊分別為:存儲(chǔ)模塊、顯示模塊、語(yǔ)音模塊、搶答

7、按鍵模塊。該搶答器系統(tǒng)通過(guò)開(kāi)關(guān)電路八個(gè)按鍵輸入搶答信號(hào);利用語(yǔ)音芯片ISD1420完成語(yǔ)音的錄放功能;利用存儲(chǔ)程序;利用一個(gè)四位一體的七段顯示數(shù)碼管來(lái)完成顯示功能。工作時(shí),在按下?lián)尨痖_(kāi)始鍵后,用按鍵通過(guò)開(kāi)關(guān)電路輸入各路的搶答信號(hào)進(jìn)行搶答,經(jīng)單片機(jī)的處理,輸出控制信號(hào),控制數(shù)碼管和語(yǔ)音芯片工作。在位選數(shù)碼管上顯示哪一組先答題的號(hào)碼,并有倒計(jì)時(shí)顯示,以及通過(guò)語(yǔ)音系統(tǒng)發(fā)出報(bào)警聲音,從而實(shí)現(xiàn)整個(gè)搶答過(guò)程。</p><p>

8、;  關(guān)鍵詞:搶答;AT89C51;ISD1420;七段顯示譯碼管;</p><p><b>  1任務(wù)要求</b></p><p>  此課程設(shè)計(jì)課題要求設(shè)計(jì)一個(gè)可供八個(gè)參賽組或參賽隊(duì)員競(jìng)賽使用的搶答器,每組需設(shè)一個(gè)按鈕。此搶答器需要有計(jì)時(shí)與鎖定輸入功能,當(dāng)發(fā)出“搶答開(kāi)始”的命令后計(jì)時(shí),規(guī)定搶答時(shí)間到后無(wú)人作答,將發(fā)出“搶答時(shí)間到”的信號(hào),同時(shí)鎖存輸入電路,從而使各

9、路搶答信號(hào)無(wú)法再次輸入。再者要求,電路具有第一搶答信號(hào)的鑒別與鎖存功能,保證同時(shí)使用后輸入的信號(hào)無(wú)效。此搶答器還需設(shè)置計(jì)分電路,每組預(yù)置100分,答對(duì)加10,答錯(cuò)減10。</p><p><b>  2 方案設(shè)計(jì)</b></p><p><b>  2.1設(shè)計(jì)思路</b></p><p>  經(jīng)過(guò)對(duì)任務(wù)要求的分析,我的設(shè)計(jì)

10、思路是競(jìng)賽搶答器要有報(bào)警系統(tǒng),要是在規(guī)定時(shí)間內(nèi)還沒(méi)有參賽者搶答或回答出問(wèn)題時(shí)就會(huì)發(fā)出報(bào)警聲,倒計(jì)時(shí)為設(shè)定為5S。并且如果出現(xiàn)犯規(guī)搶答時(shí)也會(huì)發(fā)出報(bào)警并且顯示該犯規(guī)選手的編號(hào)。</p><p>  這個(gè)搶答器可同時(shí)供不大于8名選手或8個(gè)代表隊(duì)參加比賽,各用一個(gè)搶答按鈕,按鈕的編號(hào)與選手的編號(hào)是相對(duì)應(yīng)的,分別是S1、S2、S3、S4、S5、S6、S7、S8;給節(jié)目主持人設(shè)置二個(gè)控制按鈕開(kāi)關(guān),用來(lái)控制系統(tǒng)的清零和搶答的開(kāi)

11、始;該八路搶答器具有程序存儲(chǔ)、數(shù)據(jù)鎖存和顯示功能,搶答開(kāi)始后,若有選手按動(dòng)搶答按鈕,編號(hào)立即鎖存, 并在數(shù)碼管上顯示出選手的編號(hào),同時(shí)蜂鳴器給出音響提示,此外,要封鎖輸入電路,禁止其他選手搶答,優(yōu)先搶答選手的編號(hào)一直保持到主持人將系統(tǒng)清零為止; 搶答器具有定時(shí)搶答的功能,且一次搶答,定時(shí)的時(shí)間可由主持人設(shè)定加減。</p><p>  當(dāng)節(jié)目主持人啟動(dòng)"開(kāi)始"鍵后,要求定時(shí)器立即減計(jì)時(shí),并用顯示

12、器顯示,同時(shí)蜂鳴器發(fā)出短暫的聲響,聲響持續(xù)時(shí)間 0.5S左右,參賽選手在設(shè)定的時(shí)間內(nèi)搶答有效,定時(shí)器停止工作,顯示器上顯示選手的編號(hào)和搶答時(shí)刻的時(shí)間, 并保持到主持人將系統(tǒng)清零;如果定時(shí)搶答的時(shí)間不大于5S后,卻沒(méi)有選手搶答時(shí),系統(tǒng)持續(xù)報(bào)警,直到定時(shí)搶答的時(shí)間為零,本次搶答無(wú)效,并封鎖輸入電路,禁止選手超時(shí)后搶答,時(shí)間顯示器上顯示FFF 犯規(guī)處理;如果主持人沒(méi)按"開(kāi)始"鍵,就有選手搶答,則顯示選手編碼,并持續(xù)報(bào)警;如

13、果已經(jīng)有選手搶答了,別的選手則按鍵無(wú)效。直到主持人重新復(fù)位按下開(kāi)始鍵為止。</p><p>  主持人可以根據(jù)不同的問(wèn)答方式設(shè)定不同的搶答時(shí)間和回答時(shí)間。</p><p><b>  2.2 方案論證</b></p><p>  該系統(tǒng)采用MCS-51系列單片機(jī)AT89C51作為控制核心,該系統(tǒng)可以完成運(yùn)算控制、信號(hào)識(shí)別以及顯示功能的實(shí)現(xiàn)。由于

14、用了單片機(jī),使其技術(shù)比較成熟,應(yīng)用起來(lái)方便、簡(jiǎn)單并且單片機(jī)周?chē)妮o助電路也比較少,便于控制和實(shí)現(xiàn)。整個(gè)系統(tǒng)具有極其靈活的可編程性,能方便地對(duì)系統(tǒng)進(jìn)行功能的擴(kuò)張和更改性。 CS-51單片機(jī)特點(diǎn)如下:</p><p>  1) 可靠性好:?jiǎn)纹瑱C(jī)按照工業(yè)控制要求設(shè)計(jì),抵抗工業(yè)噪聲干擾優(yōu)于一般的CPU ,程序指令和數(shù)據(jù)都可以寫(xiě)在ROM許多信號(hào)通道都在同一芯片,因此可靠性高。</p><p>  2

15、) 易擴(kuò)充:?jiǎn)纹瑱C(jī)有一般電腦所必須的器件,如三態(tài)雙向總線(xiàn),串并行的輸入及輸出引腳,可擴(kuò)充為各種規(guī)模的微電腦系統(tǒng)</p><p>  3) 控制功能強(qiáng):?jiǎn)纹瑱C(jī)指令除了輸入輸出指令,邏輯判斷指令外還有更豐富的條件分支跳躍指令。</p><p>  該方案不但從性能上優(yōu)越,而且在使用上及其功能的實(shí)現(xiàn)上都較簡(jiǎn)潔,并且由于單片機(jī)具有優(yōu)越的高集成電路性,使其工作速度更快、效率更高。另外AT89S51單

16、片機(jī)采用12MHz的晶振,提高了信號(hào)的測(cè)量精度,并且使該系統(tǒng)可以通過(guò)軟件改進(jìn)來(lái)擴(kuò)張功能。</p><p><b>  2.3 設(shè)計(jì)原理</b></p><p>  本電路采用單片機(jī)AT89C51作為控制芯片,單片機(jī)的P0口外接七段顯示數(shù)碼管,數(shù)碼管用來(lái)顯示八位選手的號(hào)碼。并在各個(gè)外接電路上并接開(kāi)關(guān)按鍵,按鍵另一端接地。發(fā)光二極管采用共陽(yáng)極接法,由于P0口為高電平呈輸入

17、狀態(tài),當(dāng)有按鍵按下時(shí),P0口呈低電平與按鍵對(duì)應(yīng)的發(fā)光二極管滿(mǎn)足點(diǎn)亮條件點(diǎn)亮。在程序編程上采用查詢(xún),查詢(xún)P1口P1.0到P1.7的八個(gè)端口呈低電平,即查詢(xún)是哪個(gè)選手先按鍵,然后將選手號(hào)碼送至數(shù)碼管上顯現(xiàn)出來(lái)。</p><p>  蜂鳴器是利用三極管處于開(kāi)關(guān)狀態(tài)是的導(dǎo)通與截止工作,在三極管導(dǎo)通時(shí)蜂鳴器工作,三極管截止時(shí)蜂鳴器不工作。三極管采用8550 PNP型基極接于P3.7口置其低電平時(shí)三極管導(dǎo)通,置其高電平時(shí)三極

18、管截止。</p><p>  數(shù)碼管采用共陰極七段顯示,其內(nèi)部發(fā)光二極管為共陰極接低電平。在主持人按下開(kāi)始鍵后,10秒倒計(jì)時(shí)在數(shù)碼管上顯示。搶答選手按下鍵的時(shí)候,其號(hào)碼被送往數(shù)碼管進(jìn)行顯示。選手答題的時(shí)候,15S倒計(jì)時(shí)也送往顯示。</p><p>  軟件設(shè)計(jì)分析首先在程序的開(kāi)始為選手設(shè)置了一段違規(guī)程序,該程序的作用是為了防止選手在主持人沒(méi)有按下?lián)尨疰I時(shí),有的選手已經(jīng)提前搶答了,本次搶答為

19、無(wú)效搶答,并有報(bào)警和記錄下該位選手的選號(hào),做違規(guī)處理。如果在主持人按下?lián)尨疰I后規(guī)定時(shí)間內(nèi)搶答,該次搶答被視為有效搶答,在主持按下回答問(wèn)題的鍵時(shí)選手就可以在規(guī)定的時(shí)間內(nèi)回答問(wèn)題了。</p><p>  圖2.1 設(shè)計(jì)原理圖</p><p>  2.4 系統(tǒng)程序流程</p><p>  我將系統(tǒng)程序流程分為三塊:主程序流程、中斷服務(wù)程序流程、答題子程序流程。程序流程如圖

20、2.2、圖2.3、圖2.4所示。</p><p><b>  2.4主程序</b></p><p>  說(shuō)明:程序啟動(dòng)以后,先將其初始化,再判斷讀鍵盤(pán)是否有鍵按下,如若反饋Y,則調(diào)用顯示搶答器違規(guī)并報(bào)警子程序,如若反饋N,則判斷中斷條件是否滿(mǎn)足,如若足,則進(jìn)入中斷程序,如若不滿(mǎn)足,則再次進(jìn)入循環(huán),判斷讀鍵盤(pán)是否有鍵按下。如圖2.2所示:</p><

21、p>  圖2.2 主程序流程圖</p><p>  2.4.2 中斷服務(wù)程序</p><p>  說(shuō)明:當(dāng)收到進(jìn)入中斷程序指令時(shí),中斷程序啟動(dòng)并有響聲提示,此時(shí)程序?qū)⒃O(shè)定定時(shí)器初值并啟動(dòng)定時(shí)器,從十秒搶答開(kāi)始顯示倒計(jì)時(shí),倒計(jì)時(shí)時(shí)需要調(diào)用讀鍵子程序進(jìn)行延時(shí),再判斷此時(shí)是否有鍵按下,反饋Y,則調(diào)用搶答者獲得回答問(wèn)題的子程序,使搶答者獲得回答權(quán)利。如若反饋N,則在倒計(jì)10秒完成后中斷返回,

22、表示無(wú)人搶答。如圖2.3所示:</p><p>  圖2.3 中斷服務(wù)程序流程圖</p><p>  2.4.3 答題子程序</p><p>  說(shuō)明:當(dāng)搶答者接收到響聲提示時(shí),則說(shuō)明他獲得回答問(wèn)題的權(quán)利,此刻,定時(shí)器將啟動(dòng),并設(shè)定定時(shí)器初值。三秒顯示搶答者歸屬后,再啟動(dòng)15秒倒計(jì)時(shí)等待回答,倒計(jì)時(shí)完成后將再次啟動(dòng)計(jì)時(shí)器,設(shè)定20秒回答問(wèn)題時(shí)間并響聲提示倒計(jì)時(shí),接著

23、用RET指令中斷子程序。</p><p>  圖2.4 答題子程序流程圖</p><p><b>  3 硬件電路圖</b></p><p>  3.1 系統(tǒng)電路原理</p><p>  圖3.1 硬件電路圖</p><p>  電路工作原理和過(guò)程說(shuō)明:上圖為仿真的總頁(yè)面圖,選用的單片機(jī)為AT89

24、C51,LED顯示器等。P1.0到P1.7為八個(gè)搶答開(kāi)關(guān),P3.2到P3.5為時(shí)間設(shè)計(jì)開(kāi)關(guān)。P3.0為開(kāi)始開(kāi)關(guān),P3.2為停止控制端。當(dāng)加載好程序后,按下開(kāi)始鍵就可以開(kāi)始搶答了。同時(shí)顯示器上會(huì)選手的號(hào)碼和回答的時(shí)間開(kāi)始倒計(jì)時(shí),搶答時(shí)間以及回答時(shí)間都可以重新設(shè)定。當(dāng)有犯規(guī)搶答時(shí)會(huì)發(fā)出報(bào)警聲,并顯示犯規(guī)選手的編號(hào)。</p><p>  3.2主要元器件選擇</p><p>  3.2.1 AT

25、89C51芯片</p><p>  AT89C51是美國(guó)ATMEL公司生產(chǎn)的低電壓、高性能CMOS8位單片機(jī)。AT89C51芯片不僅包括CPU、RAM、ROM、定時(shí)器、串行口、I/O接口等主要功能部件之外,還有驅(qū)動(dòng)器、鎖存器、指令寄存器、地址寄存器等輔助部分。CPU是單片機(jī)最核心的部分,是單片機(jī)的大腦和心臟,主要完成運(yùn)算和控制功能。RAM用于存放變化的數(shù)據(jù),其地址空間為256個(gè)RAM單元,但其中能作為數(shù)據(jù)存儲(chǔ)器供

26、用戶(hù)使用的僅有前面128個(gè),后128個(gè)被專(zhuān)用寄存器占用。ROM用于存放程序和固定不變的常數(shù)等等。通常采用只讀存儲(chǔ)器,且其有多種類(lèi)型,在89系列單片機(jī)中全部采用閃存、定時(shí)/計(jì)數(shù)器用于實(shí)現(xiàn)定時(shí)和計(jì)數(shù)功能。AT89C51共有四個(gè)8位的并行I/O口,每個(gè)口都有一個(gè)鎖存器和1個(gè)驅(qū)動(dòng)器組成。并行I/O口主要用于實(shí)現(xiàn)與外部設(shè)備中數(shù)據(jù)的并航輸入輸出,有些I/O口還有其他功能。AT89C51有1個(gè)UART全雙工異步串行口,用于實(shí)現(xiàn)單片機(jī)和其他具有相應(yīng)接口

27、的設(shè)備之間的異步串行數(shù)據(jù)傳送。AT89C51采用40Pin封裝的雙列直接DIP結(jié)構(gòu)。40個(gè)引腳中,正電源和地線(xiàn)兩根,外置石英振蕩器的時(shí)鐘線(xiàn)兩根,4組8位共32個(gè)I/O口,中斷口線(xiàn)與</p><p>  3.2.2 74HC244</p><p>  74HC244芯片內(nèi)部共有兩個(gè)四位三態(tài)緩沖器,使用時(shí)可分別以1C和2G作為它們的選通工作信號(hào)。當(dāng)1C和2G都為低電平時(shí),輸出端Y和輸入端A狀態(tài)

28、相同;當(dāng)1G和2G都為高電平時(shí),輸出呈高阻態(tài)。A0~A3為輸入端,Y1~Y4為輸出端。OE為使能端,低電平有效。</p><p>  3.2.3七段數(shù)碼管</p><p>  LED顯示器是由發(fā)光二極管顯示字段的顯示器件。由圖可知它由8個(gè)發(fā)光二極管構(gòu)成,通過(guò)不同的組合可用來(lái)顯示0~9、A~F及小數(shù)點(diǎn)“.”等字符。圖中DP表示小數(shù)點(diǎn),COM表示公共端。數(shù)碼管通常有共陰極和共陽(yáng)極兩種型號(hào)。共陰

29、數(shù)管的發(fā)光二極管陰極必須接低電平,當(dāng)某一發(fā)光二極管的陽(yáng)極連到高電平時(shí),此發(fā)光二極管點(diǎn)亮;共陽(yáng)極數(shù)碼管的發(fā)光二極管是陽(yáng)極并接到高電平,須點(diǎn)亮的發(fā)光二極管陰極接低電平即可。顯然,要顯示某字形就應(yīng)使此字形的相應(yīng)字段點(diǎn)亮,實(shí)際就是送一個(gè)用不同電平組合代表的數(shù)據(jù)到數(shù)碼管。</p><p>  圖3.2七段數(shù)碼管圖 </p><p><b>  4仿真圖 </b>&l

30、t;/p><p>  說(shuō)明:當(dāng)加載好程序后,按下仿真桌面的左下角的play鍵出現(xiàn)下圖4.1的現(xiàn)象</p><p>  圖4.1搶答器開(kāi)啟圖</p><p>  說(shuō)明:按下開(kāi)始鍵后出現(xiàn)下圖4.2的現(xiàn)象顯示為20s</p><p>  圖4.2搶答倒計(jì)時(shí)圖</p><p>  說(shuō)明:當(dāng)按下開(kāi)始鍵后,如圖4.3顯示6號(hào)正確搶答并

31、顯示6號(hào)的號(hào)碼以及回答的時(shí)間30s</p><p>  圖4.3答題倒計(jì)時(shí)圖</p><p>  說(shuō)明:四號(hào)選手犯規(guī)搶答顯示如下圖4.4,顯示出四號(hào)并發(fā)出聯(lián)續(xù)不斷的報(bào)警聲</p><p><b>  圖4.4犯規(guī)報(bào)警圖</b></p><p>  說(shuō)明:如下圖4.5在主持人有必要的時(shí)候可以調(diào)整搶答的時(shí)間,適應(yīng)各種環(huán)境。&

32、lt;/p><p>  圖4.5搶答時(shí)間調(diào)整圖</p><p>  說(shuō)明:如下圖4.6按下回答時(shí)間調(diào)整開(kāi)關(guān)時(shí)間從30S加到60S回答以調(diào)整</p><p>  圖4.6答題時(shí)間調(diào)整圖</p><p><b>  5課程設(shè)計(jì)心得</b></p><p>  這次課程設(shè)計(jì)又是一次歷練。從6月3號(hào)公布選題開(kāi)

33、始,一直掛著這件事。一直知道課程設(shè)計(jì)的制作過(guò)程不可能是輕松的,特別是在這段忙碌的時(shí)間段。過(guò)級(jí)、六門(mén)實(shí)驗(yàn)、考試復(fù)習(xí)再加上自己部門(mén)的工作……有時(shí)候,真的很低落。</p><p>  一直知道實(shí)踐是學(xué)習(xí)中很重要的一個(gè)環(huán)節(jié),這個(gè)在課程設(shè)計(jì)中最能體現(xiàn)。平時(shí)課堂上所學(xué)的理論知識(shí),雖然知道、了解了,心中卻總有疑云“這些東西除了做題學(xué)著有什么用?”還總感覺(jué)所學(xué)的各科知識(shí)無(wú)法連貫,平時(shí)上課最有印象的部分也是老師將理論與實(shí)際相聯(lián)系的

34、那一部分。課程設(shè)計(jì)就是將理論應(yīng)用于實(shí)際的過(guò)程。會(huì)累,但是很有收獲。磕磕碰碰,回顧發(fā)現(xiàn),課程設(shè)計(jì)需要恒心、耐心、細(xì)心,當(dāng)然合作與交流也是必需的。</p><p>  長(zhǎng)期的做一個(gè)事情,還得將所有的細(xì)節(jié)研透是很費(fèi)精力的,放棄的念頭總是往外冒躥。這時(shí)需要恒心,需要與同學(xué)交流,尋求幫助。感謝他們的鼓勵(lì)與幫助,由衷的珍惜雪中送炭的援助之手。耐心與鉆研之心也是必須的,理論學(xué)習(xí)難免有很多盲點(diǎn),平時(shí)不易察覺(jué),在課程設(shè)計(jì)的時(shí)候卻可

35、能是關(guān)節(jié),重翻課本與查資料又是一個(gè)收獲的過(guò)程,很享受那種恍然大悟的瞬間。另外,在此次課程設(shè)計(jì)中有一個(gè)后悔的地方,便是沒(méi)與老師交流。在定了初稿以后變放松完成別的工作去了,之前合作的伙伴卻一直與老師進(jìn)行著交流。光是論文就改了四次,到要交的時(shí)候變成了我論文的升級(jí)版。而我只得焦急匆忙修改,質(zhì)量當(dāng)然不能保證,將論文變成了虎頭蛇尾的工程。錯(cuò)過(guò)了許多學(xué)習(xí)進(jìn)步的機(jī)會(huì)。</p><p>  有勞動(dòng)就會(huì)有收獲,這次課程設(shè)計(jì)又是一個(gè)教

36、訓(xùn)吧,此中所學(xué)不僅能指導(dǎo)以后的課程設(shè)計(jì),對(duì)今后的學(xué)習(xí)與生活都有很大的影響。我將不再畏難,努力嘗試、鉆研,為守候收獲的瞬間。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]李朝青.單片機(jī)原理及接口技術(shù)(修訂版)。北京:北京航空航天大學(xué)出版社,1998</p><p>  [2]李廣弟.單片機(jī)基礎(chǔ).北京:北京航空航天大學(xué)出

37、版社,1992</p><p>  [3]何立民.單片機(jī)應(yīng)用技術(shù)大全.北京:北京航空航天大學(xué)出版社, 1994</p><p>  [4]張毅剛. 單片機(jī)原理及接口技術(shù).哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1990</p><p>  [5]譚浩強(qiáng).單片機(jī)課程設(shè)計(jì). 北京:清華大學(xué)出版社,1989</p><p><b>  致 謝<

38、;/b></p><p>  此次競(jìng)賽搶答器課程設(shè)計(jì)我學(xué)到了很多知識(shí),使我對(duì)單片機(jī)的認(rèn)識(shí)以及Proteus軟件的操作更加深刻!在此次課程設(shè)計(jì)中,我在老師的精心指導(dǎo)和嚴(yán)格要求下,鞏固了所學(xué)理論知識(shí),極大地提高了實(shí)踐動(dòng)手能力,同時(shí)了解了許多單片機(jī)的一些基本知識(shí),為我今后進(jìn)一步學(xué)習(xí)計(jì)算機(jī)方面的知識(shí)打下了堅(jiān)實(shí)的基礎(chǔ)。在此,我衷心感謝申老師指導(dǎo)和支持。由于本次課程設(shè)計(jì)花了比較多的時(shí)間去找資料和同學(xué)們交流,就是通過(guò)問(wèn)老

39、師和同學(xué)才把課程設(shè)計(jì)做出來(lái)的。</p><p>  所以這次課程設(shè)計(jì)能夠順利的完成,當(dāng)然有我個(gè)人的努力,但同時(shí)也離不開(kāi)指導(dǎo)老師的答疑解惑,同時(shí)也讓我明白了,別人幫助的重要性。有了大家的幫忙,才能事半功倍。而且在別人的身上可以學(xué)習(xí)到很多知識(shí)。在此我向老師表示感謝,謝謝老師的認(rèn)真耐心的指導(dǎo),讓我對(duì)單片機(jī)這門(mén)課程上,有了很多的收獲,把以前沒(méi)弄懂的部分,也弄懂了很多,謝謝老師!</p><p>&

40、lt;b>  附 錄</b></p><p><b>  程序設(shè)計(jì)源程序:</b></p><p>  ;===================================================================== </p><p>  ;======================== 八

41、路搶答器程序 =========================== </p><p>  ;======================== 吳 谞 ===========================</p><p>  ;======================== ====================

42、=======</p><p>  ;======================== 2011年6月20日 ===========================</p><p>  ;=====================================================================</p><p>  OK EQU

43、 20H ;搶答開(kāi)始標(biāo)志位</p><p>  RING EQU 22H ;響鈴標(biāo)志位 </p><p>  DATA0 EQU 36H ;搶答按鍵口數(shù)據(jù)存放地址 </p><p><b>  ORG 000

44、0H</b></p><p><b>  AJMP MAIN</b></p><p>  ORG 0003H </p><p>  AJMP INTT0</p><p><b>  ORG 000BH</b></p><p>  AJMP T0INT</p&

45、gt;<p><b>  ORG 001BH</b></p><p>  AJMP T1INT</p><p><b>  ORG 0040H</b></p><p>  MAIN: MOV R1,#20 ;初設(shè)搶答時(shí)間為20s</p><p&g

46、t;  MOV R2,#30 ;初設(shè)答題時(shí)間為30s</p><p>  MOV 38h,#60 ;啟用錦囊時(shí)間從60s倒計(jì)時(shí)</p><p>  MOV TMOD,#11H ;設(shè)置未定時(shí)器/模式1</p><p>  MOV TH0,#0F0

47、H</p><p>  MOV TL0,#0FFH ;越高發(fā)聲頻率越高,越尖</p><p>  MOV TH1,#3CH</p><p>  MOV TL1,#0B0H ;50ms為一次溢出中斷</p><p><b>  SETB EA</b>

48、;</p><p><b>  SETB ET0</b></p><p>  SETB ET1 ;允許二個(gè)中斷,T0/T1</p><p><b>  CLR OK</b></p><p><b>  CLR RING</b>&l

49、t;/p><p><b>  SETB TR1</b></p><p>  SETB TR0 ;一開(kāi)始就運(yùn)行定時(shí)器,以開(kāi)始顯示FFF.如果想重新計(jì)數(shù),重置TH1/TL1就可以了</p><p>  ;======================================================

50、=========== ===========================查詢(xún)程序================================ </p><p>  ;=================================================================</p><p>  START: MOV DATA0,#0FFH

51、 ;初始化 </p><p>  MOV R5,#0BH</p><p>  MOV R4,#0BH</p><p>  MOV R3,#0BH</p><p>  ACALL DISPLAY ;未開(kāi)始搶答時(shí)候顯示FFF </p><p&

52、gt;  JNB P3.3,SELSUB0</p><p>  JNB P3.4,TZ3 ;倒計(jì)時(shí)調(diào)整 </p><p>  JB P3.0,NEXT</p><p>  ACALL DELAY</p><p>  JB P3.0,NEXT ;去抖動(dòng),如果"開(kāi)始鍵"按下就向下執(zhí)行

53、,否者跳到非法搶答查詢(xún)</p><p>  SETB EX0 ;開(kāi)放INT0 </p><p>  ACALL BARK ;按鍵發(fā)聲</p><p><b>  MOV A,R1</b></p><p>  MOV R6,A

54、 ;送R1->R6,因?yàn)镽1中保存了搶答時(shí)間</p><p>  SETB OK ;搶答標(biāo)志位,在使用錦囊時(shí)用作判斷是搶答倒計(jì)時(shí)還是回答倒計(jì)時(shí)</p><p>  MOV R3,#0AH ;搶答只顯示計(jì)時(shí),滅號(hào)數(shù)</p><p>  AJMP COUNT ;進(jìn)入倒計(jì)時(shí)程

55、序,"查詢(xún)有效搶答的程序"在COUNT里面</p><p>  NEXT: JNB P1.0,FALSE</p><p>  JNB P1.1,FALSE2</p><p>  JNB P1.2,FALSE3</p><p>  JNB P1.3,FALSE4</p><p>  JNB P1

56、.4,FALSE5</p><p>  JNB P1.5,FALSE6</p><p>  JNB P1.6,TZ1</p><p>  JNB P1.7,TZ2</p><p>  AJMP START </p><p>  TZ1: AJMP FALSE7</p><p>  TZ2

57、: AJMP FALSE8</p><p>  TZ3: AJMP SELSUB1</p><p>  ;===================================================================== </p><p>  ;=========================非法搶答處理程序========

58、======================</p><p>  ;=====================================================================</p><p>  FALSE1: MOV R3,#01H</p><p>  AJMP ERROR</p><p>  FALSE2:

59、 MOV R3,#02H</p><p>  AJMP ERROR</p><p>  FALSE3: MOV R3,#03H</p><p>  AJMP ERROR</p><p>  FALSE4: MOV R3,#04H</p><p>  AJMP ERROR</p><p>  FA

60、LSE5: MOV R3,#05H</p><p>  AJMP ERROR</p><p>  FALSE6: MOV R3,#06H</p><p>  AJMP ERROR</p><p>  FALSE7: MOV R3,#07H</p><p>  AJMP ERROR</p><p>

61、;  FALSE8: MOV R3,#08H</p><p>  AJMP ERROR</p><p>  ;===================================================================== </p><p>  ;=======================SELSUB0(搶答時(shí)間R1調(diào)整程序)=====

62、================</p><p>  ;=====================================================================</p><p>  SELSUB0: MOV A,R1</p><p>  MOV B,#0AH</p><p><b>  DIV AB

63、</b></p><p><b>  MOV R5,A</b></p><p><b>  MOV R4,B</b></p><p>  MOV R3,#0AH</p><p>  ACALL DISPLAY ;先在兩個(gè)時(shí)間LED上顯示R1</p&

64、gt;<p>  JNB P3.5,INC0 ;P3.5為+1s鍵,如按下跳到INCO</p><p>  JNB P3.6,DEC0 ;P3.6為-1s鍵,如按下跳到DECO</p><p>  JNB P3.1,BACK0 ;P3.1為確定鍵,如按下跳到BACKO&l

65、t;/p><p>  AJMP SELSUB0</p><p>  INC0: MOV A,R1</p><p>  CJNE A,#63H,ADD0 ;如果不是99,R2加1,如果加到99,R1就置0,重新加起。</p><p>  MOV R1,#00H</p><p>  ACALL DELAY1<

66、;/p><p>  AJMP SELSUB0</p><p>  ADD0: INC R1</p><p>  ACALL DELAY1</p><p>  AJMP SELSUB0</p><p>  DEC0: MOV A,R1</p><p>  JZ SETR1

67、 ;如果R1為0, R1就置99,</p><p><b>  DEC R1</b></p><p>  ACALL DELAY1 </p><p>  AJMP SELSUB0</p><p>  SETR1: MOV R1,#63H</p><p>  ACALL

68、DELAY1</p><p>  AJMP SELSUB0</p><p>  BACK0: AJMP START</p><p>  ;===================================================================== </p><p>  ;====================

69、==SELSUB1(回答時(shí)間R2調(diào)整程序)=====================</p><p>  ;=====================================================================</p><p>  SELSUB1: MOV A,R2</p><p>  MOV B,#0AH</p>

70、<p><b>  DIV AB</b></p><p><b>  MOV R5,A</b></p><p><b>  MOV R4,B</b></p><p>  MOV R3,#0AH</p><p>  ACALL DISPLAY</p>&l

71、t;p>  JNB P3.5,INC1</p><p>  JNB P3.6,DEC1</p><p>  JNB P3.1,BACK1</p><p>  AJMP SELSUB1</p><p>  INC1: MOV A,R2</p><p>  CJNE A,#63H,ADD1</p>

72、<p>  MOV R2,#00H</p><p>  ACALL DELAY1</p><p>  AJMP SELSUB1</p><p>  ADD1: INC R2</p><p>  ACALL DELAY1</p><p>  AJMP SELSUB1</p><p>

73、  DEC1: MOV A,R2</p><p><b>  JZ SETR2</b></p><p><b>  DEC R2</b></p><p>  ACALL DELAY1</p><p>  AJMP SELSUB1</p><p>  SETR2: MOV

74、 R2,#63H</p><p>  ACALL DELAY1</p><p>  AJMP SELSUB1</p><p>  BACK1: AJMP START</p><p>  ;===================================================================== </p&g

75、t;<p>  ;=============================啟用錦囊程序==============================</p><p>  ;=====================================================================</p><p>  REPEAT:MOV A,38h

76、 ;使用錦囊時(shí)重新計(jì)時(shí)</p><p><b>  MOV R6,A</b></p><p>  CLR RING ;當(dāng)?shù)褂?jì)時(shí)進(jìn)入最后5秒的時(shí)候,啟用錦囊能消除蜂鳴</p><p>  ;==========================================================

77、=========== </p><p>  ;=============倒計(jì)時(shí)程序(搶答倒計(jì)時(shí)和回答倒計(jì)時(shí)都跳到改程序)==============</p><p>  ;====================================================================</p><p>  COUNT: MOV R0,#00

78、H ;重置定時(shí)器中斷次數(shù)</p><p>  MOV TH1,#3CH</p><p>  MOV TL1,#0B0H ;重置定時(shí)器</p><p>  RECOUNT:MOV A,R6 ;R6保存了倒計(jì)時(shí)的時(shí)間,之前先將搶答時(shí)間或回答時(shí)間給R6<

79、;/p><p>  MOV B,#0AH</p><p>  DIV AB ;除十分出個(gè)位/十位</p><p>  MOV 30H,A ;十位存于(30H)</p><p>  MOV 31H,B

80、 ;個(gè)位存于(31H)</p><p>  MOV R5,30H ;取十位</p><p>  MOV R4,31H ;取個(gè)位</p><p><b>  MOV A,R6</b></p><p>  SUBB A,#0

81、7H</p><p>  JNC LARGER ;大于5s跳到LARGER,小于等于5s會(huì)提醒</p><p><b>  MOV A,R0</b></p><p>  CJNE A,#0AH,FULL ;1s中0.5s向下運(yùn)行</p><p>

82、<b>  CLR RING </b></p><p>  AJMP CHECK</p><p>  FULL: CJNE A,#14H,CHECK ;下面是1s的情況,響并顯示號(hào)數(shù)并清R0,重新計(jì)</p><p><b>  SETB RING</b></p><p>&l

83、t;b>  MOV A,R6</b></p><p>  JZ QUIT ;計(jì)時(shí)完畢</p><p>  MOV R0,#00H</p><p>  DEC R6 ;一秒標(biāo)志減1</p><p>  AJMP CHE

84、CK</p><p>  LARGER: MOV A,R0</p><p>  CJNE A,#14H,CHECK ;如果1s向下運(yùn)行,否者跳到查"停/顯示"</p><p>  DEC R6 ;計(jì)時(shí)一秒R6自動(dòng)減1</p><p>  MO

85、V R0,#00H</p><p>  CHECK: JNB P3.1,QUIT ;如按下停止鍵退出</p><p>  JNB OK,CHECKK ;只在回答倒計(jì)時(shí)才有效 </p><p>  AJMP NEXTT</p><p>  CHECKK:JNB P3.0,REPEAT ;判斷

86、是否使用錦囊</p><p><b>  NEXTT:</b></p><p>  ACALL DISPLAY</p><p>  JB OK,ACCOUT;如果是搶答倒計(jì)時(shí),如是則查詢(xún)搶答,否者跳過(guò)查詢(xún)繼續(xù)倒數(shù)(這里起到鎖搶答作用)</p><p>  AJMP RECOUNT</p><p>

87、  ACCOUT:MOV A,DATA0 </p><p>  JNB ACC.0,TRUE1</p><p>  JNB ACC.1,TRUE2</p><p>  JNB ACC.2,TRUE3</p><p>  JNB ACC.3,TRUE4</p><p>  JNB ACC.4,TRUE5</p&

88、gt;<p>  JNB ACC.5,TRUE6</p><p>  JNB ACC.6,TZ7</p><p>  JNB ACC.7,TZ8</p><p>  AJMP RECOUNT</p><p>  TZ7: AJMP TRUE7</p><p>  TZ8: AJMP TRUE8</p

89、><p>  QUIT: CLR OK ;如果按下了"停止鍵"執(zhí)行的程序</p><p><b>  CLR RING</b></p><p>  AJMP START</p><p>  ;================================

90、===================================== </p><p>  ;==========================正常搶答處理程序=============================</p><p>  ;=====================================================================&l

91、t;/p><p>  TRUE1: ACALL BARK</p><p><b>  MOV A,R2</b></p><p>  MOV R6,A ;搶答時(shí)間R2送R6</p><p>  MOV R3,#01H</p><p>  CLR OK

92、 ;因?yàn)榇痤}的計(jì)時(shí)不再查詢(xún)搶答,所以就鎖了搶答</p><p>  AJMP COUNT</p><p>  TRUE2:ACALL BARK</p><p><b>  MOV A,R2</b></p><p><b>  MOV R6,A</b></p>

93、<p>  MOV R3,#02H</p><p><b>  CLR OK</b></p><p>  AJMP COUNT</p><p>  TRUE3:ACALL BARK</p><p><b>  MOV A,R2</b></p><p><b

94、>  MOV R6,A</b></p><p>  MOV R3,#03H</p><p><b>  CLR OK</b></p><p>  AJMP COUNT</p><p>  TRUE4:ACALL BARK</p><p><b>  MOV A,R2&l

95、t;/b></p><p><b>  MOV R6,A</b></p><p>  MOV R3,#04H</p><p><b>  CLR OK </b></p><p>  AJMP COUNT</p><p>  TRUE5: ACALL BARK <

96、;/p><p><b>  MOV A,R2</b></p><p><b>  MOV R6,A</b></p><p>  MOV R3,#05H</p><p><b>  CLR OK</b></p><p>  AJMP COUNT</p&g

97、t;<p>  TRUE6: ACALL BARK </p><p><b>  MOV A,R2</b></p><p><b>  MOV R6,A</b></p><p>  MOV R3,#06H</p><p><b>  CLR OK</b><

98、/p><p>  AJMP COUNT</p><p>  TRUE7: ACALL BARK </p><p><b>  MOV A,R2</b></p><p><b>  MOV R6,A</b></p><p>  MOV R3,#07H</p><

99、;p><b>  CLR OK</b></p><p>  AJMP COUNT</p><p>  TRUE8: ACALL BARK </p><p><b>  MOV A,R2</b></p><p><b>  MOV R6,A</b></p>

100、<p>  MOV R3,#08H</p><p><b>  CLR OK</b></p><p>  AJMP COUNT</p><p>  ;===================================================================== </p><p>  

101、;=========================犯規(guī)搶答程序=================================</p><p>  ;=====================================================================</p><p>  ERROR: MOV R0,#00H</p><p>

102、;  MOV TH1,#3CH</p><p>  MOV TL1,#0B0H</p><p>  MOV 34H,R3 ;犯規(guī)號(hào)數(shù)暫存與(34H)</p><p>  HERE: MOV A,R0</p><p>  CJNE A,#06H,FLASH ;0.3s向下運(yùn)行->滅并停響&

103、lt;/p><p><b>  CLR RING </b></p><p>  MOV R3,#0AH</p><p>  MOV R4,#0AH</p><p>  MOV R5,#0AH ;三燈全滅</p><p>  AJMP CHECK1 </p>

104、<p>  FLASH: CJNE A,#0CH,CHECK1 ;下面是0.8s的情況,響并顯示號(hào)數(shù)并清R0,重新計(jì)</p><p><b>  SETB RING</b></p><p>  MOV R0,#00H</p><p>  MOV R3,34H ;取回號(hào)數(shù)</p>

105、<p>  MOV R5,#0BH</p><p>  MOV R4,#0BH ;顯示FF和號(hào)數(shù)</p><p>  AJMP CHECK1</p><p>  CHECK1: JNB P3.1,QUIT1</p><p>  ACALL DISPLAY</p><p><

106、;b>  AJMP HERE</b></p><p>  QUIT1: CLR RING</p><p><b>  CLR OK</b></p><p>  AJMP START</p><p>  ;=================================================

107、==================== </p><p>  ;============================顯示程序==================================</p><p>  ;=====================================================================</p><

108、p>  DISPLAY:MOV DPTR,#DAT1 ;查表顯示程序,利用P0口做段選碼口輸出/P2低三位做位選碼輸出,</p><p><b>  MOV A,R3</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV P2,#0feH</p><p><

109、b>  MOV P0,A</b></p><p>  ACALL DELAY</p><p>  MOV DPTR,#DAT2</p><p><b>  MOV A,R5</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV P2,#0fdH&l

110、t;/p><p><b>  MOV P0,A</b></p><p>  ACALL DELAY</p><p><b>  MOV A,R4</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV P2,#0fbH</p><

111、p><b>  MOV P0,A</b></p><p>  ACALL DELAY</p><p><b>  RET</b></p><p>  DAT1:DB 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H </p><p>  ;&quo

112、t;滅","1","2","3","4","5","6","7","8","9","滅","F"</p><p>  DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7d

113、h,07h,7fh,6fh,00H,71H</p><p>  ;第一個(gè)為零,其他與上相同,因?yàn)槭蝗绻麨榱泔@示熄滅</p><p>  ;===================================================================== </p><p>  ;===============加減時(shí)間延時(shí)(起到不會(huì)按下就加N個(gè)

114、數(shù))======================</p><p>  ;=====================================================================</p><p>  DELAY1: MOV 35H,#08H</p><p>  LOOP0: ACALL DISPLAY</p><

115、p>  DJNZ 35H,LOOP0</p><p><b>  RET</b></p><p>  ;===================================================================== </p><p>  ;===================延時(shí)(顯示和去抖動(dòng)用到)=====

116、=========================</p><p>  ;===================================================================== </p><p>  DELAY: MOV 32H,#12H</p><p>  LOOP: MOV 33H,#0AFH</p>&l

117、t;p>  LOOP1: DJNZ 33H,LOOP1</p><p>  DJNZ 32H,LOOP</p><p><b>  RET</b></p><p>  ;===================================================================== </p>&l

118、t;p>  ;========================發(fā)聲程序=====================================</p><p>  ;=====================================================================</p><p>  BARK: SETB RING</p>

119、<p>  ACALL DELAY1</p><p>  ACALL DELAY1</p><p>  CLR RING ;按鍵發(fā)聲</p><p><b>  RET</b></p><p>  ;=======================================

120、============================== </p><p>  ;====================TO溢出中斷(響鈴程序)==============================</p><p>  ;===================================================================== </p>

121、;<p>  T0INT: MOV TH0,#0ECH</p><p>  MOV TL0,#0FFH</p><p>  JNB RING,OUT;</p><p>  CPL P3.7 ;RING標(biāo)志位為1時(shí)候P3.7口不斷取反使喇叭發(fā)出一定頻率的聲音</p><p>  OUT: RE

122、TI</p><p>  ;===================================================================== </p><p>  ;======================T1溢出中斷(計(jì)時(shí)程序)=============================</p><p>  ;=============

123、======================================================== </p><p>  T1INT: MOV TH1,#3CH</p><p>  MOV TL1,#0B0H</p><p><b>  INC R0</b></p><p><b>  RETI

溫馨提示

  • 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ù)僅提供信息存儲(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)論