帶時間限制及聲光提示的搶答器設計報告_第1頁
帶時間限制及聲光提示的搶答器設計報告_第2頁
帶時間限制及聲光提示的搶答器設計報告_第3頁
帶時間限制及聲光提示的搶答器設計報告_第4頁
帶時間限制及聲光提示的搶答器設計報告_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于STC89C52單片機的帶時間及聲光提示的搶答器設計組長:常松 組員:高強摘要:本系統(tǒng)是基于ST89C52單片機帶時間和聲光提示的搶答器,它由控制核心ST89C52單片機、選手按鍵、主持人按鍵、聲光提示和LED數(shù)碼顯示等部分組成。選手按鍵和主持人按鍵均由獨立按鍵構成,采用掃描方式工作;聲光提示部分由無源蜂鳴器提供聲音提示,光提示由發(fā)光二極管提供。LED數(shù)碼顯示部分則是由普通發(fā)光二極管構成的數(shù)碼管。關鍵詞:STC89C52單片機 按鍵 無源蜂鳴器 發(fā)光二極管一、 設計任務與要求(1) 設計一個智力競賽搶答器,可同時供8名選手或8個代表隊參加比賽,編號為1、2、3、4、5、6、7、8,各用一個

2、按鈕。(2) 給節(jié)目主持人設置5個控制開關,用來控制系統(tǒng)的清零和搶答的開始及各種時間的調(diào)節(jié)控制。(3) 搶答器具有數(shù)據(jù)鎖存功能、顯示功能和聲光提示功能。(4) 主持人可以通過兩個時間調(diào)節(jié)鍵來調(diào)節(jié)搶答限制時間和答題時間限制時間。需在主持人按下?lián)尨痖_始后方可開始,且各個環(huán)節(jié)有相應的時間限制。(5) 顯示部分用LED組成的模擬數(shù)碼管來顯示數(shù)字。二、 方案設計與論證 2.1 總體方案設計2.1.1方案一:基于邏輯數(shù)字電路搶答器的設計定時搶答器的總體框圖如下圖2.1所示,它由主體電路和擴展兩部分組成。主體電路完成基本的搶答功能,即開始搶答后,當選手按動搶答鍵時,能顯示選手的編號,同時能封鎖輸入電路,禁止

3、其他選手搶答。擴展電路完成定時搶答的功能。圖2.1.1 方案一結構圖 系統(tǒng)各部分采用中小規(guī)模集成數(shù)字電路,用機械開關按鈕作為控制開關,完成搶答輸入信號的觸發(fā)。該方案的特點是中小規(guī)模集成電路應用技術成熟,性能可靠,能方便的完成選手搶答的基本功能,但是由于系統(tǒng)功能要求較高,所以電路連接集成電路相對較多,而且過于復雜,并且制作過程比較繁瑣,使用不方便。2.1.2方案二:基于ST89C52單片機控制的搶答器的設計器 搶答器的控制核心是STC89C52單片機,用查詢式鍵盤進行搶答。通過搶答按鍵模塊,連接按鍵進行搶答。實現(xiàn)功能的框圖如下所示,按下開始按鈕,此時進入搶答狀態(tài),選手的輸入采用掃描式的輸入,之后

4、由相關的信息由單片機處理,送到顯示部分顯示。此時如果有人第一個按下相應的按鍵,經(jīng)過單片機的處理選擇,顯示相應的號碼,并鎖存,不再響應其它按鍵輸入。主持人系統(tǒng)有開始按鍵,限時開始按鍵,搶答時間調(diào)節(jié)按鍵,限時時間調(diào)節(jié)按鍵。選手系統(tǒng)有搶答按鈕,計時顯示,聲光提示等。 ST89C52控制器復位電路主持人按鍵聲光提示選手按鍵數(shù)碼顯示 圖2.1.2 方案二結構圖由以上可知,方案一結構太復雜,成本過高,而方案二編程簡單,易于制作。所以選用方案二。2.2各個模塊方案設計 2.2.1 核心控制器(1)方案一由CPLD、FPGA來作主控制器。其特點是具有用戶可編程的特性,其可靈活的配置IO端口,方便的進行硬件功能

