版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
學(xué)號:2009060201綜合技能實訓(xùn)報告實訓(xùn)題目:四人搶答器系(部):電子工程系專業(yè):電子信息工程技術(shù)班級:09電子工程302學(xué)生姓名:指導(dǎo)教師:起止時間:海南軟件職業(yè)技術(shù)學(xué)院海南軟件職業(yè)技術(shù)學(xué)院綜合實訓(xùn)報告摘要搶答器是一種廣泛應(yīng)用于企事業(yè)單位和商業(yè)部門,為各種知識競賽、文娛活動提供公正客觀快速裁決的一種常用電子設(shè)備,也是一種逐漸成型的電子產(chǎn)品,但市面上所售搶答器價格一般較貴且多為小規(guī)模集成電路構(gòu)成,其性能單一,工作起來不夠理想。因此,提高搶答器的性能,使其具有更強的功能,使用可靠方便已為搶答器發(fā)展的一個方向。隨著集成技術(shù)和計算機技術(shù)的發(fā)展,單片機作為其中的一個分支亦于20世紀80年代以來獲得了飛速發(fā)展,各種新品不斷涌現(xiàn),使單片機的應(yīng)用更加深入,靈活性也大大增強。本設(shè)計是采用單片機設(shè)計一款四路多功能電子搶答器。此搶答器除了具有基本的搶答功能以外,還具有答題時間控制、顯示分數(shù)等功能。它充分利用了單片機系統(tǒng)的優(yōu)點,具有結(jié)構(gòu)簡單、功能強大、可靠性好、實用性強的特點。本設(shè)計利用8051系列單片機中的AT89C51為主控芯片及外圍接口實現(xiàn)搶答系統(tǒng),利用單片機的定時器/計數(shù)器定時和記數(shù)的原理,將軟、硬件有機地結(jié)合起來,使得系統(tǒng)能夠正確地進行計時,同時使數(shù)碼管能夠正確地顯示時間。用按鈕做鍵盤輸入,揚聲器發(fā)生提示。同時系統(tǒng)能夠?qū)崿F(xiàn):開機后,液晶屏LCD1602第一行顯示“YOUYIDIYI”(友誼第一)和第二行顯示“BISAIDIER”(比賽第二)的字樣同時8只用于渲染氣氛的跑馬燈循環(huán)顯示;在搶答中,跑馬燈在原位停止,且只有開始后搶答才有效,如果在開始搶答前搶答為無效;答題中主持人可以根據(jù)答題者的答題情況對其進行加減分;搶答限定時間和回答問題的時間可在1-99s設(shè)定;可以顯示是哪位選手有效搶答和無效搶答,搶答后跑馬燈繼續(xù)顯示渲染氣氛和對應(yīng)的發(fā)光二極光亮,直至主持人按復(fù)位鍵;搶答時間和回答問題時間倒記時顯示,倒計時時間到后揚聲器發(fā)出提示;答題后主持人可以根據(jù)答題情況對答題者進行加減分。關(guān)鍵詞:多功能搶答器AT89C51單片機搶答時間答題時間
目錄1 緒論 11.1 國內(nèi)研究現(xiàn)狀與存在的問題 11.2 選題意義與目的 12 搶答器的系統(tǒng)概述 32.1 系統(tǒng)設(shè)計要點 32.2 系統(tǒng)的主要功能 32.3 系統(tǒng)需求分析 42.4 搶答器的工作流程 42.5 搶答器的工作過程 52.6 器件選型方案及詳細清單 63 硬件電路設(shè)計 73.1 芯片介紹 73.1.1 主控芯片 73.1.2 鎖存器74LS373芯片 93.1.3 串行數(shù)據(jù)轉(zhuǎn)并行數(shù)據(jù)74164芯片 93.2 時鐘頻率電路設(shè)計 93.3 復(fù)位電路設(shè)計 103.4 顯示電路設(shè)計 113.4.1 數(shù)碼管顯示電路 113.4.2 液晶屏LCD1602顯示電路 123.5 跑馬燈電路設(shè)計 133.6 發(fā)聲電路 133.7 鍵盤掃描電路設(shè)計 144 軟件設(shè)計 154.1 跑馬燈程序 154.2 數(shù)碼管顯示程序 154.3 報警(發(fā)聲)程序 164.4 搶答和答題時間調(diào)節(jié)程序 164.5 復(fù)位程序 174.6 液晶屏LCD1602程序 18結(jié)束語 19致謝 20參考文獻 21附錄 22PAGE18緒論當今的社會競爭日益激烈,選拔人才,評選優(yōu)勝,知識競賽之類的活動愈加頻繁,比賽中為了準確、公正、直觀地判斷出第一搶答者,這就要有一種搶答設(shè)備作為裁判員,于是搶答器應(yīng)用而生。搶答器是一種應(yīng)用非常廣泛的設(shè)備,在各種競賽、搶答場合中,它能迅速、客觀地分辨出最先獲得發(fā)言權(quán)的選手,無論是軍隊還是電視節(jié)目中,都可能會舉辦各種各樣的智力競賽,都會用到搶答器。如果要是讓搶答者用舉手等方法,主持人很容易誤判,會造成搶答的不公平,比賽中為了準確、公正、直觀地判斷出第一搶答者,所設(shè)計的搶答器通常由數(shù)碼顯示、燈光、音響等多種手段指示出第一搶答者。為了使這種不公平不發(fā)生,只有靠電子產(chǎn)品的高準確性來保障搶答的公平性。早期的搶答器只由幾個三極管、可控硅、發(fā)光管等組成,能通過發(fā)光管的指示辯認出選手號碼?,F(xiàn)在大多數(shù)搶答器均使用單片機(如MCS-51型)和數(shù)字集成電路,并增加了許多新功能,如選手號碼顯示、搶按前或搶按后的計時、選手得分顯示等功能。國內(nèi)研究現(xiàn)狀與存在的問題搶答器作為一種電子產(chǎn)品,早已廣泛應(yīng)用于各種智力和知識競賽場合,但目前所使用的搶答器有的電路較復(fù)雜不便于制作,可靠性低,實現(xiàn)起來很困難;有的則用一些專用的集成塊,而專用集成塊的購買又很困難。為適應(yīng)高校等多代表隊單位活動的需要而設(shè)計一個多功能搶答器,這種搶答器具有電路簡單,元件普通,易于購買等優(yōu)點,很好地解決了制作者制作困難和難于購買的問題。在國內(nèi)外已經(jīng)開始了普遍的應(yīng)用。隨著改革開放事業(yè)的不斷深入,促使人們學(xué)科學(xué)、學(xué)技術(shù)、學(xué)知識的手段多種多樣,搶答器作為一種工具,已廣泛應(yīng)用于各種智力和知識競賽場合。由于搶答器使用頻率較低,且制作程序復(fù)雜,容易讓人對其減少興致。作為一個單位若專購一臺搶答器雖然在經(jīng)濟上可以承受,但每年使用的次數(shù)極少,往往因長期存放使(電子器件的)搶答器損壞,再購置的麻煩和及時性就會影響活動的開展。而且目前多數(shù)搶答器存在三個不足之處:第一,現(xiàn)場線路連接復(fù)雜。因為每個選手位于搶答現(xiàn)場的不同位置,每個選手與控制臺之間要有長長的連接線。選手越多,連接線就越多、越亂,這些連接線不僅影響了現(xiàn)場的美觀,而且降低了搶答器的可靠性,增加了安裝的難度,甚至影響了現(xiàn)場人員的走動。第二,電路復(fù)雜。因為單片機只完成號碼處理、計時、數(shù)據(jù)運算等功能,其它功能如選手號碼的識別、譯碼、計分顯示等仍只能通過數(shù)字集成電路完成。采用單片機掃描技術(shù)識別選手搶按號碼時,電路的延遲時間較大。第三,選手搶按成功,但出現(xiàn)沒有搶答被記錄的問題。選題意義與目的在知識比賽中,特別是做搶答題目的時候,在搶答過程中,為了知道哪一組或哪一位選手先答題,必須要設(shè)計一個系統(tǒng)來完成這個任務(wù)。如果在搶答中,靠視覺是很難判斷出哪組先答題。怎樣來設(shè)計搶答器,能使以上問題得以解決?即使兩組的搶答時間相差幾微秒,也可分辨出哪組優(yōu)先答題?通過研究并在設(shè)計驗證后發(fā)現(xiàn),采用單片機技術(shù)設(shè)計的搶答器與傳統(tǒng)的搶答器相比,首先,電路連接簡單,因為大多數(shù)功能單元都通過程序設(shè)計在單片機內(nèi)部。第二,工作性能可靠,抗干擾能力優(yōu)于傳統(tǒng)搶答器,并能夠解決以上提出的問題。所以本研究是一個實用的工程設(shè)計,具有創(chuàng)新性。通過本次設(shè)計,基本掌握51系列單片機的原理,了解簡單多功能搶答器組成部分,詳細掌握智能搶答器的原理和編程方法,了解單片機類系統(tǒng)的設(shè)計基本理念,提高獨立思考的能力和編程的邏輯思維能力。同時通過這次綜合設(shè)計,提高自己的動手能力,鞏固已學(xué)的理論知識,建立單片機理論和實踐的結(jié)合,了解多功能搶答器各單元電路之間的關(guān)系及相互影響,從而能正確設(shè)計、計算定時計數(shù)的各個單元電路。進一步深入了解掌握以單片機為核心控制系統(tǒng)的設(shè)計方法及編程方法。搶答器的系統(tǒng)概述系統(tǒng)設(shè)計要點系統(tǒng)設(shè)計主要包括硬件和軟件兩大部分,依據(jù)控制系統(tǒng)的工作原理和技術(shù)性能,將硬件和軟件分開設(shè)計。硬件設(shè)計部分包括電路原理圖、合理選擇元器件、繪制線路圖,然后對硬件進行調(diào)試、測試,以達到設(shè)計要求。軟件設(shè)計部分,首先在總體設(shè)計中完成系統(tǒng)總框圖和各模塊的功能設(shè)計,擬定詳細的工作計劃;然后進行具體設(shè)計,包括各模塊的流程圖,選擇合適的編程語言和工具,進行代碼設(shè)計等;最后是對軟件進行調(diào)試、測試,達到所需功能要求。系統(tǒng)的主要功能本系統(tǒng)是借用單片機采用模塊化設(shè)計的四路搶答器,包括液晶屏LCD1062顯示、四路搶答按紐、計時(分)顯示、提示功能、開始與結(jié)束控制按鈕、時限設(shè)定、各種相關(guān)顯示調(diào)控功能等(根據(jù)需要也可另設(shè)或多設(shè)相關(guān)功能)。顯示系統(tǒng),除了有顯示計時功能外,還有加了計分功能和人性化的液晶LCD1602第一行顯示“YOUYIDIYI”(友誼第一)和第二行顯示“BISAIDIER”(比賽第二)的字樣功能等;主持人的開始按鈕和復(fù)位分別做開始與結(jié)束控制,根據(jù)活動參賽者的層次,對提前掄答者的行為設(shè)定為非法或阻隔,若設(shè)有非法搶答控制功能時,在主控處帶有公示性顯示的非法掄答者的代號,對搶答限時及回答問題限時設(shè)為倒計時,并有顯示提示。系統(tǒng)的主要功能模塊方框圖如REF_Ref302256712\h圖1所示圖SEQ圖\*ARABIC1系統(tǒng)主要功能模塊本系統(tǒng)采用模塊化設(shè)計的四路搶答器,在搶答比賽中廣泛應(yīng)用,各組分別有一個搶答按鈕。一共有四個按鍵輸入,分別對應(yīng)四路選手的搶答按鍵。主持人有開始和結(jié)束鍵。在節(jié)目開始之前可以修改,搶答時間和選手回答問題的時間設(shè)置,原始狀態(tài)下?lián)尨饡r間為10s,回答問題時間為60s。通過加鍵和減鍵修改上述時間,改完后開始鍵確定。新時間開始有效,主持人按鍵開始后,選手開始搶答為有效,數(shù)碼顯示屏顯示搶答時間倒計時和選手號,在倒計時間到揚聲器發(fā)生提示。如果主持人沒有按下開始鍵而選手就搶答視為犯規(guī),數(shù)碼顯示屏顯示犯規(guī)者的代號,揚聲器持續(xù)發(fā)生。主持人可按鍵復(fù)位,新一輪搶答開始。單片機是整個搶答器的核心,內(nèi)部電路設(shè)計用C語言編寫。它完成了時間參數(shù)的設(shè)定,搶按號碼的譯碼,保存;顯示;輸出,搶按及答題倒計時功能等。本設(shè)計中,有一個共陰的數(shù)碼管組,四個數(shù)碼管。其中兩個顯示時間,一個空位,一個顯示搶答號碼。主持人依次按下復(fù)位鍵(RESET),開始鍵后開始搶答。可以搶按,當搶按超過規(guī)定時間或答題超過規(guī)定時間后數(shù)碼管顯示“0—00”。若有選手在規(guī)定時間內(nèi)搶按成功,再次按下開始鍵則可以答題,數(shù)碼管顯示搶答時間的同時也顯示選手號碼。若在按開始鍵前搶答表示違規(guī),數(shù)碼管顯示“X—00”(X為選手代號)。系統(tǒng)需求分析搶答限定時間和回答問題的時間可以在1~99s設(shè)定。液晶屏LCD1602和跑馬燈做渲染氣氛之用、在搶答開始,有專門的LED燈作為開始信號(燈亮表示開始搶答)。在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效。在搶答后,有效搶答的選手對應(yīng)的LCD燈亮,表示已成功搶答??梢燥@示是哪位選手有效搶答和無效搶答,搶答和答題倒計時時間到揚聲器發(fā)生提示。答題后主持人可以根據(jù)答題情況對答題者進行加減分。搶答器的工作流程搶答器的基本工作原理:在搶答競賽或呼叫時,有多個信號同時或不同時送入主電路中,搶答器內(nèi)部的寄存器工作,并識別、記錄第一個號碼,同時內(nèi)部的定時器開始工作,記錄有關(guān)時間并產(chǎn)生超時信號。在整個搶答器工作過程中,顯示電路、聲音電路等還要根據(jù)現(xiàn)場的實際情況向外電路輸出相應(yīng)信號。搶答器的工作流程分為:系統(tǒng)復(fù)位、正常流程、違例流程等幾部分,如REF_Ref302258159\h圖2所示,圖SEQ圖\*ARABIC2搶答器工作流程搶答器的工作過程開機液晶LCD1602第一行顯示“YOUYIDIYI”(友誼第一)和第二行顯示“BISAIDIER”(比賽第二)的字樣同時跑馬燈移動,并共陰的數(shù)碼管組顯示“00—10”(10為系統(tǒng)默認的搶答時間10秒),可以通過加時間和減時鍵來重新設(shè)置搶答時間,設(shè)定好搶答時間后按開始鍵確定,共陰的數(shù)碼管組顯示“00—60”(60為系統(tǒng)默認的答題時間60秒)進入答題時間設(shè)置狀態(tài),設(shè)置方法同搶答時間設(shè)置。設(shè)置好后按開始確定進入系統(tǒng)初始狀態(tài);主持人按開始鍵開始搶答,并數(shù)碼管開始倒計時和搶答LCD燈亮,作為開始搶答提示信號,若在倒計時期間的第一位選手搶答則視為有效搶答,進入預(yù)答題階段,等待主持人按開始鍵;這時若主持人按下開始后就可以進入答題階段,數(shù)碼管倒計時顯示;一旦有有效搶答則對其他選手的搶答進行封鎖;搶答和答題的倒計時時間到則揚聲器發(fā)聲提示;答題后主持人可以根據(jù)答題情況通過減分鍵和減分鍵對答題者進行加減分;在主持人按開始搶答前若有選手按了搶答鍵,則數(shù)碼管顯示其代號并揚聲器發(fā)聲提示;在進入初始狀態(tài)后,主持人任何時候按下復(fù)位鍵,則立即進入初始狀態(tài);總而言之,本課題利用AT89C51單片機及外圍接口實現(xiàn)的搶答系統(tǒng)設(shè)計了搶答器,該搶答器增加了新功能、提高了系統(tǒng)的可靠性、簡化了電路結(jié)構(gòu)、節(jié)約了成本,是一個實用的工程設(shè)計。器件選型方案及詳細清單微控制器選用ATMAL公司生產(chǎn)的AT89C51,該芯片貨源充足,并且價格也比較便宜。如表1所示。表1元器件清單器件名稱規(guī)格型號數(shù)量微處理器AT89C511芯片74LS373674LS1641晶振12MHZ1電容30pF210pF(電解電容)1電阻220Ω211KΩ(滑動變阻器)110KΩ1按鈕BUTTON87段數(shù)碼管組7SEG-MPX4-CC-BLUE17SEG-COM-CAT-BLUE4LCD1602液晶屏LM016L1三極管NPN1揚聲器SPEAKER1LEDBLUE8GREEN4YELLOW1硬件電路設(shè)計芯片介紹主控芯片本設(shè)計中的微控制器選用單片機系列中的ATMAL公司生產(chǎn)的AT89C51,該芯片具有標準易用,貨源充足,價格便宜等特點。AT89C51單片機是ATMAL公司89系列單片機的一種具有8位Flash存儲器的單片機,是眾多由8051單片機加強改進演變而來的系列單片機中最具代表性的一款。它最大特點是片內(nèi)含有Flash存儲器,用途十分廣泛,特別是在生產(chǎn)便攜式商品,手提式儀器等方面,有著十分廣泛的應(yīng)用[]。其外部結(jié)構(gòu)及引腳如REF_Ref302332601\h圖3所示。圖SEQ圖\*ARABIC3AT89C51外部結(jié)構(gòu)圖AT89C51是89系列單片機的標準型,它在內(nèi)部含有4KB或8KB可重復(fù)編程的Flash存儲器,可進行1000次擦寫操作。全靜態(tài)工作為0-24MHZ,有3級程序鎖存器,內(nèi)部含有128-256字節(jié)的RAM,有32條可編程I/O口線,2-3個16位定時/計數(shù)器,6-8個中斷源,通用的串行接口,低電壓空閑及電源下降方式。AT89C51單片機主要有以下部件:8051CPU、振蕩電路、總線控制部件、中斷控制部件、片內(nèi)Flash存儲器、片內(nèi)RAM、并行I/O接口、定時器和串行I/O接口。AT89C51單片機內(nèi)部由CPU、4KB的FPEROM,128B的RAM,兩個16位的定時/計數(shù)器T0和T1,4個8位的I/O端P0、P1、P2、P3等組成。單片微機內(nèi)部最核心的部分是CPU。CPU主要功能是產(chǎn)生各種控制信號,控制存儲器、輸入/輸出端口的數(shù)據(jù)傳輸、數(shù)據(jù)的算術(shù)運算、邏輯運算以及位操作處理等,CPU按其功能可分為運算器和控制器兩部分??刂破饔沙绦蛴嫈?shù)器PC、指令儲存器、指令譯碼器、實時控制與條件轉(zhuǎn)移邏輯電路等組成。它的功能是對來自存儲器中的指令進行譯碼,通過實時控制電路,在規(guī)定的時刻發(fā)出各種操作所需的內(nèi)部和外部的控制信號,使各部分協(xié)調(diào)工作,完成指令所規(guī)定的操作。運算器由算術(shù)邏輯器部件ALU、累加器ACC、暫存器、程序狀態(tài)字寄存器PSW,BCD碼運算調(diào)整電路等組成。為了提高數(shù)據(jù)處理和位操作功能,片內(nèi)增加了一個通用寄存器B和一些專用寄存器,還增加了位處理邏輯電路的功能。其內(nèi)部結(jié)構(gòu)如REF_Ref302419666\h圖4所示。圖SEQ圖\*ARABIC4AT89C51內(nèi)部結(jié)構(gòu)圖AT89C51單片機具有特殊功能寄存器,也稱專用寄存器,是具有特殊功能的所有寄存器的集合,簡稱SFR(SpecialFunctionRegister)。特殊功能寄存器共含有22個不同寄存器。它們的地址分配在80H~FFH中,即在RAM地址中。這些寄存器的名稱和地址見表1表2AT89C51特殊功能寄存器列表注:帶*號的特殊功能寄存器都是可以為尋址的寄存器。符號地址注視*ACC0E0H累加器*B0F0H乘法寄存器*PSW0D0H程序狀態(tài)字SP81H堆棧指針DPL82H數(shù)據(jù)存儲器指針低8位DPH83H數(shù)據(jù)存儲器指針高8位*IE0A8H中斷允許控制器*IP0D8H中斷優(yōu)先控制器*P080H端口0*P190H端口1*P20A0H端口2*P30B0H端口3PCON87H電源控制及波特率選擇*SCON98H串行口控制器SBUF99H串行數(shù)據(jù)緩沖器*TCON88H定時器控制TMOD89H定時器方式選擇TL08AH定時器0低8位TL18BH定時器0高8位TH08CH定時器1低8位TH18DH定時器1高8位雖然特殊功能寄存器地址在80H~FFH之中,但在80H~FFH的地址單元中,不是所有的單元都被特殊功能寄存器占用,未被占用的單元,其內(nèi)容是不確定的,如果對這些單元進行操作,得到的是一些隨機數(shù),而寫入則無效。所以,用戶編程時不應(yīng)該將數(shù)據(jù)寫入這些未確定的地址單元,它們是公司留待將來開發(fā)新產(chǎn)品時使用的。鎖存器74LS373芯片當三態(tài)允許控制端OE為低電平時,O0~O7為正常邏輯狀態(tài),可用來驅(qū)動負載或總線。當OE為高電平時,O0~O7呈高阻態(tài),即不驅(qū)動總線,也不為總線的負載,但鎖存器內(nèi)部的邏輯操作不受影響。當鎖存允許端LE為高電平時,O隨數(shù)據(jù)D而變。當LE為低電平時,O被鎖存在已建立的數(shù)據(jù)電平。圖SEQ圖\*ARABIC574LS373引腳圖串行數(shù)據(jù)轉(zhuǎn)并行數(shù)據(jù)74164芯片時鐘(CP)每次由低變高時,數(shù)據(jù)右移一位,輸入到Q0,Q0是兩個數(shù)據(jù)輸入端(DSA和DSB)的邏輯與,它將上升時鐘沿之前保持一個建立時間的長度。主復(fù)位(MR)輸入端上的一個低電平將使其它所有輸入端都無效,同時非同步地清除寄存器,強制所有的輸出為低電平。圖SEQ圖\*ARABIC674LS164引腳圖時鐘頻率電路設(shè)計單片機必須在時鐘的驅(qū)動下才能工作。在單片機內(nèi)部有一個時鐘振蕩電路,只需要外接一個振蕩源就能產(chǎn)生一定的時鐘信號送到單片機內(nèi)部的各個單元,決定單片機的工作速度。時鐘電路原理圖如REF_Ref302419538\h圖7所示。圖SEQ圖\*ARABIC7時鐘電路原理圖一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個電容C1,C2的作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進行微調(diào)。C1,C2的典型值為30PF。單片機在工作時,由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時鐘信號的周期稱為時鐘周期,其大小是時鐘信號頻率fosc的倒數(shù)。圖中時鐘頻率為12MHz,即fosc=12MHz,則時鐘周期為1/12μs。復(fù)位電路設(shè)計計算機在啟動運行時都需要復(fù)位,復(fù)位使中央處理器CPU和系統(tǒng)中的其他器件都處于一種初處理器CPU和系統(tǒng)中的其他器件都處于一種初始狀態(tài),并從這個初始狀態(tài)開始工作。對于MCS-51單片機,在RST復(fù)位引腳端接一個電容至+5V和一個電阻至地端,就能實現(xiàn)上電自動復(fù)位,如REF_Ref302337868\h圖8所示。在加電瞬間,電容通過電阻充電,就在RST引腳上出現(xiàn)一定時間的高電平信號,只要高電平信號時間足夠長,就可以使MCS-51單片機有效地復(fù)位。圖圖SEQ圖\*ARABIC8上電/手動復(fù)位電路MCS-51系列單片機復(fù)位后內(nèi)部各單元的初始狀態(tài)寄存器初始狀態(tài)值寄存器初始狀態(tài)值PC0000HTMOD00HACC00HTCON00HB00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP1、P2、P3、P40FFHSCON00HIPxxx00000BPCON0xxx0000BIE0xx00000BSBUF不定顯示電路設(shè)計顯示功能與硬件關(guān)系極大,當硬件固定后,如何在不引起操作者誤解的前提下提供盡可能豐富的信息,全靠軟件來解決。數(shù)碼管顯示電路在這里我們使用的是七段數(shù)碼管顯示,通常在顯示上我們采用的方法一般包括兩種:一種是靜態(tài)顯示,一種是動態(tài)顯示。其中靜態(tài)顯示的特點是顯示穩(wěn)定不閃爍,程序編寫簡單,但占用端口資源多;動態(tài)顯示的特點是顯示穩(wěn)定性沒靜態(tài)好,程序編寫復(fù)雜,但是相對靜態(tài)顯示而言占用端口資源少。在本設(shè)計中根據(jù)實際情況采用的是動態(tài)顯示和靜態(tài)顯示方法。單片機P0口外接兩片74LS373鎖存器來輸出段選碼和位選碼,通過C語言編程,先讓其段選的鎖存器打開,位選鎖存器關(guān)閉,P0口輸出段選碼,然后打開位選鎖存器,關(guān)閉段選鎖存器,P0口輸入段選,這樣就可以拓展了I/O口,解決了單片機I/O口不夠用的問題。4位七段數(shù)碼管動態(tài)顯示電路如REF_Ref302340414\h圖9所示圖SEQ圖\*ARABIC94位共陰極數(shù)碼管顯示電路1位七段數(shù)碼管靜態(tài)顯示電路如REF_Ref302340933\h圖10所示圖SEQ圖\*ARABIC101位共陰極數(shù)碼管計分顯示電路液晶屏LCD1602顯示電路為了獲得較好的效果,在本設(shè)計中加入了液晶屏LCD1602顯示電路,1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯數(shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”。1602識別的是ASCII碼,試驗可以用ASCII碼直接賦值。1602通過D0~D7的8位數(shù)據(jù)端傳輸數(shù)據(jù)和指令。顯示模式設(shè)置:00110000[0x38]設(shè)置16×2顯示,5×7點陣,8位數(shù)據(jù)接口;顯示開關(guān)及光標設(shè)置:00001DCB,D顯示(1有效)、C光標顯示(1有效)、B光標閃爍(1有效)000001NS,N=1(讀或?qū)懸粋€字符后地址指針加1&光標加1),N=0(讀或?qū)懸粋€字符后地址指針減1&光標減1),S=1且N=1(當寫一個字符后,整屏顯示左移),S=0當寫一個字符后,整屏顯示不移動數(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光標移動設(shè)置,寫指令0cH顯示開及光標設(shè)置。圖SEQ圖\*ARABIC11液晶屏LCD1602顯示電路跑馬燈電路設(shè)計跑馬燈由8個LED發(fā)光二極管組成,如果把8個LED等直接接在單片機的I/O口上需要占8個I/O口,很浪費資源,所以本設(shè)計的跑馬燈是由單片的串口來操作,通過串行數(shù)據(jù)轉(zhuǎn)并行數(shù)據(jù)芯片74LS164來直接驅(qū)動跑馬燈,為了防止流過二極管的電路過大,所以在二極管的另一端加上220Ω的電阻。圖圖SEQ圖\*ARABIC12跑馬燈電路設(shè)計發(fā)聲電路人耳能聽到的聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單片機某個I/O口線上的“高”電平或“低”電平,則在該I/O 口線上就能產(chǎn)生一定頻率的矩形波,接上揚聲器就能發(fā)出一定頻率的聲音,若再利用延時程序控制“高”“低”電平的持續(xù)時間,就能改變輸出頻率,從而改變音調(diào),使揚聲器發(fā)出不同的聲音。利用三極管的特性,當三極管Vc>Vb.>Ve時三極管工作在放大區(qū)使電路的電路和電壓放大,達到放大功率的目的,原理圖REF_Ref302419502\h圖13所示。圖SEQ圖\*ARABIC13發(fā)聲電路原理圖鍵盤掃描電路設(shè)計鍵盤是人與單片機打交道的主要設(shè)備。關(guān)于鍵盤硬件電路的設(shè)計方法也可以在文獻和書籍中找到,配合各種不同的硬件電路,這些書籍中一般也提供了相應(yīng)的鍵盤掃描程序。站在系統(tǒng)監(jiān)控軟件設(shè)計的立場上來看,僅僅完成鍵盤掃描,讀取當前時刻的鍵盤狀態(tài)是不夠的,還有不少問題需要妥善解決,否則,人們在操作鍵盤就容易引起誤操作和操作失控現(xiàn)象。在單片機應(yīng)用中鍵盤用得最多的形式是獨立鍵盤及矩陣鍵盤。它們各有自己的特點,其中獨立鍵盤硬件電路簡單,而且在程序設(shè)計上也不復(fù)雜,一般用在對硬件電路要求不高的簡單電路中;矩陣鍵盤與獨立鍵盤有很大區(qū)別,首先在硬件電路上它要比獨立鍵盤復(fù)雜得多,而且在程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢得多,因此它更適合于多按鍵電路。其次就是消除在按鍵過程中產(chǎn)生的“毛刺”現(xiàn)象。這里采用最常用的方法,即延時重復(fù)掃描法,延時法的原理為:因為“毛刺”脈沖一般持續(xù)時間短,約為幾ms,而我們按鍵的時間一般遠遠大于這個時間,所以當單片機檢測到有按鍵動靜后再延時一段時間后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無效。在本文設(shè)計中采用了獨立鍵盤的方式,本鍵盤掃描電路設(shè)計中包括選手搶答按鍵輸入電路(四個選手按鈕),主持人按鍵輸入電路(一個開始按鍵、一個復(fù)位按鍵),時間控制電路和計分電路(加一按鍵、減一按鍵各一個)鍵盤電路如REF_Ref302420638\h圖14所示圖SEQ圖\*ARABIC14鍵盤電路軟件設(shè)計軟件是計算機系統(tǒng)的靈魂,沒有軟件計算機不能充分發(fā)揮其功能,這是軟件在計算機中的地位,而在計算機控制系統(tǒng)中,軟件也是非常重要的。在四人多功能搶答器系統(tǒng)中,硬件設(shè)備的功能是由軟件來定義的,如系統(tǒng)要數(shù)碼管顯示字符,通過向數(shù)碼管輸入段選碼和位選碼程序來完成控制功能,通過軟件定義鍵盤功能,通過編程完成LED數(shù)碼顯示等等,由此可見,軟件是控制系統(tǒng)中的一個重要組成部分。本程序通過C語言來編程的,C語言的特點就是可以使你盡量少地對硬件進行操作,具有很強的功能性、結(jié)構(gòu)性和可移植性。跑馬燈程序利用單片機的定時器0每50ms中斷一次對變量count進行加一,然后在跑馬燈子程序程序里查詢變量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上,所以要對其操作是就要開打相應(yīng)的鎖存器,若要在某一位顯示字符時,先打開段選鎖存器,向數(shù)碼管輸入段選,再關(guān)閉段選鎖存器打開位選鎖存器,向數(shù)碼管輸入位選,然后關(guān)閉位選即可顯示需要顯示的字符。防止段選對位選的干擾,應(yīng)在輸入段選后加一條消影語句P0=led;,由于單片機執(zhí)行程序速度非???,通常在顯示一個字符后稍作延時。 N2=0; //開段選鎖存器 N1=1; //關(guān)位選鎖存器 P0=table[xuanshou];//顯示編號 N1=0; N2=0; P0=led; //消影 N1=0; //關(guān)段選鎖存器 N2=1; //開位選鎖存器 wei_1(); //調(diào)用位選子函數(shù) delay(200);//延時 clear(); //清楚位選報警(發(fā)聲)程序?qū)釉趽P聲器上的引腳輸出“高”,“低”電平的方波,就能聽到揚聲器發(fā)出的聲音。在報警時檢測是否有復(fù)位鍵按下,若有則退出報警程序。 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; } }搶答和答題時間調(diào)節(jié)程序系統(tǒng)開機后,先要設(shè)置搶答和答題時間,當變量a等于0時間設(shè)置搶答時間,當變量a等于1時間設(shè)置答題時間,先是a等于0進入設(shè)置搶答時間,系統(tǒng)檢測到“加時”鍵按下,則系統(tǒng)增加搶答時間,測到“減時”鍵按下,則系統(tǒng)減少搶答時間,若系統(tǒng)檢測到“開始”鍵按下,則a加1等于1進入答題時間設(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ū)別是寫指令時rs=0;而寫數(shù)據(jù)時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è)計過程中,很是受益匪淺。通過對自己在大學(xué)兩年時間里所學(xué)的知識的回顧并充分發(fā)揮對所學(xué)知識的理解和對畢業(yè)設(shè)計的思考及書面表達能力,最終完成了。這為自己今后進一步深化學(xué)習(xí),積累了一定寶貴的經(jīng)驗。撰寫論文的過程也是專業(yè)知識的學(xué)習(xí)過程,它使我運用已有的專業(yè)基礎(chǔ)知識,對其進行設(shè)計分析和解決一個理論問題或?qū)嶋H問題,把知識轉(zhuǎn)化為能力的實際訓(xùn)練。培養(yǎng)了我運用所學(xué)知識解決實際問題的能力。通過這次課程設(shè)計我發(fā)現(xiàn),只有理論水平提高了,才能夠?qū)⒄n本知識與實踐相整合,理論知識服務(wù)于教學(xué)實踐,以增強自己的動手能力。這個實訓(xùn)十分有意義,我獲得很深刻的經(jīng)驗,通過這次課程設(shè)計,我們知道了理論和實際的距離,也知道了理論和實際想結(jié)合的重要性,也從中得知了很多書本上無法得知的知識。由于時間的限制有些功能還不是很完善,如果時間允許還可以將設(shè)計的擴展功能增強:1、把四路拓展成八路或更多路搶答。2、可以設(shè)計聲控裝置,在主持人說開始時,系統(tǒng)自動完成清零并開始計時的功能。3、將搶答按鍵用無線實現(xià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) //延時{ 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];//顯示編號 N1=0; N2=0; P0=led; //消影 N1=0; //關(guān)段選鎖存器 N2=1; //開位選鎖存器 wei_1(); //調(diào)用位選子函數(shù) delay(200);//延時 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() //報警{ 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è)置搶答和答題時間***************// 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號搶答 } else { t=0; suoding=1; start_=0; xuanshou_=1; //1號犯規(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號搶答 } else { t=0; suoding=1; start_=0; xuanshou_=2; //2號犯規(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號搶答 } else { t=0; suoding=1; start_=0; xuanshou_=3; //3號犯規(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號搶答 } else { t=0; suoding=1; start_=0; xuanshou_=4; //4號犯規(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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 混合動力電動汽車結(jié)構(gòu)原理與檢修 第2版 課件 學(xué)習(xí)情景2 混合動力電動汽車高壓維修操作安全
- 年末晚會活動策劃方案(3篇)
- 牛雜店工人管理制度范本(3篇)
- 甲醇爐燃氣安全管理制度(3篇)
- 獸藥質(zhì)檢培訓(xùn)
- 線上幫辦團隊管理制度內(nèi)容(3篇)
- 蔬菜種植后期管理制度(3篇)
- 通信網(wǎng)管中心管理制度(3篇)
- 飯店協(xié)會檔案管理制度(3篇)
- 《GA 1016-2012槍支(彈藥)庫室風(fēng)險等級劃分與安全防范要求》專題研究報告
- 2025年廣東省中考語文試卷真題(含答案解析)
- 燙熨治療法講課件
- 2025至2030中國模塊化變電站行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 電廠清潔生產(chǎn)管理制度
- 2025年江蘇省事業(yè)單位招聘考試教師招聘體育學(xué)科專業(yè)知識試題
- 機械設(shè)計年終述職報告
- 可信數(shù)據(jù)空間解決方案星環(huán)科技
- 建筑工程監(jiān)理服務(wù)承諾書范文
- 知榮明恥主題班會課件
- 職業(yè)技術(shù)學(xué)院工業(yè)機器人技術(shù)高職技能考核標準1022(簡化版)
- 聲學(xué)基礎(chǔ)課后題答案
評論
0/150
提交評論