

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 單片機原理及接口技術(shù)</p><p><b> 課程設(shè)計報告</b></p><p><b> 信息與電氣工程學(xué)院</b></p><p><b> 二零一五年七月</b></p><p> 設(shè)計題目:基于單片機的8路搶答器</p>&
2、lt;p> 學(xué) 號:××××××</p><p> 姓 名:××</p><p> 指導(dǎo)教師:×××</p><p> 基于單片機的8路搶答器</p><p> 單片機把我們帶入了智能化的電子領(lǐng)域,許多繁瑣的系統(tǒng)
3、若由單片機進(jìn)行設(shè)計,便能收到電路更簡單、功能更齊全的良好效果。若把經(jīng)典的電子系統(tǒng)當(dāng)作一個僵死的電子系統(tǒng),那么智能化的現(xiàn)代電子系統(tǒng)則是一個具有“生命”的電子系統(tǒng)。 而隨著技術(shù)的進(jìn)步,單片機與串口通信的結(jié)合更多地應(yīng)用到各個電子系統(tǒng)中已成一種趨勢。本設(shè)計就是基于單片機設(shè)計搶答系統(tǒng),通過串口通信動態(tài)傳輸數(shù)據(jù),使搶答系統(tǒng)有了更多更完善的功能。單片機系統(tǒng)的硬件結(jié)構(gòu)給予了搶答系統(tǒng)“身軀”,而單片機的應(yīng)用程序賦予了其新的“生命”,使其在傳統(tǒng)的搶
4、答器面前具有電路簡單、成本低、運行可靠等特色。對于搶答器我們大家都知道那是用于選手做搶答題時用的,選手進(jìn)行搶答,搶到題的選手來回答問題。搶答器不僅考驗選手的反應(yīng)速度同時也要求選手具備足夠的知識面和一定的勇氣。選手們都站在同一個起跑線上,體現(xiàn)了公平公正的原則。</p><p><b> 1. 設(shè)計任務(wù)</b></p><p> 結(jié)合實際情況,基于AT89C51單片機
5、設(shè)計一個8路搶答器。該系統(tǒng)應(yīng)滿足的功能要求為:</p><p> (1) 設(shè)計一個可供8人進(jìn)行的搶答器;</p><p> (2) 系統(tǒng)設(shè)置復(fù)位按鈕,按動后,重新開始搶答;</p><p> (3) 搶答器開始時數(shù)碼管顯示序號0,選手搶答實行優(yōu)先顯示,優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)清除為止。搶答后顯示優(yōu)先搶答者序號,同時發(fā)出音響。,并且不出現(xiàn)其他搶答
6、者的序號;</p><p> (4) 搶答器具有定時搶答功能,且一次搶答的時間有主持人設(shè)定,本搶答器的時間可設(shè)定在1~99秒(本例中設(shè)置為20s),當(dāng)主持人啟動“開始”開關(guān)后,定時器開始減計時,數(shù)碼管顯示倒計時的時間,同時蜂鳴器有短暫的聲響;</p><p> (5) 設(shè)定的搶答時間內(nèi),選手可以搶答,這時定時器停止工作,顯示器上顯示選手的號碼和搶答時間。并保持到主持人按復(fù)位鍵;<
7、/p><p> (6) 當(dāng)設(shè)定的時間到,而無人搶答時,本次搶答無效,揚聲器報警發(fā)出聲音,并禁止搶答,定時器上顯示00。</p><p> 主要硬件設(shè)備:AT89C51單片機、4位數(shù)碼管、蜂鳴器等 ……</p><p><b> 2. 整體方案設(shè)計</b></p><p> 8路搶答器以AT89C51單片機作為整個系統(tǒng)
8、的控制核心,應(yīng)用其強大的接口功能,構(gòu)成整個搶答器的硬件系統(tǒng)。在主持人按下開始搶答的按鈕之后,倒計時開始并在數(shù)碼管上顯示出來,選手按下?lián)尨鸢粹o進(jìn)行搶答,送入單片機進(jìn)行數(shù)據(jù)處理。最先搶答的選手編號會通過數(shù)碼管顯示出來,同時結(jié)束搶答,不再顯示其他選手編號和倒計時時間。再次按下開始搶答按鈕時,開始下一次的搶答。8路搶答器的原理圖如圖2-1所示。</p><p> 圖2-1 基于單片機的8路搶答器原理圖</p>
9、;<p> 本系統(tǒng)硬件主要由按鍵、蜂鳴器、顯示系統(tǒng)等幾部分組成。各模塊的主要功能如下:</p><p> (1) 按鍵的功能是把搶答選手編號和開始搶答信號送入單片機;</p><p> (2) 蜂鳴器的功能是搶答結(jié)束后進(jìn)行報警提示;</p><p> (3) 顯示系統(tǒng)的功能是顯示搶答選手編號以及倒計時時間。</p><p&g
10、t; 系統(tǒng)的整體設(shè)計方案設(shè)計圖如圖2-2所示。</p><p> 圖2-2 系統(tǒng)的整體方案設(shè)計圖</p><p> 整體電路原理圖如下:</p><p> 圖2-2 系統(tǒng)的整體電路原理圖</p><p> 如圖所示,電路左上角部分為時鐘電路和復(fù)位電路,用于給單片機提供時鐘信號以及復(fù)位。</p><p> 電
11、路左下角部分為選手搶答電路,按下8個按鈕中的一個即可進(jìn)行搶答,同時將信號發(fā)送給單片機并由單片機進(jìn)行顯示輸出。此部分為輸入環(huán)節(jié)。</p><p> 電路右上角部分為顯示電路,進(jìn)行顯示已經(jīng)開始搶答的時間和搶答選手編號,此處采用7段數(shù)碼管共陽接法,四個反向器用于提供位選信號。當(dāng)沒有選手搶答時,此處顯示搶答倒計時;開始有人搶答后,此處顯示搶答選手的編號并停止計時。</p><p> 電路右下角
12、為蜂鳴器部分,當(dāng)有選手進(jìn)行搶答或者搶答倒計時結(jié)束后,蜂鳴器會發(fā)聲報警,進(jìn)行提示。</p><p> 3. 系統(tǒng)硬件電路設(shè)計</p><p><b> 3.1 時鐘電路</b></p><p> 單片機必須在時鐘的驅(qū)動下才能工作.在單片機內(nèi)部有一個時鐘振蕩電路,只需要外接一個振蕩源就能產(chǎn)生一定的時鐘信號送到單片機內(nèi)部的各個單元,決定單片機的
13、工作速度。</p><p> 圖3-1 外部震蕩源電路</p><p> 一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個電容 C1,C2的作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進(jìn)行微調(diào)。C1,C2的典型值為30PF。</p><p>
14、 單片機在工作時,由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時鐘信號的周期稱為時鐘周期。其大小是時鐘信號頻率的倒數(shù),常用fosc表示。如時鐘頻率為12MHz,即fosc=12MHz,則時鐘周期為1/12µs。</p><p><b> 3.2 復(fù)位電路</b></p><p> 單片機的第9腳RST為硬件復(fù)位端,只要將該端持續(xù)4個機器周期的
15、高電平即可實現(xiàn)復(fù)位,復(fù)位后單片機的各狀態(tài)都恢復(fù)到初始化狀態(tài),其電路圖如圖所示:</p><p><b> 圖3-2 復(fù)位電路</b></p><p> 值得注意的是,在設(shè)計當(dāng)中使用到了硬件復(fù)位和軟件復(fù)位兩種功能,由上面的硬件復(fù)位后的各狀態(tài)可知寄存器及存儲器的值都恢復(fù)到了初始值,而前面的功能介紹中提到了倒計時時間的記憶功能,該功能的實現(xiàn)的前提條件就是不能對單片機進(jìn)行
16、硬件復(fù)位,所以設(shè)定了軟復(fù)位功能。軟復(fù)位實際上就是當(dāng)程序執(zhí)行完畢之后,將程序指針通過一條跳轉(zhuǎn)指令讓它跳轉(zhuǎn)到程序執(zhí)行的起始地址。</p><p><b> 3.3 顯示電路</b></p><p> 本設(shè)計所用的為4位8段共陽數(shù)碼管,由P0控制顯示數(shù)字,P2.0~P2.3控制位選信號。最高位顯示選手編號,低兩位顯示倒計時時間。 </p><p>
17、; 顯示功能與硬件關(guān)系極大,當(dāng)硬件固定后,如何在不引起操作者誤解的前提下提供盡可能豐富的信息,全靠軟件來解決。</p><p> 使用數(shù)碼管應(yīng)該注意位選信號,以及共陽和共陰的區(qū)別。</p><p> 其與單片機的接口電路如圖3-3所示。</p><p> 圖3-3 數(shù)碼管與單片機的接口電路</p><p> 3.4 鍵盤掃描電路&l
18、t;/p><p> 鍵盤是人與微機系統(tǒng)打交道的主要設(shè)備。關(guān)于鍵盤硬件電路的設(shè)計方法也可以在文獻(xiàn)和書籍中找到,配合各種不同的硬件電路,這些書籍中一般也提供了相應(yīng)的鍵盤掃描程序。站在系統(tǒng)監(jiān)控軟件設(shè)計的立場上來看,僅僅完成鍵盤掃描,讀取當(dāng)前時刻的鍵盤狀態(tài)是不夠的,還有不少問題需要妥善解決,否則,人們在操作鍵盤就容易引起誤操作和操作失控現(xiàn)象。在單片機應(yīng)用中鍵盤用得最多的形式是獨立鍵盤及矩陣鍵盤。</p>&l
19、t;p><b> 圖3-4 獨立鍵盤</b></p><p> 它們各有自己的特點,其中獨立鍵盤硬件電路簡單,而且在程序設(shè)計上也不復(fù)雜,一般用在對硬件電路要求不高的簡單電路中;矩陣鍵盤與獨立鍵盤有很大區(qū)別,首先在硬件電路上它要比獨立鍵盤復(fù)雜得多,而且在程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢得多,因此它更適合于多按鍵電路。其次就是消除在按鍵過程中產(chǎn)生的“毛刺”現(xiàn)象。這里采用
20、最常用的方法,即延時重復(fù)掃描法,延時法的原理為:因為“毛刺”脈沖一般持續(xù)時間短,約為幾ms,而我們按鍵的時間一般遠(yuǎn)遠(yuǎn)大于這個時間,所以當(dāng)單片機檢測到有按鍵動靜后再延時一段時間(這里我們?nèi)?0ms)后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無效。</p><p><b> 3.5 蜂鳴器</b></p><p> 由于蜂鳴器的工作電流一般比較大,以致于單
21、片機的I/O 口是無法直接驅(qū)動的(但AVR可以驅(qū)動小功率蜂鳴器),所以要利用放大電路來驅(qū)動,一般使用三極管來放大電流就可以了。</p><p> 當(dāng)有選手進(jìn)行搶答或者搶答倒計時結(jié)束時,蜂鳴器進(jìn)行報警提示。</p><p> 驅(qū)動電路如圖3-4所示。</p><p> 圖3-4 蜂鳴器電路</p><p><b> 4. 系統(tǒng)
22、程序設(shè)計</b></p><p> 4.1 主程序流程圖</p><p> 當(dāng)主持人按下開始按鈕后,計時器開始倒計時顯示。若有選手搶答,計時終止并顯示搶答選手的編號。本輪搶答結(jié)束。</p><p> 只有當(dāng)主持人再次按下開始按鈕后,才能進(jìn)行下一輪的搶答。</p><p> 系統(tǒng)主程序流程圖如圖4-1所示。</p>
23、;<p> 圖4-1 主程序流程圖</p><p> 4.2 倒計時時間顯示流程圖</p><p> 當(dāng)主持人按下開始按鈕之后,計時器開始顯示倒計時,每過一秒減一。當(dāng)?shù)褂嫊r完成后,若還沒有人進(jìn)行搶答,數(shù)碼管顯示00,搶答結(jié)束。其流程圖如下:</p><p> 圖4-2 倒計時時間顯示流程圖</p><p> 4.3 選
24、手搶答流程圖</p><p> 當(dāng)主持人按下開始按鈕之后,8位選手進(jìn)行搶答。當(dāng)其中某一位選手進(jìn)行搶答后,數(shù)碼管顯示搶答選手的編號并鎖定,此時其他選手無法再次搶答,本次搶答結(jié)束。直到主持人再次按下開始按鈕后,才能進(jìn)行下一輪搶答。</p><p><b> 具體流程圖如下:</b></p><p> 圖4-3 搶答選手顯示程序流程圖</
25、p><p><b> 5. 系統(tǒng)調(diào)試</b></p><p> 5.1 Proteus軟件仿真調(diào)試</p><p> 在proteus中新建工程,搭好電路,保存。然后在AT89C51單片機中加載C語言編寫程序生成的hex文件。</p><p> 點擊左下角的運行按鈕(或Debug-Run Simulation),按下
26、結(jié)束按鈕結(jié)束仿真。</p><p> 開始仿真后,倒計時顯示如圖5-1.</p><p> 圖5-1 搶答開始,進(jìn)行倒計時</p><p> 例如3號選手搶答后,顯示如圖5-2.</p><p> 圖5-2 2號選手進(jìn)行搶答</p><p> 若倒計時結(jié)束仍無人搶答,顯示如圖5-3.</p>&
27、lt;p> 圖5-3 倒計時結(jié)束,仍無人搶答</p><p><b> 5.2 結(jié)果分析</b></p><p> 搶答器仿真模擬結(jié)果與實際搶答一致,可以進(jìn)行8路搶答。</p><p><b> 6. 程序清單</b></p><p> #include<reg52.h>
28、 // 包含51單片機寄存器定義的頭文件</p><p> #define N 20</p><p> unsigned char code Tab[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf}; //0xbf為“-”</p><p> //數(shù)碼管顯示0~9的段碼表</p
29、><p> unsigned char int_time; //記錄中斷次數(shù)</p><p> unsigned char second; //儲存秒</p><p> unsigned char num; //記錄搶答選手編號</p><p> char flag1=0; //復(fù)位標(biāo)志
30、</p><p> /*********************************************************************</p><p> 對按鍵的接口進(jìn)行定義了K1、K2、K3、K4、K5,K6,K7,K8分別為P1.0-P1.7</p><p> ***********************************
31、**********************************/</p><p> sbit K1=P1^0;</p><p> sbit K2=P1^1;</p><p> sbit K3=P1^2;</p><p> sbit K4=P1^3;</p><p> sbit K5=P1^4;</
32、p><p> sbit K6=P1^5;</p><p> sbit K7=P1^6;</p><p> sbit K8=P1^7;</p><p> sbit B0=P3^6;//蜂鳴器控制</p><p> sbit KA=P3^0;//主持人開始</p><p> /*******
33、****************************************************************</p><p> 函數(shù)功能:快速動態(tài)掃描延時</p><p> ************************************************************************/</p><p> v
34、oid delay(void)</p><p><b> {</b></p><p><b> int i;</b></p><p> for(i=0;i<3000;i++)</p><p><b> ;</b></p><p><b
35、> }</b></p><p> /***********************************************************************</p><p><b> 函數(shù)功能:顯示秒</b></p><p><b> 入口參數(shù):k</b></p>
36、<p><b> 出口參數(shù):無</b></p><p> ************************************************************************/</p><p> void DisplaySecond(unsigned char k)</p><p><b&g
37、t; {</b></p><p> P2=0xf7; //P2.3引腳輸出低電平, 第4位點亮 </p><p> P0=Tab[k%10]; //顯示個位</p><p><b> delay();</b></p><p><b> P0=0xff;</
38、b></p><p> //*****************************************</p><p> P2=0xfb; //P2.2引腳輸出低電平, 第3位點亮 </p><p> P0=Tab[k/10]; //顯示十位</p><p><b> delay()
39、;</b></p><p><b> P0=0xff;</b></p><p> //************************************</p><p> P2=0xfd;//P2.1引腳輸出低電平, 第2位點亮</p><p> P0=Tab[10]; //顯示“-”
40、</p><p><b> delay();</b></p><p><b> P0=0xff;</b></p><p> //*******************************</p><p> P2=0xfe; //P2.0引腳輸出低電平, 第3位點亮</p>
41、;<p> P0=Tab[num];//顯示搶答選手編號</p><p><b> delay();</b></p><p><b> P0=0xff;</b></p><p><b> }</b></p><p> ///************
42、***復(fù)位函數(shù)*******************</p><p> void _reset()</p><p><b> {</b></p><p><b> while(1)</b></p><p><b> {</b></p><p>
43、 if(KA==0) /*復(fù)位開關(guān)按下*/</p><p><b> {</b></p><p> delay(); /*按鍵去抖動*/</p><p> if(KA==0) /*復(fù)位開關(guān)按下*/</p>
44、<p><b> flag1=1;</b></p><p><b> }</b></p><p> if(flag1) //出現(xiàn)復(fù)位,返回原程序</p><p><b> {</b></p><p> //flag1=0;</p>
45、<p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> /*****************************
46、***************************************</p><p> * 名稱 : key()</p><p> * 功能 : 進(jìn)行了獨立鍵盤的鍵盤掃描,并且二極管發(fā)光,揚聲器發(fā)聲</p><p><b> * 輸入 : 無</b></p><p><b> * 輸出 : 無
47、</b></p><p> **********************************************************************/ </p><p> void key()</p><p><b> {</b></p><p> if(K1==0)
48、 /*開關(guān)0按下*/</p><p><b> {</b></p><p> delay(); /*按鍵去抖動*/</p><p> if(K1==0) /*開關(guān)0按下*/</p><p><b>
49、 {</b></p><p> //void _stop();</p><p><b> num=1;</b></p><p><b> B0=1;</b></p><p> DisplaySecond(N-second);</p><p><b&
50、gt; P2=0xfe;</b></p><p> P0=Tab[num];</p><p> while(!K1); /*等待按鍵k0釋放*/</p><p><b> _reset();</b></p><p> /*死循環(huán)只顯示本按鍵號*/</p>&
51、lt;p> } /* 1號選手搶答成功 ,數(shù)碼管顯示1,蜂鳴器響*/</p><p><b> }</b></p><p><b> if(K2==0)</b></p><p><b> {</b></p><p
52、> delay(); /*按鍵去抖動*/</p><p> if(K2==0) </p><p><b> {</b></p><p> //void _stop();</p><p><b> num=2;</b>
53、;</p><p><b> B0=1;</b></p><p> DisplaySecond(N-second);</p><p><b> //顯示搶答選手</b></p><p><b> P2=0xfe;</b></p><p> P0
54、=Tab[num];</p><p> while(!K2); /*等待按鍵k1釋放*/</p><p><b> _reset();</b></p><p><b> }</b></p><p><b> }</b></p><p>
55、; if(K3==0) /*開關(guān)2按下*/</p><p><b> {</b></p><p> delay(); /*按鍵去抖動*/</p><p> if(K3==0) </p><p> {
56、 </p><p><b> num=3;</b></p><p><b> B0=1;</b></p><p> DisplaySecond(N-second);</p><p><b> P2=0xfe;</b></p><p> P0
57、=Tab[num];</p><p> while(!K3); /*等待按鍵k2放*/</p><p><b> _reset();</b></p><p> /*死循環(huán)只顯示本按鍵號*/</p><p> } /* 3號選手搶答成
58、功,數(shù)碼管顯示3,蜂鳴器響*/</p><p><b> }</b></p><p> if(K4==0) /*開關(guān)3按下*/</p><p><b> {</b></p><p> delay(); /
59、*按鍵去抖動*/</p><p> if(K4==0) </p><p> { </p><p><b> num=4;</b></p><p><b> B0=1;</b></p><p> DisplaySecond(N-s
60、econd); //顯示搶答選手</p><p><b> P2=0xfe;</b></p><p> P0=Tab[num];</p><p> while(!K4); /*等待按鍵k3放*/</p><p><b> _reset();</b></p>
61、;<p> } /* 4號選手搶答成功,數(shù)碼管顯示4,蜂鳴器響*/</p><p><b> }</b></p><p> if(K5==0) /*開關(guān)5按下*/</p><p><b> {<
62、/b></p><p> delay(); /*按鍵去抖動*/</p><p> if(K5==0) /*開關(guān)5按下*/</p><p><b> {</b></p><p><b> num=5;</b></p&g
63、t;<p><b> B0=1;</b></p><p> DisplaySecond(N-second);</p><p><b> P2=0xfe;</b></p><p> P0=Tab[num];</p><p> while(!K5); /*
64、等待按鍵k5釋放*/</p><p><b> _reset();</b></p><p> /*死循環(huán)只顯示本按鍵號*/</p><p> } /* 5號選手搶答成功 ,數(shù)碼管顯示5,蜂鳴器響*/</p><p><b> }</b&g
65、t;</p><p> if(K6==0) /*開關(guān)6按下*/</p><p><b> {</b></p><p> delay(); /*按鍵去抖動*/</p><p> if(K6==0)
66、 /*開關(guān)6按下*/</p><p><b> {</b></p><p><b> num=6;</b></p><p><b> B0=1;</b></p><p> DisplaySecond(N-second);</p><p><
67、b> P2=0xfe;</b></p><p> P0=Tab[num];</p><p> while(!K6); /*等待按鍵k6釋放*/</p><p><b> _reset();</b></p><p> /*死循環(huán)只顯示本按鍵號*/</p>
68、<p> } /* 6號選手搶答成功 ,數(shù)碼管顯示6,蜂鳴器響*/</p><p><b> }</b></p><p> if(K7==0) /*開關(guān)7按下*/</p><p><b> {</b
69、></p><p> delay(); /*按鍵去抖動*/</p><p> if(K7==0) /*開關(guān)7按下*/</p><p><b> {</b></p><p><b> num=7;</b></p>
70、<p><b> B0=1;</b></p><p> DisplaySecond(N-second);</p><p><b> //顯示搶答選手</b></p><p><b> P2=0xfe;</b></p><p> P0=Tab[num];&
71、lt;/p><p> while(!K7); /*等待按鍵k7釋放*/</p><p><b> _reset();</b></p><p> //while(1) ; /*死循環(huán)只顯示本按鍵號*/</p><p> } /*
72、 7號選手搶答成功 ,數(shù)碼管顯示7,蜂鳴器響*/</p><p><b> }</b></p><p> if(K8==0) /*開關(guān)8按下*/</p><p><b> {</b></p><p> delay();
73、 /*按鍵去抖動*/</p><p> if(K8==0) /*開關(guān)8按下*/</p><p><b> {</b></p><p><b> num=8;</b></p><p><b> B0=1;</b></p&
74、gt;<p> DisplaySecond(N-second);</p><p><b> P2=0xfe;</b></p><p> P0=Tab[num];</p><p> while(!K8); /*等待按鍵k8釋放*/</p><p><b> _res
75、et();</b></p><p> /*死循環(huán)只顯示本按鍵號*/</p><p> } /* 8號選手搶答成功 ,數(shù)碼管顯示8,蜂鳴器響*/</p><p><b> }</b></p><p><b> } </b>
76、</p><p> void main(void) //主函數(shù)</p><p><b> {</b></p><p><b> while(1)</b></p><p><b> {</b></p><p><b> num
77、=0;</b></p><p> TMOD=0x01; //使用定時器T0</p><p> TH0=(65536-46083)/256; //將定時器計時時間設(shè)定為46083×1.085微秒</p><p> //=50000微秒=50毫秒</p><p> TL0=(65
78、536-46083)%256;</p><p> EA=1; //開啟總中斷</p><p> ET0=1; //定時器T0中斷允許</p><p> TR0=1; //啟動定時器T0開始運行</p><p> int_tim
79、e=0; //中斷次數(shù)初始化</p><p> second=0; //秒初始化</p><p><b> while(1)</b></p><p><b> {</b></p><p><b> key();</b></p><p
80、> DisplaySecond(N-second);//調(diào)用秒的顯示子程序</p><p> if(flag1) { flag1=0; break;}</p><p><b> }</b></p><p><b> }</b></p><p><b> } </b
81、></p><p> //********************************************************</p><p> //函數(shù)功能:定時器T0的中斷服務(wù)程序</p><p> //*******************************************************</p>&
82、lt;p> void interserve(void ) interrupt 1 using 1 </p><p><b> {</b></p><p> TR0=0; //關(guān)閉定時器T0</p><p> int_time ++; //每來一次中斷,中斷次數(shù)int_time自加1</p>&
83、lt;p> if(int_time==20) //夠20次中斷,即1秒鐘進(jìn)行一次檢測結(jié)果采樣</p><p><b> {</b></p><p> int_time=0; //中斷次數(shù)清0</p><p> second++; //秒加1</p><p> if(second==N)
84、 //秒等于N就結(jié)束</p><p><b> { </b></p><p><b> EA=0;</b></p><p><b> ET0=0; </b></p><p><b> TR0=0;</b></p><p>
85、;<b> _reset();</b></p><p><b> return; </b></p><p><b> }</b></p><p><b> } </b></p><p> TH0=(65536-46083)/256;
86、 //重新給計數(shù)器T0賦初值</p><p> TL0=(65536-46083)%256;</p><p> TR0=1; //啟動定時器T0</p><p><b> } </b></p><p><b> 7.小結(jié)</b></p><p> 制作
87、此次試驗,開始很苦惱,無從下手。后來和同組同學(xué)討論,決定首先借助于網(wǎng)絡(luò)資料。網(wǎng)絡(luò)上的資源大多并不完善,甚至有些根本看不懂。此時真的恩頭疼。于是回想之前實驗課上所學(xué)習(xí)的知識,尋找借鑒例題。零零散散下載摘錄很多東西。又結(jié)合搶答比賽的實際應(yīng)用,開始起草最初的設(shè)計草案。想法很多,設(shè)計也幾近完整,然而很多功能卻無法實現(xiàn)。于是小組討論決定按照草案一步步依次解決,邊解決邊定稿最后設(shè)計方案。中間遇到很多問題,困難。這時我們才了解到對知識的掌握還有許多的
88、生疏和欠缺。然而此時后悔已經(jīng)于事無補。我們只能不停在網(wǎng)絡(luò)上搜索查找學(xué)習(xí),盡量彌補自身知識的不足。漸漸完善此設(shè)計。</p><p> 有時候在自己創(chuàng)建的元器件的管腳上無法實現(xiàn)連線。應(yīng)該是管腳的間距太小了。因為在ISIS中,每個元器件的管腳都要占據(jù)一塊區(qū)域(就像自己的保護(hù)區(qū)一樣,不容別人隨意侵犯),該區(qū)域會排斥外部的走線。解決問題的方法是在走線的同時按住 “CTRL”鍵,直到走線繞過狹窄的保護(hù)區(qū)。當(dāng)然最根本的辦法是
89、重新編輯元器件,把其管腳間距調(diào)大一些。 主持人按鍵來控制總開關(guān),主持人按下開關(guān)那么選手開始搶答,此時數(shù)碼管開始20s倒計時,并且選手們必須在規(guī)定的時間內(nèi)進(jìn)行搶答,若過了20秒還沒搶答那么搶答失效,選手們?nèi)粲幸粋€在規(guī)定的時間內(nèi)搶答成功則其余的選手不可以再搶答,即該選手搶答成功。</p><p> 在這次試驗設(shè)計中,我發(fā)現(xiàn)了自己知識上的不足,和理論時間上的差距。通過完成試驗,使我對本科知識有了更深入的了解,提高
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設(shè)計-- 8路搶答器設(shè)計
- 課程設(shè)計--基于51單片機8路搶答器設(shè)計
- 單片機課程設(shè)計搶答器(16路搶答器)
- 四路搶答器單片機課程設(shè)計
- 四路搶答器單片機課程設(shè)計
- 單片機搶答器課程設(shè)計 --搶答器
- 單片機課程設(shè)計報告--八路搶答器
- 搶答器單片機課程設(shè)計報告
- 基于單片機的四路搶答器的課程設(shè)計
- 基于單片機8路搶答器論文
- 單片機八路搶答器課程設(shè)計
- 課程設(shè)計---單片機四路搶答器的設(shè)計
- 單片機搶答器課程設(shè)計
- 單片機課程設(shè)計---八路搶答器
- 單片機八路搶答器課程設(shè)計
- 單片機課程設(shè)計-- 基于單片機的搶答器設(shè)計
- 單片機搶答器課程設(shè)計
- 基于單片機的搶答器課程設(shè)計
- 課程設(shè)計-單片機原理基于單片機的八路搶答器設(shè)計
- 課程設(shè)計---單片機八路搶答器設(shè)計
評論
0/150
提交評論