5、設置。具有靜態(tài)可重復編程或在線動態(tài)重構特性,使硬件的功能象軟件一樣通過編程來修改,不僅使設計修改和產(chǎn)品升級變得十分方便,而且極大地提高了電子系統(tǒng)的靈活性和通用能力。(2)方案二 由單片機STC89C52進行控制,實現(xiàn)相關功能。STC89C52 具有以下標準功能: 8K 字節(jié) Flash ,256 字節(jié) RAM,32 位 I/O 口線,還可擴展外部存儲器。編程容易實現(xiàn),外圍電路較為簡單。 大規(guī)模可編程邏輯器件一般是使用狀態(tài)機方式來實現(xiàn),即所解決的問題都是規(guī)則的有限狀態(tài)轉換問題。本系統(tǒng)狀態(tài)較多,難度較大。另外系統(tǒng)沒有其它高標準的要求,基于成本及控制功能的考慮,最終選擇了STC89C52這個比較普通

6、單片機來實現(xiàn)系統(tǒng)設計。 2.2.2 按鍵模塊(1)方案一 獨立鍵盤,鍵盤接口中使用多少根IO線,鍵盤中就有幾個按鍵,這種類型的鍵盤,在按鍵比較少和IO口資源不緊張時使用。在工作中鍵盤的各個按鍵互不干擾。因此可以根據(jù)實際需要對鍵盤中的按鍵靈活的編碼。如圖2.2.2.1 圖2.2.2.1 (2)方案二 采用矩陣式鍵盤,矩陣式鍵盤的特點是把檢測線分成兩組,一組為行線,一組列線,按鍵放在行線和列線的交叉點上,編程實現(xiàn)較復雜,但占用IO口較少。這種形式的鍵盤結構,能夠有效的提高單片機IO口的利用率,適用于按鍵輸入多的情況,如圖2.2.2.2。圖2.2.2.2 矩陣鍵盤2.2.3顯示模塊 (1)方案一 采

7、用點陣組成的LED屏,亮度高而且組裝也容易,但編程復雜,需要較多的驅動芯片,因而成本高,不適合一般的制作。 (2)方案二 采用普通發(fā)光二極管按一定順序排列構成數(shù)碼管,雖然構成的LED燈數(shù)目多,但結構還是較簡單,制作也較容易而且單片機控制也方便,成本也不是很高,因而出于成本和控制的考慮,選用方案二。三、 硬件單元電路設計與參數(shù)計算3.1單片機控制電路 圖3.1 單片機控制電路 單片機控制部分的電路圖如上,晶振頻率為12M,P0口接上拉電阻。3.2按鍵電路 圖3.2 按鍵電路 按鍵部分如上圖所示,選手按鍵由P1口控制,共有8個按鍵;主持人按鍵有四個按鍵,由P3口控制。全部按鍵采用獨立式鍵盤。3.3

8、聲光提示電路 圖3.3 聲光提示電路 聲音提示部分由無源蜂鳴器和PNP三極管構成,給其1個脈沖,它就會發(fā)出聲響;光提示部分由發(fā)光二極管和限流電阻構成。3.4數(shù)碼顯示電路 圖3.4 數(shù)碼顯示電路 此部分如上圖所示,由140個發(fā)光二極管和28個構成,每兩列二極管由單片機的一個口控制。3.5 有關參數(shù)的計算在軟件編程過用到了定時/計數(shù)器0和定時/計數(shù)1,定時器1控制有人按下?lián)尨鹌鲿r“嘟”的哪一聲響,其他的則由定時器0處理。定時器0和1的定時溢出時間都為20毫秒。定時/計數(shù)器0和1都工作在方式1,即16加1計數(shù)器,分為兩個8位的寄存器,定時20毫秒的計算公式為TH0=(65536-2000)/256;

