畢業(yè)設(shè)計---多路智力競賽搶答器設(shè)計(含外文翻譯)_第1頁
已閱讀1頁,還剩61頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  。</b></p><p>  畢 業(yè) 設(shè) 計 任 務 書</p><p>  設(shè)計題目:多路智力競賽搶答器設(shè)計(軟件部分)</p><p>  專 業(yè): </p><p>  班級學號: </p><p>  姓 名:

2、 </p><p>  指導教師: </p><p>  設(shè)計期限: 年 月 日開始</p><p><b>  年 月日結(jié)束</b></p><p>  院 系: </p><p><b>  年 月 日</b></p>

3、;<p><b>  畢業(yè)設(shè)計的目的</b></p><p>  通過本次畢業(yè)設(shè)計,鍛煉學生綜合運用所學知識進行實踐的能力,提高學生自學知識、掌握技術(shù)的能力,提高學生實際動手能力,熟悉硬件電路設(shè)計的系統(tǒng)流程,掌握8路多功能搶答器的原理與實現(xiàn)方法。</p><p><b>  主要設(shè)計內(nèi)容</b></p><p&g

4、t;  本系統(tǒng)采用模塊化設(shè)計智能搶答器,在搶答比賽中廣泛應用,各組分別有一個搶答按鈕。主持人有開始和顯示、復位鍵。在后臺主持人可以修改,搶答時間和選手回答問題的時間設(shè)置,原始狀態(tài)下?lián)尨饡r間為30s,回答問題時間為30s。通過加鍵和減鍵修改上述時間,改完后結(jié)束鍵確定。新時間開始有效,主持人按鍵開始后,選手開始搶答為有效,數(shù)碼顯示屏顯示搶答時間倒計時和選手號,并且發(fā)生提示。主持人可按鍵結(jié)束,新一輪搶答開始。</p><p

5、><b>  重點研究問題</b></p><p>  1、如何實現(xiàn)對搶答器的時間和得分控制;</p><p>  2、搶答器功能的完備。 </p><p><b>  其他要求</b></p><p>  1焊接時注意

6、不要出現(xiàn)不良焊接,以免造成短路。</p><p>  2盡量做到簡化電路板,使其美觀。</p><p><b>  設(shè)計成果要求</b></p><p>  1、設(shè)計出8路多功能搶答器,使其能夠正常顯示時間以及搶答號碼。</p><p>  2、根據(jù)電路圖焊接電路硬件并調(diào)試。</p><p>  

7、3、撰寫8路多功能搶答器設(shè)計的報告。</p><p><b>  其它</b></p><p>  1、收集資料,設(shè)計整個系統(tǒng)硬件原理框圖和軟件流程圖。</p><p>  2、硬件各個模塊功能分析。</p><p>  3、硬件子單元模塊設(shè)計。

8、 </p><p>  4、總體測試、調(diào)試等。 </p><p>  5、整理文檔及外文翻譯資料、編寫畢業(yè)設(shè)計說明書。</p><p>  華北水利水電學院本科生畢業(yè)設(shè)計開題報告</p><p>  2011 年 3 月 21 日 &l

9、t;/p><p><b>  摘 要</b></p><p>  搶答器作為一種工具,已廣泛應用于各種智力和知識競賽場合。但搶答器的使用頻率較低,且有的要么制作復雜,要么可靠性低。作為一個單位,如果專門購一臺搶答器雖然在經(jīng)濟上可以承受,但每年使用的次數(shù)極少,往往因長期存放使(電子器件的)搶答器損壞,再購置的麻煩和及時性就會影響活動的開展,因此設(shè)計了本搶答器。<

10、/p><p>  本設(shè)計是以八路搶答為基本理念??紤]到依需設(shè)定限時回答的功能,利用STC89C51單片機及外圍接口實現(xiàn)的搶答系統(tǒng),利用單片機的定時器/計數(shù)器定時和記數(shù)的原理,將軟、硬件有機地結(jié)合起來,使得系統(tǒng)能夠正確地進行計時,同時使數(shù)碼管能夠正確地顯示時間。用開關(guān)做鍵盤輸出,蜂鳴器發(fā)生提示。同時系統(tǒng)能夠?qū)崿F(xiàn):在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效;搶答限定時間和回答問題的時間可以自己設(shè)定;可以顯

11、示是哪位選手有效搶答和無效搶答;搶答時間和回答問題時間倒記時顯示,滿時后系統(tǒng)計時自動復位及主控強制復位;按鍵鎖定,在有效狀態(tài)下,按鍵無效非法;增加搶答器計分功能,回答正確可以給予加分并且可以顯示選手的得分情況。</p><p>  關(guān)鍵詞: 搶答器;STC89C51;多路</p><p><b>  ABSTRACT</b></p><p>

12、  Responder as a tool has been widely used in various occasions intelligence and knowledge competitions.But Responder frequency of use is low, and some production is complex low reliability.As a unit, if the Responder s

13、pecifically purchased a economically affordable though, but use few number of times each year, often due to long-term storage (electronic devices) Responder damage, then the trouble and time of the acquisition will affec

14、t theactivities carried out, so the design of this Responder.</p><p>  system automatically reset the time and the master force reduction; key lock, in the effective state, the button is not illegal; increa

15、se Responder scoring function, </p><p>  to give extra points for correct answers andplayers can show the scores.</p><p>  Key words: Responder; STC89C51; Multiple</p><p><b>

16、;  目 錄</b></p><p><b>  摘 要I</b></p><p>  ABSTRACTII</p><p><b>  第一章 緒論1</b></p><p>  1.1課題研究的相關(guān)背景1</p><p>  1.2選題

17、的目的和意義1</p><p>  1.3課題研究的內(nèi)容1</p><p>  1.4國內(nèi)外研究現(xiàn)狀2</p><p>  1.5搶答器目前存在的主要問題2</p><p>  第二章 搶答器的系統(tǒng)概括3</p><p>  2.1系統(tǒng)的主要功能3</p><p>  2.2系

