644522910畢業(yè)設(shè)計(論文)基于AT89C51單片機(jī)的八位智力搶答器設(shè)計_第1頁
644522910畢業(yè)設(shè)計(論文)基于AT89C51單片機(jī)的八位智力搶答器設(shè)計_第2頁
644522910畢業(yè)設(shè)計(論文)基于AT89C51單片機(jī)的八位智力搶答器設(shè)計_第3頁
644522910畢業(yè)設(shè)計(論文)基于AT89C51單片機(jī)的八位智力搶答器設(shè)計_第4頁
644522910畢業(yè)設(shè)計(論文)基于AT89C51單片機(jī)的八位智力搶答器設(shè)計_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、江 西 理 工 大 學(xué) 南 昌 校 區(qū) 畢 業(yè) 設(shè) 計(論文) 題 目:八位智力搶答器 系 :信息工程系 專 業(yè):應(yīng)用電子技術(shù) 班 級: 學(xué) 生: 學(xué) 號: 指導(dǎo)教師: 職稱:講 師 摘 要 能夠?qū)崿F(xiàn)搶答器功能的方式有多種,可以采用前期的模擬電路、 數(shù)字電路 或模擬與數(shù)字電路相結(jié)合的方式。近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正 在不斷深入,同時帶動傳統(tǒng)控制檢測日新月異更新。本文介紹一種用 at89c51 作 為核心部件進(jìn)行邏輯控制及信號產(chǎn)生的單片機(jī)技術(shù)和匯編語言編程設(shè)計的 8 路 數(shù)字搶答器。文章對搶答器的背景與現(xiàn)狀、硬件設(shè)計、軟件設(shè)計及其仿真都做 了詳細(xì)的介紹,使我們不僅答器的原理及設(shè)計有

2、了深入的了解,也對單片機(jī)的 設(shè)計研發(fā)過程有了更加深刻的體會 本設(shè)計主要采用單片機(jī)控制,采用手動搶答的方式,有人搶答后,系統(tǒng)自 動封鎖其他人的搶答按鈕,使其不能再搶答,從而實現(xiàn)搶答功能。 該系統(tǒng)還增加了搶答倒計時和答題倒計時功能,另外搶答倒計時和答題倒 計時的時間都可以調(diào)整。若有人在主持人按下開始按鈕之前按下?lián)尨鸢粹o,系 統(tǒng)自動視其為犯規(guī),搶答器自動報警,顯示器同時顯示犯規(guī)選手的號碼,使搶 答達(dá)到公平、公開的效果。 關(guān)鍵字:單片機(jī);搶答器;倒計時 作者: 指導(dǎo)老師: abstract responder function can be achieved in different ways, ca

3、n be used early in the analog circuits, digital circuits or analog and digital circuit combination. with the rapid development of science and technology in recent years, scm applications are deepening, while the traditional control test drive rapid updated. this paper introduces a core component wit

4、h at89c51 as logical control signals and single-chip microcomputer and assembly language programming design of 8 digital vies to answer first. article on the responders background and present, hardware design, software design and simulation have made a detailed introduction, so we not only answer th

5、e principle and design of devices with in-depth understanding of microcontroller design and development and also have a more profound experience. this design mainly uses the mcu control, with manual answer in the way, some people answer in, the system automatically block other peoples answer in the

6、button, so that it can not answer in order to achieve responder feature. the system also increased the answer in the countdown countdown and answer features, and answer another answer in the countdown to the countdown time can be adjusted. if one host press the start button before pressing the answe

7、r in the button, the system automatically view them as foul, responder automatic alarm, the display also shows the number of fouls players to answer in a fair, open effect. keywords : single chip ;viing to answer first ;count down author: guidingteacher: 目 錄 第 1 章 緒 論.1 1.1 課題研究的背景及意義 .1 1.2 搶答器的分類

8、.1 1.3 設(shè)計的主要目標(biāo)任務(wù) .3 第 2 章 總體方案的設(shè)計.4 2.1 功能要求.4 2.2 系統(tǒng)功能框圖.4 第 3 章 硬件電路的設(shè)計.5 3.1 硬件主要組成電路.5 3.2 電路工作的基本原理.5 3.3 主控電路的設(shè)計 .5 3.3.1 關(guān)于 at89c51 單片機(jī).5 3.3.2 振蕩器電路的設(shè)計 .6 3.3.3 復(fù)位電路的設(shè)計 .7 3.4 按鍵電路的設(shè)計.8 3.5 顯示電路的設(shè)計.8 3.5.1 led 顯示器件簡介 .8 3.5.2 顯示部分的設(shè)計.9 3.6 報警電路的設(shè)計 .9 3.6.1 蜂鳴器的介紹 .9 3.6.2 報警電路.10 3.7 總電路圖.11

