畢業(yè)設計----八位智力搶答器_第1頁
已閱讀1頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  畢 業(yè) 設 計(論文)</p><p>  題 目:八位智力搶答器</p><p>  系 :信息工程系</p><p>  專 業(yè):應用電子技術</p><p><b>  班 級:</b></p><p><b>  學 生:&

2、lt;/b></p><p><b>  學 號:</b></p><p>  指導教師: 職稱:講 師</p><p><b>  摘 要</b></p><p>  能夠實現(xiàn)搶答器功能的方式有多種,可以采用前期的模擬電路、 數(shù)字電路或模擬與

3、數(shù)字電路相結合的方式。近年來隨著科技的飛速發(fā)展,單片機的應用正在不斷深入,同時帶動傳統(tǒng)控制檢測日新月異更新。本文介紹一種用AT89C51作為核心部件進行邏輯控制及信號產(chǎn)生的單片機技術和匯編語言編程設計的8路數(shù)字搶答器。文章對搶答器的背景與現(xiàn)狀、硬件設計、軟件設計及其仿真都做了詳細的介紹,使我們不僅答器的原理及設計有了深入的了解,也對單片機的設計研發(fā)過程有了更加深刻的體會</p><p>  本設計主要采用單片機控

4、制,采用手動搶答的方式,有人搶答后,系統(tǒng)自動封鎖其他人的搶答按鈕,使其不能再搶答,從而實現(xiàn)搶答功能。</p><p>  該系統(tǒng)還增加了搶答倒計時和答題倒計時功能,另外搶答倒計時和答題倒計時的時間都可以調(diào)整。若有人在主持人按下開始按鈕之前按下?lián)尨鸢粹o,系統(tǒng)自動視其為犯規(guī),搶答器自動報警,顯示器同時顯示犯規(guī)選手的號碼,使搶答達到公平、公開的效果。</p><p>  關鍵字:單片機;搶答器;

5、倒計時</p><p><b>  作者:</b></p><p><b>  指導老師:</b></p><p><b>  ABSTRACT</b></p><p>  Responder function can be achieved in different ways

6、, can be used early in the analog circuits, digital circuits or analog and digital circuit combination. With the rapid development of science and technology in recent years, SCM applications are deepening, while the trad

7、itional control test drive rapid updated. This paper introduces a core component with AT89C51 as logical control signals and single-chip microcomputer and assembly language programming design of 8 digital vies to answer

8、first. A</p><p>  Keywords : single chip ;viing to answer first ;count down</p><p><b>  Author: </b></p><p>  GuidingTeacher: </p><p><b>  目 錄</b&

9、gt;</p><p>  第1章 緒 論1</p><p>  1.1課題研究的背景及意義1</p><p>  1.2搶答器的分類1</p><p>  1.3設計的主要目標任務3</p><p>  第2章 總體方案的設計4</p><p>  2.1 功能要求4</

10、p><p>  2.2 系統(tǒng)功能框圖4</p><p>  第3章 硬件電路的設計5</p><p>  3.1 硬件主要組成電路5</p><p>  3.2 電路工作的基本原理5</p><p>  3.3主控電路的設計5</p><p>  3.3.1 關于AT89C51單片機5

11、</p><p>  3.3.2振蕩器電路的設計6</p><p>  3.3.3復位電路的設計7</p><p>  3.4 按鍵電路的設計8</p><p>  3.5 顯示電路的設計8</p><p>  3.5.1 LED顯示器件簡介8</p><p>  3.5.2 顯示

12、部分的設計9</p><p>  3.6報警電路的設計9</p><p>  3.6.1蜂鳴器的介紹9</p><p>  3.6.2 報警電路10</p><p>  3.7 總電路圖11</p><p>  第4章 軟件的設計12</p><p>  4.1 語言選擇12&l

13、t;/p><p>  4.2 軟件總體設計12</p><p>  4.3系統(tǒng)程序13</p><p>  第5章 仿真及調(diào)試23</p><p>  5.1 仿真軟件介紹23</p><p>  5.1.1 Proteus軟件介紹23</p><p>  5.1.2 keil軟件介紹

14、23</p><p>  5.2 仿真過程23</p><p>  5.2.1仿真過程操作如下:23</p><p>  5.2.2 仿真結果:24</p><p>  第六章 總 結26</p><p><b>  參考文獻27</b></p><p>&l

15、t;b>  附 錄28</b></p><p>  附錄1 電路原理圖28</p><p><b>  第1章 緒 論</b></p><p>  1.1課題研究的背景及意義</p><p>  無論是學校、工廠、軍隊還是益智性電視節(jié)目,都會舉辦各種各樣的智力競賽,都會用到搶答器。目前市場上已

16、有各種各樣的智力競賽搶答器,但絕大多數(shù)是早期設計的,以模擬電路、 數(shù)字電路或者模擬電路與數(shù)字電路相結合的產(chǎn)品。這部分搶答器已相當成熟,但功能越多的電路相對來說就越復雜,且成本偏高,故障高,顯示方式簡單(有的甚至沒有顯示電路) ,無法判斷提前搶按按鈕的行為,不便于電路升級換代。近年來隨著科技的飛速發(fā)展,單片機的應用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測日新月異。本設計就是利用微電腦芯片(單片機)作為核心部件進行邏輯控制及信號的產(chǎn)生,用單