18、統(tǒng)需求分析4</p><p>  2.3搶答器的工作流程4</p><p>  2.4搶答器的工作過程5</p><p>  2.5搶答器的優(yōu)點及組成6</p><p>  第三章 軟件設(shè)計7</p><p>  3.1主程序系統(tǒng)結(jié)構(gòu)7</p><p>  3.2軟件任務分析7&l

19、t;/p><p>  3.3單片機的C程序設(shè)計簡介8</p><p>  3.4主程序設(shè)計9</p><p>  3.4.1定時器初始化函數(shù):10</p><p>  3.4.2 倒計時函數(shù):10</p><p>  3.4.3 數(shù)碼管顯示函數(shù):11</p><p>  3.4.4采集選

20、手并顯示號碼:12</p><p>  3.4.5設(shè)定時間并顯示:13</p><p>  3.4.6選手搶答成功并回答正確予以加分并且顯示得分:15</p><p>  3.5本章小結(jié)16</p><p>  第四章 Proteus仿真系列組圖17</p><p><b>  4.1復位圖17&

21、lt;/b></p><p>  4.2設(shè)置計時時間17</p><p>  4.3搶答成功并顯示倒計時18</p><p>  4.4答題正確并顯示其得分18</p><p>  4.5本章小結(jié)18</p><p>  第五章總結(jié)與展望19</p><p><b>

22、  5.1總結(jié)19</b></p><p><b>  5.2展望20</b></p><p>  參 考 文 獻21</p><p><b>  致 謝22</b></p><p>  附錄一 總體電路圖23</p><p>  附錄二 實物圖24&

23、lt;/p><p>  附錄三 軟件代碼25</p><p>  附錄四 外文及翻譯43</p><p><b>  英文資料43</b></p><p><b>  中文翻譯48</b></p><p><b>  第一章 緒論</b></p

24、><p><b>  課題研究的相關(guān)背景</b></p><p>  搶答器是一種應用非常廣泛的設(shè)備,在各種競賽、搶答場合中,它能迅速、客觀地分辨出最先獲得發(fā)言權(quán)的選手。早期的搶答器只由幾個三極管、可控硅、發(fā)光管等組成,能通過發(fā)光管的指示辯認出選手號碼。現(xiàn)在大多數(shù)搶答器均使用單片機(如MCS-51型)和數(shù)字集成電路,并增加了許多新功能,如選手號碼顯示、搶按前或搶按后的計時

25、、選手得分顯示等功能。</p><p>  本課題利用STC89C51單片機及外圍接口實現(xiàn)的搶答系統(tǒng),利用單片機的定時器/計數(shù)器定時和記數(shù)的原理,將軟、硬件有機地結(jié)合起來,使得系統(tǒng)能夠正確地進行計時,同時使數(shù)碼管能夠正確地顯示時間和選手號碼。用開關(guān)做鍵盤輸出,揚聲器發(fā)生提示。系統(tǒng)達到要求:在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效;搶答限定時間和回答問題的時間可以自己設(shè)定;可以顯示是哪位選手有效搶

26、答和無效搶答;搶答時間和回答問題時間倒記時顯示,時間完后系統(tǒng)自動復位;按鍵鎖定,在有效狀態(tài)下,按鍵無效非法;增加搶答器計分功能,并且可以顯示選手的得分情況。</p><p><b>  選題的目的和意義</b></p><p>  通過這次設(shè)計,掌握51單片機的原理,了解簡單多功能搶答器組成原理,初步掌握多功能搶答器的調(diào)整及測試方法,提高動手能力和排除故障的能力。同時

27、通過本課題設(shè)計與裝配、調(diào)試,提高自己的動手能力,鞏固已學的理論知識,建立單片機理論和實踐的結(jié)合,了解多功能搶答器各單元電路之間的關(guān)系及相互影響,從而能正確設(shè)計、計算定時計數(shù)的各個單元電路。初步掌握多功能搶答器的調(diào)整及測試方法。提高動手能力和排除故障的能力。</p><p><b>  課題研究的內(nèi)容</b></p><p>  本系統(tǒng)采用模塊化設(shè)計智能搶答器,在搶答比

28、賽中廣泛應用,各組分別有一個搶答按鈕。主持人有開始和顯示、復位鍵。在后臺主持人可以修改,搶答時間和選手回答問題的時間設(shè)置,原始狀態(tài)下?lián)尨饡r間為30s,回答問題時間為30s。通過加鍵和減鍵修改上述時間,改完后結(jié)束鍵確定。新時間開始有效,主持人按鍵開始后,選手開始搶答為有效,數(shù)碼顯示屏顯示搶答時間倒計時和選手號,并且發(fā)生提示。主持人可按鍵結(jié)束,新一輪搶答開始。</p><p>  通過研究并在設(shè)計驗證后發(fā)現(xiàn),采用單片

29、機技術(shù)設(shè)計的搶答器與目前常用的搶答器相比,首先,電路連接簡單,因為大多數(shù)功能單元都通過程序設(shè)計在單片機內(nèi)部,第二,工作性能可靠,抗干擾能力優(yōu)于目前搶答器。所以本研究是一個實用的工程設(shè)計,具有創(chuàng)新性。</p><p><b>  國內(nèi)外研究現(xiàn)狀</b></p><p>  搶答器作為一種電子產(chǎn)品,早已廣泛應用于各種智力和知識競賽場合,但目前所使用的搶答器有的電路較復雜不

30、便于制作,可靠性低,實現(xiàn)起來很困難;有的則用一些專用的集成塊,而專用集成塊的購買又很困難。為適應高校等多代表隊單位活動的需要而設(shè)計一個多功能搶答器,這種搶答器具有電路簡單,元件普通,易于購買等優(yōu)點,很好地解決了制作者制作困難和難于購買的問題。在國內(nèi)外已經(jīng)開始了普遍的應用。</p><p>  搶答器目前存在的主要問題</p><p>  目前多數(shù)搶答器存在3個不足之處:第一,現(xiàn)場線路連接復