9、 TL0=(65536-2000)%256;TH1=(65536-2000)/256;TL1=(65536-2000)%256;TH0和TH1分別表示定時器0和1在工作方式1時的高8位寄存器,TL0和TL1則為低8位寄存器,因為定時器0和1是加1計數(shù)器,是一直加到65536溢出,變?yōu)?,所以給寄存器裝入的是和65536相差2000的初值,晶振為12M,12分頻后,頻率為1M,也就是周期為1微秒,即為單片機每執(zhí)行1條指令所用的時間,執(zhí)行2000次加1,則就是2000乘以1微秒等于20毫秒。四、 軟件設計與流程圖 上電復位后顯示模塊顯示“F”,程序開始對系統(tǒng)進行初始化。開始搶答后,若沒有選手按動搶

10、答按鈕則開始9秒的倒計時,直到搶答限制時間到,進入下一輪的搶答。若有選手按動搶答按鈕,編號立即鎖存,并在顯示模塊選手的編號,且伴隨聲音提示。在開始鍵沒按下時,有人按了搶答器,則該人違規(guī),數(shù)碼管顯示號碼,與此同時LED亮,表示有人違規(guī)。其他人再按下時則不響應,優(yōu)先響應第一個。有人違規(guī)及有人搶答時會發(fā)出“嘟”的一聲。當搶答時間或答題時間快到時會響3下。程序流程圖如下:開始初始化開始鍵按下?調(diào)時鍵按下?倒計時時間到選手按鍵按下判斷是哪位選手先按下,顯示選手號并給出聲音提示選手是否作答?按下復位鍵加1S選手違規(guī)?聲光報警并顯示違規(guī)選手號按開始鍵按下限時開始鍵開始計時時間到YNNYNNYNYY 圖四 程

11、序流程圖 五、 總電路原理圖及元器件清單5.1總原理圖 總原理圖如下: 圖5.1 系統(tǒng)總原理圖5.2 PCB圖圖5.2 系統(tǒng)整體PCB圖5.3 整體電路仿真圖以及仿真結果分析 仿真開始后,由發(fā)光二極管組成的顯示電路顯示“F”,當開始鍵按下后,便開始依次顯示倒計時90,如果有選手鍵按下,則顯示是幾號按下。按下限時開始鍵后,便是倒計時9秒;在開始鍵沒按下時,有人近按了搶答器,則也顯示違規(guī)的號碼。有人違規(guī)及有人搶答時蜂鳴器會發(fā)出“嘟”的一聲。當搶答時間或答題時間快到時會響3下。如果不在三極管的基極加上一個電阻,則單片機的IO口無法輸出電平,無法控制三極管的導通或截止;當三極管的C極和E極反過來時,L

12、ED燈的亮度很暗,這是因為三極管的反向電流比較小的緣故。 圖5.3 系統(tǒng)仿真圖5.4 元件清單表5-4 帶時間及聲光提示的搶答器元器件清單元件名稱型號數(shù)量/個用途元件名稱型號數(shù)量/個用途單片機STC89C521控制核心按鍵8選手輸入晶振12M1晶振電路按鍵5主持人輸入,復位鍵電容30pF2晶振電路排阻10K1上拉電阻電阻10K1復位電路發(fā)光二極管143電源指示電路,顯示電路電阻2001蜂鳴器控制電路電解電容10uF/16V1復位電路電阻4702光提示電路電解電容220uF/25V1濾波電路電阻4701電源指示電路六、 安裝與調(diào)試電路使用覆銅板焊接和安裝,由于元器件都安裝在同一面,需要屏蔽掉電阻

13、和三極管等器件;調(diào)試分軟件調(diào)試和硬件調(diào)試,軟件調(diào)試使用Keil軟件,使用該軟件可單步調(diào)試,軟件調(diào)試一般包括分塊調(diào)試和聯(lián)機調(diào)試兩個階段。程序的分塊調(diào)試一般在單片機開發(fā)板上運行,也可配合相應的硬件模塊單獨運行某個程序塊,然后檢查是否正確,如果不是預期的結果,可以通過單步運行或設置斷點的方法,查出原因并加以改正,直到結果正確為止。聯(lián)機調(diào)試就是將已調(diào)好的完整的程序在全部的硬件電路上運行??词欠窠Y果是否正確,如不正確,則檢查軟件是否能實現(xiàn)所需要的功能,重新修正,直到結果正確為止。硬件調(diào)試主要檢查電路是否連接正確,在保證電路無錯連,開路,斷路的情況下和軟件配合調(diào)試,看是否能實現(xiàn)預期的功能。七、 性能測試與

