任务名称基于AT89S52单片机的人体反应速度测试仪设计知识点
通过学习和查阅资料本项目要求掌握如下知识
1、 +5V电源原理及设计
2、单片机复位电路工作原理及设计。
3、单片机晶振电路工作原理及设计。
4、按键电路的设计。
5、驱动电路74LS07、 74LS244的特性及使用。
6、 LED的特性使用。
7、AT89S52单片机引脚。
8、单片机C语言及程序设计。
本课题建议学时60学时。
本课题的教学步骤可分为
1、下发任务书。 2学时
2、学生根据任务书等资料解决相关问题。 20学时
3、教师对相关知识的疑难问题进行讲解。 9学时
4、学生67人一组讨论并确定安装方案填写工艺卡3学时
5、学生按照工艺卡完成准备工作。 1学时
6、学生绘制电原理图、方框图、安装图、元器件明细表。 6学时
7、学生自行完成人体反应速度测试仪的安装、调试、维修。 15学时
8、对人体反应速度测试仪的制作维修情况进行评价。 2学时
9、工作任务的小结。 1学时
任务书 2个课时
一、项目概述
随着社会的发展许多交通事故都是由于人们在突发状况下不能及时作出判断而导致的。因此在面对突发事故时人的反应快慢直接影响到事情变化的好换。下面以AT89 S 52单片机为核心设计出测试人体反应速度的仪器用以测试人的反应时间 间接反应人们面对突发状况的反应能力。
二、项目要求
基于AT89 S 52单片机的人体反应速度测试仪设计要求如下
1、测试者按下测试按键后测试灯亮起测试随之开始。
1
2、在测试过程中测试者要注意观察测试灯的变化当看到测试灯熄灭时
测试者要迅速放开测试按键单片机会在数码管上显示测试者的反应时
间。
3、若测试者在测试灯熄灭之前放开测试按键则系统自动判为犯规并显
示出错信息。
三、 系统设计
以AT89 S 52单片机为核心的人体反应速度测试仪主要控制测试灯的状态通过测试按键的状态来间接计算人体反应速度。正常情况下系统运行主程序一直处于空闲等待状态直到测试者按下按键后 LED测试灯立即亮。AT89S52单片机在LED测试灯亮的同时开始计算一个随机时间在一段随机时间结束后AT89S52单片机把.LED测试灯熄灭并开始计时灯灭与测试者放开按键的时间差此计时时间用于记录被测试者的反应时间并以毫秒为时间单位在4位数码管上显示如果在LED测试灯熄灭之前提前放开测试按键则显示9999作为出错信息。
四、硬件设计
LED数码管的显示电路中采用动态数码管显示在其中P0端口控制段码低电平有效。 P2.0—P2.3端口控制位码高电平有效。 P2.3端口控制第1个数码管 P2.2端口控制第2个数码管 P2.1端口控制第3个数码管 P2.0端口控制第4个数码管。
各个数码管的段码都是P0端口的输出 即各个输入的段码都是一样的为了使其分别显示不同的数字可采用动态扫描的方式 即先只让最低位显示0经过一段延时再只让次低位显示1依次类推。 由于视觉短暂只要延时时间足够短就能够使得数码的显示看起来非常稳定清楚。
通过本课题的学习你能够独立完成声光控电子开关的制作并且可以进行它类型声光控延时电子开关的维修下图为声光控电子开关电原理图。
2
声光控延时电子开关电原理图
五、软件设计
基于AT89S52单片机的人体反应速度测试仪程序清单如下
#inc lude<stdlib.h>
#inc lude<stdio.h>
#include<.reg52.h>
Sbit key=P 1^0
Sbit led=P1^1
Typedef unsigned char byte
Typedef unsigned int word
Static byte disp[5]
Code byte table[11]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,
0xF8,0xB0,0x90} //byte table[]内存放数码管
//表 0~9
Byte bot(void) //读取按键有按键被按下则{ //返回0否则返回1
If(key==0)return 0;
Els e return 1;
}
Void display(word ms) //该函数将缓存区display[]中的
//整数译码后用数码管进行显示{
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=dis p[1];
3
Temp=table[temp];
For(j=0;j<200;j++) //延时
{
P2=pos i; //显示xxxx毫秒形式
P 0=temp;
}
Posi*=2
}
}
Unsigned long random(void) //调用系统随机函数生成随机数{
Word rt;
Byte k=0;
Srand(50000); //种下随机数种子范围为0~50000Rt=rand(); //生成随机数
Rt=rt*rand(); //使随机数足够大能够延时足够时间Return rt;
}
Void INIT_TMR1(void)
{
TNOD=0x11;
TH1=oxfc;
TL1=0x66;
TR1=1;
}
Void delaylms(void) //延时1ms
{
INIT_TMR1();while(1)
{
If(TF1==1)
Break
}
}
Void main(void)
{
Byte k=0; //获取按键情况
4
K=bot(); //输入前先把p1口都加高电平P1=0xff; //主循环开始
While(1)
{
Word mstime=0,j;
Word r;
While(bot()); //等待按键按下否则始终等待Led=0; //按键被按下后灯亮R=random();
For(j=r;j>0;--j) //延时一段随机时间为1ms的随机倍数{
Delaylms();
K=bot();
If(k==1) //如果在灯灭前弹起按键显示最长时间作为惩罚
{
Mstime=9999;
Goto loop;
}
}
Led=1; //灯灭
INIT_TMR1(); //初始定时状态
While(1) //如果按键弹起反复进入定时状态。
//每1ms计时器溢出一次毫秒数加1{if(TH1==1)
{
TH1=0xfc;
TL1=ox18;
TR1=1;
TF1=0;
++mstime;
}
If(k=bot()) break;
}
Loop:led=1;
While(1)
{
If(k==1) //按键弹起后始终显示时间
{
K=bot();
Display(mstime);
}
Els e //若按键按下重新开始测试
5
{
Mstime=0;
P2=0xff;
Break;
}
}
}
}
流程卡 2个课时
基于AT89S52单片机的人体反应速度测试仪设计 15个课时
1、准备本项任务所需的材料、工具
2、如果不全缺哪些
6
3、根据上一项目的制作步骤进行操作。
材料明细卡
平分卡 2个课时
基于AT89S52单片机的人体反应速度测试仪设计满分100分
7
8
基于AT89 S 52单片机的人体反应速度测试仪设计的维修满分100分
工作小结 1个课时
虎跃科技怎么样?虎跃科技(虎跃云)是一家成立于2017年的国内专业服务商,专业主营云服务器和独立服务器(物理机)高防机房有着高端华为T级清洗能力,目前产品地区有:山东,江苏,浙江等多地区云服务器和独立服务器,今天虎跃云给大家带来了优惠活动,为了更好的促销,枣庄高防BGP服务器最高配置16核32G仅需550元/月,有需要的小伙伴可以来看看哦!产品可以支持24H无条件退款(活动产品退款请以活动规则为准...
酷番云怎么样?酷番云就不讲太多了,介绍过很多次,老牌商家完事,最近有不少小伙伴,一直问我台湾VPS,比较难找好的商家,台湾VPS本来就比较少,也介绍了不少商家,线路都不是很好,有些需求支持Windows是比较少的,这里我们就给大家测评下 酷番云的台湾VPS,支持多个版本Linux和Windows操作系统,提供了CN2线路,并且还是原生IP,更惊喜的是提供的是无限流量。有需求的可以试试。可以看到回程...
美得云成立于2021年,是一家云产品管理服务商(cloud)专业提供云计算服务、DDOS防护、网络安全服务、国内海外数据中心托管租用等业务、20000+用户的选择,43800+小时稳定运行香港特价将军澳CTG+CN2云服务器、采用高端CPU 优质CN2路线 SDD硬盘。香港CTG+CN22核2G3M20G数据盘25元点击购买香港CTG+CN22核2G5M30G数据盘39元点击购买香港CTG+CN...