四路搶答_單片機(jī)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第1頁
已閱讀1頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論