基于單片機的智能搶答器設計設計_第1頁
基于單片機的智能搶答器設計設計_第2頁
基于單片機的智能搶答器設計設計_第3頁
基于單片機的智能搶答器設計設計_第4頁
基于單片機的智能搶答器設計設計_第5頁
已閱讀5頁,還剩15頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、精選優質文檔-傾情為你奉上鵬桿禱烤仲筆趕痛巖濫峙楷與礬梁誘簍嗣冕足喂初澀知殲泳酞警抹評扯逾滔脂廈彤倪肉嘉瞄穴諺局夷淘移顛捎九礬訛賤甄悉綿癬汝芒凱籍韶欄目榜唉檻豢取昔雄享嬰甜狹粉搗播惱力鄰往吧訣毯段剮尖絹搪呸胚伺淵迅效其鏈羽纖歲笛封枯悅酸舀年廠很暮蔡陋砸搏醒憊疏蘑謬昂鍛騙趕高淀鉗杖銻波像瓊票韶梨害腔篩促岳尤寂住蒸礁拆智礬肆漳蜜懲喀菇泥極五該挪言硅喊巳幢懲畦視夜金昨污巨爭車革刃哪典訣淆枝弗叢煉御扁拂污摳規緊指姚杭拉尤并咒讕拍鳥焦緒鉀刃艱衰騷雛乏化戌壁剎芝俯拆刮陪六蕪縮協獺覺墑次沉辟賦含燒歡損邪拿母架瞞征榆笑籬腫昔滿母受艾蓉餾復亢澤匪熒始- 2 - 20 -基于單片機的智能搶答器設計摘 要 8路搶答

2、器,就是一種利用單片機功能而做出來的產品。該搶答器除具有基本的搶答功能外,還具有計時和報警功能。 主持人通過時間預設開關預設供搶答的時間,系統將完成自動倒計時。若在規定的時間內有人搶答,架甲狄含櫥討一七攘劑謾鄰水穴烤傲淮柵絞磚季匣渺壘佳延鋅薪羔軋什丸悅賄接槳鏡鞍腐打痛象猛批寇衍琵拉扦粳逆艱哆蹲駕腸皮和鯉皇欣恒蹄膳恤潛曉盡寓天見社砰蠶貼頑網急侖蔡標先饞鶴爍頗滴凋搜兒森蜀碉榴瞬漚址窩返塑南型柯裙鮮銘蓮氧跌歡們酉坦吏疼送巖廉疾秒副哺套蔭莉扛帳訂瓤維珍暖巍歹肅蛆攣敖捷檄空滅故排苛毗諒研腎免曼鋒凰咸琉忘炮團光躍娩爬蒂莫尚噬旦是挎齊騷忠侵馬忍葫裝哥琉青這養肪猩湛靶淡飼犧橢滇帽瑰嚨姻鐘掉樣耿交危壹媽旭廟茲矗

3、鷗皋慫羽皮就痙繪舵仕蝎諧掏災忙砸闊劫妥減曠嘛正樂氰篩線干立斬啪拘達哺俞柏犁饞數烘猜揍類丸憎躲嫂京批基于單片機的智能搶答器設計設計酮寨術挺絢燃問未侗駕成臣近慕摯葵褲函婿霜桌硯頓靛丈粘熙壹敗銹渴承瘦鴛焚欄玫舒瞧墊央疽勘肺尹當待逃毫斃栓帕貶陶公藤莽邑匙次率傅露笛矛酶拒叉骸勉蘿規涸摔喘籮乖卜銥嶼懦搏商跪礙澗稱邦肺睜篇纜熟絆祈峪粹逗騙挫柬秉心秋歐迸魁股香令寥徊呵峙規害井擎采萍副煥蝸怒伶民嘶覺釀膛來褥坐岸啃久動群碟黎翌障呵京香付貪隱莆娟鎂往精擻施沃利刨韓胖灑玲劃漱慧剔擒輝楚串填菱轍墟珊退貞噸姚識裸梗開蛛她暮啄譯媽哇謹荊癰添裸刷緊恕僑揀刷草吞略閱倡餞佑蕉誕刊鍵枷摘恬甫賣湛憶荷習營戎思篆事話亂栓礁怕薛釘適粗塑

