畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)搶答器設(shè)計(jì)_第1頁
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)搶答器設(shè)計(jì)_第2頁
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)搶答器設(shè)計(jì)_第3頁
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)搶答器設(shè)計(jì)_第4頁
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)搶答器設(shè)計(jì)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、海南軟件職業(yè)技術(shù)學(xué)院綜合實(shí)訓(xùn)報(bào)告目錄緒論11.1基于單片機(jī)搶答器的系統(tǒng)結(jié)構(gòu)與原理21.2設(shè)計(jì)內(nèi)容和要求32 硬件設(shè)計(jì)32.1搶答器硬件電路圖32.2搶答器各部分電路設(shè)計(jì)42.2.1單片機(jī)最小系統(tǒng)的設(shè)計(jì)42.2.2搶答器按鍵電路的設(shè)計(jì)62.2.3中斷控制按鍵電路的設(shè)計(jì)62.2.4數(shù)碼管顯示電路的設(shè)計(jì)62.2.5蜂鳴器報(bào)警電路的設(shè)計(jì)73.1主程序設(shè)計(jì)8。83.2延時(shí)程序設(shè)計(jì)9。93.3鍵盤掃描程序設(shè)計(jì)9。93.4數(shù)碼管顯示程序設(shè)計(jì)10。103.5搶答程序設(shè)計(jì)10。103.6倒計(jì)時(shí)程序設(shè)計(jì)12。123.7程序流程圖13。134 仿真調(diào)試194.1 仿真軟件簡介194.1.1 keil 仿真軟件19。

2、194.1.2 proteus仿真軟件194.2 仿真調(diào)試結(jié)果19結(jié)束語22致謝23緒論 1單片機(jī)搶答器的背景二十世紀(jì)跨越了三個(gè)“電”的時(shí)代,即電氣時(shí)代、電子時(shí)代和現(xiàn)已進(jìn)入的電腦時(shí)代。不過,這種電腦,通常是指個(gè)人計(jì)算機(jī),簡稱pc機(jī)。它由主機(jī)、鍵盤、顯示器等組成。還有一類計(jì)算機(jī)。大多數(shù)人卻不怎么熟悉。這種計(jì)算機(jī)就是把智能賦予各種機(jī)械的單片機(jī)(稱微控制器)。顧名思義,這種計(jì)算機(jī)的最小系統(tǒng)只用了一片集成電路,即可進(jìn)行簡單的運(yùn)算和控制。因?yàn)樗捏w積小,通常都藏在被控機(jī)械的“肚子”里。它在整個(gè)裝置中,起著有如人類頭腦的作用,它出了毛病,整個(gè)裝置就癱瘓了。現(xiàn)在,這種單片機(jī)的使用領(lǐng)域已十分廣泛,如智能儀表、

3、實(shí)時(shí)工控、通訊設(shè)備、導(dǎo)航系統(tǒng)、家用電器等。各種產(chǎn)品一旦用上了單片機(jī),就能起到產(chǎn)品升級(jí)換代的功效,常在產(chǎn)品名稱前冠以形容詞“智能型”。在知識(shí)競賽中,往往會(huì)用到搶答器。故此我們就選擇利用單片機(jī)編程來設(shè)計(jì)搶答器,即使兩組的搶答時(shí)間相差幾微秒,也能輕松分辨出哪一組(或哪個(gè)選手)先搶答到題。 2單片機(jī)搶答器的意義本系統(tǒng)采用單片機(jī)作為整個(gè)控制核心。控制系統(tǒng)的四個(gè)模塊為:顯示模塊、儲(chǔ)存模塊、語音模塊、搶答模塊。該系統(tǒng)通過開關(guān)電路八個(gè)按鍵輸入搶答信號(hào),利用一個(gè)數(shù)碼管來完成顯示功能用按鍵來讓選手進(jìn)行搶答,在數(shù)碼管上顯示哪一組先答題的,從而實(shí)現(xiàn)整個(gè)搶答過程。本文主要介紹了單片機(jī)搶答器設(shè)計(jì)及工作原理,以及它的實(shí)際用

