测试反应时间模拟系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

I测试反应时间模拟系统摘要随着电子技术的飞速发展,微型计算机已经全面渗透了人类生活各领域,并革命性地改变着人们的生活。因此,可以说了解微型计算机的基本工作原理对于每个人都十分必要。而对于即将从事电子行业的工作者来说,熟悉掌握微机原理并在其上进行软硬件的开发设计则是一项必须掌握的基本技能。为此,在学习微型计算机技术以及其应用的过程中,我设计了一个能测试人体反应时间的模拟系统。该系统以8088微处理器为核心,结合8255可编程并行通信接口、8253可编程定时/计数器、8259中断控制器等芯片以及LED等辅助电路,来测试人的反应时间,并将其反映在数码管上。通过此仪器不仅能够真实地测试出人的反应时间,而且还可以锻炼和提高个人对外界突发事件的处理能力。关键词:反应时间、8086/8088、汇编、8255IIsimulationsystemoftestingreactiontimeAbstractWiththerapiddevelopmentofelectronictechnology,themicro-computerhasimpactedonalmosteveryareaofhumanlifeandmakesthepeople’sliveschangingrevolutionary.So,it’sverynecessarytounderstandthebaseworkingprincipleofmicro-computer.Computerprincipleandhowtodosomehardwareandsoftwaredevelopmentonthecomputershouldbemasteredbythepeoplethatwillworkinthefieldofelectronicsindustry.Forthisreason,duringstudyingmicro-computertechnologyanditsapplication,asystemusedtotestaperson’sreactiontimeisdeveloped.Thesystemtakesthe8088microprocessorasacoreandcombinesIntegratedCircuitssuchas8255ProgrammableParallelInterface,8253ProgrammableIntervalTimer,8259AProgrammableInterruptControllerandetc,whichteststhereactiontimeanddisplaysitontheLED.Thisequipmentcannotonlytestthereactiontimecorrectly,butalsoimprovethehandlingcapacityofsuddeneventsoftheoutsideworldbytraining.Keywords:reactiontime;8086/8088、assemblelanguage、8255III目录摘要………………………………………………………………………………………………IAbstract………………………………………………………………………………………II目录……………………………………………………………………………………………III1.前言……………………………………………………………………………………………12.设计方案论证…………………………………………………………………………………22.1概述………………………………………………………………………………………22.2本设计使用的设备介绍…………………………………………………………………22.2.1TDN86/88+系统简介…………………………………………………………………22.3设计原理和方法…………………………………………………………………………32.3.1设计原理……………………………………………………………………………32.3.2设计方法……………………………………………………………………………42.3.3程序流程图及其问题………………………………………………………………43.本设计中各芯片的工作原理及编程………………………………………………………133.1本设计中8255A芯片的工作原理……………………………………………………133.1.18255A的内部结构…………………………………………………………………133.1.28255A的控制字及工作方式………………………………………………………143.1.3本设计中8255A的应用编程………………………………………………………143.2本设计中8259A芯片的编程结构和应用编程…………………………………………153.2.18259A的编程结构…………………………………………………………………153.2.28259A初始化流程图………………………………………………………………163.2.3本设计中8259A的应用编程………………………………………………………173.3本设计中8253A芯片的工作方式和应用编程…………………………………………183.3.18253的工作方式……………………………………………………………………183.3.2本设计中8253的应用编程………………………………………………………194.调试过程与总结……………………………………………………………………………204.1程序的调试过程………………………………………………………………………204.2硬件的调试过程………………………………………………………………………284.3总结……………………………………………………………………………………29致谢……………………………………………………………………………………………30参考资料………………………………………………………………………………………31附录一:测试反应时间模拟系统总电路图……………………………………………………32附录二:测试反应时间模拟系统程序…………………………………………………………33附录三:硬件实物图及实物与TDN86/88+系统的连接图……………………………………4511.前言近几十年来,微型计算机的应用已经全面渗透进人类生活的各个角落,大到航空航天领域,小至嵌入式家庭用器,无处不见其踪影,无处不让人深刻感受到其对人类生活的革命性变革。本设计是一个能测试人体反应时间的系统,该系统可以应用于体育训练、医疗和娱乐等领域。22.设计方案论证2.1概述本设计采用8088微处理器,结合8255A可编程并行通信接口、8259中断控制器、8253定时/计时器以及键盘等部分外设电路,利用汇编为程序设计语言实现一个能测试人体反应时间的模拟系统。具体任务:设计一个能测试人的反应(响应)时间的仪器。按启动钮,测试开始,一旦看到灯亮,立即按测试钮,用4位八段码显示从看到灯亮到按下测试钮的反应时间xx.xx秒。具有以下功能:(1)编制一个随机数产生子程序,由随机数决定从按启动钮到四个LED亮的时间(如在3秒~15秒之间内任意变动),使被测试者对LED亮的时间无法预见,以确保测试结果的可信;(2)必须在见到LED亮后按测试钮才有效,即一直按着按钮或提前按下按钮无效;(3)反应时间显示xx.xx秒,准确到百分之一秒。(4)修改以上设计使进一步能测试人对不同事物的反应(响应)时间。如功能为:按启动钮,测试开始,一旦红灯亮,立即按红灯测试钮,一旦绿灯亮,立即按绿测试钮,八段码显示反应时间xx.xx秒。若按错钮,则显示出错并响“嘟”一声。要求编制二个随机数产生子程序,一个决定从按启动钮到LED亮的时间,另一个决定亮何种颜色灯;同样要求在见到LED亮时按测试钮才有效。2.2本设计使用的设备介绍为研究方便,本设计采用TDN86/88+微机实验系统来辅助开发此系统,即首先将程序在该系统上调试,调试完成后再将最终的程序加载到所设计的硬件系统上。另外,硬件方面还需用到普通PC机一台,用来作为开发主机,以提供界面编辑、编译程序,并将程序加载到目标系统中。2.2.1TDN86/88+系统简介(1)系统总线系统总线信号定义如表2-1所示。3表2-18088微机系统总线定义信号线说明信号线说明XA0-XA7系统地址总线XIORI/O读(输出)信号线XA8-XA15XMER存储器读(输出)信号线XA16-XA19XMEW存储器写(输出)信号线OPCLK时钟信号线(1.193MHz)HOLD总线请求(输入)信号线PCLK时钟信号线(2.386MHz)HLDA总线请求应答(输出)信号线(2)系统内存分配情况系统内存分配如下图所示:图2-1系统内存分配情况本设计需要用到8255、8253、8259等芯片,它们各自的端口地址如下表所示:表2-2输入/输出接口编码表电路名称信号线寄存器编址电路名称信号线寄存器编址8253IOY20#计数器40H8255IOY3A口60H1#计数器41HB口61H2#计数器42HC口62H3#计数器43H控制口63H8259IOY1-20H-21H2.3设计原理和方法2.3.1设计原理本设计中可以划分为键盘扫描和键命令的识别和处理部分。从宏观上看,这两部分程序应当不停地并行、地在执行,这样才能保证既使LED的数字显示稳定,又不遗漏对闭合键的识别和处理。42.3.2设计方法设计中采用的方案是将键盘扫描程序、键命令的识别和处理程序及LED显示程序等作为主程序,而将显示程序、延时程序以及随机数产生程序等作为子程序调用。在主程序中,对8255A、8259进行初始化,接着检测启动键的信号,在启动信号到来后产生随机数,再初始化8253,使它工作在方式2,每10ms产生一上升沿作为中断请求信号给8259,使得程序每10ms便进入中断处理子程序,从而实现时间上的累加。设计的总框图如下图所示。图2-2设计总框图大致工作过程为:8088微处理器根据RAM中的程序不断探测启动键是否按下,若启动键按下,则产生一随机时间给8253进行延时处理,使8253完成3~15秒的工作。延时结束后,通过RAM的随机数产生子程序产生一随机数,以决定亮8个LED中的哪个LED。此后程序对键盘进行扫描,若按错键则响蜂鸣器,若按下正确的键则将利用8255B口所连接的四位数码管显示时间的数据。2.3.3程序流程图及其问题(1)程序流程图基于以上设计任务可以画出图2-3所示的简易流程图。(2)程序流程图里的相关问题当按着流程图去试着写程序,会遇到以下几个问题:1)长时间延时为解决这个问题,应首先了解8253定时/计数器的内部结构及工作原理。Intel8253是NMOS工艺制成的可编程定时/计数器,最高速率为2.6MHz。它既可以用来定时,也可以用来计数。其实,定时功能也是通过计数来完成的,因为当计数器用作定时器时,其输入的时钟信号为周期性脉冲信号,而对周期性信号的计数即实现了延时的目的,延时时间为输入时钟信号的周期与计数初值N的乘积。8253的编程结构框图如图2-4所示。5图2-3简易流程图图2-48253定时/计数器编程结构图8253内部有三个计数器,分别称为计数器0、计数器1和计数器2,它们的结构完全6相同。每个的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。每个通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。每个内部有一个8位的控制寄存器,还有一个16位的初值寄存器CR、一个执行部件CE和一个输出锁存器OL。执行部件实际上是一个16位的减法计数器,它的起始值就是初值寄存器的值,而初值寄存器的值是通过程序设置的。输出锁存器OL用来锁存执行部件CE的内容,从而使CPU可以对此进行读操作。因此,如果在系统时钟为1.193MHz的情况下,需要利用8253定时/计数器延时0.01秒,只需将初始值11930赋给初值

1 / 48
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功