毕业设计基于单片机人体反应速度测试仪.docx

上传人:b****5 文档编号:28500786 上传时间:2023-07-15 格式:DOCX 页数:21 大小:328.38KB
下载 相关 举报
毕业设计基于单片机人体反应速度测试仪.docx_第1页
第1页 / 共21页
毕业设计基于单片机人体反应速度测试仪.docx_第2页
第2页 / 共21页
毕业设计基于单片机人体反应速度测试仪.docx_第3页
第3页 / 共21页
毕业设计基于单片机人体反应速度测试仪.docx_第4页
第4页 / 共21页
毕业设计基于单片机人体反应速度测试仪.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

毕业设计基于单片机人体反应速度测试仪.docx

《毕业设计基于单片机人体反应速度测试仪.docx》由会员分享,可在线阅读,更多相关《毕业设计基于单片机人体反应速度测试仪.docx(21页珍藏版)》请在冰豆网上搜索。

毕业设计基于单片机人体反应速度测试仪.docx

毕业设计基于单片机人体反应速度测试仪

工学院

 

毕业设计报告

 

题目:

基于单片机人体反应速度测试仪

 

院系:

信息与控制学院(黑三)

专业:

通信工程(黑三)

班级学号:

09304107(黑三)

学生:

三(黑三)

指导教师:

(黑三)

成绩:

 

2014年06月25日

摘要

本文是基于单片机人体反应速度测试描述,通过单片机测试人的反应速度。

在本设计中以AT89S52单片机为核心的人体反应速度测试仪,主要通过控制测试灯的状态,在测试按键的状态来间接计算人体反应速度。

正常情况下系统运行主程序一直处于空闲等待状态,知道测试者按下按键后,LED测试灯立即点亮。

AT89S52单片机在LED测试灯亮的同时开始计算一个随机时间,在一段随机时间结束后,AT89S52单片机把LED测试灯熄灭,并开始计时灯灭与测试者放开按键的时间差,此计时时间用于纪录被测试者的反应时间,并以毫秒为时间单位在4位数码管上显示。

如果在LED测试灯灭之前提前放开测试按键,则显示9999作为出错信息。

设计中采用AT89S52单片机,其以高性能低价格的优势成为全球使用围最广泛的单片机之一;显示部分采用LED数码管的显示方式,本套系统在不影响其测试性能的情况下,大大的节省了设计成本,是性价比较高的一款人体反应测试议。

和其他测试仪相比具有明显的价格竞争优势;同时,本设计作品的使用方法简单,只需按下按键即可完成测试,方便测试人员的测试使用。

关键词:

单片机;反应速度;AT89S52;LED;数码管

 

Abstract

Thisarticleisbasedonsinglechipmicrocomputerhumanreactionspeedtestsdescribed,throughthesinglechipmicrocomputertestresponsespeed.AT89S52MCUasthecoreinthedesignofthehumanbodyreactionvelocitytester,mainlybycontrollingthestateofthetestlamp,inthestateofthetestbuttontoindirectcalculationofhumanbodyreactionspeed.Systemnormaloperationofthemainprogramhasbeenidlewaitingstate,knowthetesterafterpressthebutton,theLEDtestlamplightupimmediately.AT89S52singlechipmicrocomputerinLEDtotestthelightsatthesametimebegantocalculatearandomtime,attheendofarandomtime,AT89S52singlechipmicrocomputertesttheLEDlights,andstarttiminglightsandtestersreleasebuttonlag,thistimerisusedtorecordthesubject'sreactiontime,andinmillisecondsastheunitoftimeinthefourdigitaltubedisplay.IftheLEDtestbeforethelightswentoutearlyreleasetestbutton,9999astheerrormessageisdisplayed.

DesignUSESAT89S52singlechipmicrocomputer,itstohighperformancelowpriceadvantagetobecomeoneoftheworldscopethemostwidelyusedmicrocontroller;DisplaypartadoptsLEDdigitaltubedisplay,thissetofsysteminthecaseofdoesnotaffectthetestperformance,greatlysavethedesigncost,isthehighcostperformanceofahumanreactiontest.Comparedwithothertesterhasobviouspricecompetitiveadvantage;Atthesametime,theuseofthisdesignmethodissimple,justpressthebuttontocompletethetest,theconvenienceforthetester'stest.

