八位競賽搶答器的設(shè)計_第1頁
八位競賽搶答器的設(shè)計_第2頁
八位競賽搶答器的設(shè)計_第3頁
八位競賽搶答器的設(shè)計_第4頁
八位競賽搶答器的設(shè)計_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計論文(設(shè)計)題目:八位競賽搶答器的設(shè)計 學 院:貴州大學明德學院 專 業(yè):通 信 工 程班 級:通信082班 學 號:082003111350,082003111336 082003111342,08200311361 學生姓名:倪家醒,鄧麗娟 李林林,余韜指導教師:王 許2011年 7 月 14 日目 錄摘 要4abstract5第一章概述6第二章 搶答器的硬件系統(tǒng)設(shè)計72.1 方案對比72.1.1 控制器模塊對比72.1.2 電源方案的選擇72.1.3 搶答器鍵盤的選擇82.2 系統(tǒng)整體方案設(shè)計82.3 系統(tǒng)硬件組成9第三章 最小系統(tǒng)與主控模塊的設(shè)計與實現(xiàn)93.1 at89c51簡

2、介93.2 單片機最小硬件系統(tǒng)的組成簡述133.2.1 電源電路143.2.2 時鐘電路143.2.3 復位電路153.3 主流程圖16第四章 模塊的設(shè)計與實現(xiàn)174.1 搶答電路的設(shè)計174.2 鎖存器74hc573174.3 主持人控制電路與揚聲器的設(shè)計184.4 顯示電路的設(shè)計19第五章 軟件的設(shè)計205.1語言選擇205.2軟件總體設(shè)計205.3系統(tǒng)程序21總 結(jié)34參考文獻36附 錄37附錄1 主程序37附錄2 元件清單38八位競賽搶答器的設(shè)計摘 要隨著單子技術(shù)的飛速發(fā)展,基于單片機的控制系統(tǒng)已廣泛應(yīng)用與工業(yè)、農(nóng)業(yè)、電力、電子、智能樓宇等行業(yè),微型計算機作為嵌入式控制系統(tǒng)的主體與核心

3、,代替了傳統(tǒng)的控制系統(tǒng)的常規(guī)電子線路。本設(shè)計是以八路搶答為基本理念。考慮到需設(shè)定限時回答的功能呢個,利用at89c51單片機及外圍接口實現(xiàn)的搶答系統(tǒng),利用單片機的定時器/計數(shù)器定時和記數(shù)的原理,將軟、硬件有機地結(jié)合起來,使得系統(tǒng)能夠正確地進行計時,同時使數(shù)碼管能夠正確地顯示時間和搶答的號碼。用開關(guān)做鍵盤輸出,揚聲器發(fā)生提示,并且有警告燈顯示,正常工作時為綠燈,報警或搶答等違規(guī)信號時則出現(xiàn)紅燈。關(guān)鍵詞:at89c51,搶答器,計數(shù)器the design of eight contest responderabstract along with the list of the rapid deve

4、lopment of technology, the control system based on scm has been widely used in industry, agriculture, electricity, electronics, intelligent building and other industries, the microcomputer embedded control system as the main and core, instead of the traditional control system of conventional electro

5、nic circuits. this design is eight way contest as the basic concept. taking into account the need to set the time response function, using at89c51 mcu and peripheral interface of the answering system, the use of single-chip timer / counter timing and counting principle, the software and hardware com

6、bination, so that the system can correctly time, while the digital tube able to correctly display the time and answer in the number. by switching the keyboard output, speaker prompted occurred, and a warning light display, normal working hours for lights, alarm or other illegal signal when the answe

7、r appears red.key words: at89c51,responder,counter第一章 概述數(shù)字技術(shù)是當前發(fā)展最快的學科之一,數(shù)字邏輯器件已從20世紀60年代的小規(guī)模集成電路集成電路是采用半導體制作工藝,在一塊較小的單晶硅片上制作上許多晶體管及電阻器、電容器等元器件,并按照多層布線或遂道布線的方法將元器件組合成完整的電子電路。它在電路中用字母ic(也有用文字符號n等)表示。 全文(ssi)發(fā)展到目前的中、大規(guī)模集成電路(msi,lsi)及超大規(guī)模集成電(vlsi)。相應(yīng)地,數(shù)字邏輯電路邏輯電路 邏輯電路是包含邏輯關(guān)系的數(shù)字電路, 以二進制為原理、實現(xiàn)數(shù)字離散信號的傳遞,邏輯

8、運算和操作的電路。最基本的邏輯電路是常見的門電路,而最簡單的門電路為與電路、或電路和非電路。 全文的設(shè)計方法在不斷的演變和發(fā)展,由原來單一的硬件邏輯設(shè)計發(fā)展成三個分支,即硬件邏輯設(shè)計(中、小規(guī)模集成器件)、軟件邏輯設(shè)計(軟件組裝的lsi和vsi,如微處理器、單片機單片機 單片機是單片微型計算機(single-chip microcomputer)的簡稱,是一種將中央處理器cpu隨機存儲器ram、只讀存儲器rom、多種i/o口和中斷系統(tǒng)、定時器/計時器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、a/d轉(zhuǎn)換器等電路)采用超大規(guī)模集成電路技術(shù)集成到一塊硅片上構(gòu)成的微型計算機系統(tǒng)。

