畢業(yè)設(shè)計(論文)-基于單片機的八路智力搶答器設(shè)計1_第1頁
畢業(yè)設(shè)計(論文)-基于單片機的八路智力搶答器設(shè)計1_第2頁
畢業(yè)設(shè)計(論文)-基于單片機的八路智力搶答器設(shè)計1_第3頁
畢業(yè)設(shè)計(論文)-基于單片機的八路智力搶答器設(shè)計1_第4頁
畢業(yè)設(shè)計(論文)-基于單片機的八路智力搶答器設(shè)計1_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 畢 業(yè) 設(shè) 計論 文 設(shè) 計論文題 目:八 路 搶 答 器 系 別: 電 子 工 程 系 專 業(yè): 通 信 工 程 班 級: 05 通 信1班 姓 名: 學(xué) 號: 指導(dǎo)教師: 完成時間: 08 年 5 月 八路智力搶答器 摘要:八路搶答器,就是一種利用單片機功能而做出來的產(chǎn)品。本文介紹了單片機控制、數(shù)碼顯示八路搶答器的電路組成、設(shè)計思路及功能。該搶答器除具有根本的搶答功能外,還具有定時、計時和報警功能。 主持人通過時間預(yù)設(shè)開關(guān)預(yù)設(shè)供搶答的時間,系統(tǒng)將完成自動倒計時。假設(shè)在規(guī)定的時間內(nèi)有人搶答,那么計時將自動停止;假設(shè)在規(guī)定的時間內(nèi)無人搶答,那么系統(tǒng)中的蜂鳴器將發(fā)響,提示主持人本輪搶答無效,實

2、現(xiàn)報警功能。關(guān)鍵詞:搶答器; 定時 ;報警目錄摘要3關(guān)鍵字設(shè)計任務(wù)4444第二章 硬件電路設(shè)計及其功能介紹.66689C51 簡介.7 .12.1217第三章硬件電路圖簡介.1819.20第四章軟件設(shè)計 程序流程圖及程序21第五章調(diào)試35第六章總結(jié)37元件清單 39附錄參考文獻(xiàn).40引言引言 在知識比賽與娛樂競賽中,特別是做搶答題目的時候,在搶答過程中,為了知道哪一組或哪一位選手先答題,必須要設(shè)計一個系統(tǒng)來完成這個任務(wù)。如果在搶答中,靠視覺是很難判斷出哪組先答題。利用單片機系統(tǒng)來設(shè)計搶答器,使以上問題得以解決,即使兩組的搶答時間相差幾微秒,也可分辨出哪組優(yōu)先答題。本文主要介紹了單片機搶答器設(shè)計

3、及工作原理,以及它的實際用途。系統(tǒng)工作原理本系統(tǒng)采用8051單片機作為核心??刂葡到y(tǒng)的四個模塊分別為:存儲模塊、顯示模塊、語音模塊、搶答開關(guān)模塊。該搶答器系統(tǒng)通過開關(guān)電路四個按鍵輸入搶答信號;利用語音芯片ISD1420完成語音的錄放功能;利用存儲程序;利用一個數(shù)碼管來完成顯示功能。工作時,用按鍵通過開關(guān)電路輸入各路的搶答信號,經(jīng)單片機的處理,輸出控制信號,控制數(shù)碼管和語音芯片工作。在數(shù)碼管上顯示哪一組先答題,并通過語音系統(tǒng)讀出“第2組請答題,從而實現(xiàn)整個搶答過程?!耙环N基于單片機的搶答器與一般搶答器有四點不同:首先,搶答器反響異常靈敏。據(jù)了解,此搶答器的反響時間僅為幾十微秒,大大縮短了搶答器的

4、反響時間,使搶答器可以迅速高效的工作。其次,搶答質(zhì)量有保證。在搶答過程中,當(dāng)有人首先槍答成功的同時,會伴有響亮的聲音提示,并且,不同的搶答器會有不同的聲音,為比賽更加公正透明化提供了依據(jù)。第三,搶答器設(shè)置了復(fù)位鍵。搶答的活動常常會有幾個環(huán)節(jié)構(gòu)成,為了保證在每個環(huán)節(jié)中槍答器都可以快速高效的運作,使得搶答更加順利的進(jìn)行,此類搶答器設(shè)置了復(fù)位鍵。最后,搶答器利用單片機技術(shù)。利用這一技術(shù),保證了搶答器擁有上述功能的同時,提高了搶答器的壽命與質(zhì)量,讓搶答器可以更加實用的同時,提高了搶答器的技術(shù)含量。設(shè)計任務(wù)1 設(shè)計方案1確定單片機的型號 根據(jù)系統(tǒng)的功能與要求,選擇AT89C51比擬宜。2任務(wù):設(shè)計一個供

