基于AT89S51的八路搶答器的設(shè)計(jì)畢業(yè)論文_第1頁
基于AT89S51的八路搶答器的設(shè)計(jì)畢業(yè)論文_第2頁
基于AT89S51的八路搶答器的設(shè)計(jì)畢業(yè)論文_第3頁
基于AT89S51的八路搶答器的設(shè)計(jì)畢業(yè)論文_第4頁
基于AT89S51的八路搶答器的設(shè)計(jì)畢業(yè)論文_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、江西工業(yè)貿(mào)易職業(yè)技術(shù)學(xué)院江西工業(yè)貿(mào)易職業(yè)技術(shù)學(xué)院 畢畢 業(yè)業(yè) 設(shè)設(shè) 計(jì)計(jì) 課題名稱:課題名稱:基于 at89s51 的八路搶答器的設(shè)計(jì) (2014 年年 上上 學(xué)期)學(xué)期) 系 部 機(jī)電技術(shù)工程系 專 業(yè) 機(jī)電一體化 班 級(jí) 12 機(jī)電(2)班 姓 名 指導(dǎo)教師 2014 年 06 月 07 日 獨(dú)創(chuàng)性聲明 本人聲明:所呈交的畢業(yè)論文(設(shè)計(jì))是在導(dǎo)師指導(dǎo)下進(jìn)行的研 究工作及取得的研究成果,論文中引用他人的文獻(xiàn)、數(shù)據(jù)、圖表、資 料均已作明確標(biāo)注,論文中的結(jié)論和成果為本人獨(dú)立完成,真實(shí)可靠, 不包含他人成果及已獲得江西工業(yè)貿(mào)易職業(yè)技術(shù)學(xué)院或其他教育機(jī)構(gòu) 的學(xué)位或證書使用過的材料。與我一同工作的同志

2、對(duì)本研究所做的任 何貢獻(xiàn)均已在論文中作了明確的說明并表示了謝意。 設(shè)計(jì)作者簽名: 蔡錦桂 日期: 2014 年 06 月 07 日 版權(quán)使用授權(quán)書 本畢業(yè)設(shè)計(jì)作者同意學(xué)校保留并向國家有關(guān)部門或機(jī)構(gòu)送交設(shè)計(jì) 的復(fù)印件和電子版,允許設(shè)計(jì)被查閱和借閱。本人授權(quán)江西工業(yè)貿(mào)易 職業(yè)技術(shù)學(xué)院可以將本畢業(yè)設(shè)計(jì)全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進(jìn)行 檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本畢業(yè)論文 (設(shè)計(jì)) 。本人離校后發(fā)表或使用該畢業(yè)設(shè)計(jì)或與該設(shè)計(jì)直接相關(guān)的 學(xué)術(shù)論文或成果時(shí),單位署名為江西工業(yè)貿(mào)易職業(yè)技術(shù)學(xué)院。 設(shè)計(jì)作者簽名: 蔡錦桂 日期: 2014 年 06 月 07 日 指 導(dǎo) 教 師 簽 名

3、: 日期: 年 月 日 摘摘 要要 本方案以 at89s51 單片機(jī)作為主控核心,與晶振、數(shù)碼管、蜂鳴器等構(gòu)成八 路搶答器,利用了單片機(jī)的延時(shí)電路、按鍵復(fù)位電路、時(shí)鐘電路、定時(shí)/中斷等 電路,設(shè)計(jì)的八路搶答器具有實(shí)時(shí)顯示搶答選手的號(hào)碼和搶答時(shí)間的特點(diǎn),還有 復(fù)位電路,使其再開始新的一輪的答題和比賽,同時(shí)還利用匯編語言編程,使其 實(shí)現(xiàn)一些基本的功能。 關(guān)關(guān)鍵鍵詞詞: 單片機(jī)、at89s51、搶答器 目目 錄錄 一 設(shè)計(jì)目的與任務(wù).3 二 各模塊的選擇和論證.3 2.1 搶答器顯示模塊選擇.3 2.2 控制器選擇 .5 2.3 鍵盤選擇 .5 2.4 時(shí)鐘頻率電路的設(shè)計(jì) .7 2.5 復(fù)位電路的設(shè)

4、計(jì) .8 2.6 報(bào)警電路 .8 2.7 at89s51 簡介 .9 2.7.1 at89s51 單片機(jī)的結(jié)構(gòu) .9 2.7.2 at89s51 單片機(jī)管腳說明 .10 三 模塊最終方案的設(shè)計(jì).12 3.1 總體設(shè)計(jì)思路.12 3.2 功能介紹 .12 3.3 搶答器的軟件設(shè)計(jì) .12 3.4 數(shù)碼顯示軟件設(shè)計(jì) .13 四 系統(tǒng)調(diào)試與仿真.13 4.1 軟件調(diào)試問題分析 .14 4.2 proteus 仿真 .14 五 電路板的制作與檢查.15 六 總結(jié).16 參考文獻(xiàn).16 附 錄.17 附 錄 一 主程序 .22 附 錄 二 元件清單 .28 附 錄 三 proteus 仿真原理圖 29

5、基于 at89s51 的八路數(shù)顯搶答器 摘要摘要:本方案以 at89s51 單片機(jī)作為主控核心,與晶振、數(shù)碼管、蜂鳴器 等構(gòu)成八路搶答器,利用了單片機(jī)的延時(shí)電路、按鍵復(fù)位電路、時(shí)鐘電路、定 時(shí)/中斷等電路,設(shè)計(jì)的八路搶答器具有實(shí)時(shí)顯示搶答選手的號(hào)碼和搶答時(shí)間的 特點(diǎn),還有復(fù)位電路,使其再開始新的一輪的答題和比賽,同時(shí)還利用匯編語 言編程,使其實(shí)現(xiàn)一些基本的功能。 關(guān)鍵詞關(guān)鍵詞:單片機(jī)、at89s51、搶答器 一一 設(shè)計(jì)目的與任務(wù)設(shè)計(jì)目的與任務(wù) 1 1 課程設(shè)計(jì)目的課程設(shè)計(jì)目的 (1)結(jié)合所學(xué)的電子電路的理論知識(shí)完成數(shù)碼顯示八路搶答器課程設(shè)計(jì); (2)通過該設(shè)計(jì)學(xué)會(huì)并掌握常用電子元器件的選擇和使