9、全文等)及兼有二者優(yōu)點的專用集成電路(asic)設(shè)計。目前數(shù)字電子技術(shù)已經(jīng)廣泛地應(yīng)用于計算機、自動控制、電子測量儀表、電視、雷達、通信等各個領(lǐng)域。例如在現(xiàn)代測量技術(shù)中,數(shù)字測量儀表不僅比模擬測量儀表精度高,功能高,而且容易實現(xiàn)測量的自動化和智能化。隨著集成技術(shù)的發(fā)展,尤其是中,大規(guī)模和超大規(guī)模集成電路的發(fā)展,數(shù)字電子技術(shù)的應(yīng)用范圍將會更廣泛地滲透到國民經(jīng)濟的各個部門,并將產(chǎn)生越來越深刻的影響。隨著科學技術(shù)的發(fā)展和普及,各種各樣的競賽越來越多,其中搶答器的作用也就顯而易見。目前很多搶答器基本上采用小規(guī)模數(shù)字集成電路設(shè)計,使用起來不夠理想。因此設(shè)計一更易于使用和區(qū)分度高的搶答器成了非常迫切的任務(wù)。

10、現(xiàn)在單片機已進入各個領(lǐng)域,以其功耗小、智能化而著稱,所以若利用單片機來設(shè)計搶答器,便使以上問題得以解決。針對以上情況,本文設(shè)計出以at89c51單片機為核心的八路搶答器。它能根據(jù)不同的搶答輸入信號,經(jīng)過單片機的控制并產(chǎn)生不同的與輸入信號相對應(yīng)的輸出信號,最后通過led數(shù)碼管顯示相應(yīng)的路數(shù),即使兩組的搶答時間相差及微妙,也可分辨出是哪組優(yōu)先按下的按鍵。搶答器主要用于選手做搶答題時,選手進行搶答,搶到題的選手來回答問題。搶答器不僅考驗選手的反應(yīng)速度同時也要求選手具備足夠的知識面和一定的勇氣。選手們都站在同一個起跑線上,體現(xiàn)了公平公正的原則。傳統(tǒng)普通搶答器主要存在一下缺陷:1.在一次搶答過程中,當出

11、現(xiàn)超前違規(guī)搶答時,只能處理違規(guī)搶答信號,而對沒有違規(guī)的有效搶答信號不能進行處理,因而使該次搶答過程變成無效。2.當有多個違規(guī)搶答時,普通搶答器或采用優(yōu)先編碼電路選擇其中一個,或利用搶答電路電子元件的“競爭”選擇其中一個。對于或者由于搶答電路制作完畢后電子元件被固定。各路搶答信號的“競爭”能力也被固定,因而本質(zhì)上也有優(yōu)先權(quán)。普通搶答器存在不公平性。3.當有多個違規(guī)搶答時,普通搶答器只能“抓住”其中一個而出現(xiàn)“漏洞”。第二章 搶答器的硬件系統(tǒng)設(shè)計2.1 方案對比總的方案來說,可以利用集成芯片電路來控制選手搶答,但有更為精準、公平的控制電路,即51單片來控制電路,給各個選手一個公平競爭的機會。一、用

12、集成芯片通過電路直接控制選手搶答器的按鈕,用ct74ls175觸發(fā)器來連接電路,電路中還包括三個與非門。在這個電路中就需要有很多的配合,比如說選手搶答的限定時間,選手按鈕的清零等等,顯得比較麻煩。二、用at89c51單片機來控制電路,簡單、方便。最重要的就是寫程序,如何通過程序來達到搶答器的作用,利用51單片機來說補充了集成電路中所缺的遺漏,更是在集成電路上更加精準,對選手更加的公平,讓選手都站在同一的戰(zhàn)線上。故選用此方案。2.1.1 控制器模塊對比控制器主要用于個模塊控制對顯示、搶答、計時等。控制器的選擇有以下兩種方案:方案一:采用fpga(現(xiàn)場可編程門列陣)作為系統(tǒng)的控制器。fpga可以實