5、8名選手參加的八路掃描式搶答器。每組設(shè)計一個搶答按扭供參加者使用。電路具有第一搶答信號的鑒別和鎖定存儲功能。在主持人將系統(tǒng)復(fù)位并發(fā)出搶答指令后,如果參賽者在第一時間按搶答開關(guān),那么按鈕指示燈燈亮并用組別電路顯示出搶答者的組別。同時揚聲器發(fā)出聲音。電路應(yīng)具有自鎖功能,使其他組不起作用。2 系統(tǒng)的功能與要求 每名選手有一個搶答按扭,按扭的編號與選手的編號相對應(yīng),搶答器具有信號的鑒別和數(shù)據(jù)的鎖存、顯示的功能。搶答開始后,假設(shè)有選手搶答按扭,那么選手指示燈亮,并在數(shù)碼管上顯示相應(yīng)的編號,蜂鳴器發(fā)出音響提示。同時,電路應(yīng)具備自鎖功能,禁止其他選手再搶答,優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)清零為止。

6、搶答器具有定時搶答的功能。在主持人發(fā)出搶答指令后,定時器立即進(jìn)行減計時,并在顯示器上顯示,同時蜂鳴器發(fā)出短暫的聲響,聲響持續(xù)0.5s左右。選手在設(shè)定的時間內(nèi)進(jìn)行搶答,搶答有效,定時器停止工作,顯示器顯示選手編號,并保持到主持人將系統(tǒng)清零為止。3 八路搶答器的概述 本文介紹的八路數(shù)顯搶答器具有電路簡單、本錢較低、操作方便、靈敏可靠等優(yōu)點,經(jīng)使用效果良好,具有較高的推廣價值??捎糜?組或8組以下的智力競賽中。比賽前,將參賽組從0至7編號,每組發(fā)給對應(yīng)的的一個搶答按鈕。主持人按一下總控制啟動鍵后,搶答開始。此后,哪一組最先按下?lián)尨鸢粹o,數(shù)碼顯示器就立即顯示該組的組號并鎖定,同時蜂鳴器發(fā)出聲響。以后,

7、按下任何一路搶答按鈕均不起反響。只有主持人再次按動啟動鍵后,才能進(jìn)行下一次搶答該電路。 第二章 硬件電路設(shè)計及其功能介紹1 方案論證有許多比賽活動中,為了更準(zhǔn)確、公正、直觀地判斷出第一個搶答者,通常設(shè)置一個搶答器,通過數(shù)字顯示,燈光及音響等多種手段顯示第一搶答者,同時還可設(shè)置記分,犯規(guī)及獎懲記錄等多種功能,傳統(tǒng)的數(shù)電控制電路可靠性雖好,但不能顯示臺幾號給主持人帶來一定的麻煩,而模擬電子控制電路可靠性較差。 8路搶答器可以利用硬件電子元器件實現(xiàn),但電路結(jié)構(gòu)復(fù)雜,調(diào)試?yán)щy,涉及到的外圍元件多,不便于安裝,實驗給實際操作帶來很大的麻煩。 核芯是一片AT89C51,其片內(nèi)帶有的4KFLASHROM,1

8、28B的RAM,以及15根I/O口線能滿足設(shè)計要求。利用單片機可以用很少元件實現(xiàn)相同功能,而且單片機性能可操作性強??梢灾挥肞0口連接上拉電阻,完成驅(qū)動LED的功能,串接按鍵可以由選手自己控制搶答時機,利用P3口的RXD接AT89C51的A,B端,TXD接移位脈沖做時鐘信號。利用單片機程序判斷選手按鍵是否有效,但選手違規(guī)搶答,利用簡單程序顯示選手序號,啟動蜂鳴器并不間斷,告訴主持人有人違規(guī)操作,搶答無效。給出相應(yīng)的延時,選手按正常的操作搶答,軟件倒記時,利用AT89C51移位存放8段數(shù)碼管,實現(xiàn)倒記時顯示時間,到5秒相應(yīng)時間提醒選手時間快到了,要及時作答,并啟動蜂鳴器。2 方案比擬分析從第一個

