基于單片機(jī)的八路搶答器的設(shè)計(jì)
《基于單片機(jī)的八路搶答器的設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于單片機(jī)的八路搶答器的設(shè)計(jì)(34頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
摘 要 隨著科學(xué)技術(shù)的發(fā)展和普及 各種各樣的競(jìng)賽越來(lái)越多 其中搶答器的作用也越 來(lái)越重要 本文設(shè)計(jì)出以 AT89C51 單片機(jī)為核心的八路搶答器 采用了數(shù)字顯示器直 接指示 自動(dòng)鎖存顯示結(jié)果 并自動(dòng)復(fù)位的設(shè)計(jì)思想 它能根據(jù)不同的搶答輸入信號(hào) 經(jīng)過單片機(jī)的控制處理并產(chǎn)生與輸入信號(hào)相對(duì)應(yīng)的輸出信號(hào) 最后通過 LED 數(shù)碼管顯 示相應(yīng)的路數(shù) 即使兩組的搶答時(shí)間相差幾微秒 也可分辨出是哪組優(yōu)先按下的按鍵 充分利用了單片機(jī)系統(tǒng)結(jié)構(gòu)簡(jiǎn)單 功能強(qiáng)大 可靠性好 實(shí)用性強(qiáng)的特點(diǎn) 本設(shè)計(jì)是以搶答為出發(fā)點(diǎn) 考慮到根據(jù)需要設(shè)定限時(shí)回答的功能 利用 89C51 單 片機(jī)及外圍接口實(shí)現(xiàn)的搶答系統(tǒng) 利用單片機(jī)的定時(shí)器 計(jì)數(shù)器定時(shí)和記數(shù)的原理 將 軟 硬件有機(jī)地結(jié)合起來(lái) 使得系統(tǒng)能夠正確地進(jìn)行計(jì)時(shí) 同時(shí)使數(shù)碼管能夠正確地 顯示時(shí)間 用開關(guān)做鍵盤輸入 蜂鳴器發(fā)聲提示 同時(shí)系統(tǒng)能夠?qū)崿F(xiàn) 在搶答中 只 有開始后搶答才有效 如果在開始搶答前搶答為無(wú)效 滿時(shí)后系統(tǒng)計(jì)時(shí)自動(dòng)復(fù)位及主 控強(qiáng)制復(fù)位 按鍵鎖定 在該狀態(tài)下 按鍵是無(wú)效的 關(guān)鍵詞 搶答器 單片機(jī) LED 數(shù)碼顯示管 定時(shí)器 計(jì)數(shù)器 ABSTRACT With the development and popularization of science and technology all kinds of competitions become more and more so responder is more and more important This paper designed eight way Responder based on AT89C51 MCU with digital display direct instructions automatic latch showed results and automatic reset design ideas It can according to different contest input signal by MCU control handle and produce different with the input signal corresponding output signal finally LED digital pipe display by the corresponding points even if the two groups of vies differs a few microseconds also time can distinguish which group of priority press buttons fully utilize the signal chip microcomputer system structure is simple powerful good reliability and practicability strong characteristic This design is for the starting point Responders considering the set limit to answer in 89C51 single chip microcomputer and function use of peripheral interfaces scare answering system of the microcontroller timer counter timing and numeration principle software and hardware organically and makes the system can correctly to the time at the same time making digital tube can properly show time With a switch does keyboard output the speaker happen hint And the system can realize in the contest only after beginning vies to effective if at the stat of the contest for the invalid former contest full automatic rest and clock after the system master mandatory rest key lock in this effective condition buttons invalid Key words Responder Single chip microcomputer LED digital display tube Timer counter 目 錄 第一章 緒論 1 1 1 搶答器發(fā)展概況 1 1 2 本課題研究的意義 1 1 3 系統(tǒng)設(shè)計(jì)的功能 2 第二章 單片機(jī)系統(tǒng)原理 3 2 1 單片機(jī)的原理 3 2 1 1 單片機(jī)的簡(jiǎn)介 3 2 1 2 單片機(jī)的分類 3 2 2 單片機(jī)的工作過程 4 2 3 單片機(jī)的引腳及其作用 5 第三章 八路搶答器的電路設(shè)計(jì) 7 3 1 電路設(shè)計(jì)原理 7 3 2 八路搶答器模塊化設(shè)計(jì) 7 3 3 時(shí)鐘與復(fù)位模塊 8 3 3 1 時(shí)鐘模塊 8 3 3 2 復(fù)位模塊 9 3 4 顯示模塊 9 3 5 按鍵輸入模塊 11 3 5 1 鍵盤的去抖動(dòng) 11 3 5 2 按鍵電路圖 12 3 6 報(bào)警模塊 12 第四章 軟件設(shè)計(jì) 14 4 1 系統(tǒng)程序設(shè)計(jì) 14 4 2 搶答器主程序流程圖 15 4 3 非法搶答查詢子程序 15 4 4 搶答時(shí)間調(diào)整子程序 16 第五章 軟件仿真及程序調(diào)試 17 5 1PROTEUS軟件仿真 17 5 2KEIL軟件的使用 17 謝 辭 19 參考文獻(xiàn) 20 附 錄 21 附錄 1 電路原理圖 21 附錄 2 程序清單 22 大連交通大學(xué) 2013 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 1 第一章 緒論 1 1 搶答器發(fā)展概況 當(dāng)今的社會(huì)競(jìng)爭(zhēng)日益激烈 選拔人才 評(píng)選優(yōu)勝 知識(shí)競(jìng)賽之類的活動(dòng)愈加頻繁 比賽中為了準(zhǔn)確 公正 直觀地判斷出第一搶答者 這就要有一種搶答設(shè)備作為裁判 員 于是搶答器應(yīng)用而生 早期的搶答器只由幾個(gè)三極管 可控硅 發(fā)光管等組成 能通過發(fā)光管的指示辨 認(rèn)出選手號(hào)碼 現(xiàn)在大多數(shù)搶答器均使用單片機(jī) 如 MCS 51 型 和數(shù)字集成電路 并增 加了許多新功能 如選手號(hào)碼顯示 搶答前或搶答后的計(jì)時(shí) 選手得分顯示等功能 隨著我國(guó)搶答器市場(chǎng)的迅猛發(fā)展 與之相關(guān)的核心生產(chǎn)技術(shù)應(yīng)用與研發(fā)必將成為 業(yè)內(nèi)企業(yè)關(guān)注的焦點(diǎn) 技術(shù)工藝 是衡量一個(gè)企業(yè)是否具有先進(jìn)性 是否具備市場(chǎng)競(jìng) 爭(zhēng)力 是否能不斷領(lǐng)先于競(jìng)爭(zhēng)者的重要指標(biāo)依據(jù) 了解國(guó)內(nèi)外搶答器生產(chǎn)核心技術(shù)的 研發(fā)動(dòng)向 工藝設(shè)備 技術(shù)應(yīng)用及趨勢(shì)對(duì)于企業(yè)提升產(chǎn)品技術(shù)規(guī)格 提高市場(chǎng)競(jìng)爭(zhēng)力 十分關(guān)鍵 目前市場(chǎng)上搶答器種類繁多 功能各異 價(jià)格差異也很大 那么選擇一款 真正適合的搶答器就非常重要 搶答器一般分為電子搶答器和電腦搶答器 目前電子搶答器的中心構(gòu)造一般都是 由數(shù)字電子集成電路組成 其搭配的配件不同又分為 非語(yǔ)音非記分搶答器和語(yǔ)音記 分搶答器 非語(yǔ)音記分搶答器構(gòu)造很簡(jiǎn)單 就是一個(gè)搶答器的主機(jī)和一個(gè)搶答按鈕組 成 在搶答過程中選手是沒有記分的顯示屏 語(yǔ)音記分搶答器是由一個(gè)搶答器的主機(jī) 主機(jī)的顯示屏以及選手的記分顯示屏等構(gòu)成 具有記分等功能 電子搶答器多適用于 學(xué)校和企事業(yè)單位舉行的簡(jiǎn)單的搶答活動(dòng) 電腦搶答器又分為無(wú)線電腦搶答器和有線 電腦搶答器 無(wú)線電腦搶答器是由主機(jī)和搶答器專用的軟件和無(wú)線按鈕構(gòu)成 無(wú)線電 腦搶答器利用電腦和投影儀 可以把搶答氣氛活躍起來(lái) 一般多使用于電臺(tái)等大型的 活動(dòng) 有線電腦搶答器也是由主機(jī)和電腦配合起來(lái) 電腦再和投影儀配合起來(lái) 利用 專門研發(fā)的配套的搶答器軟件 可以十分完美的表現(xiàn)搶答的氣氛 1 2 本課題研究的意義 搶答器是一種應(yīng)用非常廣泛的設(shè)備 在各種競(jìng)賽 搶答場(chǎng)合中 它能迅速 客觀 地分辨出最先獲得發(fā)言權(quán)的選手 無(wú)論是軍隊(duì)還是電視節(jié)目中 都可能會(huì)舉辦各種各樣 的智力競(jìng)賽 都會(huì)用到搶答器 如果要是讓搶答者用舉手等方法 主持人很容易誤判 會(huì)造成搶答的不公平 為了使這種不公平不發(fā)生 只有靠電子產(chǎn)品的高準(zhǔn)確性來(lái)保障 搶答的公平性 比賽中為了準(zhǔn)確 公正 直觀地判斷出第一搶答者 所設(shè)計(jì)的搶答器 通常由數(shù)碼顯示 燈光 音響等多種手段指示出第一搶答者 搶答器作為一種電子產(chǎn)品 早已廣泛應(yīng)用于各種智力和知識(shí)競(jìng)賽場(chǎng)合 但目前所 使用的搶答器有很多的缺點(diǎn) 有的電路較復(fù)雜不便于制作 可靠性低 實(shí)現(xiàn)起來(lái)很困難 大連交通大學(xué) 2013 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 2 有的則用一些專用的集成塊 而專用集成塊的購(gòu)買又很困難 而我所設(shè)計(jì)的八路智能 搶答器 具有元件普通 易于購(gòu)買等優(yōu)點(diǎn) 很好地解決了制作困難和難于購(gòu)買的問題 在知識(shí)比賽中 特別是做搶答題目的時(shí)候 在搶答過程中 為了知道哪一組或哪 一位選手先答題 必須要設(shè)計(jì)一個(gè)系統(tǒng)來(lái)完成這個(gè)任務(wù) 如果在搶答中 靠視覺是很 難判斷出哪組先答題 怎樣來(lái)設(shè)計(jì)搶答器 能使以上問題得以解決 即使兩組的搶答 時(shí)間相差幾微秒 也可分辨出哪組優(yōu)先答題 通過研究并在設(shè)計(jì)驗(yàn)證后發(fā)現(xiàn) 采用單 片機(jī)技術(shù)設(shè)計(jì)的搶答器與傳統(tǒng)的搶答器相比 首先 電路連接簡(jiǎn)單 因?yàn)榇蠖鄶?shù)功能 單元都通過程序設(shè)計(jì)在單片機(jī)內(nèi)部 第二 工作性能可靠 抗干擾能力優(yōu)于傳統(tǒng)搶答 器 并能夠解決以上提出的問題 所以本研究是一個(gè)實(shí)用的工程設(shè)計(jì) 具有創(chuàng)新性 1 3 系統(tǒng)設(shè)計(jì)的功能 根據(jù)一般比賽對(duì)搶答器功能的要求 本文設(shè)計(jì)出的搶答器系統(tǒng)功能如下 1 搶答器可以同時(shí)供 8 名選手或 8 個(gè)代表隊(duì)比賽 分別用 8 個(gè)按鈕 S1 S8 表示 2 主持人可以通過智能搶答器的按鍵設(shè)定每道題的搶答時(shí)間和回答時(shí)間 3 具有清零和非法搶答控制功能 設(shè)置一個(gè)系統(tǒng)清除和搶答控制開關(guān) 并由主持 人操控 避免選手在主持人說(shuō) 開始 前提前搶答 違反規(guī)則 4 當(dāng)主持人啟動(dòng) 開始搶答按鍵 后 定時(shí)器進(jìn)行減計(jì)時(shí) 在 20 秒內(nèi)無(wú)人搶答 表示所有參賽選手或參賽隊(duì)對(duì)本題棄權(quán) 搶答時(shí)間耗盡后禁止搶答 5 倒計(jì)時(shí) 5 秒時(shí) 如果仍無(wú)人搶答 則系統(tǒng)每 1s 報(bào)警一次 用以提示參賽選手 6 搶答器具有鎖存與顯示功能 即選手按下按鍵 鎖存相應(yīng)選手的參賽編號(hào) 并 在 LED 數(shù)碼管上顯示 一直保持到主持人將系統(tǒng)清除為止 同時(shí)揚(yáng)聲器發(fā)出報(bào)警聲響 提示 選手搶答實(shí)行優(yōu)先鎖存 其他按鍵者將不能響應(yīng) 以便公平地選擇第一個(gè)搶答 者 7 參賽選手在設(shè)定的時(shí)間內(nèi)進(jìn)行搶答 搶答有效 顯示器上顯示選手的編號(hào) 同 時(shí)進(jìn)入回答問題的 30s 倒計(jì)時(shí) 回答問題時(shí)可以選擇啟用錦囊 即答題時(shí)間變?yōu)?60 秒 8 倒計(jì)時(shí)期間 如果主持人想終止倒計(jì)時(shí) 可以按下 停止 鍵 系統(tǒng)會(huì)自動(dòng)進(jìn) 入準(zhǔn)備狀態(tài) 本設(shè)計(jì)中主要硬件設(shè)備 AT89C51 單片機(jī) 8 輸入與非門 74HC30 共陰極 LED 數(shù)碼 管 12MHz 晶振 74LS04 反相器 按鍵若干 報(bào)警喇叭 變壓器 整流器 電容 電 阻 7805 穩(wěn)壓芯片 大連交通大學(xué) 2013 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 3 第二章 單片機(jī)系統(tǒng)原理 2 1 單片機(jī)的原理 2 1 1 單片機(jī)的簡(jiǎn)介 目前 80C51 單片機(jī)在工業(yè)檢測(cè)領(lǐng)域中得到了廣泛的應(yīng)用 因此我們可以在許多單 片機(jī)應(yīng)用領(lǐng)域中 配接各種類型的接口 構(gòu)成綜合應(yīng)用系統(tǒng) 以增強(qiáng)其功能 89C51 是 Intel 公司生產(chǎn)的一種單片機(jī) 在一小塊芯片上集成了一個(gè)微型計(jì)算機(jī)的各個(gè)組成 部分 每一個(gè)單片機(jī)包括 一個(gè) 8 位的微型處理器 CPU 一個(gè) 128 字節(jié)的片內(nèi)數(shù)據(jù)存儲(chǔ) 器 RAM 4k 片內(nèi)程序存儲(chǔ)器 ROM 四個(gè) 8 位并行的 I O 接口 P0 P3 每個(gè)接口既可以輸 入 也可以輸出 兩個(gè)定時(shí)器 記數(shù)器 五個(gè)中斷源的中斷控制系統(tǒng) 一個(gè)全雙工 UART 的串行 I O 口 片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路 但石英晶體和微調(diào)電容需要外接 最高 允許振蕩頻率是 12MHZ 以上各個(gè)部分通過內(nèi)部總線相連接 下面簡(jiǎn)單介紹下其部分功 能 中央處理器 CPU 是單片微型計(jì)算機(jī)的指揮 執(zhí)行中心 由它讀人用戶程序 并逐 條執(zhí)行指令 它是由 8 位算術(shù) 邏輯運(yùn)算部件 簡(jiǎn)稱 ALU 定時(shí) 控制部件 若干寄存 器 A B B5W 5P 以及 16 位程序計(jì)數(shù)器 PC 和數(shù)據(jù)指針寄存器 DM 等主要部件組成 算術(shù)邏輯單元的硬件結(jié)構(gòu)與典型微型機(jī)相似 它具有對(duì) 8 位信息進(jìn)行 四則運(yùn)算和邏輯與 或 異或 取反 清 0 等運(yùn)算 并具有判跳 轉(zhuǎn)移 數(shù)據(jù)傳送 等功能 此外還提供存放中間結(jié)果及常用數(shù)據(jù)寄存器 控制器部件是由指令寄存器 程序計(jì)數(shù)器 PC 定時(shí)與控制電路等組成的 指令寄存器中存放指令代碼 枷執(zhí)行指令 時(shí) 從程序存儲(chǔ)器中取來(lái)經(jīng)譯碼器譯碼后 根據(jù)不同指令由定時(shí)與控制電路發(fā)出相應(yīng) 的控制信號(hào) 送到存儲(chǔ)器 運(yùn)算器或 I O 接口電路 完成指令功能 程序計(jì)數(shù)器 PC 才程序計(jì)數(shù)器 PC 用來(lái)存放下一條將要執(zhí)行的指令 共 16 位 可對(duì)以 K 字節(jié)的程序存 儲(chǔ)器直接尋址 C 指令執(zhí)行結(jié)束后 PC 計(jì)數(shù)器自動(dòng)增加 指向下一條要執(zhí)行的指令地址 CPU 功能 總的來(lái)說(shuō)是以不同的方式 執(zhí)行各種指令 不同的指令其功自略異 有 的指令涉及到枷各寄存器之間的關(guān)系 有的指令涉及到單片機(jī)核心電路內(nèi)部各功能部 件的關(guān)系 有的則與外部器件如外部程序存儲(chǔ)器發(fā)生聯(lián)系 事實(shí)上 CRJ 是通過復(fù)雜的 時(shí)序電路完成不同的指令功能 所謂 CRJ 的時(shí)序是指控制器控照指今功能發(fā)出一系列 在時(shí)間上有一定次序的信號(hào) 控制和啟動(dòng)一部分邏輯電路 完成某種操作 2 1 2 單片機(jī)的分類 單片機(jī)作為計(jì)算機(jī)發(fā)展的一個(gè)重要領(lǐng)域 應(yīng)用一個(gè)較科學(xué)的分類方法 根據(jù)目前 發(fā)展情況 從不同角度單片機(jī)大致可以分為通用型 專用型 總線型 非總線型及工控 型 家電型 大連交通大學(xué) 2013 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 4 1 通用型 專用型 這是按單片機(jī)適用范圍來(lái)區(qū)分的 例如 80C51 是通用型單片機(jī) 它不是為某種專 用途設(shè)計(jì)的 專用型單片機(jī)是針對(duì)一類產(chǎn)品甚至某一個(gè)產(chǎn)品設(shè)計(jì)生產(chǎn)的 例如為了滿 足電子體溫計(jì)的要求 在片內(nèi)集成 ADC 接口等功能的溫度測(cè)量控制電路 2 總線型 非總線型 這是按單片機(jī)是否提供并行總線來(lái)區(qū)分的 總線型單片機(jī)普遍設(shè)置有并行地址總 線 數(shù)據(jù)總線 控制總線 這些引腳用以擴(kuò)展并行外圍器件都可通過串行口與單片機(jī) 連接 另外 許多單片機(jī)已把所需要的外圍器件及外設(shè)接口集成一片內(nèi) 因此在許多 情況下可以不要并行擴(kuò)展總線 大大減省封裝成本和芯片體積 這類單片機(jī)稱為非總 線型單片機(jī) 3 控制型 家電型 這是按照單片機(jī)大致應(yīng)用的領(lǐng)域進(jìn)行區(qū)分的 一般而言 工控型尋址范圍大 運(yùn) 算 能力強(qiáng) 用于家電的單片機(jī)多為專用型 通常是小封裝 低價(jià)格 外圍器件和外設(shè) 接口集成度高 顯然 上述分類并不是惟一的和嚴(yán)格的 例如 80C51 類單片機(jī)既是通用型又是 總線型 還可以作工控用 2 2 單片機(jī)的工作過程 單片機(jī)自動(dòng)完成賦予它的任務(wù)的過程 也就是單片機(jī)執(zhí)行程序的過程 即一條條 執(zhí)行指令的過程 所謂指令就是把要求單片機(jī)執(zhí)行的各種操作用命令的形式寫下來(lái) 這是由設(shè)計(jì)人員賦予它的指令系統(tǒng)所決定的 一條指令對(duì)應(yīng)著一種基本操作 單片機(jī) 所能執(zhí)行的全部指令 就是該單片機(jī)的指令系統(tǒng) 不同種類的單片機(jī) 其指令系統(tǒng)亦 不同 為使單片機(jī)能自動(dòng)完成某一特定任務(wù) 必須把要解決的問題編成一系列指令 這些指令必須是選定單片機(jī)能識(shí)別和執(zhí)行的指令 這一系列指令的集合就成為程序 程序需要預(yù)先存放在具有存儲(chǔ)功能的部件 存儲(chǔ)器中 存儲(chǔ)器由許多存儲(chǔ)單元 最 小的存儲(chǔ)單位 組成 就像一幢大樓由許多房間組成一樣 指令就存放在這些單元里 單元里的指令取出并執(zhí)行就像大樓的每個(gè)房間的被分配到唯一一個(gè)房間號(hào)一樣 每一 個(gè)存儲(chǔ)單元也必須被分配到唯一的地址號(hào) 該地址號(hào)稱為存儲(chǔ)單元的地址 這樣只要 知道了存儲(chǔ)單元的地址 就可以找到這個(gè)存儲(chǔ)單元 其中存儲(chǔ)的指令就可以被取出 然后再被執(zhí)行 程序通常是順序執(zhí)行的 所以程序中的指令也是一條條順序存放的 單片機(jī)在執(zhí) 行程序時(shí)要能把這些指令一條條取出并加以執(zhí)行 必須有一個(gè)部件能追蹤指令所在的 地址 這一部件就是程序計(jì)數(shù)器 PC 包含在 CPU 中 在開始執(zhí)行程序時(shí) 給 PC 賦以 程序中第一條指令所在的地址 然后取得每一條要執(zhí)行的命令 PC 之中的內(nèi)容就會(huì)自 動(dòng)增加 增加量由本條指令長(zhǎng)度決定 可能是 1 2 或 3 以指向下一條指令的起始地 大連交通大學(xué) 2013 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 5 址 保證指令順序執(zhí)行 2 3 單片機(jī)的引腳及其作用 89C51 單片機(jī)的引腳圖如下 圖 2 1 89C51 單片機(jī)的引腳圖 Vcc 40 腳 接 5V 電源正端 Vss 20 腳 接 5V 電源正端 XTAL1 19 腳 接外部石英晶體的一端 在單片機(jī)內(nèi)部 它是一個(gè)反相放大器的 輸入端 這個(gè)放大器構(gòu)成采用外部時(shí)鐘時(shí) 對(duì)于 HMOS 單片機(jī) 該引腳接地 對(duì)于 CHOMS 單片機(jī) 該引腳作為外部振蕩信號(hào)的輸入端 XTAL2 18 腳 接外部晶體的另一端 在單片機(jī)內(nèi)部 接至片內(nèi)振蕩器的反相放 大器的輸出端 當(dāng)采用外部時(shí)鐘時(shí) 對(duì)于 HMOS 單片機(jī) 該引腳作為外部振蕩信號(hào)的輸 入端 對(duì)于 CHMOS 芯片 該引腳懸空不接 控制信號(hào)或與其它電源復(fù)用引腳有 RST VPD ALE P PSEN 和 EA VPP 等 4 種形式 1 RST VPD 9 腳 RST 即為 RESET VPD 為備用電源 所以該引腳為單片機(jī) 的上電復(fù)位或掉電保護(hù)端 當(dāng)單片機(jī)振蕩器工作時(shí) 該引腳上出現(xiàn)持續(xù)兩個(gè)機(jī)器周期 的高電平 就可實(shí)現(xiàn)復(fù)位操作 使單片機(jī)復(fù)位到初始狀態(tài) 當(dāng) VCC 發(fā)生故障 降低到 低電平規(guī)定值或掉電時(shí) 該引腳可接上備用電源 VPD 5V 為內(nèi)部 RAM 供電 以保證 RAM 中的數(shù)據(jù)不丟失 2 ALE P 30 腳 當(dāng)訪問外部存儲(chǔ)器時(shí) ALE 允許地址鎖存信號(hào) 以每機(jī) 器周期兩次的信號(hào)輸出 3 PSEN 29 腳 片外程序存儲(chǔ)器讀選通輸出端 低電平有效 當(dāng)從外部程序 存儲(chǔ)器讀取指令或常數(shù)期間 每個(gè)機(jī)器周期 PESN 兩次有效 以通過數(shù)據(jù)總線口讀回指 令或常數(shù) 當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器期間 PESN 信號(hào)將不出現(xiàn) 4 EA Vpp 31 腳 EA 為訪問外部程序儲(chǔ)器控制信號(hào) 低電平有效 當(dāng) EA 端 大連交通大學(xué) 2013 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 6 保持高電平時(shí) 單片機(jī)訪問片內(nèi)程序存儲(chǔ)器 4KB MS 52 子系列為 8KB 若超出該范 圍時(shí) 自動(dòng)轉(zhuǎn)去執(zhí)行外部程序存儲(chǔ)器的程序 當(dāng) EA 端保持低電平時(shí) 無(wú)論片內(nèi)有無(wú)程 序存儲(chǔ)器 均只訪問外部程序存儲(chǔ)器 對(duì)于片內(nèi)含有 EPROM 的單片機(jī) 在 EPROM 編程 期間 該引腳用于接 21V 的編程電源 Vpp 輸入 輸出 I O 引腳 P0 口 P1 口 P2 口及 P3 口 1 P0 口 39 腳 22 腳 P0 0 P0 7 統(tǒng)稱為 P0 口 當(dāng)不接外部存儲(chǔ)器與不擴(kuò) 展 I O 接口時(shí) 它可作為準(zhǔn)雙向 8 位輸入 輸出接口 當(dāng)接有外部程序存儲(chǔ)器或擴(kuò)展 I O 口時(shí) P0 口為地址 數(shù)據(jù)分時(shí)復(fù)用口 它分時(shí)提供 8 位雙向數(shù)據(jù)總線 對(duì)于片內(nèi)含有 EPROM 的單片機(jī) 當(dāng) EPROM 編程時(shí) 從 P0 口輸入指令字節(jié) 而當(dāng)檢驗(yàn)程 序時(shí) 則輸出指令字節(jié) 2 P1 口 1 腳 8 腳 P1 0 P1 7 統(tǒng)稱為 P1 口 可作為準(zhǔn)雙向 I O 接口使用 對(duì)于 MCS 52 子系列單片機(jī) P1 0 和 P1 1 還有第 2 功能 P1 0 口用作定時(shí)器 計(jì)數(shù)器 2 的計(jì)數(shù)脈沖輸入端 T2 P1 1 用作定時(shí)器 計(jì)數(shù)器 2 的外部控制端 T2EX 對(duì)于 EPROM 編程和進(jìn)行程序校驗(yàn)時(shí) P0 口接收輸入的低 8 位地址 3 P2 口 21 腳 28 腳 P2 0 P2 7 統(tǒng)稱為 P2 口 一般可作為準(zhǔn)雙向 I O 接 口 當(dāng)接有外部程序存儲(chǔ)器或擴(kuò)展 I O 接口且尋址范圍超過 256 個(gè)字節(jié)時(shí) P2 口用于 高 8 位地址總線送出高 8 位地址 對(duì)于 EPROM 編程和進(jìn)行程序校驗(yàn)時(shí) P2 口接收輸入 的 8 位地址 4 P3 口 10 腳 17 腳 P3 0 P3 7 統(tǒng)稱為 P3 口 它為雙功能口 可以作為 一般的準(zhǔn)雙向 I O 接口 也可以將每 1 位用于第 2 功能 而且 P3 口的每一條引腳均可 獨(dú)立定義為第 1 功能的輸入輸出或第 2 功能 P3 口的第 2 功能見下表 表 2 1 單片機(jī) P3 口管腳含義 引腳 第 2 功能 P3 0 RXD 串行口輸入端 P3 1 TXD 串行口輸出端 P3 2 INT0 外部中斷 0 請(qǐng)求輸入端 低電平有效 P3 3 INT1 外部中斷 1 請(qǐng)求輸入端 低電平有效 P3 4 T0 定時(shí)器 計(jì)數(shù)器 0 計(jì)數(shù)脈沖端 P3 5 T1 定時(shí)器 計(jì)數(shù)器 1 計(jì)數(shù)脈沖端 P3 6 WR 外部數(shù)據(jù)存儲(chǔ)器寫選通信號(hào)輸出端 低電平有效 P3 7 RD 外部數(shù)據(jù)存儲(chǔ)器讀選通信號(hào)輸出端 低電平有效 綜上所述 MCS 51 系列單片機(jī)的引腳作用可歸納為以下兩點(diǎn) 1 單片機(jī)功能多 引腳數(shù)少 因而許多引腳具有第 2 功能 大連交通大學(xué) 2013 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 7 2 單片機(jī)對(duì)外呈 3 總線形式 由 P2 P0 口組成 16 位地址總線 由 P0 口分時(shí)復(fù) 用作為數(shù)據(jù)總線 大連交通大學(xué) 2013 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 8 第三章 八路搶答器的電路設(shè)計(jì) 3 1 電路設(shè)計(jì)原理 為使硬件電路設(shè)計(jì)盡可能簡(jiǎn)潔合理 應(yīng)主要以下幾點(diǎn) 1 工業(yè)上盡可能采用功能強(qiáng)的芯片 以簡(jiǎn)化電路 功能強(qiáng)的芯片可以代替若干普 通芯片 隨著生產(chǎn)工藝的提高 新型芯片的價(jià)格不斷下降 并不一定比若干普通芯片 價(jià)格的總和高 2 留有設(shè)計(jì)余地 在設(shè)計(jì)硬件電路時(shí) 要考慮到將來(lái)修改擴(kuò)展的方便 因?yàn)楹苌?有一錘定音的電路設(shè)計(jì) 如果現(xiàn)在不留余地 將來(lái)可能要為一點(diǎn)小小的修改或擴(kuò)展而 被迫進(jìn)行全面返工 3 程序空間 選用片內(nèi)程序空間足夠大的單片機(jī) 否則因?yàn)槌绦蚩臻g不夠使不得 不進(jìn)行空間擴(kuò)展 4 RAM 空間 大部分 51 系列單片機(jī)的內(nèi)部 RAM 不多 當(dāng)要增強(qiáng)軟件數(shù)據(jù)處理功能 時(shí) 往往覺得不足 如果系統(tǒng)配置了外部 RAM 則建議多留一些空間 如選用 8155 作 I O 接口 就可以增強(qiáng) 256 字節(jié) RAM 如果有大批數(shù)據(jù)需要處理 則應(yīng)配置足夠的 RAM 如 6264 62256 等 隨著軟件設(shè)計(jì)水平的提高 往往只要改變或增加軟件中的數(shù) 據(jù)處理算法 就可以使系統(tǒng)功能提高很多 而系統(tǒng)的硬件不必做任何更換就使系統(tǒng)升 級(jí)換代 只要在硬件電路設(shè)計(jì)初期考慮到這一點(diǎn) 就應(yīng)該為系統(tǒng)將來(lái)升級(jí)留足夠的 RAM 空間 哪怕多設(shè)計(jì)一個(gè) RAM 的插座 暫不插芯片也好 5 I O 端口 在樣機(jī)研制出來(lái)后進(jìn)行現(xiàn)場(chǎng)試用時(shí) 往往會(huì)發(fā)現(xiàn)一些被忽視的問題 而這些問題不是靠單純的軟件措施來(lái)解決的 如有些新的信號(hào)需要采集 就必須增加 輸入檢測(cè)端 有些物理量需要控制 就必須增加輸出端 所以一般在設(shè)計(jì)硬件電路時(shí) 就預(yù)留出一些 I O 端口 核心控制模塊 按鍵輸入模塊 時(shí)鐘與復(fù)位 模塊 顯示模塊 報(bào)警模塊 圖 3 1 主要功能模塊原理框圖 3 2 八路搶答器模塊化設(shè)計(jì) 該搶答器系統(tǒng)的硬件設(shè)計(jì)是以單片機(jī)為中心控制模塊 采用模塊化設(shè)計(jì)的八路搶 答器 具有五個(gè)模塊 分別為 按鍵輸入模塊 顯示模塊 時(shí)鐘與復(fù)位模塊 報(bào)警模 塊 核心控制模塊 大連交通大學(xué) 2013 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 9 系統(tǒng)的主要功能模塊原理框圖如圖 3 1 所示 按鍵輸入模塊共有 14 個(gè)按鍵 分為搶答按鍵和控制按鍵 搶答按鍵共有八個(gè) 分 別為 S1 S8 供搶答選手進(jìn)行搶答使用 P1 口為八個(gè)按鍵搶答信號(hào)的輸入口 低電平 有效 控制按鍵有六個(gè) 分別為 S9 S14 其中 S9 和 S10 分別為 搶答時(shí)間調(diào)整鍵 和 回答時(shí)間調(diào)整鍵 其對(duì)應(yīng)的 I O 接口分別為 P3 3 和 P3 4 S11 和 S12 分別為 時(shí)間 加 1 和 減 1 按鍵 其對(duì)應(yīng)的 I O 接口分別為 P3 5 和 P3 6 S13 和 S14 分 別為 搶答開始按鍵 和 搶答停止按鍵 其對(duì)應(yīng)的 I O 接口分別為 P3 0 和 P3 1 顯示模塊本系統(tǒng)采用四個(gè)共陰極 LED 數(shù)碼管顯示 一個(gè)數(shù)碼管用來(lái)顯示搶答到問 題的選手的號(hào)碼 兩個(gè)用來(lái)顯示倒計(jì)時(shí)時(shí)間 一個(gè)未使用的數(shù)碼管作為以后的擴(kuò)展使 用 時(shí)鐘與復(fù)位模塊包括時(shí)鐘電路和復(fù)位電路 單片機(jī)的最小系統(tǒng)就是由時(shí)鐘電路 復(fù)位電路及單片機(jī)構(gòu)成 單片機(jī)的時(shí)鐘信號(hào)用來(lái)提供單片機(jī)片內(nèi)各種操作的時(shí)間基準(zhǔn) 單片機(jī)的時(shí)鐘信號(hào)通常用兩種電路形式得到 內(nèi)部振蕩方式和外部振蕩方式 復(fù)位操 作則使單片機(jī)的片內(nèi)電路初始化 使單片機(jī)從一種確定的初態(tài)開始運(yùn)行 根據(jù)應(yīng)用的 要求 復(fù)位操作通常有兩種基本形式 上電復(fù)位或開關(guān)復(fù)位 當(dāng) 51 系列單片機(jī)的復(fù)位 引腳 RST 全稱 RESET 出現(xiàn) 2 個(gè)機(jī)器周期以上的高電平時(shí) 單片機(jī)就執(zhí)行復(fù)位操作 如 果 RST 持續(xù)為高電平 單片機(jī)就處于循環(huán)復(fù)位狀態(tài) 報(bào)警模塊在本系統(tǒng)中為附加模塊 它的主要用途就是起到提示并引起人們的注意 它只有在兩種情況下才發(fā)出報(bào)警 一是 開始搶答 按鍵沒有按下時(shí) 選手就按下了 搶答鍵 報(bào)警電路發(fā)出報(bào)警 提示有選手發(fā)生搶答 二是每道題的搶答時(shí)間和問題 的回答時(shí)間在倒計(jì)時(shí) 5 秒時(shí) 報(bào)警電路發(fā)出報(bào)警 提示選手倒計(jì)時(shí)的時(shí)間即將耗盡 核心控制模塊就是人們所謂的 CPU 它是整個(gè)系統(tǒng)的總控制部分 本系統(tǒng)的核心控 制模塊為 51 系列的單片機(jī) 只有我們通過軟件程序的編寫 并將程序?qū)懭雴纹瑱C(jī) 該 系統(tǒng)才會(huì)正確的工作 3 3 時(shí)鐘與復(fù)位模塊 3 3 1 時(shí)鐘模塊 圖 3 2 時(shí)鐘電路 單片機(jī)必須在時(shí)鐘的驅(qū)動(dòng)下才能工作 AT89C51 單片機(jī)的時(shí)鐘產(chǎn)生方法有兩種 內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式 無(wú)論何種形式 都需要外部附加電路 產(chǎn)生時(shí)鐘脈沖 大連交通大學(xué) 2013 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 10 本系統(tǒng)中采用的是內(nèi)部時(shí)鐘方式 時(shí)鐘電路如圖 3 2 所示 從時(shí)鐘電路的示意圖中可以看到 單片機(jī)所跨接的晶體振蕩器旁邊還有兩個(gè)電容 器 C1 和 C2 C1 和 C2 被稱為諧振電容 主要作用有兩點(diǎn) 一是可以促使單片機(jī)系統(tǒng) 快速起振 二是 C1 C2 具有對(duì)頻率進(jìn)行微調(diào)作用 有利于單片機(jī)系統(tǒng)振蕩頻率的穩(wěn) 定 維持單片機(jī)的正常運(yùn)行 諧振電容的容值選擇 與所用的晶體振蕩器的頻率值有 關(guān) 晶體振蕩器的振蕩頻率越高 相應(yīng)的諧振電容的容值也要提高 二者如果配合的 好 可以發(fā)揮諧振電容的積極作用 反之 自激振蕩器頻率的穩(wěn)定性將受到影響 經(jīng) 過大量的實(shí)際應(yīng)用 晶體振蕩器的頻率與諧振電容的容值之間形成了一定的固定搭配 例如 當(dāng)晶體振蕩器的頻率為 12MHz 時(shí) 諧振電容的容值一般為 30pF 左右 理論上單片機(jī)的運(yùn)算速度越快越好 即晶體振蕩器的頻率越高越好 但是 在有 些情況下 單片機(jī)的外圍設(shè)備的速度無(wú)法匹配單片機(jī)的運(yùn)行速度 綜合考慮 本文中 的晶體振蕩頻率設(shè)計(jì)為 12MHz 其機(jī)器周期為 1us 諧振電容的容值選定為 30pF 3 3 2 復(fù)位模塊 單片機(jī)的第 9 腳 RST 為硬件復(fù)位端 只要將該端持續(xù) 2 個(gè)機(jī)器周期的高電平即可 實(shí)現(xiàn)復(fù)位 復(fù)位后單片機(jī)的各狀態(tài)都恢復(fù)到初始化狀態(tài) 其電路圖如圖 3 3 所示 圖 3 3 復(fù)位電路 3 4 顯示模塊 數(shù)碼管發(fā)光原理分兩種情況 共陰極型 a b c d e f g 各引腳輸入高電平 有效 只要哪個(gè)引腳輸入為高電平 對(duì)應(yīng)的二極管就會(huì)發(fā)亮 共陽(yáng)極型結(jié)構(gòu)數(shù)碼管的 a b c d e f g 各引腳輸入低電平有效 只要哪個(gè)引腳輸入低電平 對(duì)應(yīng)的二 極管就會(huì)發(fā)亮 通過點(diǎn)亮不同的發(fā)光段可組成不同的字形 輸入到數(shù)碼管 dp g f e d c b a 的二進(jìn)制碼稱為字段碼 或稱字形碼 數(shù)碼管顯示的結(jié)果為 字形 本文顯示電路使用七段數(shù)碼管 7SEG MPX4 CC 它是共陰極的 由高電電平點(diǎn)亮 大連交通大學(xué) 2013 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 11 在這里我們使用的是七段數(shù)碼管顯示 通常在顯示上我們采用的方法一般包括兩 種 一種是靜態(tài)顯示 一種是動(dòng)態(tài)顯示 其中靜態(tài)顯示的特點(diǎn)是顯示穩(wěn)定不閃爍 程序 編寫簡(jiǎn)單 但占用端口資源多 動(dòng)態(tài)顯示的特點(diǎn)是顯示穩(wěn)定性沒靜態(tài)好 程序編寫復(fù) 雜 但是相對(duì)靜態(tài)顯示而言占用端口資源少 在本設(shè)計(jì)中根據(jù)實(shí)際情況采用的是動(dòng)態(tài) 顯示方法 圖 3 4 七段數(shù)碼顯示管 并通過查表法 將其在數(shù)碼管上顯示出來(lái) 其中 P0 口為字型碼輸入端 P2 口低 3 位為 字選段輸入端 在這里我們通過查表將字型碼送給 7 段數(shù)碼管 數(shù)碼管顯示原理如下 表3 1 顯示字形字段碼對(duì)應(yīng)關(guān)系 字體 顯示字型 共陽(yáng)極段選碼 共陰極段選碼 0 C0H 3FH 1 F9H 06H 2 A4H 5BH 3 B0H 4FH 4 99H 66H 5 92H 6DH 6 82H 7DH 7 F8H 07H 8 80H 7FH 9 90H 6FH F 8EH 71H 滅 FFH 00H MOV A R5 MOVC A A DPTR 查字型 MOV P2 0FDH 送位選碼 大連交通大學(xué) 2013 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 12 MOV P0 A 送字型碼 ACALL DELAY 調(diào)延時(shí) 去閃爍 3 5 按鍵輸入模塊 3 5 1 鍵盤的去抖動(dòng) 組成鍵盤的按鍵有觸點(diǎn)式和非觸點(diǎn)式兩種 單片機(jī)中應(yīng)用的一般是由機(jī)械觸點(diǎn)構(gòu)成的 按鍵如圖3 5 所示 當(dāng)開關(guān)S1斷開時(shí) 單片機(jī)接入口輸入為高電平 S1閉合時(shí) 單片機(jī) 接入口輸入為低電平 圖3 5 按鍵圖 由于按鍵是機(jī)械觸點(diǎn) 當(dāng)機(jī)械觸點(diǎn)斷開 閉合時(shí) 會(huì)有抖動(dòng) P1輸入端的波形如 圖3 6所示 這種抖動(dòng)對(duì)于人來(lái)說(shuō)是感覺不到的 但對(duì)單片機(jī)來(lái)說(shuō) 則是完全可以感應(yīng) 到的 因?yàn)閱纹瑱C(jī)處理的速度是在微秒級(jí) 而機(jī)械抖動(dòng)的時(shí)間至少是毫秒級(jí) 對(duì)單片 機(jī)而言 這已是一段 漫長(zhǎng) 的時(shí)間了 如果鍵處理程序采用中斷方式的話 在響應(yīng) 按鍵時(shí)就可能會(huì)出現(xiàn)問題 也就是說(shuō)按鍵有時(shí)靈 有時(shí)不靈 其實(shí)就是這個(gè)原因 你 只按了一次按鍵 可是單片機(jī)卻已執(zhí)行了多次中斷的過程 若執(zhí)行的次數(shù)正好是奇數(shù) 次 那么結(jié)果正如你所料 若執(zhí)行的次數(shù)是偶數(shù)次 那就不對(duì)了 而如果鍵處理程序 采用查詢方式的話也會(huì)存在響應(yīng)按鍵遲鈍的現(xiàn)象 甚至可能會(huì)漏掉信號(hào) 圖3 6 抖動(dòng)波形圖 為了使 CPU 能正確地讀出按鍵接入口的狀態(tài) 對(duì)每一次按鍵只作一次響應(yīng) 就必 須考慮如何去除抖動(dòng) 也就是消除在按鍵過程中產(chǎn)生的 毛刺 現(xiàn)象 常用的去抖動(dòng) 的方法有兩種 硬件方法和軟件方法 單片機(jī)設(shè)計(jì)中常用軟件法 因此 對(duì)于硬件方 法我們?cè)诖瞬蛔鼋榻B 軟件去除抖動(dòng)其實(shí)很簡(jiǎn)單 這里采用最常用的方法 即延時(shí)重 復(fù)掃描法 延時(shí)法的原理為 因?yàn)?毛刺 脈沖一般持續(xù)時(shí)間短 約為幾 ms 而我們 按鍵的時(shí)間一般遠(yuǎn)遠(yuǎn)大于這個(gè)時(shí)間 所以當(dāng)單片機(jī)檢測(cè)到有按鍵動(dòng)靜 按鍵按下或釋放 后再延時(shí)一段時(shí)間 這里我們?nèi)?10ms 后再判斷此電平是否保持原狀態(tài) 如果是則為有效 按鍵 否則無(wú)效 不過一般情況下 我們通常不對(duì)按鍵釋放的后沿進(jìn)行處理 實(shí)踐證 大連交通大學(xué) 2013 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 13 明 也能滿足一定的要求 3 5 2 按鍵電路圖 八路智能搶答器設(shè)計(jì)中由于按鍵較少 端口資源豐富 因此采用了獨(dú)立鍵盤的方 式 無(wú)雙功能和多功能設(shè)計(jì) 本設(shè)計(jì)中有 8 個(gè)搶答按鍵輸入 一個(gè)開始按鍵 一個(gè)結(jié) 束按鍵 此外還有搶答時(shí)間調(diào)整鍵 回答時(shí)間調(diào)整鍵 加一按鍵減一按鍵各一個(gè) 按 鍵連接圖如圖 3 7 所示 圖 3 7 按鍵電路圖 在圖 3 7 中 8 個(gè)搶答按鍵分別接入單片機(jī)的 P1 0 P1 7 端口 單片機(jī)通過讀取 P1 0 P1 7 的值來(lái)判斷當(dāng)前輸入的是 8 個(gè)搶答按鍵中的哪一個(gè) 搶答時(shí)間調(diào)整和回答時(shí)間調(diào) 整接到單片機(jī)的 P3 3 和 P3 4 接口 加一及減一按鍵接到單片機(jī)的 P3 5 和 P3 6 接口 開始及結(jié)束按鍵接到單片機(jī)的 10 11 腳 這里用到了單片機(jī) 10 11 腳復(fù)合功能中的 IO 端口功能 單片機(jī)通過讀取 10 11 腳的 P3 0 P3 1 的 IO 端口值來(lái)判斷當(dāng)前是否處 于搶答開始狀態(tài)或搶答結(jié)束狀態(tài) 3 6 報(bào)警模塊 實(shí)現(xiàn)單頻音報(bào)警的接口電路比較簡(jiǎn)單 其發(fā)音元件通??刹捎脡弘姺澍Q器 當(dāng)在 蜂鳴器兩引腳上加 3 15V 直流工作電壓 就能產(chǎn)生 3KHz 左右的蜂鳴振蕩音響 大連交通大學(xué) 2013 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 14 圖 3 8 報(bào)警電路 壓電式蜂鳴器結(jié)構(gòu)簡(jiǎn)單 耗電少 更適于在單片機(jī)系統(tǒng)中應(yīng)用 壓電式蜂鳴器 約需 10mA 的驅(qū)動(dòng)電流 可在某端口接上一只三極管和電阻組成的驅(qū)動(dòng)電路來(lái)驅(qū)動(dòng) 在圖 3 8 中 P 3 7 接三極管基極輸入端 當(dāng) P3 7 輸出高電平 1 時(shí) 三極管導(dǎo) 通 蜂鳴器通電發(fā)音 當(dāng) P3 7 輸出低電平 0 時(shí) 三極管截止 蜂鳴器停止發(fā)音 在本系統(tǒng)中 當(dāng)搶答時(shí)間和答題時(shí)間倒計(jì) 5 秒時(shí)就調(diào)用報(bào)警子程序發(fā)聲報(bào)警 大連交通大學(xué) 2013 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 15 第四章 軟件設(shè)計(jì) 4 1 系統(tǒng)程序設(shè)計(jì) 本系統(tǒng)由于較簡(jiǎn)單 程序內(nèi)容相對(duì)較少 本著簡(jiǎn)單易懂的原則 所以采用匯編語(yǔ) 言實(shí)現(xiàn)其軟件的設(shè)計(jì) 進(jìn)行匯編語(yǔ)言程序的編寫應(yīng)遵循以下四個(gè)步驟 構(gòu)思 其主要工作是分析題意 制作程序流程圖 流程圖的邏輯必須符合題意要 求 布局 其主要工作是分配單片機(jī)資源 包括程序地址分配 片內(nèi)儲(chǔ)存單元分配 如確定每個(gè)程序段起始地址 確定某一片內(nèi) RAM 單元作為數(shù)組指針等 編寫 根據(jù)布局安排 將程序流程圖轉(zhuǎn)換為單片機(jī)指令 做到在流程圖各環(huán)節(jié)相 應(yīng)指令對(duì)應(yīng)的同時(shí) 提高運(yùn)用指令的技巧性 修改 對(duì)程序進(jìn)行編譯和試運(yùn)行 如果運(yùn)行不正確的話 一定要找出其中的差異 來(lái) 要知道 編寫程序就是不斷的嘗試錯(cuò)誤 在調(diào)試中不斷修改 提高程序的可靠性 和程序結(jié)構(gòu)的合理性 該系統(tǒng)應(yīng)用程序由主程序和子程序模塊組成 系統(tǒng)應(yīng)用程序采用結(jié)構(gòu)化模塊設(shè)計(jì) 從功能上看 主要包括 主程序 電源檢測(cè)程序 報(bào)警程序 控制程序等 下邊對(duì)程 序流程進(jìn)行介紹 圖 4 1 主程序流程圖 大連交通大學(xué) 2013 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 16 4 2 搶答器主程序流程圖 智能搶答器在正常工作的情況下 首先對(duì)控制系統(tǒng)進(jìn)行初始化 然后進(jìn)行鍵盤掃 描 判斷主持人是否按下了 開始搶答 按鍵 如果按鍵沒有按下 則執(zhí)行非法搶答 查詢子程序 判斷是否有選手發(fā)生了搶答現(xiàn)象 如果 開始搶答 按鍵按下則執(zhí)行倒 計(jì)時(shí)子程序和顯示子程序 并調(diào)用正常搶答處理子程序 其中倒計(jì)時(shí)程序包括搶答倒 計(jì)時(shí)和回答倒計(jì)時(shí) 任何控制系統(tǒng)開始正常工作前都必須要進(jìn)行初始化 在其它應(yīng)用程序確定之后 本部分程序設(shè)計(jì)在于協(xié)調(diào)各部分程序之間的關(guān)系 以促使各部分程序之間有序運(yùn)行 達(dá)到進(jìn)一步優(yōu)化程序設(shè)計(jì)的目的 該智能搶答器的初始化子程序主要是兩個(gè)定時(shí)器和 兩個(gè)外部中斷的初始化 主程序流程圖如圖 4 1 所示 4 3 非法搶答查詢子程序 在主持人未按下 搶答開始鍵 時(shí) 為防止參賽選手發(fā)生搶答 專門設(shè)計(jì)了非法 搶答查詢子程序 當(dāng)有選手發(fā)生搶答時(shí) 系統(tǒng)會(huì)將選手的號(hào)碼保持下來(lái) 并送到 LED 顯示裝置進(jìn)行顯示 同時(shí)調(diào)用非法搶答子程序 非法搶答查詢子程序流程圖如圖 4 2 所示 返回 開始 大連交通大學(xué) 2013 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 17 圖 4 2 非法搶答查詢子程序流程圖 4 4 搶答時(shí)間調(diào)整子程序 該智能搶答器的搶答時(shí)間是可以根據(jù)實(shí)際需要進(jìn)行調(diào)整的 如果想調(diào)節(jié)搶答時(shí)間 按下 搶答時(shí)間調(diào)整鍵 此時(shí) LED 顯示裝置會(huì)顯示當(dāng)前搶答時(shí)間的設(shè)定值 如果想 加 1S 按下 加 1 鍵 如果想減 1S 按下 減 1 鍵 LED 顯示裝置會(huì)自動(dòng)顯示修改 后的搶答時(shí)間 搶答時(shí)間的設(shè)定值范圍是 0 99S 0S 再減 1S 會(huì)變成 99S 同理 99S 再加 1S 會(huì)變成 0S 回答時(shí)間的調(diào)整與此類似 搶答時(shí)間調(diào)整子程序流程圖如圖 4 3 所 示 開始 結(jié)束 圖 4 3 搶答時(shí)間調(diào)整子程序流程圖 大連交通大學(xué) 2013 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 18 第五章 軟件仿真及程序調(diào)試 隨著仿真軟件的廣泛推廣應(yīng)用 為我們的設(shè)計(jì)帶來(lái)了極大的方便 軟件仿真及程 序調(diào)試這一部分是焊接實(shí)物前必須要做的一步 本設(shè)計(jì)采用的是 Proteus 仿真軟件進(jìn) 行八路搶答器的模擬仿真 用 Keil 軟件對(duì)程序進(jìn)行編譯和調(diào)試 5 1Proteus 軟件仿真 進(jìn)行 Proteus 軟件仿真的步驟如下 1 打開 Proteus 軟件選擇新建設(shè)計(jì) 如下圖 圖 5 1 新建 Proteus 設(shè)計(jì) 2 選擇默認(rèn)模板 DEFAULT 保存設(shè)計(jì) 接著設(shè)定圖紙大小 執(zhí)行菜單 系統(tǒng) 設(shè)置圖紙大小 彈出對(duì)話框 在此對(duì)話框中選擇 A4 單擊 確定 3 添加所需的元器件 單片機(jī) AT89C51 30Pf 電容 CAP 12MHz 晶振 CRYSTAL 共陰極七段數(shù)碼管 7SEG MPX4 CC HITEMP10U50V 八輸入與非門 74HC30 六反相器 74LS04 揚(yáng)聲器 SPEAKER 電阻 RES 按鍵 BUTTON 添加步驟 在器件選擇按鈕 中單擊 P 彈出對(duì)話框 在關(guān)鍵字框中輸入所需元器件的名稱就可以 找到相關(guān)元器件 然后雙擊元器件名稱就可以添加元器件 4 將器件放置到繪圖區(qū) 放置電源 地 然后進(jìn)行連線 最后設(shè)置 修改原件 屬性 完成以上步驟 5 當(dāng)原理圖鏈接成功后 將 Keil 軟件生成的 HEX 文件添加到仿真原理圖的單 片機(jī)中 經(jīng)過調(diào)試就可以看到仿真結(jié)果 5 2Keil 軟件的使用 使用 Keil 軟件編程步驟如下 1 雙擊 Keil 的快捷方式 運(yùn)行 Keil 軟件 2 建立一個(gè)新工程 如下圖 圖 5 2 大連交通大學(xué) 2013 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 19 圖 5 2 新建一個(gè)工程 3 然后輸入你要保存工程文件的名字 blqdq 4 這時(shí)會(huì)彈出一個(gè)對(duì)話框 要求選擇單片機(jī)的型號(hào) 選擇 Atmel 的 89C51 單片 機(jī) 右邊欄是對(duì)這個(gè)單片機(jī)的基本的說(shuō)明 然后點(diǎn)擊確定 5 單擊 file 菜單 再在下拉菜單中單擊 New 選項(xiàng)并保存空白檔 命名為 blqdq asm 6 回到編輯界面后 單擊 Target 1 前面的 號(hào) 然后在 Source Group 1 上單擊右鍵 在彈出的菜單中單擊 Add file to Group Source Group 1 7 將 blqdq asm 文件添加上就會(huì)發(fā)現(xiàn) Source Group 1 文件夾中多了一個(gè) 子項(xiàng) blqdq asm 8 編寫程序 在輸入程序時(shí) 由于事先保存待編輯的文件 Keil c51 會(huì)自動(dòng)識(shí) 別關(guān)鍵字 并以不同的顏色標(biāo)示 這樣會(huì)使編寫時(shí)少犯錯(cuò)誤 有利于提高編程效率 9 單擊 Project 菜單 再在下拉菜單中單擊 built target 選項(xiàng)進(jìn)行編 譯 10 對(duì)程序進(jìn)行調(diào)試直到編譯結(jié)果為 0 錯(cuò)誤 0 警告 然后單擊 Project 菜 單 再在下拉菜單中單擊 Options for Target Target 1 在 Output 中單 擊 Create HEX File 選項(xiàng) 點(diǎn)擊確定使程序編譯后產(chǎn)生 HEX 代碼 供下載器軟件使 用 如圖 5 3 大連交通大學(xué) 2013 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 20 圖 5 3 生成 HEX 文件 19 謝 辭 畢業(yè)設(shè)計(jì)是對(duì)我們知識(shí)運(yùn)用能力的一次全面的考核 也是對(duì)我們進(jìn)行科學(xué)研究基 本功的訓(xùn)練 培養(yǎng)我們綜合運(yùn)用所學(xué)知識(shí)獨(dú)立地分析問題和解決問題的能力 為以后 撰寫專業(yè)學(xué)術(shù)論文和工作打下良好的基礎(chǔ) 通過這一階段的努力 我的畢業(yè)論文終于 完成了 這意味著大學(xué)生活即將結(jié)束 在大學(xué)階段 我在學(xué)習(xí)上和思想上都受益非淺 這除了自身的努力外 與各位老師 同學(xué)和朋友的關(guān)心 支持和鼓勵(lì)是分不開的 論文得以完成 要感謝的人實(shí)在太多了 首先我要感謝我的母校 大連交通大 學(xué) 是她為我們提供了學(xué)習(xí)知識(shí)的土壤 使我們?cè)谶@里茁壯成長(zhǎng) 其次我要感謝學(xué)院 的老師們 他們?cè)谄綍r(shí)里不僅教會(huì)我們專業(yè)方面的知識(shí) 而且教會(huì)我們做人做事的道 理 尤其要感謝我的導(dǎo)師趙冰老師 在論文的寫作過程中 趙冰老師傾注了大量的心 血 從選題到開題報(bào)告 從寫作提綱到一遍又一遍地指出論文中的具體問題 嚴(yán)格把 關(guān) 循循善誘 趙老師一絲不茍精益求精的作風(fēng) 嚴(yán)謹(jǐn)求實(shí)的態(tài)度 踏踏實(shí)實(shí)的精神 深深地感染和激勵(lì)著我 他不僅授我以文 而且教我做人的道理 對(duì)趙老師的感激之 情是無(wú)法用言語(yǔ)表達(dá)的 在此我表示衷心的感謝 此外 我還要感謝在畢業(yè)論文寫作 中給予我?guī)椭母魑煌瑢W(xué) 由于經(jīng)驗(yàn)的匱乏 難免有許多考慮不周全的地方 正是由 于你們的幫助和支持 我才能克服一個(gè)個(gè)的困難和疑惑 直至論文的順利完成 正是 由于你們 我才能在各方面取得顯著的進(jìn)步 在此向你們表示我由衷的謝意 在論文即將完成之際 我的心情無(wú)法平靜 從開始進(jìn)入課題到論文的順利完成 有許多師長(zhǎng) 同學(xué) 朋友給了我無(wú)言的幫助 在這里請(qǐng)接受我誠(chéng)摯的謝意 同時(shí)也感謝學(xué)院為我提供良好的做畢業(yè)設(shè)計(jì)的環(huán)境 最后再次感謝我的大學(xué)和所有幫助過我并給我鼓勵(lì)的老師 同學(xué)和朋友 謝謝你 們 20 參考文獻(xiàn) 1 余發(fā)山 單片機(jī)原理及應(yīng)用技術(shù) M 徐州 中國(guó)礦業(yè)大學(xué)出版社 2008 2 徐建軍 MCS 51 系列單片機(jī)應(yīng)用及接口技術(shù) M 北京 人民郵電出版社 2003 3 李光飛 單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo) 北京 北京航天航空大學(xué)出版社 2004 4 馮育長(zhǎng) 單片機(jī)系統(tǒng)設(shè)計(jì)與實(shí)例指導(dǎo) 西安 西安電子科技大學(xué)出版社 2007 5 余永權(quán) ATMEL89 系列單片機(jī)應(yīng)用技術(shù) M 北京航空航天大學(xué)出版社 2002 6 孫育才 MCS 51 系列單片微型計(jì)算機(jī)及其應(yīng)用 M 東南大學(xué)出版社 1998 7 張志良 單片機(jī)原理與控制技術(shù) 第二版 M 機(jī)械工業(yè)出版社 2005 8 樓然苗 51 系列單片機(jī)設(shè)計(jì)實(shí)例 M 北京航空航天大學(xué)出版社 2002 9 王兆安 黃俊 電力電子技術(shù) M 機(jī)械工業(yè)出版社 2003 10 葉斌 電力電子應(yīng)用技術(shù)及裝置 M 機(jī)械工業(yè)出版社 1999 11 王福瑞 單片微機(jī)測(cè)控系統(tǒng)設(shè)計(jì)大全 M 北京航空航天大學(xué)出版社 1999 12 胡漢才 單片機(jī)原理及其接口技術(shù) M 清華大學(xué)出版社 1996 13 Hondoh Wada Andoh A vortex floweter with spectral analysis signal processing Sensor for Industry Processing of the First ISA IEEE Conference 2001 35 40 21 附 錄 附錄 1 電路原理圖 22 附錄 2 程序清單 主程序 OK EQU 20H 搶答開始標(biāo)志位 RING EQU 22H 響鈴標(biāo)志位 DATAO EQU 36H 搶答按鍵口數(shù)據(jù)存放地址 ORG 0000H AJMP MAIN ORG 0003H AJMP INTT0 ORG 000BH AJMP T0INT ORG 001BH AJMP T1INT ORG 0040H MAIN MOV R1 20 初設(shè)搶答時(shí)間 20s MOV R2 30 初設(shè)答題時(shí)間 30s MOV 38H 60 啟用錦囊時(shí)間為 60s MOV TMOD 11H 設(shè)置為定時(shí)器 方式 1 MOV TH0 0F0H MOV TL0 0FFH 越高發(fā)聲頻率越高 MOV TH1 3CH MOV TL1 0B0H 50ms 為一次溢出中斷 SETB EA SETB ET0 SETB ET1 允許兩個(gè)中斷 T0 T1 CLR OK CLR RING SETB TR1 SETB TR0 一開始就運(yùn)行定時(shí)器 以顯示 FFF 如果想從新計(jì)數(shù) 重置 TH1 TL1 就可以了 查詢程序 START MOV DATAO 0FFH 初始化 MOV R5 0bH MOV R4 0bH MOV R3 0bH ACALL DISPLAY 未開始搶答時(shí)顯示 FFF JNB P3 3 SELSUB0 JNB P3 4 TZ3 倒計(jì)時(shí)調(diào)整 JB P3 0 NEXT ACALL DELAY JB P3 0 NEXT 去抖動(dòng) 如果按下 開始鍵 就向下執(zhí)行 否則跳到非法 搶答查詢 SETB EX0 開放 INT0 ACALL BARK 按鍵發(fā)聲 23 MOV A R1 MOV R6 A 送 R1 到 R6 因?yàn)?R1 中保存了搶答時(shí)間 SETB OK 搶答標(biāo)志位 在使用錦囊時(shí)用作判斷是搶答倒計(jì)時(shí)還是 回答倒計(jì)時(shí) MOV R3 0AH 搶答只顯示計(jì)時(shí) 滅號(hào)數(shù) AJMP COUNT 進(jìn)入倒計(jì)時(shí)程序 查詢有效搶答 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 TZ1 JNB P1 7 TZ2 AJMP START TZ1 AJMP FALSE7 TZ2 AJMP FALSE8 TZ3 AJMP SELSUB1 非法搶答處理程序 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 MOV R3 08H AJMP ERROR SELSUB0 搶答時(shí)間 R1 調(diào)整程序 SELSUB0 MOV A R1 MOV B 0AH DIV AB MOV R4 A MOV R5 B MOV R3 0AH ACALL DISPLAY 先在兩個(gè)時(shí)間 LED 上顯示 R1 JNB P3 5 INC0 P3 5 為 1s 按下跳到 INC0 24 JNB P3 6 DEC0 P3 6 為 1s 按下跳到 DEC0 JNB P3 1 BACK0 P3 1 為確定鍵 按下跳到 BACK0 AJMP SELSUB0 INC0 MOV A R1 CJNE A 63H ADD0 如果 R1 不是 99 R1 就加 1 如果是 99 R1 就置 0 MOV R1 00H ACALL DELAY1 AJMP SELSUB0 ADD0 INC R1 ACALL DELAY1 AJMP SELSUB0 DEC0 MOV A R1 JZ SETR1 DEC R1 ACALL DELAY1 AJMP SELSUB0 SETR1 MOV R1 63H ACALL DELAY1 AJMP SELSUB0 BACK0 AJMP START SELSUB1 回答時(shí)間 R2 調(diào)整程序 SELSUB1 MOV A R2 MOV B 0AH DIV AB MOV R4 A MOV R5 B MOV R3 0AH ACALL DISPLAY JNB P3 5 INC1 JNB P3 6 DEC1 JNB P3 1 BACK1 AJMP SELSUB1 INC1 MOV A R2 CJNE A 63H ADD1 MOV R2 00H ACALL DELAY1 AJMP SELSUB1 ADD1 INC R2 ACALL DELAY1 AJMP SELSUB1 DEC1 MOV A R2 JZ SETR2 DEC R2 ACALL DELAY1 25 AJMP SELSUB1 SETR2 MOV R2 63H ACALL DELAY1 AJMP SELSUB1 BACK1 AJMP START 啟用錦囊程序 REPEAT MOV A 38H MOV R6 A CLR RING 倒計(jì)時(shí)程序 COUNT MOV R0 00H 重置定時(shí)器中斷次數(shù) MOV TH1 3CH MOV TL1 0B0H 重置定時(shí)器 RECOUNT MOV A R6 R6 保存了倒計(jì)時(shí)的時(shí)間 MOV B 0AH DIV AB 除 10 分出十位和各位 MOV 30H A 十位存到 30H MOV 31H B 個(gè)位存到 31H M- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
15 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 基于 單片機(jī) 八路 搶答 設(shè)計(jì)
鏈接地址:http://m.appdesigncorp.com/p-10265719.html