反应测试仪.docx
- 文档编号:23363475
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:27
- 大小:428.41KB
反应测试仪.docx
《反应测试仪.docx》由会员分享,可在线阅读,更多相关《反应测试仪.docx(27页珍藏版)》请在冰豆网上搜索。
反应测试仪
湖南人文科技学院
课程设计报告
课程名称:
单片机课程设计
设计题目:
反应测试仪
系别:
通信与控制工程系
专业:
通信工程
班级:
08级通信二班
学生姓名:
雷海军李萍
学号:
0840920108409203
起止日期:
2010年12月20日~2010年12月28日
指导教师:
谢四连赵志刚
教研室主任:
侯海良
指导教师评语:
指导教师签名:
年月日
成绩评定
项目
权重
成绩
杨晓庆
成振华
1、设计过程中出勤、学习态度等方面
0.2
2、课程设计质量与答辩
0.5
3、设计报告书写及图纸规范程度
0.3
总成绩
教研室审核意见:
教研室主任签字:
年月日
教学系审核意见:
主任签字:
年月日
摘要
近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
反应测试仪能够定量的测试人的反映速度。
利用这种仪器,可以在人才的选拔中起到积极的作用。
例如选择少年体育运动员、舞蹈、杂技、魔术学员及其他要求机敏素质的培养对象时,可以提供科学的数据。
所以,反应测试仪的潜在实用价值极大。
本次课程设计首先描述系统硬件工作原理,并附以系统结构框图加以说明,着重介绍了本系统所应用的各硬件接口技术和各个接口模块的功能及工作过程,其次,详细阐述了程序的各个模块和实现过程。
本设计以数字集成电路技术为基础,单片机技术为核心,其主导思想是软硬件相结合,以硬件为基础,来进行各功能模块的编写。
设计介绍了一种简单反应测试仪的设计与制作,以STC单片机的外中断0外接开关作为按键,能够测量出实验者的反应时间,能在不清零的情况连续使用,并且能比较两次测试中反应时间短的,由数码管进行显示。
关键词:
STC单片机;数码管;定时器;中断
当单片机执行设定的程序,由定时器计时,实现秒表记时,在第8S时会显示一个“00000P”时,提示实验者准备按键,2S后(即第十秒)显示“PPPPPP”时,实验者应立刻按下,程序会自动显示实验者的反应时间,如果实验者在此后2S内没有按键,则此次测试无效,并显示“0ERROR”。
反应时间将显示2S,之后从第12秒处继续记时,直到显示到第“00005P”,提示实验者准备按键,在第60S时显示“PPPPPP”,实验者按下键,
基于AT89C52的反应测试仪设计
1设计任务与要求
利用单片机作为控制核心,完成快速反应时间的测试。
具体要求如下:
基本部分:
1)能够测量出连续两次按键的间隔时间。
2)要求能够在不清零的情况连续使用。
3)由数码管进行显示。
测试部分:
第一次按键后,分别在10S、1分钟进行按键测试,并能测试人的最快反应速度测试。
2方案设计与论证
2.1方案一:
基于AT89C52单片机的LCD液晶显示模块1602显示的反应测试仪。
主要是以单片机来控制,用按键来启动和暂停测试仪,LCD1602液晶作为显示模块来显示测试时间。
如图1所示:
图1方案一框图
2.2方案二:
基于AT89C52单片机的数码管显示模块显示的倒计时器。
主要是以单片机来控制,用按键来启动和暂停测试仪。
此电路对于反应测试仪中的LED数码管示器来说,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。
如图2所示:
图2方案二框图
通过以上两个方案,我们发现方案二总体比方案一好。
方案一虽然硬件电路简单,但造价较高,且在编写程序实现所要求的功能时较难,而方案二所用的显示模块是比较熟悉的数码管,编写程序是相对容易,且电路造价不高,因此,综合考虑之后决定采用
方案二。
3硬件单元电路设计
LED数码管反应测试仪以AT89C52单片机为核心,起着控制作用,另外系统中使用8255A芯片作为扩展I/O作用。
系统包括四位数码管显示电路,按键电路,复位电路,时钟电路。
反应测试仪的总体框图如下图3所示:
图3反应测试仪总体框图
3.1复位电路
复位是单片机的初始化操作,只需给AT89C52的复位引脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就可得单片机复位,复位时,PC初始化为0000H,使单片机从OUT单元开始执行程序。
除了进入系统的正常初始化之外由于程序运行出错或操作错误而使系统处于死锁状态,为摆脱死锁状态,也需按复位键使得RST脚为高电平,使单片机重新启动。
在系统中,有时会出现显示不正常,也为了调试方便,我们需要设计一个复位电路,AT89S52单片机复位电路共有上电复位、按键电平复位和按键脉冲复位。
工作原理是:
上电瞬间,RC电路充电,RESET引脚端出现正脉冲,只要RESET保持10ms以上高电平,就能使单片机有效的复位。
当时钟频率选用12MHz时,C取10uF,R取10KΩ。
上电自动复位电路由上电瞬间C与R构成充电电路,RESET端的电位与电源Vcc相同,随着充电电流的减少,RESET的电位逐渐下降。
图4中的按键S17的功能是按键复位,按下S17键时RST为高电平,只要保持10ms以上的高电平,就可以时单片机复位。
按键复位用在系统运行时的复位,使系统重新运行。
复位电路如下图4所示。
图4复位电路原理图
3.2时钟电路
时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊地一拍一拍地工作。
因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统稳定性。
常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。
单片机必须在时钟的驱动下才能工作。
在单片机内部有一个时钟振荡电路,只要外界一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。
本系统使用的是内部时钟方式。
时钟电路如下图5所示。
图5时钟电路原理图
一般选用石英晶体振荡器。
在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。
电路中两个电容C1、C2的作用有两个:
一是帮助振荡器起振;二是对振荡器的频率进行微调。
本系统的C1、C2的值为30pf。
3.3.数码管显示电路
本系统采用六位七段共阳数码显示管,由8255芯片的PA口控制数码管的位选,PB口输出数据给数码管,而数码管采用的是静态显示方式显示检测到的键值。
比较直观的看到按下的是哪个键。
数码管采用的是由段和位共同控制达到显示的目的,其原理如下表1所示:
表1数码管段值控制
段值
g
c
dp
d
e
b
f
a
PB控制位
PB7
PB6
PB5
PB4
PB3
PB2
PB1
PB0
在这里我们使用的是8段数码管显示(包含小数点),通常在显示上我们采用的方法一般包括两种:
一种是静态显示,另一种是动态显示。
其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多,所耗得电能较大;动态显示的特点是显示稳定性没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。
在本设计中,为了减少端口资源,降低电能消耗,采用的是动态显示方法。
该设计知数码管显示电路要用到4位数码管。
考虑到到数码管的段和位比较多,本系统用8255A作为扩展端口芯片。
数码管有段选和位选控制,在此电路中有4个位选,8个段选(每一个数码管的段选进行并联)。
分别用8255芯片的PA口和PB口进行四位数码管的控制,而用单片机的PB口来控制段。
电路中用了四个PNP来控制数码管的位选的开关,PNP在这起开关的作用。
电路如下图6所示。
图6 数码管显示电路原理图
3.4.定时器
本系统所用到的AT89C52有2个16位的定时器,而本系统只用到了定时器0,所使用的工作方式是定时器工作方式1,方式1时16位计数结构的工作方式使用工作方式1功能时,定时时间为65535US。
4、反应测试仪器主程序流程图
图6测试仪主程序流程
4.2.定时器0设计
定时器0的定时时间是20ms,用作扫描数码管显示,在定时器0开启时,定时器0开始定时,此时主程序正常运行,当定时器0的定时时间到时,主程序不在执行,开始进入中断程序,在中断程序中,若计时了1s就对时间进行处理且计数标志清零,赋值给相应的变量且second减1,若没有则计数标志count就进行加1,若倒计时的时间为零则重新赋值,中断程序执行完后返回主程序。
流程图如图7所示:
图7定时器设计流程图
一块8255A芯片来扩展I/O端口,单片机的P3^2到P3^3分别接的独立按键电路,即2个微动开关。
而8255A芯片的PB口与显示电路的数码管的段选相连,起到控制数码管的段选的的作用,PA口分别对应数码管的4个位选,起到对4个数码管的扫描作用,其中的4个三极管起着开关作用,对应数码管的选通。
5.2整体电路仿真图以及仿真结果分析
系统仿真用的是Proteus软件,可通过仿真显示出所设计系统的功能,对于程序的调试等有很大的帮助。
系统仿真时首先在使用KeilC译码器,把所写的程序进行编译,同时在仿真器里设置生成HEX文件,编译无错误进行Proteus仿真。
等所有的原件都连接完成后可以把KeilC编译生成的无错误文件加载到AT89C52中,方法是,右键点中器件然后再用左键点击,出来一个对话框在programfile后选择要添加的文件,文件要求必须是HEX文件。
然后可以点击运行观察现象,看与自己设置的是否符合,如果不相符再查找错误进行修改,一般的错误都是程序中的,所以要认真的读取程序的每一个部分。
启动Proteus软件的play按钮,出现如上图8所示,以上矩阵键盘设定倒计时初值和倒计时最大初值范围选择。
按下相应的键,数码管上显示相应的计数范围开始计时,当定时中断到时,数码管上的数值减1,也就是1S计时时间到了。
当全为0时,数码管上的数值自动加载为最大计数范围的值。
从仿真图可知,本系统的程序已达到要求。
在此电路系统的仿真中,应该注意的问题有数码管的MinimumTriggerTime项设定的值要合适,此电路中设定为1us。
还有就是在程序中数码管的扫描时间要合适。
以保证数码管显示稳定,不闪烁。
5.3元件清单
表2元器件清单
名称
参数和型号
数量
单片机
AT89C52
1块
PNP三极管
S8550
4个
电阻
1K
16个
数码管
共阳数码管器
4个
瓷片电容
30PF
2个
晶振
12M
1个
电解电容
10uf
1个
微动开关
18个
5.4软件调试
用到了KeilC软件,集成调试环境,集成了编辑器、译码器、调试器,支持软件模拟,支持项目管理功能强大的观察窗口,支持所有的数据类型。
树状结构显示,一目了然,支持ASM(汇编)、C语言多模块源程序混合调试,在直接修改、编译、调试源程序,错误指令定位。
功能很强大,用于对程序的调试和编辑。
本系统的程序的编写就是在KeilC软件中完成的,在程序中用到了两个定时器,为了使倒计时的时间准确,必须计算对定时器的初值,当程序完成之后,生成HEX文件。
再利用Proteus软件进行仿真。
经过仿真,程序符合题目的要求。
软件调试见附录2.
6性能测试与分析
按照设计程序的分析,LED数码管的动态扫描的频率是1000HZ,在实际使用时完全没有闪烁。
在程序中,定时器20ms中断一次,变量sec100自增,中断100次时,秒的显示自增,用定时器来定时,准确。
另外,用外中断0开启定时器,外中断0还具有暂停的功能。
当数码管上出现提示信息时,反应者按下按键,就可以测量出反应时间,并在数码管上显示出来。
该系统由5V电源来驱动,经过测试与分析,此系统稳定可用。
7总结与致谢
身为通信专业的学生,设计是我们将来必需具备的技能。
而这次课程设计恰恰给我们提供了一个应用自己所学知识去勇于创新和实践的平台。
从通过理论设计,到仿真软件仿真,再到确定具体方案,最后到调试电路、成型。
整个过程都需要我充分利用所学的知识进行思考、借鉴。
可以说,本次课程设计是针对前面所学的知识进行的一次比较综合的检验。
总的来说,这次课程设计虽然很累,但却是苦中有乐,非常充实。
在这次实习中,正确的思路是很重要的,只有你的设计思路是正确的,那你的设计才有可能成功。
因此我们在设计前必须做好充分的准备,认真查找详细的资料,为我们设计的成功打下坚实的基础,所以跑图书馆和上网查资料成为了我每天的必修课。
本次课程设计不仅培养了我们的科学严谨的学习态度,使我们认识到不管做任何事都要付出一定的努力,才会有大的收获。
同时也让我们领略到电子技术科学知识领域的广袤。
相信这次课程设计过后,我们的理论水平和实践动手能力都会有一个质的飞跃,也为今后的实践课程及毕业设计打下了坚实的基础。
要做好本次的课程设计,熟练地掌握课本上的理论知识是前提。
这样才能对试验中出现的问题进行一定的分析和解决。
当然能完成本次设计,更离不开老师辛勤地指导,老师能在百忙中来指导我,每当我遇到了棘手的问题,老师总能给我最好的建议,教我改进得方法,不厌其烦地指出我在设计中存在的问题和错误,使我能更好地完成设计。
正是老师不厌其烦的指导和每天下午的讲解,让我的设计思路越发清晰,明朗,清除了应该从哪些方面着手,工作。
同时还要感谢在这样课程设计中给我提供的帮助的同学,是你们让我能更好的完成这次设计。
这次课程设计对我来说有着深远的意义,让我对未来的路又看得清楚了些。
在此我要深深的感谢那些传授我知识的老师们,是你们无私的奉献,才会有如今掌握一定知识的我们;要感谢父母一直给我的支持,感谢他们的关怀;还要感谢同学对我的鼓励,感谢搭档对我的认可,让我能尽情的发挥我的能力,激扬去验证自己的想法。
参考文献
[1]朱定华,戴汝平.单片微机原理与应用.(M)北京:
清华大学出版社,2003
[2]楼然苗,李光飞.单片机课程设计指导.(B).北京航空航天大学出版社,2007
[3]李凤霞,刘桂山,薛庆.C语言程序设计(第二版).北京理工大学出版社,2008
[4]张鑫,华臻,陈书谦.单片机原理及应用(A).北京电子工业出版社,2005
附录1硬件设计总原理图
附录2软件仿真图
附录3程序清单
PADATA0D1FFH
PBDATA0D2FFH
PC0DATA0D5FFH
PCZHDATA0D7FFH
ORG0000H
LJMPINIT;外中断0
ORG0003H
LJMPIN0;定时器0
ORG000BH
LJMPTIMER0
ORG0030H
INIT:
MOVDPTR,#PCZH
MOVA,#80H
MOVX@DPTR,A;写8255a的控制字80h
CLRTR0
MOV40H,#00H;显示值分别送40h,41h,42h,
MOV41H,#00H;43h,44h,45h进行显示
MOV42H,#00H
MOV43H,#00H
MOV44H,#00H
MOV45H,#00H
LCALLXSHI;初值显示00
MOVR2,#100;定时器循环初值
CLRC
CLRIT0
SETBEX0
SETBEA
SETBPX0;定时器0和外中断0初始化
SETBET0
MOVTH0,#0B1H;定时器赋初值b1df=45536
MOVTL0,#0DFH
MOVTMOD,#01H;选择定时器工作方式1
MOVR1,#00H;判断是第几次按键的标志位
MAIN0:
MOVR4,#07;记时赋初值
MOVR3,#01
ZHUNBEI_7S:
MOV40H,R3
LCALLXSHI
MOVA,R3
INCA
MOVR3,A
DJNZR4,ZHUNBEI_7S
MOV40H,#16
LCALLXSHI;显示一个“p”
MOV40H,#9
LCALLXSHI
MOVDPTR,#PA;显示6个“p”
MOVA,#00H
MOVX@DPTR,A
MOVDPTR,#TABLE
MOVA,#16
MOVCA,@A+DPTR
MOVDPTR,#PB
MOVX@DPTR,A
SETBTR0;定时器启动
MAIN2:
MOV49H,#2
LCALLYSHI0
JBIE0,JISUAN
MOVA,R2
JBACC.7,ERROR;超过2.5秒没有按键,显示error
LJMPMAIN2
ERROR:
;显示error
MOV40H,#17
MOV41H,#0
MOV42H,#17
MOV43H,#17
MOV44H,#14
MOV45H,#0
LCALLXSHI
LJMPINIT
JISUAN:
;反应时间转换便于显示
CLRC
MOVA,#100
SUBBA,R2
MOVR2,A
MOV50H,R2
MOVA,50H
MOVB,#200
MULAB
MOV51H,A
MOV52H,B
MOVB,#100
MULAB
MOV53H,A
MOV54H,B
MOVA,52H
MOVB,#100
MULAB
MOV55H,A
MOV56H,B
CLRC
MOVA,54H
ADDA,55H
MOV54H,A
MOVA,#00H
ADDCA,56H
MOV56H,A
CLRC
MOVA,53H
ADDA,TL0
MOV53H,A
MOVA,54H
ADDCA,TH0
MOV54H,A
MOVA,#00H
ADDCA,56H
MOV56H,A
MOVA,53H
ANLA,#0F0H
SWAPA
MOV57H,A;第1位显示
MOVA,54H
ANLA,#0FH
MOV58H,A;第2位显示
ANLA,#0F0H
SWAPA
MOV59H,A;第3位显示
MOVA,56H
ANLA,#0FH
MOV60H,A;第4位显示
MOVA,56H
ANLA,#0F0H
SWAPA
MOV61H,A;第5位显示
XIANSHI:
MOV40H,57H
MOV41H,58H
MOV42H,59H
MOV43H,60H
MOV44H,61H
LCALLXSHI
CJNER1,#0FFH,DI2CIKEY0
LJMPCMPXIANSHI
DI2CIKEY0:
;第二次按键反应测试
MOV70H,57H;暂存第一次按键的反应时间
MOV71H,58H
MOV72H,59H
MOV73H,60H
MOV74H,61H
MOVR1,#0FFH
MOVR2,#100
MOVTH0,#0B1H
MOVTL0,#0DFH
CLRTR0
MOVR3,#46
MOV62H,#02
MOV63H,#01
DI2CIKEY1:
;
MOV40H,62H
MOV41H,63H
MOV42H,64H
MOV43H,65H
MOV44H,66H
MOV45H,67H
LCALLXSHI
INC62H
MOVA,62H
CJNEA,#0AH,L1
INC63H
MOV62H,#00H
L1:
MOVA,63H
CJNEA,#0AH,L2
INC64H
MOV63H,#00H
L2:
MOVA,64H
CJNEA,#0AH,L3
INC65H
MOV65H,#00H
L3:
MOVA,65H
CJNEA,#0AH,L4
INC66H
MOV65H,#00H
L4:
MOVA,66H
CJNEA,#0AH,L5
INC67H
MOV66H,#00H
L5:
DJNZR3,DI2CIKEY1
MOV40H,#16
LCALLXSHI;显示一个“p”
MOV40H,#9
MOV41H,#5
LCALLXSHI
MOVDPTR,#PA;显示6个“p”
MOVA,#00H
MOVX@DPTR,A
MOVDPTR,#TABLE
MOVA,#16
MOVCA,@A+DPTR
MOVDPTR,#PB
MOVX@DPTR,A
SETBTR0
LJMPMAIN2
CMPXIANSHI:
CLRC;比较反应时间,并显示最短的反应时间
MOVA,74H
SUBBA,61H
JZNEXT0
JCXIANSHI1
JNCXIANSHI2
NEXT0:
CLRC
MOVA,73H
SUBBA,60H
JZNEXT1
JCXIANSHI1
JNCXIANSHI2
NEXT1:
CLRC
MOVA,72H
SUBBA,59H
JZNEXT2
JCXIANSHI1
JNCXIANSHI2
NEXT2:
CLRC
MOVA,71H
SUBBA,58H
JZNEXT3
JCXIANSHI1
JNCXIANSHI2
NEXT3:
CLRC
MOVA,70H
SUBBA,57H
JZXIANSHI1
JCXIANSHI1
JNCXIANSHI2
XIANSHI1:
MOV30H,#03H
BAOZHI1:
MOV40H,70H
MOV41H,71H
MOV42H,72H
MOV43H,73H
MOV44H,74H
MOV45H,#01H
LCALLXSHI
DJNZ30H,BAOZHI1
LJMPINIT
XIANSHI2:
MOV31H,#03H
BAOZHI2:
MOV40H,57H
MOV41H,58H
MOV42H,59H
MOV43H,60H
MOV44H,61H
MOV45H,#02H
LCALLXSHI
DJNZ31H,BAOZHI2
LJMPINIT
IN0:
;中断处理程序
CLRTR0
RETI
TIMER0:
;定时器处理程序
MOVA,R2
SUBBA,#01
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 反应 测试仪