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

更新时间:2024-06-19 02:09:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单片机系统开发与应用工程实习报告

选题名称: 基于AT89S52单片机的人体反应速度测试仪 系(院): 专 业: 班 级: 姓 名: 学 号: 指导教师: 学年学期: 2009 ~ 2010 学年 第 2 学期

2010 年 5 月 30 日

摘要:

随着社会的发展,许多交通事故都是由于人们在突发情况下不能及时做出判断而导致的。因此,在面对突发事故时,人的反应快慢直接影响到事情变化的好坏。下面以AT89S52单片机为核心,设计出测试人体反应速度的仪器用以测试人的反应时间,间接反映人们面对突发状况的反应能力。以AT89S52单片机为核心的人体反应速度测试仪,主要控制测试灯的状态,通过测试按键的状态来间接计算人体反应速度。正常情况下系统运行主程序一直处于空闲等待状态,知道测试者按下按键后,LED测试灯立即点亮。AT89S52单片机在LED测试灯亮的同时开始计算一个随机时间,在一段随机时间结束后,AT89S52单片机 把LED测试灯熄灭,并开始计时灯灭与测试者放开按键的时间差,此计时时间用于纪录被测试者的反应时间,并以毫秒为时间单位在4位数码管上显示。如果在LED测试灯灭之前提前放开测试按键,则显示9999作为出错信息。

关键词:AT89S52 ; LED ; 数码管

目 录

1 课题综述 ............................................................................................................................... 1

1.1 课题来源 ............................................................................................................................................ 1 1.2预期目标 ............................................................................................................................................. 1 1.3 面对的问题 ........................................................................................................................................ 1 1.4 需解决的关键技术 ............................................................................................................................ 1

2 系统分析 ............................................................................................................................... 1

2.1 涉及的基础知识 ................................................................................................................................ 1 2.2 总体方案 ............................................................................................................................................ 3 2.3 功能模块框图 .................................................................................................................................... 4

3 系统设计 ............................................................................................................................... 4

3.1 硬件连接图 ........................................................................................................................................ 4 3.2 实现方法 ............................................................................................................................................ 5 3.3 详细流程图 ........................................................................................................................................ 5

4 代码编写 ............................................................................................................................... 6

4.1按键电路的实现 ................................................................................................................................. 6 4.2 4位LED数码管显示电路的实现 .................................................................................................... 7 4.3 随机函数的实现 ................................................................................................................................ 7 4.4 中断程序的实现 ................................................................................................................................ 8 4.5 主函数的实现 .................................................................................................................................... 8

5 程序调试 ............................................................................................................................. 10 6 运行与测试 ......................................................................................................................... 11

6.1 硬件测试 ...........................................................................................................................................11 6.2 软件测试 ...........................................................................................................................................11

总结 ......................................................................................................................................... 12 参考文献 ................................................................................................................................. 13

单片机系统开发与应用工程实习报告

1 课题综述

1.1 课题来源

许多交通事故都是由于人们在突发情况下不能及时做出判断而导致的。因此,在面对突发事故时,人的反应快慢直接影响到事情变化的好坏。下面以AT89S52单片机为核心,设计出测试人体反应速度的仪器用以测试人的反应时间,间接反映人们面对突发状况的反应能力。我们学习的是单片机理论知识,而课程设计则是对我们学习的理论知识的时间和巩固。

1.2预期目标

基于AT89S52单片机的人体反应速度测试仪设计要求如下: (1)测试者按下测试按键后,测试灯亮起,测试随子开始。

(2)在测试过程中,测试者要注意观察测试灯的变化,当看到测试灯熄灭时,测试者要迅速放开测试按钮,单片机会在数码管上显示测试者的反应时间。

(3)若测试者在测试灯熄灭之前放开测试按键,则系统自动判为犯规,并显示出错信息。

1.3 面对的问题

(1) 对AT89S51单片机的了解和应用 (2) 对LED数码管的特性的了解和使用

1.4 需解决的关键技术

本项目主要通过控制测试灯的状态,通过测试按键的状态来间接计算人体反应速度。要了解每一段数码管与AT89S52个引脚的连接,各个芯片的输入输出关系,必须通过查阅资料确定。必须了解LED显示器的显示原理。

2系统分析

2.1 涉及的基础知识

通过学习和查阅资料,本项目需要掌握和了解如下知识: ·+5V电源原理及设计。 ·单片机复位电路工作原理及设计。

1

单片机系统开发与应用工程实习报告

·单片机晶振电路工作原理及设计。 ·测试按键电路设计。

·驱动电路74LS07、74LS244的特性及使用。 ·LED的特性及使用。 ·AT89S52单片机引脚。 ·单片机C语言及程序设计。 2.1.1 AT89S51单片机简介

功能特性: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 字节在系统可编程 Flash AT89S52。

主要性能:与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz~33Hz 、 三级加密程序存储器 、32个可编程I/O口线 、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。

图2-1 AT89S52引脚图

2

单片机系统开发与应用工程实习报告

2.1.2 LED显示器的特性

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

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

(3) 工作电压低,驱动电流适中。每段电流为5~10mA,一只数码管的7段LED全亮需要电流35~70mA。这样打的电流需要由驱动电路提供,因此,使用时要注意数码管的驱动问题。