17、片機本身的優(yōu)勢使競賽真正達到公正、 公平、 公開。</p><p><b>  1.2搶答器的分類</b></p><p><b>  電子搶答器</b></p><p>  電子搶答器的中心構造一般都是由搶答器由單片機以及外圍電路組成,其搭配的配件不同又分為,非語音非記分搶答器和語音記分搶答器。 </p>

18、<p><b>  圖1-1 按鈕</b></p><p>  多適用于學校和企事業(yè)單位舉行的簡單的搶答活動。 </p><p>  圖1-2 電子顯示牌</p><p><b>  圖1-3 搶答器</b></p><p><b>  圖1-4</b><

19、/p><p>  非語音記分搶答器構造很簡單,就是一個搶答器的主機和一個搶答按鈕組成,在搶答過程中選手是沒有記分的顯示屏。</p><p>  語音記分搶答器是有一個搶答器的主機和主機的顯示屏和選手的記分顯示屏。 </p><p><b>  電腦搶答器</b></p><p>  電腦搶答器又分為無線電腦搶答器和有線電腦搶

20、答器。</p><p>  無線電腦搶答器的構成是由:主機和搶答器專用的軟件和無線按鈕。</p><p>  無線電腦搶答器利用電腦和投影儀,可以把搶答氣氛活躍起來,一般多使用于電臺等大型的活動。</p><p>  有線電腦搶答器也是由主機和電腦配合起來,電腦在和投影儀配合起來,利用專門研發(fā)的配套的搶答器軟件,可以十分完美的表現(xiàn)搶答的氣氛。</p>

21、<p>  圖1-5 有線電腦搶答器</p><p><b>  圖1-6</b></p><p>  1.3設計的主要目標任務</p><p>  通過此次設計,理解搶答器的基本原理,掌握單片機在該系統(tǒng)中的應用,掌握LED顯示的工作原理,掌握89C51的接口分配,并能設計出合理的電原理圖,并仿真成功。</p><

22、;p>  第2章 總體方案的設計</p><p><b>  2.1 功能要求</b></p><p>  本次設計要求在熟練使用51系列單片機的基礎上,設計出相關的外圍電路,并利用所選用的常用芯片設計出搶答器,要求可通過軟件實現(xiàn)調(diào)整搶答器的答題或搶答時間,LED顯示器可顯示搶答或答題時間的倒計時,在時間快要用盡或者有人犯規(guī)的情況下,蜂鳴器可發(fā)出聲音報警。&l

23、t;/p><p>  2.2 系統(tǒng)功能框圖</p><p>  圖2-1 系統(tǒng)功能框圖</p><p>  開始鍵按下后,搶答倒計時開始,同時系統(tǒng)掃描選手搶答按鈕,選手按下按鈕,顯示器顯示選手號,同時進入答題計時,答題計時結束后,系統(tǒng)自動復位,顯示器顯示“FFF”。</p><p>  第3章 硬件電路的設計</p><p

24、>  3.1 硬件主要組成電路</p><p>  硬件電路主要由AT89C51單片機及其外圍電路(包括復位電路、外部晶振)、、按鍵電路、顯示電路、蜂鳴器報警電路。</p><p>  3.2 電路工作的基本原理</p><p>  整個電路由按鍵控制,當按下相應的按鍵時,單片機開始工作,搶答倒計時開始,同時系統(tǒng)掃描選手搶答按鈕,選手按下按鈕,顯示器顯示選手號

25、,同時進入答題計時,答題計時結束后,系統(tǒng)自動復位,顯示器顯示“FFF”。</p><p>  3.3主控電路的設計</p><p>  3.3.1 關于AT89C51單片機</p><p>  AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低

26、電壓,高性能CMOS 8位微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。</p><p>  其主要特性是與MCS-51 兼容、4K字節(jié)可編程閃爍存儲器、 壽命是1000

27、寫/擦循環(huán)、數(shù)據(jù)保留時間10年、全靜態(tài)工作0Hz-24MHz、三級程序存儲器鎖定、128×8位內(nèi)部RAM、32可編程I/O線、兩個16位定時器/計數(shù)器、5個中斷源、可編程串行通道、低功耗的閑置和掉電模式、片內(nèi)振蕩器和時鐘電路,其中由于其具有32個I/O口,可以滿足此次設計的需要,不用在其外部擴展I/O口。</p><p><b>  管腳說明:</b></p><

28、;p><b>  VCC:供電電壓。</b></p><p><b>  GND:接地。</b></p><p>  P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8個TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸

29、入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。</p><p>  P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4個TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 </p><p>  P2口:P2口為一

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

31、驗時接收高八位地址信號和控制信號。</p><p>  P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。</p><p>  P3口也可作為AT89C51的一些特殊功能口,如下表所示:</p><p>  口 管腳 備選功能</p><p>  P3