9、 第 4 章 軟件的設(shè)計.12 4.1 語言選擇.12 4.2 軟件總體設(shè)計.12 4.3 系統(tǒng)程序 .13 第 5 章 仿真及調(diào)試.23 5.1 仿真軟件介紹.23 5.1.1 proteus 軟件介紹 .23 5.1.2 keil 軟件介紹 .23 5.2 仿真過程.23 5.2.1 仿真過程操作如下: .23 5.2.2 仿真結(jié)果:.24 第六章 總 結(jié).26 參考文獻(xiàn).27 附 錄.28 附錄 1 電路原理圖 .28 江西理工大學(xué) 2011 屆??粕厴I(yè)設(shè)計(論文) 1 第 1 章 緒 論 1.1 課題研究的背景及意義 無論是學(xué)校、工廠、軍隊還是益智性電視節(jié)目,都會舉辦各種各樣的智力

10、競賽,都會用到搶答器。目前市場上已有各種各樣的智力競賽搶答器,但絕大 多數(shù)是早期設(shè)計的,以模擬電路、 數(shù)字電路或者模擬電路與數(shù)字電路相結(jié)合 的產(chǎn)品。這部分搶答器已相當(dāng)成熟,但功能越多的電路相對來說就越復(fù)雜,且 成本偏高,故障高,顯示方式簡單(有的甚至沒有顯示電路) ,無法判斷提前搶 按按鈕的行為,不便于電路升級換代。近年來隨著科技的飛速發(fā)展,單片機(jī)的 應(yīng)用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測日新月異。本設(shè)計就是利用 微電腦芯片(單片機(jī))作為核心部件進(jìn)行邏輯控制及信號的產(chǎn)生,用單片機(jī)本身 的優(yōu)勢使競賽真正達(dá)到公正、 公平、 公開。 1.2 搶答器的分類 電子搶答器 電子搶答器的中心構(gòu)造一般都

11、是由搶答器由單片機(jī)以及外圍電路組成, 其搭配的配件不同又分為,非語音非記分搶答器和語音記分搶答器。 圖 1-1 按鈕 多適用于學(xué)校和企事業(yè)單位舉行的簡單的搶答活動。 圖 1-2 電子顯示牌 江西理工大學(xué) 2011 屆??粕厴I(yè)設(shè)計(論文) 2 圖 1-3 搶答器 圖 1-4 非語音記分搶答器構(gòu)造很簡單,就是一個搶答器的主機(jī)和一個搶答按鈕 組成,在搶答過程中選手是沒有記分的顯示屏。 語音記分搶答器是有一個搶答器的主機(jī)和主機(jī)的顯示屏和選手的記分顯 示屏。 電腦搶答器 電腦搶答器又分為無線電腦搶答器和有線電腦搶答器。 無線電腦搶答器的構(gòu)成是由:主機(jī)和搶答器專用的軟件和無線按鈕。 無線電腦搶答器利用電

12、腦和投影儀,可以把搶答氣氛活躍起來,一般多 使用于電臺等大型的活動。 有線電腦搶答器也是由主機(jī)和電腦配合起來,電腦在和投影儀配合起來, 利用專門研發(fā)的配套的搶答器軟件,可以十分完美的表現(xiàn)搶答的氣氛。 江西理工大學(xué) 2011 屆??粕厴I(yè)設(shè)計(論文) 3 圖 1-5 有線電腦搶答器 圖 1-6 1.3 設(shè)計的主要目標(biāo)任務(wù) 通過此次設(shè)計,理解搶答器的基本原理,掌握單片機(jī)在該系統(tǒng)中的應(yīng)用, 掌握 led 顯示的工作原理,掌握 89c51 的接口分配,并能設(shè)計出合理的電原理 圖,并仿真成功。 江西理工大學(xué) 2011 屆專科生畢業(yè)設(shè)計(論文) 4 第 2 章 總體方案的設(shè)計 2.1 功能要求 本次設(shè)計要