4、途。系統(tǒng)工作原理采用at89c51單片機(jī)作為核心。控制系統(tǒng)的四個(gè)模塊為:顯示模塊、儲(chǔ)存模塊、語音模塊、搶答模塊。該系統(tǒng)通過開關(guān)電路八個(gè)按鍵輸入搶答信號(hào),利用一個(gè)數(shù)碼管來完成顯示功能。工作時(shí),用按鍵通過開關(guān)電路輸入各路的搶答信號(hào),經(jīng)單片機(jī)的處理,輸出控制信號(hào),單片機(jī)控制的智能搶答器設(shè)計(jì)。3搶答器的應(yīng)用隨著我國經(jīng)濟(jì)和文化事業(yè)的發(fā)展,在很多公開競爭場合要求有公正的競爭裁決,諸如證券、股票交易及各種智力競賽等,因此出現(xiàn)了搶答器。搶答器一般由很多電路組成,線路復(fù)雜,可靠性不高,功能也比較簡單,特別是當(dāng)搶答路數(shù)多時(shí),實(shí)現(xiàn)起來就更加的困難。因此我們設(shè)計(jì)了以單片機(jī)為核心的新型智能搶答器,在保留原始搶答器的基本

5、功能的同時(shí)又增加了數(shù)碼管顯示電路實(shí)現(xiàn)了其它功能。搶答器又稱為第一信號(hào)鑒別器,其主要應(yīng)用于各種知識(shí)競賽、文藝活動(dòng)等場合。1 系統(tǒng)設(shè)計(jì)方案1.1基于單片機(jī)搶答器的系統(tǒng)結(jié)構(gòu)與原理圖1所示為搶答器電路,搶答器電路實(shí)際上就是單片機(jī)最小系統(tǒng)的應(yīng)用,主要由單片機(jī)芯片加上時(shí)鐘電路和復(fù)位電路以及按鍵和數(shù)碼管顯示電路及報(bào)警電路組成。18為8個(gè) 搶答鍵。p1.0p1.7為8路搶答信號(hào)輸入端。當(dāng)有搶答鍵按下時(shí),對(duì)應(yīng)輸入端為低電平“0”反之為高電平“1”。開始搶答鍵為搶答啟動(dòng)鍵。在搶答開始時(shí),按動(dòng)一下開始搶答鍵,向單片機(jī)申請(qǐng)一次into中斷單片機(jī)在中斷服務(wù)程序中對(duì)搶答信號(hào)進(jìn)行采樣和識(shí)別處理。采用四位led共陰極數(shù)碼管以

6、動(dòng)態(tài)掃描方式對(duì)搶答鍵號(hào)、違規(guī)搶答鍵號(hào)、倒計(jì)時(shí)時(shí)間等信息進(jìn)行顯示。蜂鳴器對(duì)違規(guī)搶答信號(hào)進(jìn)行報(bào)警,以示出錯(cuò)警告。 圖1 搶答器電路圖1.2設(shè)計(jì)內(nèi)容和要求本系統(tǒng)的設(shè)計(jì)內(nèi)容和要求如下:1 主持人按“搶答開始”鍵,立刻進(jìn)入搶答倒計(jì)時(shí)(預(yù)設(shè)15s搶答時(shí)間),如果有選手搶答,并會(huì)顯示其號(hào)碼并立刻進(jìn)入回答時(shí)間(預(yù)設(shè)30s搶答時(shí)間),不進(jìn)行搶答查詢,所以只有第一個(gè)按搶答的選手有效。2 如果主持人未按“搶答開始”鍵,而有人按了搶答鍵,犯規(guī)搶答,led上顯示犯規(guī)號(hào)數(shù)并揚(yáng)聲器發(fā)聲連續(xù)響十下。3 p3.2為開始搶答,p3.6為停止,p1.0-p1.7為八路搶答輸入,數(shù)碼管選p0口,位選p2口低4位,蜂鳴器輸出為p3.7