6、用方法; (3)提高自己綜合分析問題和解決問題的能力。 2 2 課程設(shè)計(jì)任務(wù)課程設(shè)計(jì)任務(wù) 在比賽開始,主持人讀完題之后按下總開關(guān),即計(jì)時(shí)開始,此時(shí)數(shù)碼管 開始進(jìn)行 30s 的倒計(jì)時(shí),直到有一個(gè)選手搶答時(shí),對(duì)應(yīng)的會(huì)在數(shù)碼管上顯示出 該選手的編號(hào)和搶答所用的時(shí)間,同時(shí)蜂鳴器也會(huì)發(fā)出聲音,以提示有人搶答 本題,如果在規(guī)定的 60s 時(shí)間內(nèi)沒有做出搶答,則此題作廢,即開始重新一輪 的搶答。在搶答和回答時(shí)間的最后 5s,蜂鳴器都會(huì)給予報(bào)警提示。 二二 各模塊的選擇和論證各模塊的選擇和論證 2.12.1搶答器顯示模塊選擇搶答器顯示模塊選擇 顯示模塊主要是顯示搶答的時(shí)間,組別號(hào)碼等。考慮有以下兩種顯示方案。

7、 方案一:使用液晶屏顯示時(shí)間。液晶顯示屏(lcd)具有輕薄短小、低耗電 量、無輻射危險(xiǎn),平面直角顯示以及影像穩(wěn)定不閃爍等優(yōu)勢(shì),可視面積大,畫 面效果好,分辨率高,抗干擾能力強(qiáng)的特點(diǎn)。但由于只需要顯示時(shí)間和轉(zhuǎn)向、 相數(shù)這樣的數(shù)字,信息量比較少,且由于液晶是以點(diǎn)陣的模式顯示各種符號(hào), 需要利用控制芯片創(chuàng)建字符庫,編程工作量大,控制器的資源占用較多,其成 本也偏高。在使用時(shí),不能有靜電干擾,否則易燒壞液晶顯示芯片,不易維護(hù)。 方案二:在使用傳統(tǒng)的數(shù)碼管顯示。數(shù)碼管具有:低能耗、低損耗、低壓、 壽命長、耐老化、防曬、防潮、防火、防高(低)溫,對(duì)外界環(huán)境要求低,易 于維護(hù),同時(shí)其精度高,稱量快,精確可靠

8、,操作簡單。數(shù)碼顯示是采用 bcd 編碼顯示數(shù)字,程序編譯容易,資源占用較少。 根據(jù)以上的論述,選擇采用方案二。 顯示功能與硬件關(guān)系極大,當(dāng)硬件固定后,如何在不引起操作者誤解的前 提下提供盡可能豐富的信息,全靠軟件來解決。在這里我們使用的是七段數(shù)碼 管顯示,通常在顯示上我們采用的方法一般包括兩種:一種是靜態(tài)顯示,一種 是動(dòng)態(tài)顯示。其中靜態(tài)顯示的特點(diǎn)是顯示穩(wěn)定不閃爍,程序編寫簡單,但占用 端口資源多;動(dòng)態(tài)顯示的特點(diǎn)是:顯示穩(wěn)定性沒靜態(tài)好,程序編寫復(fù)雜,但是 相對(duì)靜態(tài)顯示而言占用端口資源少。在本設(shè)計(jì)中根據(jù)實(shí)際情況采用的是動(dòng)態(tài)顯 示方法。4 位七段數(shù)碼管顯示電路如下圖所示。 圖 2-1 4 位七段數(shù)

9、碼管顯示電路圖 上圖中數(shù)碼管采用的是 4 位一體七段共陽數(shù)碼管,其中 ah 段分別接到單 片機(jī)的 p0 口,由單片機(jī)輸出的 p0 口數(shù)據(jù)來決定段碼值,位選碼 com1,com3,com4 分別接到單片機(jī)的 p2.0,p2.1,p2.2,由單片機(jī)來決定當(dāng)前 該顯示的是哪一位。在圖中還有八個(gè)電阻,連接在 p0 口上,用作 p0 口的上拉 電阻,保證 p0 口沒有數(shù)據(jù)輸出時(shí)候處于高電平狀態(tài)。 通過查表法,將其在數(shù)碼管上顯示出來,其中 p0 口為字型碼輸入端,p2 口低 3 位為字選段輸入段。在這里我們通過查表將字型碼送給 7 段數(shù)碼管顯示 的數(shù)字。 2.22.2 控制器選擇控制器選擇 控制器主要用于

10、對(duì)顯示、搶答、音樂、計(jì)分等模塊進(jìn)行控制??刂破鞯倪x 擇有以下兩鐘方案。 方案一:采用 fpga(現(xiàn)場(chǎng)可編程門列陣)作為系統(tǒng)的控制器。fpga 可以實(shí) 現(xiàn)各種復(fù)雜的邏輯功能,規(guī)模大,密度高,它將所有器件集成在一塊芯片上, 減小了體積,提高了穩(wěn)定性,并且可以應(yīng)用 eda 軟件仿真、調(diào)試,易于進(jìn)行功 能擴(kuò)展。fpga 采用并行的輸入輸出方式,提高了系統(tǒng)的處理速度,適合作為大 規(guī)模實(shí)時(shí)系統(tǒng)的控制核心。但由于本設(shè)計(jì)對(duì)數(shù)據(jù)處理的速度要求不高,fpga 的 高速處理的優(yōu)勢(shì)得不到充分體現(xiàn),并且由于其集成度高,使其成本偏高,同時(shí) 由于芯片的引腳較多,實(shí)物硬件電路板布線復(fù)雜,加重了電路設(shè)計(jì)和實(shí)際焊接 的工作。 方

11、案二:采用 atmel 公司的 at89s51 作為系統(tǒng)控制器的 cpu 方案。單片機(jī) 算術(shù)運(yùn)算功能強(qiáng),軟件編程靈活、自由度大,可以用軟件編程實(shí)現(xiàn)各種算法和 邏輯控制,并且由于其功耗低、體積小、技術(shù)成熟和成本低等優(yōu)點(diǎn),使其在各 個(gè)領(lǐng)域應(yīng)用廣泛。 基于以上分析,我選擇采用方案二。 2.32.3 鍵盤選擇鍵盤選擇 鍵盤是單片機(jī)不可缺少的輸入設(shè)備,是實(shí)現(xiàn)人機(jī)對(duì)話的紐帶。鍵盤按結(jié)構(gòu) 形式可以分為非編碼鍵盤和編碼鍵盤,前者用軟件方法產(chǎn)生鍵碼,而后者則用 硬件方法來產(chǎn)生鍵碼。在單片機(jī)中使用的都是非編碼鍵盤,因?yàn)榉蔷幋a鍵盤結(jié) 構(gòu)簡單,成本低廉,非編碼鍵盤的類型很多,常用的有獨(dú)立式鍵盤,行列式鍵 盤等。 方案

