單片機(jī)課程設(shè)計(jì)---三人搶答器_第1頁(yè)
已閱讀1頁(yè),還剩27頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  目錄</b></p><p><b>  第1章 概述2</b></p><p>  1.1 課題的要求2</p><p>  1.2 課題的目的及意義2</p><p>  第2章 系統(tǒng)總體方案的說(shuō)明3</p><p>  2.1單片

2、機(jī)芯片的選取3</p><p>  2.2硬件設(shè)計(jì)框圖3</p><p>  2.3硬件電路工作原理3</p><p>  第3章 硬件電路設(shè)計(jì)5</p><p>  3.1 I/O接口分配表5</p><p>  3.2 時(shí)鐘電路5</p><p>  3.3 復(fù)位電路5&l

3、t;/p><p>  3.4 指示燈顯示電路6</p><p><b>  3.5按鍵電路7</b></p><p>  3.7 數(shù)碼管顯示電路7</p><p>  3.8蜂鳴報(bào)警電路8</p><p>  第4章 軟件設(shè)計(jì)9</p><p>  4.1主程序設(shè)計(jì)

4、9</p><p>  4.2 子程序設(shè)計(jì)9</p><p>  第5章 系統(tǒng)仿真與實(shí)物調(diào)試11</p><p>  5.1仿真測(cè)試11</p><p>  5.2 實(shí)物調(diào)試15</p><p>  第6章 課題總結(jié)16</p><p><b>  參考文獻(xiàn)17</

5、b></p><p>  附錄A 系統(tǒng)原理圖18</p><p>  附錄B 程序19</p><p><b>  第1章 概述</b></p><p><b>  1.1 課題的要求</b></p><p>  本課題要求設(shè)計(jì)一個(gè)以單片機(jī)為核心的電子搶答器,

6、電子搶答器具有三個(gè)人的搶答控制盒答題時(shí)的倒計(jì)時(shí)顯示功能。具體要求如下:一位主持人與3位搶答者,復(fù)位后,甲乙丙的綠、紅燈全亮,開(kāi)始鍵、復(fù)位鍵的指示燈全暗;主持人按復(fù)位鍵則僅復(fù)位指示燈亮,其他都暗,準(zhǔn)備開(kāi)始;主持人按開(kāi)始鍵,開(kāi)始燈亮,允許甲乙丙搶答,此時(shí)優(yōu)先者則相應(yīng)成功指示燈亮,如允許前搶就相應(yīng)犯規(guī)燈亮;答題開(kāi)始進(jìn)行倒計(jì)時(shí),到規(guī)定時(shí)間不允許答題,并返回復(fù)位狀態(tài)。可以通過(guò)鍵盤操作修改答題限制時(shí)間和槍答限制時(shí)間。</p><

7、p>  1.2 課題的目的及意義</p><p>  在許多競(jìng)賽活動(dòng)匯總,為了準(zhǔn)確,公正,直觀地判斷出第一搶答者,通常設(shè)置一臺(tái)搶答器,通過(guò)數(shù)碼顯示管,燈管,及音響等多種手段指示出第一搶答者。同時(shí)可以設(shè)置計(jì)分,犯規(guī)等多種功能,該系統(tǒng)是針對(duì)上述要求設(shè)計(jì)出的供3名選手參賽試用的數(shù)字式競(jìng)賽搶答器,而且可以通過(guò)本次的課程設(shè)計(jì)我們可以學(xué)到關(guān)于單片機(jī)在實(shí)際生活中的設(shè)計(jì)應(yīng)用,也可以深入地學(xué)習(xí)到單片機(jī)的編程。</p&g

8、t;<p>  通過(guò)該課程的學(xué)習(xí)使我們對(duì)計(jì)算機(jī)控制系統(tǒng)有一個(gè)全面的了解、掌握常規(guī)控制算法的使用方法、掌握簡(jiǎn)單微型計(jì)算機(jī)應(yīng)用系統(tǒng)軟硬的設(shè)計(jì)方法,進(jìn)一步鍛煉同學(xué)們?cè)谖⑿陀?jì)算機(jī)應(yīng)用方面的實(shí)際工作能力。</p><p>  第2章 系統(tǒng)總體方案的說(shuō)明</p><p>  2.1單片機(jī)芯片的選取</p><p>  采用STC89C52RC單片機(jī)作為硬件核心,該

