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

2019-03-28 19:54

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

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


基于AT89S52单片机的人体反应速度测试仪(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人教版高中生物人和动物生命活动的调节训练测试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: