综合型课程设计在单片机实践教学中的应用
2015-11-25吴叶兰范卫萍陈宝花黄亚楠
吴叶兰 范卫萍 陈宝花 黄亚楠
北京工商大学计算机与信息工程学院 北京 100048
综合型课程设计在单片机实践教学中的应用
吴叶兰 范卫萍 陈宝花 黄亚楠
北京工商大学计算机与信息工程学院 北京 100048
单片机原理及应用是一门实践性很强的课程,其综合性课程设计是实践教学中非常重要的一环。单片机课程设计能够加深学生对单片机原理的理解,提高实践和创新能力。介绍了一种人体反应速度测试仪的单片机课程设计项目,给出了系统工作原理、系统软硬件设计,分析了相关算法。实验结果表明,该课程设计能综合应用单片机知识,激发学生学习单片机的兴趣,提高学生的工程实践能力。
单片机;课程设计;反应速度测试仪
单片机技术自问世以来,已经广泛应用到工业自动化控制、自动检测、家用电器、电力电子等各个领域。单片机原理及应用课程是电类工科专业的专业必修课,是一门实践性很强的课程,可以使学生真正掌握单片机原理并能灵活应用是实践教学的重点[1-3]。单片机的实践教学通常分两个层次,一个层次是与课程相配套的实验教学,这部分内容通常是针对某个具体知识点设计的,多数是验证性的;另一个层次是课程设计,其目的是通过综合性设计将单片机各个知识点贯穿起来,让学生能够融会贯通所学的理论知识从而具备综合应用能力。但以往的单片机课程设计,一般是要求学生编写一个较大的程序在实验箱上运行,这种方式虽然能综合不同的知识点,但不能使学生了解单片机设计从芯片选型、原理图绘制、PCB制作到软硬件联调的全过程;同时,有的课程设计题目缺乏趣味性、实用性,难以吸引学生兴趣。因此,符合学生认知特点、综合相关知识的单片机课程设计具有十分重要的意义,好的课程设计能激发学生的学习兴趣,培养学生动手能力,使学生的创新能力与实践能力得到提高。同时,改进教学组织形式,把课程设计环节扩展到整个教学过程中,即在单片机课程初期就把课程设计内容布置下去,学生在学习过程中有充分的时间进行思考、改进设计方案,并做出最终的实物,取得了较好效果。
1 单片机课程设计实例
在单片机课程设计的实践教学中,我们选取了多个趣味性、实用性的课程设计,下面通过人体反应速度测试仪实例说明单片机课程设计所包含的设计原理、软硬件设计、测试结果等诸多环节。
1.1 工作原理
人体反应速度测试仪的原理[4]是用LED测试灯亮灭的随机性测试被测者的反应速度。具体做法是:当测试者按下按键后,测试灯亮起,测试随之开始。在测试过程中,测试者集中注意力一直观察测试灯,当看到灯灭时,测试者要迅速放开按键,从灯灭到放开按键的时间就是测试者的反应时间,该时间会显示在数码管上。如果LED测试灯从亮到灭的时间是固定的,则在重复测试情况下,被测者有可能预测到灭灯时间,进而影响测试结果的可靠性,因此要求LED测试灯从亮到灭的时间必须具有随机性。
灭灯时间的随机性是通过获取随机数实现的,这里通过采集环境温度作为随机种子并调用随机函数产生随机数。同时,为了直观显示反应速度的快慢,系统采用了LED灯(以下称为“反应速度等级指示灯”)亮灯个数来体现,反应时间越短,则反应速度等级指示灯亮的个数就越多,表明测试者反应越快。若测试者在灭灯之前放开按钮,则系统判为犯规,报警并显示错误信息。系统总体框图如图1所示。
图1 系统总体框图
1.2 系统硬件设计
根据系统工作原理,系统的硬件设计如图2所示。本系统采用的单片机是AT89S52,为实现上述反应速度测试器的功能此系统包括了测试灯模块,测试按键模块,蜂鸣报警电路模块,温度采集模块和反应速度等级指示灯模块。
图2 硬件设计原理图
其中,测试灯模块选用红色LED灯模拟测试灯,亮灭状态通过软件编程控制。本设计中选用P1.0端口控制该LED灯,外加限流电阻接+5 V电源,P1.0端口输出低电平时,测试灯亮,输出高电平时,测试灯灭。测试按键模块仅由一个按键组成,接P3.4端口。按键按下时,该I/O口的输入为低电平。此时测试灯亮起,测试正式开始。反应时间显示装置由4位LED数码管组成,用来动态显示反应时间,单位为毫秒。蜂鸣报警电路模块用于提示被测者有无犯规,如果被测者在灯灭之前释放按键则鸣响,表示犯规。用P3.6口接蜂鸣器报警电路,通过该口输出一定频率的方波来驱动蜂鸣器。温度采集模块用于采集环境温度,用于随机种子的产生,进而得到灭灯随机时间。反应速度等级指示灯模块选用5个LED灯作为反应速度等级指示灯,灯亮的个数越多,表明测试者的反应速度越快。
1.3 算法分析
1.3.1 灭灯时间随机的必要性
人类反应时间长短的主要决定因素之一是中枢神经系统机能,它对刺激信号的分析时间主要和2个因素有关:一是中枢神经系统的兴奋性,二是条件反射建立的巩固程度[5,6]。考虑到条件反射建立的巩固程度对反应时间有不可忽视的影响,即在灭灯时间固定不变的情况下,短时间内随着测试次数的不断增加,测试者对灭灯时间的熟悉程度以及动作娴熟度的提高会使反应时间缩短,降低该系统的精确性与可靠性。因此,灭灯时间必须严格随机。
1.3.2 随机数的选取
常用产生随机数的方法是直接为随机数生成器提供一粒不变的随机种子,然后调用rand()函数来产生随机数。这种做法并不能产生真正的随机数,因为rand()函数是按指定的顺序来产生整数,所以每次得到的值都是一样的。因此,C语言的随机并不是真正意义上的随机。为了使程序在每次执行时都能生成一个新序列的随机值,常需要为随机数生成器提供一粒新的随机种子。函数srand()可以为随机数生成器播散种子。只要种子不同rand()函数就会产生不同的随机数序列。srand()称为随机数生成器的初始化器。
要在不同的时间得到不同的随机种子,自然会想到一些变化量,例如电压、电流、温度等。在这里,选取温度作为变化量。然而,环境中的温度虽在变化,但一般情况不可能有单位量的差异,故本系统对于采集到的温度只取小数部分作为变化量。
1.3.3 随机数的产生
通过温度传感器DS18B20采集环境的温度,以十进制表示,并取小数部分前4位,设变量名为value。表1给出了value的取值情况。
表1 DS18B20的温度数据关系表
由表中十进制与二进制的对照关系可知,将数据输出(二进制)的低4位取出,化为十进制数n,再除以16即为温度的小数部分,则有如下公式:
value有下列16种值,如表2所示。将该值作为seed值,用srand(seed)函数初始化随机数序列种子,调用rand()函数就会产生不同的随机数序列rt,再结合定时器实现毫秒的整数倍延时,得到从灯亮到灯灭的时间T。
表2 随机种子取值情况表
1.4 系统软件设计
程序采用模块化的设计思想,在Keil开发环境下,系统的软件采用C语言编写,其程序固化在AT89S52单片机内部Flash存储器中,整个软件程序包括按键模块,温度采集模块,测试灯模块,数码管显示模块,速度等级指示灯模块和蜂鸣报警模块。
1.4.1 主程序
系统主程序流程如图3所示。单片机上电之后系统便开始检测测试按键的状态,当测试按键被按下时,测试灯亮起,经过某段随机时间,测试灯熄灭。在亮灯过程中不断检测测试按键的状态,若在灯灭之前按键被释放,则系统将反应时间设为四位数码管可以显示的最大数值9999,指示测试者犯规,此次测试结果无效。否则,等到灯灭之后,定时器从零开始计时至按键被释放,并将得到的反应时间显示在数码管上。
1.4.2 反应速度测试
反应速度测试模块的流程图如图4所示。该段程序描述了灯从亮到灭随机时间的实现。在测试灯亮起之后,系统先读取经过温度传感器采集到的温度值,并取小数部分t作为随机种子,得到随机数rt,即灭灯时间。若rt<1 000,则令rt=rt+2 000,防止灭灯时间过短,出现灯一闪即灭的情况。将rt的值结合1 ms定时器实现ms的延时,延时时间结束或者出现测试按键被提前释放时灯自行熄灭。
1.5 测试结果及数据分析
1.5.1 测试条件
反应时间测试实验分别在两种条件下进行,第一种是“时间固定”,即每次测试中测试灯从灯亮到灭的时间间隔是一样的;第二种是“时间随机”,即每次测试中测试灯从灯亮到灭的时间间隔随机变化。测试者在测试前未被告知测试灯从亮到灭的时间间隔是否随机,每个测试者分别在两种条件下进行测试,在经过几次测试等测试者熟悉操作之后开始记录测试数据。
1.5.2 测试数据
图5 反应时间变化曲线
由于外界的微小因素极易对反应时间的测定造成干扰,因此在数据的测试上采用了在一段时间内取均值的方法,测试结果如图5所示。根据测试结果,对时间固定和时间随机两种情况的均值和方差做了统计,如表3所示。可以看出,在时间随机的条件下,测试者所测得的反应时间均值大于在时间固定条件下所测得的反应时间均值,且离散性更大,更符合测试的规律。
表3 两种测试结果的均值与方差
2 结束语
单片机课程是一门理论性和实践性都很强的课程,理论学习之后进行课程设计是十分必要的。开展一个具体项目的设计,能加强学生对理论知识的掌握和运用,达到理论与实践相结合的目的。通过以上单片机课程设计的实例,介绍了一个好的课程设计应包括原理设计、硬件设计、软件设计、算法分析、实验结果测试等各个环节。学生通过这些环节的实际训练,看到自己作品的成功运行,会从中体会到学习的乐趣,激发他们的科研热情,也为后续相关课程、学科竞赛、毕业设计打下很好的基础。
[1] 唐永红.单片机实践教学探索,电气电子教学学报[J].2007,29(1):72-73.
[2] 毛敏.MCS-51系列单片机系统及应用实践教程[M].北京:高等教育出版社,2006.
[3] 吴叶兰,段振刚,乔继红,苏维均.Proteus仿真软件在单片机实验教学中的应用[J].计算机教育,2009(24):146-148.
[4] 王晓鹏.人体反应速度测试器[J].电子制作,2009(5):35-38.
[5] 李春梅.人体反应速度测试器的实验研究[J].实验科学与技术,2011(4):4-7.
[6] 张梅.影响速度素质的因素分析[J].田径, 2004 (1):53-54.
An Application of Integrated Course Design in SCM Practice Teaching
Wu Yelan, Fan Weiping, Chen Baohua, Huang Yanan
Beijing Technology and Business University, Beijing, 100048, China
Principles and applications of SCM is a course emphasized on practice. The comprehensive course project of SCM is very important in teaching process. SCM course project can deepen students' understanding of SCM principle and enhance the students' practice and innovation ability. The paper introduces the SCM course design of human reaction speed test instrument, gives the system working principle, the hardware and software design, and provides an analysis of the random algorithm. The experimental result shows that the course design can integrate the SCM knowledge comprehensively, arouse students the students' interest in learning SCM, and improve the students' engineering practice ability.
SCM; course project; reaction speed tester
2014-07-09
吴叶兰,硕士,副教授。
北京市属高等学校人才强教计划资助项目(编号:PHR201108088)。