单片机系统开发与应用实习报告基于AT89S52单片机的人体反应速度测试仪.doc

上传人:文库蛋蛋多 文档编号:3896714 上传时间:2023-03-26 格式:DOC 页数:17 大小:127.50KB
返回 下载 相关 举报
单片机系统开发与应用实习报告基于AT89S52单片机的人体反应速度测试仪.doc_第1页
第1页 / 共17页
单片机系统开发与应用实习报告基于AT89S52单片机的人体反应速度测试仪.doc_第2页
第2页 / 共17页
单片机系统开发与应用实习报告基于AT89S52单片机的人体反应速度测试仪.doc_第3页
第3页 / 共17页
单片机系统开发与应用实习报告基于AT89S52单片机的人体反应速度测试仪.doc_第4页
第4页 / 共17页
单片机系统开发与应用实习报告基于AT89S52单片机的人体反应速度测试仪.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《单片机系统开发与应用实习报告基于AT89S52单片机的人体反应速度测试仪.doc》由会员分享,可在线阅读,更多相关《单片机系统开发与应用实习报告基于AT89S52单片机的人体反应速度测试仪.doc(17页珍藏版)》请在三一办公上搜索。

1、单片机系统开发与应用工程实习报告选题名称: 基于AT89S52单片机的人体反应速度测试仪 系(院): 专 业: 班 级: 姓 名: 学 号: 指导教师: 学年学期: 2009 2010 学年 第 2 学期2010年 5 月 30 日摘要:随着社会的发展,许多交通事故都是由于人们在突发情况下不能及时做出判断而导致的。因此,在面对突发事故时,人的反应快慢直接影响到事情变化的好坏。下面以AT89S52单片机为核心,设计出测试人体反应速度的仪器用以测试人的反应时间,间接反映人们面对突发状况的反应能力。以AT89S52单片机为核心的人体反应速度测试仪,主要控制测试灯的状态,通过测试按键的状态来间接计算人

2、体反应速度。正常情况下系统运行主程序一直处于空闲等待状态,知道测试者按下按键后,LED测试灯立即点亮。AT89S52单片机在LED测试灯亮的同时开始计算一个随机时间,在一段随机时间结束后,AT89S52单片机 把LED测试灯熄灭,并开始计时灯灭与测试者放开按键的时间差,此计时时间用于纪录被测试者的反应时间,并以毫秒为时间单位在4位数码管上显示。如果在LED测试灯灭之前提前放开测试按键,则显示9999作为出错信息。关键词:AT89S52 ; LED ; 数码管 目 录1 课题综述11.1 课题来源11.2预期目标11.3 面对的问题11.4 需解决的关键技术12 系统分析12.1 涉及的基础知识

3、12.2 总体方案32.3 功能模块框图43 系统设计43.1 硬件连接图43.2 实现方法53.3 详细流程图54 代码编写64.1按键电路的实现64.2 4位LED数码管显示电路的实现74.3 随机函数的实现74.4 中断程序的实现84.5 主函数的实现85 程序调试106 运行与测试116.1 硬件测试116.2 软件测试11总结12参考文献131 课题综述1.1 课题来源许多交通事故都是由于人们在突发情况下不能及时做出判断而导致的。因此,在面对突发事故时,人的反应快慢直接影响到事情变化的好坏。下面以AT89S52单片机为核心,设计出测试人体反应速度的仪器用以测试人的反应时间,间接反映人

4、们面对突发状况的反应能力。我们学习的是单片机理论知识,而课程设计则是对我们学习的理论知识的时间和巩固。1.2预期目标基于AT89S52单片机的人体反应速度测试仪设计要求如下:(1)测试者按下测试按键后,测试灯亮起,测试随子开始。(2)在测试过程中,测试者要注意观察测试灯的变化,当看到测试灯熄灭时,测试者要迅速放开测试按钮,单片机会在数码管上显示测试者的反应时间。(3)若测试者在测试灯熄灭之前放开测试按键,则系统自动判为犯规,并显示出错信息。1.3 面对的问题(1) 对AT89S51单片机的了解和应用(2) 对LED数码管的特性的了解和使用1.4 需解决的关键技术本项目主要通过控制测试灯的状态,

5、通过测试按键的状态来间接计算人体反应速度。要了解每一段数码管与AT89S52个引脚的连接,各个芯片的输入输出关系,必须通过查阅资料确定。必须了解LED显示器的显示原理。2系统分析2.1 涉及的基础知识通过学习和查阅资料,本项目需要掌握和了解如下知识:+5V电源原理及设计。单片机复位电路工作原理及设计。单片机晶振电路工作原理及设计。测试按键电路设计。驱动电路74LS07、74LS244的特性及使用。LED的特性及使用。AT89S52单片机引脚。单片机C语言及程序设计。2.1.1 AT89S51单片机简介功能特性:AT89S52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Fl

