人體反應(yīng)速度測(cè)試儀 畢業(yè)設(shè)計(jì)-
《人體反應(yīng)速度測(cè)試儀 畢業(yè)設(shè)計(jì)-》由會(huì)員分享,可在線閱讀,更多相關(guān)《人體反應(yīng)速度測(cè)試儀 畢業(yè)設(shè)計(jì)-(17頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 第一章 課題綜述 1.1 課題背景 速度素質(zhì)是指人體進(jìn)行快速運(yùn)動(dòng)的能力,即在單位時(shí)間內(nèi)迅速完成某一動(dòng)作或通過某一距離的能力。反應(yīng)速度是指人體對(duì)刺激發(fā)生反應(yīng)的快慢。從生理機(jī)制分析,反應(yīng)快慢取決于“反射弧”的五個(gè)環(huán)節(jié):感受器—傳入神經(jīng)—神經(jīng)中樞—傳出神經(jīng)—效應(yīng)器。下面以MCS-8051單片機(jī)為核心,設(shè)計(jì)出測(cè)試人體反應(yīng)速度的儀器用以測(cè)試人的反應(yīng)時(shí)間。我們學(xué)習(xí)的是單片機(jī)理論知識(shí),而課程設(shè)計(jì)則是對(duì)我們學(xué)習(xí)的理論知識(shí)的實(shí)踐和鞏固。 1.2 設(shè)計(jì)要求 基于MCS-8051單片機(jī)的人體反應(yīng)速度測(cè)試儀設(shè)計(jì)要求如下: 1.按下“開始”按鈕,紅燈亮,按鈕一直保持按下狀態(tài)。
2、 2.紅燈持續(xù)點(diǎn)亮一段隨機(jī)時(shí)間,然后熄滅,燈熄滅時(shí)人松開按鈕。 3.計(jì)算燈熄滅的時(shí)間和按鈕被松開的時(shí)間之差,顯示出來。 4.若測(cè)試者在紅燈熄滅之前松開按鈕,則顯示出錯(cuò)信息。 1.3 面對(duì)的問題 1.對(duì)MCS-8051單片機(jī)的了解和應(yīng)用。 2. 對(duì)八段數(shù)碼管的特性的了解和使用。 1.4 需解決的關(guān)鍵技術(shù) 課題主要通過控制紅燈的狀態(tài),通過測(cè)試按鈕的狀態(tài)來間接計(jì)算人體反應(yīng)速度。要了解每一段數(shù)碼管與MCS-8051單片機(jī)的連接,數(shù)碼管顯示數(shù)字的段碼,各個(gè)芯片的輸入輸出關(guān)系,單片機(jī)內(nèi)部定時(shí)器的原理與控制,必須通過查閱資料確定。必須了解數(shù)碼管顯示器的顯
3、示原理。 第二章 系統(tǒng)分析 2.1 涉及的基礎(chǔ)知識(shí) 通過學(xué)習(xí)和查閱資料,本課題需要掌握和了解如下知識(shí): 1.MCS-8051單片機(jī)各輸入輸出端口的功能特性。 2.MCS-8051單片機(jī)復(fù)位電路工作原理及設(shè)計(jì)。 3.MCS-8051單片機(jī)晶振電路工作原理及設(shè)計(jì)。 4.測(cè)試按鈕、測(cè)試燈電路設(shè)計(jì)。 5.驅(qū)動(dòng)器74LS244、反相器74LS04的特性及使用。 6.數(shù)碼管顯示器的特性及使用。 7.MCS-8051單片機(jī)引腳。 8.單片機(jī)內(nèi)部定時(shí)器原理及使用。 9.單片機(jī)C語言及
4、程序設(shè)計(jì)。 2.2 MCS-8051單片機(jī)簡介 隨著超大規(guī)模集成電路技術(shù)的發(fā)展,在一個(gè)集成電路芯片上集成了中央處理器CPU、數(shù)據(jù)存儲(chǔ)器RAM、程序存儲(chǔ)器ROM或EPROM、各種I/O接口等,構(gòu)成了一個(gè)計(jì)算機(jī),稱為單片機(jī)。也就是說,單片機(jī)是集成在一塊集成電路芯片上的計(jì)算機(jī)。單片機(jī)以其較高的性價(jià)比、較高的集成度、較高可靠性、較強(qiáng)控制功能以及低電壓、低功耗、偏于攜帶等優(yōu)點(diǎn)收到廣大用戶的青睞。 MCS-51系列單片機(jī)以其典型的結(jié)構(gòu)和完善的總線專用寄存器的集中管理,眾多的邏輯位操作功能及面向控制的豐富指令系統(tǒng),堪稱為一代“名機(jī)”,為以后的其他單片機(jī)發(fā)展奠定了基礎(chǔ)。MCS-51系列單片機(jī)具有
5、品種全、兼容性強(qiáng)、軟硬件資料豐富等特點(diǎn),因此應(yīng)用非常廣泛,直到現(xiàn)在MCS-51系列單片機(jī)仍為單片機(jī)中的主流機(jī)型,也是高檔單片機(jī)的基礎(chǔ)。 8051是MCS-51系列單片機(jī)中的代表產(chǎn)品,它內(nèi)部集成了功能強(qiáng)大的中央處理器,包含了硬件乘除法器、21個(gè)專用控制寄存器、4KB的程序存儲(chǔ)器、128字節(jié)的數(shù)據(jù)存儲(chǔ)器、4組8位的并行口、兩個(gè)16位的可編程定時(shí)/ 計(jì)數(shù)器、一個(gè)全雙工的串行口以及布爾處理器。8051中集成了完善的各種中斷源,用戶可十分方便的控制和使用其功能,使得它的應(yīng)用范圍加大,可以說它可以滿足絕大部分的應(yīng)用場(chǎng)合。 2.3 MCS-8051單片機(jī)引腳圖 MCS-8051單片機(jī)采用40條引腳的雙
6、列直插式封裝,引腳配置如圖2—1所示。 單片機(jī)電源引腳接入單片機(jī)的工作電源:VCC引腳接+5V電源,VSS引腳接地。 單片機(jī)時(shí)鐘由引腳XTAL1和XTAL2接外部時(shí)鐘配置電路組成。 單片機(jī)復(fù)位,當(dāng)振蕩器運(yùn)行時(shí),在RST引腳加上兩個(gè)機(jī)器周期的高電平使單片機(jī)復(fù)位。 MCS-8051單片機(jī)具有4個(gè)8位的輸入/輸出口,P0、P1、P2和P3口。 P0口是雙向8位三態(tài)I/O口,此口常作為地址總線低8位及數(shù)據(jù)總線分時(shí)復(fù)用口,可帶8個(gè)LSTTL負(fù)載。 P1口是8位準(zhǔn)雙向I/O口,可帶4個(gè)LSTTL負(fù)載。 P2口是8位準(zhǔn)雙向I/O口,常作地址總線高8位使用
7、,可驅(qū)動(dòng)4個(gè)LSTTL負(fù)載。 P3口是8位準(zhǔn)雙向I/O口,為雙功能復(fù)用口,可驅(qū)動(dòng)4個(gè)LSTTL負(fù)載。 2.4 數(shù)碼管顯示器 2.4.1 數(shù)碼管顯示器的特性 1.發(fā)光響應(yīng)快,亮度強(qiáng),高頻特性好;而且隨著材料的不同,數(shù)碼管還能發(fā)出紅、黃、綠、藍(lán)、橙等多種顏色的光。 圖2—1 MCS-8051單片機(jī)引腳圖 2. 機(jī)械性能好,體積小,重量輕,價(jià)格低廉;能與COMS和TTL電路配合使用;使用壽命長。 3. 工作電壓低,驅(qū)動(dòng)電流適中。每段電流為5~10mA,一只數(shù)碼管的8段LED全亮需要電流35~70mA。這樣打的電流需要由驅(qū)動(dòng)電路提供,因此,使用時(shí)要注意數(shù)碼管的驅(qū)動(dòng)問題
8、。 在使用中,為了給發(fā)光二極管加驅(qū)動(dòng)電壓,他們應(yīng)有一個(gè)公共的引腳,公共的引腳有如下兩種鏈接方法:一、共陰極接法。把發(fā)光二極管的陰極連接在一起構(gòu)成陰極公共引腳,使用時(shí)公共引腳接地,這樣陽極引腳上加高電平的發(fā)光二極管就導(dǎo)通點(diǎn)亮,而加低電平的則不亮。二、共陽極接法。把發(fā)光二極管的陽極連接在一起作為陽極公共引腳,使用時(shí)陽極公共引腳接+5V。這樣陰極引腳上加低電平的發(fā)光二極管即可導(dǎo)通點(diǎn)亮,而加高電平的則點(diǎn)不亮。本課題采用SR410561K四位一體數(shù)碼管,為共陽極接法,位選信號(hào)位高電平有效,段碼信號(hào)為低電平有效。 2.4.2 數(shù)碼管的顯示原理 并排使用的多位數(shù)碼管組成數(shù)碼管顯示器。數(shù)碼管顯示
9、器多采用動(dòng)態(tài)顯示方式,全部數(shù)碼管共用一套段碼驅(qū)動(dòng)電路,各位數(shù)碼管的同段引腳短接后再接到對(duì)應(yīng)段碼的驅(qū)動(dòng)線上。顯示時(shí)通過位控制信號(hào)采用掃描的方法逐位地循環(huán)點(diǎn)亮各位數(shù)碼管。動(dòng)態(tài)顯示雖然在任一時(shí)刻只有一位數(shù)碼管被點(diǎn)亮,但是由于人眼具有的視覺殘留效應(yīng),看起來與全部數(shù)碼管持續(xù)點(diǎn)亮的效果完全一樣。 數(shù)碼管顯示器的動(dòng)態(tài)顯示需要為各位提供段碼以及相應(yīng)的位控制,此即通常所說的段控和位控。把數(shù)碼管顯示器段碼表預(yù)先存放在存儲(chǔ)器中,使用時(shí)通過查表就可以得到段碼。段碼輸出后送到公共端碼線上,也可稱為段控信號(hào)。而通過并行口輸出的相互獨(dú)立的位碼則是起選通作用的,也稱位控活掃描信號(hào),用于選擇顯示位。 動(dòng)態(tài)顯示具有硬件簡單
10、,功耗低和顯示靈活性強(qiáng)等優(yōu)點(diǎn)。但動(dòng)態(tài)顯示增加了驅(qū)動(dòng)軟件的復(fù)雜性,且顯示亮度較低。 2.4.3 數(shù)碼管顯示器段碼 SR410561K四位一體數(shù)碼管采用共陽極接法,單個(gè)數(shù)碼管如圖2—2所示。 圖2—2 八段數(shù)碼管 則數(shù)碼管段碼如表2—1所示。 表2—1 數(shù)碼管段碼 顯示數(shù)字 Dp g f e d c b a 段碼 0 11000000 c0 1 11111001 f9 2 10100100 a4 3 10110000 b0 4 10011001 99 5 10010010 92 6 10000010 82 7 11111
11、000 f8 8 10000000 80 9 10010000 90 A 10001000 88 b 10000011 83 C 11000110 c6 d 10100001 a1 E 10000110 86 F 10001110 8e 2.5 定時(shí)器 2.5.1 定時(shí)器工作原理 在MCS-8051單片機(jī)內(nèi)集成了兩個(gè)16位的定時(shí)器/計(jì)數(shù)器T0和T1,其基本工作原理是加1計(jì)數(shù),即對(duì)指定的脈沖信號(hào)進(jìn)行加1操作,直到出現(xiàn)溢出為止。當(dāng)T0和T1作為定時(shí)器使用時(shí),其計(jì)數(shù)脈沖信號(hào)取自單片機(jī)內(nèi)部的時(shí)鐘信號(hào),每個(gè)機(jī)器周期產(chǎn)生一個(gè)計(jì)數(shù)脈沖,使計(jì)
12、數(shù)器加1。 T0和T1分別有兩個(gè)8位的計(jì)數(shù)器組成,其中T0由特殊功能寄存器TH0與TL0組成,而T1則由特殊功能寄存器TH1與TL1組成。這四個(gè)寄存器用來存儲(chǔ)定時(shí)或計(jì)數(shù)使用的初值,所以也被稱為時(shí)間常數(shù)存儲(chǔ)器。特殊功能寄存器TMOD和TCON完成對(duì)定時(shí)器/計(jì)數(shù)器的控制功能。 2.5.2 定時(shí)器的控制 MCS-8051單片機(jī)的定時(shí)功能是由特殊功能寄存器TH0,TL0,TH1,TL1,TMOD和TCON完成的。 特殊功能寄存器TMOD用于確定定時(shí)器的工作方式,格式如下: D7 D6 D5 D4 D3 D2 D1 D0 GATE C/T M1 M0 G
13、ATE C/T M1 M0 其中,前4位用于控制T1的工作方式,后四位用于控制T0的工作方式。本課題僅使用T1作為定時(shí)器,選擇工作方式為方式1,即為選擇T1為16為定時(shí)器。則TMOD的值應(yīng)設(shè)置為00010000B,即TMOD=0x10。 特殊功能寄存器TCON用于用于控制定時(shí)器的啟動(dòng)和停止技術(shù),同時(shí)包含了定時(shí)器的狀態(tài),可進(jìn)行位尋址。格式如下: D7 D6 D5 D4 D3 D2 D1 D0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 本課題中用到的控制位有TI的控制位TR1和TF1,無需中斷控制。TR1為
14、T1運(yùn)行控制位,若TR1=1,允許T1計(jì)數(shù),若TR1=0,禁止T1計(jì)數(shù)。TF1為T1計(jì)數(shù)溢出標(biāo)志值,當(dāng)T1被允許計(jì)數(shù)后,T1從初值開始加1計(jì)數(shù),最高位產(chǎn)生溢出時(shí),TF1由硬件置1,TF1的信息可由軟件查詢。 2.5.3 定時(shí)器初值的設(shè)定 本課題中,設(shè)置初值使T1的定時(shí)周期為1ms。當(dāng)紅燈熄滅后,定時(shí)器開始工作,每1ms定時(shí)器產(chǎn)生一次溢出,使數(shù)碼管要顯示的反應(yīng)時(shí)間以毫秒為單位加1,達(dá)到使數(shù)碼管顯示人體反應(yīng)時(shí)間的目的。 T1采用工作方式1定時(shí),時(shí)鐘頻率采用6MHz,則計(jì)數(shù)初值: x=216-6106110-3/12=65536-6000/12=65036 化為二
15、進(jìn)制x=1111111000001100B,則計(jì)數(shù)初值應(yīng)為TH1=0xfe ,TL1=0x0c。 第3章 總體方案設(shè)計(jì) 3.1 總體方案 數(shù)碼管的顯示電路中采用動(dòng)態(tài)數(shù)碼管顯示。采用MCS-8051單片機(jī)的P0端口(P0.0~P0.7端口)控制段碼,低電平有效。P2.0~P2.3端口控制4位數(shù)碼管的位選擇,高電平有效。(P2.3端口控制第1個(gè)數(shù)碼管,P2.2端口控制第2個(gè)數(shù)碼管,P2.1端口控制第3個(gè)數(shù)碼管,P2.0端口控制第4個(gè)數(shù)碼管)。 各個(gè)數(shù)碼管的段碼都是P0端口的輸出,即各個(gè)數(shù)碼管輸入
16、的段碼都是一樣的,為了使其分別顯示不同的數(shù)字,可采用動(dòng)態(tài)掃描的方式,即先只讓最低位顯示,經(jīng)過一段延時(shí),再只讓次低位顯示,以此類推。由于視覺暫留,只要延時(shí)時(shí)間足夠短,就能夠使得數(shù)碼的顯示看起來非常穩(wěn)定清楚。 3.2 功能模塊框圖 人體反應(yīng)速度測(cè)試儀的功能模塊框圖如圖3—1所示。 硬件電路由MCS-8051單片機(jī)、電源電路、測(cè)試按鈕和測(cè)試燈電路、晶振電路、復(fù)位電路、驅(qū)動(dòng)電路、反相電路以及數(shù)碼管顯示電路組成。 電源電路 測(cè)試按鈕和測(cè)試燈電路 數(shù)碼管顯示電路 MCS—8051 單片機(jī) 復(fù)位電路 驅(qū)動(dòng)電路 反相電路
17、 晶振電路 圖3—1 人體反應(yīng)速度測(cè)試儀功能模塊框圖 第4章 系統(tǒng)硬件設(shè)計(jì) 4.1 硬件連接圖 4.1.1 測(cè)試按鈕與測(cè)試燈電路 MCS-8051單片機(jī)的P1.0端口控制一個(gè)發(fā)光二極管,即為測(cè)試紅燈。發(fā)光二極管加限流電阻接+5V電源,當(dāng)單片機(jī)的P1.0端口輸出低電平時(shí),紅燈亮,輸出高電平時(shí),紅燈滅。P1.1端口接“開始”按鈕,按鈕另一端接地。若按鈕按下,則P1.1口輸入低電平,否則輸入高電平。 4.1.2 數(shù)碼管顯示電路 數(shù)碼管采用SR410561K四位一體數(shù)
18、碼管。MCS-8051單片機(jī)的P0口的8個(gè)端口(P0.0~P0.7)控制數(shù)碼管的八段數(shù)碼顯示。 P0口8位輸出經(jīng)限流電阻接入到數(shù)碼管顯示器的段碼端口。數(shù)碼管采用共陽極接法,低電平有效。限流電阻的接入是由于在應(yīng)用數(shù)碼管進(jìn)行顯示時(shí),首先需要考慮的問題是驅(qū)動(dòng)電流,與發(fā)光二極管相同,數(shù)碼管的發(fā)光段也需要串聯(lián)限流電阻,串聯(lián)限流電阻的組織越大,電流越小,亮度越低;電阻阻值越小,電流越大,亮度越高。在使用限流電阻時(shí)需要在每一個(gè)線段上都串聯(lián)限流電阻,而不要在公共端上串聯(lián)一個(gè)限流電阻,否則在顯示不同的數(shù)字時(shí),會(huì)造成數(shù)碼管亮度的不同。 單片機(jī)P2口的P2.0~P2.3控制4位數(shù)碼管的位選,P2口輸出經(jīng)限流電阻
19、后需進(jìn)行反相,反相之后經(jīng)驅(qū)動(dòng)電路接入到數(shù)碼管顯示器的位選端。 4.1.3 晶振電路 時(shí)鐘是單片機(jī)的心臟,單片機(jī)各功能部件的運(yùn)行都是以時(shí)鐘頻率為基準(zhǔn),有條不紊地一拍一拍地工作。因此,時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的運(yùn)行。單片機(jī)必須在時(shí)鐘的驅(qū)動(dòng)下才能正常工作。MCS-8051單片機(jī)的時(shí)鐘可以由內(nèi)部方式或外部方式產(chǎn)生。本課題采用內(nèi)部方式的晶振電路,如圖4—1所示,一般選用石英晶體振蕩器。利用 MCS-8051單片機(jī)內(nèi)部的震蕩電路,并在XTAL1和XTAL2兩腳間外接晶體以及電容C1和C2構(gòu)成的并聯(lián)諧振電路,使內(nèi)部振蕩器產(chǎn)生自激振蕩。組成時(shí)鐘電路的晶體振蕩
20、器的頻率大小決定了單片機(jī)系統(tǒng)的工作頻率,即決定著單片機(jī)的工作速度,本課題時(shí)鐘頻率采用6MHz。 圖4—1 晶振電路 4.1.4 復(fù)位電路 采用上電自動(dòng)復(fù)位電路,工作原理是:通電瞬間,RC電路充電,RST端出現(xiàn)正脈沖,只要RST端保持10ms以上的高電平,就能使單片機(jī)有效復(fù)位。當(dāng)晶振頻率選用6MHz時(shí),C取22uF,R取1k歐,如圖4—2所示。 圖4—2 復(fù)位電路 4.1.5 驅(qū)動(dòng)電路 用四個(gè)PNP數(shù)碼管作為每一位數(shù)碼管的驅(qū)動(dòng)電路,這樣使得數(shù)碼管電流更大,亮度更亮。P2.0~P2.3控制數(shù)碼管顯示器的四個(gè)位,當(dāng)相應(yīng)的端口變?yōu)楦唠娖綍r(shí),經(jīng)反相器變?yōu)榈碗娖?,?qū)動(dòng)相
21、應(yīng)的三極管會(huì)導(dǎo)通,+5V通過相應(yīng)的驅(qū)動(dòng)三極管給數(shù)碼管相應(yīng)的位供電,這時(shí)只要P0口送出相應(yīng)的顯示段碼,數(shù)碼管就能顯示出所需數(shù)值,即顯示定時(shí)器的計(jì)時(shí)數(shù)值。 4.1.6 反相電路 由于程序中設(shè)置P2口輸出的位選信號(hào)為高電平,使驅(qū)動(dòng)三極管導(dǎo)通應(yīng)使用低電平,即在位選信號(hào)輸出線路中限流電阻后應(yīng)接入反相器。本課題反相器采用74LS04反相器。74LS04芯片為6非門(反相器),內(nèi)部含有6個(gè)coms反相器,74LS04的作用就是反相。反相器輸出三極管驅(qū)動(dòng)電路接入到數(shù)碼管位選端口。74LS04如圖4—3所示。 圖4—3 74LS04反相器 4.2 實(shí)現(xiàn)方法 主程序采用查詢方式,當(dāng)按
22、鈕按下時(shí),MCS-8051單片機(jī)使LED燈亮起的同時(shí)調(diào)用隨機(jī)函數(shù)產(chǎn)生一個(gè)隨機(jī)時(shí)間,單片機(jī)利用產(chǎn)生的這個(gè)隨機(jī)時(shí)間計(jì)時(shí)。計(jì)時(shí)時(shí)間到,MCS-8051單片機(jī)輸出使P1.0端口為高電平,LED測(cè)試燈熄滅,MCS-8051單片機(jī)進(jìn)行新的一輪計(jì)時(shí),當(dāng)測(cè)試者松開按鈕時(shí),計(jì)時(shí)時(shí)間停止,單片機(jī)把這個(gè)計(jì)時(shí)時(shí)間送往數(shù)碼管顯示電路顯示。 當(dāng)MCS-8051單片機(jī)第一輪的計(jì)時(shí)時(shí)間還未到時(shí),若按鈕松開,則單片機(jī)輸出錯(cuò)誤提示,使數(shù)碼管顯示為9999。 4.3 詳細(xì)流程圖 圖4—1 詳細(xì)流程圖 第五章 程序代碼編寫 5.1 按鈕電路的實(shí)現(xiàn)
23、 描述:讀取按鈕當(dāng)前的狀態(tài) byte bot(void) //按鈕狀態(tài),若按鈕被按下則返回0,否則返回1 { if(key==0) return 0; else return 1; } 5.2 四位數(shù)碼管顯示電路的實(shí)現(xiàn) 描述:數(shù)碼管進(jìn)行顯示反應(yīng)時(shí)間 void display(word ms) //數(shù)碼管上的顯示反應(yīng)時(shí)間 { byte posi=0x01,i,j,temp; //posi初始化選擇為最低位 disp[3]=ms/1000;
24、 //1s disp[2]=(ms%1000)/100; //100ms disp[1]=(ms%100)/10; //10ms disp[0]=ms%10; //1ms for(i=0;i<4;i++) //數(shù)碼管顯示 { temp=disp[i]; temp=table[temp]; for(j=0;j<200;j++) {
25、 P2=posi; //P2口進(jìn)行位選擇 P0=temp; //P0口進(jìn)行段選擇 } posi=posi*2; //posi二進(jìn)制向左移動(dòng)一位,選擇下一位 } } 5.3 隨機(jī)函數(shù)的實(shí)現(xiàn) 描述:用隨機(jī)函數(shù)產(chǎn)生一個(gè)隨機(jī)數(shù),為隨機(jī)時(shí)間,即按鈕按下到紅燈熄滅的時(shí)間 unsigned long random(void) //生成隨機(jī)數(shù) { word rt; srand
26、 (50000); //產(chǎn)生的隨機(jī)數(shù)的范圍為0-50000 rt=rand(); //產(chǎn)生一個(gè)隨機(jī)數(shù) return rt; } 5.4 定時(shí)器程序的實(shí)現(xiàn) 描述:定時(shí)器初始化程序 void INIT_T1(void) { TMOD=0x10; //定時(shí)器1為工作方式1 TH1=0xfe; //定時(shí)器1的周期為1ms TL1=0x0c; T
27、R1=1; //啟動(dòng)定時(shí)器1 } void lms(void) //1ms產(chǎn)生一次溢出 { INIT_T1() ; while(1) { if(TF1==1) //等待定時(shí)器1溢出 { break; } } } 5.5 主函數(shù)的實(shí)現(xiàn) #define led P1^0 #define key P1^1 void main(void
28、) { unsigned char code table[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82, 0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e} byte k=0; k=bot(); //獲取按鈕情況,k=0為按鈕被按下 word mstime=0; P1=0xff; //P1口預(yù)制高電平,
29、紅燈熄滅(P1.0) while(1) { word mstime=0,j; word r,j; while(bot()); //等到按鈕被按下,循環(huán)條件為0,跳出該循環(huán) led=0; //按鍵被按下后,燈亮 r=random(); //產(chǎn)生隨機(jī)時(shí)間 for (j=r;j>0;j--)
30、 //使紅燈在該時(shí)間內(nèi)為亮 { lms(); k=bot(); if (k==1) //如果測(cè)試者在紅燈熄滅前松開按鈕按鈕 { mstime=9999; //使數(shù)碼管顯示9999出錯(cuò)信息 led=1 ; //紅燈熄滅 goto loop;
31、 } } led=1; //隨機(jī)延時(shí)結(jié)束,紅燈熄滅 INIT_T1(); //定時(shí)器1初始化 while(1) { if(TF1==1) //定時(shí)器每1ms產(chǎn)生一次溢出 { TH1=0xfe; TL1=0x0c; TR1=1;
32、 TF1=0; //溢出位復(fù)位 mstime=mstime+1; //計(jì)時(shí)時(shí)間增加1ms } if(bot()) break; //測(cè)試者松開按鈕,計(jì)時(shí)結(jié)束 } loop: while(1) { if(k==1) //按鍵彈開后始終顯示時(shí)間 { k=bot();
33、 display(mstime); } else //若按鍵按下,重新開始測(cè)試 { mstime=0; P2=0xff; break; } } } 5.6總程序 #define led P1^0 #define key P1^1 byte bot(void) { if(key==0) return 0;
34、else return 1; } void display(word ms) { byte posi=0x01,i,j,temp; disp[3]=ms/1000; disp[2]=(ms%1000)/100; disp[1]=(ms%100)/10; disp[0]=ms%10; for(i=0;i<4;i++)
35、 { temp=disp[i]; temp=table[temp]; for(j=0;j<200;j++) { P2=posi; P0=temp; } posi=posi*2; } } unsigned long random(void) { word rt;
36、srand (50000); rt=rand(); return rt; } void INIT_T1(void) { TMOD=0x10; TH1=0xfe; TL1=0x0c; TR1=1; } void lms(void)
37、 { INIT_T1() ; while(1) { if(TF1==1) { break; } } } void main(void) { unsigned char code table[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82, 0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e} byte k
38、=0; k=bot(); word mstime=0; P1=0xff; while(1) { word mstime=0,j; word r,j; while(bot()); led=0;
39、 r=random(); for (j=r;j>0;j--) { lms(); k=bot(); if (k==1) { mstime=9999; led=1 ; goto loo
40、p; } } led=1; INIT_T1(); while(1) { if(TF1==1) { TH1=0xfe; TL1=0x0c; TR1=1; TF1=0;
41、 mstime=mstime+1; } if(bot()) break; } loop: while(1) { if(k==1) { k=bot(); display(mstime); } else
42、 { mstime=0; P2=0xff; break; } } } 第六章 結(jié)論 經(jīng)過兩周的制作,完成了人體反應(yīng)速度測(cè)試儀的設(shè)計(jì),達(dá)到了預(yù)定的要求。這次課程設(shè)計(jì)給我們提供了一個(gè)應(yīng)用自己所學(xué)知識(shí)去勇于創(chuàng)新和實(shí)際的平臺(tái)。一開始做人體速度測(cè)試儀的設(shè)計(jì)是覺得看起來會(huì)比較簡
43、單,但是真正做起來才發(fā)現(xiàn)其實(shí)還是比較困難的,畢竟在這一方面的技術(shù)有限。第一周前兩天進(jìn)行了資料查閱了解,第三天開始編輯說明書,同時(shí)進(jìn)行電路圖的構(gòu)思理解。從通過理論設(shè)計(jì),再到確定具體方案,成型。整個(gè)過程都需要充分利用所學(xué)的知識(shí)進(jìn)行思考、借鑒。可以說,這次課程設(shè)計(jì)是對(duì)前面所學(xué)知識(shí)進(jìn)行的一次比較綜合的檢驗(yàn)??偟膩碚f,這次課程設(shè)計(jì)雖然很累,但卻是苦中有樂,非常充實(shí)。在這次實(shí)習(xí)中,正確的思路是很重要的,只有你的設(shè)計(jì)思路是正確的,你的設(shè)計(jì)才有可能成功。 這次能那么成功的完成我的設(shè)計(jì),要感謝老師和同學(xué)們的幫助,李老師、胡老師能在百忙之中來知道我,每當(dāng)我遇到棘手的問題,老師總能給我最好的建議,教我改進(jìn)
44、的方法,不厭其煩的指出我在設(shè)計(jì)中存在的問題和錯(cuò)誤,是我更好的完成設(shè)計(jì)。在理解程序的時(shí)候也請(qǐng)教了同學(xué),他們也很熱情的回答我的問題,讓我在這次實(shí)習(xí)中不會(huì)覺得那么孤立無援。這次的實(shí)習(xí)也讓我學(xué)到了很多東西,對(duì)很多單片機(jī)方面的知識(shí)有了更深的了解,并且能夠運(yùn)用到實(shí)踐中了。原來實(shí)習(xí)不盡可以鍛煉我們的動(dòng)手能力,而且能夠讓我們學(xué)到更多的理論知識(shí),也覺得很充實(shí)。 最后我還要感謝學(xué)校給我這次實(shí)習(xí)的機(jī)會(huì),和同學(xué)老師一起走過的這段時(shí)間深深地刻在我的腦海里。希望自己以后對(duì)待別的事情也可以這么認(rèn)真。 參考文獻(xiàn) 1. 張淑清,單片機(jī)原理及應(yīng)用技術(shù),國防工業(yè)出版社,2010 2. 潭浩強(qiáng),C語言程序設(shè)計(jì),清華大學(xué)出版社,2005 3. 李華,李東,MCS51/98系列單片機(jī)原理與應(yīng)用,機(jī)械工業(yè)出版社,1997 17
- 溫馨提示:
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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)2圖形與幾何第7課時(shí)圖形的位置練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)2圖形與幾何第1課時(shí)圖形的認(rèn)識(shí)與測(cè)量1平面圖形的認(rèn)識(shí)練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)1數(shù)與代數(shù)第10課時(shí)比和比例2作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)4比例1比例的意義和基本性質(zhì)第3課時(shí)解比例練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)3圓柱與圓錐1圓柱第7課時(shí)圓柱的體積3作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)3圓柱與圓錐1圓柱第1節(jié)圓柱的認(rèn)識(shí)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)2百分?jǐn)?shù)(二)第1節(jié)折扣和成數(shù)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)1負(fù)數(shù)第1課時(shí)負(fù)數(shù)的初步認(rèn)識(shí)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)期末復(fù)習(xí)考前模擬期末模擬訓(xùn)練二作業(yè)課件蘇教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)期末豐收?qǐng)@作業(yè)課件蘇教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)易錯(cuò)清單十二課件新人教版
- 標(biāo)準(zhǔn)工時(shí)講義
- 2021年一年級(jí)語文上冊(cè)第六單元知識(shí)要點(diǎn)習(xí)題課件新人教版
- 2022春一年級(jí)語文下冊(cè)課文5識(shí)字測(cè)評(píng)習(xí)題課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)4數(shù)學(xué)思考第1課時(shí)數(shù)學(xué)思考1練習(xí)課件新人教版