13、求在熟練使用 51 系列單片機(jī)的基礎(chǔ)上,設(shè)計出相關(guān)的外圍電路, 并利用所選用的常用芯片設(shè)計出搶答器,要求可通過軟件實現(xiàn)調(diào)整搶答器的答 題或搶答時間,led 顯示器可顯示搶答或答題時間的倒計時,在時間快要用盡 或者有人犯規(guī)的情況下,蜂鳴器可發(fā)出聲音報警。 2.2 系統(tǒng)功能框圖 單片機(jī) 八段數(shù)碼管顯示 蜂鳴器報警 電路 選手搶答按 鈕 主持人控制的 開始及結(jié)束按 鈕 時間調(diào)整按 鈕 圖 2-1 系統(tǒng)功能框圖 開始鍵按下后,搶答倒計時開始,同時系統(tǒng)掃描選手搶答按鈕,選手按下按 鈕,顯示器顯示選手號,同時進(jìn)入答題計時,答題計時結(jié)束后,系統(tǒng)自動復(fù)位, 顯示器顯示“fff”。 江西理工大學(xué) 2011 屆專

14、科生畢業(yè)設(shè)計(論文) 5 第 3 章 硬件電路的設(shè)計 3.1 硬件主要組成電路 硬件電路主要由 at89c51 單片機(jī)及其外圍電路(包括復(fù)位電路、外部晶振) 、按鍵電路、顯示電路、蜂鳴器報警電路。 3.2 電路工作的基本原理 整個電路由按鍵控制,當(dāng)按下相應(yīng)的按鍵時,單片機(jī)開始工作,搶答倒計 時開始,同時系統(tǒng)掃描選手搶答按鈕,選手按下按鈕,顯示器顯示選手號,同 時進(jìn)入答題計時,答題計時結(jié)束后,系統(tǒng)自動復(fù)位,顯示器顯示“fff”。 3.3 主控電路的設(shè)計 3.3.1 關(guān)于 at89c51 單片機(jī) at89c51 是一種帶 4k 字節(jié)閃爍可編程可擦除只讀存儲器( fperom falsh progr

15、ammable and erasable read only memory)的低電壓,高性 能 cmos 8 位微處理器,俗稱單片機(jī)。該器件采用atmel 高密度非易失存儲 器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的 mcs-51 指令集和輸出管腳相兼容。由于將 多功能 8 位 cpu 和閃爍存儲器組合在單個芯片中, atmel 的 at89c51 是一 種高效微控制器。 at89c51 單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性 高且價廉的方案。 其主要特性是與 mcs-51 兼容、4k 字節(jié)可編程閃爍存儲器、 壽命是 1000 寫/擦循環(huán)、數(shù)據(jù)保留時間 10 年、全靜態(tài)工作 0hz-24mhz、三級程序

16、 存儲器鎖定、 1288 位內(nèi)部 ram、32 可編程 i/o 線、兩個 16 位定時器/計 數(shù)器、5 個中斷源、可編程串行通道、低功耗的閑置和掉電模式、片內(nèi)振蕩 器和時鐘電路,其中由于其具有 32 個 i/o 口,可以滿足此次設(shè)計的需要, 不用在其外部擴(kuò)展 i/o 口。 管腳說明: vcc:供電電壓。 gnd:接地。 p0 口:p0 口為一個 8 位漏級開路雙向 i/o 口,每腳可吸收 8 個 ttl 門 電流。當(dāng) p1 口的管腳第一次寫 1 時,被定義為高阻輸入。 p0 能夠用于外 部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù) /地址的第八位。在 fiash 編程時, p0 口作為原碼輸入口,當(dāng)

17、fiash 進(jìn)行校驗時, p0 輸出原碼,此時 p0 外部 必須被拉高。 江西理工大學(xué) 2011 屆專科生畢業(yè)設(shè)計(論文) 6 p1 口:p1 口是一個內(nèi)部提供上拉電阻的 8 位雙向 i/o 口,p1 口緩沖 器能接收輸出 4 個 ttl 門電流。p1 口管腳寫入 1 后,被內(nèi)部上拉為高,可 用作輸入,p1 口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的 緣故。在 flash 編程和校驗時, p1 口作為第八位地址接收。 p2 口:p2 口為一個內(nèi)部上拉電阻的 8 位雙向 i/o 口,p2 口緩沖器可 接收,輸出 4 個 ttl 門電流,當(dāng) p2 口被寫“1”時,其管腳被內(nèi)部上拉電 阻

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