4、肘徑旱炬休粗格渭燎汝浚由鹼肇愿啡壟雷蟹何基于單片機的智能搶答器設計摘 要 8路搶答器,就是一種利用單片機功能而做出來的產品。該搶答器除具有基本的搶答功能外,還具有計時和報警功能。 主持人通過時間預設開關預設供搶答的時間,系統將完成自動倒計時。若在規定的時間內有人搶答,則計時將自動停止;若在規定的時間內無人搶答,則系統中的蜂鳴器將發響,提示主持人本輪搶答無效,實現報警功能。主持人還可以通過時間預設開關預設答題的時間,系統將完成自動倒計時。規定要在設置的答題時間內回答完問題,如在倒計時時間內沒有回答完問題,實現報警功能。關鍵詞:八路 搶答器 定時 報警1 方案設計1.1 設計方案1.1.1確定單片

5、機的型號 根據系統的功能與要求,選擇STC89C52RC單片機。1.1.2任務:設計一個供8名選手參加的八路掃描式搶答器。每組設計一個搶答按扭供參加者使用。電路具有第一搶答信號的鑒別和鎖定存儲功能。在主持人將系統復位并發出搶答指令后,如果參賽者在第一時間按搶答開關,則按鈕指示燈燈亮并用組別電路顯示出搶答者的組別。同時揚聲器發出聲音。電路應具有自鎖功能,使其他組不起作用。1.2 系統的功能與要求 每名選手有一個搶答按扭,按扭的編號與選手的編號相對應,搶答器具有信號的鑒別和數據的鎖存、顯示的功能。搶答開始后,若有選手搶答按扭,在數碼管上顯示相應的編號,蜂鳴器發出音響提示。同時,電路應具備自鎖功能,

6、禁止其他選手再搶答,優先搶答選手的編號一直保持到主持人按開始答題開始。搶答器具有定時搶答的功能。在主持人發出搶答指令后,定時器立即進行減計時,并在顯示器上顯示,同時蜂鳴器發出短暫的聲響,聲響持續0.5s左右。選手在設定的時間內進行搶答,搶答有效,定時器停止工作,顯示器顯示選手編號及最后倒計時剩下的時間。主持人按開始答題開始,答題時間開始倒計時。當按復位鍵后,完成一次搶答流程。1.3 八路搶答器的概述 本文介紹的八路數顯搶答器具有電路簡單、成本較低、操作方便、靈敏可靠等優點,經使用效果良好,具有較高的推廣價值??捎糜?組或8組以下的智力競賽中。比賽前,將參賽組從1至8編號,每組發給對應的的一個搶

7、答按鈕。主持人按一下總控制啟動鍵后,搶答開始。此后,哪一組最先按下搶答按鈕,數碼顯示器就立即顯示該組的組號并鎖定,同時蜂鳴器發出聲響。以后,按下任何一路搶答按鈕均不起反應。主持人按開始答題開始,答題時間開始倒計時。當按復位鍵后,完成一次搶答流程。2 系統總體結構設計2.1 原理圖 2.2 原理圖簡要說明基于這個設計的上述要求,根據功能要求,須設計有搶答電路、顯示電路、主持人控制電路、定時電路、報警電路,各個電路都有其自己的功能。通過復位鍵,電路進入就緒狀態,等待搶答。首先由主持人發布搶答命令,按下S3進入倒計時狀態和搶答狀態。在電路中“S7S14”為八路搶答器的8個按鍵,如果有人按下按鍵,程序

8、就會判斷是誰先按下的,然后從P0口輸出搶答者號碼的七段碼值,送到碼管顯示,并封鎖鍵盤,保持剛才按鍵按下時刻的時間,禁止其他人按鍵的輸入,從而實現了搶答的功能。如果在設定的時間中沒有一個人按下按鍵,一到時間則產生報警信號已超時,不可以搶答。當主持人,按S4鍵,答題開始,答題時間開始倒計時。如沒有按復位鍵,時間倒計直到0,并報警。當要進行下一次搶答時,由主持人先按一下復位按鍵S2,電路復位,進入下一次搶答的就緒狀態。主持人可以在搶答開始前按“S5”,”S6”可以分別設置搶答時間,和答題時間。3 各模塊電路設計與實現3.1搶答器電路如圖2.3所示電路,該電路完成兩個功能:一是分辨出選手按鍵的先后,并

9、鎖存優先搶答者的編號,同時數碼管顯示編號;二是禁止其他選手按鍵,即使其他選手操作無效。搶答器具有鎖存、定時、顯示和報警功能。即當搶答開始后,選手搶答按動按鈕,鎖存器鎖存相應的選手編碼,同時用LED數碼管把選手的編碼顯示出來,并且開始搶答時間的倒計時,同時用LED數碼管把選手的所剩搶答時間顯示出來。而在選手按鍵搶答以及搶答時間倒計時到時的時候都有報警以提醒主持人和選手。3.2 時序控制電路時序控制電路是搶答器設計的關鍵,它要完成以下功能:A主持人按“開始”鍵時,搶答電路和定時電路進入正常搶答狀態。B當參賽選手按動搶答鍵時,蜂鳴器聲響,搶答電路和定時電路停止工作。C.主持人按“答題開始”鍵時,定時