9、單片機(jī)指令代碼完全兼容傳統(tǒng)的8051單片機(jī)。STC89C52RC的工作電壓為5.5-3.4V,工作頻率范圍0-80MHz,程序存儲(chǔ)器flash容量為8KB,隨機(jī)存儲(chǔ)器RAM空間為512字節(jié)。</p><p><b>  2.2硬件設(shè)計(jì)框圖</b></p><p>  根據(jù)設(shè)計(jì)要求,確定系統(tǒng)的設(shè)計(jì)方案,圖2.2所示為該系統(tǒng)方案的硬件電路設(shè)計(jì)框圖,硬件電路由6個(gè)部分組成,

10、即晶振控制,按鍵電路,電源電路,數(shù)碼管顯示,指示燈顯示,蜂鳴器報(bào)警電路。</p><p>  圖2.2 硬件電路設(shè)計(jì)框圖</p><p>  2.3硬件電路工作原理</p><p>  系統(tǒng)由單片機(jī)最小系統(tǒng)、顯示電路、按鍵和報(bào)警電路等組成本電路是由STC89C52RC單片機(jī)為控制核心,具有與8051系列單片機(jī)完全兼容,程序加密等功能,8KB字節(jié)可編程閃存,工作電壓

11、范圍為2.7~6V,全靜態(tài)工作頻率為0~24MHZ。用查詢式鍵盤進(jìn)行搶答。采用動(dòng)態(tài)顯示組號(hào)。主持人按下開(kāi)始搶答鍵才可以搶答。有人搶答則搶答違規(guī),報(bào)警并顯示組號(hào),主持人按下開(kāi)始搶答開(kāi)關(guān)重新?lián)尨?。主持人按下開(kāi)始搶答按紐,對(duì)應(yīng)的選手號(hào)及倒計(jì)時(shí)在數(shù)碼管顯示,相應(yīng)選手號(hào)的燈亮。主持人按下復(fù)位開(kāi)關(guān)為下一題的搶答做準(zhǔn)備。單片機(jī)最小系統(tǒng)、搶答按鍵模塊、顯示模塊、顯示驅(qū)動(dòng)模塊、搶答開(kāi)關(guān)模塊、LED。工作時(shí),用按鍵通過(guò)開(kāi)關(guān)電路輸入各路的搶答信號(hào),經(jīng)單片機(jī)的

12、處理, 輸出控制信號(hào),單片機(jī)控制的智能搶答器。</p><p>  第3章 硬件電路設(shè)計(jì)</p><p>  3.1 I/O接口分配表</p><p><b>  3.2 時(shí)鐘電路</b></p><p>  單片機(jī)各功能部件的運(yùn)行是以時(shí)鐘控制信號(hào)為基準(zhǔn)的。所以,時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響

13、單片機(jī)的穩(wěn)定性,常用的時(shí)鐘電路設(shè)計(jì)有內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式,本設(shè)計(jì)采用內(nèi)部時(shí)鐘方式。警惕震蕩頻率是采用12MHZ的石英晶體。</p><p><b>  圖3.2時(shí)鐘電路</b></p><p><b>  3.3 復(fù)位電路</b></p><p>  單片機(jī)的第9腳RST為硬件復(fù)位端,只要將該端持續(xù)4個(gè)機(jī)器周期的高電

14、平即可實(shí)現(xiàn)復(fù)位,復(fù)位后單片機(jī)的各狀態(tài)都恢復(fù)到初始化狀態(tài),該系統(tǒng)是采用的按鍵上電復(fù)位電路,其電路圖如圖3.4所示:</p><p>  圖3.3按鍵上電復(fù)位電路</p><p>  3.4 指示燈顯示電路</p><p>  一開(kāi)始3位選手的燈全亮,主使人按下開(kāi)始鍵,開(kāi)始燈亮,按下復(fù)位鍵復(fù)位燈亮,搶答選手按下?lián)尨疰I,對(duì)應(yīng)的3位搶答燈亮。P1.3,P1.4,P1.5做甲