Keywords:

Singlechipmicrocomputer;ReactionSpeed;AT89S52;LED;Digitaltube

 

1硬件部分设计1

1.1硬件结构设计2

1.2硬件电路设计3

1.2.1硬件模块选择3

1.2.2硬件模块设计3

1.2.3控制计算公式5

2软件部分设计6

2.1开发环境7

2.2主体程序设计7

2.2.1主程序设计7

2.2.2中断程序设计7

3系统测试8

3.1软件测试8

3.2硬件测试8

结论9

参考文献10

附录A12

附录B13

附录C14

 

1硬件部分设计

本项目以AT89S52单片机为核心,实现对人体反应速度的测试,主要控制测试灯的状态,通过测试按键的状态来间接计算人体反应速度。

正常情况下系统一直处于空闲等待状态,直到测试者按下按键后,LED测试灯立即点亮。

AT89S52单片机在LED测试灯亮的同时开始计算一个随机时间,在一段随机时间结束后,AT89S52单片机把LED测试灯熄灭,并开始计时灯灭与测试者放开按键的时间差,此计时时间用于纪录被测试者的反应时间,并以毫秒为时间单位在4位数码管上显示。

如果在LED测试灯灭之前提前放开测试按键,则显示9999作为出错信息。

整体系统框图如图1.1所示。

 

图1.1单片机引脚图

1.1硬件结构设计

1.1.1AT89S52单片机的介绍

单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器、计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89S52具有以下标准功能:

8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片晶振及时钟电路。

另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

8位微控制器8K字节在系统可编程FlashAT89S52。

与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:

0Hz~33Hz 、 三级加密程序存储器 、32个可编程I/O口线 、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。

单片机引脚图如图1.2所示。

 

图1.2AT89S52单片机引脚图

1.1.2LED发光二极管的特性

(1)发光响应快,亮度强,高频特性好;而且随着材料的不同,数码管还能发出红、黄、绿、蓝、橙等多种颜色的光。

(2)机械性能好,体积小,重量轻,价格低廉;能与COMS和TTL电路配合使用;使用寿命长。

(3)工作电压低,驱动电流适中。

每段电流为5~10mA,一只数码管的7段LED全亮需要电流35~70mA。

这样打的电流需要由驱动电路提供,因此,使用时要注意数码管的驱动问题。

在使用中,为了给发光二极管加驱动电压,他们应有一个公共的引脚,公共的引脚有如下两种方法:

一、共阴极接法。

把发光二极管的阴极连接在一起构成阴极公共引脚,使用时公共引脚接地,这样阳极引脚上加高电平的发光二极管就导通点亮,而加低电平的则不亮。

二、共阳极接法。

把发光二极管的阳极连接在一起作为阳极公共引脚,使用时阳极公共引脚接+5V。

这样阴极引脚上加低电平的发光二极管即可导通点亮,二加高电平的则点不亮。

1.1.3LED数码管显示器显示原理

并排使用的多位数码管成为LED显示器。

LED显示器多采用动态显示方式,全部数码管共用一套段码驱动电路,各位数码管的同段引脚短接后再接到对应段码的驱动线上。

显示时通过位控制信号采用扫描的方法逐位地循环点亮各位数码管。

动态显示虽然在任一时刻只有一位数码管被点亮,但是由于人眼具有的视觉残留效应,看起来与全部数码管持续点亮的效果完全一样。

LED显示器的动态显示需要为各位提供段码以及相应的位控制,此即通常所说的段控和位控。

把LED显示器段码表预先存放在存储器中,使用时通过查表就可以得到段码。

段码输出后送到公共端码线上,也可称为段控信号。

而通过并行口输出的相互独立的位码则是起选通作用的,也称位控活扫描信号,用于选择显示位。