32、.0 RXD(串行輸入口)</p><p>  P3.1 TXD(串行輸出口)</p><p>  P3口同時為閃爍編程和編程校驗接收一些控制信號。</p><p>  RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。</p><p>  /EA/VPP:當/EA保持低電平時,則此期間訪問外部程序存儲器(0000

33、H-FFFFH),不管是否有內(nèi)部程序存儲器。加密方式1時,/EA將內(nèi)部鎖定為RESET;當/EA端保持高電平時,此間訪問內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p>  XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。</p><p>  XTAL2:來自反向振蕩器的輸出。</p><p>  3.3.2

34、振蕩器電路的設計</p><p>  晶振是晶體振蕩器的簡稱,在電氣上它可以等效成一個電容和一個電阻并聯(lián)再串聯(lián)一個電容的二端網(wǎng)絡,電工學上這個網(wǎng)絡有兩個諧振點,以頻率的高低分其中較低的頻率是串聯(lián)諧振,較高的頻率是并聯(lián)諧振。由于晶體自身的特性致使這兩個頻率的距離相當?shù)慕咏谶@個極窄的頻率范圍內(nèi),晶振等效為一個電感,所以只要晶振的兩端并聯(lián)上合適的電容它就會組成并聯(lián)諧振電路。這個并聯(lián)諧振電路加到一個負反饋電路中就可以

35、構成正弦波振蕩電路,由于晶振等效為電感的頻率范圍很窄,所以即使其他元件的參數(shù)變化很大,這個振蕩器的頻率也不會有很大的變化。</p><p>  晶振有一個重要的參數(shù),那就是負載電容值,選擇與負載電容值相等的并聯(lián)電容,就可以得到晶振標稱的諧振頻率。</p><p>  一般的晶振振蕩電路都是在一個反相放大器(注意是放大器不是反相器)的兩端接入晶振,再有兩個電容分別接到晶振的兩端,每個電容的另

36、一端再接到地,這兩個電容串聯(lián)的容量值就應該等于負載電容,請注意一般IC的引腳都有等效輸入電容,這個不能忽略。</p><p>  一般的晶振的負載電容為15p或30p,如果再考慮元件引腳的等效輸入電容,則兩個22p的電容構成晶振的振蕩電路就是比較好的選擇。</p><p>  圖 3-1 振蕩電路</p><p>  3.3.3復位電路的設計</p>

37、<p>  復位即是在復位端加不小于指定寬度的低電平(低電平復位)或高電平(高電平復位)信號使單片機的硬件處于初始狀態(tài)。以MCS-51系列單片機為例,復位端為RST/Vpd,高電平復位。在振蕩電路運行時,使RST引腳至少保持兩個機器周期(24個振蕩周期)高電平,實現(xiàn)一次復位動作。CPU響應內(nèi)部復位,將ALE和PSEN引腳置為輸入方式,并在RST端變低以前重復執(zhí)行內(nèi)部復位。</p><p>  圖 3-

38、2 復位電路</p><p>  3.4 按鍵電路的設計</p><p>  鍵盤有兩類:一個是獨立鍵盤,另一個是矩陣鍵盤。</p><p>  獨立鍵盤的特點是每個按鍵單獨占用一個I/O口,每個按鍵工作不會影響其他的I/O口線的狀態(tài),多用于按鍵不多的場合??刹捎肑NB或JB來查詢是哪一個按鍵按下,并轉向相應的功能處理程序。</p><p&g

39、t;  當按鍵較多時,就用到了矩陣鍵盤。矩陣鍵盤又稱行列鍵盤,它是用四條I/O線作為行線,四條I/O線作為列線組成的鍵盤,在行線和列線的每個交叉點上設置一個按鍵,這樣鍵盤上按鍵的個數(shù)就是4*4個。這種行列式鍵盤結構能夠有效地提高單片機系統(tǒng)中I/O口的利用率。</p><p>  但由于本設計的按鍵不多,所以我們采用獨立鍵盤,編寫程序也比較簡單,運行速度較快。</p><p>  圖3-3

40、 選手搶答按鍵</p><p>  3.5 顯示電路的設計</p><p>  3.5.1 LED顯示器件簡介</p><p>  數(shù)碼管是一種半導體發(fā)光器件,其基本單元是發(fā)光二極管。</p><p><b>  數(shù)碼管的分類:</b></p><p>  數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管

41、,八段數(shù)碼管比七段數(shù)碼管多一個發(fā)光二極管單元(多一個小數(shù)點顯示);按能顯示多少個“8”可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽數(shù)碼管在應用時應將公共極COM接到+5V,當某一字段發(fā)光二極管的陰極為低電平時,相應字段就點亮。當某一字段的陰極為高電平時,相應字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起

42、形成公共陰極(COM)的數(shù)碼管。共陰數(shù)碼管在應用時應將公共極COM接到地線GND上,當某一字段發(fā)光二極管的陽極為高電平時,相應字段就點亮。當某一字段的陽極為低電平時,相應字段就不亮。</p><p><b>  數(shù)碼管的驅動方式:</b></p><p>  數(shù)碼管要正常顯示,就要用驅動電路來驅動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅動方式的不同