15、乙丙三位選手的搶答燈,P1.6,P1.7做復(fù)位燈和開(kāi)始燈。其電路圖如圖3.5所示。</p><p>  圖3.4 指示燈顯示電路</p><p><b>  3.5按鍵電路</b></p><p>  主要用到89C52RC的P3.0和P3.1做開(kāi)始和復(fù)位按鍵,用P2.5,P2.6,P2.7做3位選手的搶答按鍵,P3.2,P3.3做設(shè)置搶答時(shí)間

16、以及答題時(shí)間的按鍵,P3.4和P3.5做加減時(shí)間的按鍵。其電路如圖3.6所示。</p><p><b>  圖3.6按鍵電路</b></p><p>  3.7 數(shù)碼管顯示電路</p><p>  LED顯示器的驅(qū)動(dòng)是一個(gè)非常重要的問(wèn)題,顯示電路由LED顯示器,段驅(qū)動(dòng)電路和位驅(qū)動(dòng)電路組成。由于單片機(jī)的并行接口不能直接驅(qū)動(dòng)LED顯示器,所以要加驅(qū)

17、動(dòng),使之產(chǎn)生足夠大的電流才能正常工作。本設(shè)計(jì)方案選擇的是動(dòng)態(tài)控制方式。由于一位數(shù)據(jù)的顯示器的顯示是由段碼和位碼信號(hào)共同配合完成的。圖是本設(shè)計(jì)的顯示數(shù)碼管的驅(qū)動(dòng)電路。</p><p>  圖3.7 數(shù)碼管顯示電路</p><p><b>  3.8蜂鳴報(bào)警電路</b></p><p>  當(dāng)選手犯規(guī)的時(shí)候,系統(tǒng)要求產(chǎn)生報(bào)警信號(hào),可以選擇一個(gè)蜂鳴

18、器來(lái)實(shí)現(xiàn)這一功能。由P3.7引出,接蜂鳴器,當(dāng)有選手犯規(guī)時(shí),蜂鳴器會(huì)自動(dòng)報(bào)警。圖3.8為蜂鳴器報(bào)警電路.</p><p>  圖3.8蜂鳴器報(bào)警電路</p><p><b>  第4章 軟件設(shè)計(jì)</b></p><p><b>  4.1主程序設(shè)計(jì)</b></p><p>  在搶答開(kāi)始之前設(shè)置好搶

19、答時(shí)間,以及答題時(shí)間,設(shè)置好時(shí)間之后,初始化。在主持人按下開(kāi)始搶答鍵之前判斷是否有人犯規(guī),沒(méi)人犯規(guī)按下開(kāi)始鍵,開(kāi)始搶答,如果有人犯規(guī),報(bào)警,并提醒犯規(guī)選手,然后復(fù)位繼續(xù)操作。開(kāi)始搶答,搶答倒計(jì)時(shí),如果有人搶答,查詢哪位選手最先搶答成功,然后該選手回答問(wèn)題,答題倒計(jì)時(shí),回答完畢,計(jì)時(shí)器復(fù)位;如果搶答時(shí)間到,沒(méi)人搶答,計(jì)時(shí)器復(fù)位,繼續(xù)下一道題搶答。主程序流程圖如圖4.1所示。</p><p>  圖4.1 主程序流程

20、圖</p><p><b>  4.2 子程序設(shè)計(jì)</b></p><p>  4.2.1 時(shí)間程序設(shè)置</p><p>  根據(jù)規(guī)定,設(shè)置搶答時(shí)間和答題時(shí)間,流程圖如圖4.2.1所示。</p><p>  4.2.1 設(shè)置時(shí)間流程圖</p><p>  4.2.2 犯規(guī)程序設(shè)計(jì)</p>

21、;<p>  在主持人未宣布開(kāi)始搶答前,有選手按下?lián)尨疰I,視為犯規(guī),犯規(guī)后選手的搶答燈會(huì)亮,并在數(shù)碼管顯示該選手的編號(hào),蜂鳴器會(huì)開(kāi)始報(bào)警。 流程圖如圖4.2.2所示。</p><p>  4.2.2 犯規(guī)程序流程圖</p><p>  第5章 系統(tǒng)仿真與實(shí)物調(diào)試</p><p><b>  5.1仿真測(cè)試</b></p>

