基于單片機八路搶答器設計畢業設計論文_第1頁
基于單片機八路搶答器設計畢業設計論文_第2頁
基于單片機八路搶答器設計畢業設計論文_第3頁
基于單片機八路搶答器設計畢業設計論文_第4頁
基于單片機八路搶答器設計畢業設計論文_第5頁
已閱讀5頁,還剩29頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

PAGEPAGE32畢業設計課題:基于單片機八路搶答器學生姓名:學號:專業:電子信息工程班級:院(系):機電學院指導教師:職稱:二○年月日畢業設計真實性承諾及指導教師聲明學生畢業設計真實性承諾本人鄭重聲明:所提交的畢業設計是本人在指導教師的指導下,獨立進行研究工作所取得的成果,內容真實可靠,不存在抄襲、造假等學術不端行為。除文中已經注明引用的內容外,本設計不含其他個人或集體已經發表或撰寫過的研究成果。對本文的研究做出重要貢獻的個人和集體,均已在文中以明確方式標明。如被發現設計中存在抄襲、造假等學術不端行為,本人愿承擔相應的法律責任和一切后果。學生(簽名): 日期:指導教師關于學生畢業設計真實性審核的聲明本人鄭重聲明:已經對學生畢業設計所涉及的內容進行嚴格審核,確定其成果均由學生在本人指導下取得,對他人論文及成果的引用已經明確注明,不存在抄襲等學術不端行為。指導教師(簽名): 日期: 注:此聲明由指導教師和學生本人親筆簽名。基于單片機八路搶答器摘要單片機帶來的電子化和智能化的領域,如果從微控制器設計了一個非常繁瑣的系統將能夠得到電路簡單,最好的結果完成。如果經典電子系統的電子系統中死亡,因此智能化的現代電子系統是一個具有電子系統的“生命”。隨著科技的進步,結合串行通信用微控制器,并適用于各種電子系統已經成為一種趨勢。這種設計是基于單芯片系統響應的設計,通過串行通信的動態數據傳輸,因此,響應程序的系統提供更多更好的功能。“身體”和微控制器應用的系統響應的供應鏈管理系統的硬件結構賦予它新的“生命”,所以在傳統的搶答器面前具有電路簡單,成本低,運行可靠,并其他功能。為了響應大家都知道,是時候為玩家利用反應捕捉,玩家回答,搶球員的稱號來回答問題。響應只考玩家的反應速度也需要玩家有足夠的知識和一定的勇氣。玩家排隊出發,體現公正,公平的原則。AbstractSCM

takesusinto

theintelligentelectronics,

many

complicatedsystem

ifby

SCMdesign,

can

receivethegood

effectof

thecircuitmoresimple,

thefunctionismorecomplete.

Ifthe

electronic

systemofelectronic

systemsandclassical

asadead,

thentheintelligentmodernelectronicsystems

isa"life"oftheelectronicsystem.But

withadvancesintechnology,

combinedwiththeMCUand

serialcommunication

isappliedtomore

ofatrend

alreadybecame

eachelectronicsystem.

Thisdesignis

basedon

SCMtodesignthe

respondersystem,

throughthe

serialcommunicationdynamic

transmission

data,

makethe

respondersystemhave

moreperfect

function.

Thehardwarestructure

oftheSCMsystem

gives

theanswerinthesystem

"body",

andtheapplication

ofSCM

givenitsnew

"life",which

hastheadvantagesofsimplecircuit,

lowcost,

reliableoperation

andothercharacteristics

infrontof

thetraditionviestoanswerfirst.

Forthe

responder,

weallknowthat

itis

for

players

todo

snatchestheanswer

whenused,

playersanswer

questions,

grab

the

player

toanswerthequestion.

Responder

notonlyteststheplayer's

reactionspeed

also

requeststhecontestantto

havesufficientknowledgeand

somecourage.

Theplayers

standonthesamestartingline,embodies