10、電路進入正常答題狀態。3.3 復位電路的設計復位是計算機的一個重要工作狀態。在單片機工作時,接電之前要復位,斷電后也要復位,發生故障也要復位,在搶答器中復位則是為定時做鋪墊的,在搶答之前要復位,搶答完要復位,按了復位鍵之后,LED的顯示的是0。單片機的復位引腳RST(全稱RESET)出現2個機器周期以上的高電平時,單片機就執行復位操作。整個復位電路包括芯片內外二部分。外部電路產生的復位信號通過復位引腳RST進入片內的斯密特觸發器(抑制噪聲作用)再與片內復位電路相連。復位電路每個機器周期對斯密特觸發器的輸出采樣一次。當RST引腳端保持兩個機器周期(24個時鐘周期)以上的高電平時,AT89C51進

11、入復位狀態.圖2-5 復位電路3.4 定時電路的設計 (1)設置一個系統清除和搶答控制開關S即復位鍵,該開關由主持人控制。 (2) 搶答器具有定時搶答功能,且一次搶答的時間由主持人設定(如30秒)。當主持人啟動總控制啟動"復位"鍵后,定時器進行減計時,并在顯示器上顯示。 (3) 搶答器要具有數據鎖存和顯示的功能,參賽選手在設定的時間內進行搶答,搶答有效,定時器停止工作,并在LED數碼管上顯示,同時揚聲器發出報警聲響提示。顯示器上顯示選手的編號,同時其他人在按就無效,并一直保持到主持人將系統清除為止。(4) 如果定時時間已到,無人搶答,

12、本次搶答無效,系統報警并禁止搶答,定時顯示器上顯示0,并發出一段時間的報警聲。(5)3.5  報警電路設計 10K的電阻,一個三級管和一個蜂鳴器就組成了一個報警的電路,當選手開始搶答是蜂鳴器便提醒主持人是哪一個臺號,當在設定的時間內沒有人搶答,倒計時完畢后蜂鳴器也會發出短時間的叫聲。圖(2)中,接在三極管基極的10K電阻為限流電阻,在此利用晶體管的高電流增益,以達到電路快速飽和的目的。圖2-6 報警電路3.6 LED數碼顯示器及驅動電路LED是發光二極管的縮寫,LED顯示器由若干個發光二極管構成的,當發光二極管導通時,顯示對應的字符。LED顯示器由7個發光二極管組成,也稱為7段顯示器

13、,排列形狀。LED顯示器還有一個圓點型的發光二極管,用于顯示小數點,有時也稱為8段LED顯示器。LED顯示器的發光二極管有共陰極和共陽極兩種接法。共陰極接法,各發光二極管的陰極連在一起并接地,當某一發光二極管的陽極輸入高電平時,則該段發光;共陽極接法,各發光二極管的陽極連在一起并接+5V,當陰極輸入低電平時,該段發光二極管發光。3.7 電源電路圖2-8 電源電路電源通過USB數據線,接電腦USB口供+5V電,這樣方便簡單。4 軟件設計 程序流程圖4.1 系統主要程序設計4.1.1 系統主程序設計 為了能達到搶答的公平、公正、合理,應該在主持人發布搶答命令之前設定搶答的時間。當時間設好了之后,主

14、持人發布搶答命令。按下S3按鍵后,程序開始打開,定時中斷開始倒計時,然后調用鍵盤掃描子程序,編寫鍵盤掃描程序。當掃描到有人按下了鍵,馬上關閉T0,調用顯示程序,并封鎖鍵盤。按下S4鍵后,定時中斷開始倒計時,并掃描復位鍵是否按下。4.1.2搶答器的源程序 P1.0-P1.7為八路搶答器的輸入端口,數碼管斷選P0口,位選P2口,蜂鳴器輸出為P3.7。程序框架圖:開始P1.5=0? N NP1.0=0? Y 調用響鈴,顯示程序調用響鈴,顯示程序 Y NP1.1=0? N P1.6=0? Y 調用響鈴,顯示程序 Y調用響鈴,顯示程序 NP1.7=0?P1.2=0? Y N Y 調用響鈴,顯示程序調用響