14、分析1 上電復位后,顯示部分顯示字符“F”,按下開始鍵后,有9秒的搶答時間,如果無人搶答,則恢復顯示“F”。2 如果上電后沒按開始鍵,這時如果有人按下?lián)尨鹌?,則是違規(guī),也顯示違規(guī)的號碼,與此同時黃燈亮。3 搶答時間和限時時間由搶答時間調(diào)節(jié)鍵和限時時間調(diào)節(jié)鍵調(diào)節(jié),可從09調(diào)節(jié)。4 第一個選手搶答后,單片機會鎖存這個編號,不再響應其他選手的搶答。5 有人搶答成功后,在顯示部分顯示相應的號碼,按下限時開始鍵,將會進行最大為9秒的倒計時。6 開始鍵、答題限時鍵按下,有人違規(guī)及有人搶答時會發(fā)出“嘟”的一聲。7 當搶答時間或答題時間快到時會間斷響3下。 實物如圖所示。八、 結論與心得 通過這次課程設計,無

15、論是在硬件方面還是軟件方面我都得到了不少的收獲。經(jīng)過這一個月的努力,過程曲折可謂一語難盡。在此期間我也失落過,也曾一度熱情高漲。從開始時滿盛激情到最后汗水背后的復雜心情,點點滴滴無不令我回味無長。 多和同學討論,在做課程設計的過程中要不停的討論問題,這樣,可以盡可能的獲取更多的想法,這樣就不會使自己在做的過程中不會迷失方向,并且這樣也是為了方便最后程序和硬件結合在一起。討論不僅是一些思想的問題,還可以深入的討論一些技術上的問題,這樣可以使處自己處理問題要快一些。在整整一個月的日子里,可以說得是苦多于甜,但是可以學到很多很多的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有

16、學到過的知識。通過這次課程設計使我懂得了理論與實際相結合是很重要的,有時軟件仿真出來了,硬件也不一定可以實現(xiàn),只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,同時在設計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。 對我而言,知識上的收獲重要,結果不一定是最重要。九、 參考文獻 1楊居義等 單片機課程設計指導 北京:清華大學出版社 2009.9:233-2452Proteus教程電子線路設計、制版與仿真/朱清慧,張鳳蕊,翟天嵩 編著。-北京:清華大學出版社,2

17、008.9十、 致謝特別感謝我的指導老師彭建盛,在本系統(tǒng)開發(fā)中給予我悉心指導,從系統(tǒng)開發(fā)到結束中過程遇到很多困難都是他給我鼓勵與指引,使我能夠克服重重困難,將系統(tǒng)做完成,在此謹向彭建盛老師致以誠摯的謝意和崇高的敬意。我還要感謝在班里同學和朋友,感謝你們在我遇到困難的時候幫助我,給我支持和鼓勵,感謝你們,謝謝!十一、 程序清單#include<reg52.h>#define uchar unsigned char#define uint unsigned intchar s;uchar num=0;char time=9;/搶答時間char datitime=9;/答題限時時間uin

18、t tt,t1;/T0,T1定時器定一秒bit flag,s_flag=1,b_flag,fall_flag;/標志位bit K_startcountflag,K_timecountflag;/時間調(diào)整標志位sbit K0=P30;sbit beep=P37; /蜂鳴器sbit rled=P31;/指示燈sbit K1=P10;sbit K2=P11;sbit K3=P12;sbit K4=P13;sbit K5=P14;sbit K6=P15;sbit K7=P16;sbit K8=P17;sbit K_Time=P32;/答題計時鍵sbit K_startcount=P33;/開始搶答時間

