魏建崇
福建江夏学院电子信息科学学院 福建福州 350108
单片机原理与接口技术是目前高等院校的机电类专业开设的一门专业基础课[1],该课程以C语言、模拟电子线路、数字电路等课程为基础,具有很强的实践性,因此,大部分高校配合单片机理论课程开设独立的单片机实验课和课程设计,实验课针对理论课所学的知识设计相应的实验,使学生能结合实际应用更深入地理解理论知识,而课程设计是对单片机课程所学知识的一个综合应用,使学生能够进行全面的单片机系统设计[2]。然而,在理论课程的学习过程中,大部分学生仍认为单片机的知识内容较为零散,很多概念比较抽象,难以理解。尽管有相对应的单片机实验课,但大多数的实验均为验证性实验,实验的学时短、难度低[3],无法使学生真正学会使用单片机。因此,在单片机课程的教学过程中,将理论与实践相结合,对于加深学生对理论知识的理解具有重要的意义。
目前的单片机课程教学内容偏重于理论,缺乏实践性,导致学生普遍认为单片机课程的很多内容非常抽象,不知道这些内容到底有什么用。以《MCS-51单片机中断系统》这章为例,教材[4]在介绍中断系统的概念和原理的过程中没有配合相应的实例进行讲解,仅在理论知识介绍完毕后提出了2个简单的应用实例,这不仅使得整个教学过程枯燥乏味,也让学生对课本的知识一知半解,无法在实践中对所学的知识进行论证。而且,目前几乎所有的单片机教材中的编程实例都使用汇编语言,而调研数据显示使用汇编语言进行单片机程序设计的教师和学生较少[5],因为汇编语言的开发难度大,可移植性差且开发周期较长。然而,在单片机实验课中,又主要采用C语言进行程序设计,导致学生在单片机实验课上,盲目地进行实验操作,“知其然而不知其所以然”,使得教学效果大打折扣。
在传统的单片机教学过程中,教师根据教材的章节顺序讲解单片机,在课程的一开始,就介绍了大量的概念、定义等理论知识,不仅让学生感觉枯燥乏味,也没法理解这些理论知识该如何应用[6]。虽然在教材中也有对应的应用实例,但往往都被安排在各个章节的末端,教师在介绍完所有的理论知识后,才进行应用实例的介绍,甚至有时候由于课时不够,部分教师选择直接跳过应用实例部分。教师在教学过程中理论与实践结合不紧密会导致学生在学习过程中理论与实践相脱节,无法真正理解课程所学的理论知识。
教师在授课过程中结合实际应用,设置理论与实践相结合的教学内容,可以使学生对课本上的理论知识有更深入的理解,提高学生的听课效果,知道“学的是什么”“学的有什么用”。
以“定时器/计数器”的工作模式讲解为例,MCS-51的定时器T0和T1共有4种工作模式,通过模式寄存器TMOD进行设置。为了使学生更容易理解不同工作模式之间的区别,通过表1的实例代码进行讲解,程序(a)和(b)均实现LED灯以10 Hz的频率闪烁。其中,程序(a)将定时器0设置为模式1,即16位的定时器/计数器,需要在中断服务程序内进行重置初值操作;而程序(b)将定时器0设置为模式2,即8位自动重装的定时器/计数器,需要通过多次中断实现较长时间的定时。通过这两段程序的对比可以发现,模式2少了2条重置计数器初值的语句,在中断频繁的情况下,可以明显提高CPU的工作效率,但存在定时时间较短的缺点。
表1 T0工作在模式1和模式2实现50 ms定时对比
单片机开发板是用于学习51,STC等型号单片机的实验设备,集成了单片机应用系统中常用的按键模块、串口通信模块、数码管、1602液晶屏、红外接收模块、温度传感器DS18B20、光敏电阻等。目前,市面上已经有很多价格低廉(一般50~200元不等)、性能稳定、功能全面的单片机开发板,并且开发板的附带光盘会提供详细的学习资料,例如相关扩展硬件模块、实验程序源码、电路原理图、电路PCB图等。因此,在课程开始时,鼓励学生学习使用单片机开发板,在教学过程中将理论知识与开发板的应用实例结合起来进行讲解并现场演示程序运行的结果,可以使学生对所学的知识有更深刻的理解,也能激发学生的学习兴趣。
以数码管控制知识点为例,利用普中科技的HC6800单片机开发板对数码管的静态显示和动态显示进行讲解。单片机控制数码管静态显示某个字符时,只要使相应的段(发光二极管)恒定地导通或截止即可,HC6800开发板中的静态数码管原理图如图1a所示,测试时利用排线连接JP3和P0口,程序控制P0口输出相应的段码实现字符的显示,同时,可以改变段码的值来观察数码段显示字符的变化,加深学生对数码管静态显示原理的理解。数码管动态显示是每隔一段很短的时间依次点亮一个数码管,利用人视觉的暂留效应使数码管显示看起来是连续的。HC6800开发板中的动态数码管原理图如图1b所示,8位数码管的段选线并联在一起,通过J12引出,而8个位选线由J16引出。因此,通过排线将J12与P0相连,J16与P2相连,程序控制P2口输出相应的位码选通要显示的数码管,通过P0口输出相应的段码实现字符的显示,延时一段时间后更新段码和位码实现动态显示。演示时,将延时时间从1秒逐渐递减,让学生观察数码管动态显示效果的变化,从而使学生更直观地理解数码管动态显示的原理。
图1 HC6800开发板静态数码管与动态数码管原理图
虽然教师在授课过程中会针对不同的知识点举出相应的例子进行说明,但各个实例仅仅是针对单个的知识点,导致学生很难建立起不同知识点之间的宏观联系,使得在课程结束后,学生普遍认为所学的知识较为零散,无法串联所学的知识进行整体的单片机应用系统设计。因此,在授课过程中通过一个单片机综合应用实例贯穿教学始终,可以帮助学生建立起单片机应用系统设计的宏观思维。以单片机温度采集系统为例,该系统实时检测环境温度并通过LCD显示温度值,每隔一定的时间将采集的温度数据存储在EEPROM并上传给PC上位机。因此,根据温度采集系统需要实现的技术指标,将其划分为5个功能模块,分别为菜单设置模块、温度采集模块、温度显示模块、数据存储模块和数据上传模块,各个模块所实现的功能与单片机课程相关的知识点如表2所示。因此,通过单片机温度采集系统可以有效地将单片机课程中分散的知识点进行串联,帮助学生建立起各个独立章节之间的联系,组成一个有效的知识体系,使学生能够利用所学的知识实现单片机应用系统的设计。
表2 单片机温度采集系统
课程的考核方式对于学生学习的动机和目的具有重要的导向作用,而考核的结果是评价学生对所学知识掌握情况的重要指标。然而,大多数理论课程的评价仅仅以一次的期末考试成绩决定,导致学生在学习过程中的课堂参与度不高,不愿与教师互动,课后也没花时间及时巩固所学的知识,而选择在考前临时抱佛脚,匆匆忙忙地弥补缺漏的知识点。这种“一考定终身”的考核方式大大降低了学生的学习热情,使课程的教学效果大打折扣。因此,结合单片机课程实践性较强的特点,引入完善的课程考核方式,不仅可以改善学生的学习效果,还可以提高学生的学习自觉性。
完善的课程考核方式不仅要考查学生对理论知识的掌握程度,还要兼顾学生对知识的运用能力以及学习过程中的学习态度,因此将课程的考核内容划分为考勤、课堂表现、作业和理论考试四部分,其中考勤、课堂表现和作业这三部分作为平时成绩,而理论考试作为期末成绩,课程的最终成绩由平时成绩和期末成绩加权得到。各部分考核内容的权重分配如表3所示,可以看出,平时成绩在最终成绩中的占比达到了40%,接近“半壁江山”,因此,学生要想获得好成绩,不仅仅取决于期末考试,还需要在平时上课过程中认真听讲、踊跃发言、积极配合教师并及时完成课后作业。这种完善的课程考核方式可以更为客观地检验单片机课程的教学成果,同时也降低了学生期末考试的压力,增强了学生的学习自主性。
表3 课程考核内容及比重
本文分析了当下单片机原理与接口技术课程教学方式中存在的理论与实践结合不紧密、教学内容的实践性不足等问题,结合单片机课程实践性较强的特点,提出了理论与实践相结合的课程改革方法,使学生能够真正学有所得、学有所用。