13、現(xiàn)各種復制的邏輯功能,規(guī)模大,密度高,它將所有期間集成在一塊芯片上,減小了體積,提高了穩(wěn)定性,并且可以應(yīng)用eda軟件仿真、調(diào)試,易于進行功能擴展。fpga采用并行的輸入輸出方式,提高了系統(tǒng)的處理速度,適合作為大規(guī)模實時系統(tǒng)的控制核心。但由于本設(shè)計對數(shù)據(jù)處理的速度要求不高,fpga的高速處理的優(yōu)勢得不到充分體現(xiàn),并且由于其集成度高,使其成本偏高,同時由于芯片的引腳較多,實物硬件電路板布線復雜,加重了電路設(shè)計和實際焊接的工作。方案二:采用atmel公司的at89c51作為系統(tǒng)控制器的cpu方案。單片機算術(shù)運算功能強,軟件編程靈活、自由度大,可以用軟件編程實現(xiàn)各種算法和邏輯控制,并且由于其功耗低、體

14、積小、技術(shù)成熟和成本低等優(yōu)點,使其在各個領(lǐng)域應(yīng)用廣泛?;谝陨戏治鰯M定方案二。2.1.2 電源方案的選擇系統(tǒng)需要多個電源,at89c51使用5v穩(wěn)壓電源:方案一:采用升壓型穩(wěn)壓電路。用兩片mc34063芯片分別將3v的電池電壓進行直流嶄波調(diào)壓,得到5v的穩(wěn)壓輸出。只需使用兩節(jié)電池,既節(jié)約了電池,又減少系統(tǒng)體積重量但該電路供電電流小,供電時間短,無法使相對龐大的系統(tǒng)穩(wěn)定運作。方案二:采用三端穩(wěn)壓集成78l05得到5v的穩(wěn)定電壓。利用該方法方便簡單,工作穩(wěn)定可靠。綜上所述,選擇方案二,采用三端穩(wěn)壓器電路。2.1.3 搶答器鍵盤的選擇鍵盤是單片機不可缺少的輸入設(shè)備,是實現(xiàn)人機對話的紐帶。鍵盤按結(jié)構(gòu)形

15、式可以分為非編碼鍵盤和編碼鍵盤,前者用軟件方法產(chǎn)生鍵碼,而后者則用硬件方法來產(chǎn)生鍵碼。在單片機中使用的都是非編碼鍵盤,因為非編碼鍵盤結(jié)構(gòu)簡單,承建低廉,非編碼鍵盤的類型很多,常用的有獨立式鍵盤,行列式鍵盤等。方案一:獨立式鍵盤鍵盤接口中使用多少根i/o口,鍵盤中就有幾個按鍵,鍵盤接口使用了8根i/o口線,該鍵盤就有8個按鍵,這種類型的鍵盤,其按鍵比較少,且鍵盤中各按鍵的工作互不干擾。因此可以根據(jù)實際需要對鍵盤中的按鍵靈活的編碼。方案二:行列式鍵盤是用n條i/o線作為行線,m條i/o線作為列線組成的鍵盤,在行線和列線的每個交叉點上,設(shè)置一個按鍵中按鍵的個數(shù)是m*n個,這種形式的鍵盤結(jié)構(gòu),能夠有效

16、的提高單片機系統(tǒng)中i/o的利用率,行列使用與按鍵輸入多的情況。綜上所述,使用方案一。2.2 系統(tǒng)整體方案設(shè)計本文以at89c51單片機為核心設(shè)計的八路搶答器方案是:l 搶答器同時供8名選手或8個代表隊比賽,分別用8個按鈕s0 s7表示。l 設(shè)置一個系統(tǒng)清除和搶答控制開關(guān)s,該開關(guān)由主持人控制。l 搶答器具有鎖存與顯示功能。即選手按動按鈕,鎖存相應(yīng)的編號,并在優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)清除為止。l 搶答器具有定時搶答功能,且一次搶答的時間由主持人設(shè)定(如30秒)。當主持人啟動開始鍵后,定時器進行減計時,同時揚聲器發(fā)出短暫的聲響,聲響持續(xù)的時間0.5秒左右。l 參賽選手在設(shè)定的時間內(nèi)

17、進行搶答,搶答有效,定時器停止工作,顯示器上顯示選手的編號和搶答的時間,并保持到主持人將系統(tǒng)清除為止。l 如果定時時間已到,無人搶答,本次搶答無效,系統(tǒng)報警并禁止搶答,定時顯示器上顯示00。 2.3 系統(tǒng)硬件組成搶答器同時提供8名選手或8個代表隊比賽,分別用8個按鈕s1-s8表示。設(shè)置一個系統(tǒng)清除和搶答控制按鈕,該按鈕由主持人控制,搶答器具有所存與顯示功能呢個。其工作原理為:接通電源后,主持人將開關(guān)撥到“清除”狀態(tài),搶答器處于禁止狀態(tài),編號顯示器滅燈,定時器顯示設(shè)定時間;主持人將開關(guān)置“開始”狀態(tài),宣布開始搶答器工作。定時器倒計時,揚聲器給出聲響提示。選手在定時時間內(nèi)搶答時,搶答器完成:優(yōu)先判