12、一:獨(dú)立式鍵盤 鍵盤接口中使用多少根 i/o 線,鍵盤中就有幾個(gè)按鍵,鍵盤接口使用了 8 根 i/o 口線,該鍵盤就有 8 個(gè)按鍵,這種類型的鍵盤,其按鍵比較少,且鍵盤 中各按鍵的工作互不干擾。因此可以根據(jù)實(shí)際需要對(duì)鍵盤中的按鍵靈活的編碼。 如圖 2-2。 最簡單的編碼方式就是根據(jù) i/o 輸入口所直接反映的相應(yīng)按鍵,按下的狀 態(tài)進(jìn)行編碼,稱按鍵直接狀態(tài)碼,對(duì)于這樣編碼的獨(dú)立式鍵盤,cpu 可以通過 直接讀取 i/o 口的狀態(tài)來獲取按鍵的直接狀態(tài)編碼值,根據(jù)這個(gè)值直接進(jìn)行按 鍵識(shí)別,這樣形式的鍵盤結(jié)構(gòu)簡單,按鍵識(shí)別容易。 獨(dú)立式鍵盤的缺點(diǎn)是需要占用比較多的 i/o 口線,當(dāng)單片機(jī)應(yīng)用系統(tǒng)鍵盤

13、中需要的按鍵比較少或 i/o 口線比較富余時(shí),可以采用這樣類型的鍵盤。 p1 1 2 3 4 5 6 7 8 圖 2-2 獨(dú)立式鍵盤 方案二:行列式鍵盤 行列式鍵盤是用 n 條 i/o 線作為行線,m 條 i/o 線作為列線組成的鍵盤, 在行線和列線的每個(gè)交叉點(diǎn)上。這種形式的鍵盤結(jié)構(gòu),能夠有效的提高單片機(jī) 系統(tǒng)中 i/o 的利用率,列線接 p1.0p1.3 行線接 p1.4p1.7,行列適用于按鍵 輸入多的情況。 cpu 對(duì)鍵盤的掃描可以采用取程序控制的隨機(jī)方式,即只有在 cpu 空閑是 時(shí)才去掃描鍵盤,響應(yīng)操作人員的鍵盤輸入,即利用單片機(jī)內(nèi)部定時(shí)器每隔一定 時(shí)間對(duì)鍵盤掃描一次,這樣控制方式,

14、不管鍵盤上有無鍵閉合,cpu 總是定時(shí) 的關(guān)心鍵盤狀態(tài)。在大多數(shù)情況下,cpu 對(duì)鍵盤可能進(jìn)行空掃描。為了提高 cpu 的效率而又能及時(shí)響應(yīng)鍵盤輸入,可以采用中斷方式,既 cpu 平時(shí)不必掃描鍵 盤,只要當(dāng)鍵盤上有鍵盤閉合時(shí)就產(chǎn)生中斷請(qǐng)求,向 cpu 申請(qǐng)中斷后,立即對(duì) 鍵盤上有鍵盤進(jìn)性掃描,識(shí)別閉合鍵,并做相應(yīng)的處理。 圖 2-3 行列式鍵盤 p 1.0 p 1.1 p 1.2 p 1.3 p 1.4 p 1.5 p 1.6 p 1.7 圖 2-4 搶答按鍵及調(diào)整按鍵 2.42.4 時(shí)鐘頻率電路的設(shè)計(jì)時(shí)鐘頻率電路的設(shè)計(jì) 單片機(jī)必須在時(shí)鐘的驅(qū)動(dòng)下才能工作。在單片機(jī)內(nèi)部有一個(gè)時(shí)鐘振蕩電路, 只需

15、要外接一個(gè)振蕩源就能產(chǎn)生一定的時(shí)鐘信號(hào)送到單片機(jī)內(nèi)部的各個(gè)單元, 決定單片機(jī)的工作速度。時(shí)鐘電路如下圖所示。 圖 2-5 外部振蕩源電路 一般選用石英晶體振蕩器。此電路在加電大約延遲 10ms 后振蕩器起振,在 xtal2 引腳產(chǎn)生幅度為 3v 左右的正弦波時(shí)鐘信號(hào),其振蕩頻率主要由石英晶振 的頻率確定。電路中兩個(gè)電容 c1,c2 的作用有兩個(gè):一是幫助振蕩器起振;二 是對(duì)振蕩器的頻率進(jìn)行微調(diào)。 單片機(jī)在工作時(shí),由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯 單元的時(shí)鐘信號(hào)的周期稱為時(shí)鐘周期。其大小是時(shí)鐘信號(hào)頻率的倒數(shù)。圖中時(shí) 鐘頻率為 12mhz。 2.52.5 復(fù)位電路的設(shè)計(jì)復(fù)位電路的設(shè)

16、計(jì) 單片機(jī)的第 9 腳 rst 為硬件復(fù)位端,只要將該端持續(xù) 4 個(gè)機(jī)器周期的高電 平即可實(shí)現(xiàn)復(fù)位,復(fù)位后單片機(jī)的各狀態(tài)都恢復(fù)到初始化狀態(tài),其電路圖如下 所示: 圖 2-6 復(fù)位電路 2.62.6 報(bào)警電路報(bào)警電路 我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單 片機(jī)某個(gè)口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的巨型 波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時(shí)程序控制“高”“低” 電平的持續(xù)時(shí)間,就能改變輸出頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音。 本文設(shè)計(jì)如下圖所示。圖中單片機(jī)的 14 腳輸出具有復(fù)合功能,此處用到了 單片機(jī) 17 腳的 io 端口功能

17、,單片機(jī)通過內(nèi)部定時(shí)器的操作實(shí)現(xiàn)交替變換的波 形輸出驅(qū)動(dòng)揚(yáng)聲器發(fā)聲。 圖 2-7 發(fā)聲電路 2.72.7 at89s51at89s51 簡介簡介 2.7.12.7.1 at89s51at89s51 單片機(jī)的結(jié)構(gòu)單片機(jī)的結(jié)構(gòu) at89s51 單片機(jī)是美國 atmel 公司生產(chǎn)低電壓,高性能 cmos 8 位單片機(jī), 片內(nèi)含 4k bytes 的可反復(fù)擦寫的只讀程序存儲(chǔ)器(eprom)和 128 bytes 的隨 機(jī)存取數(shù)據(jù)存儲(chǔ)器(ram),器件采用 atmel 公司的高密度、非易失性存取技術(shù)生 產(chǎn),兼容標(biāo)準(zhǔn) mcs-51 指令系統(tǒng),片內(nèi)置通用 8 位中央處理器(cpu)和 flash 存儲(chǔ)單元,