31、雜。因為每個選手位于搶答現(xiàn)場的不同位置,每個選手與控制臺之間要有長長的連接線。選手越多,連接線就越多、越亂,這些連接線不僅影響了現(xiàn)場的美觀,而且降低了搶答器的可靠性,增加了安裝的難度,甚至影響了現(xiàn)場人員的走動。第二,電路復雜。因為單片機只完成號碼處理、計時、數(shù)據(jù)運算等功能,其它功能如選手號碼的識別、譯碼、計分顯示等仍只能通過數(shù)字集成電路完成。采用單片機掃描技術(shù)識別選手搶按號碼時,電路的延遲時間較大。第三,選手搶按成功,但出現(xiàn)沒有搶答被記

32、錄的問題。</p><p>  第二章 搶答器的系統(tǒng)概括</p><p>  2.1系統(tǒng)的主要功能 </p><p>  本系統(tǒng)是借用單片機采用模塊化設(shè)計的八路多功能搶答器,包括8路搶答按紐、計時顯示、提示功能等(根據(jù)需要可另設(shè)或多設(shè)相關(guān)功能)、開始與結(jié)束控制按鈕、時限設(shè)定、各種相關(guān)顯示調(diào)控功

33、能等(根據(jù)需要也可另設(shè)或多設(shè)相關(guān)功能)。</p><p>  參賽者系統(tǒng),除享有搶答按紐的權(quán)利功能外,還有人性化的提示功能和時間提示功能,也可設(shè)定由主控控制在參賽者終端表現(xiàn)的趣味性功能等;主控系統(tǒng)的控制按鈕做開始與結(jié)束控制,能夠控制倒計時的時間,可以根據(jù)參賽者回答問題的正確與否給與是否加分的操作,能夠按鍵顯示參賽者的得分情況。 </p><p>  系統(tǒng)的主要功能模塊方框圖如圖2-1所示。

34、</p><p>  圖2-1 系統(tǒng)主要功能模塊</p><p>  本系統(tǒng)采用模塊化設(shè)計的八路搶答器,在搶答比賽中廣泛應用,各組分別有一個搶答按鈕。一共有8個按鍵輸入,分別對應8路選手的搶答按鍵。</p><p>  主持人有開始和顯示鍵。在后臺主持人可以修改,搶答時間和選手回答問題的時間設(shè)置,原始狀態(tài)下?lián)尨饡r間為30s,回答問題時間為30s。通過加鍵和減鍵修改上

35、述時間。新時間開始有效,主持人按鍵開始后,選手開始搶答為有效,數(shù)碼顯示屏顯示搶答時間倒計時和選手號,并且發(fā)出聲音提示。參賽者搶答后,主持人可根據(jù)其回答的是否正確來給與其是否加分,并能夠通過顯示按鈕將其顯示出來。</p><p>  單片機是整個搶答器的核心,內(nèi)部電路設(shè)計用C語言編寫。它完成了時間參數(shù)的設(shè)定,搶按號碼的譯碼,保存;顯示;輸出,搶按及答題倒計時功能等。</p><p><

36、b>  2.2系統(tǒng)需求分析</b></p><p>  1,可實現(xiàn)8路選手的搶答</p><p>  2,答題時間可由主持人自由設(shè)置</p><p>  3,答題時主持人可同時設(shè)置下一題的答題時間</p><p>  4,搶答信號由主持人發(fā)出,計時期間蜂鳴器發(fā)出聲響</p><p>  5,倒計時期間

37、有 10秒和 5秒兩種提示報警聲音</p><p>  6,各選手一旦搶答成功,可以手動給其計分,并可選擇顯示</p><p>  7,答題一旦開始,主持人能強制轉(zhuǎn)到計時界面。</p><p>  2.3搶答器的工作流程</p><p>  搶答器的基本工作原理:在搶答競賽或呼叫時,有多個信號同時或不同時送入主電路中,搶答器內(nèi)部的寄存器工作,

38、并識別、記錄第一個號碼,同時內(nèi)部的定時器開始工作,記錄有關(guān)時間并產(chǎn)生超時信號。在整個搶答器工作過程中,顯示電路、聲音電路等還要根據(jù)現(xiàn)場的實際情況向外電路輸出相應信號。搶答器的工作流程分為:系統(tǒng)復位、時間設(shè)定,計分設(shè)置等幾部分,如圖2-2所示,下面分別予以介紹。</p><p>  圖2-2 搶答器工作流程</p><p>  2.4搶答器的工作過程</p><p>

39、  1、如果想調(diào)節(jié)搶答時間或答題時間,按“加一”鍵或“減一”鍵進入調(diào)節(jié)狀態(tài),此時會顯示現(xiàn)在設(shè)定的搶答時間或回答時間值,如想加十秒按一下"加"鍵,如果想減十秒按一下“減”鍵,時間LED上會顯示改變后的時間。</p><p>  2、主持人按"搶答開始"鍵,會有提示音,并立刻進入搶答倒計時(預設(shè)30s搶答時間),如有選手搶答,會有提示音,并會顯示其號數(shù)并立刻進入回答倒計時(預設(shè)

40、30s回答時間),不進行搶答查詢,所以只有第一個按搶答的選手有效。倒數(shù)時間到會每秒響一下提示音。</p><p>  3、如倒計時期間,參賽者按下其當前按鈕,顯示器將會顯示其對應號碼,并進入其回答倒計時時間。</p><p>  參賽者回答完畢后,主持人可根據(jù)其回答的是否正確來給與是否予以是否加分。 </p><p>  總而言之,本課題利用STC89C51單片機及