18、斷、編號鎖存、編號顯示、揚聲器提示。當一輪搶答之后,定時器停止、禁止二次搶答、定時器顯示剩余時間。如果再次搶答必須由主持人再次操作“清除”和“開始”狀態(tài)開關(guān)。其框圖如圖2.1所示: at89c51搶答信號輸入主持人控制信號輸入led顯示揚聲器發(fā)音圖2.1 系統(tǒng)框圖第三章 最小系統(tǒng)與主控模塊的設(shè)計與實現(xiàn)3.1 at89c51簡介at89c51是美國atmel公司生產(chǎn)的低電壓,高性能cmos8位單片機,片內(nèi)含4k bytes的可反復擦寫的只讀程序存儲器(perom)和128 bytes的隨機存取數(shù)據(jù)存儲器(ram),器件采用atmel公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標準mcs-51指令系統(tǒng)

19、,片內(nèi)置通用8位中央處理器(cpu)和flash存儲單元,功能強大at89c51單片機(圖3-1)可為您提供許多高性價比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域。主要性能參數(shù):與mcs-51產(chǎn)品指令系統(tǒng)完全兼容4k字節(jié)可重擦寫flash閃速存儲器1000次擦寫周期全靜態(tài)操作:0hz24mhz 三級加密程序存儲器1288字節(jié)內(nèi)部ram32個可編程i/o口線2個16位定時/計數(shù)器6個中斷源可編程串行uart通道低功耗空閑和掉電模式 圖3-1 at89c51單片機功能特性概述: at89c51 提供以下標準功能:4k 字節(jié)flash 閃速存儲器,128字節(jié)內(nèi)部ram,32 個i/o 口線,兩個16位定時

20、/計數(shù)器,一個5向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,at89c51可降至0hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。空閑方式停止cpu的工作,但允許ram,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存ram中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復位。引腳功能說明vcc:電源電壓gnd:地p0 口:p0 口是一組8 位漏極開路型雙向i/o 口,也即地址/數(shù)據(jù)總線復用口。作為輸出口用時,每位能吸收電流的方式驅(qū)動8個ttl邏輯門電路,對端口寫“1”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換

21、地址(低8位)和數(shù)據(jù)總線復用,在訪問期間激活內(nèi)部上拉電阻。在fiash編程時,p0口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。p1口:p1是一個帶內(nèi)部上拉電阻的8位雙向i/o口,p1的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個ttl邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(iil)。fiash編程和程序校驗期間,p1接收低8位地址。p2口:p2是一個帶有內(nèi)部上拉電阻的8位雙向i/o口,p2的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個ttl邏輯門電路。對端口寫“

22、1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(iil)。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行movxdptr指令)時,p2口送出高8位地址數(shù)據(jù)。在訪問8 位地址的外部數(shù)據(jù)存儲器(如執(zhí)行movxri 指令)時,p2 口線上的內(nèi)容(也即特殊功能寄存器(sfr)區(qū)中r2寄存器的內(nèi)容),在整個訪問期間不改變。flash編程或校驗時,p2亦接收高位地址和其它控制信號。p3口:p3口是一組帶有內(nèi)部上拉電阻的8 位雙向i/o 口。p3 口輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個ttl邏輯門電路。對

23、p3 口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。作輸入端時,被外部拉低的p3 口將用上拉電阻輸出電流(iil)。p3口除了作為一般的i/o口線外,更重要的用途是它的第二功能,如下表3-1所示:表 3-1 p3口的第二功能端口引腳第二功能p3.0 rxd(串行輸入口)p3.1 txd(串行輸出口)p3.2 (外中斷0)p3.3 (外中斷1)p3.4 t0(定時/計數(shù)器0外部輸入)p3.5 t1(定時/計數(shù)器1外部輸入)p3.6 (外部數(shù)據(jù)存儲器寫選通)p3.7 (外部數(shù)據(jù)存儲器讀選通)p3口還接收一些用于flash閃速存儲器編程和程序校驗的控制信號。rst:復位輸入。當振蕩器工作時

