人体反应速度测试仪.docx
《人体反应速度测试仪.docx》由会员分享,可在线阅读,更多相关《人体反应速度测试仪.docx(35页珍藏版)》请在冰点文库上搜索。
人体反应速度测试仪
摘要
反应速度是指人体对刺激发生反应的快慢。
反应速度通常用“从刺激到开始发生反应的时间”,即反应时来衡量。
目前,国内外常用反应时指标研究运动员的机能状态及心理活动过程。
反应速度是人类的基本生理素质之一。
以AT89S52单片机为核心的人体反应速度测试仪,主要控制测试灯的状态,通过测试按键的状态来间接计算人体反应速度。
实验测试表明,系统测试精度高、抗干扰能力强、反应测试较为准确,具有一定的参考价值。
同时因为其结构简单、体积小、成本低、扩展方便,在反应速度测试中有广泛的应用前景。
关键字:
单片机AT89S52反应速度
ABSTRACT
Reactionspeedisreferstoreacttostimulatethebodyrespondstoit.Reactionspeedusuallyuse"fromstimulationtostarthappeningreactiontime",i.e.,reactiontimemeasurement.Atpresent,thedomesticandinternationalcommonreactionindexresearchstatusandthefunctionofathletespsychologicalprocess.Reactionspeedisoneofthebasichumanphysiologicalquality.AT89S52SCMasthecoreinthehumanbodyreactionvelocitytester,maincontroltestlampstate,throughthetestbuttonstoindirectcalculationhumanreactionstatepace.Testresultsshowthatsystemtestingprecision,stronganti-jammingcapability,reactiontestismoreaccurate,tohavethecertainreferencevalue.Alsobecauseofitssimplestructure,smallvolume,lowcost,convenient,inthereactionspeedexpansiontestshavebroadapplicationprospect
KeyWords:
single-chipAT89S52reactionspeedtest
第1章引言1
1.1课题背景1
1.2单片机简介与发展概况2
1.3设计要求3
1.4主要内容3
第2章系统硬件介绍4
2.1单片机的介绍4
2.2单片机的工作过程4
2.3AT89S52主要性能5
2.4AT89S52引脚说明6
2.5LED显示器的特性10
第3章系统总体方案设计与分析12
3.1涉及的基础知识12
3.2总体方案12
3.3功能模块框图13
第4章系统硬件设计14
4.1硬件结构14
4.1.1硬件总体连接图14
4.1.274LS24415
4.1.374ls36515
4.2实现方法16
4.3详细流程图16
第5章主要代码编写18
5.1按键电路的实现18
5.2四位LED数码管显示电路的实现18
5.3主函数的实现19
第6章系统调试23
6.1仿真软件Protetus23
6.2仿真调试过程24
第7章总结与体会27
参考文献28
致谢29
附录30
外文资料原文36
译文38
第1章引言
1.1课题背景
速度素质是指人体进行快速运动的能力,即在单位时间内迅速完成某一动作或通过某一距离的能力。
它包括反应速度,动作速度和周期性运动的位移速度。
反应速度是速度素质中的一个重要的部分,反应速度是指人体对刺激发生反应的快慢。
从生理机制分析,反应快慢取决于“反射弧”的五个环节:
感受器——传入神经——中枢严格——传出神经——效应器。
反应速度通常用“从刺激到开始发生反应的时间”,即反应时来衡量。
目前,国内外常用反应时指标研究运动员的机能状态及心理活动过程。
反应速度是人类的基本生理素质之一。
反应测试系统这个题目的提出是建立在学习接口技术课程的基础上。
通过课程的学习,对计算机接口技术中各个重要的接口芯片内部原理,实现功能有了一定程度的掌握。
在此之上,提出在接口技术范畴内一些较为复杂的仪器设计,主要复杂在进行多个芯片。
功能的组合以实现更为高级实用的功能。
反应测试仪能够定量的测试人的反应速度。
利用这种仪器,可以在人才的选拔中起到积极地作用。
例如选择少年体育运动员,舞蹈,杂技,魔术学员及其他要求机敏素质的培养对象时,可以提供科学的数据。
所以,反应测试仪的潜在实用价值极大。
并且,在计算机专业中,反应测试仪的提出,主要对计算机接口的芯片的控制和计算功能提出更高的要求。
从各种文献资料中我们可以发现,现有的对此项目的研究是深入而广泛的。
如机动车驾驶员反应测试仪,药物药理反应测试仪,听觉稳态诱发测试仪等等各个方面的课题研究层出不穷。
而在技术上重要几种在单片机控制和由系统集成接口芯片进行功能组合等方向。
并且在测试范围上也是种类众多。
单从刚刚提到的反应测试仪器就可看到有对神经反应速度,身体反应速度等不同方面进行测试的。
由于本人水平有限,无法全面把握计算机接口技术知识的互相衔接,在本项目中,仅对几个功能原理比较简便的芯片进行实验,并且对其功能组合也并不复杂。
以求在自身水平范围内,选择最少,最简洁,最低廉的功能组合实现题目所提要求。
即设计一个能测试人的反应(响应)时间的仪器。
按启动钮,测试开始,一旦看到灯亮,立即按测试钮,八段码现实反应时间xx.xx秒。
在知识范围和时间范围以内,在完成题目基本要求的基础之上,对本仪器功能进行力所能及的扩充。
如:
在反应时间测试精度上,仪器操作的简便性上,被测试者的易测试性等方面。
1.2单片机简介与发展概况
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机了解计算机原理与结构的最佳选择。
图1-2所示为单片机芯片。
可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。
不过,这种电脑,通常是指个人计算机,简称PC机。
它由主机、键盘、显示器等组成)。
还有一类计算机,大多数人却不怎么熟悉。
这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。
顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。
因为它体积小,通常都藏在被控机械的“肚子”里。
它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。
现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。
各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。
现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。
究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。
图1-2单片机芯片
单片机的历史:
①第一代:
七十年代后期,4位逻辑控制器件发展到8位。
使用NMOS工艺(速度低,功耗大、集成度低)。
代表产品:
MC6800、Intel8048。
②第二代:
八十年代初,采用CMOS工艺,并逐渐被高速低功耗的HMOS工艺代替。
代表产品:
MC146805、Intel8051。
③第三代:
近十年来,MCU的发展出现了许多新特点:
(1)在技术上,由可扩展总线型向纯单片型发展,即只能工作在单片方式。
(2)MCU的扩展方式从并行总线型发展出各种串行总线。
(3)将多个CPU集成到一个MCU中。
(4)在降低功耗,提高可靠性方面,MCU工作电压已降至3.3V。
④第四代:
FLASH的使用使MCU技术进入了第四代。
1.3设计要求
基于AT89S52单片机的人体反应速度测试仪设计要求如下:
(1)测试者按下测试按键后,测试灯亮起,测试随之开始。
(2)在测试过程中,测试者要注意观察测试灯得变化,当看到测试灯熄灭时,测试者要迅速放开测试按键,单片机会在数码管上显示测试者的反应时间。
(3)若测试者在测试灯熄灭之前放开测试按键,则系统自动判为犯规,并显示错误信息。
1.4主要内容
以AT89S52单片机为核心的人体反应速度测试仪,主要控制测试灯的状态,通过测试按键的状态来间接计算人体反应速度。
正常情况下系统运行主程序一直处于空闲等待状态,知道测试者按下按键后,LED测试灯立即点亮。
AT89S52单片机在LED测试灯亮的同时开始计算一个随机时间,在一段随机时间结束后,AT89S52单片机把LED测试灯熄灭,并开始计时灯灭与测试者放开按键的时间差,此计时时间用于记录被测者得反应时间,并以毫秒为时间单位在4位数码管上显示。
如果在LED测试灯灭之前提前放开测试按键,则显示9999作为出错信息。
第2章系统硬件介绍
2.1单片机的介绍
单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机储存器RAM、只读储存器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调整电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
2.2单片机的工作过程
单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。
为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件——存储器中。
存储器由许多存储单元(最小的存储单位)组成,就像大楼房有许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。
程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中),在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。
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。
2.3AT89S52主要性能
1、与MCS-51单片机产品兼容;
2、8K字节在系统可编程Flash存储器;
3、1000次擦写周期;
4、全静态操作:
0Hz-33MHz;
5、三级加密程序存储器;
6、32个可编程I/O口线;
7、三个16位定时器/计数器;
8、六个中断源;
9、全双工UART串行通道;
10、低功耗空闲和掉电模式;
11、掉电后中断可唤醒;
12、看门狗定时器;
13、双数据指针;
14、掉电标识符。
2.4AT89S52引脚说明
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程,如图2-1,如图2-2(封装不同)
图2-1AT89S52引脚图DIP封装
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内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0不具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX)。
在flash编程和校验时,P1口接收低8位地址字节。
引脚号第二功能:
P1.0T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5MOSI(在系统编程用)
P1.6MISO(在系统编程用)
P1.7SCK(在系统编程用)
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动
图2-2AT89S52引脚图PLCC封装
4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。
在flash编程和校验时,P3口也接收一些控制信号。
端口引脚第二功能:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INTO(外中断0)
P3.3INT1(外中断1)
P3.4TO(定时/计数器0)
P3.5T1(定时/计数器1)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器读选通)
此外,P3口还接收一些用于Flash闪存编程和程序校验的控制信号。
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN:
程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP:
外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。
FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端
2.5LED显示器的特性
(1)发光响应快,亮度强,高频特性好;而且随着材料的不同,数码管还能发出红、黄、绿、蓝、橙等多种颜色的光。
(2)机械性能好,体积小,重量轻,价格低廉;能与COMS和TTL电路配合使用;使用寿命长。
(3)工作电压低,驱动电流适中。
每段电流为5~10mA,一只数码管的7段LED全亮需要电流35~70mA。
这样打的电流需要由驱动电路提供,因此,使用时要注意数码管的驱动问题。
在使用中,为了给发光二极管加驱动电压,他们应有一个公共的引脚,公共的引脚有如下两种链接方法:
一、共阴极接法。
把发光二极管的阴极连接在一起构成阴极公共引脚,使用时公共引脚接地,这样阳极引脚上加高电平的发光二极管就导通点亮,而加低电平的则不亮。
二、共阳极接法。
把发光二极管的阳极连接在一起作为阳极公共引脚,使用时阳极公共引脚接+5V。
这样阴极引脚上加低电平的发光二极管即可导通点亮,二加高电平的则点不亮。
LED显示器显示原理:
并排使用的多位数码管成为LED显示器。
LED显示器多采用动态显示方式,全部数码管共用一套段码驱动电路,各位数码管的同段引脚短接后再接到对应段码的驱动线上。
显示时通过位控制信号采用扫描的方法逐位地循环点亮各位数码管。
动态显示虽然在任一时刻只有一位数码管被点亮,但是由于人眼具有的视觉残留效应,看起来与全部数码管持续点亮的效果完全一样。
LED显示器的动态显示需要为各位提供段码以及相应的位控制,此即通常所说的段控和位控。
把LED显示器段码表预先存放在存储器中,使用时通过查表就可以得到段码。
段码输出后送到公共端码线上,也可称为段控信号。
而通过并行口输出的相互独立的位码则是起选通作用的,也称位控活扫描信号,用于选择显示位。
动态显示具有硬件简单,功耗低和显示灵活性强等优点,但动态显示增加了驱动软件的复杂性,且显示亮度较低。
第3章系统总体方案设计与分析
3.1涉及的基础知识
通过学习和查阅资料,本项目需要掌握和了解如下知识:
·+5V电源原理及设计。
·单片机复位电路工作原理及设计。
·单片机晶振电路工作原理及设计。
·测试按键电路设计。
·驱动电路74LS07、74LS244的特性及使用。
·LED的特性及使用。
·AT89S52单片机引脚。
·单片机C语言及程序设计。
3.2总体方案
LED数码管的显示电路中采用动态数码管显示,在其中P0端口控制段码,低电平有效,P2.0~P2.3端口控制位码,高电平有效。
P2.3端口控制第1个数码管,P2.2端口控制第2个数码管,P2.1端口控制第3个数码管,P2.0端口控制第4个数码管。
各个数码管的段码都是P0端口的输出,即各个数码管输入的段码都是一样的,为了使其分别显示不同的数字,可采用动态扫描的方式,即先只让最低位显示0,经过一段延时,再只让次低位显示1,以此类推。
由于视觉暂留,只要延时时间足够短,就能够使得数码的显示看起来非常稳定清楚。
3.3功能模块框图
图3-1人体反应速度测试仪框图
第4章系统硬件设计
LED数码管的显示电路中采用动态数码管显示,在其中P0端口控制段码,低电平有效。
P2.0-P2.3端口控制位码,高电平有效。
P2.3端口控制第1个数码管,P2.2端口控制第2个数码管,P2.1端口控制第3个数码管,P2.0端口控制第4个数码管。
各个数码管的断码都是P0端口的输出,即各个数码管输入的断码都是一样的,为了使其分别显示不同的数字,可采用动态扫描的方式,即先只让最低位显示0(含点),经过一段延时,再只让次低位显示1,以此类推。
由于视觉暂留,只要延时足够短,就能够使得数码的显示看起来非常稳定清楚。
4.1硬件结构
4.1.1硬件总体连接图
用一只发光二极管模拟测试灯,以AT89S52单片机的P1.0端口控制这只发光二极管、发光二极管加限流电阻接+5V电源,P1.0端口输出低电平时,测试灯亮,输出高电平时,测试灯灭。
P1.1端口接测试按键,P0端口控制LED数码管的七段数码显示,P2.0~P2.3控制4位数码管的位选。
如图4-1
图4-1人体反应测速仪电路原理图
4.1.274LS244
74LS244为3态8位缓冲器,一般用作总线驱动器。
74LS244没有锁存的功能。
地址锁存器就是一个暂存器,它根据控制信号的状态,将总线上地址代码暂存起来。
8086/8088数据和地址总线采用分时复用操作方法,即用同一总线既传输数据又传输地址。
如图4-2
图4-274ls244实物图
4.1.374ls365
74ls365(如图4