43、,可以分為靜態(tài)式和動態(tài)式兩類。本設計由于只用兩個數(shù)碼管,所以采用靜態(tài)顯示驅動,這里只介紹靜態(tài)顯示驅動。</p><p>  靜態(tài)顯示驅動:靜態(tài)驅動也稱直流驅動。靜態(tài)驅動是指每個數(shù)碼管的每一個段碼都由一個單片機的I/O端口進行驅動,或者使用如BCD碼二-十進制譯碼器譯碼進行驅動。靜態(tài)驅動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O端口多,如驅動5個數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來驅動,一個

44、89C51單片機可用的I/O端口才32個,實際應用時必須增加譯碼驅動器進行驅動,增加了硬件</p><p>  3.5.2 顯示部分的設計</p><p>  顯示功能與硬件關系極大,當硬件固定后,如何在不引起操作者誤解的前提下提供盡可能豐富的信息,全靠軟件來解決。</p><p>  圖3-4 顯示電路(采用共陰極LED數(shù)碼管)</p><p

45、>  3.6報警電路的設計</p><p>  3.6.1蜂鳴器的介紹</p><p>  蜂鳴器的作用: 蜂鳴器是一種一體化結構的電子訊響器,采用直流電壓供電,廣泛應用于計算機、打印機、復印機、報警器、電子玩具、汽車電子設備、電話機、定時器等電子產(chǎn)品中作發(fā)聲器件。</p><p><b>  蜂鳴器的分類:  </b></p>

46、;<p>  1.壓電式蜂鳴器 壓電式蜂鳴器主要由多諧振蕩器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。有的壓電式蜂鳴器外殼上還裝有發(fā)光二極管。</p><p>  多諧振蕩器由晶體管或集成電路構成。當接通電源后(1.5~15V直流工作電壓),多諧振蕩器起振,輸出1.5~2.5kHZ的音頻信號,阻抗匹配器推動壓電蜂鳴片發(fā)聲。</p><p>  壓電蜂鳴片由鋯鈦酸鉛或鈮鎂酸

47、鉛壓電陶瓷材料制成。在陶瓷片的兩面鍍上銀電極,經(jīng)極化和老化處理后,再與黃銅片或不銹鋼片粘在一起。</p><p>  2.電磁式蜂鳴器 電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動膜片及外殼等組成。</p><p>  接通電源后,振蕩器產(chǎn)生的音頻信號電流通過電磁線圈,使電磁線圈產(chǎn)生磁場。振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發(fā)聲。</p><p>  3

48、.6.2 報警電路</p><p><b>  圖3-5</b></p><p><b>  3.7 總電路圖</b></p><p><b>  圖3-6</b></p><p>  第4章 軟件的設計</p><p><b>  4.1

49、語言選擇</b></p><p>  在目前單片機的發(fā)展中,其編程語言主要有C語言和匯編語言。C語言是高級語言,編寫起來比較程序比較簡便且易維護,匯編語言介于機器語言和高級語言之間,更接近于硬件,但編寫起來比較冗長。但介于本次程序不是太復雜,所以本次設計的程序采用匯編語言來編寫。</p><p>  4.2 軟件總體設計</p><p>  本程序采用子

50、程序設計,在主程序中調(diào)用子程序來完成特定的功能,這樣程序會通俗易懂,同時也有利于程序的調(diào)試和修改。</p><p>  本程序的程序流程圖如下:</p><p><b>  圖4-1</b></p><p><b>  4.3系統(tǒng)程序</b></p><p>  P1.0為開始搶答,P1.7為停止,

51、p1.1-p1.6為六路搶答輸入 數(shù)碼管段選P0口,位選P2口,蜂鳴器輸出為P3.6口。</p><p>  OK EQU 20H;搶答開始標志位</p><p>  RING EQU 22H;響鈴標志位</p><p><b>  ORG 0000H</b></p><p><b>  AJMP MAIN&l

52、t;/b></p><p><b>  ORG 0003H</b></p><p>  AJMP INT0SUB</p><p><b>  ORG 000BH</b></p><p>  AJMP T0INT</p><p><b>  ORG 0013H&

53、lt;/b></p><p>  AJMP INT1SUB</p><p><b>  ORG 001BH</b></p><p>  AJMP T1INT</p><p><b>  ORG 0040H</b></p><p>  MAIN: MOV R1,#0FH

54、; 初設搶答時間為15s</p><p>  MOV R2,#0AH; 初設答題時間為10s</p><p>  MOV TMOD,#11H; 設置未定時器/模式1</p><p>  MOV TH0,#0F0H</p><p>  MOV TL0,#0FFH; 越高發(fā)聲頻率越高,越尖</p><p>  MOV TH

55、1,#3CH</p><p>  MOV TL1,#0B0H; 50ms為一次溢出中斷</p><p><b>  SETB EA</b></p><p><b>  SETB ET0</b></p><p><b>  SETB ET1</b></p><

56、p><b>  SETB EX0</b></p><p>  SETB EX1; 允許四個中斷,T0/T1/INT0/INT1</p><p><b>  CLR OK</b></p><p><b>  CLR RING</b></p><p><b>  S