theprinciplesoffairnessandjustice.目錄基于單片機八路搶答器 1摘要 11、緒論 41.1、設計要求及目的 42、硬件電路設計 42.1、總體原理圖 52.2、時鐘頻率電路的設計 52.3、復位電路的設計 62.4、顯示電路的設計 62.5、鍵盤掃描電路的設計 72.6、發聲 82.7、系統復位 83、系統軟件設計 93.1、系統方框圖 93.2、程序流程圖 103.3、程序 114、焊接調試過程與問題分析。 134.1焊接 134.1.1、檢測各元件 134.1.2、對PCB板進行排版及連線 154.1.3、焊接的問題及解決 154.1.4、焊接的技巧和注意事項 164.2、調試 164.2.1、系統的調試 164.2.2、具體調試 175、總結 18參考文獻 18附件1:程序 181、緒論1.1、設計要求及目的(1)開發適用于8人響應的。(2)再次按下啟動按鈕后,回答恢復系統設置。(3)啟動響應數字顯示數字0,玩家回答實行優先號碼顯示優先仍然有望清洗系統響應玩家。答案答案后,這些數字表示的優先級,但聽到。這個數字似乎沒有別的答案。(4)響應搶答計時功能,以及時間來回答預計,響應設置該時間設置為30秒,而當主機交換機之后開始“開始”時,定時器開始計數減少,同時蜂鳴具有短聲音。(5)建立的響應時間,玩家可以回答,計時器停止時,播放器的數量,并在顯示器上顯示的時間來作出響應。并保持主機按復位按鈕。(6)在指定的時間,也沒有人回答,應對這種差距,喇叭發出警報,并禁用響應。2、硬件電路設計一.系統硬件設計為使硬件電路設計盡可能合理,應注意以下幾方面:(1)最大程度地利用芯片的功能強的,為了簡化電路,強大的芯片可以替代一些共同的芯片,在制造過程的改善,減少了新的芯片的價格是不一定比一些普通的芯片價格高的總和更大。(2)留出了空間設計。在硬件電路設計,修改,以考慮到方便將來擴展。因為很少有電路設計硬道理,如果我們不遺余力地對未來沒有痛苦可能要修改或擴展位強制執行完整的返工。(3)的太空計劃,片上微控制器程序空間足夠大的選擇,本設計采用AT89C51單片機。(4)I/O端口,發達的田間試驗往往會發現一些不容忽視的問題的雛形,而這些問題都不能簡單地依賴于軟件的措施來解決。例如,要收集一些新的信號時,它必須在長發現數據的結尾;一些物理需要來控制,它是必要的,以提高產量。如果硬件電路設計,拋開一些I/O口,雖然它是空的,無用的,所以使用的時候可用。2.1、總體原理圖總電路圖2.2、時鐘頻率電路的設計MCU必須工作,以壓低時鐘在微控制器的內部時鐘振蕩器電路只需要一個外部振蕩源可以產生一個內部時鐘信號提供給微控制器的每個單元,確定所述微控制器的工作速度。外部振蕩源電路一般用在石英晶體振蕩器。此電路由XTAL2銷振蕩器的開始之間的10ms的延遲動力產生約3V的正弦時鐘信號的幅度,頻率振蕩頻率主要取決于石英振蕩器。電路,兩個電容C1,C2有兩個作用:第一,幫助振蕩器啟動;二是微調振蕩器的頻率。典型的C1,C2值30PF。SCM周期的工作,直接在單位的內部時鐘信號控制邏輯內部振蕩器或外部數據產生被稱為時鐘周期。它的大小是時鐘頻率信號的反轉,通常表示FOSC。如為12MHz的時鐘頻率,與FOSC=12MHz的,循環時間為1/12μs。2.3、復位電路的設計9英尺微控制器硬件復位端RST,只要四個周期結束正在進行的驅動器,實現了高層次的復位,復位每個狀態都恢復到原來的狀態,電路原理圖如圖所示的微控制器:復位電路圖值得注意的是,其中,在設計中使用的硬件復位和軟件復位兩種功能,從上面的寄存器和存儲器的表觀值之后一個硬件復位每個狀態被恢復到初始值,并在在引言中提到的功能前記憶功能倒計時時間,為實現這一功能的前提是不恢復MCU的硬件,所以軟復位功能集。事實上,一個軟復位過程完成之后,該程序指針,使其通過一個跳轉指令跳轉到程序執行的開始的地址。2.4、顯示電路的設計提供了豐富的信息盡可能多的硬件和屏幕之間的關系的前提下,是大的,當硬件是固定的,因為操作者不會引起誤解,由于軟件來解決。顯示電路圖2.5、鍵盤掃描電路的設計鍵盤是誰處理的計算機系統的人的主要設備。硬件電路設計方法關于鍵盤也可以在書的文獻中發現,用各種不同的硬件電路,這些書籍通常也提供一個適當的掃描儀的鍵盤。住在視系統監控軟件設計上來看,只有全面調查的鍵盤,鍵盤的瞬間讀取當前的情況是遠遠不夠的,還有一個必須妥善解決了許多問題,否則,人們在鍵盤容易引起故障和行動失控的現象。在最獨立和鍵盤矩陣鍵盤的鍵盤微控制器應用。鍵盤圖當在鍵盤上多個鍵的數量,以減少對I/O端口占用鍵通常排列成矩陣形式。在鍵盤矩陣,在交叉路口的每個水平和垂直線不直接連接,而是通過單個按鈕來連接。因此,一個端口(如端口P1)可以形成一個乘88個按鈕,而不是直進鍵盤端口一倍以上,而且線的數量越多,所不同的是顯而易見的,這樣的作為一條線,然后更可形成20鍵鍵盤,和直線的端口可以只是多了一個按鍵(按鍵9)。因此,鍵的數目所需要的時間比較長,使用矩陣鍵盤的是合理的事情。2.6、發聲我們知道該聲譜中的幾十到幾千赫茲的,如果用一個程序來檢查“高”或一個低級微控制器端口線的電平,來在口中可以產生一個給定的波頻率計,lidhniGjuha可以發聲音的某些頻率,如果有更多的使用過程控制延遲的“高”級別“低”的持續時間,可以改變輸出頻率來改變音調,使不同聲音的號角。發聲電路圖2.7、系統復位CPU中的初始階段,過程開始執行程序0000H呼叫系統復位。通過實現系統復位的方式,復位系統可以分為硬件復位和軟件復位。CPU硬件復位必須由具有高潛力足夠長的時間,以達到相關的CPU復位電路端子的外部硬件給出。上電復位,手動復位和硬件看門狗復位按鈕是硬件復位。硬件復位之后,每一個單獨的寄存器的狀態被初始化,并在片上的通用寄存器的內容沒有任何影響。然而,硬件復位可清除中斷標志將被自動激活,使中斷系統的正常工作,這樣一個事實很容易被忽略的很多程序員。軟件復位是使用一組指令來模擬硬件復位功能,最后通過分支指令使程序開始執行的地址0000H。每個專用寄存器復位操作是容易的,這是沒有必要的,以充分模擬,將根據主程序初始化的實際需要來完成。中斷標志被激活的清潔常常被遺忘,因為它并沒有解決位編程。有些程序員使用020000(LJMP0000H)為陷阱的軟件,直接解決轉0000H軟件復位完成,這是典型的這種類型的錯誤。軟件復位是使用軟件和軟件陷阱的工作必須在主管后進行,這樣才能主動中斷標志置位在中斷服務程序發生程序錯誤完全是,它會阻止同樣的中斷級別。因為軟件是一個頂級門將關閉,它會阻止說中斷響應,我們可以看到激活中斷標志清除的重要性。3、系統軟件設計軟件和硬件的設計任務的分析相結合,其以硬件,其中任務是由軟件中的基本形式完成了硬件電路設計的功能,主要是將確定如下。3.1、系統方框圖STC89C52主控制器模塊STC89C52主控制器模塊電源鍵盤掃描電路電源鍵盤掃描電路4位數碼管顯示模塊4位數碼管顯示模塊 蜂鳴器報警模塊蜂鳴器報警模塊 圖1系統方框圖3.2、程序流程圖在本設計中,主要包括以下八個主要項目:主程序;非法響應程序;響應時間調整方案;點票程序;正常的響應持有人;犯規持有人;畫面和聲音的程序。主流程圖所示:3.3、程序#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintucharc=0;ucharsc;ucharcodeleddata[]=//共陽數碼管的段碼 {0xc0,//"0"0xf9,//"1"0xa4,//"2"0xb0,//"3"0x99,//"4"0x92,//"5"0x82,//"6"0xf8,//"7"0x80,//"8"0x90,//"9"};voidDelayMS(uintms){ uchart; while(ms--) for(t=0;t<120;t++);}voidmain(void){ TMOD=0x01; //選擇工作方式 TH0=0x3c; //定時器T0初始值的高八位 TL0=0xaf; //定時器T0初始值的低八位 EA=1; ET0=1; while(1) { P2=0x06; P1=leddata[sc%10]; DelayMS(100); P2=0x04; DelayMS(100); P2=0x06; P2=0x02; P1=leddata[sc/10]; DelayMS(100); }}voidkeyinter()interrupt1{ EA=0; TH0=0x3c; TL0=0xaf; c++; if(c==20) { c=0; sc++; if(sc==30) { sc=0; }}}4、焊接調試過程與問題分析。4.1焊接主要步驟:1.檢測各元件2.對PCB板進行排版及 布線3.焊接分步驟完成:4.1.1、檢測各元件用萬用表檢查、了解元件;(1)一般電阻電阻的阻值是可以根據電阻上的色環判斷:1)、四環電阻阻值等于前兩位對應的數值乘上第三位對應的倍率,第四位為誤差范圍;2)、五環電阻阻值等于前三位對應的數值乘上第四位對應的倍率,第五位為誤差范圍。EQ\o\ac(○,1)電阻R0為五環型色環顏色:棕黑黑棕棕阻值=100×102=1000Ω誤差為±1%實測阻值為992Ω本實驗R1用兩個R0的電阻并聯成;圖1電阻R0EQ\o\ac(○,2)電阻R2為四環型色環顏色:綠棕紅金阻值=51×102=5100Ω=5.1kΩ誤差為±5%實測阻值為5.02kΩ圖2電阻R2EQ\o\ac(○,3)光敏電阻在光照情況下,測量光敏電阻的阻值,即為光敏電阻的亮阻;在光的情況下,電阻感光性的測量,阻力光敏是深色;(2)發光二極管發光二極管具有兩個端子,一方的正極長度短,負極的短端。可以使用萬用表測量的電阻值時的兩種配置中,可以知道,當連接到連接到短,發光二極管電阻的正極和負極端子的長端是相對小的即單個二極管的導通特性。(3)的可變電阻器可變電阻與三足,其連接和關系滑動變阻器,有權訪問的類型和訪問類型,本研究的三端兩端的訪問類型的兩端相對簡單。當使用存取的兩端必須連接到在銷的中間的端部,另外兩個左腳,可以選擇1(兩者之間的區別在于,滑動件的旋轉方向是不一樣的)。之后選擇引腳可以連接到萬用表,測量電阻的大小,打開滑蓋時,順時針旋轉,以增加或減少阻力看,該電路是很好的調試,就可以知道自己運行旋轉被增加或減少阻力的阻力。(4)蜂鳴器用在本實驗和蜂鳴器發聲器件通常看到的揚聲器,耳機等有細微的差別,這是一個振蕩器,由振蕩器電流,當輸入電流通過電磁線圈,電磁線圈產生裝置產生的音頻信號中的多磁場。隔膜在線圈和磁體之間的電磁相互作用,周期性地振動的聲音。您可以嘗試連接正負極供電,你只能看到時候訪問的正面和負面的權利,警笛聲。也可通過(正負短期)根據的引線在蜂鳴器的長度來判斷正和負。因此,實驗室必須糾正警笛正面和負面的。(5)晶體管有兩個晶體管,PNP晶體管是一個NPN晶體管,該實驗是一個PNP晶體管。晶體管具有三個引腳,即一個基極(B),發射極(E),集電極(C)。用于確定在該實驗中所用的極晶體管的制造方法是,與該標記的模型的側面,然后看著三尺,從左到右,發射極(E),基極(B),集電極(C)。當連接三極是錯誤的,否則晶體管將不會發揮作用。圖3三極管符號、管腳排列形成集電極和發射極和上述基極發射極結間的集電極基極結之間形成,這種情況的放大晶體管,所述發射結正向偏置集電極結被反偏。應達到正向偏置電壓時,將正向偏壓,也就是,開啟,否則,進入到外。4.1.2、對PCB板進行排版及連線 在受傷的情況下到后面的這個實驗板面包絕緣膠帶使用的內部鏈接,你可以看到帶的結構開放其內部電路,以防止錯誤不知道內部電路接線。當然,最好的方法是:杰克來回在電路測試的實驗中,我驗證它的內部結構。(1)首先,了解預防措施,線路板布線和焊接。(2)了解原始實驗和設備,按照與試驗板電路示意圖連接;(3)相鄰的考慮,在合并的電子電路的時間的規則,緊隨其后。4.1.3、焊接的問題及解決在一般情況下,最重要的問題是由硬件問題焊接引起的,焊接的好壞運行直接反應產物。焊接質量的常見原因是不高:①焊錫形成焊錫錫積累過量;連接器太小,不足以完成關節。②冷焊。溫度烙鐵低得多或熱不足,焊料未完全熔化,浸潤,表面連接器不亮有一個小裂縫。③用松香松香釬焊,焊料和元件或印刷板,導致電接觸不良之間的層混合。如果用松香不夠熱,焊錫松香膜棕色層混合;如果熱的溫度過高,有一層黑色膜下松香焊點碳化的。由于缺乏加熱松香事件的電影,你可以使用電烙鐵焊接。形成黑膜,不得不“吃”免洗,清潔相鄰部件或印刷電路板的表面,再焊接工作。④連橋。指焊料過量,造成連接器部件之間的短路。應當指出尤其是當超小元件和焊接的小印刷電路板。⑤多余的助焊劑,焊渣松香偉明了。當少量松香殘留的可再輕輕加熱的電烙鐵,讓它蒸發松香,你也可以用棉花球蘸有無水酒精,擦拭掉多余的松香或焊劑。⑥焊點上的鋒利表面的頂部上。這是由于加熱溫度小于或焊劑是非常小的,而當我離開熨斗在內側角連接器浩不當。最小系統電路不工作,你必須先確認電源電壓是否正常。測量與所述第一電源腳的腿之間的電壓表的電壓,并查看是否電壓供電,常用的是大約5V。再就是電壓檢測復位引腳是正常的,EA腳電壓正常約5V4.1.4、焊接的技巧和注意事項1,必須插入合并塞鐵,電加熱前。2,焊接時,焊料與電路板之間的角度,電路板的電烙鐵優選為45度,從而使焊料和烙鐵90度之間的角度。3,焊接和烙鐵接觸時間不宜過長,以免造成過度泄漏或鉛焊料;也不太短,以免引起焊縫。4,腿要盡量伸直元素,但不延伸很遠,到1毫米,還有,你可以減少多余的。5.當完成焊接時,焊接較好光滑圓錐狀,但具有金屬光澤。4.2、調試4.2.1、系統的調試調試調試系統包括硬件和軟件的調試,這兩個有著千絲萬縷的聯系。我們設計的硬件和軟件程序,只有經過一個聯合委員會,以驗證它的正確性;用的情況下,并且如果軟件和硬件,以滿足分配的設計要求,并且只調試,為了找出問題和解決這些問題之后,完美,最后在實際的產品保持。硬件調試亞基電路調試和聯機調試,單元測試只是委托印刷電路板測試電路后,在這里進行電路的硬件電路設計是正確的,而且某些處理錯誤(如錯線的排斥,開路,短路等)。這個調試器只能模擬,也可由軟件來執行所述設備的開發,硬件必須在在線調試系統軟件擬合來進行。軟件調試模塊一般包括調試和聯機調試兩個階段進行。規嵌段發展通常MCU器件可以在一個特定塊的初始程序條目的功能塊的參數的基礎上進行調整,并且一起運行隨著設備的發展的功能塊中的程序;但也有相應的硬件電路只能運行一個程序的功能塊,然后檢查是否正確,如果不符合預期的結果,您可以設置斷點或單步的方法,找出原因和正確的,正確的達的經營業績。然后,功能塊程序調試,您可以刪除附加塊。該方案的其它功能可以鍵入調試方法。在線程序調試是有每一個程序調試功能塊的一般結構連成一體的綜合性項目,發展到硬件電路的運行。因而測試用例與節目,正確性和硬件電路的整體操作的完整性。有可能的方式向FBI在節目中的一些支持,塊功能,由于缺乏特定的話,應該創建調試仿真調試條件適當的條件和參數。在硬件的問題找??到了FBI應該由單片機系統的軟件和硬件調試所有成功得到糾正。調試系統,還為在一段時間內試運行,從而穩定和抗干擾能力驗證系統后,驗證系統的功能性,以滿足設計的要求,不論是否達到所希望的結果。4.2.2、具體調試1,響應已清除設備的控制,以避免通過操縱在軍隊的主持人說,這是“開端”,違反規則提前答案之前。2,具有定時功能,還有60秒內沒有反??應,表示合格的團隊為這個問題的所有選手棄權。3.60秒,依然沒有回答他們的工作,說報警電路的響應時間用完,并禁止響應。4,顯示響應時間,減去第二次點擊,點擊“-1s”按鈕,LED會顯示一段時間后的變化,0?60年代的調整范圍。5,褲子熨燙“的答案開始”按鈕,會出現一噸,并立即響應計數輸入(60默認響應時間),讓玩家回答,有一噸和他們的一些數字將顯示,從球員第一唯一有效的反應。6.在倒計時,主持人想停止倒計時可以按下“停止”按鈕,系統會自動進入準備階段,等待主辦按下“回復開始”進入下一個響應時間。5、總結經過近半個月的努力,教師和學生討論和幫助,我順利完成通過課程設計搶答八路的設計,我重新找回了上使用的原因知識的書籍是獨立的。回復在設計過程中,我們發現了很多的問題的細節,有很多錯誤,并通過研究,討論,學生和最終解決,團隊合作的意識是非常必要的!通過這樣的設計搶答,讓我學會挑選電子和C語言編程,以前的知識,同時也為微控制器和我加深了理解和應用接口技術,由于知識水平的局限,集在可能有一些不足之處,我坦白承認了教師和學生的批評和指正。參考文獻1.C程序設計,譚浩強,清華大學出版社,20052.單片機原理及接口技術(第3版),李朝青,北京航空航天大學出版社,20023.單片機系統設計與實例指導,馮育長,西安電子科技大學出版社,20074.單片機課程設計實例指導,李光飛,北京航天航空大學出版社,2004附件1:程序#include<reg52.h> //調用單片機頭文件#defineucharunsignedchar//無符號字符型宏定義 變量范圍0~255#defineuintunsignedint //無符號整型宏定義 變量范圍0~65535#include"eeprom52.h"http://數碼管段選定義0123 4 5 6 7 8 9 ucharcodesmg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,// A B C D EF 不顯示 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff}; //斷碼 sbitsmg_we1=P3^3; //數碼管位選定義8sbitsmg_we2=P3^4;sbitsmg_we3=P3^5;sbitsmg_we4=P3^6;sbitbeep=P3^7;//蜂鳴器IO口定義ucharflag_start;//開始搶答標志位ucharflag_weigui;//搶答違規標志位uchardis_smg[4]={0xc0,0xbf,0xa4,0xb0}; //數碼管顯示緩沖區ucharsmg_i=4;//顯示數碼管的個位數ucharmiao,s_time;//時間ucharflag_num;//號碼ucharmenu_1;//菜單設置變量bitflag_200ms=1;//200ms的標志位ucharflag_qd_en;//搶答uchari;/******************把數據從單片機內部eeprom中讀出來*****************/voidread_eeprom() //讀出保存數據{ s_time=byte_read(0x2000); a_a=byte_read(0x2058);}/******************把數據保存到單片機內部eeprom中******************/voidwrite_eeprom() //保存數據{ SectorErase(0x2000); byte_write(0x2000,s_time); byte_write(0x2058,a_a); }/**************開機自檢eeprom初始化*****************/voidinit_eeprom() //開始初始化保存的數據{ read_eeprom(); //讀出保存數據 if(a_a!=20) { a_a=20; s_time=30; write_eeprom(); //保存數據 }}/***************************數碼管位選函數****************************/voidsmg_we_switch(uchari){ switch(i) { case0:smg_we1=0;smg_we2=1;smg_we3=1;smg_we4=1;break; case1:smg_we1=1;smg_we2=0;smg_we3=1;smg_we4=1;break; case2:smg_we1=1;smg_we2=1;smg_we3=0;smg_we4=1;break; case3:smg_we1=1;smg_we2=1;smg_we3=1;smg_we4=0;break; } }/*********************************************************************名稱:delay_1ms()*功能:延時1ms函數*輸入:q*輸出:無***********************************************************************/voiddelay_1ms(uintq) //延時1ms函數{ uinti,j; for(i=0;i<q;i++) for(j=0;j<120;j++);}/********************獨立按鍵程序*****************/ucharkey_can; //按鍵值voidkey() //獨立按鍵程序{ staticucharkey_new; key_can=20; P2|=0xff; if((P2&0xff)!=0xff) //按鍵按下 { delay_1ms(1); //按鍵消抖動 if(((P2&0xff)!=0xff)&&(key_new==1)) { //確認是按鍵按下 key_new=0; switch(P2&0xff) { case0xfe:key_can=1;break; //得到按鍵值 case0xfd:key_can=2;break; //得到按鍵值 case0xfb:key_can=3;break; //得到按鍵值 case0xf7:key_can=4;break; //得到按鍵值 case0xef:key_can=5;break; //得到按鍵值 case0xdf:key_can=6;break; //得到按鍵值 case0xbf:key_can=7;break; //得到按鍵值 case0x7f:key_can=8;break; //得到按鍵值 }// dis_smg[0]=smg_du[key_can]; //顯示按鍵值 } } else key_new=1; }/********************獨立按鍵程序*****************/ucharkey_can1; //按鍵值voidkey_1() //主持人獨立按鍵程序{ staticucharkey_new; key_can1=20; P3|=0x03; if((P3&0x03)!=0x03) //按鍵按下 { delay_1ms(1); //按鍵消抖動 if(((P3&0x03)!=0x03)&&(key_new==1)) { //確認是按鍵按下 key_new=0; switch(P3&0x03) { case0x01:key_can1=9;break; //得到按鍵值 case0x02:key_can1=10;break; //得到按鍵值 }// dis_smg[0]=smg_du[key_can1]; //顯示按鍵值 } } else key_new=1; }/******************按鍵處理函數*****************/voidkey_with() //按鍵處理函數{ if(key_can1==10)//設置按鍵 { menu_1++; if(menu_1==1) { dis_smg[0]=smg_du[s_time%10]; //顯示設置值 dis_smg[1]=smg_du[s_time/10%10]; //顯示設置值 dis_smg[2]=0xbf; dis_smg[3]=smg_du[10]; //顯示A } if(menu_1>1) menu_1=0; } if(key_can1==9)//開始搶答鍵 { flag_start=1; for(i=0;i<2;i++) { beep=~beep; delay_1ms(20); } } if(key_can<9) if(menu_1==0) { if(flag_qd_en==0) //沒有搶答 { if(key_can==1) flag_num=1;//1號選手 if(key_can==2) flag_num=2;//2號選手 if(key_can==3) flag_num=3;//3號選手 if(key_can==4) flag_num=4;//4號選手 if(key_can==5) flag_num=5;//5號選手 if(key_can==6) flag_num=6;//6號選手 if(key_can==7) flag_num=7;//7號選手 if(key_can==8) flag_num=8;//8號選手 } if(flag_start==1) //開始搶答 { flag_weigui=0; flag_qd_en=1;//已經搶答 } else { flag_weigui=1;//違規了 } } if(menu_1==1) { if(key_can==8)//加鍵 { s_time++;//設置倒計時加1 if(s_time>=99) s_time=99; dis_smg[0]=smg_du[s_time%10]; //顯示設置值 dis_smg[1]=smg_du[s_time/10%10]; //顯示設置值 write_eeprom(); //保存數據 } if(key_can==7) { if(s_time>3) s_time--; //設置倒計時減1 dis_smg[0]=smg_du[s_time%10]; //顯示設置值 dis_smg[1]=smg_du[s_time/10%10]; //顯示設置值 write_eeprom(); //保存數據 } } }/******************倒計時處理*****************/voiddjs_dis() //倒計時處理{ staticucharvalue; if((flag_start==1)&&(flag_weigui==0)) { value++; if(value>=5)

溫馨提示

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

評論

0/150

提交評論