9、方案我們可以看出,這個搶答器是由搶答電路,定時電路,報警電路,時序控制電路四個電路組成。擴展電路是由秒鐘脈沖信號產(chǎn)生電路,譯碼電路,顯示電路等,它的功能很齊全,設(shè)計的電路也很穩(wěn)定。但是它的造價卻很高。僅僅是集成電路它就用了八個,這跟我們當(dāng)初的設(shè)計理念是相沖突的。我們要的是功能齊全,但是造價比擬低的設(shè)計。所以我們放棄了這項設(shè)計。而本設(shè)計采用單片機,可靠性好,結(jié)構(gòu)簡單,具有顯示出臺號,分機得分顯示,倒計時功能以及獎懲情況。該模式充分表達(dá)了原有系統(tǒng)性能的改良,功能的擴展及與其它同類系統(tǒng)的不同之處,它包括硬件邏輯圖與軟件流程圖,比擬經(jīng)濟(jì)實用,所以我們選用單片機方案。3 AT89C51簡介 1 MSC-

10、51系列單片機簡介MSC-51系列單片機是英特爾公司于1980年起推出的第二代產(chǎn)品。與8084相比,8051的硬件結(jié)構(gòu)和指令系統(tǒng)均有很大改良,可支持更大的存貯空間,擴充了更多的硬件功能I/O功能,速度提高了2- 5倍,可完成邏輯運算等。近年來推出的一些增強的MSC-51系統(tǒng)單片機,片內(nèi)還集成了許多特殊功能單元,只需要加一些擴展電路及必要的通道接口即可構(gòu)成各種計算機應(yīng)用系統(tǒng)。因MSC-51系統(tǒng)單片機在智能儀表、智能接口、功能模塊等領(lǐng)域得到了非常廣泛的應(yīng)用。主要技術(shù)特性:適于控制應(yīng)用的8位CPU。擴展的邏輯處理能力。64K程序存貯器空間和64K數(shù)據(jù)存貯器空間。4KB片內(nèi)程序存貯器。128B片內(nèi)數(shù)據(jù)

11、RAM。32根雙向和可單獨尋址的輸入輸出線。2個16位定時/計數(shù)器,片內(nèi)時鐘發(fā)生器。全雙工異步發(fā)送/接收器。 6源5向量中斷結(jié)構(gòu),具有兩個優(yōu)先級。1128個字節(jié)的片內(nèi)數(shù)據(jù)存儲器RAM。其片外數(shù)據(jù)存儲器的尋址范圍為64KB用于 存放可讀寫的數(shù)據(jù),如運算的中間結(jié)果或最終結(jié)果等。 圖2-1 MSC-51系列24KB的片內(nèi)程序只讀存儲器ROM或EPROM。其片外可尋址范圍為64KB,主要用于存放已編程的程序,也可以存放一些原始數(shù)據(jù)和表格。318個特殊功能存放器SFR。它用于控制和管理片內(nèi)算術(shù)邏輯部件、并行I/O口、串行I/O口、定時器/計數(shù)器、中斷系統(tǒng)等功能模塊的工作。44個8位并行輸入輸出I/O接口

12、:P0口、P1口、P2口、P3口,用于并行輸入或輸出數(shù)據(jù)。51個串行I/O接口。他可使數(shù)據(jù)1位串行地在計算機與外設(shè)之間傳送,可用軟件設(shè)置4種工作方式,用于多處理機通信、I/O擴展或全雙工通用異步接受器。6個16位定時器/計數(shù)器。他可以設(shè)置為計數(shù)方式對外部事件進(jìn)行計數(shù),也可以設(shè)置為定時方式進(jìn)行定時。7具有5個中斷源,可編程為2個優(yōu)先級的中斷系統(tǒng)。他可以接受外部中斷申請、定時器/計數(shù)器中斷申請和串行口中斷申請。MCS-51系列單片機的40個引腳中有2 個專用于主電源的引腳,2個外接晶體的引腳,4個控制或與其它電源復(fù)用的引腳,以及32條輸入輸出I/O引腳。2 MCS-51單片機的指令程序時序是用定時

13、單位來描述的,MCS-51的時序單位有四個,它們分別是節(jié)拍、狀態(tài)、機器周期和指令周期,接下來我們分別加以說明。節(jié)拍與狀態(tài)我們把振蕩脈沖的周期定義為節(jié)拍為方便描述,用P表示,振蕩脈沖經(jīng)過兩個分頻后即得到整個單片機工作系統(tǒng)的時鐘信號,把時鐘信號的周期定義為狀態(tài)用S表示,這樣一個狀態(tài)就有兩個節(jié)拍,前半周期相應(yīng)的節(jié)拍我們定義為1P1,后半周期對應(yīng)的節(jié)拍定義為2P2。機器周期MCS-51有固定的機器周期,規(guī)定一個機器周期有6個狀態(tài),分別表示為S1-S6,而一個狀態(tài)包含兩個節(jié)拍,那么一個機器周期就有12個節(jié)拍,我們可以記著S1P1、S1P2、S6P1、S6P2,一個機器周期共包含12個振蕩脈沖,即機器周期

