资源简介
项目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点阵显示电子钟的设计
相关资源
- 高灵敏度GPS程序.rar
- 安全删除(断开)U盘获取其他移动储
- chartroom-master.zip
- 百度网盘地址.txt224454
- p0lfc7.docx
- 史上最全学习云计算视频资料.zip
- Louis_IC卡.zip
- ConsuleUI.zip
- NetStream.zip
- Sim_EKB_Install_2018_05_20.rar
- sgu6qx.rar
- Tcl教程.pdf
- FileComp.rar
- Unity4.3Sourcecode
- elong75416_10583833.zip
- Solidworks2015_SP5.0.torrent
- ATmega2560_Library.SchLib
- SVPWM.zip
- 1306176648Sockets进行文件传输.zip
- PDFFactoryProversion4.05.Keygen.zip
- 文件校验工具MD5SHA1SHA210.2TOKYOHOT含源码
- CPrimer第5版_带书签_高清完整版.pdf.r
- 扫雷.rar
- CallTifftoy.rar
- mwkiim.doc
- 地址链接.txt
- Thief.rar
- TurboCodeDemo.rar
- MusicEncode.rar
- fft7.v
评论
共有 条评论