22、;<p>  5.1.1初始化仿真</p><p>  把keil編譯產(chǎn)生的HEX文件導(dǎo)入Proteus里面的單片機(jī)中,初始化時(shí),3位選手指示燈亮,復(fù)位燈,開(kāi)始燈滅,數(shù)碼管顯示FFF。仿真圖如圖5.1.1所示。</p><p>  圖5.1.1 復(fù)位電路</p><p>  5.1.2 犯規(guī)仿真</p><p>  在按下復(fù)位按

23、鈕以后主持人還沒(méi)有按開(kāi)始按鈕,第三位選手搶答,選手犯規(guī),他的指示燈亮,數(shù)碼管顯示他的序號(hào),蜂鳴器報(bào)警。仿真圖如圖5.1.2所示。</p><p>  5.1.2 丙選手犯規(guī)仿真圖</p><p><b>  5.1.3開(kāi)始搶答</b></p><p>  主持人按下開(kāi)始鍵,開(kāi)始燈亮,數(shù)碼管開(kāi)始倒計(jì)時(shí),仿真圖如圖5.1.3所示。</p>

24、;<p>  5.1.3 開(kāi)始搶答仿真圖</p><p>  5.1.4 搶答成功,答題</p><p>  開(kāi)始搶答以后,乙選手搶答成功,答題倒計(jì)時(shí),數(shù)碼管顯示選手編號(hào)及倒計(jì)時(shí),仿真圖如5.1.4所示。</p><p>  5.1.4 乙選手搶答成功開(kāi)始答題仿真圖</p><p>  5.1.5設(shè)置搶答時(shí)間與答題時(shí)間</

25、p><p>  設(shè)置搶答時(shí)間,本次設(shè)計(jì)仿真是將搶答時(shí)間增加了至16秒,仿真圖如5.1.5.1所示。</p><p>  設(shè)置答題時(shí)間,本次設(shè)計(jì)仿真是將答題時(shí)間減少了至24秒,仿真圖如5.1.5.2所示。</p><p>  5.1.5.1 搶答時(shí)間增加了至16秒仿真圖</p><p>  5.1.5.2 答題時(shí)間減少到26秒仿真圖</p&g

26、t;<p><b>  5.2 實(shí)物調(diào)試</b></p><p>  運(yùn)行keil軟件新建一個(gè)工程把程序輸進(jìn)去,然后進(jìn)行編譯,再點(diǎn)擊工具條上的Debug按鈕,程序被下載到單片機(jī)中,仿真如下圖所示。</p><p>  圖5.2.1 初始化</p><p>  圖5.2.2 乙選手倒計(jì)時(shí)答題</p><p>

27、  5.2.3 乙選手犯規(guī)</p><p><b>  第6章 課題總結(jié)</b></p><p>  兩周的課程設(shè)計(jì)轉(zhuǎn)眼也要結(jié)束了,通過(guò)這次課程設(shè)計(jì)期間使我對(duì)單片機(jī)課上所學(xué)到的知識(shí)有了更深的認(rèn)識(shí),并且把我們平時(shí)在電子這一方面所學(xué)到的知識(shí)有了一個(gè)綜合的運(yùn)用。非常感謝王老師的悉心督促和耐心指導(dǎo)。</p><p>  本次電子課程設(shè)計(jì)實(shí)習(xí)將理論與實(shí)

28、踐有機(jī)地結(jié)合,既考查了同學(xué)對(duì)理論知識(shí)的掌握程度,由反映了實(shí)際動(dòng)手能力,更主要的是考查了同學(xué)對(duì)知識(shí)的綜合運(yùn)用以及創(chuàng)新設(shè)計(jì)思維能力,為今后的發(fā)展提供了一次良好的學(xué)習(xí)環(huán)境。  在完成單片機(jī)課程設(shè)計(jì)后,我們發(fā)現(xiàn)我們還有許多不足,所學(xué)到的知識(shí)還遠(yuǎn)遠(yuǎn)不夠,以至于還有一些功能不能被動(dòng)完成。思維局限性,編程語(yǔ)言可以用多種方式進(jìn)行實(shí)現(xiàn),要充分利用書本知識(shí)進(jìn)行發(fā)散性思維,創(chuàng)新的理念有待提高。不懂得將所學(xué)知識(shí)充分利用,要形成知識(shí)結(jié)構(gòu)體系

