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

上传人:李主任 文档编号:3262561 上传时间:2019-08-06 格式:DOC 页数:17 大小:172.52KB
返回 下载 相关 举报
单片机系统开发与应用实习报告-基于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 单片机为核心,设计出测试人体反应速度的仪器用以测试人的反应时间, 间接反映人们面对突发状况的反应能力。

2、以 AT89S52 单片机为核心的人体反应速度测 试仪,主要控制测试灯的状态,通过测试按键的状态来间接计算人体反应速度。正常 情况下系统运行主程序一直处于空闲等待状态,知道测试者按下按键后,LED 测试灯 立即点亮。AT89S52 单片机在 LED 测试灯亮的同时开始计算一个随机时间,在一段 随机时间结束后,AT89S52 单片机 把 LED 测试灯熄灭,并开始计时灯灭与测试者放 开按键的时间差,此计时时间用于纪录被测试者的反应时间,并以毫秒为时间单位在 4 位数码管上显示。如果在 LED 测试灯灭之前提前放开测试按键,则显示 9999 作为 出错信息。 关键词:AT89S52 ; LED ;

3、 数码管 目目 录录 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 单片机系统开发与应

4、用工程实习报告 1 1 课题综述课题综述 1.1 课题来源课题来源 许多交通事故都是由于人们在突发情况下不能及时做出判断而导致的。因此,在 面对突发事故时,人的反应快慢直接影响到事情变化的好坏。下面以 AT89S52 单片机 为核心,设计出测试人体反应速度的仪器用以测试人的反应时间,间接反映人们面对 突发状况的反应能力。我们学习的是单片机理论知识,而课程设计则是对我们学习的 理论知识的时间和巩固。 1.2 预期目标预期目标 基于 AT89S52 单片机的人体反应速度测试仪设计要求如下: (1)测试者按下测试按键后,测试灯亮起,测试随子开始。 (2)在测试过程中,测试者要注意观察测试灯的变化,当

5、看到测试灯熄灭时,测试 者要迅速放开测试按钮,单片机会在数码管上显示测试者的反应时间。 (3)若测试者在测试灯熄灭之前放开测试按键,则系统自动判为犯规,并显示出错 信息。 1.3 面对的问题面对的问题 (1) 对 AT89S51 单片机的了解和应用 (2) 对 LED 数码管的特性的了解和使用 1.4 需解决的关键技术需解决的关键技术 本项目主要通过控制测试灯的状态,通过测试按键的状态来间接计算人体反应速 度。要了解每一段数码管与 AT89S52 个引脚的连接,各个芯片的输入输出关系,必须 通过查阅资料确定。必须了解 LED 显示器的显示原理。 2 系统分析系统分析 2.1 涉及的基础知识涉及

6、的基础知识 通过学习和查阅资料,本项目需要掌握和了解如下知识: +5V 电源原理及设计。 单片机复位电路工作原理及设计。 单片机系统开发与应用工程实习报告 2 单片机晶振电路工作原理及设计。 测试按键电路设计。 驱动电路 74LS07、74LS244 的特性及使用。 LED 的特性及使用。 AT89S52 单片机引脚。 单片机 C 语言及程序设计。 2.1.1 AT89S51 单片机简介 功能特性:AT89S52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系 统可编程 Flash 存储器。使用 Atmel 公司高密度非 易失性存储器技术制造,与工业 80C51 产品指令和引脚

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

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

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

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

11、于人眼具有的视觉残留效应,看起 来与全部数码管持续点亮的效果完全一样。 LED 显示器的动态显示需要为各位提供段码以及相应的位控制,此即通常所说的 段控和位控。把 LED 显示器段码表预先存放在存储器中,使用时通过查表就可以得 到段码。段码输出后送到公共端码线上,也可称为段控信号。而通过并行口输出的相 互独立的位码则是起选通作用的,也称位控活扫描信号,用于选择显示位。 动态显示具有硬件简单,功耗低和显示灵活性强等优点,但动态显示增加了驱动 软件的复杂性,且显示亮度较低。 2.2 总体方案总体方案 LED 数码管的显示电路中采用动态数码管显示,在其中 P0 端口控制段码,低电 平有效,P2.0P

12、2.3 端口控制位码,高电平有效。P2.3 端口控制第 1 个数码管,P2.2 端口控制第 2 个数码管,P2.1 端口控制第 3 个数码管,P2.0 端口控制第 4 个数码管。 单片机系统开发与应用工程实习报告 4 各个数码管的段码都是 P0 端口的输出,即各个数码管输入的段码都是一样的, 为了使其分别显示不同的数字,可采用动态扫描的方式,即先只让最低位显示 0,经 过一段延时,再只让次低位显示 1,以此类推。由于视觉暂留,只要延时时间足够短, 就能够使得数码的显示看起来非常稳定清楚。 2.3 功能模块框图功能模块框图 复位电路 晶振电路 AT89S52 单片机 电源电路 驱动 电路 4 位

13、 LED 数码 管显示电路 LED 测试灯和测 试按键电路 图 2-1 人体反应速度测试仪框图 3 系统设计系统设计 3.1 硬件连接图硬件连接图 用一只发光二极管模拟测试灯,以 AT89S52 单片机的 P1.0 端口控制这只发光二 极管、发光二极管加限流电阻接+5V 电源,P1.0 端口输出低电平时,测试灯亮,输出 高电平时,测试灯灭。P1.1 端口接测试按键,P0 端口控制 LED 数码管的七段数码显 示,P2.0P2.3 控制 4 位数码管的位选。 单片机系统开发与应用工程实习报告 5 图 3-1 人体反应测速仪电路原理图 3.2 实现方法实现方法 主程序采用查询方式,当测试按键按下时