19、些特殊功能口,如下表所示: 口 管腳 備選功能 p3.0 rxd(串行輸入口) p3.1 txd(串行輸出口) p3 口同時為閃爍編程和編程校驗接收一些控制信號。 rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持rst 腳兩個機(jī)器周期的 高電平時間。 /ea/vpp:當(dāng)/ea 保持低電平時,則此期間 訪問外部程序存儲器 (0000h-ffffh),不管是否有內(nèi)部程序存儲器。加密方式1 時,/ea 將內(nèi)部 鎖定為 reset;當(dāng)/ea 端保持高電平時,此間 訪問內(nèi)部程序存儲器。在 flash 編程期間,此引腳也用于施加 12v 編程電源( vpp)。 xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電

20、路的輸入。 xtal2:來自反向振蕩器的輸出。 3.3.2 振蕩器電路的設(shè)計 晶振是晶體振蕩器的簡稱,在電氣上它可以等效成一個電容和一個電阻并 聯(lián)再串聯(lián)一個電容的二端網(wǎng)絡(luò),電工學(xué)上這個網(wǎng)絡(luò)有兩個諧振點,以頻率的高 低分其中較低的頻率是串聯(lián)諧振,較高的頻率是并聯(lián)諧振。由于晶體自身的特 性致使這兩個頻率的距離相當(dāng)?shù)慕咏?,在這個極窄的頻率范圍內(nèi),晶振等效為 一個電感,所以只要晶振的兩端并聯(lián)上合適的電容它就會組成并聯(lián)諧振電路。 這個并聯(lián)諧振電路加到一個負(fù)反饋電路中就可以構(gòu)成正弦波振蕩電路,由于晶 江西理工大學(xué) 2011 屆??粕厴I(yè)設(shè)計(論文) 7 振等效為電感的頻率范圍很窄,所以即使其他元件的參數(shù)變

21、化很大,這個振蕩 器的頻率也不會有很大的變化。 晶振有一個重要的參數(shù),那就是負(fù)載電容值,選擇與負(fù)載電容值相等的并 聯(lián)電容,就可以得到晶振標(biāo)稱的諧振頻率。 一般的晶振振蕩電路都是在一個反相放大器(注意是放大器不是反相器) 的兩端接入晶振,再有兩個電容分別接到晶振的兩端,每個電容的另一端再接 到地,這兩個電容串聯(lián)的容量值就應(yīng)該等于負(fù)載電容,請注意一般 ic 的引腳都 有等效輸入電容,這個不能忽略。 一般的晶振的負(fù)載電容為 15p 或 30p,如果再考慮元件引腳的等效輸入電 容,則兩個 22p 的電容構(gòu)成晶振的振蕩電路就是比較好的選擇。 圖 3-1 振蕩電路 3.3.3 復(fù)位電路的設(shè)計 復(fù)位即是在復(fù)

22、位端加不小于指定寬度的低電平(低電平復(fù)位)或高電平(高電 平復(fù)位)信號使單片機(jī)的硬件處于初始狀態(tài)。以 mcs-51 系列單片機(jī)為例,復(fù)位 端為 rst/vpd,高電平復(fù)位。在振蕩電路運行時,使 rst 引腳至少保持兩個機(jī)器 周期(24 個振蕩周期)高電平,實現(xiàn)一次復(fù)位動作。cpu 響應(yīng)內(nèi)部復(fù)位,將 ale 和 psen 引腳置為輸入方式,并在 rst 端變低以前重復(fù)執(zhí)行內(nèi)部復(fù)位。 圖 3-2 復(fù)位電路 江西理工大學(xué) 2011 屆??粕厴I(yè)設(shè)計(論文) 8 3.4 按鍵電路的設(shè)計 鍵盤有兩類:一個是獨立鍵盤,另一個是矩陣鍵盤。 獨立鍵盤的特點是每個按鍵單獨占用一個i/o 口,每個按鍵工作不會 影

