摘 要: 《单片机应用技术》是计算机专业一门重要的专业课程,随着计算机技术的迅猛发展,教科书与现状差距愈来愈大,这就要求我们广大计算机专业课老师紧跟时代的脉搏,加大课程改革,这样才能取得好的教学效果。
关键词: 单片机应用技术 教学 改革“五化”
近年来,我在从事计算机专业《单片机应用技术》课程的教学工作时,愈来愈感受到单片机应用技术的教科书与现状之间的差距逐渐加大。为此我特提出五个方面的问题,以鉴同行。
一、教学内容应该“硬件化”
这是个观念问题。学校中的大多数教师把《单片机原理及应用》这门课当做一门“汇编语言”来教,往往陷在指令系统这一章中拔不出来,既浪费了大量课时,又严重偏离了方向。
实践证明,单片机应用的工夫不在对单片机本身的掌握上,而在对单片机控制对象的了解上。搞单片机开发的成功者,往往不是计算机专业毕业的人,而是某行业中搞自动化控制的人。即熟悉电路硬件的比熟悉程序软件的干得更有出息。
我们一定要把这门课的重点放在“应用”两字上。对指令系统,我认为花4个课时就足够了,更应该完全删除教材中关于单片机程序设计结构的专门讨论章节。要知道游泳是在水中学会的,根本没有必要在岸上花大量的课时去训练划水的基本动作。一句话,在这门课的教学过程一定要突出硬件的地位,树立软件为硬件服务的观念。
二、存储器扩展已经“单片化”
在计算机技术发展的初始阶段,存储器曾是个昂贵的资源,而今的存储器制造技术已今非昔比。单片达兆位级的EPROM、FlashROM已比比皆是,RAM的单片容量则更不用说了。因此像8051单片机这类最大只支持64K存储空间的机种,存储器一片就能到位。这个技术现状反过来指导我们,在教学时可删除现有教科书中大篇幅的多片存储器扩展技术(这是一个突出的知识陈旧化问题)。
教过这门课的老师都知道,多片存储扩展时,如果不用全地址译码法,则会造成同一物理地址空间映射多个逻辑地址空间甚至出现存储器地址之间的交叠。在教学中这部分内容是非常难于让学生理解的,在工程中也会给程序设计带来不便,还可能留下隐患。而存储器“单片化”结构,可彻底避免这一现象。所以,扔掉“单片机存储器扩展”这一单元,不仅原来的难题不再是难题,而且可节约大量课时。
三、程序设计可以“模块化”
历来单片机以“短小精干”著称,因此开发应用系统十分珍惜资源(包括硬件与软件),十分强调简短。为此开发人员往往为“简之再简”而绞尽脑汁,有时不得不用一些“技巧”,使得设计出来的程序可读性差,移植性差。所以在这个领域以前是不提“结构化”设计的。
现在由于硬件技术的发展,有些情况正在变化。从应用开发的环境来看,应用领域越来越广泛、技术更新越来越快、开发周期必须越来越短。因此,开发人员不可能在每一产品的程序设计上精雕细琢地花费大量时间,更何况这个领域主要是非计算机专业的人员在工作。面对这种形势,要求单片机程序设计也要能结构化、模块化、乃至对象化,以便实现程序的交流和重用。
从单片机技术本身的发展来看,资源的不断扩大,已经允许我们在单片机这块“弹丸之地”上做一些像桌面系统上的事情。
程序模块化就是子程序化,子程序化就意味着堆栈的开销加大。以往,8051单片机的内存,包括堆栈在内用户真正可用的只有80个字节。现在我们可以用像8052这样的产品,用户实际可用的内存一下又多了128个字节。像台湾华邦公司W77E58等51系列型号,片内还带1024字节的RAM供用户使用。
程序模块化当然还会增多“履行公务”性的代码,即“过门关节”变多。以往的观点,这会使程序的运行时间加长,与单片机宗旨相违背。现在我们可以选用主频33MH。甚至60MH的单片机,还怕来不及吗?另外一个因素是存贮芯片的价格平民化,使我们不再怕程序太“臃肿”。
所有这些为我们在单片机应用领域里引进“结构化语言”的思想提供了有利条件。模块化在教学上的效益就是:利用现有的成熟模块,学生可以立即体验单片机应用的成果。体验完后,教师提出一些小要求,学生作些小调整,活动来些小变化……单片机教学不就成了“寓教于乐”的形式了吗?
四、课堂教学必须“实时化”
单片机技术近年的飞速发展,特别是器件的层出不穷,要求教师时刻把准“脉搏”,及时地根据技术现状对教学内容作出调整与取舍。
例如,在给学生介绍8051系列单片机的ROM形式时,必须及时地介绍“一次写入式”OPT型的PIC系列单片机及带“闪烁存储器”的AT89系列单片机。因为它们的出现,极大地改变了单片机的应用状况。
同理在给学生讲8051的串行口时,必须及时地介绍点对点通信技术及多机通信技术,因为提供单片机与其他计算机智能仪表或设备的数据交换。是近来的流行趋势在给学生介绍单片机的人机界面时一定要介绍点阵式液晶显示技术,因为它的出现使单片机亦能做到“图文并茂”;在给学生讲解I/O扩展时,一定要介绍IA2C总线,因为这是一种仅两条线的片间总线,它的应用对硬件设计模式将产生重大影响。
再有,在给学生讲A/D、D/A转换技术时,一定要介绍V/F、F/V转换技术,因为频率形式的量,是介于模拟与数字之间的量,在自动控制领域中有极广泛的应用。
五、实验调试应该“符号化”
过去的单片机实验极其枯燥,我们编完程序后,要用查表的方法经过人工“汇编”把源程序再转换成二进制器码。这道工序既乏味又容易出错。为什么会在广泛采用了汇编语言后还要去搞机器语言呢?因为当时的开发机和实验系统只能接受机器代码指令的输入。
现在则不同了,所有的开发机均可利用与PC机的实时通信,利用窗口界面在源程序级上调试。整个开发过程我们只跟“符号化”的汇编语言打交道,而根本不必知道机器码是什么,甚至可以使用像C、BASIC这样的高级语言进行调试。所以我们在实验时要充分利用现在的开发手段,让学生第一次就用联机通讯模式调节器试程序,轻松尽快掌握技能。