6、ash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择

7、节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89S52。主要性能:与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。图2-1 AT89S52引脚图2.1.

8、2 LED显示器的特性(1) 发光响应快,亮度强,高频特性好;而且随着材料的不同,数码管还能发出红、黄、绿、蓝、橙等多种颜色的光。(2) 机械性能好,体积小,重量轻,价格低廉;能与COMS和TTL电路配合使用;使用寿命长。(3) 工作电压低,驱动电流适中。每段电流为510mA,一只数码管的7段LED全亮需要电流3570mA。这样打的电流需要由驱动电路提供,因此,使用时要注意数码管的驱动问题。在使用中,为了给发光二极管加驱动电压,他们应有一个公共的引脚,公共的引脚有如下两种链接方法:一、共阴极接法。把发光二极管的阴极连接在一起构成阴极公共引脚,使用时公共引脚接地,这样阳极引脚上加高电平的发光二极

9、管就导通点亮,而加低电平的则不亮。二、共阳极接法。把发光二极管的阳极连接在一起作为阳极公共引脚,使用时阳极公共引脚接+5V。这样阴极引脚上加低电平的发光二极管即可导通点亮,二加高电平的则点不亮。2.1.3 LED显示器显示原理、并排使用的多位数码管成为LED显示器。LED显示器多采用动态显示方式,全部数码管共用一套段码驱动电路,各位数码管的同段引脚短接后再接到对应段码的驱动线上。显示时通过位控制信号采用扫描的方法逐位地循环点亮各位数码管。动态显示虽然在任一时刻只有一位数码管被点亮,但是由于人眼具有的视觉残留效应,看起来与全部数码管持续点亮的效果完全一样。 LED显示器的动态显示需要为各位提供段

10、码以及相应的位控制,此即通常所说的段控和位控。把LED显示器段码表预先存放在存储器中,使用时通过查表就可以得到段码。段码输出后送到公共端码线上,也可称为段控信号。而通过并行口输出的相互独立的位码则是起选通作用的,也称位控活扫描信号,用于选择显示位。动态显示具有硬件简单,功耗低和显示灵活性强等优点,但动态显示增加了驱动软件的复杂性,且显示亮度较低。 2.2 总体方案LED数码管的显示电路中采用动态数码管显示,在其中P0端口控制段码,低电平有效,P2.0P2.3端口控制位码,高电平有效。P2.3端口控制第1个数码管,P2.2端口控制第2个数码管,P2.1端口控制第3个数码管,P2.0端口控制第4个

11、数码管。各个数码管的段码都是P0端口的输出,即各个数码管输入的段码都是一样的,为了使其分别显示不同的数字,可采用动态扫描的方式,即先只让最低位显示0,经过一段延时,再只让次低位显示1,以此类推。由于视觉暂留,只要延时时间足够短,就能够使得数码的显示看起来非常稳定清楚。2.3 功能模块框图复位电路晶振电路 AT89S52单片机电源电路驱动电路4位LED数码管显示电路LED测试灯和测试按键电路 图 2-1 人体反应速度测试仪框图3 系统设计3.1 硬件连接图用一只发光二极管模拟测试灯,以AT89S52单片机的P1.0端口控制这只发光二极管、发光二极管加限流电阻接+5V电源,P1.0端口输出低电平时

12、,测试灯亮,输出高电平时,测试灯灭。P1.1端口接测试按键,P0端口控制LED数码管的七段数码显示,P2.0P2.3控制4位数码管的位选。 图3-1人体反应测速仪电路原理图 3.2 实现方法主程序采用查询方式,当测试按键按下时,AT89S52单片机使LED测试灯亮起的同时调用随机函数产生一个随机时间,AT89S52单片机利用这个随机时间计时。计时时间到,AT89S52单片机产生一个输出使单片机的P1.1端口为低电平,LED测试灯熄灭,AT89S52单片机进行新的一轮计时,送开测试按键,计时时间停止,把这个计时时间送往数码管显示电路显示。当AT89S52单片机第一轮的计时时间还未到时,若测试按键

13、松开,AT89S52单片机9999送往数码管显示电路显示。3.3 详细流程图人体反应速度测试仪程序流程图,如图3-2所示。 开 始初 始 化测试按键是否被按下?测试按键是否被松开?测试灯亮,并调用随机函数生成随机时间随机时间到了吗?测试灯熄灭,CPU计时,松开测试按钮计时停显示装置结束NYYNYNY 图3-2 程序流程图4 代码编写4.1按键电路的实现描 述:读取按键byte bot(void) /读取按键,有按键被按下则返回0,否则返回1 if(key=0)return 0; else return 1;4.2 4位LED数码管显示电路的实现描 述:将缓存区display中的整数译码后用数码