动态显示具有硬件简单,功耗低和显示灵活性强等优点,但动态显示增加了驱动软件的复杂性,且显示亮度较低。

1.2硬件电路设计

LED数码管的显示电路中采用动态数码管显示,在其中P0端口控制段码,低电平有效,P2.0~P2.3端口控制位码,高电平有效。

P2.3端口控制第1个数码管,P2.2端口控制第2个数码管,P2.1端口控制第3个数码管,P2.0端口控制第4个数码管。

各个数码管的段码都是P0端口的输出,即各个数码管输入的段码都是一样的,为了使其分别显示不同的数字,可采用动态扫描的方式,即先只让最低位显示0,经过一段延时,再只让次低位显示1,以此类推。

由于视觉暂留,只要延时时间足够短,就能够使得数码的显示看起来非常稳定清楚。

1.2.1硬件模块选择

硬件总体连接,用一只发光二极管模拟测试灯,以AT89S52单片机的P1.0端口控制这只发光二极管、发光二极管加限流电阻+5V电源,P1.0端口输出低电平时,测试灯亮,输出高电平时,测试灯灭。

P1.1端口接测试按键,P0端口控制LED数码管的七段数码显示,P2.0~P2.3控制4位数码管的选位。

本项目中的店铺单片机采用目前使用最广泛、成本最低廉的AT89S52,其性能在本设计中完全足够。

为了焊接上的方便,本设计中的LED数码管显示器采用四位共阳数码管。

数码管的共阳极就是把所有LED的阳极连接到共同接点com,而每个LED的阴极分别为a、b、c、d、e、f、g及dp(小数点);共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点),如下图所示。

图中的8个LED分别与上面那个图中的A~DP各段相对应,通过控制各个LED的亮灭来显示数字。

数码管的部示意图如图1.3所示。

 

图1.3数码管的部示意图

1.2.2硬件模块设计

1.单片机系统电路设计

单片机系统的设计主要包括单片机的电源设计、单片机时钟电路设计、单片机复位电路设计等。

时钟电路中采用11.0592MHz的晶振作为系统时钟,单片机复位电路采用上电自动复位和按键手动复位两种方式,在51单片机中单片机的复位都是采用高电平复位方式。

单片机最小系统图如图1.4所示。

 

图1.4单片机最小系统图

2.按键和指示灯设计

本设计的方案是通过人体去按下按键,由人体按下与松开按键的时间开判断人体反应速度的,所以设计中必须设计按键电路,为了操作者操作更明了,设计中增加了一个LED发光二极管作为按键指示。

设计电路如图1.5所示。

 

图1.5LED指示灯及按键电路图

3.数码管驱动设计

本设计中由于采用的是三寸共阳LED数码管显示器,所需的驱动电流不大,在本项目中采用低成本的8550PNP型三极管作为数码管的驱动,为了限制电流,防止电流过大对数码管烧坏,设计中在数码管的段选端分别串上一个100欧姆的电阻,数码管的驱动如图1.6所示。

 

图1.6数码管驱动电路图

1.2.3控制计算公式

在本系统中的计算主要是针对人体反应速度的计算。

在测试者按下按键后,LED测试灯立即点亮,在灯亮一个随机时间后就通过单片机控制灯灭,这时单片机定时器就开始计时,定时器初始值为Time1;在测试者看到LED灯灭时就释放按键,此时定时器的值为Time2,通过计算灯灭与测试者放开按键的时间差,得出测试者的反应速度。

具体计算公式如式(1.1)

V测试=Time2-Time1(1.1)

式中V测试为反应速度。

2软件部分设计

本系统使用AT89C51作为控制的单片机芯片,软件设计主要分为系统初始化、振铃检测计数、控制摘挂机、双音频信号分析处理、控制电器、密码处理(包括密码检测和密码修改)、信号音提示等部分,每个功能模块对于整体设计都是非常重要的,单片机AT89C51通过软件程序才能很好的对外部的信息进行采集、分析和决策。

系统的主程序流程图如图2.1所示。

 