14、就是振蕩脈沖的12分頻,顯然如果使用6MHZ的時鐘頻率,一個機器周期就是2us,而如果使用12MHZ的時鐘頻率,一個機器周期就是us。c) 引腳說明(1)VCC:供電電壓。(2)GND:接地。(3)P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗時,P0輸出原碼,此時P0外部必須被拉高。 (4)P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳

15、寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 (5)P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能存放器的內(nèi)容。P2口

16、在FLASH編程和校驗時接收高八位地址信號和控制信號。 (6)P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流ILL這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示:口管腳 備選功能P3.0 RXD串行輸入口P3.1 TXD串行輸出口P3.2 /INT0外部中斷0P3.3 /INT1外部中斷1P3.4 T0記時器0外部輸入P3.5 T1記時器1外部輸入P3.6 /WR外部數(shù)據(jù)存儲器寫選通P3.7 /RD外部數(shù)據(jù)存儲器讀選通P3口

17、同時為閃爍編程和編程校驗接收一些控制信號。 (7)RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。 (8)ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。 (9)/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。 (10)/EA/VPP:當(dāng)/EA保持低電平時,那么在此期間外部程序存儲器0000H-FFFFH,不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲

18、器。在FLASH編程期間,此引腳也用于施加12V編程電源VPP。 (11)XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 (12)XTAL2:來自反向振蕩器的輸出。4 系統(tǒng)的硬件構(gòu)成及功能我們這里用的單片機是MCS51系列的AT89C51作為控制系統(tǒng),它外接了八個鍵盤,也就是它可以為八個人同時提供搶答。它的顯示系統(tǒng)為兩個數(shù)碼顯示管共陽級接法;另外還有一個揚聲器和八個發(fā)光二極管作為提示裝置。當(dāng)接通電源時,單片機將會對鍵盤進(jìn)行掃描,當(dāng)有按鍵按下時,單片機將會向數(shù)碼顯示關(guān)發(fā)出信號,于是數(shù)碼顯示管將顯示按下鍵盤所對應(yīng)的顯示號18。同時,單片機還會將揚聲器連接的接口設(shè)置為零低電平,而揚聲器的

19、另一端接的是+5v 電壓,從而將揚聲器接通并發(fā)出報警聲;單片機還會將按下的按鍵所對應(yīng)的發(fā)光二極管的接口至低電平,而發(fā)光二極管用的是共陽極接法,從而點亮發(fā)光二極管。5 搶答器的原理圖 CPU定時電路 聲響搶答按扭30秒控制手動復(fù)位數(shù)碼顯示臺位顯示 圖2-2 原理框圖1) 單元電路的設(shè)計及硬件介紹a) 搶答器電路如圖2.2所示電路,該電路完成兩個功能:一是分辨出選手按鍵的先后,并鎖存優(yōu)先搶答者的編號,同時譯碼顯示電路顯示編號;二是禁止其他選手按鍵,即使其他選手操作無效。搶答器具有鎖存、定時、顯示和報警功能。即當(dāng)搶答開始后,選手搶答按動按鈕,鎖存器鎖存相應(yīng)的選手編碼,同時用LED數(shù)碼管把選手的編碼顯

20、示出來,并且開始搶答時間的倒計時,同時用LED數(shù)碼管把選手的所剩搶答時間顯示出來。而在選手按鍵搶答以及搶答時間倒計時到時的時候都有報警以提醒主持人和選手。圖2-3 搶答器電路 b 時序控制電路時序控制電路是搶答器設(shè)計的關(guān)鍵,它要完成以下功能:A主持人將控制開關(guān)撥到“開始位置時,搶答電路和定時電路進(jìn)入正常搶答狀態(tài)。B當(dāng)參賽選手按動搶答鍵時,蜂鳴器聲響,搶答電路和定時電路停止工作。圖2-4 時序控制電路c 復(fù)位電路的設(shè)計復(fù)位是計算機的一個重要工作狀態(tài)。在單片機工作時,接電之前要復(fù)位,斷電后也要復(fù)位,發(fā)生故障也要復(fù)位,在搶答器中復(fù)位那么是為定時做鋪墊的,在搶答之前要復(fù)位,搶答完畢業(yè)要復(fù)位,按了復(fù)位鍵