57、ETB TR1</b></p><p>  SETB TR0; 一開始就運行定時器,以開始顯示FFF.如果想重新計數(shù),重置TH1/TL1就可以了</p><p><b>  查詢程序:</b></p><p>  START: MOV R5,#0BH</p><p>  MOV R4,#0BH</p

58、><p>  MOV R3,#0BH</p><p>  ACALL DISPLAY; 未開始搶答時候顯示FFF</p><p>  JB P3.1,NEXT</p><p>  ACALL DELAY</p><p>  JB P3.1,NEXT;去抖動,如果"開始鍵"按下就向下執(zhí)行,否者跳到非法搶

59、答查詢</p><p>  ACALL BARK;按鍵發(fā)聲</p><p><b>  MOV A,R1</b></p><p>  MOV R6,A; 送R1->R6,因為R1中保存了搶答時間</p><p>  SETB OK; 搶答標志位,用于COUNT只程序中判斷是否查詢搶答</p><

60、p>  MOV R3,0AH; 搶答只顯示計時,滅號數(shù)</p><p>  AJMP COUNT;進入倒計時程序,"查詢有效搶答的程序"在COUNT里面</p><p>  NEXT: JNB P1.0,FALSE1</p><p>  JNB P1.1,FALSE2</p><p>  JNB P1.2,FA

61、LSE3</p><p>  JNB P1.3,FALSE4</p><p>  JNB P1.4,FALSE5</p><p>  JNB P1.5,FALSE6</p><p>  JNB P1.6,FALSE7</p><p>  JNB P1.7,FALSE8</p><p>  AJM

62、P START</p><p><b>  非法搶答處理程序:</b></p><p>  FALSE1: ACALL BARK; 按鍵發(fā)聲</p><p>  MOV R3,#01H</p><p>  AJMP ERROR</p><p>  FALSE2: ACALL BARK</p&

63、gt;<p>  MOV R3,#02H</p><p>  AJMP ERROR</p><p>  FALSE3: ACALL BARK</p><p>  MOV R3,#03H</p><p>  AJMP ERROR</p><p>  FALSE4: ACALL BARK</p>

64、<p>  MOV R3,#04H</p><p>  AJMP ERROR</p><p>  FALSE5: ACALL BARK</p><p>  MOV R3,#05H</p><p>  AJMP ERROR</p><p>  FALSE6: ACALL BARK</p><

65、;p>  MOV R3,#06H</p><p>  AJMP ERROR</p><p>  FALSE7:ACALL BARK</p><p>  MOV R3,#07H</p><p>  AJMP ERROR</p><p>  FALSE8:ACALL BARK</p><p>

66、  MOV R3,#08H</p><p>  AJMP ERROR</p><p>  INT0(搶答時間R1調(diào)整程序):</p><p>  INT0SUB:MOV A,R1</p><p>  MOV B,#0AH</p><p><b>  DIV AB</b></p>&l

67、t;p><b>  MOV R5,A</b></p><p><b>  MOV R4,B</b></p><p>  MOV R3,#0AH</p><p>  ACALL DISPLAY;先在兩個時間LED上顯示R1</p><p>  JNB P3.2,INC0; P3.2為+1s鍵,如

68、按下跳到INCO</p><p>  JNB P3.3,DEC0; P3.3為-1s鍵,如按下跳到DECO</p><p>  JNB P3.0,BACK0; P3.0為確定鍵,如按下跳到BACKO</p><p>  AJMP INT0SUB</p><p>  INC0: MOV A,R1</p><p>  

69、CJNE A,#63H,ADD0; 如果不是99,R2加1,如果加到99了,R1就置0,重新加起</p><p>  MOV R1,#00H</p><p>  ACALL DELAY1</p><p>  AJMP INT0SUB</p><p>  ADD0: INC R1</p><p>  ACALL DE

70、LAY1</p><p>  AJMP INT0SUB</p><p>  DEC0: MOV A,R1</p><p>  JZ SETR1;如果R1為0, R1就置99,</p><p><b>  DEC R1</b></p><p>  ACALL DELAY1</p>

71、<p>  AJMP INT0SUB</p><p>  SETR1: MOV R1,#63H</p><p>  ACALL DELAY1</p><p>  AJMP INT0SUB</p><p>  BACK0: RETI</p><p>  INT1(回答時間R2調(diào)整程序):</p>

72、<p>  INT1SUB:MOV A,R2</p><p>  MOV B,#0AH</p><p><b>  DIV AB</b></p><p><b>  MOV R5,A</b></p><p><b>  MOV R4,B</b></p>

73、<p>  MOV R3,#0AH</p><p>  ACALL DISPLAY</p><p>  JNB P3.2,INC1</p><p>  JNB P3.3,DEC1</p><p>  JNB P3.0,BACK1</p><p>  AJMP INT1SUB</p><

74、p>  INC1: MOV A,R2</p><p>  CJNE A,#63H,ADD1</p><p>  MOV R2,#00H</p><p>  ACALL DELAY1</p><p>  AJMP INT1SUB</p><p>  ADD1: INC R2</p><p