14、,AT89S52 单片机使 LED 测试灯亮起 的同时调用随机函数产生一个随机时间,AT89S52 单片机利用这个随机时间计时。计 时时间到,AT89S52 单片机产生一个输出使单片机的 P1.1 端口为低电平,LED 测试 灯熄灭,AT89S52 单片机进行新的一轮计时,送开测试按键,计时时间停止,把这个 计时时间送往数码管显示电路显示。当 AT89S52 单片机第一轮的计时时间还未到时, 若测试按键松开,AT89S52 单片机 9999 送往数码管显示电路显示。 3.3 详细流程图详细流程图 人体反应速度测试仪程序流程图,如图 3-2 所示。 单片机系统开发与应用工程实习报告 6 开 始

15、初 始 化 测试按键是 否被按下? 测试按键是否 被松开? 测试灯亮,并调用随 机函数生成随机时间 随机时间 到了吗? 测试灯熄灭,CPU 计时, 松开测试按钮计时停 显示装置 结束 N Y Y N Y N Y 图 3-2 程序流程图 4 代码编写代码编写 4.1 按键电路的实现按键电路的实现 描 述:读取按键 byte bot(void) /读取按键,有按键被按下则返回 0,否则返回 1 if(key=0)return 0; else return 1; 单片机系统开发与应用工程实习报告 7 4.2 4 位位 LED 数码管显示电路的实现数码管显示电路的实现 描 述:将缓存区 display

16、中的整数译码后用数码管进行显示 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;i0;-j) /延时一段随机时间,为 1 马上的随机倍数 delaylms(); k=bot(); if (k=1) /如果在灯灭前谈起按键,显示最长时间作 为惩罚 mstime=9999; goto loop; led=1; /灯灭 INIT_TMR

17、1(); /初始定时状态 while(1) /如果按键弹起,反复进入定时状态,没 1ms 计时 器溢出一次,毫秒数加 1 if(TF1=1) TH1=0xfc; TL1=0x18; TR1=1; TF1=0; 单片机系统开发与应用工程实习报告 10 +mstime; if(k=bot() break; loop: led=1 ; while(1) if(k=1) /按键弹开后始终显示时间 k=bot(); display(mstime); else /若按键按下,重新开始测试 mstime=0; P2=0xff; break; 5 程序调试程序调试 程序调试一般是一个一个模块地进行,一个一个子

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

19、然后进行了修改。 (3)先将单片机 AT89S52 芯片取下,对电路板进行通电检查,通过观察看是没有 异常,然后用万用表测试各电源电压,这些都没有问题,接上仿真机进行联机调试观 察到各接口线路均正常。 6.2 软件测试软件测试 软件调试是利用仿真工具进行在线仿真调试,除发现和解决程序错误外,也可发 现硬件故障。由于我的 P0.0P0.7 接 A0A7 在电路中接反了,故将数码管的码表进行 修改,然后才成功的。 单片机系统开发与应用工程实习报告 12 总结总结 本次单片机实习合算起来总共有两周的时间。之前的一周主要工作是画原理图和 焊接电路,后一周主要就是完成软件测试和对硬件中错误的修改。一开始

20、选择做人体 速度测试仪的设计是因为觉得看起来会比较简单,但是真正做起来才发现其实还是比 较困难的,毕竟在这一方面的技术有限。在画电路图的时候就会有很多困难,特别是 封装这一块,不过有老师和同学们的帮助我还是成功的完成了。焊接电路方面由于没 有太多经验所以函的不是很美观,其实主要对各个芯片的输入输出和各个引脚的功能 不太了解,所以一开始都会焊错。当基本完成的时兴高采烈的测试是否成功的时候, 发现没有成功。自己在那一直苦恼到底哪里错了呢,实在搞不明白,后来经过老师的 提点后发现错误并进行了修改。最后 LED 测试灯和测试按键电路终于对了,可是数 码管显示总是存在问题,程序又没有错,电路也检查过,没

21、有短路想象,并重新与原 理图对照检查了一遍,还是没有发现。还是跑去问老师了,老师吧整体电路都看了下 并检查了我的电路,发现原来线路接反了,原理图就有问题的。那改的话就很麻烦了, 老师说不用改电路了,教我把程序改了下,最后终于成功完成了我的设计。 这次能那么成功的完成我的设计,要感谢老师和同学们的帮助,在理解程序的时 候也请教了同学,他们也很热情的回答我的问题,让我在这次实习中不会觉得那么孤 立无援。这次的实习也让我学到了很多东西,对很多单片机方面的知识有了更深的了 解,并且能够运用到实践中了。原来实习不尽可以锻炼我们的动手能力,而且能够让 我们学到更多的理论知识,也觉得很充实。 最后我还要感谢

22、学校给我这次实习的机会,和同学老师一起走过的这段时间深深 地刻在我的脑海里。希望自己以后对待别的事情也可以这么认真。 单片机系统开发与应用工程实习报告 13 参考文献参考文献 1 杨居义,杨尧,杨晓琴.单片机课程设计指导.北京:清华大学出版社,2009 2 李广弟,单片机基础(第 3 版).北京:北京航空航天大学出版社,2007 3 李朝青, 单片机原理及接口技术.北京:北京航天航空大学出版色,2001 4 苏家健,曹柏荣,汪志锋.单片机原理及应用技术.北京:高等教育出版社, 2003 5 潭浩强,C 语言程序设计.北京:清华大学出版社,2005 6 李华,李东.MCS51/98 系列单片机原理与应用.北京:机械工业出版社,1997 指导教师评语指导教师评语

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

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1