24、,rst引腳出現(xiàn)兩個機器周期以上高電平將使單片機復位。ale/: 當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ale(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ale 仍以時鐘振蕩頻率的l6 輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ale脈沖。對flash存儲器編程期間,該引腳還用于輸入編程脈沖()。如有必要,可通過對特殊功能寄存器(sfr)區(qū)中的8eh單元的do 位置位,可禁止ale 操作。該位置位后,只有一條movx和movc指令ale才會被激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ale

25、無效。:程序儲存允許()輸出是外部程序存儲器的讀選通信號,當at89c51 由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次有效,即輸出兩個脈沖。在此期間,當訪問外部數(shù)據(jù)存儲器,這兩次有效的信號不出現(xiàn)。ea/vpp:外部訪問允許。欲使cpu僅訪問外部程序存儲器(地址為0000hffffh),ea端必須保持低電平(接地)。需注意的是:如果加密位lb1被編程,復位時內(nèi)部會鎖存ea端狀態(tài)。如ea端為高電平(接vcc端),cpu則執(zhí)行內(nèi)部程序存儲器中的指令。flash存儲器編程時,該引腳加上+12v的編程允許電源vpp,當然這必須是該器件是使用12v編程電壓vpp。xtal1:振蕩器反相放大器的及

26、內(nèi)部時鐘發(fā)生器的輸入端。xtal2:振蕩器反相放大器的輸出端。由于外部時鐘信號是通過一個2分頻觸發(fā)器后作為內(nèi)部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但最小高電平持續(xù)時間和最大的低電平持續(xù)時間應(yīng)符合產(chǎn)品技術(shù)條件的要求。3.2 單片機最小硬件系統(tǒng)的組成簡述要使單片機工作起來,最基本的電路構(gòu)成為:1.電源電路:向單片機供電;2.時鐘電路:單片機工作的時間基準,決定單片機的工作速度;3.復位電路:確定單片及工作的起始狀態(tài),完成單片機的啟動過程。連接方式如圖3-2所示:圖 3-2 最小系統(tǒng)的設(shè)計圖3.2.1 電源電路在設(shè)計電源電路前,因為單片機所工作的范圍在4.0-5.5v,所以需要對交流

27、電壓220v對其進行轉(zhuǎn)變,下圖3-3是最常用的220v輸入5v輸出的直流穩(wěn)壓電源電路,穩(wěn)壓芯片用通用78l05。圖3-3 220v轉(zhuǎn)5v電路圖at89c51單片機的工作電壓范圍:4.0-5.5v,所以通常給單片機外接5v直流電源。連接方式為如圖3-4所示;圖 3-4 電源電路gnd(20腳):接電源地端;vcc(40腳):接電源+5v端。3.2.2 時鐘電路本設(shè)計所采用的時鐘信號為c51中的內(nèi)部形式,內(nèi)部方式實現(xiàn)單片機的時鐘電路,利用單片機芯片上提供的反相放大器電路,在xtal1和xtal2引腳之間外接振蕩器(晶體振蕩器或陶瓷振蕩器,crystal or ceramic resonator)構(gòu)

28、成一個自激振蕩器,自激振蕩器與單片機內(nèi)部的始終發(fā)生器(clock generator)構(gòu)成單片機的時鐘電路。如圖中,由osc和電容c1和c2構(gòu)成了并聯(lián)諧振回路作為定時元件,振蕩源osc可選用晶體振蕩器或陶瓷振蕩器,頻率為1.212mhz,電容c1、c2為530pf,起頻率微調(diào)作用。如圖3-5所示:圖 3-5 時鐘電路3.2.3 復位電路在單片機工作過程中,由于某種原因使單片機陷入“死機”狀態(tài),或根據(jù)需要采用強制手段使程序重新開始執(zhí)行等等,需要采用按鈕開關(guān)復位方式。當按鈕開關(guān)s按下時,+5v電源通過s接入電阻構(gòu)成的電路網(wǎng)絡(luò),設(shè)計時使電阻上的分壓達到高電平的閥值,就可以使單片機復位。因為我們按動按

29、鈕開關(guān)使其閉合的時間遠遠大于單片機復位所用的時間。通常把上電自動復位電路和按鈕開關(guān)復位電路綜合在一起,這樣既可以在每一次電源接通時系統(tǒng)復位,也可以滿足強制復位的要求。如圖3-6所示:圖 3-6 復位電路3.3 主流程圖一個硬件系統(tǒng)的設(shè)計都伴隨著軟件的設(shè)計,本設(shè)計具有倒計時功能。首先設(shè)置其倒計時時間,在主持人沒按鍵時,顯示器顯示時間為00,號數(shù)為0。當主持人按鍵開始后,時間開始倒計時,同時八位選手開始搶答,如果哪位選手搶答到后,顯示器上將顯示這位選手的號數(shù),如果在倒計時完成后都沒人搶答,則重新開始,如果有選手搶答到,則燈亮揚聲器響并回答問題。如圖3-7所示:ynynnyyy開始讀取倒計時時間設(shè)置

30、開始搶答主持人按鍵開始?有鍵按下?按鍵處理結(jié)束本輪回答?倒計時時間到?超時處理等待圖3-7 主流程圖第四章 模塊的設(shè)計與實現(xiàn)4.1 搶答電路的設(shè)計最簡單的編碼方式就是根據(jù)i/o輸入口所直接反映的相應(yīng)按鍵,按下的狀態(tài)進行編碼,稱直接狀態(tài)嗎,對于這樣的編碼的獨立式鍵盤,cpu可以通過直接讀取i/o口的狀態(tài)來獲取按鍵的直接狀態(tài)編碼值,根據(jù)這個值直接進行按鍵識別,這樣形式的鍵盤結(jié)構(gòu)簡單,按鍵識別容易。獨立式鍵盤的缺點是需要占用比較多的i/o口線,當單片機應(yīng)用系統(tǒng)鍵盤中需要的按鍵比較少或i/o口線比較富余時,可以采用這樣類型的按鍵。鍵盤接口中使用多少根i/o線,鍵盤中就有幾個按鍵,本設(shè)計鍵盤接口使用了8

31、根i/o口線,該鍵盤就有8個按鍵,這種類型的鍵盤,其按鍵比較少,且按鍵比較少,鍵盤中各按鍵的工作互不干擾。因此可以根據(jù)實際需要對鍵盤中的按鍵靈活的編碼。如圖4.1:圖4.1 搶答電路的設(shè)計4.2 鎖存器74hc57374hc573 跟 ls/al573 的管腳一樣。器件的輸入是和標準 cmos 輸出兼容的;加上拉電阻,他們能和 ls/alsttl 輸出兼容。當鎖存使能端le為高時,這些器件的鎖存對于數(shù)據(jù)是透明的(也就是說輸出同步)。當鎖存使能變低時,符合建立時間和保持時間的數(shù)據(jù)會被鎖存。1腳是輸出使能;11腳是鎖存使能; d是輸入; q是輸出; 是高電平,l是低; /oe是1腳 le是11腳;

32、 /oe 接低電平,使芯片內(nèi)部數(shù)據(jù)保持器輸出端與芯片8位輸出端之間連通; le 端的作用是通過高低電平控制8位輸入與內(nèi)部數(shù)據(jù)保持器輸入端的連通與斷開; 當 le = 0 時,p0端口的8位數(shù)據(jù)線與74hc573內(nèi)部數(shù)據(jù)保持器的輸入端斷開; 當 le = 1 時,p0端口的8位數(shù)據(jù)線與74hc573內(nèi)部數(shù)據(jù)保持器的輸入端連通。圖4.2 鎖存器與單片機的連接4.3 主持人控制電路與揚聲器的設(shè)計當有信號源從p2.7口輸入時,揚聲器發(fā)出聲響,可根據(jù)定時器設(shè)計發(fā)聲時間的長短,此信號源可以為搶答開始、搶答時間到、選手正常搶答、選手非法搶答、答題時間到都會同過此揚聲器發(fā)出一定時間的聲響,并且設(shè)計了一個led

33、顯示來提示是否為報警信號,當正常信號源來的時候,此燈為綠燈,發(fā)出聲響,但是如果為報警信號來時,此燈為紅燈,并發(fā)出聲響。同時主持人通過s按鍵輸入信號,提示答題時間開始、清除,揚聲器同時發(fā)出聲響,發(fā)出聲響的時候優(yōu)先判斷是哪位搶答到答題的機會,并在led上顯示出來,同時顯示開始后的時間,此電路設(shè)計答題時間為30秒,揚聲器響的時間為0.5秒。當主持人清除系統(tǒng)信號的時候,顯示器上顯示時間為00,選手號數(shù)也為0。設(shè)計電路如圖4.3所示:圖4.3主持人控制電路與揚聲器的設(shè)計4.4 顯示電路的設(shè)計 本設(shè)計采用led數(shù)碼管顯示,利用軟件設(shè)計其倒計時功能,當主持人未按鍵開始搶答時,時間顯示數(shù)碼管顯示為00,當開始

34、搶答后,顯示為30并開始倒計時,如果在此期間有人按鍵搶答,則在第三個數(shù)碼管上顯示響應(yīng)的號數(shù),當然如果出現(xiàn)違規(guī)的選手則不能參與本次回答,因為違規(guī)的時候會出來二極管led顯示紅燈,同時揚聲器發(fā)出聲響,時間大約為0.5秒,如果有人正常按鍵搶答,則出現(xiàn)綠燈,揚聲器也發(fā)出聲響時間也為0.5秒左右。具體的硬件設(shè)計如圖4-4所示:圖4-4 顯示電路硬件圖第五章 軟件的設(shè)計5.1語言選擇在目前單片機的發(fā)展中,其編程語言主要有c語言和匯編語言。c語言是高級語言,編寫起來比較簡單易維護,匯編語言介于機器語言和高級語言之間,更接近于硬件,但編寫起來比較冗長。但介于本次程序不是太復雜,所以我們這一組選擇的程序采用匯編

35、語言來編寫。5.2軟件總體設(shè)計本程序采用子程序設(shè)計,在主程序中調(diào)用子程序來完成特定的功能,這樣程序會通俗易懂,同時也有利于程序的調(diào)試和修改。本程序的程序流程如下:初始化顯示fff開始鍵按下?加一鍵按下?減一鍵按下?正常搶答非法搶答處理顯示犯規(guī)顯示搶答號并倒計時調(diào)整搶答時間回答時間程序流程圖5.3系統(tǒng)程序p1.0為開始搶答,p1.7為停止,p1.1-p1.6為六路搶答輸入,數(shù)碼管段選p0口,位選p2口,蜂鳴器輸出為p3.6口。ok equ 20h; 搶答開始標志位ring equ 22h; 響鈴標志位org 0000hajmp mainorg 0003h ;外部中斷0ajmp int0subor

36、g 000bh ;t0中斷ajmp tointorg 0013h ;外部中斷1ajmp int1suborg 001bh ;t1中斷ajmp t1intorg 0040hmain: mov r1, #0fh; 初始欠打時間為15smov r2,#0ah; 初始答題時間為10smov tmod,#11h; 設(shè)置為定時器t0,t1/模式1mov th0,#0f0hmov tl0, #0ffh; 越高發(fā)聲頻率越高,越尖mov th1,#3chmov tl1,#0b0h; 50ms為一次溢出中斷setb easetb et0setb et1setb ex0setb ex1; 允許四個中斷,t0/t1/

37、int0/int1clr okclr ringsetb tr1setb tr0; 一開始就運行定時器,一開始顯示fff,如果想 重新計數(shù),重置th1/tl1就可以了查詢程序start: mov r5,#0bhmov r4,#0bhmov r3, #0bhacall display; 未開始搶答時候顯示fffjb p3.1, nextacall delayjb p3.1, next; 去抖動,如果“開始鍵”按下就向下執(zhí)行, 否則跳到非法搶答查詢acall bark; 按鍵發(fā)聲mov a,r1mov r6,a; 送r1到r6,因為r1中保存了搶答時間setb ok;搶答標志位,用于count子程序

38、中判斷是否查詢搶答mov r3,0ah;搶答只顯示時,滅號數(shù)almp count; 進入倒計時程序,“查詢有效搶答的程序”在 count里面next: jnb p1.0,false1jnb p1.1,false2jnb p1.2,false3jnb p1.3,false4jnb p1.4,false5jnb p1.5,false6jnb p1.6,false7jnb p1.7,false8非法搶答處理程序:false1:acall bark; 按鍵發(fā)聲mov r3,#01halmp errorfalse2:acall barkmov r3,#02halmp errorfalse3:acall

39、barkmov r3,#03halmp errorfalse4:acall barkmov r3,#04halmp errorfalse5:acall barkmov r3,#05halmp errorfalse6:acall barkmov r3,#06halmp errorfalse7:acall barkmov r3,#07halmp errorfalse8:acall barkmov r3,#08halmp errorint0(搶答時間r1調(diào)整程序):int0sub: mov a,r1mov b,#0ahdiv abmov r5,amov r4,bmov r3,#0ahacall di

40、splay; 先在兩個時間led上顯示r1jnb p3.2,inc0; p3.2為+1s鍵,如按下跳到inc0jnb p3.3,dec0; p3.3為-1s鍵,如按下跳到dec0jnb p3.0,back0; p3.0為+1s鍵,如按下跳到back0ajmp int0subinc0: mov a,r1cjne a,#63h,add0; 如果不是99,r2加1,如果加到99了, r1就置0,重新加起mov r1,#00hacall delay1ajmp int0sybadd0: inc r1acall delay1ajmp int0subdec0: mov a,r1jz setr1; 如果r1

41、為0,r1就置99dec r1acall delay1ajmp int0subsetr1: mov r1,#63hacall delay1ajmp int0subback0: retiint1(回答時間r2調(diào)整程序):int0sub:mov a,r2mov b,#0ahdiv abmov r5,amov r4,bmov r3,#0ahacall display; 先在兩個時間led上顯示r1jnb p3.2,inc1; p3.2為+1s鍵,如按下跳到inc0jnb p3.3,dec1; p3.3為-1s鍵,如按下跳到dec0jnb p3.0,back1; p3.0為+1s鍵,如按下跳到back

42、0ajmp int1subinc1: mov a,r2cjne a,#63h,add1; 如果不是99,r2加1,如果加到99了, r1就置0,重新加起mov r2,#00hacall delay1ajmp int1sybadd1: inc r2acall delay1ajmp int1subdec1: mov a,r2jz setr2; 如果r2 為0,r2就置99dec r2acall delay1ajmp int1subsetr2: mov r2,#63hacall delay1ajmp int1subback1: reti倒計時程序(搶答倒計時和回答倒計時都跳到該程序):count:

43、mov r0,#00h; 重置定時器中斷次數(shù)mov th1,#3chmov tl1,#0b0h; 重置定時器recount:mov a,r6; r6保存了倒計時的時間,之前先將搶答時間或回 答時間給r6mov,b,#0ahdiv ab; 除十分出個位/十位mov 30h,a; 十位存于(30h)mov 31h,b; 個位存于(31h)mov r5,30h; 取十位mov r4,31h; 取個位mov a,r6subb a,#07hjnc larger; 大于5s跳到larger,小于等于5s會提醒mov a,r0cjne a,#0ah,full; 1s中0.5s向下運行clr ringajmp

44、 checkfull: cjne a,#14h,check; 下面系1s的情況,響并顯示號數(shù)清r0, 重新計時setb ringmov a,r6jz quit; 計時完畢mov r0, #00hdec r6; 一秒標志減1ajmp checklarger:mov a,r0cjne a,#14h,check; 如果1s向下運行,否則跳到查“停/xx 顯示”dec r6; 計時一秒r6自動減1mov r0,#00hcheck: jnb p3.0,quit; 如按下停止鍵退出acall displayjb ok,accout; 如果是搶答倒計時,如是則查詢搶答,否則跳過查詢繼續(xù)倒數(shù)(這里起到鎖搶答作

45、用)ajmp recountaccout:jnb p1.0, true1jnb p1.1, true2jnb p1.2, true3jnb p1.3, true4jnb p1.4, true5jnb p1.5, true6jnb p1.6, true7jnb p1.7, true8ajmp recountquit: clr ok; 如果按下了“停止鍵”執(zhí)行的程序clr ringajmp start正常搶答處理程序:true1:acall bark; 按鍵發(fā)聲mov a,r2mov r6,a; 搶答時間r2送r6mov r3,#01hclr ok; 因為答題的計時不再查詢搶答,所以就鎖了搶答aj