23、響其他的 i/o 口線的狀態(tài),多用于按鍵不多的場合??刹捎胘nb 或 jb 來查詢是哪一個按鍵按下,并轉(zhuǎn)向相應(yīng)的功能處理程序。 當(dāng)按鍵較多時,就用到了矩陣鍵盤。矩陣鍵盤又稱行列鍵盤,它是用四 條 i/o 線作為行線,四條 i/o 線作為列線組成的鍵盤,在行線和列線的每個 交叉點上設(shè)置一個按鍵,這樣鍵盤上按鍵的個數(shù)就是4*4 個。這種行列式 鍵盤結(jié)構(gòu)能夠有效地提高單片機(jī)系統(tǒng)中i/o 口的利用率。 但由于本設(shè)計的按鍵不多,所以我們采用獨立鍵盤,編寫程序也比較簡 單,運行速度較快。 圖 3-3 選手搶答按鍵 3.5 顯示電路的設(shè)計 3.5.1 led 顯示器件簡介 數(shù)碼管是一種半導(dǎo)體發(fā)光器件,其基本

24、單元是發(fā)光二極管。 數(shù)碼管的分類 : 數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管 多一個發(fā)光二極管單元(多一個小數(shù)點顯示);按能顯示多少個“8”可分 為 1 位、2 位、4 位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽極數(shù) 碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形 成公共陽極(com)的數(shù)碼管。共陽數(shù)碼管在應(yīng)用時應(yīng)將公共極com 接到 +5v,當(dāng)某一字段發(fā)光二極管的陰極為低電平時,相應(yīng)字段就點亮。當(dāng)某一 字段的陰極為高電平時,相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極 管的陰極接到一起形成公共陰極 (com)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時應(yīng)將 江

25、西理工大學(xué) 2011 屆??粕厴I(yè)設(shè)計(論文) 9 公共極 com 接到地線 gnd 上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時,相 應(yīng)字段就點亮。當(dāng)某一字段的陽極為低電平時,相應(yīng)字段就不亮。 數(shù)碼管的驅(qū)動方式 : 數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯 示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和 動態(tài)式兩類。 本設(shè)計由于只用兩個數(shù)碼管,所以采用靜態(tài)顯示驅(qū)動,這里只 介紹靜態(tài)顯示驅(qū)動。 靜態(tài)顯示驅(qū)動:靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個 段碼都由一個單片機(jī)的 i/o 端口進(jìn)行驅(qū)動,或者使用如 bcd 碼二-十進(jìn)制譯 碼器譯碼進(jìn)行驅(qū)動

26、。靜態(tài)驅(qū)動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用 i/o 端口多,如驅(qū)動 5 個數(shù)碼管靜態(tài)顯示則需要 5840 根 i/o 端口來驅(qū) 動,一個 89c51 單片機(jī)可用的 i/o 端口才 32 個,實際應(yīng)用時必須增加譯碼 驅(qū)動器進(jìn)行驅(qū)動,增加了硬件 3.5.2 顯示部分的設(shè)計 顯示功能與硬件關(guān)系極大,當(dāng)硬件固定后,如何在不引起操作者誤解的前 提下提供盡可能豐富的信息,全靠軟件來解決。 圖 3-4 顯示電路(采用共陰極 led 數(shù)碼管) 3.6 報警電路的設(shè)計 3.6.1 蜂鳴器的介紹 蜂鳴器的作用 : 蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電 壓供電,廣泛應(yīng)用于計算機(jī)、打印機(jī)、復(fù)印機(jī)、

27、報警器、電子玩具、汽車 電子設(shè)備、電話機(jī)、定時器等 電子產(chǎn)品中作發(fā)聲器件。 江西理工大學(xué) 2011 屆專科生畢業(yè)設(shè)計(論文) 10 蜂鳴器的分類: 1壓電式蜂鳴器 壓電式蜂鳴器主要由 多諧振蕩器、壓電蜂鳴片、阻抗匹 配器及共鳴箱、外殼等組成。有的壓電式蜂鳴器外殼上還裝有發(fā)光二極管 。 多諧振蕩器由 晶體管或集成電路構(gòu)成。當(dāng)接通電源后( 1.515v 直流 工作電壓),多諧振蕩器起振 ,輸出 1.52.5khz 的音頻信號,阻抗匹配器推 動壓電蜂鳴片發(fā)聲。 壓電蜂鳴片由鋯鈦酸鉛或鈮鎂酸鉛壓電陶瓷材料制成。在陶瓷片的兩面 鍍上銀電極,經(jīng)極化和老化處理后,再與黃銅片或不銹鋼片粘在一起。 2電磁式蜂鳴