41、外圍接口實現(xiàn)的搶答系統(tǒng)設(shè)計了搶答器,該搶答器增加了新功能、提高了系統(tǒng)的可靠性、簡化了電路結(jié)構(gòu)、節(jié)約了成本,是一個實用的工程設(shè)計。</p><p>  2.5搶答器的優(yōu)點及組成</p><p>  在知識比賽中,特別是做搶答題目的時候,在搶答過程中,為了知道哪一組或哪一位選手先答題,必須要設(shè)計一個系統(tǒng)來完成這個任務。如果在搶答中,靠視覺是很難判斷出哪組先答題。利用單片機系統(tǒng)來設(shè)計搶答器,使以

42、上問題得以解決,即使兩組的搶答時間相差幾微秒,也可分辨出哪組優(yōu)先答題。本文主要介紹了單片機搶答器設(shè)計及工作原理,以及它的實際用途。系統(tǒng)工作原理本系統(tǒng)采用STC89C51單片機作為核心??刂葡到y(tǒng)的四個模塊分別為:存儲模塊、顯示模塊、聲音模塊、搶答開關(guān)模塊。該搶答器系統(tǒng)通過八個按鍵輸入搶答信號;利用存儲程序來完成軟件的設(shè)計;利用2個4位七段共陰數(shù)碼管來完成顯示功能。工作時,用按鍵通過開關(guān)電路輸入各路的搶答信號,經(jīng)單片機的處理,輸出控制信號,

43、控制8位七段共陰數(shù)碼管和喇叭工作。在數(shù)碼管上顯示哪一組先答題,從而實現(xiàn)整個搶答過程。</p><p><b>  第三章 軟件設(shè)計</b></p><p>  3.1主程序系統(tǒng)結(jié)構(gòu)</p><p>  主程序主要包括以下幾個模塊:系統(tǒng)初始化模塊,按鍵模塊,顯示模塊。其中按鍵模塊又包括調(diào)整時間模塊,正確搶答模塊,回答計分模塊。</p>

44、<p>  初始化模塊就是將系統(tǒng)的所有數(shù)據(jù)先初始化,然后等待掃描或者中斷;按鍵模塊就是通過系統(tǒng)的鍵盤掃描來判斷具體是哪個模塊得到了運行;而顯示模塊就是根據(jù)不同的情況分別顯示出來。系統(tǒng)結(jié)構(gòu)圖如下: </p><p>  圖3-1軟件系統(tǒng)結(jié)構(gòu)圖</p><p><b>  3.2軟件任務分析</b></p><p>  軟件任務

45、分析環(huán)節(jié)是為軟件設(shè)計做一個總體規(guī)劃。從軟件的功能來看可分為兩大類:一類是執(zhí)行軟件,它能完成各種實質(zhì)性的功能,如測量,計算,顯示,打印,輸出控制和通信等,另一類是監(jiān)控軟件,它是專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系,在系統(tǒng)軟件中充當組織調(diào)度角色的軟件。這兩類軟件的設(shè)計方法各有特色,執(zhí)行軟件的設(shè)計偏重算法效率,與硬件關(guān)系密切,千變?nèi)f化。</p><p>  軟件任務分析時,應將各執(zhí)行模塊一一列出,并為每一個執(zhí)行模塊進行

46、功能定義和接口定義(輸入輸出定義)。在各執(zhí)行模塊進行定義時,將要牽扯到的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類型問題也一并規(guī)劃好。</p><p>  各執(zhí)行模塊規(guī)劃好后,就可以監(jiān)控程序了。首先根據(jù)系統(tǒng)功能和鍵盤設(shè)置選擇一種最適合的監(jiān)控程序結(jié)構(gòu)。相對來講,執(zhí)行模塊任務明確單純,比較容易編程,而監(jiān)控程序較易出問題。這如同當一名操作工人比較容易,而當一個廠長就比較難了。</p><p>  軟件任務分析的另一個內(nèi)容

47、是如何安排監(jiān)控軟件和各執(zhí)行模塊。整個系統(tǒng)軟件可分為后臺程序(背景程序)和前臺程序。后臺程序指主程序及其調(diào)用的子程序,這類程序?qū)崟r性要求不是太高,延誤幾十ms甚至幾百ms也沒關(guān)系,故通常將監(jiān)控程序(鍵盤解釋程序),顯示程序和打印程序等與操作者打交道的程序放在后臺程序中執(zhí)行;而前臺程序安排一些實時性要求較高的內(nèi)容,如定時系統(tǒng)和外部中斷(如掉電中斷)。也可以將全部程序均安排在前臺,后臺程序為“使系統(tǒng)進入睡眠狀態(tài)”,以利于系統(tǒng)節(jié)電和抗干擾。&

48、lt;/p><p>  3.3單片機的C程序設(shè)計簡介</p><p>  C語言語法簡潔,緊湊;使用方便,靈活;具有豐富的運算符和數(shù)據(jù)結(jié)構(gòu);并且能夠通過函數(shù)實現(xiàn)程序的模塊化。它既具有高級語言的一切功能,也具有低級語言的一些功能。因此它既可以用來編寫系統(tǒng)軟件,也可以用來編寫應用程序。它是當前國際上廣泛流行的一種計算機高級語言。</p><p>  單片機的軟件設(shè)計也可通過

49、C來實現(xiàn),但需注意以下幾點:</p><p>  1.頭文件必須的特殊包含“regx51.h”,此頭文件定義了所有8051功能寄存器及中斷。若不包含此頭文件,則程序編譯時出錯,編譯器不識別這些特殊功能寄存器名。</p><p>  2.為了和硬件相聯(lián)系,常定義些特殊位,可訪問位尋址對象。例:</p><p>  sbit itemer7=P1^6。</p>

50、;<p><b>  3.4主程序設(shè)計</b></p><p>  在本設(shè)計中包括了以下主要的程序:主程序,定時器初始化程序,數(shù)碼管顯示程序,采集選手程序,搶答時間調(diào)整程序,回答時間調(diào)整程序,倒計時程序,回答正確給與加分程序,發(fā)聲程序。主流程圖如3-2所示:</p><p>  圖3-2 程序設(shè)計流程圖</p><p>  如圖所

