首页 -> 2007年第3期

在单片机教学中应让学生在应用中学习编程

作者:韩守玺




  摘要:单片机的学习应从实践中来,再回到实践中去,以用促学,学以致用。因此,单片机的教学必须打破传统的教师讲,学生听、记的方式,应引导学生在实践中解决一个个的实际问题,在解决问题的过程中获得知识、增长经验、提高素质。教师的角色应该是组织者、启发者、引导者,而不是灌输者。
  关键词:单片机教学;应用;编程
  
  翻一下传统的单片机教材,一般总是以单片机的结构为主线,先讲硬件原理,然后是指令,接着讲软件编程,再是系统扩展和外围器件,最后举一些实例(这些实例往往由于篇幅的关系,很少涉及具体的程序)。而教材中对系统开发的过程和开发过程中要用到的工具(比如汇编软件、仿真器、编程器等)的使用方法缺乏完整、详尽的说明。所以有很多学生学完了整个单片机课程,总是不能将理论应用于实际。单片机不像模拟电路和数字电路那样,只要搞懂了电路原理,再按照产品要求设计好相应的电路就可以了。它是一种简单的硬件结构和复杂而又灵活的软件系统相结合的产物。同样一个芯片,可以设计出各种各样的功能。或者要完成同样的功能,不同的设计者编写的程序却并不完全一样,运行效果也可能大相径庭。所以单片机的学习一定要大量地阅读成熟的设计案例,学习别人的设计思想、编程方法并应用到自己的实践中去。要求学生在应用中学编程、在应用中增长知识、在应用中积累经验。而不是学了一些硬件原理和指令就大功告成。基于以上原因,本人尝试一种全新的单片机教学方法:以单片机的应用为蓝本,结合基本的工业控制系统和实践工作中的具体应用,不分先后顺序,将各条指令贯串于一个又一个的实验中,利用实验来学习单片机的硬件原理、指令系统和编程方法,使学生尽快地熟悉单片机系统开发的基本步骤,掌握软件编程的基本方法。以下是笔者的具体教学设计思路:
  认识单片机通过一个简单的单片机实验电路板,认识单片机芯片的引脚功能,让学生直观地了解一个单片机系统的基本组成:电源;时钟电路(一般情况下,是利用单片机内部的高增益反相放大器外接晶体振荡器和两个电容构成);复位电路;外围电路(通过地址总线、数据总线、控制总线和单片机连接起来)。
  认识单片机系统开发的整个过程当学生对单片机有了初步认识后,完整地演示一个单片机软件系统的开发过程(系统必须简单直观,比如红绿灯的控制系统,硬件电路板事先准备好):第一步,汇编源程序的编辑。第二步,汇编语言源程序的汇编。第三步,汇编语言程序的仿真调试。第四步,目标程序的写入。第五步,将写好程序的芯片插入电路板,通电独立运行。通过演示以上过程,学生明白了一段程序从源代码变成目标代码,最后写到单片机里运行的全过程。在以后的教学过程中,每一个实验都必须贯彻执行以上五个步骤。只有这样,才能让学生对单片机软件系统的开发有一个整体认识,也能让学生慢慢地掌握程序编辑、汇编的技巧,掌握仿真器(仿真器是单片机系统开发最有力的工具)和编程器的使用方法。
  
  培养学生分析硬件电路和阅读程序的能力打印一些内容上有新意、源于实践的实例(包括电路图和程序),以小组为单位分配给学生。要注意按实验室的规模进行分组。一般情况下,一个班可以分成8~10个组,每组4~5人。每次各小组的内容都不一样,避免各小组之间互相抄袭、敷衍了事的情况发生。然后让学生自己看书、查资料,结合电路图把每条指令的功能和整个程序的功能翻译出来,对于具备实验条件的一定要完整地贯彻上面提到的五个步骤,完成实验。这样做的目的是让学生自主学习、独立思考,学生之间互相交流配合、取长补短、互相促进。教师是启发者、引导者、组织者,不是灌输者。重点讲解学生理解有困难的内容,略讲或不讲学生自学可以完成的内容。我们应该为学生创造自主学习的空间。如表所示为笔者设计的部分练习内容。
  培养学生运用知识的能力按照各个小组平时的表现,分别给学生布置适合他们自身能力水平的课题,真正做一次完整的、自主的单片机应用系统的开发。在这个过程中每个环节都要落实到位:(1)明确任务。(2)选定器件。(3)设计、组装硬件电路。在本环节中,应尽量选取一些成熟的功能模块加以利用;对于新增功能,则需要学习一些必要的新器件知识。(4)软件开发,即明确设计任务→绘出程序流程图→编写程序→汇编成目标程序→仿真调试。(5)软硬件联调。通过这一环节,综合解决软硬件问题。(6)写入程序。(7)单片机应用系统独立运行。有了独立自主开发单片机应用系统的经历,虽然说只是刚刚跨过单片机殿堂的门槛,但无疑会增强学生进一步学习单片机的信心和兴趣。
  (本栏责任编辑:周秀峰)