28、器 電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動膜片及外 殼等組成。 接通電源后,振蕩器產(chǎn)生的音頻信號電流通過電磁線圈,使電磁線圈產(chǎn) 生磁場。振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發(fā)聲。 3.6.2 報警電路 圖 3-5 江西理工大學(xué) 2011 屆專科生畢業(yè)設(shè)計(論文) 11 3.7 總電路圖 圖 3-6 江西理工大學(xué) 2011 屆??粕厴I(yè)設(shè)計(論文) 12 第 4 章 軟件的設(shè)計 4.1 語言選擇 在目前單片機(jī)的發(fā)展中,其編程語言主要有c 語言和匯編語言。 c 語 言是高級語言,編寫起來比較程序比較簡便且易維護(hù),匯編語言介于機(jī)器語 言和高級語言之間,更接近于硬件,但編寫起來比較冗

29、長。但介于本次程序 不是太復(fù)雜,所以本次設(shè)計的程序采用匯編語言來編寫。 4.2 軟件總體設(shè)計 本程序采用子程序設(shè)計,在主程序中調(diào)用子程序來完成特定的功能,這 樣程序會通俗易懂,同時也有利于程序的調(diào)試和修改。 本程序的程序流程圖如下: 圖 4-1 江西理工大學(xué) 2011 屆??粕厴I(yè)設(shè)計(論文) 13 4.3 系統(tǒng)程序 p1.0 為開始搶答,p1.7 為停止,p1.1-p1.6 為六路搶答輸入 數(shù)碼管段選 p0 口,位選 p2 口,蜂鳴器輸出為 p3.6 口。 ok equ 20h;搶答開始標(biāo)志位 ring equ 22h;響鈴標(biāo)志位 org 0000h ajmp main org 0003h

30、ajmp int0sub org 000bh ajmp t0int org 0013h ajmp int1sub org 001bh ajmp t1int org 0040h main: mov r1,#0fh; 初設(shè)搶答時間為 15s mov r2,#0ah; 初設(shè)答題時間為 10s mov tmod,#11h; 設(shè)置未定時器/模式 1 mov th0,#0f0h mov tl0,#0ffh; 越高發(fā)聲頻率越高,越尖 mov th1,#3ch mov tl1,#0b0h; 50ms 為一次溢出中斷 setb ea setb et0 setb et1 setb ex0 setb ex1; 允許

31、四個中斷,t0/t1/int0/int1 clr ok clr ring setb tr1 setb tr0; 一開始就運行定時器,以開始顯示 fff.如果想重新計數(shù),重 置 th1/tl1 就可以了 江西理工大學(xué) 2011 屆??粕厴I(yè)設(shè)計(論文) 14 查詢程序: start: mov r5,#0bh mov r4,#0bh mov r3,#0bh acall display; 未開始搶答時候顯示 fff jb p3.1,next acall delay jb p3.1,next;去抖動,如果開始鍵按下就向下執(zhí)行,否者跳到 非法搶答查詢 acall bark;按鍵發(fā)聲 mov a,r1 m

32、ov r6,a; 送 r1-r6,因為 r1 中保存了搶答時間 setb ok; 搶答標(biāo)志位,用于 count 只程序中判斷是否查詢搶答 mov r3,0ah; 搶答只顯示計時,滅號數(shù) ajmp count;進(jìn)入倒計時程序,查詢有效搶答的程序在 count 里 面 next: jnb p1.0,false1 jnb p1.1,false2 jnb p1.2,false3 jnb p1.3,false4 jnb p1.4,false5 jnb p1.5,false6 jnb p1.6,false7 jnb p1.7,false8 ajmp start 非法搶答處理程序: : false1: ac

33、all bark; 按鍵發(fā)聲 mov r3,#01h ajmp error false2: acall bark mov r3,#02h ajmp error false3: acall bark 江西理工大學(xué) 2011 屆??粕厴I(yè)設(shè)計(論文) 15 mov r3,#03h ajmp error false4: acall bark mov r3,#04h ajmp error false5: acall bark mov r3,#05h ajmp error false6: acall bark mov r3,#06h ajmp error false7:acall bark mov r3