51、示,當系統(tǒng)初始化完成之后,數(shù)碼管會顯示出其初始化的情況,當“開始”鍵按下之后,系統(tǒng)將會對8個搶答按鈕進行掃描,如果有選手搶答成功的話,數(shù)碼管將會顯示其對應號碼,并且開始回答倒計時,當選手回答完畢后,主持人可根據(jù)選手的答題情況,判斷是否按下“加分”鍵來給予加分。在開始前,主持人可以通過“加1”和“減1”鍵來調(diào)整選手的搶答和回答時間,并且可以通過“顯示”鍵來直接顯示出調(diào)整的時間以及各個選手的得分情況。</p><p>

52、;  以下是各個程序的設(shè)計:</p><p>  3.4.1定時器初始化函數(shù):</p><p>  void timer_init()</p><p><b>  {</b></p><p>  TMOD=0x11;//T0,T1分別工作在定時器方式1</p><p>  TH0=TH0NUM;&

53、lt;/p><p>  TL0=TL0NUM;</p><p>  TH1=TH1NUM;</p><p>  TL1=TL1NUM;</p><p>  TR0=1; //開定時</p><p><b>  TR1=1;</b></p><p>  ET0=1; //開定時中

54、斷</p><p><b>  ET1=1;</b></p><p><b>  EA=1;</b></p><p><b>  }</b></p><p>  void timer1() interrupt 3 </p><p><b>  

55、{</b></p><p>  TH1=TH1NUM;</p><p>  TL1=TL1NUM;</p><p><b>  i++; </b></p><p>  buzzer=OFF;</p><p><b>  }</b></p><

56、;p><b>  //計時器0中斷</b></p><p>  void temer0() interrupt 1 </p><p><b>  {</b></p><p>  TH0=TH0NUM;</p><p>  TL0=TL0NUM;</p><p>  t+

57、+; //掃描頻率到,選取相應數(shù)碼管點亮</p><p>  if(t==6) //共掃描六個數(shù)碼管</p><p><b>  t=0; </b></p><p>  reg_sign();</p><p><b>  }</b></p><p>  此

58、程序主要說明開定時器1中斷為計時功能,開定時器0中斷為掃描功能</p><p>  3.4.2 倒計時函數(shù):</p><p>  void display()</p><p><b>  {</b></p><p>  if(i==20)//計時到1s</p><p><b>  {&

59、lt;/b></p><p><b>  i=0;</b></p><p>  buzzer=ON;</p><p>  sum4[0]--;</p><p>  if(sum4[0]==-1)//計時到10s</p><p><b>  {</b></p>

60、;<p>  sum4[0]=9;</p><p>  sum4[1]--;</p><p>  if(sum4[1]==-1)//最大時間為99s</p><p>  sum4[1]=9;</p><p><b>  }</b></p><p><b>  }<

61、/b></p><p><b>  }</b></p><p>  通過計算可以得知,定時器1每50ms發(fā)生一次中斷,所以當定時器發(fā)生20次中斷的時候,正好經(jīng)過1秒,以此來完成對1秒的倒計時。此程序主要完成對選手搶答及回答倒計時的功能。</p><p>  3.4.3 數(shù)碼管顯示函數(shù):</p><p>  顯示程序

62、采用動態(tài)掃描。在顯示程序中,用到的數(shù)碼管總共只有6位,可通過鎖存器的鎖存功能來完成對數(shù)碼管位的控制。連續(xù)的動態(tài)掃描,輪流向各位數(shù)碼管送出字形碼和相應的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人感覺是一組穩(wěn)定的數(shù)據(jù)顯示。程序循環(huán)檢測是否有信號,執(zhí)行相應處理,最后通過顯示程序顯示相應的數(shù)值和符號。下圖為數(shù)碼管顯示流程圖:</p><p>  圖3-3數(shù)碼管顯示流程圖</p><p><

63、;b>  其部分代碼如下:</b></p><p>  void reg_sign()</p><p><b>  {</b></p><p><b>  xuan_e=0;</b></p><p>  P0=xuan[t];</p><p>  xuan_

64、e=1; //允許送數(shù)</p><p>  xuan_e=0; //禁止送數(shù)</p><p><b>  reg_e=0;</b></p><p>  if(reg_i==0) //if嵌套來實現(xiàn)各個顯示功能</p><p><b>  led(m);</b></p><p

65、>  else if(reg_i==1) </p><p>  show_time();</p><p><b>  else </b></p><p>  play_num(reg_i);</p><p><b>  reg_e=1;</b></p><p><

66、b>  reg_e=0;</b></p><p><b>  }</b></p><p>  3.4.4采集選手并顯示號碼:</p><p>  系統(tǒng)一直對選手按鍵進行掃描,當選手的搶答鍵按下之后,系統(tǒng)將會在數(shù)碼管上顯示其對應號碼,此時,如果有其他選手按鍵,將會認為搶答無效。其流程圖如下:</p><p&

67、gt;  圖3-4 顯示搶答選手號碼流程圖</p><p>  其部分代碼如下:</p><p>  void led(uchar itemer)//格式:-0- 00</p><p><b>  {</b></p><p>  extern uchar t;</p><p>  if(t=

68、=3 || t==5) </p><p><b>  {</b></p><p>  P0=0x10; //這兩位顯示“-”</p><p><b>  }</b></p><p>  else if(t==2) //該位黑屏 </p&

69、gt;<p><b>  P0=0x00;</b></p><p>  else if(t==4) //該位顯示選手號碼</p><p>  P0=reg[itemer];</p><p><b>  else </b></p><p>  P0=reg[s

70、um4[t]];//前兩位為時間顯示</p><p><b>  }</b></p><p>  3.4.5設(shè)定時間并顯示:</p><p>  系統(tǒng)初始化完成之后,主持人可根據(jù)實際需要來調(diào)整搶回答時間,“加1”按鈕按下,時間加10秒,“減1”按鈕按下,時間減10秒,并且可以在數(shù)碼管顯示出來。流程圖如下:</p><p>