7、口。2 硬件設(shè)計(jì)2.1搶答器硬件電路圖搶答器硬件電路圖如圖1所示,主要包括以下幾部分:(1)單片機(jī)最小系統(tǒng)電路:單片機(jī)最小系統(tǒng),或者稱為最小應(yīng)用系統(tǒng):是指用最少的元件組成的單片機(jī)可以工作的系統(tǒng)。對(duì)51系列單片機(jī)來說,最小系統(tǒng)一般應(yīng)該包括:單片機(jī)、晶振電路、復(fù)位電路。復(fù)位電路:由電容串聯(lián)電阻構(gòu)成,當(dāng)系統(tǒng)一上電,rst腳將會(huì)出現(xiàn)高電平,并且,這個(gè)高電平持續(xù)的時(shí)間由電路的rc值來決定.典型的51單片機(jī)當(dāng)rst腳的高電平持續(xù)兩個(gè)機(jī)器周期以上就將復(fù)位,所以,適當(dāng)組合rc的取值就可以保證可靠的復(fù)位。一般教科書推薦c 取10u,r取10k。(2)搶答按鍵電路:搶答按鍵電路由8個(gè)按鈕和8個(gè)均值的電阻通過總線連

8、接在at89c51的p1.0至p1.7實(shí)現(xiàn)功能。(3)中斷控制按鍵電路:由兩個(gè)10k的電阻,和兩個(gè)按鈕通過圖7的連接,并且d0、d1分別連接在at89c51芯片的p3.2口和p3.6.其中一個(gè)按鈕為開始搶答鍵,另一個(gè)為復(fù)位鍵。(4)數(shù)碼管顯示電路:由七段數(shù)碼管7seg-mpx-ca、respack-8、74ls244及導(dǎo)線按圖8連接其中74ls244主要用于三態(tài)輸出,作為地址驅(qū)動(dòng)器、時(shí)鐘驅(qū)動(dòng)器、總線驅(qū)動(dòng)器和定向發(fā)送器等.(5)蜂鳴器報(bào)警電路:由一個(gè)200歐的電阻和speaker連接,其中揚(yáng)聲器的一端與電阻相連,另一端連在at89c51p3.7口。揚(yáng)聲器起到報(bào)警作用,若有選手出現(xiàn)搶答犯規(guī),則揚(yáng)聲

9、器發(fā)聲。2.2搶答器各部分電路設(shè)計(jì)2.2.1單片機(jī)最小系統(tǒng)的設(shè)計(jì)單片機(jī)的最小系統(tǒng),或者稱為最小應(yīng)用系統(tǒng),是指用最少的元件組成的單片機(jī)可以工作的系統(tǒng)。對(duì)51系列單片機(jī)來說,最小系統(tǒng)一般應(yīng)該包括單片機(jī)芯片,時(shí)鐘電路和復(fù)位電路等三部分組成。最小系統(tǒng)電路圖如圖2所示。圖2 單片機(jī)最小系統(tǒng)圖2.2.1.1時(shí)鐘電路設(shè)計(jì)時(shí)鐘電路用于產(chǎn)生mcs-51單片機(jī)工作所必需的時(shí)鐘控制信號(hào)。時(shí)鐘頻率直接影響單片機(jī)的速度,電路的質(zhì)量直接影響系統(tǒng)的穩(wěn)定性。常用的時(shí)鐘電路有兩種方式:內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。(1)內(nèi)部時(shí)鐘方式利用芯片內(nèi)部的振蕩器,然后在引腳xtall和xtal2兩端跨接晶體振蕩器(簡稱晶振),就構(gòu)成了穩(wěn)定

10、的自激振蕩器,發(fā)出的脈沖直接送入內(nèi)部時(shí)鐘電路。具體的接線方法如圖3所示。外接晶振時(shí),c l和c2的值通常選擇為30pf左右;c l、c2對(duì)頻率有微調(diào)作用,晶振或陶瓷諧振器的頻率范圍可在1.212mhz之間選擇,其典型值為12mhz或6mhz。某些高速單片機(jī)芯片的時(shí)鐘頻率已達(dá)40mhz。(2)外部時(shí)鐘方式外部時(shí)鐘信號(hào)由外部振蕩器產(chǎn)生,它的波形應(yīng)為方波,頻率應(yīng)符合所用的mcs-51單片機(jī)的具體要求。接入外部時(shí)鐘時(shí),應(yīng)根據(jù)不同類型的單片機(jī),選擇相應(yīng)的連線方式,如圖4所示。本系統(tǒng)采用內(nèi)部時(shí)鐘電路方式。圖3 mcs-51采用內(nèi)部時(shí)鐘的接線圖圖4 mcs-51單片機(jī)與外部時(shí)鐘的連接方式2.2.1.2復(fù)位電