29、,這樣不會(huì)將知識(shí)給孤立,從而不能得到太多的擴(kuò)展。但通過(guò)學(xué)習(xí)這一次實(shí)踐,增強(qiáng)了我們的動(dòng)手能力,提高和鞏固了單片機(jī)方面的知識(shí),特別是軟件方面。</p><p>  兩周的課程設(shè)計(jì)轉(zhuǎn)眼也要結(jié)束了,通過(guò)這次課程設(shè)計(jì)期間使我對(duì)單片機(jī)課上所學(xué)到的知識(shí)有了更深的認(rèn)識(shí),并且把我們平時(shí)在電子這一方面所學(xué)到的知識(shí)有了一個(gè)綜合的運(yùn)用。非常感謝王老師的悉心督促和耐心指導(dǎo)以及給予我?guī)椭耐瑢W(xué)們。</p><p>&

30、lt;b>  參考文獻(xiàn)</b></p><p>  [1] 王迎旭 單片機(jī)原理與應(yīng)用 [M] 北京:機(jī)械工業(yè)出版社,2012[2] 三恒星科技 MCS-51 單片機(jī)原理與應(yīng)用實(shí)例 [M] 北京:電子工業(yè)出版社,2008[3] 王守中 51單片機(jī)開(kāi)發(fā)入門與典型實(shí)例 [M] 北京:人民郵電出版社,2007[4] 李全利 單片機(jī)原理及應(yīng)用技術(shù) [M] 北京:高等教育出版社,2004[5] 林毓

31、梁 單片機(jī)原理及應(yīng)用 [M] 北京:機(jī)械工業(yè)出版社,2005</p><p>  附錄A 系統(tǒng)原理圖</p><p><b>  附錄B 程序</b></p><p>  #include<reg51.h></p><p>  typedef unsigned char uchar;</p>

32、<p>  sbit FW=P3^1; //復(fù)位按鍵</p><p>  sbit le1=P2^0; // 數(shù)碼管位選</p><p>  sbit le2=P2^1; //數(shù)碼管位選</p><p>  sbit le3=P2^2; //

33、數(shù)碼管位選</p><p>  sbit led1=P1^3; //甲選手指示燈</p><p>  sbit led2=P1^4; //乙選手指示燈</p><p>  sbit led3=P1^5; //丙選手指示燈</p><p>  sbit kaishi=P1

34、^6; //開(kāi)始指示燈</p><p>  sbit fuwei=P1^7; //復(fù)位指示燈</p><p>  int daoshu=10,time=30; //初始化搶答和答題時(shí)間</p><p>  void chushi(); //定義初始化程序</p

35、><p>  void display(uchar,ucahr,uchar); //定義動(dòng)態(tài)掃描程序</p><p>  void delay(int); //定義延時(shí)程序</p><p>  void fangui(); //定義犯規(guī)程序</p><p> 

36、 void jishi(); //定義計(jì)時(shí)搶答程序</p><p>  void shezhi1(); //定義設(shè)置搶答時(shí)間程序</p><p>  void shezhi2(); //定義設(shè)置答題時(shí)間程序</p><p>  void display1(uchar)

37、; //定義答題程序</p><p>  uchar tab[12]={0x0c0,0x0F9,0x0A4,0x0B0,0x099,0x092,0x082,0x0F8,0x080,0x090,0x0FF,0x8E};</p><p>  void main()</p><p><b>  {</b></p>

38、<p><b>  uchar c;</b></p><p>  chushi(); //調(diào)用初始化程序</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  d

39、isplay(11,11,11); //動(dòng)態(tài)掃描</p><p>  fangui();調(diào)用犯規(guī)程序,判斷是否犯規(guī)</p><p><b>  c=P3;</b></p><p>  if(c==0x0ff)</p><p><b>  continue;</b><

