搶答器的設(shè)計(jì)與制作_第1頁
搶答器的設(shè)計(jì)與制作_第2頁
搶答器的設(shè)計(jì)與制作_第3頁
搶答器的設(shè)計(jì)與制作_第4頁
搶答器的設(shè)計(jì)與制作_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

學(xué)號(hào):2009060201綜合技能實(shí)訓(xùn)報(bào)告實(shí)訓(xùn)題目:四人搶答器系(部):電子工程系專業(yè):電子信息工程技術(shù)班級(jí):09電子工程302學(xué)生姓名:指導(dǎo)教師:起止時(shí)間:海南軟件職業(yè)技術(shù)學(xué)院海南軟件職業(yè)技術(shù)學(xué)院綜合實(shí)訓(xùn)報(bào)告摘要搶答器是一種廣泛應(yīng)用于企事業(yè)單位和商業(yè)部門,為各種知識(shí)競賽、文娛活動(dòng)提供公正客觀快速裁決的一種常用電子設(shè)備,也是一種逐漸成型的電子產(chǎn)品,但市面上所售搶答器價(jià)格一般較貴且多為小規(guī)模集成電路構(gòu)成,其性能單一,工作起來不夠理想。因此,提高搶答器的性能,使其具有更強(qiáng)的功能,使用可靠方便已為搶答器發(fā)展的一個(gè)方向。隨著集成技術(shù)和計(jì)算機(jī)技術(shù)的發(fā)展,單片機(jī)作為其中的一個(gè)分支亦于20世紀(jì)80年代以來獲得了飛速發(fā)展,各種新品不斷涌現(xiàn),使單片機(jī)的應(yīng)用更加深入,靈活性也大大增強(qiáng)。本設(shè)計(jì)是采用單片機(jī)設(shè)計(jì)一款四路多功能電子搶答器。此搶答器除了具有基本的搶答功能以外,還具有答題時(shí)間控制、顯示分?jǐn)?shù)等功能。它充分利用了單片機(jī)系統(tǒng)的優(yōu)點(diǎn),具有結(jié)構(gòu)簡單、功能強(qiáng)大、可靠性好、實(shí)用性強(qiáng)的特點(diǎn)。本設(shè)計(jì)利用8051系列單片機(jī)中的AT89C51為主控芯片及外圍接口實(shí)現(xiàn)搶答系統(tǒng),利用單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,將軟、硬件有機(jī)地結(jié)合起來,使得系統(tǒng)能夠正確地進(jìn)行計(jì)時(shí),同時(shí)使數(shù)碼管能夠正確地顯示時(shí)間。用按鈕做鍵盤輸入,揚(yáng)聲器發(fā)生提示。同時(shí)系統(tǒng)能夠?qū)崿F(xiàn):開機(jī)后,液晶屏LCD1602第一行顯示“YOUYIDIYI”(友誼第一)和第二行顯示“BISAIDIER”(比賽第二)的字樣同時(shí)8只用于渲染氣氛的跑馬燈循環(huán)顯示;在搶答中,跑馬燈在原位停止,且只有開始后搶答才有效,如果在開始搶答前搶答為無效;答題中主持人可以根據(jù)答題者的答題情況對(duì)其進(jìn)行加減分;搶答限定時(shí)間和回答問題的時(shí)間可在1-99s設(shè)定;可以顯示是哪位選手有效搶答和無效搶答,搶答后跑馬燈繼續(xù)顯示渲染氣氛和對(duì)應(yīng)的發(fā)光二極光亮,直至主持人按復(fù)位鍵;搶答時(shí)間和回答問題時(shí)間倒記時(shí)顯示,倒計(jì)時(shí)時(shí)間到后揚(yáng)聲器發(fā)出提示;答題后主持人可以根據(jù)答題情況對(duì)答題者進(jìn)行加減分。關(guān)鍵詞:多功能搶答器AT89C51單片機(jī)搶答時(shí)間答題時(shí)間

