版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目錄</b></p><p> 摘要………………………………………………………………… 2</p><p> 一.引言…………………………………………………………… 3</p><p> 1.1本課程設(shè)計(jì)可實(shí)現(xiàn)的功能……………………………… 3</p><p> 1.2本課程完成情況
2、………………………………………… 3</p><p> 1.3本課程使有方法………………………………………… 3</p><p> 二.PIC單片機(jī)控制的四路搶答器工作原理…………………… 4</p><p> 三.硬件設(shè)計(jì)內(nèi)容………………………………………………… 6</p><p> 3.1基于protel的原理圖……………………
3、…………… 6</p><p> 3.2 基于PROTEUS的四路搶答器硬件電路設(shè)計(jì)………… 7</p><p> 3.3 實(shí)際電路圖排版與焊接……………………………… 10</p><p> 四.四路搶答器系統(tǒng)軟件設(shè)計(jì)…………………………………… 12</p><p> 五.系統(tǒng)軟件調(diào)試……………………………………………………
4、12</p><p> 六.課程設(shè)計(jì)總結(jié)……………………………………………………12</p><p> 七.參考文獻(xiàn)…………………………………………………………13</p><p> 八.程序清單…………………………………………………………14</p><p><b> 摘要</b></p><
5、;p> 在知識(shí)比賽中, 特別是做搶答題目的時(shí)候, 在搶答過程中,為了知道哪一組或哪一位選手先答題,必須要設(shè)計(jì)一個(gè)系統(tǒng)來完成這個(gè)任務(wù)。如果在搶答中,靠視覺是很難判斷出哪組先答題。利用單片機(jī)系統(tǒng)來設(shè)計(jì)搶答器,使以上問題得以解決,即使兩組的搶答時(shí)間相差幾微秒,也可分辨出哪組優(yōu)先答題。本次設(shè)計(jì)主要應(yīng)用單片機(jī)搶答器設(shè)計(jì)及工作原理,以及根據(jù)它的實(shí)際用途。系統(tǒng)工作原理本系統(tǒng)采用PIC16F877A單片機(jī)作為核心。控制系統(tǒng)的四個(gè)模塊分別為:存儲(chǔ)
6、模塊、顯示模塊、語音模塊、搶答開關(guān)模塊。該搶答器系統(tǒng)通過開關(guān)電路四個(gè)按鍵輸入搶答信號(hào);利用蜂鳴器完成語音的報(bào)警功能; 利用存儲(chǔ)程序; 利用五個(gè)數(shù)碼管來完成顯示功能。工作時(shí),用按鍵通過開關(guān)電路輸入各路的搶答信號(hào),經(jīng)單片機(jī)的處理, 輸出控制信號(hào), 控制數(shù)碼管和語音芯片工作。在數(shù)碼管上顯示哪一組先答題,然后開始倒計(jì)時(shí),限制回答時(shí)間,從而實(shí)現(xiàn)整個(gè)搶答過程。</p><p> 關(guān)鍵字:PIC16F877A單片機(jī) 搶答器
7、。</p><p><b> 引言</b></p><p> 1.1本課程設(shè)計(jì)可實(shí)現(xiàn)的功能:</p><p> a. 上電復(fù)位功能,手動(dòng)復(fù)位功能,進(jìn)入初始畫面,五個(gè)數(shù)碼管分別顯示“H”、“E”、“L”、“L”、“O”。</p><p> b. 搶答器功能。分為四組,各組分別有一個(gè)搶答按鈕。主持人有開始和結(jié)束、復(fù)位
8、鍵。設(shè)定選手搶答時(shí)間為30s,回答問題時(shí)間為60s。當(dāng)主持人按鍵開始后,開始30s倒計(jì)時(shí),選手開始搶答為有效,如果30s后無人回答,則蜂鳴器鳴兩聲發(fā)生提示。若30s內(nèi)有選手回答,則停止30s的倒計(jì)時(shí),同時(shí)顯示搶答選手的號(hào)數(shù),而且開始一分鐘的回答時(shí)間倒計(jì)時(shí),當(dāng)一分鐘倒計(jì)時(shí)結(jié)束后,蜂鳴器鳴一聲以示回答時(shí)間結(jié)束。主持人可按復(fù)位鍵,新一輪搶答開始。</p><p> c. 秒表功能??勺鳛楹?jiǎn)單的秒表使用,設(shè)定一個(gè)鍵開始
9、計(jì)時(shí),再按一下停住,記錄時(shí)間,再按一下,重新計(jì)時(shí)。</p><p> 1.2本課程完成情況</p><p> a. 基本實(shí)現(xiàn)了硬件電路與軟件程序的設(shè)計(jì);</p><p> b. 基本連接好了硬件電路,雖然焊得不是很漂亮,但已經(jīng)把根據(jù)電路原理圖做成了一個(gè)完整的硬件電路;</p><p> c. 由于經(jīng)驗(yàn)不足,時(shí)間有限,可能硬件與軟件都不
10、夠完美,需待日后繼續(xù)努力改進(jìn)。</p><p> 1.3本課程使有方法:</p><p> 裝上電池,按下自鎖鍵開關(guān),五個(gè)數(shù)碼管顯示“HELLO”。</p><p> 按下鍵5,換到秒表模式。按下鍵6,開始計(jì)時(shí)。再按下鍵6,停止計(jì)時(shí),顯示計(jì)時(shí)的時(shí)間。再按下鍵6,重新計(jì)時(shí)。</p><p> 再按下鍵5,切換到搶答器。按下鍵6,開始30
11、秒的倒計(jì)時(shí),數(shù)碼管2、3顯示剩余時(shí)間,若沒有人搶答,30秒過后,蜂鳴器響兩聲,然后結(jié)束。若有人搶答,數(shù)碼管1顯示搶中的選手號(hào)數(shù),數(shù)碼管2、3停住,數(shù)碼管4、5開始60秒的倒計(jì)時(shí)回答時(shí)間,倒計(jì)時(shí)結(jié)束后蜂鳴器叫一聲。</p><p><b> 圖1 電路實(shí)物圖</b></p><p> PIC單片機(jī)控制的四路搶答器工作原理</p><p>
12、 用單片機(jī)設(shè)計(jì)四路搶答器包括硬件電路設(shè)計(jì)和軟件程序設(shè)計(jì)。硬件電路的核心是PIC16F877A單片機(jī),配以輸入輸出電路構(gòu)成。軟件程序采用PIC匯編語言或C語言編寫單片機(jī)程序。PIC單片機(jī)控制的四路搶答器原理框圖,如圖2所示。</p><p> 如圖2所示,系統(tǒng)框圖各部分功能說明如下:</p><p> ?、艈纹瑱C(jī)控制器:選用 PIC16F877A單片機(jī),輸入端接收搶答輸入、解除輸入和復(fù)位輸
13、入信號(hào)等,經(jīng)運(yùn)算和處理后,輸出信號(hào)控制搶答指示燈和搶答顯示數(shù)碼管等。</p><p> ⑵搶答輸入:共4路,選用按鍵開關(guān),實(shí)現(xiàn)參賽選手的搶答輸入,搶答完后再輸入信號(hào)無效。</p><p> ?、蔷幋a電路:對(duì)4路搶答輸入信號(hào)進(jìn)行編碼,實(shí)現(xiàn)對(duì)PIC16F877A單片機(jī)輸入端口的擴(kuò)展,由于本設(shè)計(jì)只有四路搶答,也可不用。 </p><p> ?、冉獬斎耄哼x用按鍵開關(guān),用
14、程序?qū)崿F(xiàn)封鎖,通過復(fù)位鍵為繼續(xù)搶答作準(zhǔn)備。</p><p> ?、蓮?fù)位輸入:選用按鍵開關(guān),可對(duì)單片機(jī)進(jìn)行硬件復(fù)位操作。</p><p> ⑹倒計(jì)時(shí):用倒計(jì)時(shí)來提示搶答或回答時(shí)間的開始。</p><p> ?、送V褂?jì)時(shí):停止倒計(jì)時(shí)來顯示,選手搶答所用的時(shí)間,以及提示回答時(shí)間開始。 </p><p> ?、虛尨痫@示:用LCD數(shù)碼管顯示參賽選手的
15、編號(hào)。</p><p> ?、驼Z音報(bào)警電路:當(dāng)過了限定搶答時(shí)間后,蜂鳴器鳴兩聲表示搶答時(shí)間已到,不能再搶答了。當(dāng)回答時(shí)間到了后,蜂鳴器鳴一聲表示回答時(shí)間已到。</p><p><b> 硬件設(shè)計(jì)內(nèi)容</b></p><p> 3.1 根據(jù)設(shè)計(jì)思想及查閱相關(guān)資料,設(shè)計(jì)出實(shí)現(xiàn)欲定功能的系統(tǒng)電路原理圖,用protel畫出原理圖(圖3)。</
16、p><p> 圖3 基于protel的原理圖</p><p> 3.2 基于PROTEUS的四路搶答器硬件電路設(shè)計(jì)</p><p> 3.2.1多路搶答器總體電路設(shè)計(jì)</p><p> 1.創(chuàng)建一個(gè)新的設(shè)計(jì)文件</p><p> 首先進(jìn)入Proteus ISIS編輯環(huán)境。</p><p>
17、; 選擇“File/New Design”選項(xiàng),在彈出的模板對(duì)話框中選擇DEFAULT模板,并將新建的設(shè)計(jì)保存。如圖3.2.1 (a)所示。</p><p> 如圖3.2.1 (a)</p><p><b> 2.置工作環(huán)境</b></p><p> 打開Template菜單,對(duì)工作環(huán)境進(jìn)行設(shè)置。</p><p>
18、;<b> 3.拾取元器件</b></p><p> 選擇Library下的Pick Device/Symbol菜單項(xiàng),出現(xiàn)如圖3.2.1 (b)所示對(duì)話框。</p><p> 圖3.2.1 (b) 元件拾取對(duì)話框</p><p> 在Keywords中輸入你所需要的元器件名稱,單擊OK按扭,或在元器件列表區(qū)域雙擊元器件名稱,即可完成對(duì)
19、該元件的添加。</p><p> 4.在原理圖中放置元件</p><p> 選擇對(duì)象選擇器中的PIC16F877A件,在Proteus ISIS編輯環(huán)境主界面的預(yù)覽窗口將出現(xiàn)PIC16F877A的圖標(biāo)。在編輯窗口雙擊鼠標(biāo)左鍵,元器件PIC16F877A被放置到原理圖中。</p><p> 按照上述步驟,將其他元器件放置到原理圖中。</p><
20、;p><b> 5.編輯元器件</b></p><p> 放置好元器件后,雙擊相應(yīng)的元器件,即可打開該元器件的編輯對(duì)話框。</p><p><b> 6.繪制原理圖</b></p><p> 單擊的一個(gè)對(duì)象連接點(diǎn)。如果想讓Proteus ISIS自動(dòng)定出走線路徑,只需單擊另一個(gè)連接點(diǎn);如果想自己決定走線路徑,
21、只需在希望的拐點(diǎn)處單擊。</p><p> 按照上述步驟,將所有的原器件按照所需方式連線。連接后的原理圖如圖3.2.1 (c)所示。</p><p> 圖 3.2.1 (c)連接后的原理圖</p><p> 8.對(duì)原理圖進(jìn)行電氣規(guī)則檢測(cè)</p><p> 選擇Tools下的Electrical Rule Check菜單項(xiàng),出現(xiàn)電氣規(guī)則
22、檢測(cè)報(bào)告單。如圖3.2.1 (d)所示。</p><p><b> 9.存盤及輸出報(bào)表</b></p><p> 將設(shè)計(jì)好的原理圖文件存盤。同時(shí),可使用Tools菜單下的Bill of Materials草單項(xiàng)輸出BOM文檔。如圖3.2.1 (e)所示。</p><p> 圖3.2.1 (d)電氣規(guī)則檢查報(bào)告單</p>&l
23、t;p> 圖3.2.1 (e)輸出的BOM文檔</p><p> 3.3 實(shí)際電路圖排版與焊接</p><p> 電路圖設(shè)計(jì)出來,并經(jīng)仿真可以用以后,接下去進(jìn)行器件采購。原件清單如下:</p><p> 然后,開始根據(jù)原理圖焊接電路。焊完后最重要的是進(jìn)行測(cè)試。測(cè)試可以從以下幾個(gè)方面入手:</p><p><b> 邏
24、輯故障</b></p><p> 這類故障往往由于焊線和放元器件的過程中工藝性錯(cuò)誤所造成的。主要包括錯(cuò)線、開路、短路。排除的方法是首先將做好的板認(rèn)真對(duì)照原理圖,看兩者是否一致。應(yīng)特別注意電源系統(tǒng)檢查,以防止電源短路和極性錯(cuò)誤,并重點(diǎn)檢查系統(tǒng)總線是否存在相互之間的短路或與其它信號(hào)線路短路。必要時(shí)利用萬用表的短路測(cè)試功能,可以縮短排錯(cuò)時(shí)間。</p><p><b>
25、元器件檢查</b></p><p> 檢查元器件是否壞掉可以用萬用表測(cè)相關(guān)參數(shù)等方法,也可以用替換的方法進(jìn)行檢測(cè)。</p><p><b> 電源故障</b></p><p> 在通電前,一定要檢查電源電壓的幅值和極性,否則很容易造成集成塊損壞。加電后檢查各插件上引腳的電位,一般先檢查VCC與GND之間電位,若在4.8-5Vi
26、之間屬正常。若有高壓,聯(lián)機(jī)仿真器調(diào)試時(shí),將會(huì)損壞仿真器等,有時(shí)會(huì)使用應(yīng)用系統(tǒng)中的集成塊發(fā)熱損壞。</p><p><b> 電路線路檢測(cè)</b></p><p> 電路的調(diào)試主要看接口以及連線是否正確,由于引腳數(shù)目蠻多的,剛開始制作電路板前最好先進(jìn)行引腳的測(cè)試。硬件的測(cè)試是電路原理能不能實(shí)現(xiàn)的基礎(chǔ),所以要認(rèn)真的調(diào)試,依次仔細(xì)檢查,直到正常工作。</p>
27、<p> 四路搶答器系統(tǒng)軟件設(shè)計(jì)</p><p> 根據(jù)電路原理圖,編寫設(shè)計(jì)程序,我們可以用匯編編寫,也可以用C語言編寫,本次設(shè)計(jì)采用C語言編寫。綜合中斷、定時(shí)器計(jì)數(shù)器TMR1有應(yīng)用等所寫知識(shí)設(shè)計(jì)編寫,程序清單見第 頁。</p><p><b> 系統(tǒng)軟件調(diào)試</b></p><p> 電路焊完后,程序?qū)懲旰?,開始進(jìn)行系統(tǒng)
28、測(cè)試。首先,將仿真無誤的程序燒進(jìn)單片機(jī)芯片,然后裝上電路板上進(jìn)行驗(yàn)證。如果不行,再進(jìn)行檢測(cè),測(cè)出是硬件問題,還是程序問題,直到把所有的問題都解決了為止。</p><p> 本次課程設(shè)計(jì),經(jīng)驗(yàn)證成功以后,通過更改程序,付加了秒表功能,使搶答器又多出了個(gè)功能。經(jīng)調(diào)試沒有錯(cuò)誤后,終于比較完整的完成了任務(wù)。</p><p><b> 課程設(shè)計(jì)總結(jié)</b></p>
29、;<p> 本次課程設(shè)計(jì),對(duì)我來說可謂受益非淺。這種經(jīng)歷可以說是從來就沒有的。</p><p> 首先,這次課程設(shè)計(jì)雖然歷時(shí)兩個(gè)星期。但我們真正可以開始準(zhǔn)備的只有四五天。從星期天那天,開始焊,一直到星期四下午,可以說,我除了吃飯、睡覺,剩下就都是在焊電路,從來也沒有這么專注過一件事情,而且一干就是連繼好幾天,可見這門課程確定有具大的吸引力。</p><p> 再者,通過
30、這次設(shè)計(jì),我發(fā)現(xiàn)我很多問題。比如,在焊的過程中一不小心就把電路給焊錯(cuò)了,還有一個(gè)問題就是,可能是因?yàn)榈谝淮巫?,沒經(jīng)驗(yàn),排版有點(diǎn)不好,導(dǎo)致后面的接線復(fù)雜,所以更容易出錯(cuò)了??傊?jīng)過本次課程設(shè)計(jì),我收獲了經(jīng)驗(yàn),對(duì)焊工有了更濃厚的興趣。</p><p> 本次作業(yè),可以說一波三折。本來花了三天的時(shí)間把電路焊好了,燒進(jìn)程序后,發(fā)現(xiàn)根本不能用,后面經(jīng)過檢查電路,發(fā)現(xiàn)許多線都接錯(cuò)了,經(jīng)過重新修改。再次驗(yàn)證后,依然不行,幾
31、個(gè)數(shù)碼管出現(xiàn)了亂碼現(xiàn)象。經(jīng)同學(xué)的建議,將數(shù)碼管換掉,重連后,再測(cè)試不是不行。當(dāng)時(shí),我特別苦惱,在陳武同學(xué)的鼓勵(lì)下,最后,經(jīng)他幫忙檢查后,發(fā)現(xiàn)是我的程序有問題,就在這關(guān)鍵的最后一天,終于成功了,雖然接解有些不良,但還是實(shí)現(xiàn)了預(yù)期的功能,在此特別感謝陳武同學(xué)。</p><p> 經(jīng)過本次實(shí)驗(yàn),我對(duì)單片機(jī)的學(xué)習(xí)有了階段性的總結(jié),經(jīng)過了軟硬件的結(jié)合,更加具體更加全面地學(xué)會(huì)了單片機(jī)的應(yīng)用。應(yīng)該說,這次的作業(yè)為以后做畢業(yè)設(shè)
32、計(jì)奠定了基礎(chǔ),有了這次經(jīng)驗(yàn),相信以后的學(xué)習(xí)會(huì)越來越上手。</p><p><b> 參考文獻(xiàn) </b></p><p> PIC單片機(jī)原理及應(yīng)用 李榮正 劉啟中 陳學(xué)軍 北京航空航天大學(xué)出版社</p><p> 模擬電子技術(shù)基礎(chǔ)教程 華成英 清華大學(xué)出版社</p><p> 數(shù)字電子技術(shù)基礎(chǔ) 閻石 高等教育出版
33、社</p><p> C程序設(shè)計(jì)(第三版) 潭浩強(qiáng) 清華大學(xué)出版社</p><p><b> 程序清單</b></p><p> #include<pic.h> </p><p> __CONFIG(0xFF32);</p><p> void init(void);<
34、/p><p> void keyscan(void);</p><p> void delay(int);</p><p> void delay1(int);</p><p> int i=30,j,k,m=60,flag=0,flag1,jishu;</p><p> char TABLE[]={0x3f,0
35、x06,0x5b,0x4f,0x66,0x6d,0x7d,</p><p> 0x07,0x7f,0x6f};</p><p> char TABLE1[]={0x76,0x79,0x38,0x3f};</p><p> void main()</p><p><b> {</b></p><
36、;p><b> init();</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> if(flag==0)</p><p><b> {</b></p><
37、;p> PORTD=TABLE1[0];</p><p> PORTC=0Xfe;</p><p><b> delay(2);</b></p><p> PORTD=TABLE1[1];</p><p> PORTC=0Xfd;</p><p><b> delay(
38、2);</b></p><p> PORTD=TABLE1[2];</p><p> PORTC=0Xfb;</p><p><b> delay(2);</b></p><p> PORTD=TABLE1[2];</p><p> PORTC=0Xf7;</p>
39、<p><b> delay(2);</b></p><p> PORTD=TABLE1[3];</p><p> PORTC=0Xef;</p><p> delay(2);</p><p> keyscan();</p><p><b> }</b
40、></p><p> if(flag==2)</p><p><b> {</b></p><p> PORTD=TABLE[0];</p><p> PORTC=0Xfe;</p><p><b> delay(2);</b></p><
41、p> PORTD=TABLE[i/10];</p><p> PORTC=0Xfd;</p><p><b> delay(2);</b></p><p> PORTD=TABLE[i%10];</p><p> PORTC=0Xfb;</p><p><b> del
42、ay(2);</b></p><p> PORTD=TABLE[m%10];</p><p> PORTC=0Xf7;</p><p><b> delay(2);</b></p><p> PORTD=TABLE[m%10];</p><p> PORTC=0Xef;<
43、;/p><p><b> delay(2);</b></p><p> keyscan();</p><p><b> }</b></p><p> if(flag==1)</p><p><b> {</b></p><p&g
44、t; PORTD=TABLE[jishu/10000];</p><p> PORTC=0Xfe;</p><p><b> delay(2);</b></p><p> PORTD=TABLE[jishu%10000/1000];</p><p> PORTC=0Xfd;</p><p&g
45、t;<b> delay(2);</b></p><p> PORTD=TABLE[jishu%10000%1000/100];</p><p> PORTC=0Xfb;</p><p><b> delay(2);</b></p><p> PORTD=TABLE[jishu%10000
46、%1000%100/10];</p><p> PORTC=0Xf7;</p><p><b> delay(2);</b></p><p> PORTD=TABLE[jishu%10];</p><p> PORTC=0Xef;</p><p> delay(2);</p>
47、;<p> keyscan();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void init()</p><p><b>
48、 {</b></p><p> TRISB=0XFF;</p><p> TRISC=0X00;</p><p> TRISD=0X00;</p><p> TRISE=0X00;</p><p><b> RE0=1;</b></p><p>
49、 PORTC=0xff;</p><p> PORTA=0X0F;</p><p> PORTD=0XFF;</p><p> INTCON=0xc0;</p><p> PIE1=0x01;</p><p> TMR1L=(65536-10000)%256;</p><p> TM
50、R1H=(65536-10000)/256;</p><p><b> TMR1ON=0;</b></p><p><b> }</b></p><p> void keyscan()</p><p><b> {</b></p><p> i
51、f(flag==2)</p><p><b> {</b></p><p> if(RB0==0)</p><p><b> {</b></p><p> delay(10);</p><p> if(RB0==0)</p><p><
52、;b> {</b></p><p><b> k=1;</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> PORTD=TABLE[1];</p><p> P
53、ORTC=0Xfe;</p><p><b> delay(1);</b></p><p> PORTD=TABLE[i/10];</p><p> PORTC=0Xfd;</p><p><b> delay(1);</b></p><p> PORTD=TABL
54、E[i%10];</p><p> PORTC=0Xfb;</p><p><b> delay(1);</b></p><p> PORTD=TABLE[m/10];</p><p> PORTC=0Xf7;</p><p><b> delay(1);</b>&
55、lt;/p><p> PORTD=TABLE[m%10];</p><p> PORTC=0Xef;</p><p><b> delay(1);</b></p><p><b> }</b></p><p><b> }</b></p>
56、;<p><b> }</b></p><p> if(RB1==0)</p><p><b> {</b></p><p> delay(10);</p><p> if(RB1==0)</p><p><b> {k=1;</b
57、></p><p><b> while(1)</b></p><p><b> {</b></p><p> PORTD=TABLE[2];</p><p> PORTC=0Xfe;</p><p><b> delay(1);</b>
58、</p><p> PORTD=TABLE[i/10];</p><p> PORTC=0Xfd;</p><p><b> delay(1);</b></p><p> PORTD=TABLE[i%10];</p><p> PORTC=0Xfb;</p><p&g
59、t;<b> delay(1);</b></p><p> PORTD=TABLE[m/10];</p><p> PORTC=0Xf7;</p><p><b> delay(1);</b></p><p> PORTD=TABLE[m%10];</p><p>
60、 PORTC=0Xef;</p><p><b> delay(1);</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> if(R
61、B2==0)</p><p><b> {</b></p><p> delay(10);</p><p> if(RB2==0)</p><p><b> {k=1;</b></p><p><b> while(1)</b></p&
62、gt;<p><b> {</b></p><p> PORTD=TABLE[3];</p><p> PORTC=0Xfe;</p><p><b> delay(1);</b></p><p> PORTD=TABLE[i/10];</p><p>
63、; PORTC=0Xfd;</p><p><b> delay(1);</b></p><p> PORTD=TABLE[i%10];</p><p> PORTC=0Xfb;</p><p><b> delay(1);</b></p><p> PORTD=
64、TABLE[m/10];</p><p> PORTC=0Xf7;</p><p><b> delay(1);</b></p><p> PORTD=TABLE[m%10];</p><p> PORTC=0Xef;</p><p><b> delay(1);</b&
65、gt;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> if(RB3==0)</p><p><b> {</b></p>
66、<p> delay(10);</p><p> if(RB3==0)</p><p><b> {k=1;</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> PO
67、RTD=TABLE[4];</p><p> PORTC=0Xfe;</p><p><b> delay(1);</b></p><p> PORTD=TABLE[i/10];</p><p> PORTC=0Xfd;</p><p><b> delay(1);</b
68、></p><p> PORTD=TABLE[i%10];</p><p> PORTC=0Xfb;</p><p><b> delay(1);</b></p><p> PORTD=TABLE[m/10];</p><p> PORTC=0Xf7;</p><
69、;p><b> delay(1);</b></p><p> PORTD=TABLE[m%10];</p><p> PORTC=0Xef;</p><p><b> delay(1);</b></p><p><b> }</b></p><
70、;p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> if(RB4==0)</p><p><b> {</b></p><p> delay(1
71、0);</p><p> if(RB4==0)</p><p><b> {</b></p><p> while(!RB4);</p><p><b> flag++;</b></p><p> if(flag==3)</p><p>&l
72、t;b> flag=0;</b></p><p><b> }</b></p><p><b> }</b></p><p> if(RB5==0)</p><p><b> {</b></p><p> delay(10
73、);</p><p> if(RB5==0)</p><p><b> {</b></p><p> while(!RB5);</p><p><b> flag1++;</b></p><p> if(flag1==2)</p><p>&
74、lt;b> flag1=0;</b></p><p> if(flag==1||flag==2)</p><p><b> {</b></p><p> if(flag1==1)</p><p><b> {</b></p><p><b&
75、gt; TMR1ON=1;</b></p><p><b> jishu=0;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> TMR1ON=0;</b></
76、p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void delay(int x)</p>&
77、lt;p><b> {</b></p><p><b> int a,b;</b></p><p> for(a=x;a>0;a--)</p><p> for(b=110;b>0;b--);</p><p><b> }</b></p>
78、<p> void delay1(int x)</p><p><b> {</b></p><p><b> int a,b;</b></p><p> for(a=x;a>0;a--)</p><p> for(b=110;b>0;b--);</p>
79、;<p><b> }</b></p><p> void interrupt time0(void)</p><p><b> {</b></p><p><b> TMR1IF=0;</b></p><p> TMR1L=(65536-10000)%
80、256;</p><p> TMR1H=(65536-10000)/256;</p><p> if(flag==1)</p><p><b> {</b></p><p><b> jishu++;</b></p><p> if(jishu==20000)<
81、;/p><p><b> jishu=0;</b></p><p><b> }</b></p><p> if(flag==2)</p><p><b> {</b></p><p><b> j++;</b></p
82、><p> if(j==100)</p><p><b> {</b></p><p><b> j=0;</b></p><p><b> if(k==1)</b></p><p><b> {</b></p>
83、<p><b> m--;</b></p><p><b> if(m==-1)</b></p><p><b> {</b></p><p><b> RE0=0;</b></p><p> INTCON=0x80;</p&g
84、t;<p> delay1(1000);</p><p><b> RE0=1;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> if(k==0)</b></p&g
85、t;<p><b> {</b></p><p><b> i--;</b></p><p><b> if(i==-1)</b></p><p><b> {</b></p><p> INTCON=0x80;</p>
86、;<p><b> RE0=0;</b></p><p> delay1(200);</p><p><b> RE0=1;</b></p><p> delay1(200);</p><p><b> RE0=0;</b></p><
87、;p> delay1(200);</p><p><b> RE0=1;</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> PORTD=TABLE[0];</p><p>
88、 PORTA=0X01;</p><p> PORTD=TABLE[0];</p><p> PORTA=0X02;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b><
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
- 四路搶答器單片機(jī)課程設(shè)計(jì)
- 四路搶答器單片機(jī)課程設(shè)計(jì)
- 課程設(shè)計(jì)---單片機(jī)四路搶答器的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告--八路搶答器
- 單片機(jī)課程設(shè)計(jì)-- 8路搶答器設(shè)計(jì)
- 基于單片機(jī)的四路搶答器的課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-四路搶答器的設(shè)計(jì)與實(shí)現(xiàn)
- 基于單片機(jī)的8路搶答器課程設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)搶答器(16路搶答器)
- 搶答器單片機(jī)課程設(shè)計(jì)報(bào)告
- 單片機(jī)八路搶答器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---八路搶答器
- 單片機(jī)八路搶答器課程設(shè)計(jì)
- 課程設(shè)計(jì)---單片機(jī)八路搶答器設(shè)計(jì)
- 單片機(jī)應(yīng)用課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告-電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)電子密碼鎖實(shí)驗(yàn)報(bào)告
- 單片機(jī)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告--數(shù)字電壓表
- 單片機(jī)課程設(shè)計(jì)八路搶答器設(shè)計(jì)
- 課程設(shè)計(jì)-單片機(jī)原理基于單片機(jī)的八路搶答器設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論