11、路設(shè)計(jì)如圖5(a)所示為開機(jī)復(fù)位電路,也稱上電復(fù)位電路,由電容c1和電阻r1組成,一般c1取10uf,r1取8.2k。上電復(fù)位電路是利用電容兩端電壓不能突變的原理實(shí)現(xiàn)的。當(dāng)斷電時(shí),電容c1經(jīng)放電后電荷為0;當(dāng)上電時(shí),由于電容兩端電壓不能突變,rst端的電平為高電平,隨著電容的充電,rst端的電位逐漸降低,最終變?yōu)?。從上電到電容充電結(jié)束,rst端的電平由高電平到低電平,只要選擇合適的電容、電阻參數(shù),就能夠保證兩個(gè)以上機(jī)器周期的復(fù)位高電平時(shí)間,從而保證復(fù)位的實(shí)現(xiàn)。如圖5(b)所示為開機(jī)復(fù)位與人工復(fù)位電路也稱按鍵復(fù)位電路。在系統(tǒng)運(yùn)行過程中,只要按下按鍵就可以復(fù)位。一般r1=1k,r2=200,c=

12、22uf,按下按鍵,可以簡單看成兩個(gè)電阻串聯(lián),因?yàn)閞1的電阻大,因而rst分壓為高電平,系統(tǒng)復(fù)位,松開按鍵后rst電壓給c充電,隨著電容的充電,rst端的電位逐漸降低,最終變?yōu)?。系統(tǒng)開始工作。本系統(tǒng)采用按鍵復(fù)位電路。 (a)開機(jī)復(fù)位電路 (b)開機(jī)復(fù)位/人工復(fù)位電路圖5 mcs-51單片機(jī)的復(fù)位電路2.2.2搶答器按鍵電路的設(shè)計(jì)搶答器輸入信號(hào)由八個(gè)按鍵控制,當(dāng)有鍵按下的時(shí)候,就會(huì)產(chǎn)生有效的輸入信號(hào),本設(shè)計(jì)使用了上拉電阻把輸入信號(hào)先嵌位在高電平,當(dāng)有按鍵按下時(shí)便使與這個(gè)按鍵相連的引腳變成低電平,產(chǎn)生一個(gè)低電平的輸入信號(hào)。圖6 搶答器按鍵電路2.2.3中斷控制按鍵電路的設(shè)計(jì) 如圖7為中斷按鍵控制

13、電路,其中有兩個(gè)按鍵d0、d1分別連接在at89c51芯片的p3.2口和p3.6.其中一個(gè)按鈕為開始搶答鍵,另一個(gè)為復(fù)位鍵。開始搶答按鈕由主持人按,當(dāng)主持人按下開始搶答后,選手方可搶答,否則視為搶答違規(guī);另一按鈕為復(fù)位按鈕,搶答到的選手在限制的時(shí)間內(nèi)回答問題,若選手提前回答完畢,則主持人可通過復(fù)位鍵進(jìn)行下一輪的搶答。圖7 中斷按鍵控制電路2.2.4數(shù)碼管顯示電路的設(shè)計(jì)本設(shè)計(jì)使用七段數(shù)碼管顯示,通常在顯示上我們采用的方法一般包括兩種:一種是靜態(tài)顯示,一種是動(dòng)態(tài)顯示。其中靜態(tài)顯示的特點(diǎn)是顯示穩(wěn)定不閃爍,程序編寫簡單,但占用端口資源多;動(dòng)態(tài)顯示的特點(diǎn)是顯示穩(wěn)定性沒靜態(tài)好,程序編寫復(fù)雜,但相對(duì)靜態(tài)顯示