14、管进行显示void display(word ms) /数码管上的显示反应时间 byte posi=0x01,i,j,temp; disp3=ms/1000; /1s disp2=(ms%1000)/100; /100ms disp1=(ms%100)/10; /10ms disp0=ms%10; /1ms for(i=0;i4;i+) /数码管显示 temp=dispi; temp=tabletemp; for(j=0;j0;-j) /延时一段随机时间,为1马上的随机倍数 delaylms(); k=bot(); if (k=1) /如果在灯灭前谈起按键,显示最长时间作为惩罚 mstime=

15、9999; goto loop; led=1; /灯灭 INIT_TMR1(); /初始定时状态 while(1) /如果按键弹起,反复进入定时状态,没1ms计时器溢出一次,毫秒数加1 if(TF1=1) TH1=0xfc; TL1=0x18; TR1=1; TF1=0; +mstime; if(k=bot() break; loop: led=1 ; while(1) if(k=1) /按键弹开后始终显示时间 k=bot(); display(mstime); else /若按键按下,重新开始测试 mstime=0; P2=0xff; break; 5 程序调试程序调试一般是一个一个模块地进

16、行,一个一个子程序地调试,最后联起来统调。在单片机上把各模块程序分别进行调试使其正确无误,可以用系统编程器将程序固化到AT89S52的FLASH ROM中,接上电源脱机运行。调试代码没有出现太大的问题,主要对数码管的码表进行了修改。6 运行与测试6.1 硬件测试硬件的调试主要是把电路各种参数调整到符合设计要求。具体步骤如下:(1)先排除硬件电路故障,包括设计性错误和工艺性故障,一般原则是先静态后动态。(2)利用万用表或逻辑测试仪器,检查电路中的各器件以及引脚是否连接正确,是否有短路故障。发现有些焊点连到了一起,造成了短路,然后进行了修改。(3)先将单片机AT89S52芯片取下,对电路板进行通电

17、检查,通过观察看是没有异常,然后用万用表测试各电源电压,这些都没有问题,接上仿真机进行联机调试观察到各接口线路均正常。6.2 软件测试软件调试是利用仿真工具进行在线仿真调试,除发现和解决程序错误外,也可发现硬件故障。由于我的P0.0P0.7接A0A7在电路中接反了,故将数码管的码表进行修改,然后才成功的。总结本次单片机实习合算起来总共有两周的时间。之前的一周主要工作是画原理图和焊接电路,后一周主要就是完成软件测试和对硬件中错误的修改。一开始选择做人体速度测试仪的设计是因为觉得看起来会比较简单,但是真正做起来才发现其实还是比较困难的,毕竟在这一方面的技术有限。在画电路图的时候就会有很多困难,特别

18、是封装这一块,不过有老师和同学们的帮助我还是成功的完成了。焊接电路方面由于没有太多经验所以函的不是很美观,其实主要对各个芯片的输入输出和各个引脚的功能不太了解,所以一开始都会焊错。当基本完成的时兴高采烈的测试是否成功的时候,发现没有成功。自己在那一直苦恼到底哪里错了呢,实在搞不明白,后来经过老师的提点后发现错误并进行了修改。最后LED测试灯和测试按键电路终于对了,可是数码管显示总是存在问题,程序又没有错,电路也检查过,没有短路想象,并重新与原理图对照检查了一遍,还是没有发现。还是跑去问老师了,老师吧整体电路都看了下并检查了我的电路,发现原来线路接反了,原理图就有问题的。那改的话就很麻烦了,老师

19、说不用改电路了,教我把程序改了下,最后终于成功完成了我的设计。这次能那么成功的完成我的设计,要感谢老师和同学们的帮助,在理解程序的时候也请教了同学,他们也很热情的回答我的问题,让我在这次实习中不会觉得那么孤立无援。这次的实习也让我学到了很多东西,对很多单片机方面的知识有了更深的了解,并且能够运用到实践中了。原来实习不尽可以锻炼我们的动手能力,而且能够让我们学到更多的理论知识,也觉得很充实。最后我还要感谢学校给我这次实习的机会,和同学老师一起走过的这段时间深深地刻在我的脑海里。希望自己以后对待别的事情也可以这么认真。参考文献1 杨居义,杨尧,杨晓琴.单片机课程设计指导.北京:清华大学出版社,20092 李广弟,单片机基础(第3版).北京:北京航空航天大学出版社,20073 李朝青, 单片机原理及接口技术.北京:北京航天航空大学出版色,20014 苏家健,曹柏荣,汪志锋.单片机原理及应用技术.北京:高等教育出版社,20035 潭浩强,C语言程序设计.北京:清华大学出版社,20056 李华,李东.MCS51/98系列单片机原理与应用.北京:机械工业出版社,1997指导教师评语

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号