图2.1主程序流程图

2.1开发环境

本设计采用KeilSoftware公司出品的集成开发环境进行编程,其版本为KeilμVision4。

KeilμVision4是2009年2月发布的最新版本,是针对Windows桌面平台所研发的一套完整的集成开发环境,具有可视化、灵活的Windows窗口管理。

该软件不仅给用户提供了丰富的库函数,而且提供了功能强大的开发测试工具;既支持C语言编程,也支持汇编语言编程;可以完成编辑、编译、连接、测试、仿真等整个开发流程;此外,在程序被编译之后,即可生成相应的汇编语言代码,使用户可以切身感觉到该款软件的生成目标的代码效率是相当高的,并且多数语句生成的汇编代码更为紧凑和容易理解,进而使得编程效率更为高效。

2.2主体程序设计

主程序采用查询方式,当按下T89S52单片机为核心的人体反应速度测试仪,主要控制测试灯的状态,通过测试按键的状态来间接计算人体反应速度。

正常情况下系统运行主程序一直处于空闲等待状态,知道测试者按下按键后,LED测试灯立即点亮。

AT89S52单片机在LED测试灯亮的同时开始计算一个随机时间,在一段随机时间结束后,AT89S52单片机把LED测试灯熄灭,并开始计时灯灭与测试者放开按键的时间差,此计时时间用于纪录被测试者的反应时间,并以毫秒为时间单位在4位数码管上显示。

如果在LED测试灯灭之前提前放开测试按键,则显示9999作为出错信息。

2.2.1设计流程

当整个系统上电时,进行一系列的初始化,初始化完毕后则通过查询的方式等待按键按下,当按键按下后LED测试灯立即点亮,同时单片机通过一个函数开始计算一个随机时间,在一段随机时间结束后,AT89S52单片机把LED测试灯熄灭,并开始计时灯灭与测试者放开按键的时间差,此计时时间用于纪录被测试者的反应时间,并以毫秒为时间单位在4位数码管上显示。

如果在LED测试灯灭之前提前放开测试按键,则显示9999作为出错信息。

2.2.2初始化编程

单片机上电后将首先进行的就是初始化,其中硬件初始化包括LED指示灯IO口的初始化、按键接口的初始化、LED数码管控制引脚的初始化;软件初始化包括中断的初始化、定时器的初始化等等。

2.2.2中断程序设计

定时器的定时时间是20ms,用作扫描数码管显示,在定时器开启时,定时器开始定时,此时主程序正常运行,当定时器的定时时间到时,主程序不在执行,开始进入中断程序,在中断程序中,若计时了1s就对时间进行处理且计数标志清零,赋值给相应的变量且second减1,若没有则计数标志count就进行加1,若倒计时的时间为零则重新赋值,中断程序执行完后返回主程序。

中断程序流程图如图2.2所示。

 

图2.2中断程序流程图

3系统测试

按照设计程序的分析,LED数码管的动态扫描的频率是1000HZ,在实际使用时完全没有闪烁。

在程序中,定时器20ms中断一次,变量 sec100自增,中断100次时,秒的显示自增,用定时器来定时,准确。

另外,用按键来开启定时器,按键具有暂停的功能。

当数码管上出现提示信息时,反应者按下按键,就可以测量出反应时间,并在数码管上显示出来。

按照正常的设计理念,整个系统是能够正常工作的。

3.1软件测试

软件调试是利用仿真工具进行在线仿真调试,除发现和解决程序错误外,也可发现硬件故障。

由于我的P0.0~P0.7接A0~A7在电路中接反了,故将数码管的码表进行修改,然后才成功的。

3.2硬件测试

硬件的调试主要是把电路各种参数调整到符合设计要求。

具体步骤如下:

(1)先排除硬件电路故障,包括设计性错误和工艺性故障,一般原则是先静态后动态。

(2)利用万用表或逻辑测试仪器,检查电路中的各器件以及引脚是否连接正确,是否有短路故障。

发现有些焊点连到了一起,造成了短路,然后进行了修改。