14、而言占用資源少。本設(shè)計(jì)采用的是動(dòng)態(tài)顯示方法。圖8 數(shù)碼管顯示電路 圖8中數(shù)碼管采用的是4位七段共陰極數(shù)碼管,其中ah段分別接到單片機(jī)的p0口,由單片機(jī)輸出p0口數(shù)據(jù)來決定段碼值,位選碼com1、com2、com3、com4分別接到單片機(jī)的p2.0、p2.1、p2.2、p2.3,由單片機(jī)來決定當(dāng)前該顯示的哪一位。圖中還有八個(gè)10k的電阻,連接在p0口上,用作p0口的上拉電阻,保證p0口沒有數(shù)據(jù)輸出時(shí)候出于高電平狀態(tài)。2.2.5蜂鳴器報(bào)警電路的設(shè)計(jì) 我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單片機(jī)某個(gè)口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)

15、出一定頻率的聲音,若再利用延時(shí)控制高或低電平的持續(xù)時(shí)間,就能改變輸出頻率,從而改變音頻,使喇叭發(fā)出不同的聲音。圖9中單片機(jī)的14腳輸出具有復(fù)合功能,此處用到了單片機(jī)17腳的io端口功能,單片機(jī)通過內(nèi)部定時(shí)器的操作實(shí)現(xiàn)交替變換的波形輸出驅(qū)動(dòng)揚(yáng)聲器發(fā)聲。圖9 蜂鳴器報(bào)警電路3 軟件設(shè)計(jì)程序總體說明:實(shí)現(xiàn)搶答器功能的程序主要包括:主程序,沒有進(jìn)入中斷時(shí),掃描選手是否犯規(guī),有選手犯規(guī),蜂鳴器叫,并顯示選手號(hào);延時(shí)程序;鍵盤掃描程序,判斷是否有按鍵按下,有按鍵按下時(shí)返回鍵值;數(shù)據(jù)顯示程序,數(shù)碼管數(shù)據(jù)顯示,倒計(jì)時(shí)和座位號(hào);外部中斷0,搶答程序;t0 定時(shí)中斷,倒計(jì)時(shí)程序等。分別介紹如下,程序清單見附錄。3

16、.1主程序設(shè)計(jì)void main()uchar i,j;p1=0xff;p2=0xff;p0=0xff;tmod=0x01; /定時(shí)中斷初始化th0=0x3c;tl0=0xb0;ea=1;ex0=1;et0=1;it0=1;pt0=1;ss=10;s=10;while(1)keyscan(); if(kk!=9) /有選手犯規(guī)for(i=0;i<100;i+)keyscan(); p2=0x08;p0=codekeykk+1;delay(10); /顯示犯規(guī)的選手for(j=0;j<3;j+)naba=0; /蜂鳴器叫delay(10);naba=1;delay(10);kk=9;

17、3.2延時(shí)程序設(shè)計(jì)void delay(uchar t1)uchar i,j;for(i=0;i<t1;i+)for(j=0;j<143;j+);3.3鍵盤掃描程序設(shè)計(jì)uchar keyscan() uchar key;p1=0xff;key=p1;if(key!=0xff)delay(10); /延時(shí)去抖if(key!=0xff)switch(key)case 0xfe: kk=0;break;case 0xfd: kk=1;break;case 0xfb: kk=2;break;case 0xf7: kk=3;break;case 0xef: kk=4;break;case 0

18、xdf: kk=5;break;case 0xbf: kk=6;break;case 0x7f: kk=7;break;return(kk);return(9);3.4數(shù)碼管顯示程序設(shè)計(jì)void display() p2=0x01;p0=codekeyss;delay(10);p2=0x02;p0=codekeys;delay(10);p2=0x04;p0=0xc0;delay(10);p2=0x08;p0=codekeykk+1;delay(10);3.5搶答程序設(shè)計(jì)void int0() interrupt 0naba=1;rst=1;tr0=1;s=3;ss=0;kk=9;while(s

19、!=0) /3s的倒計(jì)時(shí)display();s=5;ss=1;while(s|ss)!=0&&kk=9) /15秒的搶答時(shí)間,時(shí)間到或者有選手按下時(shí),跳出循環(huán) keyscan(); display();if(kk!=9)s=0;ss=3;while(rst=1&&(s|ss)!=0) display();tr0=0;s=10;ss=10;kk=9;p2=0x08;p0=0x80;delay(10);/display();3.6 倒計(jì)時(shí)程序設(shè)計(jì)void time() interrupt 1uchar rr,ms;rr=0;th0=0x3c;tl0=0xb0;ms+