21、之后,LED的顯示的是0。單片機的復(fù)位引腳RST全稱RESET出現(xiàn)2個機器周期以上的高電平時,單片機就執(zhí)行復(fù)位操作。整個復(fù)位電路包括芯片內(nèi)外二局部。外部電路產(chǎn)生的復(fù)位信號通過復(fù)位引腳RST進(jìn)入片內(nèi)的斯密特觸發(fā)器(抑制噪聲作用)再與片內(nèi)復(fù)位電路相連。復(fù)位電路每個機器周期對斯密特觸發(fā)器的輸出采樣一次。當(dāng)RST引腳端保持兩個機器周期(24個時鐘周期)以上的高電平時,AT89C51進(jìn)入復(fù)位狀態(tài).圖2-5 復(fù)位電路d) 定時電路的設(shè)計 1設(shè)置一個系統(tǒng)去除和搶答控制開關(guān)S即復(fù)位鍵,該開關(guān)由主持人控制。 2搶答器具有定時搶答功能,且一次搶答的時間由主持人設(shè)定如30秒。當(dāng)主持人啟動總控制啟動復(fù)位鍵后,定時器進(jìn)

22、行減計時,并在顯示器上顯示。3搶答器要具有數(shù)據(jù)鎖存和顯示的功能,參賽選手在設(shè)定的時間內(nèi)進(jìn)行搶答,搶答有效,定時器停止工作,并在LED數(shù)碼管上顯示,同時揚聲器發(fā)出報警聲響提示。顯示器上顯示選手的編號,同時其他人在按就無效,并一直保持到主持人將系統(tǒng)去除為止。4如果定時時間已到,無人搶答,本次搶答無效,系統(tǒng)報警并禁止搶答,定時顯示器上顯示0,并發(fā)出一段時間的報警聲。e) 報警電路設(shè)計 4.7K的電阻,一個三級管和一個蜂鳴器就組成了一個報警的電路,中選手開始搶答是蜂鳴器便提醒主持人是哪一個臺號,當(dāng)在設(shè)定的時間內(nèi)沒有人搶答,倒計時完畢后蜂鳴器也會發(fā)出短時間的叫聲。圖2中,接在三極管基極的4.7K電阻為限

23、流電阻,在此利用晶體管的高電流增益,以到達(dá)電路快速飽和的目的。圖2-6 報警電路6 LED數(shù)碼顯示器及驅(qū)動電路LED是發(fā)光二極管的縮寫,LED顯示器由假設(shè)干個發(fā)光二極管構(gòu)成的,當(dāng)發(fā)光二極管導(dǎo)通時,顯示對應(yīng)的字符。LED顯示器由7個發(fā)光二極管組成,也稱為7段顯示器,排列形狀如圖2-6所示。LED顯示器還有一個圓點型的發(fā)光二極管,用于顯示小數(shù)點,有時也稱為8段LED顯示器。LED顯示器的發(fā)光二極管有共陰極和共陽極兩種接法。共陰極接法,各發(fā)光二極管的陰極連在一起并接地,當(dāng)某一發(fā)光二極管的陽極輸入高電平時,那么該段發(fā)光;圖右為共陽極接法,各發(fā)光二極管的陽極連在一起并接+5V,當(dāng)陰極輸入低電平時,該段發(fā)

24、光二極管發(fā)光。 2-7七段LED顯示器圖 7 電源電路圖2-8 電源電路電源電路是由整流橋,7805穩(wěn)壓塊和前后濾波電容組成,整流器接收變壓器送來的低壓交流信號,經(jīng)整流后變成直流電,在經(jīng)過100F的電解電容濾波后,送到7805穩(wěn)壓塊后,輸出穩(wěn)定的正5V電壓,再次濾波后送到單片機內(nèi)第三章 硬件電路圖簡介3.1 原理圖 3.2 原理圖簡要說明基于這個設(shè)計的上述要求,根據(jù)功能要求,須設(shè)計有搶答電路、顯示電路、主持人控制電路、定時電路、報警電路,各個電路都有其自己的功能。通過復(fù)位鍵SW,電路進(jìn)入就緒狀態(tài),等待搶答。首先由主持人發(fā)布搶答命令,按下S9進(jìn)入倒計時狀態(tài)和搶答狀態(tài)。在電路中“S1S8”為八路搶