18、功能強(qiáng)大。at89s51 單片機(jī)可提供許多高性價(jià)比的應(yīng)用場(chǎng)合,可靈 活應(yīng)用于各種控制領(lǐng)域。 圖 2-8 為 at89s51 單片機(jī)的基本組成功能方塊圖。由圖可見,在這一塊芯 片上,集成了一臺(tái)微型計(jì)算機(jī)的主要組成部分,其中包括 cpu、存儲(chǔ)器、可編 程 i/o 口、定時(shí)器/計(jì)數(shù)器、串行口等,各部分通過內(nèi)部總線相連。下面介紹幾 個(gè)主要部分。 振蕩器和時(shí)序 osc程序存儲(chǔ)器 4 kb rom 數(shù)據(jù)存儲(chǔ)器 256 b ram/sfr 定時(shí)器/計(jì)數(shù)器 2 16 at89s51cpu 64 kb 總線 擴(kuò)展控 制器 可編程 i/o可編程全雙工串 行口 內(nèi)中斷 圖 2-8 單片機(jī)結(jié)構(gòu)框圖 2.7.22.7.

19、2 at89s51at89s51 單片機(jī)管腳說明單片機(jī)管腳說明 圖 2-9 at89s51 單片機(jī)管腳圖 atmel 公司的 at89s51 是一種高效微控制器。采用 40 引腳雙列直插封裝形 式。at89s51 單片機(jī)是高性能單片機(jī),因?yàn)槭芤_數(shù)目的限制,所以有不少引 腳具有第二功能。 vcc:供電電壓。 gnd:接地。 p0 口:p0 口為一個(gè) 8 位漏級(jí)開路雙向 i/o 口,每腳可吸收 8ttl 門電流。 當(dāng) p1 口的管腳第一次寫 1 時(shí),被定義為高阻輸入。p0 能夠用于外部程序數(shù)據(jù) 存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在 flash 編程時(shí),p0 口作為原 碼輸入口,當(dāng) fla

20、sh 進(jìn)行校驗(yàn)時(shí),p0 輸出原碼,此時(shí) p0 外部必須被拉高。 p1 口:p1 口是一個(gè)內(nèi)部提供上拉電阻的 8 位雙向 i/o 口,p1 口緩沖器能 接收輸出 4ttl 門電流。p1 口管腳寫入 1 后,被內(nèi)部上拉為高,可用作輸入, p1 口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在 flash 編程和校驗(yàn)時(shí),p1 口作為第八位地址接收。 p2 口:p2 口為一個(gè)內(nèi)部上拉電阻的 8 位雙向 i/o 口,p2 口緩沖器可接收, 輸出 4 個(gè) ttl 門電流,當(dāng) p2 口被寫 1 時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為 輸入。并因此作為輸入時(shí),p2 口的管腳被外部拉低,將輸出電流。

21、這是由于內(nèi) 部上拉的緣故。p2 口當(dāng)用于外部程序存儲(chǔ)器或 16 位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行 存取時(shí),p2 口輸出地址的高八位。在給出地址 1 時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng) 對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),p2 口輸出其特殊功能寄存器的內(nèi)容。 p2 口在 flash 編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 p3 口:p3 口管腳是 8 個(gè)帶內(nèi)部上拉電阻的雙向 i/o 口,可接收輸出 4 個(gè) ttl 門電流。當(dāng) p3 口寫入 1 后,它們被內(nèi)部上拉為高電平,并用作輸入。作為 輸入,由于外部下拉為低電平,p3 口將輸出電流。 p3 口也可作為 at89s51 的一些特殊功能口,如下表所示: p3

22、 口管腳 備選功能 p3.0 rxd(串行輸入口) p3.1 txd(串行輸出口) p3.2 int0(外部中斷 0) p3.3 int1(外部中斷 1) p3.4 t0(記時(shí)器 0 外部輸入) p3.5 t1(記時(shí)器 1 外部輸入) p3.6 (外部數(shù)據(jù)存儲(chǔ)器寫選通)wr p3.7 (外部數(shù)據(jù)存儲(chǔ)器讀選通)rd p3 口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。 ale/:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許端的輸出電平用于鎖存prog 地址的地址字節(jié)。在 flash 編程期間,此引腳用于輸入編程脈沖。在平時(shí),ale 端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的 1/6。因此它可 用作

23、對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù) 存儲(chǔ)器時(shí),將跳過一個(gè) ale 脈沖。如想禁止 ale 的輸出可在 sfr8eh 地址上置 0。此時(shí), ale 只有在執(zhí)行 movx,movc 指令是 ale 才起作用。 psen:外部程序存儲(chǔ)器的選通信號(hào)端。在由外部程序存儲(chǔ)器取指期間,每 個(gè)機(jī)器周期兩次 psen 有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/psen 信號(hào)將不出現(xiàn)。 /vp:當(dāng)保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000h-eaea ffffh) ,不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式 1 時(shí),將內(nèi)部鎖定為ea reset;當(dāng)端保持高電平時(shí),此間內(nèi)部程序

24、存儲(chǔ)器。在 flash 編程期間,此ea 引腳也用于施加 12v 編程電源。 xtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 xtal2:反向振蕩器的輸出,如采用外部時(shí)鐘源驅(qū)動(dòng)器件,應(yīng)不接。 三三 模塊最終方案的設(shè)計(jì)模塊最終方案的設(shè)計(jì) 3.13.1 總體設(shè)計(jì)思路總體設(shè)計(jì)思路 主控制器模塊:采用 at89s51 單片機(jī)控制 搶答器顯示模塊:數(shù)碼管顯示 電源方案的選擇:采用 5v 電源供電 搶答器鍵盤模塊:獨(dú)立式鍵 3.23.2 功能介紹功能介紹 如果想調(diào)節(jié)搶答時(shí)間或答題時(shí)間,按“搶答時(shí)間調(diào)節(jié)”鍵或“回答時(shí)間調(diào) 節(jié)”鍵進(jìn)入調(diào)節(jié)狀態(tài),此時(shí)會(huì)顯示現(xiàn)在設(shè)定的搶答時(shí)間或回答時(shí)間值,如果想 加

25、1 秒按一下“加 1 秒”鍵,如果想減 1 秒按一下“減 1 秒”鍵,時(shí)間 led 上 會(huì)顯示改變后的時(shí)間,調(diào)整范圍為 0s99s,0s 時(shí)再減 1s 會(huì)跳到 99,99s 時(shí)再 加 1s 會(huì)變到 0s。 主持人按“搶答開始”鍵,會(huì)有提示音,并立刻進(jìn)入搶答倒計(jì)時(shí)(預(yù)設(shè) 30s 搶答時(shí)間) ,如有選手搶答,會(huì)有提示音,并會(huì)顯示其號(hào)數(shù)并立刻進(jìn)入回答倒計(jì) 時(shí)(預(yù)設(shè) 60s 回答時(shí)間) ,不進(jìn)行搶答查詢,所以第一個(gè)按搶答的選手有效。倒 數(shù)時(shí)間到小于 5s 會(huì)每秒響一下提示音。 如倒計(jì)時(shí)期間,主持人想停止倒計(jì)時(shí)可以隨時(shí)按“停止”按鍵,系統(tǒng)會(huì)自動(dòng) 進(jìn)入準(zhǔn)備狀態(tài),等待主持人按“搶答開始”進(jìn)入下次搶答計(jì)時(shí)。

