闫 龙, 张 鑫, 张顺堂, 温国锋, 吴昌友
(山东工商学院 a.管理科学与工程学院; b.信息与电子工程学院,山东 烟台 264005)
随着科技发展,单片机技术在工业自动化、智能仪表、机器人、民用电子产品、汽车、航空、国防等领域被广泛应用[1]。据统计,单片机在所有智能芯片类的应用中占有90%以上。
单片机应用技术是一门实践性和综合性都很强的课程。它是电气、自动化控制、电子、计算机等专业的一门重要课程。前导课程包括数字电路、模拟电路、C语言程序设计、EDA,相关课程还有嵌入式原理及应用、微机原理等,在本科生培养过程中占据重要地位。同时,单片机在教育部和工信部举办的各项大学生竞赛中也是必不可少的器件。经验表明,具有一定程度的单片机应用技术能力在就业和考研过程中往往能脱颖而出。因此,在各高校提高学生实践能力的同时,单片机原理及应用的教学和实践活动在整个培养方案中比重呈现上升趋势[5~8]。
目前单片机教学基本上采用课堂授课外加实验的方式。在此过程中发现有以下几个问题[2,9-15]:
(1) 教材内容相对古板陈旧。目前,很多高校的单片机教学中依然采用汇编语言作为主要学习内容。汇编语言对于理解CPU运行方式、指令周期及地址和信号复用、执行效率方面有一定的优势,但在CPU主频越来越高、种类越来越多及使用者范围越来越广的形势下,汇编语言无形中增加了学习成本,提高了开发的门槛。在实践中学生更倾向于采用C51语言进行开发。C51的可读性及可移植性远远超过汇编语言。而在现有的教材中C51的部分只是作为介绍,比例远远不够。单片机内容包括单片机内部结构、工作原理、硬件时序、指令周期等,该部分内容抽象、晦涩难懂。仅仅靠图片和教师的解说很难深入理解,寄存器内容和堆栈等内容和8086、8088芯片很容易混淆。虽然教材内容也在逐步更新,但和硬件的发展速度相比要慢。
(2) 实验箱集成度高,实验原理难以掌握。很多高校单片机实验室为了方便管理,实验箱集成度很高。学生直接插拔几根导线即可完成实验。做完实验后,学生对实验的原理仍然不能充分掌握,印象不深刻。实验设备集成度很高,实验过程中出现问题不容易调试。实验设备损坏后只能通过更换部件来解决,增加了设备维护费用。
(3) 教学和实验脱节。传统的电子教学模式是在教室里授课以后,再到相关实验室做实验。其中,授课与实验时间可能相差几天的时间,甚至是半个学期。学生在学习过程中产生的想法不能得到及时验证,问题得不到解决,学习兴趣也得不到提高。久而久之,积累的问题越来越多,学习热情逐渐下降。
(4) 实践训练少。单片机课程是一个理论加实践的过程,在后期学习过程中,实践时间要远远大于理论学习时间。而在课程实验计划中,实验时间是十分有限,限于设备的问题,学生不能充分验证自己的想法。
在教学改革中,尝试采用教学、实验、实训三位一体的教学方法,更新教学和实验设备,充分发挥多媒体教学功能。增加学生接触实验设备的机会,提高学生的学习兴趣。
为了满足新的教学方法的需要,首先建设了单片机实验室,每个实验台包括微机一台和实验箱一台,并配有多媒体(见图1)。购买了正版的Keil、Proteus软件和多媒体教学软件。实验室微机通过联网和多媒体电子教室软件用来授课或展示,教师端显示器的图像可实时传送到学生显示器上。可实现文件分发与收取、统一测试等功能。微机和实验设备通过com端相连,以串行方式通信,实现一键下载等功能。微机端可实现程序的单步运行调试、设备监控等功能,还可独立进行Proteus仿真。
图1 实验台
在单片机原理及应用课程中,教学、实验和实训都在实验室中完成。教学时通过多媒体电子教室软件可将教师端的显示器窗口广播给学生端,端口引脚及导线连接更清晰,教师可以用不同颜色的线进行标识,解除了投影仪解析力不够、学生看不清楚连线的难题。
每堂课50 min,讲课时间控制在35 min左右,学生用留下的15 min进行实验。学期开始将课程规划发给学生,每次课的内容及实验要进行预习。如果不预习在15 min内顺利完成实验会有一定难度,在接下来的实验中教师巡回检查实验情况,很容易发现实验和教学中存在的问题。
把实验时间打散融入教学,使教学和实验结合的方式既合理的利用了时间,又提高了学生学习的兴趣。根据调查,学生的注意力是有限的,一般学生每堂课大概能集中注意力20~25 min左右。做试验时,学生有了动手和思考空间,一般都能全神贯注地投入。如果每堂课讲50 min,时间利用率只有50%左右,而讲课35 min+实验15 min,时间利用率可提高到80%以上。
另外,课程教学计划中添加了C51编程与Proteus仿真[3],图2所示为Proteus学习资源,大概占用4~6学时。鼓励学生从实践中学习,同时采用汇编和C51进行编程,更好地体会两者的优缺点。建立Proteus仿真实验中心,从简单实例开始到常见的应用都建立了模板,学生练习起来就像冲关玩游戏,积极性大大提高。Proteus仿真实验室克服了实验设备集成度高的缺点,可以从零开始自主搭建系统,能更深入地了解实验过程[4]。
图2 Proteus学习资源
在完成教学和实验内容后,还增加了实训环节,实训项目如表1所示。实训由之前的课程设计演变而来,但包含的内容更广泛,形式也更灵活。结合学校的教学任务和发展规划。实训需要完成1~2个比较完整的项目。根据项目的难度评分。学生可自由选择难度不同的项目选做。做的形式也较为灵活,可通过Proteus进行模拟和仿真,也可选择做出实物,通常做出实物的组都能得到较高的分数。
学校还推出了以赛代练的活动,可以比赛的作品来代替课程设计,对于一些喜欢硬件设计的同学是个福音,这些同学对于硬件设计介入较早,参加过电子设计比赛或机器人大赛,可将他们的时间从课程设计中解放出来参加更多的比赛活动。
现就实训项目中:“步进电动机控制与实现”讨论单片机项目教学的具体实施过程。
表1 实训项目列表
(1) 设计目标。使用AT89C51单片机控制步进电动机,实现正转、反转、换挡控制、显示控制状态等要求。考虑单拍运行和双拍运行两种方式显示。
(2) 方法分析和相关知识点讲解。此项目中涉及到了按键控制、步进电动机运行原理及控制方法、显示器显示等内容。教师可以引导学生构思实现方法,比如显示是使用数码管还是LCD,按键采用中断处理还是扫描处理等,然后教师讲解步进电动机的单拍、单双拍及双拍运行方式的区别、步进电动机的驱动电路等。
(3) 学生分组讨论实施方案。学生2至3人1组,讨论实施具体方案,得出各小组的设计方案。
(4) 硬件设计方案。根据设计目标与设计方案在Proteus仿真软件中画出如图3所示的电路图。各小组方案不一样,硬件设计图有一些差别。
图3 Proteus仿真工作界面
(5) 软件设计及联合调试。根据图4所示的程序流程图,在Keil uvision中编写源程序,对源程序编译,产生可执行Hex文件。将通过调试的程序加载到Proteus仿真电路中,联合调试。
图4 数字电压表程序流程图
(6) 实际作品制作。仿真调试通过后,学生在Altium Designer软件中绘制原理图并设计PCB,Proteus中也有类似的功能,可直接由仿真原理图生成PCB图。一般情况下,由于是练习作品,推荐学生用面包板或万用板实现所设计的功能。
(7) 测试与评价。项目完成后,由学生之间互相检查项目的完成情况,展示学生的成果,交流心得体会及经验,推荐最佳作品,并进行公开汇报,最后由教师总结并进行评价。在项目完成后,学生以项目组为单位,完成资料的编写与整理工作,以便查询和存档。
在实施教学、实验、实训三位一体的教学方法中也给教师提出了新的挑战。① 授课时间减少,要突出重点,抓住学生理解的难点。② 要在实践过程中对各种器件和常见的应用了然于胸,对调试过程比较熟悉,而不仅仅是纸上谈兵。③ 课程、实验及实训中,考核环节增多,增加了教师的工作量。
对学生的学习习惯也有新的要求。课前必须进行预习,带着问题和任务来听课,否则在有限的时间内掌握不了课程内容。课前要把实验程序准备好,否则有可能在规定的时间内完不成实验。课程内容当堂理解,实验过程促使学生积极思考教学内容,而且动手也提高了学生的学习兴趣。
将教学、实验和实训合为一体,基本上解决了单片机教学中理论和实践统一的问题。在进行本课程的过程中,学生将数字电路、模拟电路及微机原理、单片机的知识融会贯通,并对日常开发软件Proteus、Keil C、Altium designer等都能熟练掌握,在全国大学生电子设计比赛、飞思卡尔智能车比赛和其他大学生创新比赛中都起到了积极的作用。