40、/p><p><b>  else</b></p><p><b>  {</b></p><p><b>  delay(2);</b></p><p><b>  c=P3;</b></p><p>  if(c==0x0ff)&l

41、t;/p><p><b>  continue;</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  switch(c)</b></p><p><b> 

42、 {</b></p><p>  case 0x0fe: jishi();break; //開(kāi)始搶答</p><p>  case 0x0fd: P1=0xbf;break; //復(fù)位</p><p>  case 0x0fb: shezhi1();break; //搶答時(shí)間設(shè)置</p>&

43、lt;p>  case 0x0f7: shezhi2();break; //答題時(shí)間設(shè)置</p><p>  default:continue;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b

44、></p><p><b>  }</b></p><p><b>  }</b></p><p>  void chushi()</p><p><b>  {</b></p><p><b>  P0=0x0FF;</b>

45、</p><p><b>  P1=0x0FF;</b></p><p><b>  P2=0x0FF;</b></p><p><b>  P3=0x0FF;</b></p><p>  led1=0; //選手燈亮</p><p>

46、;<b>  led2=0;</b></p><p><b>  led3=0;</b></p><p><b>  }</b></p><p>  void display(uchar a1,uchar a2,uchar a3)</p><p><b>  {<

47、;/b></p><p>  //P2=0xFB; //第3位數(shù)碼管動(dòng)態(tài)掃描顯示</p><p><b>  le3=0;</b></p><p>  P0=tab[a1];</p><p><b>  delay(0);</b></p><p&

48、gt;<b>  le3=1;</b></p><p>  //P2=0xFD; //第2位數(shù)碼管動(dòng)態(tài)掃描顯示</p><p><b>  le2=0;</b></p><p>  P0=tab[a2];</p><p><b>  delay(0);</b>

49、</p><p><b>  le2=1;</b></p><p>  //P2=0xFE; //第1位數(shù)碼管動(dòng)態(tài)掃描顯示</p><p><b>  le1=0;</b></p><p>  P0=tab[a3];</p><p><b>  d

50、elay(0);</b></p><p><b>  le1=1;</b></p><p><b>  }</b></p><p>  void delay(int a)</p><p><b>  {</b></p><p>  int i

51、,j,k;</p><p>  for(k=a;k>=0;k--)</p><p>  for(i=0;i<=125;i++)</p><p>  for(j=0;j<=5;j++)</p><p><b>  {}</b></p><p><b>  } </b