26、如果主持人未按“搶答開始”鍵,而有人按了搶答按鍵,犯規(guī)搶答,led 上 不斷閃爍 ff 和犯規(guī)號(hào)數(shù)并響個(gè)不停,直到按下“停止”鍵為止。 3.33.3 搶答器的軟件設(shè)計(jì)搶答器的軟件設(shè)計(jì) 系統(tǒng)軟件由主程序和 int0 中斷服務(wù)組成。主程序由驗(yàn)鍵,違規(guī)顯示,倒計(jì) 時(shí)等功能子程序組成,系統(tǒng)完成初始化后循環(huán)檢查各個(gè)功能當(dāng)用戶使用某個(gè)功 能時(shí),按下相應(yīng)的按鈕(或開關(guān))單片機(jī)進(jìn)入相應(yīng)的功能處理。int0 中斷服務(wù) 程序完成搶答信號(hào)采樣和識(shí)別處理。 該智能搶答器以 at89s51 單片機(jī)為控制核心,控制精度較高,操作誤差主 要來自晶振自身所造成的誤差。其他外圍電路包括復(fù)位電路、時(shí)鐘電路、報(bào)警 電路、led 顯

27、示電路、搶答按鍵、功能設(shè)置鍵等。該智能搶答器具有計(jì)時(shí)記憶 功能,一次時(shí)間設(shè)置完,復(fù)位后不需重新進(jìn)行時(shí)間設(shè)定;通過按鍵掃描輸出按 鍵信息,并通過單片機(jī)將它轉(zhuǎn)化為在七段數(shù)碼管上顯示的字形符。單片機(jī)的 p1 口為 8 組搶答按鍵的輸入口,p0.0p0.6 為數(shù)碼管的段選口,p2.0p2.2 為數(shù)碼 管的片選口。外部中斷 int0 和 int1 分別為搶答時(shí)間和回答時(shí)間的調(diào)整口, p3.4 和 p3.5 分別實(shí)現(xiàn)時(shí)間調(diào)整時(shí)的加 1 和減 1 功能;p3.6 為報(bào)警電路的控制 口。 3.43.4 數(shù)碼顯示數(shù)碼顯示 數(shù)碼顯示管用來作為時(shí)間的顯示輸出,一般用 7 段數(shù)碼顯示管。本次設(shè)計(jì) 中采用 7 段共陽數(shù)

28、碼顯示管應(yīng)用簡單、可靠性高、成本低,作為顯示輸出。連 接時(shí)段選信號(hào)接在 p0 口的 p0.0p0.6 七個(gè) i/o 口上,p1 口是準(zhǔn)雙向 i/o 接口 在輸出驅(qū)動(dòng)部分具有驅(qū)動(dòng) 4 個(gè) ttl 負(fù)載的能力,即輸出電流不大于 400a,所 以在接電阻時(shí)選擇接 510 限流電阻。而在位選方面采 用 p2 口的 p2.0用單片機(jī) p2.2 三個(gè) i/o 口作為位選信號(hào)的輸出口。 四四 系統(tǒng)調(diào)試與仿真系統(tǒng)調(diào)試與仿真 系統(tǒng)調(diào)試包括硬件調(diào)試和軟件調(diào)試,而且兩者是密不可分的。我們?cè)O(shè)計(jì)好 的硬件電路和軟件程序,只有經(jīng)過聯(lián)合調(diào)試,才能驗(yàn)證其正確性;軟硬件的配 人情況以及是否達(dá)到設(shè)計(jì)任務(wù)的要求,也只有經(jīng)過調(diào)試,才

29、能發(fā)現(xiàn)問題并加以 解決、完善,最終開發(fā)成實(shí)用產(chǎn)品。 硬件調(diào)試分單元電路調(diào)試和聯(lián)機(jī)調(diào)試,單元電路試驗(yàn)在硬件電路設(shè)計(jì)時(shí)已 經(jīng)進(jìn)行,這里的調(diào)試只是將其制成印刷電路板后試驗(yàn)電路是否正確,并排除一 些加工工藝性錯(cuò)誤(如錯(cuò)線、開路、短路等) 。這種調(diào)試可單獨(dú)模擬進(jìn)行,也可 通過開發(fā)裝置由軟件配合進(jìn)行,硬件聯(lián)機(jī)調(diào)試則必須在系統(tǒng)軟件的配合下進(jìn)行。 軟件調(diào)試一般包括分塊調(diào)試和聯(lián)機(jī)調(diào)試兩個(gè)階段。程序的分塊調(diào)試一般在 單片機(jī)開發(fā)裝置上進(jìn)行,可根據(jù)所調(diào)程序功能塊的入口參量初值編制一個(gè)特殊 的程序段,并連同被調(diào)程序功能塊一起在開發(fā)裝置上運(yùn)行;也可配合對(duì)應(yīng)硬件 電路單獨(dú)運(yùn)行某程序功能塊,然后檢查是否正確,如果執(zhí)行結(jié)果與預(yù)

30、想的不一 致,可以通過單步運(yùn)行或設(shè)置斷點(diǎn)的方法,查出原因并加以改正,直到運(yùn)行結(jié) 果正確為止。這時(shí)該 程序功能塊已調(diào)試完畢,可去掉附加程序段。其它程序功 能塊可按此法進(jìn)行調(diào)試。程序聯(lián)機(jī)調(diào)試就是將已調(diào)試好的各程序功能塊按總體 結(jié)構(gòu)聯(lián)成一個(gè)完整程序,在所研制的硬件電路上運(yùn)行。從而試驗(yàn)程序整體運(yùn)行 的完整性、正確性和與硬件電路的配合情況。在聯(lián)調(diào)中可能會(huì)有某些支路上的 程序、功能塊因受條件制約而得不到相應(yīng)的輸入?yún)?shù),這時(shí),調(diào)試人員應(yīng)創(chuàng)造 條件進(jìn)行模擬調(diào)試。在聯(lián)調(diào)中如發(fā)現(xiàn)硬件問題也應(yīng)及時(shí)修正,直到單片機(jī)系統(tǒng) 的軟件、硬件全部調(diào)試成功為止。系統(tǒng)調(diào)試完成后,還要進(jìn)行一段時(shí)間的試運(yùn) 行,從而檢驗(yàn)系統(tǒng)的穩(wěn)定性和抗