34、,#07h ajmp error false8:acall bark mov r3,#08h ajmp error int0(搶答時間 r1 調(diào)整程序): : int0sub:mov a,r1 mov b,#0ah div ab mov r5,a mov r4,b mov r3,#0ah acall display;先在兩個時間 led 上顯示 r1 jnb p3.2,inc0; p3.2 為+1s 鍵,如按下跳到 inco jnb p3.3,dec0; p3.3 為-1s 鍵,如按下跳到 deco jnb p3.0,back0; p3.0 為確定鍵,如按下跳到 backo ajmp int0

35、sub inc0: mov a,r1 cjne a,#63h,add0; 如果不是 99,r2 加 1,如果加到 99 了,r1 就置 0,重新加起 mov r1,#00h acall delay1 江西理工大學(xué) 2011 屆專科生畢業(yè)設(shè)計(論文) 16 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 int0s

36、ub back0: reti int1(回答時間 r2 調(diào)整程序): int1sub:mov a,r2 mov b,#0ah div ab mov r5,a mov r4,b mov r3,#0ah acall display jnb p3.2,inc1 jnb p3.3,dec1 jnb p3.0,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 set

37、r2 江西理工大學(xué) 2011 屆??粕厴I(yè)設(shè)計(論文) 17 dec r2 acall delay1 ajmp int1sub setr2: mov r2,#63h acall delay1 ajmp int1sub back1: reti 倒計時程序(搶答倒計時和回答倒計時都跳到該程序): count: mov r0,#00h; 重置定時器中斷次數(shù) mov th1,#3ch mov tl1,#0b0h; 重置定時器 recount: mov a,r6; r6 保存了倒計時的時間,之前先將搶答時間或回答時 間給 r6 mov b,#0ah div ab; 除十分出個位/十位 mov 30h,a

38、; 十位存于(30h) mov 31h,b; 個位存于(31h) mov r5,30h; 取十位 mov r4,31h; 取個位 mov a,r6 subb a,#07h jnc larger;大于 5s 跳到 larger,小于等于 5s 會提醒 mov a,r0 cjne a,#0ah,full;1s 中 0.5s 向下運行 clr ring ajmp check full: cjne a,#14h,check; 下面系 1s 的情況,響并顯示號數(shù)并清 r0,重 新計時 setb ring mov a,r6 jz quit; 計時完畢 mov r0,#00h dec r6; 一秒標(biāo)志減 1

39、 ajmp check larger: mov a,r0 江西理工大學(xué) 2011 屆??粕厴I(yè)設(shè)計(論文) 18 cjne a,#14h,check; 如果 1s 向下運行,否者跳到查停/顯 示 dec r6; 計時一秒 r6 自動減 1 mov r0,#00h check: jnb p3.0,quit; 如按下停止鍵退出 acall display jb ok,accout; 如果是搶答倒計時,如是則查詢搶答,否者跳過 查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用) ajmp recount accout: jnb p1.0,true1 jnb p1.1,true2 jnb p1.2,true3 jnb

40、 p1.3,true4 jnb p1.4,true5 jnb p1.5,true6 jnb p1.6,true7 jnb p1.7,true8 ajmp recount quit: clr ok; 如果按下了停止鍵執(zhí)行的程序 clr ring ajmp start 正常搶答處理程序: true1: acall bark; 按鍵發(fā)聲 mov a,r2 mov r6,a; 搶答時間 r2 送 r6 mov r3,#01h clr ok; 因為答題的計時不再查詢搶答,所以就鎖了搶答 ajmp count true2:acall bark; mov a,r2 mov r6,a mov r3,#02h

41、clr ok ajmp count true3:acall bark; 江西理工大學(xué) 2011 屆??粕厴I(yè)設(shè)計(論文) 19 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

42、 ajmp count true7: 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 江西理工大學(xué) 2011 屆??粕厴I(yè)設(shè)計(論文) 20 ;犯規(guī)搶答程序; error: mov r0,#00h mov th1,#3ch mov tl1,#0b0h mov 34h,r3; 犯規(guī)號數(shù)暫存與(34h) here: mov a,r0 cjne a,#0ah,flash; 0.5s 向下運行-滅并停響

