版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 競(jìng)賽搶答器課程設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告---智力競(jìng)賽搶答器
- eda課程設(shè)計(jì)---競(jìng)賽搶答器
- 智力競(jìng)賽搶答器課程設(shè)計(jì)報(bào)告
- 競(jìng)賽搶答器課程設(shè)計(jì)-微機(jī)接口課程設(shè)計(jì)報(bào)告
- 競(jìng)賽搶答器課程設(shè)計(jì)-微機(jī)接口課程設(shè)計(jì)報(bào)告
- eda課程設(shè)計(jì)---競(jìng)賽搶答器
- eda課程設(shè)計(jì)報(bào)告--智力競(jìng)賽搶答器
- 智力競(jìng)賽搶答器課程設(shè)計(jì)
- 課程設(shè)計(jì)---智力競(jìng)賽搶答器
- 智力競(jìng)賽搶答器課程設(shè)計(jì)
- 智力競(jìng)賽搶答器課程設(shè)計(jì)
- 微機(jī)原理課程設(shè)計(jì)報(bào)告---競(jìng)賽搶答器的設(shè)計(jì)
- 多路智能競(jìng)賽搶答器設(shè)計(jì)課程設(shè)計(jì)
- 課程設(shè)計(jì)---智力競(jìng)賽搶答器設(shè)計(jì)
- 微機(jī)原理課程設(shè)計(jì)---競(jìng)賽搶答器設(shè)計(jì)
- 電子課程設(shè)計(jì)——多路競(jìng)賽搶答器設(shè)計(jì)
- 微機(jī)課程設(shè)計(jì)報(bào)告搶答器
- 智力搶答器課程設(shè)計(jì)報(bào)告
- 數(shù)字式搶答器課程設(shè)計(jì)--數(shù)字式競(jìng)賽搶答器
評(píng)論
0/150
提交評(píng)論