25、答器的8個按鍵,如果有人按下按鍵,如果有人按下按鍵,程序就會判斷是誰先按下的,然后從P2口輸出搶答者號碼的七段碼值,送到碼管顯示,并封鎖鍵盤,保持剛剛按鍵按下時刻的時間,禁止其他人按鍵的輸入,從而實現(xiàn)了搶答的功能。如果在設(shè)定的時間中沒有一個人按下按鍵,一到時間那么產(chǎn)生報警信號已超時,不可以搶答。當(dāng)要進(jìn)行下一次搶答時,由主持人先按一下復(fù)位按鍵SW,電路復(fù)位,進(jìn)入下一次搶答的就緒狀態(tài)。第四章 軟件設(shè)計 程序流程圖及程序4.1 系統(tǒng)主要程序設(shè)計系統(tǒng)主程序設(shè)計 為了能到達(dá)搶答的公平、公正、合理,應(yīng)該在主持人發(fā)布搶答命令之前設(shè)定搶答的時間。當(dāng)時間設(shè)好了之后,主持人發(fā)布搶答命令。按下S9按鍵后,程序開始翻

26、開,定時中斷開始倒計時,然后調(diào)用鍵盤掃描子程序,編寫鍵盤掃描程序。當(dāng)掃描到有人按下了鍵,馬上關(guān)閉T0,調(diào)用顯示程序,并封鎖鍵盤。2搶答器的源程序 P1.0-P1.7為八路搶答器的輸入端口,數(shù)碼管斷選P0口,位選P2口,蜂鳴器輸出為P3.6。程序框架圖:開始P1.5=0? N NP1.0=0? Y 調(diào)用響鈴,顯示程序調(diào)用響鈴,顯示程序 Y NP1.1=0? N P1.6=0? Y 調(diào)用響鈴,顯示程序 Y調(diào)用響鈴,顯示程序 NP1.7=0?P1.2=0? Y N Y 調(diào)用響鈴,顯示程序調(diào)用響鈴,顯示程序 NP1.3=0? Y結(jié)束調(diào)用響鈴,顯示程序 NP1.4=0? Y調(diào)用響鈴,顯示程序 完整的源程

27、序:BEEP BIT 00HORG 0000HLJMP MAIN ORG 0003H ;定義四個中斷的入口地址 LJMP STARTORG 000BHLJMP STARTORG 0013HLJMP START1ORG 001BHLJMP START3ORG 0030HMAIN : MOV P1, #0FFH ;P1口全置1 SETB P3.0 ;串行輸入端置1 SETB P3.1 ;串行輸出端置1 CLR BEEP ;清零 MOV R0, #40H ;個位送“0” MOV R1, #0FFH ;十位全滅 MOV IP, #01H MOV IE, #8FHLOOP: CLR P3.6 ;串行輸入

28、端清零 MOV P0, R1 LCALL DEL ;延時 MOV P0, R0 LCALL DEL ;延時 SETB P3.1 ;串行輸出端置1 SJMP LOOPDEL: MOV R4, #20H ;立即數(shù)送R4DLY1: MOV R3, #49 ;立即數(shù)送R4DLY2: DJNZ R3, DLY2 ;R31不為0,繼續(xù) DJNZ R4, DLY1 ;R41不為0,繼續(xù) RET ;返回START0: CLR EA MOV A, P1ML0: CJNE A, #0FEH, ML1 ;1”字符碼送P0口 MOV R0, 0F9H SJMP ML8ML1: CJNE A, #0FEH, ML2 ;

29、2字符碼送P0口 MOV R0, 0A4H SJMP ML8ML2: CJNE A, #0FBH, ML3 ;“3字符碼送P0口 MOV R0, 0B0H SJMP ML8ML3: CJNE A, #0F7H, ML4 ;“4字符碼送P0口 MOV R0, 99H SJMP ML8ML4: CJNE A, #0EFH, ML5 ;“5字符碼送P0口 MOV R0, 92H SJMP ML8ML5: CJNE A, #0DFH, ML6 ;“6字符碼送P0口 MOV R0, 82H SJMP ML8ML6: CJNE A, #0BFH, ML7 ;“7字符碼送P0口 MOV R0, F8H SJ

30、MP ML8ML7: CJNE A, #7FH, ML8 ;“8”字符碼送P0口 MOV R0, 80HML8: CLR P3.6 ;蜂鳴器響 RET ISTART1: CLR EA ;關(guān)中斷 MOV R7, #30 ;立即數(shù)30送R7 MOV R0, #0L0H MOV R1, #0B0H MOV TMOD, #42H MOV TH0, #80H ;80H送TH0 MOV TH1, #83H ;83H送TH1 MOV TL1, #00H SETB TR0 SETB TR1 SETB EA RET ISTART2: SETB P3.4 ;定時/計數(shù)器0外部信號輸入端置1 NOP NOP RET