46、mp countture2:acall bark; 按鍵發(fā)聲mov a,r2mov r6,a; 搶答時間r2送r6mov r3,#02hclr ok; 因為答題的計時不再查詢搶答,所以就鎖了搶答ajmp countture3:acall bark; 按鍵發(fā)聲mov a,r2mov r6,a; 搶答時間r2送r6mov r3,#03hclr ok; 因為答題的計時不再查詢搶答,所以就鎖了搶答ajmp countture4:acall bark; 按鍵發(fā)聲mov a,r2mov r6,a; 搶答時間r2送r6mov r3,#04hclr ok; 因為答題的計時不再查詢搶答,所以就鎖了搶答ajmp

47、countture5:acall bark; 按鍵發(fā)聲mov a,r2mov r6,a; 搶答時間r2送r6mov r3,#05hclr ok; 因為答題的計時不再查詢搶答,所以就鎖了搶答ajmp countture6:acall bark; 按鍵發(fā)聲mov a,r2mov r6,a; 搶答時間r2送r6mov r3,#06hclr ok; 因為答題的計時不再查詢搶答,所以就鎖了搶答ajmp countture7:acall bark; 按鍵發(fā)聲mov a,r2mov r7,a; 搶答時間r2送r6mov r3,#02hclr ok; 因為答題的計時不再查詢搶答,所以就鎖了搶答ajmp cou

