畢業(yè)設(shè)計(jì)——基于單片機(jī)人體反應(yīng)速度測(cè)試儀.doc
《畢業(yè)設(shè)計(jì)——基于單片機(jī)人體反應(yīng)速度測(cè)試儀.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《畢業(yè)設(shè)計(jì)——基于單片機(jī)人體反應(yīng)速度測(cè)試儀.doc(22頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
沈陽(yáng)工學(xué)院 畢業(yè)設(shè)計(jì)報(bào)告 題 目:基于單片機(jī)人體反應(yīng)速度測(cè)試儀 院 系: 信息與控制學(xué)院 (黑三) 專 業(yè): 通信工程 (黑三) 班級(jí)學(xué)號(hào): 093041 07 (黑三) 學(xué)生姓名: 張 三 (黑三) 指導(dǎo)教師: (黑三) 成 績(jī): 2014 年 06 月 25 日 摘 要 本文是基于單片機(jī)人體反應(yīng)速度測(cè)試描述,通過(guò)單片機(jī)測(cè)試人的反應(yīng)速度。在本 設(shè)計(jì)中以 AT89S52 單片機(jī)為核心的人體反應(yīng)速度測(cè)試儀,主要通過(guò)控制測(cè)試燈的狀態(tài), 在測(cè)試按鍵的狀態(tài)來(lái)間接計(jì)算人體反應(yīng)速度。正常情況下系統(tǒng)運(yùn)行主程序一直處于空 閑等待狀態(tài),知道測(cè)試者按下按鍵后,LED 測(cè)試燈立即點(diǎn)亮。AT89S52 單片機(jī)在 LED 測(cè)試燈亮的同時(shí)開始計(jì)算一個(gè)隨機(jī)時(shí)間,在一段隨機(jī)時(shí)間結(jié)束后,AT89S52 單片機(jī) 把 LED 測(cè)試燈熄滅,并開始計(jì)時(shí)燈滅與測(cè)試者放開按鍵的時(shí)間差,此計(jì)時(shí)時(shí)間用于紀(jì) 錄被測(cè)試者的反應(yīng)時(shí)間,并以毫秒為時(shí)間單位在 4 位數(shù)碼管上顯示。如果在 LED 測(cè)試 燈滅之前提前放開測(cè)試按鍵,則顯示 9999 作為出錯(cuò)信息。 設(shè)計(jì)中采用 AT89S52 單片機(jī),其以高性能低價(jià)格的優(yōu)勢(shì)成為全球使用范圍最廣泛 的單片機(jī)之一;顯示部分采用 LED 數(shù)碼管的顯示方式,本套系統(tǒng)在不影響其測(cè)試性能 的情況下,大大的節(jié)省了設(shè)計(jì)成本,是性價(jià)比較高的一款人體反應(yīng)測(cè)試議。和其他測(cè) 試儀相比具有明顯的價(jià)格競(jìng)爭(zhēng)優(yōu)勢(shì);同時(shí),本設(shè)計(jì)作品的使用方法簡(jiǎn)單,只需按下按 鍵即可完成測(cè)試,方便測(cè)試人員的測(cè)試使用。 關(guān)鍵詞:?jiǎn)纹瑱C(jī);反應(yīng)速度;AT89S52 ;LED; 數(shù)碼管 Abstract This article is based on single chip microcomputer human reaction speed tests described, through the single chip microcomputer test response speed. AT89S52 MCU as the core in the design of the human body reaction velocity tester, mainly by controlling the state of the test lamp, in the state of the test button to indirect calculation of human body reaction speed. System normal operation of the main program has been idle waiting state, know the tester after press the button, the LED test lamp light up immediately. AT89S52 single chip microcomputer in LED to test the lights at the same time began to calculate a random time, at the end of a random time, AT89S52 single chip microcomputer test the LED lights, and start timing lights and testers release button lag, this timer is used to record the subject's reaction time, and in milliseconds as the unit of time in the four digital tube display. If the LED test before the lights went out early release test button, 9999 as the error message is displayed. Design USES AT89S52 single chip microcomputer, its to high performance low price advantage to become one of the world scope the most widely used microcontroller; Display part adopts LED digital tube display, this set of system in the case of does not affect the test performance, greatly save the design cost, is the high cost performance of a human reaction test. Compared with other tester has obvious price competitive advantage; At the same time, the use of this design method is simple, just press the button to complete the test, the convenience for the tester's test. Keywords: Single chip microcomputer; Reaction Speed; AT89S52; LED; Digital tube 目 錄 1 硬件部分設(shè)計(jì) 1 1.1 硬件結(jié)構(gòu)設(shè)計(jì) .2 1.2 硬件電路設(shè)計(jì) .3 1.2.1 硬件模塊選擇 .3 1.2.2 硬件模塊設(shè)計(jì) .3 1.2.3 控制計(jì)算公式 .5 2 軟件部分設(shè)計(jì) 6 2.1 開發(fā)環(huán)境 7 2.2 主體程序設(shè)計(jì) 7 2.2.1 主程序設(shè)計(jì) .7 2.2.2 中斷程序設(shè)計(jì) .7 3 系統(tǒng)測(cè)試 8 3.1 軟件測(cè)試 8 3.2 硬件測(cè)試 8 結(jié) 論 .9 參考文獻(xiàn) .10 附錄 A .12 附錄 B .13 附錄 C .14 沈 陽(yáng) 工 學(xué) 院 學(xué) 士 報(bào) 告 0 1 硬件部分設(shè)計(jì) 本項(xiàng)目以 AT89S52 單片機(jī)為核心,實(shí)現(xiàn)對(duì)人體反應(yīng)速度的測(cè)試,主要控制測(cè)試燈 的狀態(tài),通過(guò)測(cè)試按鍵的狀態(tài)來(lái)間接計(jì)算人體反應(yīng)速度。正常情況下系統(tǒng)一直處于空 閑等待狀態(tài),直到測(cè)試者按下按鍵后,LED 測(cè)試燈立即點(diǎn)亮。AT89S52 單片機(jī)在 LED 測(cè)試燈亮的同時(shí)開始計(jì)算一個(gè)隨機(jī)時(shí)間,在一段隨機(jī)時(shí)間結(jié)束后,AT89S52 單片機(jī)把 LED 測(cè)試燈熄滅,并開始計(jì)時(shí)燈滅與測(cè)試者放開按鍵的時(shí)間差,此計(jì)時(shí)時(shí)間用于紀(jì)錄 被測(cè)試者的反應(yīng)時(shí)間,并以毫秒為時(shí)間單位在 4 位數(shù)碼管上顯示。如果在 LED 測(cè)試燈 滅之前提前放開測(cè)試按鍵,則顯示 9999 作為出錯(cuò)信息。整體系統(tǒng)框圖如圖 1.1 所示。 圖 1.1 單片機(jī)引腳圖 1.1 硬件結(jié)構(gòu)設(shè)計(jì) 1.1.1 AT89S52 單片機(jī)的介紹 單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能 力的中央處理器 CPU 隨機(jī)存儲(chǔ)器 RAM、只讀存儲(chǔ)器 ROM、多種 I/O 口和中斷系統(tǒng)、 定時(shí)器、計(jì)時(shí)器等功能集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。 AT89S52 是一種低功耗、高性能 CMOS8 位微控制器,具有 8K 在系統(tǒng)可編程 Flash 存儲(chǔ)器。使用 Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè) 80C51 產(chǎn)品 指令和引腳完全兼容。片上 Flash 允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。 在單芯片上,擁有靈巧的 8 位 CPU 和在系統(tǒng)可編程 Flash,使得 AT89S52 為眾多嵌入 式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52 具有以下標(biāo)準(zhǔn)功能:8k 字 AT89C52 單片機(jī)系統(tǒng) LED 數(shù)碼管顯示器 按鍵 LED 按鍵指示燈 沈 陽(yáng) 工 學(xué) 院 學(xué) 士 報(bào) 告 1 節(jié) Flash,256 字節(jié) RAM,32 位 I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè) 16 位 定時(shí)器/計(jì)數(shù)器,一個(gè) 6 向量 2 級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另 外,AT89S52 可降至 0Hz 靜態(tài)邏輯操作,支持 2 種軟件可選擇節(jié)電模式??臻e模式下, CPU 停止工作,允許 RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下, RAM 內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位 為止。8 位微控制器 8K 字節(jié)在系統(tǒng)可編程 Flash AT89S52。 與 MCS-51 單片機(jī)產(chǎn)品兼容、8K 字節(jié)在系統(tǒng)可編程 Flash 存儲(chǔ)器、1000 次擦寫周 期、全靜態(tài)操作:0Hz ~33Hz 、 三級(jí)加密程序存儲(chǔ)器 、32 個(gè)可編程 I/O 口線 、三個(gè) 16 位定時(shí)器/計(jì)數(shù)器八個(gè)中斷源、全雙工 UART 串行通道、低功耗空閑和掉電模式、掉 電后中斷可喚醒、看門狗定時(shí)器、雙數(shù)據(jù)指針、掉電標(biāo)識(shí)符。單片機(jī)引腳圖如圖 1.2 所示。 圖 1.2 AT89S52 單片機(jī)引腳圖 1.1.2 LED 發(fā)光二極管的特性 (1) 發(fā)光響應(yīng)快,亮度強(qiáng),高頻特性好;而且隨著材料的不同,數(shù)碼管還能發(fā)出紅、 黃、綠、藍(lán)、橙等多種顏色的光。 沈 陽(yáng) 工 學(xué) 院 學(xué) 士 報(bào) 告 2 (2) 機(jī)械性能好,體積小,重量輕,價(jià)格低廉;能與 COMS 和 TTL 電路配合使用; 使用壽命長(zhǎng)。 (3) 工作電壓低,驅(qū)動(dòng)電流適中。每段電流為 5~10mA,一只數(shù)碼管的 7 段 LED 全亮需要電流 35~70mA。這樣打的電流需要由驅(qū)動(dòng)電路提供,因此,使用時(shí)要注意數(shù) 碼管的驅(qū)動(dòng)問(wèn)題。 在使用中,為了給發(fā)光二極管加驅(qū)動(dòng)電壓,他們應(yīng)有一個(gè)公共的引腳,公共的引 腳有如下兩種鏈接方法:一、共陰極接法。把發(fā)光二極管的陰極連接在一起構(gòu)成陰極 公共引腳,使用時(shí)公共引腳接地,這樣陽(yáng)極引腳上加高電平的發(fā)光二極管就導(dǎo)通點(diǎn)亮, 而加低電平的則不亮。二、共陽(yáng)極接法。把發(fā)光二極管的陽(yáng)極連接在一起作為陽(yáng)極公 共引腳,使用時(shí)陽(yáng)極公共引腳接+5V。這樣陰極引腳上加低電平的發(fā)光二極管即可導(dǎo)通 點(diǎn)亮,二加高電平的則點(diǎn)不亮。 1.1.3 LED 數(shù)碼管顯示器顯示原理 并排使用的多位數(shù)碼管成為 LED 顯示器。LED 顯示器多采用動(dòng)態(tài)顯示方式,全部 數(shù)碼管共用一套段碼驅(qū)動(dòng)電路,各位數(shù)碼管的同段引腳短接后再接到對(duì)應(yīng)段碼的驅(qū)動(dòng) 線上。顯示時(shí)通過(guò)位控制信號(hào)采用掃描的方法逐位地循環(huán)點(diǎn)亮各位數(shù)碼管。動(dòng)態(tài)顯示 雖然在任一時(shí)刻只有一位數(shù)碼管被點(diǎn)亮,但是由于人眼具有的視覺殘留效應(yīng),看起來(lái) 與全部數(shù)碼管持續(xù)點(diǎn)亮的效果完全一樣。 LED 顯示器的動(dòng)態(tài)顯示需要為各位提供段碼以及相應(yīng)的位控制,此即通常所說(shuō)的 段控和位控。把 LED 顯示器段碼表預(yù)先存放在存儲(chǔ)器中,使用時(shí)通過(guò)查表就可以得到 段碼。段碼輸出后送到公共端碼線上,也可稱為段控信號(hào)。而通過(guò)并行口輸出的相互 獨(dú)立的位碼則是起選通作用的,也稱位控活掃描信號(hào),用于選擇顯示位。 動(dòng)態(tài)顯示具有硬件簡(jiǎn)單,功耗低和顯示靈活性強(qiáng)等優(yōu)點(diǎn),但動(dòng)態(tài)顯示增加了驅(qū)動(dòng) 軟件的復(fù)雜性,且顯示亮度較低。 1.2 硬件電路設(shè)計(jì) LED 數(shù)碼管的顯示電路中采用動(dòng)態(tài)數(shù)碼管顯示,在其中 P0 端口控制段碼,低電平 有效,P2.0~P2.3 端口控制位碼,高電平有效。P2.3 端口控制第 1 個(gè)數(shù)碼管,P2.2 端口 沈 陽(yáng) 工 學(xué) 院 學(xué) 士 報(bào) 告 3 控制第 2 個(gè)數(shù)碼管,P2.1 端口控制第 3 個(gè)數(shù)碼管,P2.0 端口控制第 4 個(gè)數(shù)碼管。 各個(gè)數(shù)碼管的段碼都是 P0 端口的輸出,即各個(gè)數(shù)碼管輸入的段碼都是一樣的,為 了使其分別顯示不同的數(shù)字,可采用動(dòng)態(tài)掃描的方式,即先只讓最低位顯示 0,經(jīng)過(guò)一 段延時(shí),再只讓次低位顯示 1,以此類推。由于視覺暫留,只要延時(shí)時(shí)間足夠短,就能 夠使得數(shù)碼的顯示看起來(lái)非常穩(wěn)定清楚。 1.2.1 硬件模塊選擇 硬件總體連接,用一只發(fā)光二極管模擬測(cè)試燈,以 AT89S52 單片機(jī)的 P1.0 端口控 制這只發(fā)光二極管、發(fā)光二極管加限流電阻+5V 電源, P1.0 端口輸出低電平時(shí),測(cè)試 燈亮,輸出高電平時(shí),測(cè)試燈滅。P1.1 端口接測(cè)試按鍵,P0 端口控制 LED 數(shù)碼管的 七段數(shù)碼顯示,P2.0~P2.3 控制 4 位數(shù)碼管的選位。 本項(xiàng)目中的店鋪單片機(jī)采用目前使用最廣泛、成本最低廉的 AT89S52,其性能在 本設(shè)計(jì)中完全足夠。 為了焊接上的方便,本設(shè)計(jì)中的 LED 數(shù)碼管顯示器采用四位共陽(yáng)數(shù)碼管。數(shù)碼管 的共陽(yáng)極就是把所有 LED 的陽(yáng)極連接到共同接點(diǎn) com,而每個(gè) LED 的陰極分別為 a、b、c、d、e 、f、g 及 dp(小數(shù)點(diǎn)) ;共陰極則是把所有 LED 的陰極連接到共同接點(diǎn) com,而每個(gè) LED 的陽(yáng)極分別為 a、b、c、d、e、 f、g 及 dp(小數(shù)點(diǎn)) ,如下圖所示。 圖中的 8 個(gè) LED 分別與上面那個(gè)圖中的 A~DP 各段相對(duì)應(yīng),通過(guò)控制各個(gè) LED 的亮 滅來(lái)顯示數(shù)字。數(shù)碼管的內(nèi)部示意圖如圖 1.3 所示。 圖 1.3 數(shù)碼管的內(nèi)部示意圖 1.2.2 硬件模塊設(shè)計(jì) 1. 單片機(jī)系統(tǒng)電路設(shè)計(jì) 沈 陽(yáng) 工 學(xué) 院 學(xué) 士 報(bào) 告 4 單片機(jī)系統(tǒng)的設(shè)計(jì)主要包括單片機(jī)的電源設(shè)計(jì)、單片機(jī)時(shí)鐘電路設(shè)計(jì)、單片機(jī)復(fù) 位電路設(shè)計(jì)等。時(shí)鐘電路中采用 11.0592MHz 的晶振作為系統(tǒng)時(shí)鐘,單片機(jī)復(fù)位電路 采用上電自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位兩種方式,在 51 單片機(jī)中單片機(jī)的復(fù)位都是采用高 電平復(fù)位方式。單片機(jī)最小系統(tǒng)圖如圖 1.4 所示。 圖 1.4 單片機(jī)最小系統(tǒng)圖 2. 按鍵和指示燈設(shè)計(jì) 本設(shè)計(jì)的方案是通過(guò)人體去按下按鍵,由人體按下與松開按鍵的時(shí)間開判斷人體 反應(yīng)速度的,所以設(shè)計(jì)中必須設(shè)計(jì)按鍵電路,為了操作者操作更明了,設(shè)計(jì)中增加了 一個(gè) LED 發(fā)光二極管作為按鍵指示。設(shè)計(jì)電路如圖 1.5 所示。 沈 陽(yáng) 工 學(xué) 院 學(xué) 士 報(bào) 告 5 圖 1.5 LED 指示燈及按鍵電路圖 3. 數(shù)碼管驅(qū)動(dòng)設(shè)計(jì) 本設(shè)計(jì)中由于采用的是三寸共陽(yáng) LED 數(shù)碼管顯示器,所需的驅(qū)動(dòng)電流不大,在本 項(xiàng)目中采用低成本的 8550PNP 型三極管作為數(shù)碼管的驅(qū)動(dòng),為了限制電流,防止電流 過(guò)大對(duì)數(shù)碼管燒壞,設(shè)計(jì)中在數(shù)碼管的段選端分別串上一個(gè) 100 歐姆的電阻,數(shù)碼管 的驅(qū)動(dòng)如圖 1.6 所示。 圖 1.6 數(shù)碼管驅(qū)動(dòng)電路圖 1.2.3 控制計(jì)算公式 在本系統(tǒng)中的計(jì)算主要是針對(duì)人體反應(yīng)速度的計(jì)算。在測(cè)試者按下按鍵后,LED 測(cè)試燈立即點(diǎn)亮,在燈亮一個(gè)隨機(jī)時(shí)間后就通過(guò)單片機(jī)控制燈滅,這時(shí)單片機(jī)定時(shí)器 就開始計(jì)時(shí),定時(shí)器初始值為 Time1;在測(cè)試者看到 LED 燈滅時(shí)就釋放按鍵,此時(shí)定 時(shí)器的值為 Time2,通過(guò)計(jì)算燈滅與測(cè)試者放開按鍵的時(shí)間差,得出測(cè)試者的反應(yīng)速 度。具體計(jì)算公式如式(1.1) V 測(cè)試 =Time2-Time1 (1.1) 式中 V 測(cè)試 為反應(yīng)速度。 沈 陽(yáng) 工 學(xué) 院 學(xué) 士 報(bào) 告 6 2 軟件部分設(shè)計(jì) 本系統(tǒng)使用 AT89C51 作為控制的單片機(jī)芯片,軟件設(shè)計(jì)主要分為系統(tǒng)初始化、振 鈴檢測(cè)計(jì)數(shù)、控制摘掛機(jī)、雙音頻信號(hào)分析處理、控制電器、密碼處理(包括密碼檢 測(cè)和密碼修改) 、信號(hào)音提示等部分,每個(gè)功能模塊對(duì)于整體設(shè)計(jì)都是非常重要的,單 片機(jī) AT89C51 通過(guò)軟件程序才能很好的對(duì)外部的信息進(jìn)行采集、分析和決策。系統(tǒng)的 主程序流程圖如圖 2.1 所示。 圖 2.1 主程序流程圖 否 是 否 是 是 否 開始 初始化 按鍵是否按下 While(1) 系統(tǒng)產(chǎn)生一個(gè)隨機(jī)時(shí)間作為 LED 燈亮的時(shí)間 隨機(jī)時(shí)間是否到 LED 燈滅 定時(shí)器開始計(jì)時(shí) 按鍵是否松開 數(shù)碼管顯示 結(jié)束 沈 陽(yáng) 工 學(xué) 院 學(xué) 士 報(bào) 告 7 2.1 開發(fā)環(huán)境 本設(shè)計(jì)采用 Keil Software 公司出品的集成開發(fā)環(huán)境進(jìn)行編程,其版本為 Keil μVision4。Keil μVision4 是 2009 年 2 月發(fā)布的最新版本,是針對(duì) Windows 桌面平 臺(tái)所研發(fā)的一套完整的集成開發(fā)環(huán)境,具有可視化、靈活的 Windows 窗口管理。該軟 件不僅給用戶提供了豐富的庫(kù)函數(shù),而且提供了功能強(qiáng)大的開發(fā)測(cè)試工具;既支持 C 語(yǔ)言編程,也支持匯編語(yǔ)言編程;可以完成編輯、編譯、連接、測(cè)試、仿真等整個(gè)開 發(fā)流程;此外,在程序被編譯之后,即可生成相應(yīng)的匯編語(yǔ)言代碼,使用戶可以切身 感覺到該款軟件的生成目標(biāo)的代碼效率是相當(dāng)高的,并且多數(shù)語(yǔ)句生成的匯編代碼更 為緊湊和容易理解,進(jìn)而使得編程效率更為高效。 2.2 主體程序設(shè)計(jì) 主程序采用查詢方式,當(dāng)按下 T89S52 單片機(jī)為核心的人體反應(yīng)速度測(cè)試儀,主要 控制測(cè)試燈的狀態(tài),通過(guò)測(cè)試按鍵的狀態(tài)來(lái)間接計(jì)算人體反應(yīng)速度。正常情況下系統(tǒng) 運(yùn)行主程序一直處于空閑等待狀態(tài),知道測(cè)試者按下按鍵后,LED 測(cè)試燈立即點(diǎn)亮。 AT89S52 單片機(jī)在 LED 測(cè)試燈亮的同時(shí)開始計(jì)算一個(gè)隨機(jī)時(shí)間,在一段隨機(jī)時(shí)間結(jié)束 后,AT89S52 單片機(jī)把 LED 測(cè)試燈熄滅,并開始計(jì)時(shí)燈滅與測(cè)試者放開按鍵的時(shí)間差, 此計(jì)時(shí)時(shí)間用于紀(jì)錄被測(cè)試者的反應(yīng)時(shí)間,并以毫秒為時(shí)間單位在 4 位數(shù)碼管上顯示。 如果在 LED 測(cè)試燈滅之前提前放開測(cè)試按鍵,則顯示 9999 作為出錯(cuò)信息。 2.2.1 設(shè)計(jì)流程 當(dāng)整個(gè)系統(tǒng)上電時(shí),進(jìn)行一系列的初始化,初始化完畢后則通過(guò)查詢的方式等待 按鍵按下,當(dāng)按鍵按下后 LED 測(cè)試燈立即點(diǎn)亮,同時(shí)單片機(jī)通過(guò)一個(gè)函數(shù)開始計(jì)算一 個(gè)隨機(jī)時(shí)間,在一段隨機(jī)時(shí)間結(jié)束后,AT89S52 單片機(jī)把 LED 測(cè)試燈熄滅,并開始計(jì) 時(shí)燈滅與測(cè)試者放開按鍵的時(shí)間差,此計(jì)時(shí)時(shí)間用于紀(jì)錄被測(cè)試者的反應(yīng)時(shí)間,并以 毫秒為時(shí)間單位在 4 位數(shù)碼管上顯示。如果在 LED 測(cè)試燈滅之前提前放開測(cè)試按鍵, 則顯示 9999 作為出錯(cuò)信息。 沈 陽(yáng) 工 學(xué) 院 學(xué) 士 報(bào) 告 8 2.2.2 初始化編程 單片機(jī)上電后將首先進(jìn)行的就是初始化,其中硬件初始化包括 LED 指示燈 IO 口 的初始化、按鍵接口的初始化、LED 數(shù)碼管控制引腳的初始化;軟件初始化包括中斷 的初始化、定時(shí)器的初始化等等。 2.2.2 中斷程序設(shè)計(jì) 定時(shí)器的定時(shí)時(shí)間是 20ms,用作掃描數(shù)碼管顯示,在定時(shí)器開啟時(shí),定時(shí)器開始 定時(shí),此時(shí)主程序正常運(yùn)行,當(dāng)定時(shí)器的定時(shí)時(shí)間到時(shí),主程序不在執(zhí)行,開始進(jìn)入 中斷程序,在中斷程序中,若計(jì)時(shí)了 1s 就對(duì)時(shí)間進(jìn)行處理且計(jì)數(shù)標(biāo)志清零,賦值給相 應(yīng)的變量且 second 減 1,若沒(méi)有則計(jì)數(shù)標(biāo)志 count 就進(jìn)行加 1,若倒計(jì)時(shí)的時(shí)間為零則 重新賦值,中斷程序執(zhí)行完后返回主程序。中斷程序流程圖如圖 2.2 所示。 圖 2.2 中斷程序流程圖 是 否 否 是 開始 定時(shí)器初始化 開啟定時(shí)器 按鍵是否按下 按鍵是否松開 停止計(jì)時(shí),關(guān)閉定時(shí)器 返回 沈 陽(yáng) 工 學(xué) 院 學(xué) 士 報(bào) 告 9 3 系統(tǒng)測(cè)試 按照設(shè)計(jì)程序的分析,LED 數(shù)碼管的動(dòng)態(tài)掃描的頻率是 1000HZ,在實(shí)際使用時(shí) 完全沒(méi)有閃爍。在程序中,定時(shí)器 20ms 中斷一次,變量 sec100 自增,中斷 100 次時(shí), 秒的顯示自增,用定時(shí)器來(lái)定時(shí),準(zhǔn)確。另外,用按鍵來(lái)開啟定時(shí)器,按鍵具有暫停 的功能。當(dāng)數(shù)碼管上出現(xiàn)提示信息時(shí),反應(yīng)者按下按鍵,就可以測(cè)量出反應(yīng)時(shí)間,并 在數(shù)碼管上顯示出來(lái)。按照正常的設(shè)計(jì)理念,整個(gè)系統(tǒng)是能夠正常工作的。 3.1 軟件測(cè)試 軟件調(diào)試是利用仿真工具進(jìn)行在線仿真調(diào)試,除發(fā)現(xiàn)和解決程序錯(cuò)誤外,也可發(fā) 現(xiàn)硬件故障。由于我的 P0.0~P0.7 接 A0~A7 在電路中接反了,故將數(shù)碼管的碼表進(jìn)行 修改,然后才成功的。 3.2 硬件測(cè)試 硬件的調(diào)試主要是把電路各種參數(shù)調(diào)整到符合設(shè)計(jì)要求。具體步驟如下: (1)先排除硬件電路故障,包括設(shè)計(jì)性錯(cuò)誤和工藝性故障,一般原則是先靜態(tài)后動(dòng) 態(tài)。 (2)利用萬(wàn)用表或邏輯測(cè)試儀器,檢查電路中的各器件以及引腳是否連接正確,是 否有短路故障。發(fā)現(xiàn)有些焊點(diǎn)連到了一起,造成了短路,然后進(jìn)行了修改。 (3)先將單片機(jī) AT89S52 芯片取下,對(duì)電路板進(jìn)行通電檢查,通過(guò)觀察看是沒(méi)有異 常,然后用萬(wàn)用表測(cè)試各電源電壓,這些都沒(méi)有問(wèn)題,接上仿真機(jī)進(jìn)行聯(lián)機(jī)調(diào)試觀察 到各接口線路均正常。該系統(tǒng)由 5V 電源來(lái)驅(qū)動(dòng),上電后,整機(jī)工作電流為 65mA,電 流穩(wěn)定無(wú)大的波動(dòng)。經(jīng)過(guò)測(cè)試與分析,此系統(tǒng)穩(wěn)定可用。 沈 陽(yáng) 工 學(xué) 院 學(xué) 士 報(bào) 告 10 結(jié) 論 本文研究與設(shè)計(jì)的人體反應(yīng)測(cè)試儀采用了通用的電子元器件,利用 AT89S52 單片 機(jī)及相關(guān)的外圍器件實(shí)現(xiàn)人體反應(yīng)測(cè)試儀,利用單片機(jī)的定時(shí)器以及外部中斷的原理, 將軟、硬件有機(jī)地結(jié)合起來(lái),使得系統(tǒng)能夠正確地進(jìn)行計(jì)時(shí),同時(shí)使數(shù)碼管能夠正確 地顯示測(cè)試結(jié)果。控制程序的單片機(jī)部分利用 C 語(yǔ)言編寫。設(shè)計(jì)時(shí),首先通過(guò)在線編 程,然后具體焊接硬件作品、仿真,完全實(shí)現(xiàn)了設(shè)計(jì)功能。本設(shè)計(jì)中,利用常規(guī)的數(shù) 碼管掃描方法,通過(guò)硬件電路的具體應(yīng)用和系統(tǒng)的仿真研究得出,本設(shè)計(jì)不僅安裝簡(jiǎn) 單、成本低,更重要的是工作性能穩(wěn)定,是一個(gè)實(shí)用、創(chuàng)新型的工程設(shè)計(jì)。 通過(guò)這次的畢業(yè)設(shè)計(jì),我能運(yùn)用已學(xué)的知識(shí)解決我在設(shè)計(jì)中遇到的問(wèn)題,使自己的 動(dòng)手能力和思考問(wèn)題的能力得到了很大的提高。在做設(shè)計(jì)的過(guò)程中我查閱了很多的資 料,并認(rèn)真的閱讀這些與我的設(shè)計(jì)相關(guān)的資料,從而我的專業(yè)涵養(yǎng)得到了提高,知識(shí) 的儲(chǔ)備量也有所增加。在做設(shè)計(jì)時(shí),我復(fù)習(xí)了很多專業(yè)課的知識(shí),這使得我的專業(yè)知 識(shí)在離校之前得到了鞏固。我認(rèn)為這是我在整個(gè)設(shè)計(jì)工程中得到的最好的回報(bào)。整個(gè) 設(shè)計(jì)通過(guò)了軟件和硬件上的調(diào)試、仿真。我想這對(duì)于自己以后的學(xué)習(xí)和工作都會(huì)有很 大的幫助的。在這次設(shè)計(jì)中遇到了很多實(shí)際性的問(wèn)題,在實(shí)際設(shè)計(jì)中才發(fā)現(xiàn),書本上 理論性的東西與在實(shí)際運(yùn)用中的還是有一定的出入的,所以有些問(wèn)題不但要深入地理 解,而且要不斷地更正以前的錯(cuò)誤思維。對(duì)于單片機(jī)設(shè)計(jì), 其硬件電路是比較簡(jiǎn)單的,主要是解決程序設(shè)計(jì)中的問(wèn)題。而程序設(shè)計(jì)是一個(gè)很 靈活的東西,它反映了你解決問(wèn)題的邏輯思維和創(chuàng)新能力。它才是一個(gè)設(shè)計(jì)的靈魂所 在。因此在整個(gè)設(shè)計(jì)過(guò)程中大部分時(shí)間是用在程序上面的。可以說(shuō)單片機(jī)的設(shè)計(jì)是軟 件和硬件的結(jié)合,二者是密不可分的。 但是,通過(guò)這次設(shè)計(jì)我也發(fā)現(xiàn)自己的很多不 足之處。在設(shè)計(jì)過(guò)程中我發(fā)現(xiàn)自己考慮問(wèn)題很不全面,自己的專業(yè)知識(shí)掌握的很不牢 固,所掌握的計(jì)算機(jī)應(yīng)用軟件還不夠多,我希望自己的這些不足之處能在今后的工作 和學(xué)習(xí)中得到改善。而且,通過(guò)這次設(shè)計(jì),我懂得了學(xué)習(xí)的重要性,學(xué)會(huì)了堅(jiān)持和努 力,這將為以后的學(xué)習(xí)做出了最好的榜樣!同時(shí),該設(shè)計(jì)也有不足之處,缺少了答題 計(jì)分等功能。我將會(huì)在以后的學(xué)習(xí)中繼續(xù)學(xué)習(xí)。 沈 陽(yáng) 工 學(xué) 院 學(xué) 士 報(bào) 告 11 參考文獻(xiàn) [1] 楊居義,楊堯,楊曉琴.單片機(jī)課程設(shè)計(jì)指導(dǎo)[M].北京:清華大學(xué)出版社,2009 [2] 李廣弟,單片機(jī)基礎(chǔ)(第3版)[M]. 北京:北京航空航天大學(xué)出版社,2007 [3] 李朝青, 單片機(jī)原理及接口技術(shù)[M].北京:北京航天航空大學(xué)出版色,2001 [4] 蘇家健,曹柏榮,汪志鋒.單片機(jī)原理及應(yīng)用技術(shù)[M].北京:高等教育出版社, 2003 [5] 潭浩強(qiáng), C語(yǔ)言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社, 2005 [6] 李華,李東 .MCS51/98系列單片機(jī)原理與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,1997 沈 陽(yáng) 工 學(xué) 院 學(xué) 士 報(bào) 告 12 附錄 A 整個(gè)系統(tǒng)電路原理圖: 沈 陽(yáng) 工 學(xué) 院 學(xué) 士 報(bào) 告 13 附錄 B 硬件實(shí)物圖: 沈 陽(yáng) 工 學(xué) 院 學(xué) 士 報(bào) 告 14 附錄 C //描 述:讀取按鍵 byte bot(void) //讀取按鍵,有按鍵被按下則返回 0,否則返回 1 { if(key==0)return 0; else return 1; } //描 述:將緩存區(qū) display[]中的整數(shù)譯碼后用數(shù)碼管進(jìn)行顯示 void display(word ms) //數(shù)碼管上的顯示反應(yīng)時(shí)間 { byte posi=0x01,i,j,temp; disp[3]=ms/1000; //1s disp[2]=(ms%1000)/100; //100ms disp[1]=(ms%100)/10; //10ms disp[0]=ms%10; //1ms for(i=0;i4;i++) //數(shù)碼管顯示 { temp=disp[i]; temp=table[temp]; for(j=0;j0;--j) //延時(shí)一段隨機(jī)時(shí)間,為 1 馬上的隨機(jī)倍數(shù) { delaylms(); k=bot(); if (k==1) //如果在燈滅前談起按鍵,顯示最長(zhǎng)時(shí)間作為懲罰 { mstime=9999; goto loop; } } led=1; //燈滅 INIT_TMR1(); //初始定時(shí)狀態(tài) while(1) //如果按鍵彈起,反復(fù)進(jìn)入定時(shí)狀態(tài),沒(méi) 1ms 計(jì)時(shí)器 溢出一次,毫秒數(shù)加 1 { if(TF1==1) { TH1=0xfc; TL1=0x18; TR1=1; TF1=0; ++mstime; } 沈 陽(yáng) 工 學(xué) 院 學(xué) 士 報(bào) 告 17 if(k=bot()) break; } loop: led=1 while(1) { if(k==1) //按鍵彈開后始終顯示時(shí)間 { k=bot(); display(mstime); } else //若按鍵按下,重新開始測(cè)試 { while(1) { if(k==1) //按鍵彈開后始終顯示時(shí)間 { k=bot(); display(mstime); } else //若按鍵按下,重新開始測(cè)試 { mstime=0; P2=0xff; break; } } } }- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
32 積分
下載 |
- 配套講稿:
如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) 鍵 詞:
- 畢業(yè)設(shè)計(jì) 基于 單片機(jī) 人體 反應(yīng)速度 測(cè)試儀
鏈接地址:http://m.zhongcaozhi.com.cn/p-1594036.html