31、 ISTRAT3: DEC R7 ;秒減1 LCALL DISP ;調(diào)顯示處理程序 MOV A, R7 ; (R7)送累加器A JZ ML10 CJNZ R7, #00H, ML10 MOV TH1, #83H ;將83H送到TH1 MOV TL1, #00H ;將00H送到TL1 SETB TR1 SETB TR0 SETB EA ;開中斷 LJMP ML11ML10: CLR P3.6 ;蜂鳴器響 CLR TR0 ;關(guān)閉定時器T0 CLR TR1 ;關(guān)閉定時器T0 CLR EAML11: RET IDISP MOV A, R7 MOV B, #2 MUL AB MOV B, A ADD A

32、, #09H MOVC A, A+PC MOV R1, A MOV A, B ADD A, #02H INC A MOVC A, A+PC MOV R0, A RETTAB: DB 0FFH, 40H, 0FFH, 79H, 0FFH, 24H DB 0FFH, 30H, 0FFH, 19H, 0FFH, 12H DB 0FFH, 02H, 0FFH, 78H, 0FFH, 00H DB 0FFH, 10H, 0F9H, 40H, 0F9H, 79H DB 0F9H, 24H, 0F9H, 30H, 0F9H, 19H DB 0F9H, 12H, 0F9H, 02H, 0F9H, 18H DB

33、 0F9H, 00H, 0F9H, 10H, 0A4H, 40H DB 0A4H, 79H, 0A4H, 24H, 0A4H, 30H DB 0A4H, 19H, 0A4H, 12H, 0A4H, 02H DB 0A4H, 78H, 0A4H, 00H, 0A4H, 10HEND. ;程序結(jié)束 開 始主程序框圖:P1 口 全 置1 關(guān) 閉 顯 示 個位送“0,十位全滅送FF 設(shè)定中斷方式,下 降沿有效 開 四 個 中 斷 關(guān) 提 示 音 十位位碼取低電平即0送到p3.0口 十位字符碼送P0口 延 時 十位位碼取高電平即1送P3.0口 個位位碼去低電平即0送P3.1口 個位字符碼送P0口 延 時

34、 個位位碼取高電平即1送P3.1口 主程序:BEEP BIT 00HORG 0000HLJMP MAIN ORG 0003H ;定義四個中斷的入口地址 LJMP STARTORG 000BHLJMP STARTORG 0013HLJMP START1ORG 001BHLJMP START3ORG 0030HMAIN : MOV P1, #0FFH ;P1口全置1 SETB P3.0 ;串行輸入端置1 SETB P3.1 ;串行輸出端置1 CLR BEEP ;清零 MOV R0, #40H ;個位送“0” MOV R1, #0FFH ;十位全滅 MOV IP, #01H MOV IE, #8FH

35、LOOP: CLR P3.6 ;串行輸入端清零 MOV P0, R1 LCALL DEL ;延時 MOV P0, R0 LCALL DEL ;延時 SETB P3.1 ;串行輸出端置1 SJMP LOOP延時程序:開始20H送R449送R3(R3)1=0?(R4)1=0?返回DEL: MOV R4, #20H ;立即數(shù)送R4DLY1: MOV R3, #49 ;立即數(shù)送R4DLY2: DJNZ R3, DLY2 ;R31不為0,繼續(xù) DJNZ R4, DLY1 ;R41不為0,繼續(xù) RET ;返回顯示處理程序: 開始表首址送到DPTR(R7)送A,立即數(shù)10送B秒數(shù)分解成十位,個位十位值=0?

36、0AH送A(不顯示)取十位字符碼送R1B 送 A取個位字符碼送R0返回DISP: MOV DPTR,#TAB MOV A,R7 ;(R7)送A,立即數(shù)10送B MOV B,#10 ;秒數(shù)分解成十位,個位 DIV AB CJNZ A,#00H,MLR MOV A,#0AHML12:MOV A,A+DPTR MOV R0,A ;取個位字符碼送R0 RETTAB:DB 00H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H,0FFHINT0中斷效勞程序:開始關(guān)中斷P1口數(shù)據(jù)送A(A)=FEH?1字符碼送P0口(A)=FDH?“2”字符碼送P0口(A)=FBH?“