20、;if(ms=20)ms=0;if(s!=0)if(s>0)s-;if(s=0)rr=1;if(rr!=1&ss!=0&s=0)rr=0;ss-;s=9;3.7程序流程圖開始初始化有輸入信號(hào)嗎?鍵盤掃描程序查表取數(shù)并輸出結(jié)果結(jié)束儲(chǔ)存輸入信號(hào)#include<reg51.h>#define uchar unsigned charsbit rst=p36; /復(fù)位鍵sbit naba=p37; /蜂鳴器uchar s,ss; /倒計(jì)時(shí)的位秒,十秒uchar kk=9; /鍵值uchar codekey=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,

21、0x7d,0x07,0x7f,0x6f,0x3f; /09 數(shù)碼管的編號(hào)void delay(uchar t1);/延時(shí)函數(shù)uchar keyscan();/鍵盤掃描void display(); /數(shù)據(jù)顯示/*/延時(shí)函數(shù)/*/void delay(uchar t1)uchar i,j;for(i=0;i<t1;i+)for(j=0;j<143;j+);/*/判斷是否有按鍵按下,有按鍵按下時(shí)返回鍵值/*/uchar keyscan() uchar key;p1=0xff;key=p1;if(key!=0xff)delay(10); /延時(shí)去抖if(key!=0xff)switch(

22、key)case 0xfe: kk=0;break;case 0xfd: kk=1;break;case 0xfb: kk=2;break;case 0xf7: kk=3;break;case 0xef: kk=4;break;case 0xdf: kk=5;break;case 0xbf: kk=6;break;case 0x7f: kk=7;break;return(kk);return(9);/*/數(shù)碼管數(shù)據(jù)顯示,倒計(jì)時(shí)和座位號(hào)/*/void display() p2=0x01;p0=codekeyss;delay(10);p2=0x02;p0=codekeys;delay(10);p2

23、=0x04;p0=0xc0;delay(10);p2=0x08;p0=codekeykk+1;delay(10);/*/t0 定時(shí)中斷,倒計(jì)時(shí)/*/void time() interrupt 1uchar rr,ms;rr=0;th0=0x3c;tl0=0xb0;ms+;if(ms=20)ms=0;if(s!=0)if(s>0)s-;if(s=0)rr=1;if(rr!=1&ss!=0&s=0)rr=0;ss-;s=9;/*/外部中斷0,進(jìn)入搶答階段/*/void int0() interrupt 0naba=1;rst=1;tr0=1;s=3;ss=0;kk=9;whi

24、le(s!=0) /3s的倒計(jì)時(shí)display();s=5;ss=1;while(s|ss)!=0&&kk=9) /15秒的搶答時(shí)間,時(shí)間到或者有選手按下時(shí),跳出循環(huán) keyscan(); display();if(kk!=9)s=0;ss=3;while(rst=1&&(s|ss)!=0) display();tr0=0;s=10;ss=10;kk=9;p2=0x08;p0=0x80;delay(10);/display();/*/主函數(shù),沒有進(jìn)入中斷時(shí),掃描選手是否犯規(guī),有選手犯規(guī),蜂鳴器叫,并顯示選手號(hào)/*/void main()uchar i,j;p1=

