资源简介
项目4基于AT89S52单片机人体反应速度测试仪的设计.rar

代码片段和文件信息
#include
#include
#include
sbit key=P1^0;
sbit led=P1^1;
typedef unsigned char byte;
typedef unsigned int word;
static byte disp[5];
//byte table[] 内存放数码管码表
code byte
table[11]={/*0123456789*/
0xC00xF90xA40xB00x990x920x820xF80x800x90
};
/************************************************************
*函数名:bot
*描 述:读取按键
*输入:无
*返回:有按键被按下则返回0,否则返回1
************************************************************/
byte bot(void) //读取按键,有按键被按下则返回0,否则返回1
{
if(key==0)return 0;
else return 1;
}
/************************************************************
*函数名:display
*描 述:将缓存区display[]中的整数译码后用数码管进行显示
*输 入:整形变量 ms
*返 回:无
************************************************************/
void display(word ms) //数码管上的显示反应时间
{
byte posi=0x01ijtemp;
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=disp[i];
temp=table[temp];
for(j=0;j<200;j++) //延时
{
P2=posi;
//显示xxxx秒形式
P0=temp;
}
posi*=2;
}
}
/************************************************************
*函数名:random
*描 述:调用系统随即函数
*输 入:无
*返 回:大的随机数
************************************************************/
unsigned long random(void) //生成随机数
{
word rt;
byte k=0;
srand (50000); //种下随机数种子,范围0-50000
rt=rand(); //生成随机熟
rt=rt*rand(); //使随机数足够大,能够延时足够时间
return rt;
}
/************************************************************
*描 述:定时器初始化子程序
*输 入:无
*返 回:无
*功 能:定时器0开中断程序,计数器1计算待测信号的脉冲熟
*************************************************************/
void INIT_TMR1(void)
{
TMOD=0x11;
TH1=0xfc;
TL1=0x66;
TR1=1;
}
void delaylms(void) //延时1ms
{
INIT_TMR1() ;
while(1)
{
if(TF1==1)
{
break;
}
}
}
void main(void)
{
byte k=0;
k=bot(); //获取按键情况
P1=0xff; //输入前先把P1口都加高电平
while(1) //主循环开始
{
word mstime=0j;
word r;
while(bot()); //等待按键按下,否则始终等待
led=0; //按键被按下后,灯亮
r=random();
for (j=r;j>0;--j) //延时一段随机时间,为1马上的随机倍数
{
delaylms();
k=bot();
if (k==1) //如果在灯灭前谈起按键,显示最长时间作为惩罚
{
mstime=9999;
goto loop;
}
}
led=1; //灯灭
INIT_TMR1(); //初始定时状态
while(1) //如果按键弹起,反复进入定时状态,没1ms计时器溢出一次,毫秒数加1
{
if(TF1==1)
{
TH1=0xfc;
TL1=0x1
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1593 2008-11-18 11:16 项目4 基于AT89S52单片机人体反应速度测试仪的设计\2.hex
文件 105902 2009-03-23 21:35 项目4 基于AT89S52单片机人体反应速度测试仪的设计\Last Loaded 人的反应测速.DBK
文件 1257 2009-03-24 23:15 项目4 基于AT89S52单片机人体反应速度测试仪的设计\人体反应速度测试
文件 1567 2009-03-24 23:15 项目4 基于AT89S52单片机人体反应速度测试仪的设计\人体反应速度测试.hex
文件 90 2009-03-24 23:15 项目4 基于AT89S52单片机人体反应速度测试仪的设计\人体反应速度测试.lnp
文件 4188 2009-03-24 23:15 项目4 基于AT89S52单片机人体反应速度测试仪的设计\人体反应速度测试.M51
文件 1079 2009-03-24 23:15 项目4 基于AT89S52单片机人体反应速度测试仪的设计\人体反应速度测试.Opt
文件 270 2009-03-24 23:28 项目4 基于AT89S52单片机人体反应速度测试仪的设计\人体反应速度测试.plg
文件 2076 2009-03-24 23:15 项目4 基于AT89S52单片机人体反应速度测试仪的设计\人体反应速度测试.Uv2
文件 0 2009-03-24 23:15 项目4 基于AT89S52单片机人体反应速度测试仪的设计\人体反应速度测试_Uv2.Bak
文件 105392 2009-03-23 21:36 项目4 基于AT89S52单片机人体反应速度测试仪的设计\人的反应测速.DSN
文件 742 2010-06-12 10:50 项目4 基于AT89S52单片机人体反应速度测试仪的设计\人的反应测速.PWI
文件 3822 2009-02-01 21:26 项目4 基于AT89S52单片机人体反应速度测试仪的设计\项目4 基于AT89S52单片机人体反应速度测试仪.c
文件 7260 2009-03-24 23:15 项目4 基于AT89S52单片机人体反应速度测试仪的设计\项目4 基于AT89S52单片机人体反应速度测试仪.LST
文件 2215 2009-03-24 23:15 项目4 基于AT89S52单片机人体反应速度测试仪的设计\项目4 基于AT89S52单片机人体反应速度测试仪.OBJ
目录 0 2011-06-23 19:27 项目4 基于AT89S52单片机人体反应速度测试仪的设计
----------- --------- ---------- ----- ----
237453 16
- 上一篇:简易函数信号发生器的设计
- 下一篇:基于52单片机LED点阵显示电子钟的设计
相关资源
- PID_AutoTune_v0.rar
- vspd7.2.308.zip
- 价值2k的H漫画小说系统
- Pythonamp;课堂amp;笔记(高淇amp;400;集第
- ddos压力测试工具99657
- UML建模大全
- 开源1A锂电池充电板TP4056原理图+PCB
- m1卡 ic卡可选择扇区初始化加密软件
- TSCC.exe
- FTP课程设计(服务端+客户端)
- 计算机图形学 边填充算法实现代码
- 电力系统潮流计算程序集合
- oracle数据迁移项目实施方案
- Web Api 通过文件流 文件到本地
- Visio图标-最新最全的网络通信图标库
- Spire API文档
- OpenGL参考手册
- Python中Numpy库最新教程
- SPD博士V5.3.exe
- 直流无刷电机方波驱动 stm32 例程代码
- layui后台管理模板
- 仿知乎界面小程序源代码
- 云平台-阿里云详细介绍
- photoshop经典1000例
- scratch垃圾分类源码(最终版本).sb
- IAR ARM 7.8破解
- TI CCS V5.4 安装步骤及破解文件
- 松下plc FP-XH的驱动
- 局域网硬件信息收集工具
- 加快Windows XP操作系统开机速度
评论
共有 条评论