75、>  ACALL DELAY1</p><p>  AJMP INT1SUB</p><p>  DEC1: MOV A,R2</p><p><b>  JZ SETR2</b></p><p><b>  DEC R2</b></p><p>  ACALL D

76、ELAY1</p><p>  AJMP INT1SUB</p><p>  SETR2: MOV R2,#63H</p><p>  ACALL DELAY1</p><p>  AJMP INT1SUB</p><p>  BACK1: RETI</p><p>  倒計時程序(搶答倒計

77、時和回答倒計時都跳到該程序):</p><p>  COUNT: MOV R0,#00H; 重置定時器中斷次數(shù)</p><p>  MOV TH1,#3CH</p><p>  MOV TL1,#0B0H; 重置定時器</p><p>  RECOUNT: MOV A,R6; R6保存了倒計時的時間,之前先將搶答時間或回答時間給R6<

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

79、p>  MOV R4,31H; 取個位</p><p><b>  MOV A,R6</b></p><p>  SUBB A,#07H</p><p>  JNC LARGER;大于5s跳到LARGER,小于等于5s會提醒</p><p><b>  MOV A,R0</b></p&

80、gt;<p>  CJNE A,#0AH,FULL;1s中0.5s向下運行</p><p><b>  CLR RING</b></p><p>  AJMP CHECK</p><p>  FULL: CJNE A,#14H,CHECK; 下面系1s的情況,響并顯示號數(shù)并清R0,重新計時</p><p&

81、gt;<b>  SETB RING</b></p><p><b>  MOV A,R6</b></p><p>  JZ QUIT; 計時完畢</p><p>  MOV R0,#00H</p><p>  DEC R6; 一秒標志減1</p><p>  AJ

82、MP CHECK</p><p>  LARGER: MOV A,R0</p><p>  CJNE A,#14H,CHECK; 如果1s向下運行,否者跳到查"停/顯示"</p><p>  DEC R6; 計時一秒R6自動減1</p><p>  MOV R0,#00H</p><

83、p>  CHECK: JNB P3.0,QUIT; 如按下停止鍵退出</p><p>  ACALL DISPLAY</p><p>  JB OK,ACCOUT; 如果是搶答倒計時,如是則查詢搶答,否者跳過查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用)</p><p>  AJMP RECOUNT</p><p>  ACCOUT:

84、JNB P1.0,TRUE1</p><p>  JNB P1.1,TRUE2</p><p>  JNB P1.2,TRUE3</p><p>  JNB P1.3,TRUE4</p><p>  JNB P1.4,TRUE5</p><p>  JNB P1.5,TRUE6</p><p>

85、  JNB P1.6,TRUE7</p><p>  JNB P1.7,TRUE8</p><p>  AJMP RECOUNT</p><p>  QUIT: CLR OK; 如果按下了"停止鍵"執(zhí)行的程序</p><p><b>  CLR RING</b></p><p&

86、gt;  AJMP START</p><p><b>  正常搶答處理程序:</b></p><p>  TRUE1: ACALL BARK; 按鍵發(fā)聲</p><p><b>  MOV A,R2</b></p><p>  MOV R6,A; 搶答時間R2送R6</p><

87、;p>  MOV R3,#01H</p><p>  CLR OK; 因為答題的計時不再查詢搶答,所以就鎖了搶答</p><p>  AJMP COUNT</p><p>  TRUE2:ACALL BARK;</p><p><b>  MOV A,R2</b></p><p><

88、b>  MOV R6,A</b></p><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

89、</b></p><p><b>  MOV R6,A</b></p><p>  MOV R3,#03H</p><p><b>  CLR OK</b></p><p>  AJMP COUNT</p><p>  TRUE4:ACALL BARK;</

90、p><p><b>  MOV A,R2</b></p><p><b>  MOV R6,A</b></p><p>  MOV R3,#04H</p><p><b>  CLR OK</b></p><p>  AJMP COUNT</p>

91、<p>  TRUE5: ACALL BARK;</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

92、><p>  AJMP COUNT</p><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

93、><b>  CLR OK</b></p><p>  AJMP COUNT</p><p>  TRUE7: ACALL BARK</p><p><b>  MOV A,R2</b></p><p><b>  MOV R6,A</b></p><

94、;p>  MOV R3,#07H</p><p><b>  CLR OK</b></p><p>  AJMP COUNT</p><p>  TRUE8: ACALL BARK</p><p><b>  MOV A,R2</b></p><p><b>

95、;  MOV R6,A</b></p><p>  MOV R3,#08H</p><p><b>  CLR OK</b></p><p>  AJMP COUNT</p><p>  ;;;;;;;;;;犯規(guī)搶答程序;;;;;;;;;;;</p><p>  ERROR: MOV

96、R0,#00H</p><p>  MOV TH1,#3CH</p><p>  MOV TL1,#0B0H</p><p>  MOV 34H,R3; 犯規(guī)號數(shù)暫存與(34H)</p><p>  HERE: MOV A,R0</p><p>  CJNE A,#0AH,FLASH; 0.5s向下運行->

97、;滅并停響</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><p> 

98、 FLASH: CJNE A,#14H,CHECK1; 下面系1s的情況,響并顯示號數(shù)并清R0,重新計</p><p><b>  SETB RING</b></p><p>  MOV R0,#00H</p><p>  MOV R3,34H; 取回號數(shù)</p><p>  MOV R5,#0BH</p

99、><p>  MOV R4,#0BH; 顯示FF和號數(shù)</p><p>  AJMP CHECK1</p><p>  CHECK1: JNB P3.0,QUIT1</p><p>  ACALL DISPLAY</p><p><b>  AJMP HERE</b></p><

100、p>  QUIT1: CLR RING</p><p><b>  CLR OK</b></p><p>  AJMP START</p><p><b>  顯示程序:</b></p><p>  DISPLAY:MOV DPTR,#DAT1; 查表顯示程序,利用P0口做段選碼口輸出/P

101、2低三位做位選碼輸出</p><p><b>  MOV A,R5</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV P2,#01H</p><p><b>  MOV P0,A</b></p><p>  ACALL DELAY</

102、p><p>  MOV DPTR,#DAT2</p><p><b>  MOV A,R4</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV P2,#02H</p><p><b>  MOV P0,A</b></p><p

103、>  ACALL DELAY</p><p><b>  MOV A,R3</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV P2,#04H</p><p><b>  MOV P0,A</b></p><p>  ACALL DEL

104、AY</p><p><b>  RET</b></p><p>  DAT1:DB 00H,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H</p><p>  ;"滅","1","2","3","4",&

105、quot;5","6","7","8","9","滅","F"</p><p>  DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H</p><p>  DELAY1: MOV 35H,#08H<

106、;/p><p>  LOOP0: ACALL DISPLAY</p><p>  DJNZ 35H,LOOP0</p><p><b>  RET</b></p><p>  ;;;;;延時(顯示和去抖動用到):;;;;</p><p>  DELAY: MOV 32H,#12H</p>

107、;<p>  LOOP: MOV 33H,#0AFH</p><p>  LOOP1: DJNZ 33H,LOOP1</p><p>  DJNZ 32H,LOOP</p><p><b>  RET</b></p><p><b>  發(fā)聲程序:</b></p>

108、<p>  BARK: SETB RING</p><p>  ACALL DELAY1</p><p>  ACALL DELAY1</p><p>  CLR RING; 按鍵發(fā)聲</p><p><b>  RET</b></p><p>  ;;;;TO溢出中斷(響鈴程序

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

110、  OUT:RETI</b></p><p>  ;;;;T1溢出中斷(計時程序):;;;;;</p><p>  T1INT: MOV TH1,#3CH</p><p>  MOV TL1,#0B0H</p><p><b>  INC R0</b></p><p><b&g

111、t;  RETI</b></p><p><b>  END</b></p><p>  第5章 仿真及調(diào)試</p><p>  5.1 仿真軟件介紹</p><p>  5.1.1 Proteus軟件介紹</p><p>  Proteus(海神)的ISIS是一款Labcenter

112、出品的電路分析實物仿真系統(tǒng),可仿真各種電路和IC,并支持單片機,元件庫齊全,使用方便,是不可多得的專業(yè)的單片機軟件仿真系統(tǒng)。 </p><p><b>  該軟件的特點: </b></p><p> ?、?全部滿足我們提出的單片機軟件仿真系統(tǒng)的標準,并在同類產(chǎn)品中具有明顯的優(yōu)勢。 </p><p> ?、诰哂心M電路仿真、數(shù)字電路仿真、單片機及

113、其外圍電路組成的系統(tǒng)的仿真、RS一232動態(tài)仿真、1 C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。③ 目前支持的單片機類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。④ 支持大量的存儲器和外圍芯片??傊撥浖且豢罴瘑纹瑱C和SPICE分析于一身的仿真軟件,功能極其強大 ,可仿真51、AV

114、R、PIC。 </p><p>  Proteus與其它單片機仿真軟件不同的是,它不僅能仿真單片機CPU的工作情況,也能仿真單片機外圍電路或沒有單片機參與的其它電路的工作情況。因此在仿真和程序調(diào)試時,關心的不再是某些語句執(zhí)行時單片機寄存器和存儲器內(nèi)容的改變,而是從工程的角度直接看程序運行和電路工作的過程和結果。對于這樣的仿真實驗,從某種意義上講,是彌補了實驗和工程應用間脫節(jié)的矛盾和現(xiàn)象。 </p>

115、<p>  5.1.2 keil軟件介紹</p><p>  Keil 軟件是目前最流行開發(fā) MCS-51 系列單片 機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持 Keil 即可看出。Keil 提供了包括 C 編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通 過一個集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。</p><p><b

116、>  5.2 仿真過程</b></p><p>  5.2.1仿真過程操作如下:</p><p>  1)在Protues中畫出系統(tǒng)電路圖,即附件2;</p><p>  2)將程序在keil中編譯并生成hex文件。3)把在keil中編譯生成的HEX文件載入AT89C51芯片中;</p><p><b>  運行