31、干擾能力,驗(yàn)證系統(tǒng)功能是否達(dá)到設(shè)計(jì)要求, 是否達(dá)到預(yù)期的效果。 4.14.1 軟件調(diào)試問題分析軟件調(diào)試問題分析 數(shù)碼管顯示問題:本次設(shè)計(jì)的最終方案是采用數(shù)碼管顯示屏實(shí)現(xiàn)顯示功能, 最初數(shù)碼管顯示不正常,出現(xiàn)閃爍現(xiàn)象。通過調(diào)試發(fā)現(xiàn)這是由于延時(shí)時(shí)間選擇 不當(dāng)會(huì)使人眼產(chǎn)生視覺暫留效果,每一次顯示時(shí)都必須加入適當(dāng)?shù)臅r(shí)間延時(shí)。 由于一開始所選用的延時(shí)時(shí)間太短因此出現(xiàn)閃爍現(xiàn)象,在增加顯示延時(shí)之后, 數(shù)碼管顯示正常。 蜂鳴器異常啟動(dòng)問題:蜂鳴器的啟動(dòng)/關(guān)閉是通過單片機(jī)輸出的控制信號(hào)來 實(shí)現(xiàn)的,當(dāng)前時(shí)間與鬧鐘設(shè)置時(shí)間比較吻合時(shí),單片機(jī)將對(duì)鬧鈴控制口執(zhí)行取 反命令,從而啟動(dòng)蜂鳴器發(fā)聲。一開始編寫程序時(shí),沒有對(duì)控

32、制口的最初狀態(tài) 作正確設(shè)置,由于系統(tǒng)開機(jī)復(fù)位后,鬧鈴控制口處于高電平狀態(tài),因此出現(xiàn)一 開機(jī)蜂鳴器就處于啟動(dòng)狀態(tài)的情況。通過在主程序最開始加入對(duì)鬧鈴控制口取 零命令后,蜂鳴器啟動(dòng)/關(guān)閉控制恢復(fù)正常。 按鍵消抖問題:在最初編寫程序時(shí),鍵盤控制部分按照常例加入了按鍵消 抖程序。在實(shí)際調(diào)試中,發(fā)現(xiàn)按鍵出現(xiàn)反應(yīng)不靈敏現(xiàn)象。這是因?yàn)樵阪I盤控制 程序中,除了消抖程序外,還加入了按鍵提示音程序(每次按壓鍵盤時(shí),蜂鳴 器發(fā)出“嘩”的一聲提示音) 。由于在調(diào)用提示音子程序時(shí),實(shí)際上已實(shí)現(xiàn)了一 次時(shí)間的延時(shí),因此再加入按鍵消抖程序的延時(shí)后,致使延時(shí)時(shí)間過長而出現(xiàn) 按鍵反應(yīng)不靈敏問題。通過調(diào)試發(fā)現(xiàn)提示音子程序本身所產(chǎn)

33、生的延時(shí)已能夠滿 足按鍵消抖時(shí)間延遲的要求,因此在鍵盤控制程序中無需再加入專門的按鍵消 抖程序。在去除按鍵消抖程序后,按鍵控制靈敏度恢復(fù)正常。 4.24.2 proteusproteus 仿真仿真 proteus 軟件是來自英國 labcenter electronics 公司的 eda 工具軟件, proteus 軟件除了其具有和其它 eda 工具一樣的原理布圖,pcb 自動(dòng)或人工布線 及電路仿真的功能外, 其革命性的功能是,他的電路仿真是互動(dòng)的,針對(duì)微處理 器的應(yīng)用,還可以直接在基于原理圖的虛擬原型上編程,并實(shí)現(xiàn)軟件源碼級(jí)的實(shí) 時(shí)調(diào)試,如有顯示及輸出, 還能看到運(yùn)行后輸入輸出的效果,配合系

34、統(tǒng)配置的虛 擬儀器如示波器,邏輯分析儀等,protues 的 isis 是一款 labcenter 出品的電路 分析實(shí)物仿真系統(tǒng),可仿真各種電路和 ic,并支持單片機(jī),元件庫齊全,使用 方便,是不可多得的專業(yè)的單片機(jī)軟件仿真系統(tǒng)。 該軟件的特點(diǎn): 1. 全部滿足我們提出的單片機(jī)軟件仿真系統(tǒng)的標(biāo)準(zhǔn),并在同類產(chǎn)品中具有 明顯的優(yōu)勢(shì)。 2.具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的 仿真、rs-232 動(dòng)態(tài)仿真、c 調(diào)試器、spi 調(diào)試器、鍵盤和 lcd 系統(tǒng)仿真的功能; 有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。 3. 目前支持的單片機(jī)類型有:68000 系列、805

35、1 系列、avr 系列、pic12 系列、pic16 系列、pic18 系列、z80 系列、hc11 系列以及各種外圍芯片。 4. 支持大量的存儲(chǔ)器和外圍芯片。總之該軟件是一款集單片機(jī)和 spice 分 析于一身的仿真軟件,功能極其強(qiáng)大 ,可仿真 51、avr、pic。 五五 電路板的制作與檢查電路板的制作與檢查 在電路板的制作中,首先要進(jìn)行線路的排布。利用 protel 軟件模擬實(shí)際電 路板的線路走向,盡量避免線路出現(xiàn)交叉短路,電源線路盡量安排在電路板的 最外圈。pcb 板刻錄完成之后,開始進(jìn)行焊接工作。焊接完后進(jìn)行電路板檢查, 將原線路圖與實(shí)際焊接的電路板進(jìn)行對(duì)比,由于線路不多,所以用萬用

36、表的歐 姆檔或是短路聲響指示功能來做焊點(diǎn)的檢測(cè),如此可以避免焊接時(shí)漏焊、虛焊 和配線錯(cuò)誤的問題,同時(shí)保證了所制作出來的線路與原設(shè)計(jì)線路的一致性。 一般來說,造成硬件問題的首要問題就是焊接了,也就是說焊接的好與壞 直接響產(chǎn)品的正常運(yùn)行。造成焊接質(zhì)量不高的常見原因是: 1. 焊錫用量過多,形成焊點(diǎn)的錫堆積;焊錫過少,不足以包裹焊點(diǎn)。 2.冷焊。焊接時(shí)烙鐵溫度過低或加熱時(shí)間不足,焊錫未完全熔化、浸潤、焊 錫表面不光亮(不光滑),有細(xì)小裂紋。 3.夾松香焊接,焊錫與元器件或印刷板之間夾雜著一層松香,造成電連接不 良。若夾雜加熱不足的松香,則焊點(diǎn)下有一層黃褐色松香膜;若加熱溫度太高, 則焊點(diǎn)下有一層碳化