52、></p><p>  void fangui()</p><p><b>  {</b></p><p><b>  uchar b;</b></p><p><b>  b=P2;</b></p><p>  b=b&0xf0;

53、 </p><p>  if(b==0xf0) //看是否有人搶答</p><p><b>  return;</b></p><p><b>  else</b></p><p><b>  {</b></p><

54、p><b>  delay(2);</b></p><p><b>  b=P2;</b></p><p><b>  b=b&0xf0;</b></p><p>  if(b==0x0f0)</p><p><b>  return;</b>

55、;</p><p><b>  else</b></p><p><b>  {</b></p><p><b>  P1=0xff;</b></p><p><b>  switch(b)</b></p><p><b>

56、;  {</b></p><p>  case 0xd0:do{ display(1,11,11);led1=0;}while(FW==1);led1=1;break; //第一位選手犯規(guī)</p><p>  case 0xb0:do{ display(2,11,11);led2=0;}while(FW==1);led2=1;break; //第2位選手犯規(guī)<

57、/p><p>  case 0x70:do{ display(3,11,11);led3=0;}while(FW==1);led3=1;break; // 第3位選手犯規(guī)</p><p>  default: ; </p><p><b>  }</b></p><p><b>  }&l

58、t;/b></p><p><b>  }</b></p><p><b>  return;</b></p><p><b>  }</b></p><p>  void jishi()</p><p><b>  {</b>

59、;</p><p>  int i,j,k,a,b;</p><p>  uchar key;</p><p>  kaishi=0; //開(kāi)始搶答,開(kāi)始倒計(jì)時(shí)</p><p>  for(i=daoshu;i>=0;i--)</p><p><b>  {</b>&

60、lt;/p><p><b>  P1=0x7f;</b></p><p><b>  a=i/10;</b></p><p><b>  b=i%10;</b></p><p>  for(k=15;k>=0;k--)</p><p><b>

61、;  {</b></p><p><b>  if(FW==0)</b></p><p><b>  {</b></p><p><b>  delay(2);</b></p><p><b>  if(FW==0)</b></p>

62、<p>  {P1=0xbf; return;}</p><p><b>  }</b></p><p>  display(0,b,a);</p><p><b>  key=P2;</b></p><p>  key=key&0xf0;</p><p&g

63、t;  if(key==0x0f0)</p><p><b>  continue;</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  delay(2);</b></p>

64、<p><b>  key=P2;</b></p><p>  key=key&0xf0;</p><p>  if(key==0x0f0)</p><p><b>  continue;</b></p><p><b>  else</b></p&g

65、t;<p>  switch(key)</p><p><b>  {</b></p><p>  case 0xd0:P1=0xf7;display1(1);return;break; //第1位選手搶答成功</p><p>  case 0xb0:P1=0xef;display1(2);return;break;

66、 //第2位選手搶答成功</p><p>  case 0x70:P1=0xdf;display1(3);return;break; //第3位選手搶答成功</p><p>  default:; </p><p><b>  }</b></p><p><b>  }</b><

67、;/p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void display1(uchar gg)</p><p><b>  {</b></

68、p><p>  int i,j,k,a,b;</p><p>  for(i=time;i>=0;i--)</p><p><b>  {</b></p><p>  a=i/10; //取十位</p><p>  b=i%10; //取個(gè)位</p>

69、<p>  for(k=15;k>=0;k--)</p><p><b>  {</b></p><p>  display(gg,b,a); //數(shù)碼管顯示</p><p><b>  if(FW==0)</b></p><p>  {P1=0xbf;return;}

70、</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void shezhi1()</p><p><b>  { </b></p>

71、;<p>  uchar key;</p><p><b>  int a,b;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  a=daoshu/10;</p><p&

72、gt;  b=daoshu%10;</p><p>  display(0,b,a);</p><p><b>  key=P3;</b></p><p>  if(key==0x0ff)</p><p><b>  continue;</b></p><p><b&g

73、t;  else</b></p><p><b>  {</b></p><p>  if(key==0x0ff)</p><p><b>  continue;</b></p><p><b>  else</b></p><p>  sw

74、itch(key)</p><p><b>  {</b></p><p>  case 0x0ef:if(daoshu<30)daoshu++;while(P3==0x0ef){};break; //搶答時(shí)間增加,最大增加到30秒</p><p>  case 0x0df:if(daoshu>5)daosh

75、u--;while(P3==0x0df){};break; //搶答時(shí)間減少,最少減少到5秒</p><p>  case 0x0fd:P1=0xbf;return;break;</p><p>  default:continue;</p><p><b>  }</b></p><p><

76、b>  }</b></p><p><b>  }</b></p><p><b>  return;</b></p><p><b>  }</b></p><p>  void shezhi2()</p><p><b>

77、  { </b></p><p>  uchar key;</p><p><b>  int a,b;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  a=time

78、/10;</p><p>  b=time%10;</p><p>  display(0,b,a);</p><p><b>  key=P3;</b></p><p>  if(key==0x0ff)</p><p><b>  continue;</b></p&g

79、t;<p><b>  else</b></p><p><b>  {</b></p><p>  if(key==0x0ff)</p><p><b>  continue;</b></p><p><b>  else</b></

80、p><p>  switch(key)</p><p><b>  {</b></p><p>  case 0x0ef:if(time<60)time++;while(P3==0x0ef){};break; //答題時(shí)間增加,最多增加到60秒</p><p>  case 0x0df:if(time>20)ti

81、me--;while(P3==0x0df){};break; //答題時(shí)間減少,最少減少到20秒</p><p>  case 0x0fd:P1=0xbf;return;break;</p><p>  default:continue;</p><p><b>  }</b></p><p><b>  }

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論