48、ntture8:acall bark; 按鍵發(fā)聲mov a,r2mov r6,a; 搶答時間r2送r6mov r3,#08hclr ok; 因為答題的計時不再查詢搶答,所以就鎖了搶答ajmp countmov a,r2mov r6,amov r3,#03#clr okajmp counttrue4:acall bark;mov a,r2 mov r6,amov r3,#04hclr okajmp counttrue5:acall bank;mov a,r2mov r6,amov r3,#05hclr okajmp counttrue6:acall bank;mov a,r2mov r6,amo

49、v r3,#06hclr okajmp counttrue7:acall bank;mov a,r2mov r6,amov r3,#07hclr okajmp counttrue8:acall bank;mov a,r2mov r6,amov r3,#08hclr okajmp count;犯規(guī)搶答程序;error:mov r0,#00hmov th1,#3chmov tl1,#0b0hmov 34h,r3; 犯規(guī)號數(shù)暫存與(34h)here: mov a,r0cjne a,#0ah,flash; 0.5s向下運行-滅并停響clr ringmov r3,#0ahmov r4,#0ahmov r

50、5,#0ah; 三燈全滅ajmp check1flash: cjne a,#14h,check1; 下面系1s的情況,響并顯示號數(shù)并清r0,重新計setb ringmov r0,#00hmov r3,34 h; 取回號數(shù)mov r5,#0bhmov r4,#0bh; 顯示ff和號數(shù)ajmp check1check1:jnb p3.0.quit1acall displayajmp herequit1:clr ringclr okajmp start顯示程序:display:mov dptr,#dat1; 查表顯示程序,利用p0口做段選碼口輸出/p2低三位做位選碼輸出mov a,r5movc a,

51、a+dptrmov p2,#01hmov p0,aacall delaymov dptr,#dat2mov a,r4movc a,a+dptrmov p2,#02hmov p0,aacall delaymov a,r3movc a,a+dptrmov p2,#04hmov p0,aacall delayretdat1:db 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h,71h; “滅”,“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“滅”,“f”dat2:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h,71hdelay1:mov 35h,#08hloopo: acall displaydjnz 35h,looporet;延時(顯示和去抖動用到);delay: mov 32h,#12hloop: mov 33h,#0afhloop1:djnz 33h,loop1djnz 32h,loopret發(fā)聲程序:bark: setb ring

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論