37、松香的黑色膜。對(duì)于有加熱不足的松香膜的情況,可以用烙 鐵進(jìn)行補(bǔ)焊。對(duì)于已形成黑膜的,則要吃凈焊錫,清潔被焊元器件或印刷板表 面,重新進(jìn)行焊接才行。 4.焊錫連橋。指焊錫量過多,造成元器件的焊點(diǎn)之間短路。這在對(duì)超小元器 件及細(xì)小印刷電路板進(jìn)行焊接時(shí)要尤為注意。 5.焊劑過量,焊點(diǎn)明圍松香殘?jiān)芏?。?dāng)少量松香殘留時(shí),可以用電烙鐵再 輕輕加熱一下,讓松香揮發(fā)掉,也可以用蘸有無水酒精的棉球,擦去多余的松香或 焊劑。 6.焊點(diǎn)表面的焊錫形成尖銳的突尖。這多是由于加熱溫度不足或焊劑過少, 以及烙鐵離開焊點(diǎn)時(shí)角度不當(dāng)浩成的內(nèi)。 最小系統(tǒng)的電路不工作,首先應(yīng)該確認(rèn)電源電壓是否正常。用電壓表測(cè)量 接地引腳跟電源

38、引腳之間的電壓,看是否符合電源電壓,常用的是 5v 左右。接 下來就是檢測(cè)復(fù)位引腳的電壓是否正常,ea 引腳的電壓要正常為 5v 左右。 六六 總結(jié)總結(jié) 通過這次畢業(yè)設(shè)計(jì),我明白學(xué)習(xí)是一個(gè)長期積累的過程,在以后的工作、 生活中都應(yīng)該不斷的學(xué)習(xí),努力提高自己知識(shí)和綜合素質(zhì)。這次制作與設(shè)計(jì)不 僅涉及到我們以前所學(xué)到的單片機(jī),模擬電子技術(shù),數(shù)字電子技術(shù),高等數(shù)學(xué) 等課程的知識(shí)還涉及到很多我們的選修及課外的知識(shí)像實(shí)訓(xùn)課上學(xué)到的手工焊 接技術(shù)等等知識(shí)。第二是理論聯(lián)系實(shí)際性太強(qiáng),把所學(xué)的搜集到得知識(shí)運(yùn)用的 實(shí)際中不是一件容易的事,不僅由元件從課本上的符號(hào)到實(shí)物的認(rèn)識(shí)還是理論 的測(cè)量結(jié)果與實(shí)際值的誤差。 畢

39、業(yè)設(shè)計(jì)是我作為一名學(xué)生即將完成學(xué)業(yè)的最后一次作業(yè),他既是對(duì)學(xué)校 所學(xué)知識(shí)的全面總結(jié)和綜合應(yīng)用,又為今后走向社會(huì)的實(shí)際操作應(yīng)用鑄就了一 個(gè)良好開端,畢業(yè)設(shè)計(jì)是我對(duì)所學(xué)知識(shí)理論的檢驗(yàn)與總結(jié),能夠培養(yǎng)和提高設(shè) 計(jì)者獨(dú)立分析和解決問題的能力;畢業(yè)設(shè)計(jì)提高了我理論聯(lián)系實(shí)際的能力更在 知識(shí)的鞏固與實(shí)際的操作上的銜接提高了我的能力,畢業(yè)設(shè)計(jì)中遇到的困難與 挫折以及解決這些問題的思路與方法更增加了我對(duì)以后工作中遇到困難我能克 服解決的信心,也讓我積累了經(jīng)驗(yàn),為以后的工作打下了良好的基礎(chǔ),同時(shí)也 培養(yǎng)了我遇到突發(fā)狀況要穩(wěn)定冷靜的精神,也培養(yǎng)了我學(xué)會(huì)怎么與別人合作的 方法,怎么解決與合作的伙伴意見不同一時(shí)狀況,為

40、以后怎么和同事相處好奠 定了基礎(chǔ)。這次畢業(yè)設(shè)計(jì)業(yè)也讓我懂得了分析問題,才能解決問題的道理,通 過了這次更增加了我以后能夠干好自己工作的信心。 【參考文獻(xiàn)】 1模擬電子技術(shù) 江曉安著;西安電子科技大學(xué)出版社 2數(shù)字電子技術(shù) 康華光著;高等教育出版式社 3單片機(jī)技術(shù)任務(wù)驅(qū)動(dòng)式教程 徐進(jìn)強(qiáng) 、左翠紅著;天津大學(xué)出版社 4電子設(shè)計(jì)與仿真技術(shù) 李忠波、袁宏等著;機(jī)械工業(yè)出版社 5單片機(jī)原理及接口技術(shù) 李全利、遲榮強(qiáng)著 高等教育出版社 6基于 proteus 的單片機(jī)可視軟硬件仿真 林志琦著 北京航空航天大 學(xué)出版社 7單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)技術(shù) 張齊著 電子工業(yè)出版社 附附 錄錄: 附附 錄錄 一一 主程序

41、主程序 主程序如下: ok equ 20h;搶答開始標(biāo)志位 ring equ 22h;響鈴標(biāo)志位 org 0000h ajmp main org 0003h ajmp int0sub org 000bh ajmp t0int org 0013h ajmp int1sub org 001bh ajmp t1int org 0040h main: mov r1,#30;初設(shè)搶答時(shí)間為 30s mov r2,#60;初設(shè)答題時(shí)間為 60s mov tmod,#11h;設(shè)置未定時(shí)器/模式 1 mov th0,#0f0h mov tl0,#0ffh;越高發(fā)聲頻率越高,越尖 mov th1,#3ch mo

42、v tl1,#0b0h;50ms 為一次溢出中斷 setb ea setb et0 setb et1 setb ex0 setb ex1;允許四個(gè)中斷,t0/t1/int0/int1 clr ok clr ring setb tr1 setb tr0;一開始就運(yùn)行定時(shí)器,以開始顯示 fff.如果想重新計(jì)數(shù),重置 th1/tl1 就可以了 ;=查詢程序= start: mov r5,#0bh mov r4,#0bh mov r3,#0bh acall display;未開始搶答時(shí)候顯示 fff jb p3.0,next;ddddddd acall delay jb p3.0,next;去抖動(dòng),如