在使用中,为了给发光二极管加驱动电压,他们应有一个公共的引脚,公共的引脚有如下两种链接方法:一、共阴极接法。把发光二极管的阴极连接在一起构成阴极公共引脚,使用时公共引脚接地,这样阳极引脚上加高电平的发光二极管就导通点亮,而加低电平的则不亮。二、共阳极接法。把发光二极管的阳极连接在一起作为阳极公共引脚,使用时阳极公共引脚接+5V。这样阴极引脚上加低电平的发光二极管即可导通点亮,二加高电平的则点不亮。 2.1.3 LED显示器显示原理、

并排使用的多位数码管成为LED显示器。LED显示器多采用动态显示方式,全部数码管共用一套段码驱动电路,各位数码管的同段引脚短接后再接到对应段码的驱动线上。显示时通过位控制信号采用扫描的方法逐位地循环点亮各位数码管。动态显示虽然在任一时刻只有一位数码管被点亮,但是由于人眼具有的视觉残留效应,看起来与全部数码管持续点亮的效果完全一样。

LED显示器的动态显示需要为各位提供段码以及相应的位控制,此即通常所说的段控和位控。把LED显示器段码表预先存放在存储器中,使用时通过查表就可以得到段码。段码输出后送到公共端码线上,也可称为段控信号。而通过并行口输出的相互独立的位码则是起选通作用的,也称位控活扫描信号,用于选择显示位。

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

2.2 总体方案

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

3

单片机系统开发与应用工程实习报告

各个数码管的段码都是P0端口的输出,即各个数码管输入的段码都是一样的,为了使其分别显示不同的数字,可采用动态扫描的方式,即先只让最低位显示0,经过一段延时,再只让次低位显示1,以此类推。由于视觉暂留,只要延时时间足够短,就能够使得数码的显示看起来非常稳定清楚。

2.3 功能模块框图

电源电路 复位电路 AT89S52 单片机 晶振电路 驱动 电路 4位LED数码管显示电路 LED测试灯和测试按键电路

图 2-1 人体反应速度测试仪框图

3 系统设计

3.1 硬件连接图

用一只发光二极管模拟测试灯,以AT89S52单片机的P1.0端口控制这只发光二极管、发光二极管加限流电阻接+5V电源,P1.0端口输出低电平时,测试灯亮,输出高电平时,测试灯灭。P1.1端口接测试按键,P0端口控制LED数码管的七段数码显示,P2.0~P2.3控制4位数码管的位选。

4

单片机系统开发与应用工程实习报告

图3-1人体反应测速仪电路原理图 3.2 实现方法

主程序采用查询方式,当测试按键按下时,AT89S52单片机使LED测试灯亮起的同时调用随机函数产生一个随机时间,AT89S52单片机利用这个随机时间计时。计时时间到,AT89S52单片机产生一个输出使单片机的P1.1端口为低电平,LED测试灯熄灭,AT89S52单片机进行新的一轮计时,送开测试按键,计时时间停止,把这个计时时间送往数码管显示电路显示。当AT89S52单片机第一轮的计时时间还未到时,若测试按键松开,AT89S52单片机9999送往数码管显示电路显示。

3.3 详细流程图

人体反应速度测试仪程序流程图,如图3-2所示。

5

单片机系统开发与应用工程实习报告

开 始 初 始 化 N Y N 测试按键是否被按下? Y 随机时间到了吗? Y Y 测试按键是否被松开? 测试灯熄灭,CPU计时,松开测试按钮计时停 N 显示装置 测试灯亮,并调用随机函数生成随机时间 结束 图3-2 程序流程图

4 代码编写

4.1按键电路的实现

描 述:读取按键

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

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

6

单片机系统开发与应用工程实习报告

4.2 4位LED数码管显示电路的实现

描 述:将缓存区display[]中的整数译码后用数码管进行显示 void display(word ms) //数码管上的显示反应时间 {

byte posi=0x01,i,j,temp;

disp[3]=ms/1000; //1s disp[2]=(ms00)/100; disp[1]=(ms0)/10; disp[0]=ms;

for(i=0;i<4;i++) {

temp=disp[i]; temp=table[temp];

for(j=0;j<200;j++) {

P2=posi; P0=temp; }

posi*=2; } }

4.3 随机函数的实现

描 述:调用系统随机函数

unsigned long random(void) { word rt; byte k=0;

srand (50000); rt=rand();

//100ms //10ms //1ms //数码管显示 //延时 //显示xxxx秒形式 //生成随机数 //种下随机数种子,范围0-50000 //生成随机熟

7

单片机系统开发与应用工程实习报告

参考文献

1 杨居义,杨尧,杨晓琴.单片机课程设计指导.北京:清华大学出版社,2009 2 李广弟,单片机基础(第3版).北京:北京航空航天大学出版社,2007 3 李朝青, 单片机原理及接口技术.北京:北京航天航空大学出版色,2001 4 苏家健,曹柏荣,汪志锋.单片机原理及应用技术.北京:高等教育出版社,2003 5 潭浩强,C语言程序设计.北京:清华大学出版社,2005

6 李华,李东.MCS51/98系列单片机原理与应用.北京:机械工业出版社,1997

13

指导教师评语

本文来源:https://www.bwwdw.com/article/l7q3.html

Top