目錄1 緒論 11.1 國內(nèi)研究現(xiàn)狀與存在的問題 11.2 選題意義與目的 12 搶答器的系統(tǒng)概述 32.1 系統(tǒng)設(shè)計(jì)要點(diǎn) 32.2 系統(tǒng)的主要功能 32.3 系統(tǒng)需求分析 42.4 搶答器的工作流程 42.5 搶答器的工作過程 52.6 器件選型方案及詳細(xì)清單 63 硬件電路設(shè)計(jì) 73.1 芯片介紹 73.1.1 主控芯片 73.1.2 鎖存器74LS373芯片 93.1.3 串行數(shù)據(jù)轉(zhuǎn)并行數(shù)據(jù)74164芯片 93.2 時(shí)鐘頻率電路設(shè)計(jì) 93.3 復(fù)位電路設(shè)計(jì) 103.4 顯示電路設(shè)計(jì) 113.4.1 數(shù)碼管顯示電路 113.4.2 液晶屏LCD1602顯示電路 123.5 跑馬燈電路設(shè)計(jì) 133.6 發(fā)聲電路 133.7 鍵盤掃描電路設(shè)計(jì) 144 軟件設(shè)計(jì) 154.1 跑馬燈程序 154.2 數(shù)碼管顯示程序 154.3 報(bào)警(發(fā)聲)程序 164.4 搶答和答題時(shí)間調(diào)節(jié)程序 164.5 復(fù)位程序 174.6 液晶屏LCD1602程序 18結(jié)束語 19致謝 20參考文獻(xiàn) 21附錄 22PAGE18緒論當(dāng)今的社會(huì)競爭日益激烈,選拔人才,評(píng)選優(yōu)勝,知識(shí)競賽之類的活動(dòng)愈加頻繁,比賽中為了準(zhǔn)確、公正、直觀地判斷出第一搶答者,這就要有一種搶答設(shè)備作為裁判員,于是搶答器應(yīng)用而生。搶答器是一種應(yīng)用非常廣泛的設(shè)備,在各種競賽、搶答場合中,它能迅速、客觀地分辨出最先獲得發(fā)言權(quán)的選手,無論是軍隊(duì)還是電視節(jié)目中,都可能會(huì)舉辦各種各樣的智力競賽,都會(huì)用到搶答器。如果要是讓搶答者用舉手等方法,主持人很容易誤判,會(huì)造成搶答的不公平,比賽中為了準(zhǔn)確、公正、直觀地判斷出第一搶答者,所設(shè)計(jì)的搶答器通常由數(shù)碼顯示、燈光、音響等多種手段指示出第一搶答者。為了使這種不公平不發(fā)生,只有靠電子產(chǎn)品的高準(zhǔn)確性來保障搶答的公平性。早期的搶答器只由幾個(gè)三極管、可控硅、發(fā)光管等組成,能通過發(fā)光管的指示辯認(rèn)出選手號(hào)碼?,F(xiàn)在大多數(shù)搶答器均使用單片機(jī)(如MCS-51型)和數(shù)字集成電路,并增加了許多新功能,如選手號(hào)碼顯示、搶按前或搶按后的計(jì)時(shí)、選手得分顯示等功能。國內(nèi)研究現(xiàn)狀與存在的問題搶答器作為一種電子產(chǎn)品,早已廣泛應(yīng)用于各種智力和知識(shí)競賽場合,但目前所使用的搶答器有的電路較復(fù)雜不便于制作,可靠性低,實(shí)現(xiàn)起來很困難;有的則用一些專用的集成塊,而專用集成塊的購買又很困難。為適應(yīng)高校等多代表隊(duì)單位活動(dòng)的需要而設(shè)計(jì)一個(gè)多功能搶答器,這種搶答器具有電路簡單,元件普通,易于購買等優(yōu)點(diǎn),很好地解決了制作者制作困難和難于購買的問題。在國內(nèi)外已經(jīng)開始了普遍的應(yīng)用。隨著改革開放事業(yè)的不斷深入,促使人們學(xué)科學(xué)、學(xué)技術(shù)、學(xué)知識(shí)的手段多種多樣,搶答器作為一種工具,已廣泛應(yīng)用于各種智力和知識(shí)競賽場合。由于搶答器使用頻率較低,且制作程序復(fù)雜,容易讓人對(duì)其減少興致。作為一個(gè)單位若專購一臺(tái)搶答器雖然在經(jīng)濟(jì)上可以承受,但每年使用的次數(shù)極少,往往因長期存放使(電子器件的)搶答器損壞,再購置的麻煩和及時(shí)性就會(huì)影響活動(dòng)的開展。而且目前多數(shù)搶答器存在三個(gè)不足之處:第一,現(xiàn)場線路連接復(fù)雜。因?yàn)槊總€(gè)選手位于搶答現(xiàn)場的不同位置,每個(gè)選手與控制臺(tái)之間要有長長的連接線。選手越多,連接線就越多、越亂,這些連接線不僅影響了現(xiàn)場的美觀,而且降低了搶答器的可靠性,增加了安裝的難度,甚至影響了現(xiàn)場人員的走動(dòng)。第二,電路復(fù)雜。因?yàn)閱纹瑱C(jī)只完成號(hào)碼處理、計(jì)時(shí)、數(shù)據(jù)運(yùn)算等功能,其它功能如選手號(hào)碼的識(shí)別、譯碼、計(jì)分顯示等仍只能通過數(shù)字集成電路完成。采用單片機(jī)掃描技術(shù)識(shí)別選手搶按號(hào)碼時(shí),電路的延遲時(shí)間較大。第三,選手搶按成功,但出現(xiàn)沒有搶答被記錄的問題。選題意義與目的在知識(shí)比賽中,特別是做搶答題目的時(shí)候,在搶答過程中,為了知道哪一組或哪一位選手先答題,必須要設(shè)計(jì)一個(gè)系統(tǒng)來完成這個(gè)任務(wù)。如果在搶答中,靠視覺是很難判斷出哪組先答題。怎樣來設(shè)計(jì)搶答器,能使以上問題得以解決?即使兩組的搶答時(shí)間相差幾微秒,也可分辨出哪組優(yōu)先答題?通過研究并在設(shè)計(jì)驗(yàn)證后發(fā)現(xiàn),采用單片機(jī)技術(shù)設(shè)計(jì)的搶答器與傳統(tǒng)的搶答器相比,首先,電路連接簡單,因?yàn)榇蠖鄶?shù)功能單元都通過程序設(shè)計(jì)在單片機(jī)內(nèi)部。第二,工作性能可靠,抗干擾能力優(yōu)于傳統(tǒng)搶答器,并能夠解決以上提出的問題。所以本研究是一個(gè)實(shí)用的工程設(shè)計(jì),具有創(chuàng)新性。通過本次設(shè)計(jì),基本掌握51系列單片機(jī)的原理,了解簡單多功能搶答器組成部分,詳細(xì)掌握智能搶答器的原理和編程方法,了解單片機(jī)類系統(tǒng)的設(shè)計(jì)基本理念,提高獨(dú)立思考的能力和編程的邏輯思維能力。同時(shí)通過這次綜合設(shè)計(jì),提高自己的動(dòng)手能力,鞏固已學(xué)的理論知識(shí),建立單片機(jī)理論和實(shí)踐的結(jié)合,了解多功能搶答器各單元電路之間的關(guān)系及相互影響,從而能正確設(shè)計(jì)、計(jì)算定時(shí)計(jì)數(shù)的各個(gè)單元電路。進(jìn)一步深入了解掌握以單片機(jī)為核心控制系統(tǒng)的設(shè)計(jì)方法及編程方法。搶答器的系統(tǒng)概述系統(tǒng)設(shè)計(jì)要點(diǎn)系統(tǒng)設(shè)計(jì)主要包括硬件和軟件兩大部分,依據(jù)控制系統(tǒng)的工作原理和技術(shù)性能,將硬件和軟件分開設(shè)計(jì)。硬件設(shè)計(jì)部分包括電路原理圖、合理選擇元器件、繪制線路圖,然后對(duì)硬件進(jìn)行調(diào)試、測試,以達(dá)到設(shè)計(jì)要求。軟件設(shè)計(jì)部分,首先在總體設(shè)計(jì)中完成系統(tǒng)總框圖和各模塊的功能設(shè)計(jì),擬定詳細(xì)的工作計(jì)劃;然后進(jìn)行具體設(shè)計(jì),包括各模塊的流程圖,選擇合適的編程語言和工具,進(jìn)行代碼設(shè)計(jì)等;最后是對(duì)軟件進(jìn)行調(diào)試、測試,達(dá)到所需功能要求。系統(tǒng)的主要功能本系統(tǒng)是借用單片機(jī)采用模塊化設(shè)計(jì)的四路搶答器,包括液晶屏LCD1062顯示、四路搶答按紐、計(jì)時(shí)(分)顯示、提示功能、開始與結(jié)束控制按鈕、時(shí)限設(shè)定、各種相關(guān)顯示調(diào)控功能等(根據(jù)需要也可另設(shè)或多設(shè)相關(guān)功能)。顯示系統(tǒng),除了有顯示計(jì)時(shí)功能外,還有加了計(jì)分功能和人性化的液晶LCD1602第一行顯示“YOUYIDIYI”(友誼第一)和第二行顯示“BISAIDIER”(比賽第二)的字樣功能等;主持人的開始按鈕和復(fù)位分別做開始與結(jié)束控制,根據(jù)活動(dòng)參賽者的層次,對(duì)提前掄答者的行為設(shè)定為非法或阻隔,若設(shè)有非法搶答控制功能時(shí),在主控處帶有公示性顯示的非法掄答者的代號(hào),對(duì)搶答限時(shí)及回答問題限時(shí)設(shè)為倒計(jì)時(shí),并有顯示提示。系統(tǒng)的主要功能模塊方框圖如REF_Ref302256712\h圖1所示圖SEQ圖\*ARABIC1系統(tǒng)主要功能模塊本系統(tǒng)采用模塊化設(shè)計(jì)的四路搶答器,在搶答比賽中廣泛應(yīng)用,各組分別有一個(gè)搶答按鈕。一共有四個(gè)按鍵輸入,分別對(duì)應(yīng)四路選手的搶答按鍵。主持人有開始和結(jié)束鍵。在節(jié)目開始之前可以修改,搶答時(shí)間和選手回答問題的時(shí)間設(shè)置,原始狀態(tài)下?lián)尨饡r(shí)間為10s,回答問題時(shí)間為60s。通過加鍵和減鍵修改上述時(shí)間,改完后開始鍵確定。新時(shí)間開始有效,主持人按鍵開始后,選手開始搶答為有效,數(shù)碼顯示屏顯示搶答時(shí)間倒計(jì)時(shí)和選手號(hào),在倒計(jì)時(shí)間到揚(yáng)聲器發(fā)生提示。如果主持人沒有按下開始鍵而選手就搶答視為犯規(guī),數(shù)碼顯示屏顯示犯規(guī)者的代號(hào),揚(yáng)聲器持續(xù)發(fā)生。主持人可按鍵復(fù)位,新一輪搶答開始。單片機(jī)是整個(gè)搶答器的核心,內(nèi)部電路設(shè)計(jì)用C語言編寫。它完成了時(shí)間參數(shù)的設(shè)定,搶按號(hào)碼的譯碼,保存;顯示;輸出,搶按及答題倒計(jì)時(shí)功能等。本設(shè)計(jì)中,有一個(gè)共陰的數(shù)碼管組,四個(gè)數(shù)碼管。其中兩個(gè)顯示時(shí)間,一個(gè)空位,一個(gè)顯示搶答號(hào)碼。主持人依次按下復(fù)位鍵(RESET),開始鍵后開始搶答??梢該尠?,當(dāng)搶按超過規(guī)定時(shí)間或答題超過規(guī)定時(shí)間后數(shù)碼管顯示“0—00”。若有選手在規(guī)定時(shí)間內(nèi)搶按成功,再次按下開始鍵則可以答題,數(shù)碼管顯示搶答時(shí)間的同時(shí)也顯示選手號(hào)碼。若在按開始鍵前搶答表示違規(guī),數(shù)碼管顯示“X—00”(X為選手代號(hào))。系統(tǒng)需求分析搶答限定時(shí)間和回答問題的時(shí)間可以在1~99s設(shè)定。液晶屏LCD1602和跑馬燈做渲染氣氛之用、在搶答開始,有專門的LED燈作為開始信號(hào)(燈亮表示開始搶答)。在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效。在搶答后,有效搶答的選手對(duì)應(yīng)的LCD燈亮,表示已成功搶答??梢燥@示是哪位選手有效搶答和無效搶答,搶答和答題倒計(jì)時(shí)時(shí)間到揚(yáng)聲器發(fā)生提示。答題后主持人可以根據(jù)答題情況對(duì)答題者進(jìn)行加減分。搶答器的工作流程搶答器的基本工作原理:在搶答競賽或呼叫時(shí),有多個(gè)信號(hào)同時(shí)或不同時(shí)送入主電路中,搶答器內(nèi)部的寄存器工作,并識(shí)別、記錄第一個(gè)號(hào)碼,同時(shí)內(nèi)部的定時(shí)器開始工作,記錄有關(guān)時(shí)間并產(chǎn)生超時(shí)信號(hào)。在整個(gè)搶答器工作過程中,顯示電路、聲音電路等還要根據(jù)現(xiàn)場的實(shí)際情況向外電路輸出相應(yīng)信號(hào)。搶答器的工作流程分為:系統(tǒng)復(fù)位、正常流程、違例流程等幾部分,如REF_Ref302258159\h圖2所示,圖SEQ圖\*ARABIC2搶答器工作流程搶答器的工作過程開機(jī)液晶LCD1602第一行顯示“YOUYIDIYI”(友誼第一)和第二行顯示“BISAIDIER”(比賽第二)的字樣同時(shí)跑馬燈移動(dòng),并共陰的數(shù)碼管組顯示“00—10”(10為系統(tǒng)默認(rèn)的搶答時(shí)間10秒),可以通過加時(shí)間和減時(shí)鍵來重新設(shè)置搶答時(shí)間,設(shè)定好搶答時(shí)間后按開始鍵確定,共陰的數(shù)碼管組顯示“00—60”(60為系統(tǒng)默認(rèn)的答題時(shí)間60秒)進(jìn)入答題時(shí)間設(shè)置狀態(tài),設(shè)置方法同搶答時(shí)間設(shè)置。設(shè)置好后按開始確定進(jìn)入系統(tǒng)初始狀態(tài);主持人按開始鍵開始搶答,并數(shù)碼管開始倒計(jì)時(shí)和搶答LCD燈亮,作為開始搶答提示信號(hào),若在倒計(jì)時(shí)期間的第一位選手搶答則視為有效搶答,進(jìn)入預(yù)答題階段,等待主持人按開始鍵;這時(shí)若主持人按下開始后就可以進(jìn)入答題階段,數(shù)碼管倒計(jì)時(shí)顯示;一旦有有效搶答則對(duì)其他選手的搶答進(jìn)行封鎖;搶答和答題的倒計(jì)時(shí)時(shí)間到則揚(yáng)聲器發(fā)聲提示;答題后主持人可以根據(jù)答題情況通過減分鍵和減分鍵對(duì)答題者進(jìn)行加減分;在主持人按開始搶答前若有選手按了搶答鍵,則數(shù)碼管顯示其代號(hào)并揚(yáng)聲器發(fā)聲提示;在進(jìn)入初始狀態(tài)后,主持人任何時(shí)候按下復(fù)位鍵,則立即進(jìn)入初始狀態(tài);總而言之,本課題利用AT89C51單片機(jī)及外圍接口實(shí)現(xiàn)的搶答系統(tǒng)設(shè)計(jì)了搶答器,該搶答器增加了新功能、提高了系統(tǒng)的可靠性、簡化了電路結(jié)構(gòu)、節(jié)約了成本,是一個(gè)實(shí)用的工程設(shè)計(jì)。器件選型方案及詳細(xì)清單微控制器選用ATMAL公司生產(chǎn)的AT89C51,該芯片貨源充足,并且價(jià)格也比較便宜。如表1所示。表1元器件清單器件名稱規(guī)格型號(hào)數(shù)量微處理器AT89C511芯片74LS373674LS1641晶振12MHZ1電容30pF210pF(電解電容)1電阻220Ω211KΩ(滑動(dòng)變阻器)110KΩ1按鈕BUTTON87段數(shù)碼管組7SEG-MPX4-CC-BLUE17SEG-COM-CAT-BLUE4LCD1602液晶屏LM016L1三極管NPN1揚(yáng)聲器SPEAKER1LEDBLUE8GREEN4YELLOW1硬件電路設(shè)計(jì)芯片介紹主控芯片本設(shè)計(jì)中的微控制器選用單片機(jī)系列中的ATMAL公司生產(chǎn)的AT89C51,該芯片具有標(biāo)準(zhǔn)易用,貨源充足,價(jià)格便宜等特點(diǎn)。AT89C51單片機(jī)是ATMAL公司89系列單片機(jī)的一種具有8位Flash存儲(chǔ)器的單片機(jī),是眾多由8051單片機(jī)加強(qiáng)改進(jìn)演變而來的系列單片機(jī)中最具代表性的一款。它最大特點(diǎn)是片內(nèi)含有Flash存儲(chǔ)器,用途十分廣泛,特別是在生產(chǎn)便攜式商品,手提式儀器等方面,有著十分廣泛的應(yīng)用[]。其外部結(jié)構(gòu)及引腳如REF_Ref302332601\h圖3所示。圖SEQ圖\*ARABIC3AT89C51外部結(jié)構(gòu)圖AT89C51是89系列單片機(jī)的標(biāo)準(zhǔn)型,它在內(nèi)部含有4KB或8KB可重復(fù)編程的Flash存儲(chǔ)器,可進(jìn)行1000次擦寫操作。全靜態(tài)工作為0-24MHZ,有3級(jí)程序鎖存器,內(nèi)部含有128-256字節(jié)的RAM,有32條可編程I/O口線,2-3個(gè)16位定時(shí)/計(jì)數(shù)器,6-8個(gè)中斷源,通用的串行接口,低電壓空閑及電源下降方式。AT89C51單片機(jī)主要有以下部件:8051CPU、振蕩電路、總線控制部件、中斷控制部件、片內(nèi)Flash存儲(chǔ)器、片內(nèi)RAM、并行I/O接口、定時(shí)器和串行I/O接口。AT89C51單片機(jī)內(nèi)部由CPU、4KB的FPEROM,128B的RAM,兩個(gè)16位的定時(shí)/計(jì)數(shù)器T0和T1,4個(gè)8位的I/O端P0、P1、P2、P3等組成。單片微機(jī)內(nèi)部最核心的部分是CPU。CPU主要功能是產(chǎn)生各種控制信號(hào),控制存儲(chǔ)器、輸入/輸出端口的數(shù)據(jù)傳輸、數(shù)據(jù)的算術(shù)運(yùn)算、邏輯運(yùn)算以及位操作處理等,CPU按其功能可分為運(yùn)算器和控制器兩部分??刂破饔沙绦蛴?jì)數(shù)器PC、指令儲(chǔ)存器、指令譯碼器、實(shí)時(shí)控制與條件轉(zhuǎn)移邏輯電路等組成。它的功能是對(duì)來自存儲(chǔ)器中的指令進(jìn)行譯碼,通過實(shí)時(shí)控制電路,在規(guī)定的時(shí)刻發(fā)出各種操作所需的內(nèi)部和外部的控制信號(hào),使各部分協(xié)調(diào)工作,完成指令所規(guī)定的操作。運(yùn)算器由算術(shù)邏輯器部件ALU、累加器ACC、暫存器、程序狀態(tài)字寄存器PSW,BCD碼運(yùn)算調(diào)整電路等組成。為了提高數(shù)據(jù)處理和位操作功能,片內(nèi)增加了一個(gè)通用寄存器B和一些專用寄存器,還增加了位處理邏輯電路的功能。其內(nèi)部結(jié)構(gòu)如REF_Ref302419666\h圖4所示。圖SEQ圖\*ARABIC4AT89C51內(nèi)部結(jié)構(gòu)圖AT89C51單片機(jī)具有特殊功能寄存器,也稱專用寄存器,是具有特殊功能的所有寄存器的集合,簡稱SFR(SpecialFunctionRegister)。特殊功能寄存器共含有22個(gè)不同寄存器。它們的地址分配在80H~FFH中,即在RAM地址中。這些寄存器的名稱和地址見表1表2AT89C51特殊功能寄存器列表注:帶*號(hào)的特殊功能寄存器都是可以為尋址的寄存器。符號(hào)地址注視*ACC0E0H累加器*B0F0H乘法寄存器*PSW0D0H程序狀態(tài)字SP81H堆棧指針DPL82H數(shù)據(jù)存儲(chǔ)器指針低8位DPH83H數(shù)據(jù)存儲(chǔ)器指針高8位*IE0A8H中斷允許控制器*IP0D8H中斷優(yōu)先控制器*P080H端口0*P190H端口1*P20A0H端口2*P30B0H端口3PCON87H電源控制及波特率選擇*SCON98H串行口控制器SBUF99H串行數(shù)據(jù)緩沖器*TCON88H定時(shí)器控制TMOD89H定時(shí)器方式選擇TL08AH定時(shí)器0低8位TL18BH定時(shí)器0高8位TH08CH定時(shí)器1低8位TH18DH定時(shí)器1高8位雖然特殊功能寄存器地址在80H~FFH之中,但在80H~FFH的地址單元中,不是所有的單元都被特殊功能寄存器占用,未被占用的單元,其內(nèi)容是不確定的,如果對(duì)這些單元進(jìn)行操作,得到的是一些隨機(jī)數(shù),而寫入則無效。所以,用戶編程時(shí)不應(yīng)該將數(shù)據(jù)寫入這些未確定的地址單元,它們是公司留待將來開發(fā)新產(chǎn)品時(shí)使用的。鎖存器74LS373芯片當(dāng)三態(tài)允許控制端OE為低電平時(shí),O0~O7為正常邏輯狀態(tài),可用來驅(qū)動(dòng)負(fù)載或總線。當(dāng)OE為高電平時(shí),O0~O7呈高阻態(tài),即不驅(qū)動(dòng)總線,也不為總線的負(fù)載,但鎖存器內(nèi)部的邏輯操作不受影響。當(dāng)鎖存允許端LE為高電平時(shí),O隨數(shù)據(jù)D而變。當(dāng)LE為低電平時(shí),O被鎖存在已建立的數(shù)據(jù)電平。圖SEQ圖\*ARABIC574LS373引腳圖串行數(shù)據(jù)轉(zhuǎn)并行數(shù)據(jù)74164芯片時(shí)鐘(CP)每次由低變高時(shí),數(shù)據(jù)右移一位,輸入到Q0,Q0是兩個(gè)數(shù)據(jù)輸入端(DSA和DSB)的邏輯與,它將上升時(shí)鐘沿之前保持一個(gè)建立時(shí)間的長度。主復(fù)位(MR)輸入端上的一個(gè)低電平將使其它所有輸入端都無效,同時(shí)非同步地清除寄存器,強(qiáng)制所有的輸出為低電平。圖SEQ圖\*ARABIC674LS164引腳圖時(shí)鐘頻率電路設(shè)計(jì)單片機(jī)必須在時(shí)鐘的驅(qū)動(dòng)下才能工作。在單片機(jī)內(nèi)部有一個(gè)時(shí)鐘振蕩電路,只需要外接一個(gè)振蕩源就能產(chǎn)生一定的時(shí)鐘信號(hào)送到單片機(jī)內(nèi)部的各個(gè)單元,決定單片機(jī)的工作速度。時(shí)鐘電路原理圖如REF_Ref302419538\h圖7所示。圖SEQ圖\*ARABIC7時(shí)鐘電路原理圖一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時(shí)鐘信號(hào),其振蕩頻率主要由石英晶振的頻率確定。電路中兩個(gè)電容C1,C2的作用有兩個(gè):一是幫助振蕩器起振;二是對(duì)振蕩器的頻率進(jìn)行微調(diào)。C1,C2的典型值為30PF。單片機(jī)在工作時(shí),由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時(shí)鐘信號(hào)的周期稱為時(shí)鐘周期,其大小是時(shí)鐘信號(hào)頻率fosc的倒數(shù)。圖中時(shí)鐘頻率為12MHz,即fosc=12MHz,則時(shí)鐘周期為1/12μs。復(fù)位電路設(shè)計(jì)計(jì)算機(jī)在啟動(dòng)運(yùn)行時(shí)都需要復(fù)位,復(fù)位使中央處理器CPU和系統(tǒng)中的其他器件都處于一種初處理器CPU和系統(tǒng)中的其他器件都處于一種初始狀態(tài),并從這個(gè)初始狀態(tài)開始工作。對(duì)于MCS-51單片機(jī),在RST復(fù)位引腳端接一個(gè)電容至+5V和一個(gè)電阻至地端,就能實(shí)現(xiàn)上電自動(dòng)復(fù)位,如REF_Ref302337868\h圖8所示。在加電瞬間,電容通過電阻充電,就在RST引腳上出現(xiàn)一定時(shí)間的高電平信號(hào),只要高電平信號(hào)時(shí)間足夠長,就可以使MCS-51單片機(jī)有效地復(fù)位。圖圖SEQ圖\*ARABIC8上電/手動(dòng)復(fù)位電路MCS-51系列單片機(jī)復(fù)位后內(nèi)部各單元的初始狀態(tài)寄存器初始狀態(tài)值寄存器初始狀態(tài)值PC0000HTMOD00HACC00HTCON00HB00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP1、P2、P3、P40FFHSCON00HIPxxx00000BPCON0xxx0000BIE0xx00000BSBUF不定顯示電路設(shè)計(jì)顯示功能與硬件關(guān)系極大,當(dāng)硬件固定后,如何在不引起操作者誤解的前提下提供盡可能豐富的信息,全靠軟件來解決。數(shù)碼管顯示電路在這里我們使用的是七段數(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)顯示而言占用端口資源少。在本設(shè)計(jì)中根據(jù)實(shí)際情況采用的是動(dòng)態(tài)顯示和靜態(tài)顯示方法。單片機(jī)P0口外接兩片74LS373鎖存器來輸出段選碼和位選碼,通過C語言編程,先讓其段選的鎖存器打開,位選鎖存器關(guān)閉,P0口輸出段選碼,然后打開位選鎖存器,關(guān)閉段選鎖存器,P0口輸入段選,這樣就可以拓展了I/O口,解決了單片機(jī)I/O口不夠用的問題。4位七段數(shù)碼管動(dòng)態(tài)顯示電路如REF_Ref302340414\h圖9所示圖SEQ圖\*ARABIC94位共陰極數(shù)碼管顯示電路1位七段數(shù)碼管靜態(tài)顯示電路如REF_Ref302340933\h圖10所示圖SEQ圖\*ARABIC101位共陰極數(shù)碼管計(jì)分顯示電路液晶屏LCD1602顯示電路為了獲得較好的效果,在本設(shè)計(jì)中加入了液晶屏LCD1602顯示電路,1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”。1602識(shí)別的是ASCII碼,試驗(yàn)可以用ASCII碼直接賦值。1602通過D0~D7的8位數(shù)據(jù)端傳輸數(shù)據(jù)和指令。顯示模式設(shè)置:00110000[0x38]設(shè)置16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù)接口;顯示開關(guān)及光標(biāo)設(shè)置:00001DCB,D顯示(1有效)、C光標(biāo)顯示(1有效)、B光標(biāo)閃爍(1有效)000001NS,N=1(讀或?qū)懸粋€(gè)字符后地址指針加1&光標(biāo)加1),N=0(讀或?qū)懸粋€(gè)字符后地址指針減1&光標(biāo)減1),S=1且N=1(當(dāng)寫一個(gè)字符后,整屏顯示左移),S=0當(dāng)寫一個(gè)字符后,整屏顯示不移動(dòng)數(shù)據(jù)指針設(shè)置:數(shù)據(jù)首地址為80H,所以數(shù)據(jù)地址為80H+地址碼(0-27H,40-67H),其他設(shè)置:01H(顯示清屏,數(shù)據(jù)指針=0,所有顯示=0);02H(顯示回車,數(shù)據(jù)指針=0)。寫指令08H是關(guān)閉顯示,寫指令01H顯示清屏,寫指令06H光標(biāo)移動(dòng)設(shè)置,寫指令0cH顯示開及光標(biāo)設(shè)置。圖SEQ圖\*ARABIC11液晶屏LCD1602顯示電路跑馬燈電路設(shè)計(jì)跑馬燈由8個(gè)LED發(fā)光二極管組成,如果把8個(gè)LED等直接接在單片機(jī)的I/O口上需要占8個(gè)I/O口,很浪費(fèi)資源,所以本設(shè)計(jì)的跑馬燈是由單片的串口來操作,通過串行數(shù)據(jù)轉(zhuǎn)并行數(shù)據(jù)芯片74LS164來直接驅(qū)動(dòng)跑馬燈,為了防止流過二極管的電路過大,所以在二極管的另一端加上220Ω的電阻。圖圖SEQ圖\*ARABIC12跑馬燈電路設(shè)計(jì)發(fā)聲電路人耳能聽到的聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單片機(jī)某個(gè)I/O口線上的“高”電平或“低”電平,則在該I/O 口線上就能產(chǎn)生一定頻率的矩形波,接上揚(yáng)聲器就能發(fā)出一定頻率的聲音,若再利用延時(shí)程序控制“高”“低”電平的持續(xù)時(shí)間,就能改變輸出頻率,從而改變音調(diào),使揚(yáng)聲器發(fā)出不同的聲音。利用三極管的特性,當(dāng)三極管Vc>Vb.>Ve時(shí)三極管工作在放大區(qū)使電路的電路和電壓放大,達(dá)到放大功率的目的,原理圖REF_Ref302419502\h圖13所示。圖SEQ圖\*ARABIC13發(fā)聲電路原理圖鍵盤掃描電路設(shè)計(jì)鍵盤是人與單片機(jī)打交道的主要設(shè)備。關(guān)于鍵盤硬件電路的設(shè)計(jì)方法也可以在文獻(xiàn)和書籍中找到,配合各種不同的硬件電路,這些書籍中一般也提供了相應(yīng)的鍵盤掃描程序。站在系統(tǒng)監(jiān)控軟件設(shè)計(jì)的立場上來看,僅僅完成鍵盤掃描,讀取當(dāng)前時(shí)刻的鍵盤狀態(tài)是不夠的,還有不少問題需要妥善解決,否則,人們在操作鍵盤就容易引起誤操作和操作失控現(xiàn)象。在單片機(jī)應(yīng)用中鍵盤用得最多的形式是獨(dú)立鍵盤及矩陣鍵盤。它們各有自己的特點(diǎn),其中獨(dú)立鍵盤硬件電路簡單,而且在程序設(shè)計(jì)上也不復(fù)雜,一般用在對(duì)硬件電路要求不高的簡單電路中;矩陣鍵盤與獨(dú)立鍵盤有很大區(qū)別,首先在硬件電路上它要比獨(dú)立鍵盤復(fù)雜得多,而且在程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢得多,因此它更適合于多按鍵電路。其次就是消除在按鍵過程中產(chǎn)生的“毛刺”現(xiàn)象。這里采用最常用的方法,即延時(shí)重復(fù)掃描法,延時(shí)法的原理為:因?yàn)椤懊獭泵}沖一般持續(xù)時(shí)間短,約為幾ms,而我們按鍵的時(shí)間一般遠(yuǎn)遠(yuǎn)大于這個(gè)時(shí)間,所以當(dāng)單片機(jī)檢測到有按鍵動(dòng)靜后再延時(shí)一段時(shí)間后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無效。在本文設(shè)計(jì)中采用了獨(dú)立鍵盤的方式,本鍵盤掃描電路設(shè)計(jì)中包括選手搶答按鍵輸入電路(四個(gè)選手按鈕),主持人按鍵輸入電路(一個(gè)開始按鍵、一個(gè)復(fù)位按鍵),時(shí)間控制電路和計(jì)分電路(加一按鍵、減一按鍵各一個(gè))鍵盤電路如REF_Ref302420638\h圖14所示圖SEQ圖\*ARABIC14鍵盤電路軟件設(shè)計(jì)軟件是計(jì)算機(jī)系統(tǒng)的靈魂,沒有軟件計(jì)算機(jī)不能充分發(fā)揮其功能,這是軟件在計(jì)算機(jī)中的地位,而在計(jì)算機(jī)控制系統(tǒng)中,軟件也是非常重要的。在四人多功能搶答器系統(tǒng)中,硬件設(shè)備的功能是由軟件來定義的,如系統(tǒng)要數(shù)碼管顯示字符,通過向數(shù)碼管輸入段選碼和位選碼程序來完成控制功能,通過軟件定義鍵盤功能,通過編程完成LED數(shù)碼顯示等等,由此可見,軟件是控制系統(tǒng)中的一個(gè)重要組成部分。本程序通過C語言來編程的,C語言的特點(diǎn)就是可以使你盡量少地對(duì)硬件進(jìn)行操作,具有很強(qiáng)的功能性、結(jié)構(gòu)性和可移植性。跑馬燈程序利用單片機(jī)的定時(shí)器0每50ms中斷一次對(duì)變量count進(jìn)行加一,然后在跑馬燈子程序程序里查詢變量count的值,若變量count的值等于5則清零變量count的值并通過單片的串行口發(fā)送數(shù)據(jù)。在主程序里調(diào)用跑馬燈程序即可。 ucharn,temp=0x80; if(count==5) { count=0; SBUF=_cror_(temp,n); while(!TI) disp(1,xuanshou_,led_,time_); TI=0; if(++n==8) n=0; }數(shù)碼管顯示程序由于數(shù)碼管是接在鎖存器74LS373上,所以要對(duì)其操作是就要開打相應(yīng)的鎖存器,若要在某一位顯示字符時(shí),先打開段選鎖存器,向數(shù)碼管輸入段選,再關(guān)閉段選鎖存器打開位選鎖存器,向數(shù)碼管輸入位選,然后關(guān)閉位選即可顯示需要顯示的字符。防止段選對(duì)位選的干擾,應(yīng)在輸入段選后加一條消影語句P0=led;,由于單片機(jī)執(zhí)行程序速度非???,通常在顯示一個(gè)字符后稍作延時(shí)。 N2=0; //開段選鎖存器 N1=1; //關(guān)位選鎖存器 P0=table[xuanshou];//顯示編號(hào) N1=0; N2=0; P0=led; //消影 N1=0; //關(guān)段選鎖存器 N2=1; //開位選鎖存器 wei_1(); //調(diào)用位選子函數(shù) delay(200);//延時(shí) clear(); //清楚位選報(bào)警(發(fā)聲)程序?qū)釉趽P(yáng)聲器上的引腳輸出“高”,“低”電平的方波,就能聽到揚(yáng)聲器發(fā)出的聲音。在報(bào)警時(shí)檢測是否有復(fù)位鍵按下,若有則退出報(bào)警程序。 for(m=0;m<=5000;m++) { if(m%2) disp(1,xuanshou_,0x0f,time_); else disp(1,xuanshou_,0x80,time_); pmd(); if(reset==0) { Reset(); break; } }搶答和答題時(shí)間調(diào)節(jié)程序系統(tǒng)開機(jī)后,先要設(shè)置搶答和答題時(shí)間,當(dāng)變量a等于0時(shí)間設(shè)置搶答時(shí)間,當(dāng)變量a等于1時(shí)間設(shè)置答題時(shí)間,先是a等于0進(jìn)入設(shè)置搶答時(shí)間,系統(tǒng)檢測到“加時(shí)”鍵按下,則系統(tǒng)增加搶答時(shí)間,測到“減時(shí)”鍵按下,則系統(tǒng)減少搶答時(shí)間,若系統(tǒng)檢測到“開始”鍵按下,則a加1等于1進(jìn)入答題時(shí)間設(shè)置,設(shè)置方法同搶答時(shí)間設(shè)置,系統(tǒng)再次檢測到“開始”鍵按下則退出設(shè)置。while(1) { if(i%50) { disp(0,xuanshou_,led_,Time[a]); } else { disp(1,xuanshou_,led_,Time[a]); delay(100); } if(add==0) Time[a]++; if(sub==0) Time[a]--; if(start==0) a++; if(++i==51) i=0; P1=0xff; while(P1!=0xff) { P1=0xff; disp(1,xuanshou_,led_,Time[a]); pmd(); } if(a==2) break; }復(fù)位程序?qū)δ承┳兞亢惋@示初始化start_=0; suoding=0; xuanshou_=0; led_=0x0f; time_=Time[0]; t=0; suoding=0; qd=0; count=0; P0=table[fen[0]]; N1=N2=N3=N4=N5=N6=0; N3=1; LED=0; N1=N2=N3=N4=N5=N6=0; P0=table[fen[1]]; N1=N2=N3=N4=N5=N6=0; N4=1; LED=0; N1=N2=N3=N4=N5=N6=0; P0=table[fen[2]]; N1=N2=N3=N4=N5=N6=0; N5=1; LED=0; N1=N2=N3=N4=N5=N6=0; P0=table[fen[3]]; N1=N2=N3=N4=N5=N6=0; N6=1; LED=0; N1=N2=N3=N4=N5=N6=0;液晶屏LCD1602程序液晶屏LCD1602寫程序分為寫指令和寫數(shù)據(jù),寫指令是寫一些控制命令;寫數(shù)據(jù)是寫要顯示的數(shù)據(jù)。在程序里他們的唯一區(qū)別是寫指令時(shí)rs=0;而寫數(shù)據(jù)時(shí)rs=1; rs=0; en=0或1;(0表示寫指令,1表示寫數(shù)據(jù)) P2=x; delay(10); en=1; delay(10); en=0; rs=0; 結(jié)束語我在這一次搶答器的設(shè)計(jì)過程中,很是受益匪淺。通過對(duì)自己在大學(xué)兩年時(shí)間里所學(xué)的知識(shí)的回顧并充分發(fā)揮對(duì)所學(xué)知識(shí)的理解和對(duì)畢業(yè)設(shè)計(jì)的思考及書面表達(dá)能力,最終完成了。這為自己今后進(jìn)一步深化學(xué)習(xí),積累了一定寶貴的經(jīng)驗(yàn)。撰寫論文的過程也是專業(yè)知識(shí)的學(xué)習(xí)過程,它使我運(yùn)用已有的專業(yè)基礎(chǔ)知識(shí),對(duì)其進(jìn)行設(shè)計(jì)分析和解決一個(gè)理論問題或?qū)嶋H問題,把知識(shí)轉(zhuǎn)化為能力的實(shí)際訓(xùn)練。培養(yǎng)了我運(yùn)用所學(xué)知識(shí)解決實(shí)際問題的能力。通過這次課程設(shè)計(jì)我發(fā)現(xiàn),只有理論水平提高了,才能夠?qū)⒄n本知識(shí)與實(shí)踐相整合,理論知識(shí)服務(wù)于教學(xué)實(shí)踐,以增強(qiáng)自己的動(dòng)手能力。這個(gè)實(shí)訓(xùn)十分有意義,我獲得很深刻的經(jīng)驗(yàn),通過這次課程設(shè)計(jì),我們知道了理論和實(shí)際的距離,也知道了理論和實(shí)際想結(jié)合的重要性,也從中得知了很多書本上無法得知的知識(shí)。由于時(shí)間的限制有些功能還不是很完善,如果時(shí)間允許還可以將設(shè)計(jì)的擴(kuò)展功能增強(qiáng):1、把四路拓展成八路或更多路搶答。2、可以設(shè)計(jì)聲控裝置,在主持人說開始時(shí),系統(tǒng)自動(dòng)完成清零并開始計(jì)時(shí)的功能。3、將搶答按鍵用無線實(shí)現(xiàn),如紅外線,使搶答者可以遠(yuǎn)距離進(jìn)行搶答,并簡化按鍵模塊的線路布置。附錄Protues仿真圖C程序#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitstart=P1^4;sbitreset=P1^5;sbitadd=P1^6;sbitsub=P1^7;sbitN1=P3^2;sbitN2=P3^3;sbitN3=P3^4;sbitN4=P3^5;sbitN5=P3^6;sbitN6=P3^7;sbitL1=P0^0;sbitL2=P0^1;sbitL3=P0^2;sbitL4=P0^3;sbitrs=P0^4;sbiten=P0^5;sbitLED=P0^7;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};ucharcodelcd_1[]="YOUYIDIYI";ucharcodelcd_2[]="BISAIDIER";ucharTime[2]={10,60};charfen[4]={0,0,0,0};ucharxuanshou_,led_;chartime_; uchart,count;bitstart_,suoding,qd;voiddelay(uchara) //延時(shí){ ucharb; for(b=0;b<=50;b++) for(;a>0;a--);}voidwei_1() //位選1{ L1=0; L2=1; L3=1; L4=1;}voidwei_2() //位選2{ L1=1; L2=0; L3=1; L4=1;}voidwei_3() //位選3{ L1=1; L2=1; L3=0; L4=1;}voidwei_4() //位選4{ L1=1; L2=1; L3=1; L4=0;}voidclear() //清除位選{ L1=1; L2=1; L3=1; L4=1;}voidlcd_com(ucharx)//LCD1602寫指令{ N1=0; N2=1; rs=0; en=0; P2=x; delay(10); en=1; delay(10); en=0; rs=0; N1=0; N2=0; }voidlcd_data(ucharx) //LCD1602寫數(shù)據(jù){ N1=0; N2=1; rs=1; en=0; P2=x; delay(10); en=1; delay(10); en=0; rs=0; N1=0; N2=0; }voiddisp(bitwei,ucharxuanshou,ucharled,uchartime) //顯示{ N2=0; //開段選鎖存器 N1=1; //關(guān)位選鎖存器 P0=table[xuanshou];//顯示編號(hào) N1=0; N2=0; P0=led; //消影 N1=0; //關(guān)段選鎖存器 N2=1; //開位選鎖存器 wei_1(); //調(diào)用位選子函數(shù) delay(200);//延時(shí) clear(); //清楚位選 N2=0; N1=1; P0=table[10]; N1=0; N2=0; P0=led; N1=0; N2=1; wei_2(); delay(200); clear(); N2=0; N1=1; P0=table[time/10]; N1=0; N2=0; P0=led; N1=0; N2=1; wei_3(); delay(200); clear(); if(wei) { N2=0; N1=1; P0=table[time%10]; N1=0; N2=0; P0=led; N1=0; N2=1; wei_4(); delay(200); clear(); }}voidpmd() //跑馬燈{ ucharn,temp=0x80; if(count==5) { count=0; SBUF=_cror_(temp,n); while(!TI) disp(1,xuanshou_,led_,time_); TI=0; if(++n==8) n=0; }}voidReset() //復(fù)位{ start_=0; suoding=0; xuanshou_=0; led_=0x0f; time_=Time[0]; t=0; suoding=0; qd=0; count=0; P0=table[fen[0]]; N1=N2=N3=N4=N5=N6=0; N3=1; LED=0; N1=N2=N3=N4=N5=N6=0; P0=table[fen[1]]; N1=N2=N3=N4=N5=N6=0; N4=1; LED=0; N1=N2=N3=N4=N5=N6=0; P0=table[fen[2]]; N1=N2=N3=N4=N5=N6=0; N5=1; LED=0; N1=N2=N3=N4=N5=N6=0; P0=table[fen[3]]; N1=N2=N3=N4=N5=N6=0; N6=1; LED=0; N1=N2=N3=N4=N5=N6=0; }voidbaojing() //報(bào)警{ uintm; N1=0; N2=1; for(m=0;m<=5000;m++) { if(m%2) disp(1,xuanshou_,0x0f,time_); else disp(1,xuanshou_,0x80,time_); pmd(); if(reset==0) { Reset(); break; } }}voidinti() //初始化{ uchari=0; uchara=0; EA=1; ET0=1; SCON=0x00; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; xuanshou_=0; led_=0x0f; N1=N2=N3=N4=N5=N6=0; N3=1; P0=table[fen[0]]; N1=N2=N3=N4=N5=N6=0; N1=N2=N3=N4=N5=N6=0; N4=1; P0=table[fen[1]]; N1=N2=N3=N4=N5=N6=0; N1=N2=N3=N4=N5=N6=0; N5=1; P0=table[fen[2]]; N1=N2=N3=N4=N5=N6=0; N1=N2=N3=N4=N5=N6=0; N6=1; P0=table[fen[3]]; N1=N2=N3=N4=N5=N6=0; lcd_com(0x38); lcd_com(0x0c); lcd_com(0x06); lcd_com(0x01); delay(30); lcd_com(0x80+0x03); while(lcd_1[i]!='\0') { lcd_data(lcd_1[i]); i++; } lcd_com(0x80+0x43); i=0; while(lcd_2[i]!='\0') { lcd_data(lcd_2[i]); i++; } //***************設(shè)置搶答和答題時(shí)間***************// while(1) { if(i%50) { disp(0,xuanshou_,led_,Time[a]); } else { disp(1,xuanshou_,led_,Time[a]); delay(100); } if(add==0) Time[a]++; if(sub==0) Time[a]--; if(start==0) a++; if(++i==51) i=0; P1=0xff; while(P1!=0xff) { P1=0xff; disp(1,xuanshou_,led_,Time[a]); pmd(); } if(a==2) break; }//*****************************************// time_=Time[0];}voidmain() //主函數(shù){ ucharp1_data; inti(); TR0=1; while(1) { pmd(); //***********************搶答部分***************************// P1=0xff; if(P1!=0xff) { disp(1,xuanshou_,led_,time_); if(P1!=0xff) { p1_data=P1; switch(p1_data) { case0xfe: if(suoding==0) { P0=table[fen[0]]; N1=N2=0; N3=1; LED=1; N1=N2=N3=0; if(start_) { t=0; suoding=1; start_=0; led_=0x0f; xuanshou_=1; //1號(hào)搶答 } else { t=0; suoding=1; start_=0; xuanshou_=1; //1號(hào)犯規(guī) baojing(); } } break; case0xfd: if(suoding==0) { P0=table[fen[1]]; N1=N2=0; N4=1; LED=1; N1=N2=N4=0; if(start_) { t=0; suoding=1; start_=0; led_=0x0f; xuanshou_=2; //2號(hào)搶答 } else { t=0; suoding=1; start_=0; xuanshou_=2; //2號(hào)犯規(guī) baojing(); } } break; case0xfb: if(suoding==0) { P0=table[fen[2]]; N1=N2=0; N5=1; LED=1; N1=N2=N5=0; if(start_) { t=0; suoding=1; start_=0; led_=0x0f; xuanshou_=3; //3號(hào)搶答 } else { t=0; suoding=1; start_=0; xuanshou_=3; //3號(hào)犯規(guī) baojing(); } } break; case0xf7: if(suoding==0) { P0=table[fen[3]]; N1=N2=0; N6=1; LED=1; N1=N2=N6=0; if(start_) { t=0; suoding=1; start_=0; led_=0x0f; xuanshou_=4; //4號(hào)搶答 } else { t=0; suoding=1; start_=0; xuanshou_=4; //4號(hào)犯規(guī) baojing(); } } break; case0xef: if(suoding==0) if(qd==0) { qd=1; start_=1; //搶答開始 led_=0x4f; time_=Time[0]; } if(suoding==1) if(qd==1) { //答題開始 qd=0; start_=1; led_=0x0f; time_=Time[1]; } break; case0xdf:Reset();break;//復(fù)位 case0xbf: //加分 if(suoding&&!qd) { switch(xuanshou_) { case1: if(++fen[0]==10) fe

溫馨提示

  • 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)論