71、;  圖3-5 設(shè)定時間并顯示流程圖</p><p><b>  其部分代碼如下:</b></p><p>  void set_time() //時間設(shè)置按鍵功能和顯示按鈕功能</p><p><b>  {</b></p><p>  extern char time;</p>

72、<p>  extern uchar reg_i;</p><p>  if(time_up==0)</p><p><b>  {</b></p><p><b>  delay();</b></p><p>  if(time_up==0) //加一按鈕</p>&

73、lt;p><b>  {</b></p><p><b>  time++;</b></p><p>  if(time==10)</p><p><b>  time=0;</b></p><p>  sum4[3]=time; //設(shè)定時間與定時時間一致</p&

74、gt;<p><b>  }</b></p><p>  while(!time_up);</p><p><b>  }</b></p><p>  if(time_down==0) //減一按鈕</p><p><b>  {</b></p>

75、<p><b>  delay();</b></p><p>  if(time_down==0)</p><p><b>  {</b></p><p><b>  time--;</b></p><p>  if(time==-1)</p><

76、;p><b>  time=9;</b></p><p>  sum4[3]=time; //設(shè)定時間和定時時間一致</p><p><b>  }</b></p><p>  while(!time_down);</p><p><b>  }</b></p>

77、;<p>  3.4.6選手搶答成功并回答正確予以加分并且顯示得分:</p><p>  當選手搶答成功后,開始回答,此時會有倒計時,回答完畢后,主持人可根據(jù)其是否回答正確,通過“加分”鍵來給予加分。其流程圖如下:</p><p>  圖3-6 選手得分的流程圖</p><p><b>  其部分代碼如下:</b></p&g

78、t;<p>  void play_num(uchar wwt) //此函數(shù)為調(diào)用時顯示各位選手的得分格式:0--000</p><p><b>  {</b></p><p>  extern uchar t;</p><p>  switch(wwt)</p><p><b>  {<

79、/b></p><p><b>  case 2:</b></p><p><b>  {</b></p><p>  if(t==2) //此位顯示0</p><p>  P0=reg[0];</p><p>  else if(t==3 || t==4)

80、//此兩位顯示" - "</p><p><b>  P0=0x10;</b></p><p>  else if(t==0)</p><p>  P0=reg[code_num[0]];//最右邊是選手的得分,個位</p><p>  else if(t==1)</p><p&g

81、t;  P0=reg[code_num[8]];//得分十位(最大積分99分)</p><p><b>  else </b></p><p>  P0=reg[1];//選手號碼顯示在最左邊</p><p><b>  } break;</b></p><p><b>  case

82、 3:</b></p><p><b>  {</b></p><p><b>  if(t==2)</b></p><p>  P0=reg[0];</p><p>  else if(t==3 || t==4)</p><p><b>  P0=0x

83、10;</b></p><p>  else if(t==0)</p><p>  P0=reg[code_num[1]];</p><p>  else if(t==1)</p><p>  P0=reg[code_num[9]];</p><p><b>  else </b>&l

84、t;/p><p>  P0=reg[2];</p><p><b>  } break;</b></p><p><b>  ......</b></p><p><b>  3.5本章小結(jié)</b></p><p>  本章是搶答器的軟件設(shè)計,實現(xiàn)搶答功能主

85、要是通過編寫程序的方法集成在STC89C51內(nèi)部。將程序下載到硬件電路中,實現(xiàn)搶答功能。</p><p>  第四章 Proteus仿真系列組圖</p><p><b>  4.1復位圖</b></p><p><b>  圖4-1 復位顯示</b></p><p>  該圖顯示當單片機復位后,在8

86、位七段數(shù)碼管上顯示的初始狀態(tài)。</p><p><b>  4.2設(shè)置計時時間</b></p><p>  圖4-2 計時時間為30秒</p><p>  圖4-3 計時時間為20秒</p><p>  通過加一和減一按鈕來設(shè)定搶答的時間。</p><p>  4.3搶答成功并顯示倒計時</

87、p><p>  圖4-4 四號選手搶答</p><p>  圖中顯示的是若4號選手搶答成功的時候,8位數(shù)碼管的第一顯示是“4”號選手搶答成功,最后兩位顯示選手答題倒計時時間還有19秒。</p><p>  4.4答題正確并顯示其得分</p><p>  圖4-5 四號選手的得分</p><p><b>  4.5

88、本章小結(jié)</b></p><p>  本章是搶答器的系統(tǒng)仿真部分,并對搶答器的各個流程做出了具體仿真結(jié)果。從仿真圖上可以進一步得出結(jié)論:利用單片機設(shè)計的搶答器工作性能穩(wěn)定,延遲時間小,電路結(jié)構(gòu)簡單,是一個實用、創(chuàng)新性的電路設(shè)計。</p><p><b>  總結(jié)與展望</b></p><p><b>  5.1總結(jié)<

89、/b></p><p>  本文研究與設(shè)計的八路多功能搶答器采用了通用的電子元器件,利用STC89C51單片機及外圍接口實現(xiàn)搶答系統(tǒng),利用單片機的定時器/計數(shù)器定時和記數(shù)的原理,將軟、硬件有機地結(jié)合起來。理論聯(lián)系實踐,體現(xiàn)出大學生動手能力。通過查資料和搜集有關(guān)的文獻,培養(yǎng)了自學能力和動手能力。并且由原先的被動的接受知識轉(zhuǎn)換為主動的尋求知識,這可以說是學習方法上的一個很大的突破。在以往的傳統(tǒng)的學習模式下,我們

90、可能會記住很多的書本知識,但是通過畢業(yè)論文,我們學會了如何將學到的知識轉(zhuǎn)化為自己的東西,學會了怎么更好的處理知識和實踐相結(jié)合的問題。把握重點、攻克難關(guān),學到用到、活學活用。在設(shè)計過程中由于時間倉促有很多地方難免存在不足之處,硬件設(shè)計已經(jīng)完成,在軟件設(shè)計中有些功能還尚未開發(fā)出來。但在以后的工作中,我們會嚴格要求自己,追求完美。</p><p>  整個設(shè)計通過了軟件和硬件上的調(diào)試、仿真。我想這對于自己以后的學習和工

91、作都會有很大的幫助的。在這次設(shè)計中遇到了很多實際性的問題,在實際設(shè)計中才發(fā)現(xiàn),書本上理論性的東西與在實際運用中的還是有一定的出入的,所以有些問題不但要深入地理解,而且要不斷地更正以前的錯誤思維。對于單片機設(shè)計,其硬件電路是比較簡單的,主要是解決程序設(shè)計中的問題。而程序設(shè)計是一個很靈活的東西,它反映了你解決問題的邏輯思維和創(chuàng)新能力。它才是一個設(shè)計的靈魂所在。因此在整個設(shè)計過程中大部分時間是用在程序上面的。很多子程序是可以借鑒書本上的,但怎

92、樣銜接各個子程序才是關(guān)鍵的問題所在,這需要對單片機的結(jié)構(gòu)很熟悉。因此可以說單片機的設(shè)計是軟件和硬件的結(jié)合,二者是密不可分的。</p><p>  但是,通過這次設(shè)計我也發(fā)現(xiàn)自己的很多不足之處。在設(shè)計過程中我發(fā)現(xiàn)自己考慮問題很不全面,自己的專業(yè)知識掌握的很不牢固,所掌握的計算機應用軟件還不夠多,我希望自己的這些不足之處能在今后的工作和學習中得到改善。而且,通過這次設(shè)計,我懂得了學習的重要性,學會了堅持和努力,這將為

93、以后的學習做出了最好的榜樣!</p><p><b>  5.2展望</b></p><p>  回頭再看看該設(shè)計,還可以將設(shè)計的擴展功能增強:1、可以設(shè)計聲控裝置,在主持人說開始時,系統(tǒng)自動完成清零并開始計時的功能。2、將搶答按鍵用無線實現(xiàn),如紅外線,使搶答者可以遠距離進行搶答,并簡化按鍵模塊的線路布置。3.設(shè)計一直沒有解決的問題,就是如果兩個選手同時搶答予以什么處

94、理。如果提供相應的器材及時間上的寬限,一定可以完成上述擴展功能,進一步完善作品。</p><p><b>  參 考 文 獻</b></p><p>  [1] 程相波,衛(wèi)安軍.基于MCS-51單片機的八路搶答器設(shè)計方法研究[J].北京工業(yè)職業(yè)技術(shù)學院學報,2007,(2).</p><p>  [2]林凌,李剛,丁茹,李小霞.新型單片機接口器

95、件與技術(shù)[M].西安:西安電子科技大學出版社,2005年.</p><p>  [3]李增生.對《搶答器》的改進[J].電子制作,2000,(12).</p><p>  [4]馬軻瀛.八路數(shù)字搶答器系統(tǒng)[J].華商,2007,(23).</p><p>  [5]高偉.AT89單片機原理及應用[M].北京:國防工業(yè)出版社,2008年.</p><

96、;p>  [6]蔡朝陽.單片機控制實習與專題制作[M].北京:北京航空航天大學出版社,2006年. </p><p>  [7]楊凌霄.微型計算機原理及應用[M].江蘇:中國礦業(yè)大學出版社,2004年.</p><p>  [8]丁建偉.搶答器電路設(shè)計[J].蘭州工業(yè)高等??茖W校學報,2008,(04).</p><p>  [9] 胡學海.單片機原理及應用系

97、統(tǒng)設(shè)計[M].北京:北京電子工業(yè)出版社,2005年.</p><p>  [10] 單片機與嵌入式系統(tǒng). 北京航空航天大學,2008</p><p>  [11] 馬巖 單片機的c語言應用程序設(shè)計 北京航空航天出版社, 2002</p><p>  [12] 邊春元 c51單片機典型模塊設(shè)計與應用 機械工業(yè)出版社, 2008</p><p>

98、  [13] 蘇小紅 c語言大學實用教程 電子工業(yè)出版社, 2004</p><p>  [14] 范文斌 數(shù)字電子技術(shù)基礎(chǔ) 清華大學出版社, 2007</p><p><b>  致 謝</b></p><p>  本畢業(yè)設(shè)計是在xx老師精心指導和大力支持下完成的。</p><p>  辛老師以其嚴謹求實的治學態(tài)度、高

99、度的敬業(yè)精神、兢兢業(yè)業(yè)、孜孜以求的工作作風和大膽創(chuàng)新的進取精神對我產(chǎn)生重要影響。她淵博的知識、開闊的視野和敏銳的思維給了我深深的啟迪。</p><p>  面對如此復雜的電路設(shè)計,真的十分迷茫,設(shè)計時間安排以及參考書目也不知從何下手,此時經(jīng)驗豐富的xx老師對我的課程設(shè)計的開展起到了非常重要的引導作用,同時,設(shè)計中遇到的難題也在與xx老師的指導與討論中得以一一解決。在此次畢業(yè)設(shè)計過程中我學到了許多關(guān)于電路設(shè)計、單片

100、機及其開發(fā)方面的知識,實踐技能有了一定的提高。 另外,我還要特別感謝同班同學對我論文寫作的指導,他們?yōu)槲彝瓿蛇@篇論文提供了巨大的幫助,使我得以順利完成此次畢業(yè)設(shè)計。同時對大學兩年我所有的任課老師,在此我也表示衷心的感謝,是他們讓我具有了扎實的基礎(chǔ)知識,學會了走向工作崗位的專業(yè)技能。</p><p>  最后,再次對關(guān)心、幫助我的老師和同學表示衷心地感謝。</p><p><

101、b>  附錄一 總體電路圖</b></p><p><b>  附錄二 實物圖</b></p><p><b>  附錄三 軟件代碼</b></p><p><b>  頭文件:</b></p><p>  #ifndef __includes_h__&l

102、t;/p><p>  #define __includes_h__</p><p>  #include "regx51.h"</p><p>  #define reg_e P2_6 </p><p>  #define xuan_e P2_7 </p><p>  #defin

103、e OFF 1 //蜂鳴器關(guān)</p><p>  #define ON 0 //蜂鳴器開</p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  #define TH1NUM 0X4b /

104、/計時時間設(shè)置,根據(jù)不同大小的晶振</p><p>  #define TL1NUM 0Xfe</p><p>  #define TH0NUM 0Xf0 //掃描頻率控制</p><p>  #define TL0NUM 0X00</p><p>  sbit itemer1=P1^0; </p><p>

105、;  sbit itemer2=P1^1;</p><p>  sbit itemer3=P1^2;</p><p>  sbit itemer4=P1^3;</p><p>  sbit itemer5=P1^4;</p><p>  sbit itemer6=P1^5;</p><p>  sbit itemer7

106、=P1^6;</p><p>  sbit itemer8=P1^7;</p><p>  sbit buzzer=P2^3;//蜂鳴器</p><p>  sbit start=P3^6;//主持人啟動按鈕</p><p>  sbit time_up=P3^5; //時間加 1</p><p>  

107、sbit time_down=P3^7; //時間減 1</p><p>  sbit disreg=P3^4; //屏幕顯示</p><p>  sbit panduan=P3^3;</p><p><b>  bit f=0;</b></p><p>  void led(uchar);</p&g

108、t;<p>  uchar key();</p><p>  void reg_sign();</p><p>  void set_time();</p><p>  void show_time();</p><p>  void play_num();</p><p>  void num_code

109、();</p><p>  uchar reg[]={0xed,0x81,0xf4,0xb5,0x99,</p><p>  0x3d,0x7d,0x85,0xfd,0xbd,</p><p><b>  0x10};</b></p><p>  char sum4[]={0,0,0,0,0,0};//6位數(shù)碼管顯示&l

110、t;/p><p>  uchar xuan[]={0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//段掃描,(結(jié)合硬件電路得出)</p><p>  uchar code_num[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; //選手積分數(shù)組,長度16時每位選手最大可積99分</p><p><b>  #endi

111、f</b></p><p><b>  頭文件:</b></p><p>  #ifndef __qiangdq_h__</p><p>  #define __qiangdq_h__</p><p>  #include "includes.h"</p><p

112、><b>  uchar k;</b></p><p>  uchar flag=0;</p><p>  void delay()</p><p><b>  {</b></p><p>  uchar i,j;</p><p>  for(i=0;i<=45;

113、i++)</p><p>  for(j=0;j<=225;j++);</p><p><b>  }</b></p><p>  /*************************************</p><p>  取鍵盤序號函數(shù),采集第一個按下鍵的選手</p><p>  *

114、************************************/</p><p>  uchar key() //此函數(shù)為搶答器的關(guān)鍵部分,調(diào)用是要特別注意多次調(diào)用的后果</p><p><b>  {</b></p><p>  if(itemer1==0)</p><p><b>  {&l

115、t;/b></p><p><b>  delay();</b></p><p>  if(itemer1==0)//按鍵去抖動</p><p><b>  k=1;</b></p><p><b>  }</b></p><p>  if(ite

116、mer2==0)</p><p><b>  {</b></p><p><b>  delay();</b></p><p>  if(itemer2==0)//按鍵去抖動</p><p><b>  k=2;</b></p><p><b>

117、;  }</b></p><p>  if(itemer3==0)</p><p><b>  {</b></p><p><b>  delay();</b></p><p>  if(itemer3==0)//按鍵去抖動</p><p><b>  

118、k=3;</b></p><p><b>  }</b></p><p>  if (itemer4==0)</p><p><b>  {</b></p><p><b>  delay();</b></p><p>  if(itemer

119、4==0)//按鍵去抖動</p><p><b>  k=4;</b></p><p><b>  }</b></p><p>  if(itemer5==0)</p><p><b>  {</b></p><p><b>  delay()

120、;</b></p><p>  if(itemer5==0)//按鍵去抖動</p><p><b>  k=5;</b></p><p><b>  }</b></p><p>  if(itemer6==0)</p><p><b>  {</b

121、></p><p><b>  delay();</b></p><p>  if(itemer6==0)//按鍵去抖動</p><p><b>  k=6;</b></p><p><b>  }</b></p><p>  if(itemer7

122、==0)</p><p><b>  {</b></p><p><b>  delay();</b></p><p>  if(itemer7==0)//按鍵去抖動</p><p><b>  k=7;</b></p><p><b>  }

123、</b></p><p>  if(itemer8==0)</p><p><b>  {</b></p><p><b>  delay();</b></p><p>  if(itemer8==0)//按鍵去抖動</p><p><b>  k=8;

124、</b></p><p><b>  }</b></p><p>  if(flag==0 && k!=0)</p><p><b>  {</b></p><p><b>  flag=1;</b></p><p><

125、;b>  P3_0=0;</b></p><p><b>  f=1;</b></p><p>  return (k);</p><p><b>  }</b></p><p><b>  else </b></p><p><

126、b>  return 0;</b></p><p><b>  }</b></p><p>  /*************************************</p><p>  選手按下鍵后顯示其對應號碼</p><p>  -----------------</p>&l

127、t;p>  --0- 00-</p><p>  -----------------</p><p>  *************************************/</p><p>  void led(uchar itemer)//格式:-0- 00</p><p><b>  {</b>

128、</p><p>  extern uchar t;</p><p>  if(t==3 || t==5) </p><p><b>  {</b></p><p><b>  P0=0x10;</b></p><p><b>  }</b><

溫馨提示

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

評論

0/150

提交評論