117、仿真。 </b></p><p>  5.2.2 仿真結果:</p><p><b>  1)系統(tǒng)初始狀態(tài)</b></p><p><b>  圖5-1</b></p><p>  2)搶答開始后,搶答倒計時狀態(tài)</p><p>  圖5-2 搶答倒計時11秒時

118、的系統(tǒng)狀態(tài)</p><p>  有人搶答后答題倒計時狀態(tài)</p><p>  圖5-3 5號選手搶到該題且答題倒計時7秒時的系統(tǒng)狀態(tài)</p><p><b>  有人犯規(guī)狀態(tài)</b></p><p>  圖5-4 8號選手犯規(guī)</p><p><b>  第六章 總 結</

119、b></p><p>  在本次畢業(yè)設計中,我選擇的課題以51單片機為基礎,通過復習相關知識,查閱有關資料,并利用所學知識學習新的知識,根據(jù)所掌握的知識選擇設計方案和所需器件。通過本次設計,提高我對以往知識的認知度,也提高了用舊的知識和已有的學習能力學習新知識的能力,總之,通過此次設計受益良多。</p><p>  在本次設計中,使用了AT89C51這個單片機,在原有8051單片機的

120、基礎上學會了89C51的編程及其外圍電路的設計和連接。通過此次設計熟悉了該協(xié)議,并了解了該協(xié)議的編程原理,掌握了該芯片的讀寫原理。此外,該設計還用到了電路設計中常用的LED八段數(shù)碼管顯示電路,其中使用了靜態(tài)顯示,同時也復習了動態(tài)顯示的相關知識。在顯示電路中,用到了驅動芯片,通過查閱資料,了解了常用的驅動芯片,并從中選取了一個適合本次設計的74HC245作為驅動,同時也為以后從事這方面的設計和研究打下了很好的基礎。</p>

121、<p>  此外,在程序的編寫過程中,根據(jù)設計的要求和自己所要增加的功能寫出程序流程圖,在此基礎上,根據(jù)單片機的指令系統(tǒng)和芯片的功能寫出相應的程序,然后再進行程序調(diào)試和修改,使得能夠實現(xiàn)所要求的功能。程序要盡量做到由各個子程序組成,盡量在多加些注釋,這樣在程序出現(xiàn)錯誤時方便修改,也方便了其他人閱讀程序。</p><p>  總之,只要能做到以上幾點,我們就能達到既能把課題完成又能鍛煉自己的能力的目的。因

122、此,我們的設計不僅僅是一個重新學習的過程,而且也是對我們學習和動腦能力的培養(yǎng)。另外在設計中通過與導師以及周圍同學的溝通,學會了團隊合作,為以后走向社會參與社會競爭奠定了基礎。</p><p><b>  參考文獻</b></p><p>  [1] 楊將新.李華軍編.單片機程序設計及應用[M].北京:電子工業(yè)出版社,2006.</p><p>

123、;  [2] 高文煥.劉潤生編.電子線路基礎[M].北京:北京高等教育出版社,1997.</p><p>  [3] 王世昌編.電子線路輔導和題選[M].上海:上??茖W技術文獻出版社,1999.</p><p>  [4] 王遠編.模擬電子技術基礎學習指導書北[M].北京:清華大學出版社,1998.</p><p>  [5] 張毅剛.單片機原理及應用.高等

124、教育出版社.2003.</p><p>  [6] 楊欣,王玉鳳,劉湘黔.51單片機從零開始.清華大學出版社.2008.</p><p>  [7] 郭勇.Protel DXP 2004 SP2印制電路板設計教程.機械工業(yè)出版社.2009.</p><p>  [8] 談世哲.PROTEL DXP2004 電路設計基礎與典型范例.電子工業(yè)出版社.2007.&l

125、t;/p><p>  [9] 王為青,程國鋼.單片機Keil Cx51應用開發(fā)技術.人民郵電出版社.2007.</p><p>  [10] XF-S3011中文語音合成芯片開發(fā)指南v1.3. 安徽中科大訊飛信息科技有限公司.2006.</p><p>  [11] CAT24WC01/02/04/08/16位串行E2PROM. 廣州周立功單片機發(fā)展有限公司.20

126、02.</p><p>  [12] 張瑞惜.智力競賽搶答器設計[J] .機電工程技術 2007年08期</p><p>  [13] 王青萍.八路智力競賽搶答器的設計[J] . 湖北教育學院學報 2007年08期 </p><p>  [14] 黃矽琳. 數(shù)字智能搶答器的設計[J] . 黎明職業(yè)大學學報 2008年03期</p>&l

127、t;p>  [15] 丁建偉.搶答器電路設計[J] . 蘭州工業(yè)高等??茖W校學報 2008年04期</p><p>  [16] 沈德強.智能搶答器的設計與制作[J] . 商情(教育經(jīng)濟研究) 2008年05期</p><p>  [17] 楊文龍編.單片機原理及應用[M].西安:西安電子科技大學出版社,2005.</p><p>  [18] 閻石.

溫馨提示

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

評論

0/150

提交評論