43、 clr ring mov r3,#0ah mov r4,#0ah mov r5,#0ah; 三燈全滅 ajmp check1 flash: cjne a,#14h,check1; 下面系 1s 的情況,響并顯示號數(shù)并清 r0, 重新計 setb ring mov r0,#00h mov r3,34h; 取回號數(shù) mov r5,#0bh mov r4,#0bh; 顯示 ff 和號數(shù) ajmp check1 check1: jnb p3.0,quit1 acall display ajmp here quit1: clr ring clr ok ajmp start 顯示程序: display:

44、mov dptr,#dat1; 查表顯示程序,利用 p0 口做段選碼口輸出/p2 低三位做位選碼輸出 mov a,r5 movc a,a+dptr mov p2,#01h mov p0,a acall delay mov dptr,#dat2 江西理工大學(xué) 2011 屆專科生畢業(yè)設(shè)計(論文) 21 mov a,r4 movc a,a+dptr mov p2,#02h mov p0,a acall delay mov a,r3 movc a,a+dptr mov p2,#04h mov p0,a acall delay ret dat1:db 00h,06h,5bh,4fh,66h,6dh,7d

45、h,07h,7fh,6fh,00h,71h ;滅,1,2,3,4,5,6,7,8,9,滅,f dat2:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h,71h delay1: mov 35h,#08h loop0: acall display djnz 35h,loop0 ret ;延時(顯示和去抖動用到):; delay: mov 32h,#12h loop: mov 33h,#0afh loop1: djnz 33h,loop1 djnz 32h,loop ret 發(fā)聲程序: bark: setb ring acall delay1 acall

46、 delay1 clr ring; 按鍵發(fā)聲 ret ;to 溢出中斷(響鈴程序):; t0int:mov th0,#0ech mov tl0,#0ffh jnb ring,out 江西理工大學(xué) 2011 屆??粕厴I(yè)設(shè)計(論文) 22 cpl p3.6 ; ring 標(biāo)志位為 1 時候 p3.6 口不短取反使喇叭發(fā)出一定頻 率的聲音 out:reti ;t1 溢出中斷(計時程序):; t1int: mov th1,#3ch mov tl1,#0b0h inc r0 reti end 江西理工大學(xué) 2011 屆??粕厴I(yè)設(shè)計(論文) 23 第 5 章 仿真及調(diào)試 5.1 仿真軟件介紹 5.1.

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

48、vr 系列、pic12 系列、pic16 系列、 pic18 系列、z80 系列、hc11 系列以及各種外圍芯片。 支持大量的存儲器和 外圍芯片??傊撥浖且豢罴瘑纹瑱C(jī)和 spice 分析于一身的仿真軟件,功能 極其強(qiáng)大 ,可仿真 51、avr、pic。 proteus 與其它單片機(jī)仿真軟件不同的是,它不僅能仿真單片機(jī) cpu 的工 作情況,也能仿真單片機(jī)外圍電路或沒有單片機(jī)參與的其它電路的工作情況。 因此在仿真和程序調(diào)試時,關(guān)心的不再是某些語句執(zhí)行時單片機(jī)寄存器和存儲 器內(nèi)容的改變,而是從工程的角度直接看程序運行和電路工作的過程和結(jié)果。 對于這樣的仿真實驗,從某種意義上講,是彌補(bǔ)了實驗和工

49、程應(yīng)用間脫節(jié)的矛 盾和現(xiàn)象。 5.1.2 keil 軟件介紹 keil 軟件是目前最流行開發(fā) mcs-51 系列單片 機(jī)的軟件,這從近年來各 仿真機(jī)廠商紛紛宣布全面支持 keil 即可看出。keil 提供了包括 c 編譯器、 宏匯編、連接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案, 通 過一個集成開發(fā)環(huán)境(uvision)將這些部份組合在一起。 5.2 仿真過程 5.2.1 仿真過程操作如下: 江西理工大學(xué) 2011 屆??粕厴I(yè)設(shè)計(論文) 24 1)在 protues 中畫出系統(tǒng)電路圖,即附件 2; 2)將程序在 keil 中編譯并生成 hex 文件。 3)把在 keil 中編譯生成的 hex 文件載入 at89c51 芯片中; 4)運行仿真。 5.2.2 仿真結(jié)果: 1)系統(tǒng)初始狀態(tài) 圖 5-1 2)搶答開始后,搶答倒計時狀態(tài) 圖 5-2 搶答倒計時 11 秒時的系統(tǒng)狀態(tài) 江西理工大學(xué) 2011 屆專

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論