37、3”字符碼送P0口P2.2口置0,亮燈(A)=F7H?“4”字符碼送P0口123P2.3置0,亮燈21(A)=EFH?3“5”字符碼送P0口P2.4置0,亮燈(A)=DFH?“6”字符碼送P0口P2.5置0,亮燈(A)=BFH?“7”字符碼送P0口P2.6置0,亮燈(A)=7FH?“8”字符碼送P0口P2.7置0,亮燈P3.6置0,報警返回 START0: CLR EA MOV A, P1ML0: CJNE A, #0FEH, ML1 ;1”字符碼送P0口 MOV R0, 0F9H SJMP ML8ML1: CJNE A, #0FEH, ML2 ;2字符碼送P0口 MOV R0, 0A4H S

38、JMP ML8ML2: CJNE A, #0FBH, ML3 ;“3字符碼送P0口 MOV R0, 0B0H SJMP ML8ML3: CJNE A, #0F7H, ML4 ;“4字符碼送P0口 MOV R0, 99H SJMP ML8ML4: CJNE A, #0EFH, ML5 ;“5字符碼送P0口 MOV R0, 92H SJMP ML8ML5: CJNE A, #0DFH, ML6 ;“6字符碼送P0口 MOV R0, 82H SJMP ML8ML6: CJNE A, #0BFH, ML7 ;“7字符碼送P0口 MOV R0, F8H SJMP ML8ML7: CJNE A, #7FH

39、, ML8 ;“8”字符碼送P0口 MOV R0, 80HML8: CLR P3.6 ;蜂鳴器響 RET IINT1中斷效勞程序:開始關(guān)中斷30送R7“0”字符碼送R0(個位)“3字符碼送R1(十位)T1計數(shù),T0定時80H送TH083H送TH100H送TL1開啟T0 T1,中斷返回START1: CLR EA ;關(guān)中斷 MOV R7, #30 ;立即數(shù)30送R7 MOV R0, #0L0H MOV R1, #0B0H MOV TMOD, #42H MOV TH0, #80H ;80H送TH0 MOV TH1, #83H ;83H送TH1 MOV TL1, #00H SETB TR0 SETB

40、 TR1 SETB EA RET IT0中斷效勞程序:開始空操作2次(延時)返回START2: SETB P3.4 ;定時/計數(shù)器0外部信號輸入端置1 NOP NOPT1中斷效勞程序:開始(R7)1送R7調(diào)顯示處理程序 R7送A(A)=0?83H送TH1,00H送TL1計數(shù)器重置初值啟動T1,T0關(guān)T1,T0,中斷返回STRAT3: DEC R7 ;秒減1 LCALL DISP ;調(diào)顯示處理程序 MOV A, R7 ; (R7)送累加器A JZ ML10 CJNZ R7, #00H, ML10 MOV TH1, #83H ;將83H送到TH1 MOV TL1, #00H ;將00H送到TL1

41、SETB TR1 SETB TR0 SETB EA ;開中斷 LJMP ML11ML10: CLR P3.6 ;蜂鳴器響 CLR TR0 ;關(guān)閉定時器T0 CLR TR1 ;關(guān)閉定時器T0 CLR EAML11: RET I第五章 調(diào)試接完畢后,在接通電源前,先用萬用表仔細(xì)檢查各管腳間是否有短路,虛焊、漏焊現(xiàn)象。檢查無誤后,先不要把各個集成塊插入芯片插座中,然后接通電源,用手觸摸橋碓,看看是否發(fā)熱,或者用萬用表測試其兩端的電壓是否在10V左右。如果發(fā)熱或者電壓為零那么說明電路中有短路的現(xiàn)象,要立刻切斷電源,再做仔細(xì)的檢查,改正后再進(jìn)行同樣的測試,直到正常為止。再測試各個芯片的電壓是否正常,正常

42、的話可以把各個集成塊芯片插入芯片插座中。 以上檢查無誤后,再進(jìn)行調(diào)試。首先按下復(fù)位鍵,用萬用表測試CD4013的第六引腳是否有高電平輸出,有的話說明電路連接正確;再測試第一腳是否是低電平,不是的話說明電路連接有問題,要切斷電源檢查。如果沒有的就再按下?lián)尨鸢粹oS1,用萬用表測試第一腳是不是有高電平,數(shù)碼管的顯示數(shù)字是否為“1。不是的話再仔細(xì)地檢查電路中的連接。是的話就依次按下S2、S3、S4,觀察數(shù)碼管的顯示是否有變化,沒有變化說明電路中的反相器CD4069起到了閉鎖的作用。再看看蜂鳴器是否響。再按下S2,進(jìn)行與S1相同的操作。同理按下S3、S4進(jìn)行檢查。軟件調(diào)試是通過對用戶程序的匯編、連接、執(zhí)行

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論