43、果開始鍵按下就向下執(zhí)行,否者跳到非法搶答查 詢 acall bark;按鍵發(fā)聲 mov a,r1 mov r6,a;送 r1-r6,因?yàn)?r1 中保存了搶答時(shí)間 setb ok;搶答標(biāo)志位,用于 count 只程序中判斷是否查詢搶答 mov r7,#01h ;讀搶答鍵數(shù)據(jù)信號(hào)標(biāo)志,這里表示只讀一次有用信號(hào) mov r3,#0ah;搶答只顯示計(jì)時(shí),滅號(hào)數(shù) ajmp count;進(jìn)入倒計(jì)時(shí)程序,查詢有效搶答的程序在 count 里面 next: jnb p1.0,false1 jnb p1.1,false2 jnb p1.2,false3 jnb p1.3,false4 jnb p1.4,fals

44、e5 jnb p1.5,false6 jnb p1.6,false7 jnb p1.7,false8 ajmp start ;=非法搶答處理程序= false1: mov r3,#01h ajmp error false2: mov r3,#02h ajmp error false3: mov r3,#03h ajmp error false4: mov r3,#04h ajmp error false5: mov r3,#05h ajmp error false6: mov r3,#06h ajmp error false7: mov r3,#07h ajmp error false8: m

45、ov r3,#08h ajmp error ;=int0(搶答時(shí)間 r1 調(diào)整程序)= int0sub:mov a,r1 mov b,#0ah div ab mov r5,a mov r4,b mov r3,#0ah acall display;先在兩個(gè)時(shí)間 led 上顯示 r1 jnb p3.4,inc0;p3.4 為+1s 鍵,如按下跳到 inco jnb p3.5,dec0;p3.5 為-1s 鍵,如按下跳到 deco jnb p3.1,back0;p3.1 為確定鍵,如按下跳到 backo ajmp int0sub inc0: mov a,r1 cjne a,#63h,add0;如果不

46、是 99,r2 加 1,如果加到 99,r1 就置 0,重新加起。 mov r1,#00h acall delay1 ajmp int0sub add0: inc r1 acall delay1 ajmp int0sub dec0: mov a,r1 jz setr1;如果 r1 為 0, r1 就置 99, dec r1 acall delay1 ajmp int0sub setr1: mov r1,#63h acall delay1 ajmp int0sub back0: reti ;=int1(回答時(shí)間 r2 調(diào)整程序)= int1sub:mov a,r2 mov b,#0ah div

47、ab mov r5,a mov r4,b mov r3,#0ah acall display jnb p3.4,inc1 jnb p3.5,dec1 jnb p3.1,back1 ajmp int1sub inc1: mov a,r2 cjne a,#63h,add1 mov r2,#00h acall delay1 ajmp int1sub add1: inc r2 acall delay1 ajmp int1sub dec1: mov a,r2 jz setr2 dec r2 acall delay1 ajmp int1sub setr2: mov r2,#63h acall delay1

48、 ajmp int1sub back1: reti ;=倒計(jì)時(shí)程序(搶答倒計(jì)時(shí)和回答倒計(jì)時(shí)都跳到改程序)= repeat:mov a,r2 ;使用錦囊時(shí)重新計(jì)時(shí) mov r6,a clr ring count: mov r0,#00h;重置定時(shí)器中斷次數(shù) mov th1,#3ch mov tl1,#0b0h;重置定時(shí)器 recount:mov a,r6;r6 保存了倒計(jì)時(shí)的時(shí)間,之前先將搶答時(shí)間或回答時(shí)間 給 r6 mov b,#0ah div ab;除十分出個(gè)位/十位 mov 30h,a;十位存于(30h) mov 31h,b;個(gè)位存于(31h) mov r5,30h;取十位 mov r4,

49、31h;取個(gè)位 mov a,r6 subb a,#07h jnc larger;大于 5s 跳到 larger,小于等于 5s 會(huì)提醒 mov a,r0 cjne a,#0ah,full;1s 中 0.5s 向下運(yùn)行 clr ring ajmp check full: cjne a,#14h,check;下面是 1s 的情況,響并顯示號(hào)數(shù)并清 r0,重新 計(jì) setb ring mov a,r6 jz quit;計(jì)時(shí)完畢 mov r0,#00h dec r6;一秒標(biāo)志減 1 ajmp check larger: mov a,r0 cjne a,#14h,check;如果 1s 向下運(yùn)行,否者跳

50、到查停/顯示 dec r6;計(jì)時(shí)一秒 r6 自動(dòng)減 1 mov r0,#00h check: jnb p3.1,quit;如按下停止鍵退出 jnb ok,checkk ;只在回答倒計(jì)時(shí)才有效 ajmp nextt checkk:jnb p3.0,repeat ;判斷是否使用錦囊 nextt: acall display jb ok,accout;如果是搶答倒計(jì)時(shí),如是則查詢搶答,否者跳過查詢繼續(xù)倒數(shù) (這里起到鎖搶答作用) ajmp recount accout: mov a,36h jnb acc.0,true1 jnb acc.1,true2 jnb acc.2,true3 jnb acc

51、.3,true4 jnb acc.4,true5 jnb acc.5,true6 jnb acc.6,tz1 jnb acc.7,tz2 ajmp recount tz1:jmp true7 tz2:jmp true8 quit: clr ok;如果按下了停止鍵執(zhí)行的程序 clr ring ajmp start ;=正常搶答處理程序= true1: acall bark mov a,r2 mov r6,a;搶答時(shí)間 r2 送 r6 mov r3,#01h clr ok;因?yàn)榇痤}的計(jì)時(shí)不再查詢搶答,所以就鎖了搶答 ajmp count true2:acall bark mov a,r2 mov

52、r6,a mov r3,#02h clr ok ajmp count true3:acall bark mov a,r2 mov r6,a mov r3,#03h clr ok ajmp count true4:acall bark mov a,r2 mov r6,a mov r3,#04h clr ok ajmp count true5:acall bark mov a,r2 mov r6,a mov r3,#05h clr ok ajmp count true6: acall bark mov a,r2 mov r6,a mov r3,#06h clr ok ajmp count true

53、7:acall bark mov a,r2 mov r6,a mov r3,#07h clr ok ajmp count true8:acall bark mov a,r2 mov r6,a mov r3,#08h clr ok ajmp count ;=犯規(guī)搶答程序= error: mov r0,#00h mov th1,#3ch mov tl1,#0b0h mov 34h,r3;犯規(guī)號(hào)數(shù)暫存與(34h) here: mov a,r0 cjne a,#06h,flash;0.3s 向下運(yùn)行-滅并停響 clr ring mov r3,#0ah mov r4,#0ah mov r5,#0ah;三燈全滅 ajmp check1 flash: cjne a,#0ch,check1;下面是 0.8s 的情況,

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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)論