(3)先将单片机AT89S52芯片取下,对电路板进行通电检查,通过观察看是没有异常,然后用万用表测试各电源电压,这些都没有问题,接上仿真机进行联机调试观察到各接口线路均正常。

该系统由5V电源来驱动,上电后,整机工作电流为65mA,电流稳定无大的波动。

经过测试与分析,此系统稳定可用。

 

结论

本文研究与设计的人体反应测试仪采用了通用的电子元器件,利用AT89S52单片机及相关的外围器件实现人体反应测试仪,利用单片机的定时器以及外部中断的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示测试结果。

控制程序的单片机部分利用C语言编写。

设计时,首先通过在线编程,然后具体焊接硬件作品、仿真,完全实现了设计功能。

本设计中,利用常规的数码管扫描方法,通过硬件电路的具体应用和系统的仿真研究得出,本设计不仅安装简单、成本低,更重要的是工作性能稳定,是一个实用、创新型的工程设计。

通过这次的毕业设计,我能运用已学的知识解决我在设计中遇到的问题,使自己的动手能力和思考问题的能力得到了很大的提高。

在做设计的过程中我查阅了很多的资料,并认真的阅读这些与我的设计相关的资料,从而我的专业涵养得到了提高,知识的储备量也有所增加。

在做设计时,我复习了很多专业课的知识,这使得我的专业知识在离校之前得到了巩固。

我认为这是我在整个设计工程中得到的最好的回报。

整个设计通过了软件和硬件上的调试、仿真。

我想这对于自己以后的学习和工作都会有很大的帮助的。

在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。

对于单片机设计,

其硬件电路是比较简单的,主要是解决程序设计中的问题。

而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力。

它才是一个设计的灵魂所在。

因此在整个设计过程部分时间是用在程序上面的。

可以说单片机的设计是软件和硬件的结合,二者是密不可分的。

但是,通过这次设计我也发现自己的很多不足之处。

在设计过程中我发现自己考虑问题很不全面,自己的专业知识掌握的很不牢固,所掌握的计算机应用软件还不够多,我希望自己的这些不足之处能在今后的工作和学习中得到改善。

而且,通过这次设计,我懂得了学习的重要性,学会了坚持和努力,这将为以后的学习做出了最好的榜样!

同时,该设计也有不足之处,缺少了答题计分等功能。

我将会在以后的学习中继续学习。

参考文献

[1]居义,尧,晓琴.单片机课程设计指导[M].:

清华大学,2009

[2]广弟,单片机基础(第3版)[M].:

航空航天大学,2007

[3]朝青,单片机原理及接口技术[M].:

航天航空大学出版色,2001

[4]家健,柏荣,汪志锋.单片机原理及应用技术[M].:

高等教育,2003

[5]潭浩强,C语言程序设计[M].:

清华大学,2005

[6]华,东.MCS51/98系列单片机原理与应用[M].:

机械工业,1997

 

附录A

整个系统电路原理图:

 

附录B

硬件实物图:

 

附录C

//描  述:

读取按键 

byte bot(void)    //读取按键,有按键被按下则返回0,否则返回1 

   if(key==0)return 0;    else return 1; 

}

//描  述:

将缓存区display[]中的整数译码后用数码管进行显示 

void display(word ms)        //数码管上的显示反应时间

 { 

  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;i<4;i++)             //数码管显示   

    temp=disp[i];     

temp=table[temp]; 

    for(j=0;j<200;j++)         //延时   

  { 

       P2=posi;             //显示xxxx秒形式        

P0=temp;     

   posi*=2;    

}

 }

//描  述:

调用系统随机函数

unsigned long random(void)          //生成随机数 

 {   

word rt;   byte k=0; 

  srand (50000);                       //种下随机数种子,围0-50000  

 rt=rand();                           //生成随机熟 

  rt=rt*rand();                        //使随机数足够大,能够延时足够时间  

 return rt;  

//描述:

定时器初始化子程序 

void INIT_TMR1(void) 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 工作总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1