19、調(diào)整鍵sbit K_timecount=P34;/答題計時時間調(diào)整鍵void delay(uchar ms)uchar y;for(;ms>0;ms-)for(y=120;y>0;y-);uchar code tabledu=0X80,/*0*/ 0Xf2,/*1*/ 0X48,/*2*/ 0X60,/*3*/ 0X32,/*4*/ 0X24,/*5*/ 0X04,/*6*/ 0Xf0,/*7*/ 0X00,/*8*/ 0X20,/*9*/ 0x1c,/*F*/;/共陽數(shù)碼管編碼void T0_Init(void)TMOD=0X01; /定時器的工作方式TH0=(65536-200

20、0)/256; /定時20毫秒TL0=(65536-2000)%256;TH1=(65536-2000)/256;TL1=(65536-2000)%256;ET0=1;ET1=1;EA=1;P0=0;void Key_Scan(void)/開始鍵掃描if(K0=0)delay(5);if(K0=0)while(!K0);TR0=1;s=time;tt=0;flag=1;s_flag=1;b_flag=1;num=0;beep=1;rled=1;fall_flag=0;/清除違規(guī)標志位K_startcountflag=0;K_timecountflag=0;void Scan(void)/八路熱

21、鍵掃描(哪個鍵先按下,哪個優(yōu)先級最高)if(K1=0)delay(5);if(K1=0)while(!K1);num=1;/數(shù)碼管顯示1號"1"TR0=0;/關閉定時器0,時間停止TR1=1;/打開定時器1,使揚聲器響一聲s_flag=0;/關閉開始鍵標志位,使再按其他七個鍵不會響應if(K2=0)/下面七個鍵的處理同上delay(5);if(K2=0)while(!K2);num=2;TR0=0;TR1=1;s_flag=0;/重要if(K3=0)delay(5);if(K3=0)while(!K3);num=3;TR0=0;TR1=1;s_flag=0;if(K4=0)

22、delay(5);if(K4=0)while(!K4);num=4;TR0=0;TR1=1;s_flag=0;if(K5=0)delay(5);if(K5=0)while(!K5);num=5;TR0=0;TR1=1;s_flag=0;if(K6=0)delay(5);if(K6=0)while(!K6);num=6;TR0=0;TR1=1;s_flag=0;if(K7=0)delay(5);if(K7=0)while(!K7);num=7;TR0=0;TR1=1;s_flag=0;if(K8=0)delay(5);if(K8=0)while(!K8);num=8;TR0=0;TR1=1;s_

23、flag=0;void display(void)if(flag=1)/開始鍵按下,開始計時搶答if(num!=0)/如果有人搶答,則顯示相應的幾號P2=tabledunum;/顯示幾號搶到了delay(250); if(K_Time=0) num=0;else/否則沒人搶答,則前面不顯示幾號 delay(2); P2=tabledus; delay(250); else/如果開始鍵沒有按下,則顯示F (若有違規(guī)者,則顯示違規(guī)號碼)或時間調(diào)整if(fall_flag=1)/違規(guī)顯示if(num!=0)P2=tabledunum;/顯示幾號違規(guī)了delay(250);elseP0=0XFF;el

24、se/沒有人違規(guī)才顯示調(diào)整時間if(K_startcountflag=1)P2=tabledutime;delay(250);else if(K_timecountflag=1)P2=tabledudatitime;delay(250);else/否則顯示F P2=tabledu10;delay(250);void Time_Scan(void)/調(diào)整時間鍵掃描if(K_startcount=0)/搶答時間調(diào)整delay(5);if(K_startcount=0)while(!K_startcount);time+;if(time=10)time=0;K_startcountflag=1;/將搶答時間標志位置1K_timecountflag=0;/同時關閉答題時間標志位if(K_timecount=0)/答題時間調(diào)整delay(5);if(K_timecount=0)while(!K_timecount);datitime+;if(datitime=10)datitime=0;K_timecountflag=1;K_startcountflag=0;void main(void)T0_Init();while(1

溫馨提示

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

評論

0/150

提交評論