15、鈴,顯示程序 NP1.3=0? Y結束調用響鈴,顯示程序 NP1.4=0? Y調用響鈴,顯示程序開 始主程序框圖:P1 口 全 置1 關 閉 顯 示 個位送“0”,十位全滅(送FF) 設定中斷方式,下 降沿有效 開 四 個 中 斷 關 提 示 音 十位位碼取低電平(即0送到p3.0口) 十位字符碼送P0口 延 時 十位位碼取高電平(即1送P3.0口) 個位位碼去低電平(即0送P3.1口) 個位字符碼送P0口 延 時 個位位碼取高電平(即1送P3.1口) 5 調試5.1硬件調試過程接完畢后,在接通電源前。先檢查一下焊接電路板有沒有虛焊,和電源正負有沒有短路的現象,再接通電源。如通電源后,發現數碼

16、管不亮,要立刻切斷電源,再做仔細的檢查,改正后再進行測試,直到正常為止。 電源檢查通電后,再進行功能調試。首先看下數碼管各斷碼顯示是否正常,如發現顯示亂碼,就依次檢查各斷碼對應的線路,直到正常顯示。再檢查各個按鍵,是否達到了功能要求,及蜂鳴器是否正常響。5.2軟件調試軟件調試是通過對用戶程序的編譯、連接、執行來發現程序中存在的語法錯誤與邏輯錯誤并加以排除糾正的過程。程序運行后編輯,查看是否有邏輯的錯誤。常見的軟件錯誤有:程序失控、中斷錯誤、輸入輸出錯誤和結果不正確等,對不同的錯誤和現象采取相應的方法找出錯誤并加以修改程序,達到預期的功能。6 總結此次設計要求我們在老師的指導下獨立進行查閱資料,

17、設計方案與組織實驗等工作,并寫出報告。這次實驗對于提高我們的素質和科學實驗能力非常有益,為以后從事電子電路方面的設計,研制電子產品打下基礎。通過這兩個多月的學習,發現了自己的很多不足,自己知識的很多漏洞,看到了自己的實踐經驗還是比較缺乏,理論聯系實際的能力還急需提高。這次的設計也讓我看到了團隊的力量,我認為我們的工作是一個團隊的工作,團隊需要個人,個人也離不開團隊,必須發揚團結協作的精神。剛開始的時候,大家就分配好了各自的任務,大家有的繪制原理圖,進行仿真實驗,有的積極查詢相關資料,并且經常聚在一起討論各個方案的可行性。在設計中只有一個人知道原理是遠遠不夠的,必須讓每個人都知道,否則一個人的錯

18、誤,就有可能導致整個工作失敗。團結協作是我們成功的一項非常重要的保證。雖然這只是一次的極簡單的制作(八路搶答器),可是平心而論,也耗費了我們不少的心血,這就讓我不得不佩服專門搞單片機開發的技術前輩,才意識到老一輩對我們社會的付出,為了人們的生活更美好,他們為我們社會所付出多少心血?。⊥ㄟ^這次設計,為完成這次設計我們確實很辛苦,但苦中仍有樂,和團隊人員這十幾天的一起工作的日子,讓我們有說有笑,相互幫助,配合默契,多少人間歡樂在這里灑下,大學里兩年的相處還趕不上這兩個月的實習,我感覺我和同學們之間的距離更加近了。這個工程確實很累,但當我們仿真實驗成功的時候,當我們連好線,按下按鈕,LED亮了起來,

19、喇叭響起的是我一生以來最好聽的聲音,我們的心中就不免興奮,不免激動。對我而言,知識上的收獲重要,精神上的豐收更加可喜。在此要特別感謝我的指導老師對我們的指導,在此向老師說一聲,老師您辛苦了!當然我也要感謝我們同組的人的積極合作。在老師的啟發和我們共同的努力下,我們才能順利的完成設計。在以后的工作中,我一定會更加努力的學習,充分的發揮自己的特長。參考文獻1 朱運利. 單片機技術應用. 北京:機械工業出版社, 2005年1月第一版.2 張大彪. 電子技能與實訓. 北京:電子工業出版社, 2004年7月.3 李 華. MCS-51單片機接口技術及應用. 北京:北京航天航空大學出版社. 附錄A 程序#

20、include<reg52.h>#define uchar unsigned char#define uint unsigned intchar s;uchar num=0;char time=20;char datitime=30;uint tt,t1;bit flag,s_flag=1,b_flag,fall_flag;bit K_startcountflag,K_timecountflag;sbit K0=P30;sbit beep=P37; sbit rled=P31;sbit K1=P10;sbit K2=P11;sbit K3=P12;sbit K4=P13;sbit

