基于51单片机的人体反应速度测试仪.docx
- 文档编号:29297192
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:35
- 大小:295.89KB
基于51单片机的人体反应速度测试仪.docx
《基于51单片机的人体反应速度测试仪.docx》由会员分享,可在线阅读,更多相关《基于51单片机的人体反应速度测试仪.docx(35页珍藏版)》请在冰豆网上搜索。
基于51单片机的人体反应速度测试仪
摘要
反应速度是指人体对刺激发生反应的快慢。
反应速度通常用“从刺激到开始发生反应的时间”,即“反应时”来衡量。
目前,国内外常用“反应时”指标来研究运动员的身体机能状态及心理活动过程。
反应速度是人类的基本生理素质之一。
以STC89C52单片机为核心的人体反应速度测试仪,主要控制测试灯的状态,通过测试按键的状态来间接计算人体反应速度。
实验测试表明,系统测试精度高、抗干扰能力强、反应测试较为准确,具有一定的参考价值。
同时因为其结构简单、体积小、成本低、扩展方便,在反应速度测试中有广泛的应用前景。
关键字:
单片机;STC89C52RC;反应速度
Abstract
Reactionspeedisreferstoreacttostimulatethebodyrespondstoit.Reactionspeedusuallyuse"fromstimulationtostarthappeningreactiontime",i.e.,reactiontimemeasurement.Atpresent,thedomesticandinternationalcommonreactionindexresearchstatusandthefunctionofathletespsychologicalprocess.Reactionspeedisoneofthebasichumanphysiologicalquality.STC89C52RCSCMasthecoreinthehumanbodyreactionvelocitytester,maincontroltestlampstate,throughthetestbuttonstoindirectcalculationhumanreactionstatepace.Testresultsshowthatsystemtestingprecision,stronganti-jammingcapability,reactiontestismoreaccurate,tohavethecertainreferencevalue.Alsobecauseofitssimplestructure,smallvolume,lowcost,convenient,inthereactionspeedexpansiontestshavebroadapplicationprospect
KeyWords:
single-chip;STC89C52RC;reactionspeedtest
第1章绪论
1.1课题背景
速度素质是指人体进行快速运动的能力,即在单位时间内迅速完成某一动作或通过某一距离的能力。
它包括反应速度,动作速度和周期性运动的位移速度。
反应速度是速度素质中的一个重要的部分,反应速度是指人体对刺激发生反应的快慢。
从生理机制分析,反应快慢取决于“反射弧”的五个环节:
感受器——传入神经——中枢严格——传出神经——效应器。
反应速度通常用“从刺激到开始发生反应的时间”,即反应时来衡量。
目前,国内外常用反应时指标研究运动员的机能状态及心理活动过程。
反应速度是人类的基本生理素质之一。
反应测试系统这个题目的提出是建立在学习接口技术课程的基础上。
通过课程的学习,对计算机接口技术中各个重要的接口芯片内部原理,实现功能有了一定程度的掌握。
在此之上,提出在接口技术范畴内一些较为复杂的仪器设计,主要复杂在进行多个芯片。
功能的组合以实现更为高级实用的功能。
反应测试仪能够定量的测试人的反应速度。
利用这种仪器,可以在人才的选拔中起到积极地作用。
例如选择少年体育运动员,舞蹈,杂技,魔术学员及其他要求机敏素质的培养对象时,可以提供科学的数据。
所以,反应测试仪的潜在实用价值极大。
并且,在计算机专业中,反应测试仪的提出,主要对计算机接口的芯片的控制和计算功能提出更高的要求。
从各种文献资料中我们可以发现,现有的对此项目的研究是深入而广泛的。
如机动车驾驶员反应测试仪,药物药理反应测试仪,听觉稳态诱发测试仪等各个方面的课题研究层出不穷。
而在技术上重要几种在单片机控制和由系统集成接口芯片进行功能组合等方向。
并且在测试范围上也是种类众多。
单从刚刚提到的反应测试仪器就可看到有对神经反应速度,身体反应速度等不同方面进行测试的。
由于本人水平有限,无法全面把握计算机接口技术知识的互相衔接,在本项目中,仅对几个功能原理比较简便的芯片进行实验,并且对其功能组合也并不复杂。
以求在自身水平范围内,选择最少,最简洁,最低廉的功能组合实现题目所提要求。
即设计一个能测试人的反应(响应)时间的仪器。
按启动钮,测试开始,一旦看到灯亮,立即按测试钮,八段码的现实反应时间位××.××秒。
在知识范围和时间范围以内,在完成题目基本要求的基础之上,对本仪器功能进行力所能及的扩充。
例如:
在反应时间测试精度上,仪器操作的简便性上,被测试者的易测试性等方面。
1.2课题来源
随着社会的发展,许多交通事故都是由于人们在突发情况下不能及时做出判断而导致的。
因此,在面对突发事故时,人的反应快慢直接影响到事情变化的好坏。
下面以STC89C52RC单片机为核心,设计出测试人体反应速度的仪器用以测试人的反应时间,间接反映人们面对突发状况的反应能力。
1.3设计要求
基于STC89C52RC单片机的人体反应速度测试仪的设计要求如下:
(1)测试者按下测试按键后,测试灯亮起,测试随之开始。
(2)在测试过程中,测试者要注意观察测试灯的变化,当看到测试灯熄灭时,测试者要迅速放开测试按键,单片机会在数码管上显示测试者的反应时间。
(3)若测试者在测试灯熄灭之前放开测试按键,则系统自动判为犯规,并显示错误信息。
1.4主要内容
以STC89C52RC单片机为核心的人体反应速度测试仪,主要控制测试灯的状态,通过测试按键的状态来间接计算人体反应速度。
正常情况下,系统运行主程序一直处于空闲等待状态,直到测试者按下按键后,LED测试灯立即点亮。
STC89C52RC单片机在LED测试灯亮的同时开始计算一个随机时间,在一段随机时间结束后,STC89C52RC单片机把LED测试灯熄灭,并开始计时灯熄灭与测试者放开按键的时间差,此计时时间用于记录被测者得反应时间,并以mm为时间单位,在4位数码管上显示。
如果在LED测试灯灭之前提前放开测试按键,则显示9999作为出错信息。
1.5面对的问题
(1)对STC89C52RC单片机的了解和应用
(2)对LED数码管的特性的了解和使用
1.6需解决的关键技术
本项目主要通过控制测试灯的状态,通过测试按键的状态来间接计算人体反应速度。
要了解每一段数码管与STC89C52RC的引脚的连接,各个芯片的输入输出关系,必须通过查阅资料确定,了解LED显示器的显示原理。
第2章系统硬件电路设计
2.1STC89C52RC单片机的介绍
单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机储存器RAM、只读储存器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调整电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
2.2STC89C52RC单片机的简介与发展概况
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
概括的讲,一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机了解计算机原理与结构的最佳选择。
图2.1所示为单片机芯片。
图2.1单片机芯片
可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。
不过,这种电脑,通常是指个人计算机,简称PC机。
它由主机、键盘、显示器等组成)。
还有一类计算机,就是把智能赋予各种机械的单片机。
这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。
因为它体积小,通常都藏在被控机械的“肚子”里。
它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。
现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。
各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。
现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。
究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。
(1)单片机的历史
第一代:
七十年代后期,4位逻辑控制器件发展到8位,使用NMOS工艺(速度低,功耗大、集成度低);代表产品有:
MC6800、Intel8048。
第二代:
八十年代初,采用CMOS工艺,并逐渐被高速低功耗的HMOS工艺代替;代表产品有:
MC146805、Intel8051。
第三代:
近十年来,MCU的发展出现了许多新特点:
在技术上,由可扩展总线型向纯单片型发展,即只能工作在单片方式;MCU的扩展方式从并行总线型发展出各种串行总线;将多个CPU集成到一个MCU中;在降低功耗,提高可靠性方面,MCU工作电压已降至3.3V。
第四代:
FLASH的使用使MCU技术进入了第四代。
2.3STC89C52RC单片机的工作过程
单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程。
所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作。
单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。
为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令,这些指令必须是选定单片机能识别和执行的指令,这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件——存储器中。
存储器由许多存储单元,即最小的存储单位组成,就像大楼房有许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一的房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。
程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC,包含在CPU中。
在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。
STC89C52RC是一种低功耗、高性能CMOS的8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52RC为众多嵌入式控制应用系统提供高灵活的解决方案。
STC89C52RC具有以下标准功能:
8k字节Flash;256字节数据存储器RAM;32位输入输出I/O口线;看门狗定时器;2个数据指针;3个16位定时器/计数器;一个6向量2级中断结构;全双工串行口;片内晶振及时钟电路。
另外,STC89C52RC可降至0Hz静态逻辑操作;支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
8位微控制器8K字节在系统可编程FlashSTC89C52RC。
STC89C52RC内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。
时钟可以由内部方式产生或外部方式产生。
内部方式的时钟电路如图2.2(a)所示,在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。
定时元件通常采用石英晶体和电容组成的并联谐振回路。
晶体振荡频率可以在1.2~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用。
外部方式的时钟电路如图2.2(b)所示,RXD接地,TXD接外部振荡器。
对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。
片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。
RXD接地,TXD接外部振荡器。
对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。
片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。
RXD接地,TXD接外部振荡器。
对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。
片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。
(a)内部方式时钟电路(b)外部方式时钟电路
图2.2时钟电路
(1)复位及复位电路
复位是单片机的初始化操作。
其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。
除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。
除PC之外,复位操作还对其他一些寄存器有影响,它们的复位状态如表2.1所示。
表2.1一些寄存器的复位状态
寄存器
复位状态
寄存器
复位状态
PC
0000H
TCON
00H
ACC
00H
TL0
00H
PSW
00H
TH0
00H
SP
07H
TL1
00H
DPTR
0000H
TH1
00H
P0-P3
FFH
SCON
00H
IP
XX000000B
SBUF
不定
IE
0X000000B
PCON
0XXX0000B
TMOD
00H
(2)复位信号及其产生
RST引脚是复位信号的输入端。
复位信号是高电平有效,其有效时间应持续24个振荡周期,即二个机器周期以上。
若使用频率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。
产生复位信号的电路逻辑如图2.3所示。
图2.3复位信号的电位逻辑图
整个复位电路包括芯片内、外两部分。
外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。
(3)复位方式
复位方式有上电自动复位相按键手动复位2种方式。
上电自动复位是通过外部复位电路的电容充电来实现的。
这佯,只要电源
的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。
按键手动复位有电平方式和脉冲方式两种。
其中,按键电平复位是通过使复位端经电阻与
电源接通而实现的,而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的。
电阻、电容参数适用于6MHz晶振,能保证复位信号高电平持续时间大于2个机器周期。
本系统的复位电路采用上电复位方式。
2.4STC89C52RC单片机的主要性能
STC89C52RC单片机是宏晶科技推出的新一代高速、低功耗、超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。
(1)增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051;
(2)工作电压:
5.5V~3.3V(5V单片机)或3.8V~2.0V(3V单片机);
(3)工作频率范围:
0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz;
(4)用户应用程序空间为8K字节;
(5)片上集成512字节RAM;
(6)通用I/O口(32个),复位后为:
P0、P1、P2、P3是准双向口,P0口是漏极开路准双向口,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻;
(7)在系统可编程ISP或在应用可编程IAP,无需专用编程器,无需专用仿真器,可通过串口RXD/P3.0,TXD/P3.1直接下载用户程序,数秒即可完成一片;
(8)具有EEPROM功能;
(9)具有看门狗功能;
(10)共3个16位定时器/计数器,即定时器T0、T1、T2;
(11)外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒;
(12)通用异步串行口UART,还可用定时器软件实现多个UART;
(13)工作温度范围:
-40~+85℃(工业级)/0~75℃(商业级);
(14)PDIP封装。
2.5STC89C52RC单片机的工作模式
(1)掉电模式:
典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序;
(2)空闲模式:
典型功耗2mA;
(3)正常工作模式:
典型功耗4MA~7mA;
(4)掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备。
如图2.4所示。
图2.4STC89C52RC引脚图
STC89C52RC引脚功能说明
(1)VCC(40引脚):
电源电压
(2)VSS(20引脚):
接地
(3)P0端口(P0.0~P0.7,39~32引脚):
P0口是一个漏极开路的8位双向I/O口。
作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。
在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。
此时,P0口内部上拉电阻有效。
在FlashROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。
验证时,要求外接上拉电阻。
(4)P1端口(P1.0~P1.7,1~8引脚):
P1口是一个带有内部上拉电阻的8位双向I/O口。
P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。
P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。
此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体参见表2.2。
在对FlashROM编程和程序校验时,P1接收低8位地址。
表2.2P1.0和P1.1引脚复用功能
引脚号
功能特性
P1.0
T2(定时器/计数器2外部计数输入),时钟输出
P1.1
T2EX(定时器/计数器2捕获/重装触发和方向控制)
(5)P2端口(P2.0~P2.7,21~28引脚):
P2口是一个带有内部上拉电阻的8位双向I/O端口。
P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。
P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。
在访问外部程序存储器和16位地址的外部数据存储器,例如:
执行“MOVX@DPTR”指令)时,P2送出高8位地址。
在访问8位地址的外部数据存储器,例如:
执行“MOVX@R1”指令时,P2口引脚上的内容,即专用寄存器SFR区中的P2寄存器的内容,在整个访问期间不会改变。
在对FlashROM编程和程序校验期间,P2也接收高位地址和一些控制信号。
(6)P3端口(P3.0~P3.7,10~17引脚):
P3是一个带有内部上拉电阻的8位双向I/O端口。
P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。
P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。
在对FlashROM编程或程序校验时,P3还接收一些控制信号。
P3口除作为一般I/O口外,还有其他一些复用功能,如下表2.3所示。
表2.3P3口引脚复用功能
引脚号
复用功能
P3.0(RXD)
串行输入口
P3.1(TXD)
串行输出口
P3.2(
)
外部中断0
P3.3(
)
外部中断1
P3.4(T0)
定时器0的外部输入
P3.5(T1)
定时器1的外部输入
P3.6(
)
外部数据存储器“写”选通
P3.7(
)
外部数据存储器读选通
(7)RST(9引脚):
复位输入。
当输入连续两个机器周期以上高电平时为有效,用来完成单片机的复位初始化操作。
看门狗计时完成后,RST引脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
(8)ALE/
(30引脚):
地址锁存控制信号ALE,是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在Flash编程时,引脚
也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用作为外部定时器或时钟使用。
需要特别强调的是,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”,ALE仅在执行MOVX或MOV指令时有效。
否则,ALE将被微弱拉高。
这个ALE使能标志位的设置对微控制器处于外部执行模式下无效。
(9)
(29引脚):
外部程序存储器选通信号,
是外部程序存储器选通信号。
当STC89C52RC从外部程序存储器执行外部代码时,
在每个机器周期被激活两次,而访问外部数据存储器时,
将不被激活。
(10)
/VPP(31引脚):
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,
必须接GND。
(11)XTAL1(19引脚):
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2(18引脚):
振荡器反相放大器的输入端。
(12)特殊功能寄存器
在STC89C52RC片内存储器中,80H~FFH共128个单元特殊功能寄存器(SFR),SFR的地址空间如表2.4所示。
表2.4STC89C52RC特殊功能寄存器
STC89C52RC单片机看门狗定时器特殊功能寄存器
符号
功能
EN_WDT
允许位,当设置为“1”,看门狗被启动
CLR_WDT
清“0”位,当设为“1”时,看门狗将重新计数。
硬件将自动清“0”此位
IDLE_WDT
“IDLE”模式位,当设置为“1”时,看门狗定时器在“空闲模式”计数;当清“0”该位时,看门狗在“空闲模式”时不计数
PS2-PS0
定时器预分频值,不同值对应预分频数如表2.5所示
表2.520MHz晶振看门狗定时器预分频值
PS2
PS1
PS0
预分频
看门狗溢出时间
0
0
0
2
39.3ms
0
0
1
4
78.6ms
0
1
0
8
157.3ms
0
1
1
16
314.6ms
1
0
0
32
629.1ms
1
0
1
64
1.25s
1
1
0
128
2.5s
1
1
1
256
5s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 人体 反应速度 测试仪