25、0xff;p2=0xff;p0=0xff;tmod=0x01; /定時(shí)中斷初始化th0=0x3c;tl0=0xb0;ea=1;ex0=1;et0=1;it0=1;pt0=1;ss=10;s=10;while(1)keyscan(); if(kk!=9) /有選手犯規(guī)for(i=0;i<100;i+)keyscan(); p2=0x08;p0=codekeykk+1;delay(10); /顯示犯規(guī)的選手for(j=0;j<3;j+)naba=0; /蜂鳴器叫delay(10);naba=1;delay(10);kk=9;4 仿真調(diào)試4.1 仿真軟件簡介4.1.1 keil 仿真軟件

26、keil c51是美國keil software公司出品的51系列兼容單片機(jī)c語言軟件開發(fā)系統(tǒng),與匯編相比,c語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。keil提供了包括c編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(uvision)將這些部分組合在一起。運(yùn)行keil軟件需要win98、nt、win2000、winxp等操作系統(tǒng)。如果你使用c語言編程,那么keil幾乎就是你的不二之選,即使不使用c語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。4.1.2 proteus仿真軟件

27、proteus軟件是英國labcenter electronics公司出版的eda工具軟件(該軟件中國總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司)。它不僅具有其它eda工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。proteus是世界上著名的eda工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到pcb設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、pcb設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理

28、器模型支持8051、hc11、pic10/12/16/18/24/30/dspic33、avr、arm、8086和msp430等,2010年即將增加cortex和dsp系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持iar、keil和mplab等多種編譯器。4.2 仿真調(diào)試結(jié)果(1)搶答犯規(guī)顯示,且揚(yáng)聲器發(fā)聲,仿真結(jié)果如圖10所示。圖10 搶答犯規(guī)仿真圖(2)搶答器開始時(shí)數(shù)碼管顯示序號(hào)0,選手搶答實(shí)行優(yōu)先鎖存,優(yōu)先搶答選手的編號(hào)一直保持到主持人將系統(tǒng)清除為止。搶答后顯示優(yōu)先搶答者序號(hào),并且不出現(xiàn)其他搶答者的序號(hào),仿真結(jié)果如圖11所示。圖11 開始搶答仿真圖(3)搶答器具有定時(shí)搶答

29、功能,仿真結(jié)果如圖12所示。圖12定時(shí)搶答仿真圖(4)主持人按下復(fù)位開關(guān),使得搶答器再次進(jìn)入禁止?fàn)顟B(tài),選手編號(hào)的led數(shù)字顯示器燈熄滅,電路進(jìn)入原來的初始狀態(tài),準(zhǔn)備進(jìn)入下一輪的搶答,仿真結(jié)果如圖13所示。圖xx 復(fù)位仿真圖圖13復(fù)位仿真圖結(jié)束語 通過本次課程設(shè)計(jì)使我對(duì)proteus仿真軟件的使用有了更進(jìn)一步的了解和掌控。在最初編寫過程中,我也曾經(jīng)因?yàn)閷?shí)踐經(jīng)驗(yàn)的缺乏失落過,也曾經(jīng)因仿真成功而熱情高漲。特別是proteus仿真軟件的使用,不知是由于電腦的問題還是怎么,這個(gè)軟件的安裝花了我很長的時(shí)間,好不容易安裝好了,自己對(duì)編程又有點(diǎn)不熟練,只能自己多看書,當(dāng)我把程序?qū)胄酒M(jìn)行仿真時(shí),也沒能一次

30、成功,總是要經(jīng)過無數(shù)次的更改才能實(shí)現(xiàn)結(jié)果,程序正常運(yùn)行的那一刻,心中真是有幾分的喜悅。對(duì)能力強(qiáng)的人來說是挺簡單的,但對(duì)我來說,真是花了不少的心血啊。 這次課程設(shè)計(jì)讓我充分理解了at89c51芯片的工作原理,知道了搶答器的硬件和軟件的實(shí)現(xiàn)過程,并且通過自己動(dòng)手編寫程序來控制搶答器的工作,我感到非常有成就感,也鍛煉了我的編程能力。在剛開始編程的時(shí)候,我感到很茫然,不知道怎么樣下手,但是通過自己的仔細(xì)分析和老師的細(xì)心認(rèn)真分析了原來已有的代碼后,和應(yīng)有的硬件后,經(jīng)過多次調(diào)試和測試終于成功了。 在此我非常感謝的是我的指導(dǎo)老師何玲老師,感謝老師的細(xì)心認(rèn)真的輔導(dǎo),交給我許多原來不知道的知識(shí)。這次課程設(shè)計(jì)能夠

