




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、酒泉職業(yè)技術學院課程設計題 目 基于單片機的6路搶答器組 員 范海霞 司順琴 黨時梅指導教師 杜鵑 學 生 陳明章專 業(yè) 電氣自動化系 別 機電系酒泉職業(yè)技術學院機電系2013年12月15日基于51單片機的6路搶答器摘 要此次設計提出了用AT89C51單片機為核心控制元件,設計一個簡易的搶答器,本方案以AT89C51單片機作為主控核心,與晶振、數(shù)碼管、蜂鳴器等構成六路搶答器,利用了單片機的延時電路、按鍵復位電路、時鐘電路、定時/中斷等電路,設計的六路搶答器具有實時顯示搶答選手的號碼和搶答時間的特點,還有復位電路,使其再開始新的一輪的答題和比賽,同時還利用C51語言編程,使其實現(xiàn)一些基本的功能。
2、本設計的系統(tǒng)實用性強、判斷精確、操作簡單、擴展功能強。它的功能實現(xiàn)是比賽開始,主持人讀完題之后按下?lián)尨疰I,聲音提示,提示音結(jié)束后搶答倒計時開始,此時數(shù)碼管開始進行10s的倒計時,直到有一個選手搶答,選手按下?lián)尨疰I時有聲音提示并在對應的數(shù)碼管上顯示出該選手的編號和搶答所剩的時間。如果在規(guī)定的10s時間內(nèi)沒有做出搶答,鳴笛提示本輪搶答結(jié)束,則此題作廢,即開始重新一輪的搶答。下一輪搶答前先將時間歸零,再按下?lián)尨疰I即開始。搶答者回答正確后,主持人可按下加分鍵,對應于選手編號的數(shù)碼管顯示數(shù)字就增加(按下一次加一分,最高顯示9分),反之,搶答者回答錯誤后,在該選手的得分數(shù)不為0時,主持人可按下減分鍵(按下
3、一次減一分)。關鍵詞:單片機、AT89C51、搶答器 目錄第一章 概述1第二章 各模塊的選擇和論證21. 方框圖2 2.1搶答器顯示模塊選擇22.2 控制器選擇32.3 鍵盤選擇32.4 時鐘頻率電路的設計42.5 復位電路的設計52.6 報警電路53. 系統(tǒng)硬件連接圖64. 元器件清單6第三章 軟件的設計63.1程序流程圖73.2源程序8第四章 系統(tǒng)調(diào)試164.1 硬件調(diào)試問題分析174.2 軟件調(diào)試問題分析17參考文獻193第1章 概述 隨著電子技術的發(fā)展,諸如智力競賽、娛樂項目越來越多,這就需要一個能在人非常多的情況下爭取到發(fā)言或演示的裝置,搶答器就滿足了這樣的要求歐,近年來由于數(shù)字電子
4、技術的發(fā)展,數(shù)字搶答器也應運而生,因為它設計簡單,功能穩(wěn)定的優(yōu)點被廣泛應用于各種競賽項目。此次設計提出了用AT89C51單片機為核心控制元件,設計一個簡易的搶答器,本方案以AT89C51單片機作為主控核心,與晶振、數(shù)碼管、蜂鳴器等構成六路搶答器,利用了單片機的延時電路、按鍵復位電路、時鐘電路、定時/中斷等電路,設計的六路搶答器具有實時顯示搶答選手的號碼和搶答時間的特點,還有復位電路,使其再開始新的一輪的答題和比賽,同時還利用C51語言編程,使其實現(xiàn)搶答器的一些基本的功能。本設計的系統(tǒng)實用性強、判斷精確、操作簡單、擴展功能強。它的功能實現(xiàn)是比賽開始,主持人讀完題之后按下?lián)尨疰I,聲音提示,提示音結(jié)
5、束后搶答倒計時開始,此時數(shù)碼管開始進行10s的倒計時,直到有一個選手搶答,選手按下?lián)尨疰I時有聲音提示并在對應的數(shù)碼管上顯示出該選手的編號和搶答所剩的時間。如果在規(guī)定的10s時間內(nèi)沒有做出搶答,鳴笛提示本輪搶答結(jié)束,則此題作廢,即開始重新一輪的搶答。下一輪搶答前先將時間歸零,再按下?lián)尨疰I即開始。搶答者回答正確后,主持人可按下加分鍵,對應于選手編號的數(shù)碼管顯示數(shù)字就增加(按下一次加一分,最高顯示9分),反之,搶答者回答錯誤后,在該選手的得分數(shù)不為0時,主持人可按下減分鍵(按下一次減一分)。 第二章 各模塊的選擇和論證1.方框圖LED顯示模塊按鍵掃描AT89C51聲音模塊圖2-0 功能模塊圖第一步按
6、鍵掃描,AT89C51接收到按鍵掃描的信息確定是否開始啟動本輪搶答,當掃描鍵被按下,第二步AT89C51啟動聲音模塊,蜂鳴器發(fā)聲一段時間停止發(fā)聲,與此同時選手開始搶答,第三步AT89C51啟動LED顯示模塊,顯示搶答倒計時,和各選手的的分數(shù),整個過程按鍵掃描一直執(zhí)行,當有選手按下?lián)尨疰I,按鍵掃描終止對選手按鍵的掃描,AT89C51啟動聲音模塊提示有選手按鍵,并將該選手的序號發(fā)送到LED顯示,第四步,按鍵掃描對加減分按鍵掃描,按鍵每按下一次對相應的選手對應的數(shù)碼管上顯示的分數(shù)加減一,直到搶答復位鍵的按下,開始新的一輪循環(huán)。當?shù)褂嫊r結(jié)束時選手仍然沒有按鍵,AT89C51啟動聲音模塊,提示本輪搶答結(jié)
7、束。2.1搶答器顯示模塊選擇顯示模塊主要是顯示搶答的時間,組別號碼和選手得分情況。在使用傳統(tǒng)的數(shù)碼管顯示。數(shù)碼管具有:低能耗、低損耗、低壓、壽命長、耐老化、防曬、防潮、防火、防高(低)溫,對外界環(huán)境要求低,易于維護,同時其精度高,稱量快,精確可靠,操作簡單。數(shù)碼顯示是采用BCD編碼顯示數(shù)字,程序編譯容易,資源占用較少。顯示功能與硬件關系極大,當硬件固定后,如何在不引起操作者誤解的前提下提供盡可能豐富的信息,全靠軟件來解決。在這里我們使用的是七段數(shù)碼管顯示,通常在顯示上我們采用的方法一般包括兩種:一種是靜態(tài)顯示,一種是動態(tài)顯示。其中靜態(tài)顯示的特點是顯示穩(wěn)定不閃爍,程序編寫簡單,但占用端口資源多;
8、動態(tài)顯示的特點是:顯示穩(wěn)定性沒靜態(tài)好,程序編寫復雜,但是相對靜態(tài)顯示而言占用端口資源少。在本設計中根據(jù)實際情況采用的是動態(tài)顯示方法。4位8段數(shù)碼管顯示電路如下圖所示。圖 2-1 4位七段數(shù)碼管顯示電路圖上圖中數(shù)碼管采用的是4位一體七段共陽數(shù)碼管,其中AH段分別接到單片機的P0口,由單片機輸出的P0口數(shù)據(jù)來決定段碼值,位選碼COM1,COM2,COM3,COM4,(COM1,COM2,COM3,COM4)分別接到單片機的P20,P21,P22 ,P23,(P24,P25,P26,P27)由單片機來決定當前該顯示的是哪一位。在圖中還有一個排阻,連接在P0口上,用作P0口的上拉電阻,保證P0口沒有數(shù)
9、據(jù)輸出時候處于高電平狀態(tài)。通過查表法,將其在數(shù)碼管上顯示出來,其中P0口為字型碼輸入端,P2口的8位為字選段輸入段。在這里我們通過查表將字型碼送給8段數(shù)碼管顯示的數(shù)字。2.2 控制器選擇控制器主要用于對顯示、搶答、聲音、計分等模塊進行控制。采用ATMEL公司的AT89C51作為系統(tǒng)控制器的CPU方案。單片機算術運算功能強,軟件編程靈活、自由度大,可以用軟件編程實現(xiàn)各種算法和邏輯控制,并且由于其功耗低、體積小、技術成熟和成本低等優(yōu)點,使其在各個領域應用廣泛。2.3 鍵盤選擇鍵盤是單片機不可缺少的輸入設備,是實現(xiàn)人機對話的紐帶。鍵盤按結(jié)構形式可以分為非編碼鍵盤和編碼鍵盤,前者用軟件方法產(chǎn)生鍵碼,而
10、后者則用硬件方法來產(chǎn)生鍵碼。在單片機中使用的都是非編碼鍵盤,因為非編碼鍵盤結(jié)構簡單,成本低廉,非編碼鍵盤的類型很多,常用的有獨立式鍵盤,行列式鍵盤等。本設計采用獨立式鍵盤:鍵盤接口中使用多少根I/O線,鍵盤中就有幾個按鍵,鍵盤接口使用了8根I/O口線,該鍵盤就有8個按鍵,這種類型的鍵盤,其按鍵比較少,且鍵盤中各按鍵的工作互不干擾。因此可以根據(jù)實際需要對鍵盤中的按鍵靈活的編碼。如圖2-2。最簡單的編碼方式就是根據(jù)I/O輸入口所直接反映的相應按鍵,按下的狀態(tài)進行編碼,稱按鍵直接狀態(tài)碼,對于這樣編碼的獨立式鍵盤,CPU可以通過直接讀取I/O口的狀態(tài)來獲取按鍵的直接狀態(tài)編碼值,根據(jù)這個值直接進行按鍵識
11、別,這樣形式的鍵盤結(jié)構簡單,按鍵識別容易。獨立式鍵盤的缺點是需要占用比較多的I/O口線,當單片機應用系統(tǒng)鍵盤中需要的按鍵比較少或I/O口線比較富余時,可以采用這樣類型的鍵盤。 圖2-2 獨立式鍵盤2.4 時鐘頻率電路的設計單片機必須在時鐘的驅(qū)動下才能工作。在單片機內(nèi)部有一個時鐘振蕩電路,只需要外接一個振蕩源就能產(chǎn)生一定的時鐘信號送到單片機內(nèi)部的各個單元,決定單片機的工作速度。時鐘電路如下圖所示。圖 2-3 外部振蕩源電路一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個電容C1,C
12、2的作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進行微調(diào)。單片機在工作時,由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時鐘信號的周期稱為時鐘周期。其大小是時鐘信號頻率的倒數(shù)。圖中時鐘頻率為12MHz。2.5 復位電路的設計 單片機的第9腳RST為硬件復位端,只要將該端持續(xù)4個機器周期的高電平即可實現(xiàn)復位,復位后單片機的各狀態(tài)都恢復到初始化狀態(tài),其電路圖如下所示:圖2-4 按鍵復位電路2.6 報警電路 利用程序來控制單片機某個口線的“高”電平或“低”電平,接上蜂鳴器就能發(fā)出聲音,若再利用延時程序控制“高”或“低”電平的持續(xù)時間,就能改變蜂鳴器鳴叫的時間。本文設計如下圖所示。圖中利
13、用單片機的I/O端口P16,單片機通過設定該端口的高、低電平使蜂鳴器發(fā)聲。 圖 2-5 發(fā)聲電路3. 系統(tǒng)硬件連接原理總圖 圖2-6 系統(tǒng)硬件連接原理圖4. 元器件清單4位8段數(shù)碼管 2只;AT89C51芯片 1只;12M晶振 1只;30PF瓷片電容 2只;10UF電解電容 1只;電阻1K、200、2.2K 各一只;按鍵BUTTON 11只;三極管8550 1只;蜂鳴器 1只;排阻471、102 各一只; 74LS245 一只; 第三章 軟件的設計3.1程序流程圖開始設置定時器檢測搶答開始鍵是否按下啟動定時器、蜂鳴器 檢測搶答鍵是否按下顯示選手編號倒計時是否完成檢測加分鍵是否按下檢測減分鍵是否
14、按下對應數(shù)碼管加一對應數(shù)碼管減一檢測搶答復位鍵是否按下圖3-03.2原程序 #include <reg51.h>#define uint unsigned int#define uchar unsigned char/*-共陽極0-9的數(shù)碼管段碼-*/unsigned char code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc0;/*- 變量定義-*/sbit start=P36;sbit reset=P37;sbit key1=P10;sbit key2=P11;sbit key3=P12;sbit
15、key4=P13;sbit key5=P14;sbit key6=P15;sbit key7=P16;sbit key8=P17;sbit jia=P34;sbit jian=P35;bit action = 0;uchar second=10,a7=0;uchar timer0_count = 0;uchar number=0;uchar number_display = 0;uchar k;/*- 延時函數(shù)-*/void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=120;y>0;y-);/*- 顯示函數(shù)-*/void display(
16、uchar number,uchar second)P2 = 0x01;P0 = tablesecond;delay(1);P2 = 0x02;P0 = tablenumber;delay(1);P2 = 0x04;P0 = tablea0;delay(1);P2 = 0x08;P0 = tablea1;delay(1);P2 = 0x10; P0 = tablea2;delay(1);P2 = 0x20;P0 = tablea3;delay(1);P2 = 0x40;P0 = tablea4;delay(1);P2 = 0x80;P0 = tablea5;delay(1);/*- 搶答開始按
17、鍵檢測函數(shù)-*/void start_keyscan() void fengling();while(start = 0) key7=0;display(number_display,second);if(start = 1) key7=1;action = 1;TR0 = 1;/*- 搶答者按鍵檢測函數(shù)-*/uchar key_scan8()if(key1 = 0)delay(8);if(key1 = 0)number = 1;number_display = number;if(key2 = 0)delay(8);if(key2 = 0)number = 2;number_display
18、= number;if(key3 = 0)delay(8);if(key3 = 0)number = 3;number_display = number;if(key4 = 0)delay(8);if(key4 = 0)number = 4;number_display = number;if(key5 = 0)delay(8);if(key5 = 0)number = 5;number_display = number;if(key6 = 0)delay(8);if(key6 = 0)number = 6;number_display = number;if(number_display !
19、= 0)return number_display;elsereturn 0;/*- 搶答復位函數(shù)-*/void reset_keyscan()if(reset = 0)delay(8);if(reset = 0)number_display = 0; second=10; /*- 主函數(shù)-*/void main()TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=0;P2=0x00;while(1) reset_keyscan();start_keyscan(); if(jia=0&&an
20、umber-1<9) delay(10); while(jia=0) display(number_display,second); anumber-1=anumber-1+1; if(jian=0&&anumber-1>0) delay(10); while (jian=0) display(number_display,second); anumber-1=anumber-1-1; while(action) while(!key_scan8() /無人搶答display(number_display,second);if(second = 0)second =
21、 10;break;TR0 = 0;key7=0;delay(80); display(number_display,second); key7=1;action = 0;break;display(number_display,second); /*- 定時中斷-*/void timer0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;timer0_count +;if(timer0_count = 20)second -;timer0_count = 0; if(second=0) key7=0; delay(60); k
22、ey7=1; 第四章 系統(tǒng)調(diào)試系統(tǒng)調(diào)試包括硬件調(diào)試和軟件調(diào)試,而且兩者是密不可分的。我們設計好的硬件電路和軟件程序,只有經(jīng)過聯(lián)合調(diào)試,才能驗證其正確性;軟硬件的配人情況以及是否達到設計任務的要求,也只有經(jīng)過調(diào)試,才能發(fā)現(xiàn)問題并加以解決、完善,最終開發(fā)成實用產(chǎn)品。硬件調(diào)試分單元電路調(diào)試和聯(lián)機調(diào)試,單元電路試驗在硬件電路設計時已經(jīng)進行,這里的調(diào)試只是將其制成印刷電路板后試驗電路是否正確,并排除一些加工工藝性錯誤(如錯線、開路、短路等)。這種調(diào)試可單獨模擬進行,也可通過開發(fā)裝置由軟件配合進行,硬件聯(lián)機調(diào)試則必須在系統(tǒng)軟件的配合下進行。軟件調(diào)試一般包括分塊調(diào)試和聯(lián)機調(diào)試兩個階段。程序的分塊調(diào)試一般在單
23、片機開發(fā)裝置上進行,可根據(jù)所調(diào)程序功能塊的入口參量初值編制一個特殊的程序段,并連同被調(diào)程序功能塊一起在開發(fā)裝置上運行;也可配合對應硬件電路單獨運行某程序功能塊,然后檢查是否正確,如果執(zhí)行結(jié)果與預想的不一致,可以通過單步運行或設置斷點的方法,查出原因并加以改正,直到運行結(jié)果正確為止。這時該 程序功能塊已調(diào)試完畢,可去掉附加程序段。其它程序功能塊可按此法進行調(diào)試。程序聯(lián)機調(diào)試就是將已調(diào)試好的各程序功能塊按總體結(jié)構聯(lián)成一個完整程序,在所研制的硬件電路上運行。從而試驗程序整體運行的完整性、正確性和與硬件電路的配合情況。在聯(lián)調(diào)中可能會有某些支路上的程序、功能塊因受條件制約而得不到相應的輸入?yún)?shù),這時,調(diào)
24、試人員應創(chuàng)造條件進行模擬調(diào)試。在聯(lián)調(diào)中如發(fā)現(xiàn)硬件問題也應及時修正,直到單片機系統(tǒng)的軟件、硬件全部調(diào)試成功為止。系統(tǒng)調(diào)試完成后,還要進行一段時間的試運行,從而檢驗系統(tǒng)的穩(wěn)定性和抗干擾能力,驗證系統(tǒng)功能是否達到設計要求,是否達到預期的效果。本設計的調(diào)試方法:先仿真,達到預期效果,4.1 硬件調(diào)試問題分析數(shù)碼管顯示問題:本次設計的最終方案是采用數(shù)碼管顯示屏實現(xiàn)顯示功能,最初數(shù)碼管顯示不正常,亮度不夠。通過調(diào)試發(fā)現(xiàn)這是由于數(shù)碼管的驅(qū)動電流不夠,頭一次增加了數(shù)碼管驅(qū)動74LS245芯片在P0口,數(shù)碼管依舊亮度不夠,經(jīng)分析,驅(qū)動應該加在數(shù)碼管的位選信號上,再一次在P2口上加上74LS245芯片,數(shù)碼管亮度
25、正常。蜂鳴器異常啟動問題:蜂鳴器的啟動/關閉是通過單片機輸出的控制信號來實現(xiàn)的,最初蜂鳴器始終不發(fā)出聲音,經(jīng)過仔細的檢查原件及連接電路,找出了其不發(fā)聲的原因,三級管用成了NPN型的8050,改動芯片為PNP型的8550后,蜂鳴器發(fā)音正常。4.2 軟件調(diào)試問題分析蜂鳴器發(fā)聲異常:蜂鳴器要發(fā)出聲音是通過單片機的P16輸出低電平來實現(xiàn),最初仿真的時候用的是喇叭,它是需要單片機提供一個具有一定頻率的方波信號來發(fā)聲,所以一直不會發(fā)出聲音,修改程序后,解決了該問題。第五章 總結(jié)通過這次畢業(yè)設計,我才明白學習是一個長期積累的過程,在以后的工作、生活中都應該不斷的學習,努力提高自己知識和綜合素質(zhì)。總之,不管學會的還是學不會的的確覺得困難比較多,真是萬事開頭難,不知道如何入手。最后終于做完了有種如釋重負的感覺。此外,還得出一
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 石油化工產(chǎn)品的市場分析與銷售策略考核試卷
- 環(huán)保課件下載
- 聯(lián)誼策劃活動方案
- 環(huán)保工程師課件下載
- 2019-2025年監(jiān)理工程師之合同管理能力提升試卷A卷附答案
- 《高效人力管理策略及其課件制作要點》
- 《三年級下冊彩虹橋課件語》
- 猴痘普及知識培訓課件
- 培訓會議主持流程主持詞
- 2025年盲盒研究分析報告
- 2024年《體育基礎理論》考試題庫(含答案)
- 云南省煙葉生產(chǎn)基礎設施建設管理規(guī)程
- 【正版授權】 ISO 4532:1991 EN Vitreous and porcelain enamels - Determination of the resistance of enamelled articles to impact - Pistol test
- 2023-2024學年人教版數(shù)學八年級下冊期末復習試卷
- 園區(qū)綠化設計方案
- 火力發(fā)電廠汽水管道支吊架設計手冊
- 第五章-包裝容器造型設計
- 數(shù)字貿(mào)易學 課件 第1章 導論
- 《陣列式消聲器技術要求》(T-CAEPI 17-2019)
- (2024版)應對群體性事件的策略與技巧
- 角磨機切割作業(yè)的應急預案
評論
0/150
提交評論