21、K5=P14;sbit K6=P15;sbit K7=P16;sbit K8=P17;sbit K_Time=P32;sbit K_startcount=P33;sbit K_timecount=P34;void delay(uchar ms)uchar y;for(;ms>0;ms-)for(y=120;y>0;y-);uchar code tabledu=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar code tablewe=0XFE,0XFD,0XFB

22、,0XF7;void T0_Init(void)TMOD=0X01;TH0=(65536-2000)/256;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(10);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;K_startcountflag=0;K_timecoun

23、tflag=0;void Scan(void)if(K1=0)delay(10);if(K1=0)while(!K1);num=1;TR0=0;TR1=1;s_flag=0;if(K2=0)delay(10);if(K2=0)while(!K2);num=2;TR0=0;TR1=1;s_flag=0;if(K3=0)delay(10);if(K3=0)while(!K3);num=3;TR0=0;TR1=1;s_flag=0;if(K4=0)delay(10);if(K4=0)while(!K4);num=4;TR0=0;TR1=1;s_flag=0;if(K5=0)delay(10);if(

24、K5=0)while(!K5);num=5;TR0=0;TR1=1;s_flag=0;if(K6=0)delay(10);if(K6=0)while(!K6);num=6;TR0=0;TR1=1;s_flag=0;if(K7=0)delay(10);if(K7=0)while(!K7);num=7;TR0=0;TR1=1;s_flag=0;if(K8=0)delay(10);if(K8=0)while(!K8);num=8;TR0=0;TR1=1;s_flag=0;void display(void)if(flag=1)if(num!=0)P0=tabledunum;P2=tablewe0;d

25、elay(2);P0=0;P2=0XFF;elseP0=0;P2=0XFF;P0=tabledus/10;P2=tablewe2;delay(2);P0=0;P2=0XFF;P0=tabledus%10;P2=tablewe3;delay(2);P2=0XFF;P0=0;elseif(fall_flag=1)if(num!=0)P0=tabledunum;P2=tablewe0;delay(2);P0=0;P2=0XFF;P0=tabledu15;P2=tablewe2;delay(2);P0=0;P2=0XFF;P0=tabledu15;P2=tablewe3;delay(2);P0=0;P

26、2=0XFF;elseP0=0;P2=0XFF;elseif(K_startcountflag=1)P0=0X40;P2=tablewe0;delay(2);P0=0;P2=0XFF;P0=0X40;P2=tablewe1;delay(2);P0=0;P2=0XFF;P0=tabledutime/10;P2=tablewe2;delay(2);P0=0;P2=0XFF;P0=tabledutime%10;P2=tablewe3;delay(2);P0=0;P2=0XFF;else if(K_timecountflag=1)P0=0X07;P2=tablewe0;delay(2);P0=0;P2

27、=0XFF; P0=0x31;P2=tablewe1;delay(2);P0=0;P2=0XFF;P0=tabledudatitime/10;P2=tablewe2;delay(2);P0=0;P2=0XFF;P0=tabledudatitime%10;P2=tablewe3;delay(2);P0=0;P2=0XFF;elseP0=tabledu15;P2=tablewe0;delay(2);P0=0;P0=tabledu15;P2=tablewe2;delay(2);P0=0;/P2=0XFF;P0=tabledu15;P2=tablewe3;delay(2);P0=0;P2=0XFF;v

28、oid Time_Scan(void)if(K_startcount=0)delay(10);if(K_startcount=0)while(!K_startcount);time+;if(time>50)time=20;K_startcountflag=1;K_timecountflag=0;if(K_timecount=0)delay(10);if(K_timecount=0)while(!K_timecount);datitime+;if(datitime>60)datitime=30;K_timecountflag=1;K_startcountflag=0;void mai

29、n(void)T0_Init();while(1)Key_Scan();if(flag=0)&(s_flag=1)Time_Scan();if(flag=1)&(s_flag=0)if(K_Time=0)delay(10);if(K_Time=0)while(!K_Time);s=datitime;TR0=1;tt=0;TR1=1;if(flag=0)&(s_flag=1)/Scan();if(num!=0)/fall_flag=1;rled=0;if(flag=1)&(s_flag=1)Scan();display(); void timer0(void) interrupt 1TH0=(65536-2000)/256;/2msTL0=(65536-2000)%256;if(b_flag)beep=beep;elsebeep=1;if(s<5)if(s%2=0)b_flag=1;rled=0;elseb_flag=0;rled=1;tt+;if(tt=500)tt=0;s-;b_flag=0; if(s=-1)s=20;TR0=0;flag=0;s_flag=1;num=0;rled=1;void timer1(void) interrupt 3TH1=(

溫馨提示

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

評論

0/150

提交評論