31、順利的完成,當(dāng)然有我個(gè)人的努力,但同時(shí)也離不開指導(dǎo)老師和同學(xué)們的幫助。致謝本論文自始至終是在何玲老師的關(guān)心和指導(dǎo)下完成的。導(dǎo)師為論文課題的研究提出了許多指導(dǎo)性的意見,為論文的撰寫、修改提出了許多具體的指導(dǎo)和幫助。在兩年的學(xué)習(xí)中,何玲老師在學(xué)習(xí)上給了我極大的幫助,何玲老師豐富的實(shí)踐經(jīng)驗(yàn)給我留下了深刻的印象,這一切將使我終生受益。在此,衷心感謝何老師對(duì)我的培養(yǎng)與教育。感謝在這段時(shí)間劉華赟同學(xué)對(duì)我的幫助,在近三年的學(xué)習(xí)中,我們進(jìn)行了無數(shù)次有益的學(xué)術(shù)探討,在這過程中受益匪淺,令人難忘! 另外,還要感謝電子工程系老師在兩年中為我們付出的辛勤勞動(dòng)。他們不僅給與我專業(yè)知識(shí)上的指導(dǎo)還教給了我學(xué)習(xí)的方法和思路,

32、使我在社會(huì)生活及論文寫作過程中不斷有新的認(rèn)識(shí)和提高。在此,我對(duì)他們表示由衷的感謝。 感謝所有關(guān)心和幫助過我的朋友和師長!在此,向他們致以深深的謝意!參考文獻(xiàn)1王迎旭.單片機(jī)原理與應(yīng)用.  機(jī)械工業(yè)出版社 2009年2程相波,衛(wèi)安軍. 基于mcs-51單片機(jī)的八路搶答器設(shè)計(jì)方法研究【j】.北京工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報(bào),2007,(2)。3林凌,李剛,丁茹,李小霞,新型單片機(jī)接口器件與技術(shù)。西安電子科技大學(xué)出版社,20054李增生,對(duì)搶答器的改進(jìn)【j】,電子制作,2000,(12)5馬軻瀛,八路搶答器系統(tǒng)【j】,華裔,2007,(23)6高偉,at89單片機(jī)原理及應(yīng)用【m】,北京:國防工業(yè)出

33、版社,2008年7蔡朝陽,單片機(jī)控制實(shí)習(xí)與專題制作【m】,北京:北京航空航天大學(xué)出版社,2006年8楊凌霄,微型計(jì)算機(jī)原理及應(yīng)用【m】,江蘇:中國礦業(yè)大學(xué)出版社,2004年9丁建偉,搶答器電路設(shè)計(jì)【j】,蘭州工業(yè)高等專科學(xué)校學(xué)報(bào),2008,(04)10胡雪海,單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì)【m】,北京:北京電子工業(yè)出版社,2005年附錄程序清單: #include<reg51.h>#define uchar unsigned charsbit rst=p36; /復(fù)位鍵sbit naba=p37; /蜂鳴器uchar s,ss; /倒計(jì)時(shí)的位秒,十秒uchar kk=9; /鍵

34、值uchar codekey=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x3f; /09 數(shù)碼管的編號(hào)void delay(uchar t1);/延時(shí)函數(shù)uchar keyscan();/鍵盤掃描void display(); /數(shù)據(jù)顯示/*/延時(shí)函數(shù)/*/void delay(uchar t1)uchar i,j;for(i=0;i<t1;i+)for(j=0;j<143;j+);/*/判斷是否有按鍵按下,有按鍵按下時(shí)返回鍵值/*/uchar keyscan() uchar key;p1=0xff;key=p1;if(key!=0xff)delay(10); /延時(shí)去抖if(key!=0xff)switch(key)case 0xfe: kk=0;break;case 0xf

溫馨提示

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

評(píng)論

0/150

提交評(píng)論